As an administrator I want to create processing schedules and processing periods in OpenLMIS so that I can define the schedules used for the requisition process.
A new page is created for Administration called Processing Schedules.
An admin can create a new processing schedule by clicking on the "Add Processing Schedule" button.
The Processing Schedule Code, and Name are required text fields, and the Processing Schedule Description is an optional text field.
When a new processing schedule is added successfully, they are directed back to the Processing Schedules page, and the new schedule appears in the table.
Processing schedule codes are unique.
This should be validated when the processing schedule is saved to the OpenLMIS Reference Data Service
The Processing Schedule code cannot be edited or changed once the Processing Schedule has been created.
An admin can create and define processing periods within a schedule by clicking on the Edit button.
When adding Processing Periods to a Processing Schedule, the following fields are required:
Name (text input)
Processing Schedule Code (text input)
Start Date (date input)
Has popover description "The first start date should match when your organization will begin requisitioning and reporting."
Can be any day, but must be before the End Date
End Date (date input)
Can be any day after the Start Date, and can't be the Start Date
Processing periods are ordered by start date in ascending order (earliest to latest)
Processing periods are paginated
Once the first period is created, the frontend sets the initial value for the start date to be one day after the last processing period defined in the schedule and the start date is not editable
If no periods exist, the admin can edit the start date
When the admin clicks Save, a confirmation modal appears that asks "Do you want to save changes to the 'Processing schedule code'?" Where the processing schedule code matches the schedule that was updated (MPS or QTR in the mockup example).
A Processing Period within a schedule cannot be removed if there have been requisitions created using it. (editing is a separate ticket)
When a processing period is added to an existing processing schedule used by requisitions, the new processing periods are immediately available to use in requisitions.
Editing an existing processing period is a separate ticket