930: Configure Total Stockout Days

930: Configure Total Stockout Days

Test Case #:284



Test Case Name: UI for Total Stockout Days (X) requisition field

System: openLMIS

Subsystem: blue

Test case designed by: Lucyna Laska

Design Date:04.11.2016

Short description

FROM OLMIS-1211:

  • if this field is on the requisition template for a given program, then when you initiate a requisition the field will show up in the UI based on the display order applied in the requisition template.

  • the field allows a non-negative integer value (0,1,2,etc) to be entered by user

  • the default value of the field is zero (zero stockout days); the field is optional, meaning that the user can leave it zero and save/submit their requisition

  • invalid entries into the field (like making it a negative number or a string or "") display a friendly warning message, and prevent the user from submitting their requisition (it may cache or save)

FROM OLMIS-1210:

  • in the APIs for configuring a requisition template, this new field can be added into the requisition template (by an admin with permissions to configure the template for their program)

  • if this field is NOT configured/associated to a requisition template, it does not appear on the requisition form

  • the field can be configured with a display order that controls where it appears on the requisition

  • in the APIs for initiating and saving a requisition, if this field is part of the template, then this field appears on the requisitions. Its display order should be based on the requisition template.

  • this field allows a non-negative integer value (0,1,2,etc) to be provided by the user (API should validate and respond with a proper error if invalid)

  • default value of the field is zero (zero stockout days); field is optional, meaning that the user can leave it zero and save/submit their requisition

                                                                                                                                                   

Pre – conditions:

                                                                                                                                                                                                                                                       

Step

Action

Expected system response

Comment

Note:

Demo-data has been used during testing this ticket. In addition, UI was verified on Chrome and Firefox.





1

Find the ID of program with name: "Family Planing".

  Method: GET

                                                                                                                            

                                                 

2

Find the ID of requisition template associated with program "Family Planing".

Method: GET



3

Verify through API, if field "Total Stockout Days" is configured in requisition template.



4

Check, If field is available on UI, on requisition details.



5

Configure the display order for Total Stockout Days using API. Change the current display order to 3.

Method: PUT

Body:

