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".

URL: http://10.222.17.134/referencedata/api/programs?access_token=7f332b69-89af-4057-b3c4-502a59c4a2f6

  Method: GET

                                                                                                                            

                                                 

2

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

URL:  http://10.222.17.134/requisition/api/requisitionTemplates/search?program=dce17f2e-af3e-40ad-8e00-3496adef44c3&access_token=7f332b69-89af-4057-b3c4-502a59c4a2f6

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.

URL:  http://10.222.17.134/requisition/api/requisitionTemplates/5a268780-fafd-4243-9551-5c7daa824913?access_token=3ced5a17-5008-476a-80b1-a1a3cd5de4b1

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.

URL;  http://10.222.17.134/requisition/api/requisitionTemplates/ http://10.222.17.134/requisition/api/requisitionTemplates/search?program=dce17f2e-af3e-40ad-8e00-3496adef44c3&access_token=7f332b69-89af-4057-b3c4-502a59c4a2f6?access_token=7f332b69-89af-4057-b3c4-502a59c4a2f6

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"
        ],
        "la