Unskipping requisitions

Hello everyone,

  each reporting period in Malawi we are seeing about 20 requisitions that were mistakenly skipped by the users. This is currently problematic, as once a requisition is skipped, there's no going back. It is not possible to revert or cancel the skipped requisition. The only way to handle that is for a developer to go to the database and manually revert skipping (more precisely, we are marking the requisition as initiated and invoking the "delete" endpoint).

  We have been exploring possible solutions and we believe that a simple and effective change would be to allow deleting requisitions in skipped state (currently only allowed for initiated and submitted requisitions). Deleting a skipped requisition should only be possible if a new requisition for the next reporting period was not created yet. This is already enforced in the delete endpoint and wouldn't require additional work. Once a skipped requisition is deleted, a new one can be initiated for the same reporting period. The logic for deleting skipped requisition would be exactly the same as this for deleting an initiated and submitted requisition.

Proposed design:

   - DELETE /requisition/id endpoint would also accept SKIPPED requisitions

   - Invoking the endpoint for skipped requisition requires REQUISITION_DELETE and REQUISITION_CREATE rights

   - Attempting to delete skipped requisition for a given period when a requisition for the next period was already created should fail - this is currently enforced in the delete endpoint and should continue to be

   - UI would display the "Delete requisition" button when viewing skipped requisition and when user has got the necessary rights (delete + create)

  Since this is a problem that comes back every reporting period, the Malawi team is eager to work on that. Users with necessary rights would then be able to unskip/delete mistakenly skipped requisition themselves. Does anyone sees any issues with the proposed change? I've also updated with the proposed design.

Best regards,

  Sebastian.
···

https://openlmis.atlassian.net/browse/OLMIS-3233

      Sebastian Brudziński

    Software Developer / Team Leader

sbrudzinski@soldevelo.com

SolDevelo
Sp. z o.o. [LLC] / www.soldevelo.com
Al. Zwycięstwa 96/98, 81-451, Gdynia, Poland
Phone: +48 58 782 45 40 / Fax: +48 58 782 45 41

Hi Dev Forum,

There were no responses to Sebastian’s proposal, but the feature was implemented and is now part of OpenLMIS Requisition Service and Requisition UI.

The Product Committee has this as a possible agenda item tomorrow (24 October):

https://openlmis.atlassian.net/wiki/spaces/OP/pages/121896961/PC+October+24+2017

If anyone has input on the technical details, now is the last chance to weigh in.

-Brandon

···

On Friday, October 13, 2017 at 8:26:29 AM UTC-7, Sebastian Brudziński wrote:

Hello everyone,

  each reporting period in Malawi we are seeing about 20 requisitions that were mistakenly skipped by the users. This is currently problematic, as once a requisition is skipped, there's no going back. It is not possible to revert or cancel the skipped requisition. The only way to handle that is for a developer to go to the database and manually revert skipping (more precisely, we are marking the requisition as initiated and invoking the "delete" endpoint).
  We have been exploring possible solutions and we believe that a simple and effective change would be to allow deleting requisitions in skipped state (currently only allowed for initiated and submitted requisitions). Deleting a skipped requisition should only be possible if a new requisition for the next reporting period was not created yet. This is already enforced in the delete endpoint and wouldn't require additional work. Once a skipped requisition is deleted, a new one can be initiated for the same reporting period. The logic for deleting skipped requisition would be exactly the same as this for deleting an initiated and submitted requisition.

Proposed design:

   - DELETE /requisition/id endpoint would also accept SKIPPED requisitions

   - Invoking the endpoint for skipped requisition requires REQUISITION_DELETE and REQUISITION_CREATE rights

   - Attempting to delete skipped requisition for a given period when a requisition for the next period was already created should fail - this is currently enforced in the delete endpoint and should continue to be

   - UI would display the "Delete requisition" button when viewing skipped requisition and when user has got the necessary rights (delete + create)
  Since this is a problem that comes back every reporting period, the Malawi team is eager to work on that. Users with necessary rights would then be able to unskip/delete mistakenly skipped requisition themselves. Does anyone sees any issues with the proposed change? I've also updated [https://openlmis.atlassian.net/browse/OLMIS-3233](https://openlmis.atlassian.net/browse/OLMIS-3233) with the proposed design.

Best regards,

  Sebastian.


Sebastian Brudziński

    Software Developer / Team Leader


SolDevelo
Sp. z o.o. [LLC] / www.soldevelo.com
Al. Zwycięstwa 96/98, 81-451, Gdynia, Poland
Phone: +48 58 782 45 40 / Fax: +48 58 782 45 41