{
  "id": "5a268780-fafd-4243-9551-5c7daa824913",
  "programId": "dce17f2e-af3e-40ad-8e00-3496adef44c3",
  "columnsMap": {
    "beginningBalance": {
      "name": "beginningBalance",
      "label": "Beginning Balance",
      "indicator": "A",
      "displayOrder": 3,
      "isDisplayed": false,
      "source": "USER_INPUT",
      "columnDefinition": {
        "id": "33b2d2e9-3167-46b0-95d4-1295be9afc22",
        "name": "beginningBalance",
        "sources": [
          "USER_INPUT"
        ],
        "label": "Beginning Balance",
        "indicator": "A",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "NUMERIC"
      }
    },
    "totalLossesAndAdjustments": {
      "name": "totalLossesAndAdjustments",
      "label": "Total Losses And Adjustments",
      "indicator": "D",
      "displayOrder": 6,
      "isDisplayed": true,
      "source": "USER_INPUT",
      "columnDefinition": {
        "id": "cd57f329-f549-4717-882e-ecbf98122c38",
        "name": "totalLossesAndAdjustments",
        "sources": [
          "USER_INPUT"
        ],
        "label": "Total Losses And Adjustments",
        "indicator": "D",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "NUMERIC"
      }
    },
    "totalStockoutDays": {
      "name": "totalStockoutDays",
      "label": "Total Stockout Days",
      "indicator": "X",
      "displayOrder": 3,
      "isDisplayed": true,
      "source": "USER_INPUT",
      "columnDefinition": {
        "id": "750b9359-c097-4612-8328-d21671f88920",
        "name": "totalStockoutDays",
        "sources": [
          "USER_INPUT"
        ],
        "label": "Total Stockout Days",
        "indicator": "X",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "NUMERIC"
      }
    },
    "productName": {
      "name": "orderableProduct.name",
      "label": "Product",
      "indicator": "N",
      "displayOrder": 2,
      "isDisplayed": true,
      "source": "REFERENCE_DATA",
      "columnDefinition": {
        "id": "e53e80de-fc63-4ecb-b6b2-ef376b34c926",
        "name": "productName",
        "sources": [
          "REFERENCE_DATA"
        ],
        "label": "Product",
        "indicator": "N",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "TEXT"
      }
    },
    "totalReceivedQuantity": {
      "name": "totalReceivedQuantity",
      "label": "Total Received Quantity",
      "indicator": "B",
      "displayOrder": 4,
      "isDisplayed": true,
      "source": "USER_INPUT",
      "columnDefinition": {
        "id": "5ba8b72d-277a-4da8-b10a-23f0cda23cb4",
        "name": "totalReceivedQuantity",
        "sources": [
          "USER_INPUT"
        ],
        "label": "Total Received Quantity",
        "indicator": "B",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "NUMERIC"
      }
    },
    "approvedQuantity": {
      "name": "approvedQuantity",
      "label": "Approved Quantity",
      "indicator": "K",
      "displayOrder": 10,
      "isDisplayed": true,
      "source": "USER_INPUT",
      "columnDefinition": {
        "id": "a62a5fed-c0b6-4d49-8a96-c631da0d0113",
        "name": "approvedQuantity",
        "sources": [
          "USER_INPUT"
        ],
        "label": "Approved Quantity",
        "indicator": "K",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "NUMERIC"
      }
    },
    "total": {
      "name": "total",
      "label": "Total",
      "indicator": "Y",
      "displayOrder": 13,
      "isDisplayed": true,
      "source": "CALCULATED",
      "columnDefinition": {
        "id": "ef524868-9d0a-11e6-80f5-76304dec7eb7",
        "name": "total",
        "sources": [
          "CALCULATED"
        ],
        "label": "Total",
        "indicator": "Y",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "NUMERIC"
      }
    },
    "productCode": {
      "name": "orderableProduct.productCode",
      "label": "Product Code",
      "indicator": "O",
      "displayOrder": 1,
      "isDisplayed": true,
      "source": "REFERENCE_DATA",
      "columnDefinition": {
        "id": "bde01507-3837-47b7-ae08-cec92c0c3cd2",
        "name": "productCode",
        "sources": [
          "REFERENCE_DATA"
        ],
        "label": "Product Code",
        "indicator": "O",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "TEXT"
      }
    },
    "totalConsumedQuantity": {
      "name": "totalConsumedQuantity",
      "label": "Total Consumed Quantity",
      "indicator": "C",
      "displayOrder": 5,
      "isDisplayed": true,
      "source": "USER_INPUT",
      "columnDefinition": {
        "id": "9e825396-269d-4873-baa4-89054e2722f4",
        "name": "totalConsumedQuantity",
        "sources": [
          "USER_INPUT",
          "CALCULATED"
        ],
        "label": "Total Consumed Quantity",
        "indicator": "C",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "NUMERIC"
      }
    },
    "requestedQuantity": {
      "name": "requestedQuantity",
      "label": "Requested Quantity",
      "indicator": "J",
      "displayOrder": 8,
      "isDisplayed": true,
      "source": "USER_INPUT",
      "columnDefinition": {
        "id": "4a2e9fd3-1127-4b68-9912-84a5c00f6999",
        "name": "requestedQuantity",
        "sources": [
          "USER_INPUT"
        ],
        "label": "Requested Quantity",
        "indicator": "J",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "NUMERIC"
      }
    },
    "stockOnHand": {
      "name": "stockOnHand",
      "label": "Stock On Hand",
      "indicator": "E",
      "displayOrder": 7,
      "isDisplayed": true,
      "source": "CALCULATED",
      "columnDefinition": {
        "id": "752cda76-0db5-4b6e-bb79-0f531ab78e2c",
        "name": "stockOnHand",
        "sources": [
          "USER_INPUT",
          "CALCULATED"
        ],
        "label": "Stock On Hand",
        "indicator": "E",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "NUMERIC"
      }
    },
    "requestedQuantityExplanation": {
      "name": "requestedQuantityExplanation",
      "label": "Requested Quantity Explanation",
      "indicator": "W",
      "displayOrder": 9,
      "isDisplayed": true,
      "source": "USER_INPUT",
      "columnDefinition": {
        "id": "6b8d331b-a0dd-4a1f-aafb-40e6a72ab9f5",
        "name": "requestedQuantityExplanation",
        "sources": [
          "USER_INPUT"
        ],
        "label": "Requested Quantity Explanation",
        "indicator": "W",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "TEXT"
      }
    },
    "remarks": {
      "name": "remarks",
      "label": "Remarks",
      "indicator": "L",
      "displayOrder": 11,
      "isDisplayed": true,
      "source": "USER_INPUT",
      "columnDefinition": {
        "id": "2ed8c74a-f424-4742-bd14-cfbe67b6e7be",
        "name": "remarks",
        "sources": [
          "USER_INPUT"
        ],
        "label": "Remarks",
        "indicator": "L",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "TEXT"
      }
    }
  }
}



6

Disable the Total Stockout Days using API. Set "isDisplayed" to false.

Method: PUT

Body:

{
  "id": "5a268780-fafd-4243-9551-5c7daa824913",
  "programId": "dce17f2e-af3e-40ad-8e00-3496adef44c3",
  "columnsMap": {
    "beginningBalance": {
      "name": "beginningBalance",
      "label": "Beginning Balance",
      "indicator": "A",
      "displayOrder": 3,
      "isDisplayed": true,
      "source": "USER_INPUT",
      "columnDefinition": {
        "id": "33b2d2e9-3167-46b0-95d4-1295be9afc22",
        "name": "beginningBalance",
        "sources": [
          "USER_INPUT"
        ],
        "label": "Beginning Balance",
        "indicator": "A",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "NUMERIC"
      }
    },
    "totalLossesAndAdjustments": {
      "name": "totalLossesAndAdjustments",
      "label": "Total Losses And Adjustments",
      "indicator": "D",
      "displayOrder": 6,
      "isDisplayed": true,
      "source": "USER_INPUT",
      "columnDefinition": {
        "id": "cd57f329-f549-4717-882e-ecbf98122c38",
        "name": "totalLossesAndAdjustments",
        "sources": [
          "USER_INPUT"
        ],
        "label": "Total Losses And Adjustments",
        "indicator": "D",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "NUMERIC"
      }
    },
    "totalStockoutDays": {
      "name": "totalStockoutDays",
      "label": "Total Stockout Days",
      "indicator": "X",
      "displayOrder": 12,
      "isDisplayed": false,
      "source": "USER_INPUT",
      "columnDefinition": {
        "id": "750b9359-c097-4612-8328-d21671f88920",
        "name": "totalStockoutDays",
        "sources": [
          "USER_INPUT"
        ],
        "label": "Total Stockout Days",
        "indicator": "X",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "NUMERIC"
      }
    },
    "productName": {
      "name": "orderableProduct.name",
      "label": "Product",
      "indicator": "N",
      "displayOrder": 2,
      "isDisplayed": true,
      "source": "REFERENCE_DATA",
      "columnDefinition": {
        "id": "e53e80de-fc63-4ecb-b6b2-ef376b34c926",
        "name": "productName",
        "sources": [
          "REFERENCE_DATA"
        ],
        "label": "Product",
        "indicator": "N",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "TEXT"
      }
    },
    "totalReceivedQuantity": {
      "name": "totalReceivedQuantity",
      "label": "Total Received Quantity",      "indicator": "B",      "displayOrder": 4,      "isDisplayed": true,      "source": "USER_INPUT",      "columnDefinition": {        "id": "5ba8b72d-277a-4da8-b10a-23f0cda23cb4",        "name": "totalReceivedQuantity",        "sources": [          "USER_INPUT"        ],        "label": "Total Received Quantity",        "indicator": "B",        "mandatory": false,        "isDisplayRequired": false,        "canChangeOrder": true,        "canBeChangedByUser": false,        "columnType": "NUMERIC"      }    },    "approvedQuantity": {      "name": "approvedQuantity",      "label": "Approved Quantity",      "indicator": "K",      "displayOrder": 10,      "isDisplayed": true,      "source": "USER_INPUT",      "columnDefinition": {        "id": "a62a5fed-c0b6-4d49-8a96-c631da0d0113",        "name": "approvedQuantity",        "sources": [          "USER_INPUT"        ],        "label": "Approved Quantity",        "indicator": "K",        "mandatory": false,        "isDisplayRequired": false,        "canChangeOrder": true,        "canBeChangedByUser": false,        "columnType": "NUMERIC"      }    },    "total": {      "name": "total",      "label": "Total",      "indicator": "Y",      "displayOrder": 13,      "isDisplayed": true,      "source": "CALCULATED",      "columnDefinition": {        "id": "ef524868-9d0a-11e6-80f5-76304dec7eb7",        "name": "total",        "sources": [          "CALCULATED"        ],        "label": "Total",        "indicator": "Y",        "mandatory": false,        "isDisplayRequired": false,        "canChangeOrder": true,        "canBeChangedByUser": false,        "columnType": "NUMERIC"      }    },    "productCode": {      "name": "orderableProduct.productCode",      "label": "Product Code",      "indicator": "O",      "displayOrder": 1,      "isDisplayed": true,      "source": "REFERENCE_DATA",      "columnDefinition": {        "id": "bde01507-3837-47b7-ae08-cec92c0c3cd2",        "name": "productCode",        "sources": [          "REFERENCE_DATA"        ],        "label": "Product Code",        "indicator": "O",        "mandatory": false,        "isDisplayRequired": false,        "canChangeOrder": true,        "canBeChangedByUser": false,        "columnType": "TEXT"      }    },    "totalConsumedQuantity": {      "name": "totalConsumedQuantity",      "label": "Total Consumed Quantity",      "indicator": "C",      "displayOrder": 5,      "isDisplayed": true,      "source": "USER_INPUT",      "columnDefinition": {        "id": "9e825396-269d-4873-baa4-89054e2722f4",        "name": "totalConsumedQuantity",        "sources": [          "USER_INPUT",          "CALCULATED"        ],        "label": "Total Consumed Quantity",        "indicator": "C",        "mandatory": false,        "isDisplayRequired": false,        "canChangeOrder": true,        "canBeChangedByUser": false,        "columnType": "NUMERIC"      }    },    "requestedQuantity": {      "name": "requestedQuantity",      "label": "Requested Quantity",      "indicator": "J",      "displayOrder": 8,      "isDisplayed": true,      "source": "USER_INPUT",      "columnDefinition": {        "id": "4a2e9fd3-1127-4b68-9912-84a5c00f6999",        "name": "requestedQuantity",        "sources": [          "USER_INPUT"        ],        "label": "Requested Quantity",        "indicator": "J",        "mandatory": false,        "isDisplayRequired": false,        "canChangeOrder": true,        "canBeChangedByUser": false,        "columnType": "NUMERIC"      }    },    "stockOnHand": {      "name": "stockOnHand",      "label": "Stock On Hand",      "indicator": "E",      "displayOrder": 7,      "isDisplayed": true,      "source": "CALCULATED",      "columnDefinition": {        "id": "752cda76-0db5-4b6e-bb79-0f531ab78e2c",        "name": "stockOnHand",        "sources": [          "USER_INPUT",          "CALCULATED"        ],        "label": "Stock On Hand",        "indicator": "E",        "mandatory": false,        "isDisplayRequired": false,        "canChangeOrder": true,        "canBeChangedByUser": false,        "columnType": "NUMERIC"      }    },    "requestedQuantityExplanation": {      "name": "requestedQuantityExplanation",      "label": "Requested Quantity Explanation",      "indicator": "W",      "displayOrder": 9,      "isDisplayed": true,      "source": "USER_INPUT",      "columnDefinition": {        "id": "6b8d331b-a0dd-4a1f-aafb-40e6a72ab9f5",        "name": "requestedQuantityExplanation",        "sources": [          "USER_INPUT"        ],        "label": "Requested Quantity Explanation",        "indicator": "W",        "mandatory": false,        "isDisplayRequired": false,        "canChangeOrder": true,        "canBeChangedByUser": false,        "columnType": "TEXT"      }    },    "remarks": {      "name": "remarks",      "label": "Remarks",      "indicator": "L",      "displayOrder": 11,      "isDisplayed": true,      "source": "USER_INPUT",      "columnDefinition": {        "id": "2ed8c74a-f424-4742-bd14-cfbe67b6e7be",        "name": "remarks",        "sources": [          "USER_INPUT"        ],        "label": "Remarks",        "indicator": "L",        "mandatory": false,        "isDisplayRequired": false,        "canChangeOrder": true,        "canBeChangedByUser": false,        "columnType": "TEXT"      }    }  }}

OpenLMIS: the global initiative for powerful LMIS software