Implement request status "Closed - Pickup expired"
Description
Purpose: to implement request status "Closed - Pickup expired"
User story: As a circ desk worker I want requested books to only sit on the hold shelf for a limited period of time So that the hold shelves are not clogged with held books that haven't been picked up
Scenarios
Scenario
Given a request with Request status = "Open - Awaiting pickup"
When the request's "Hold shelf expiration date" passes
Then:
The request status should change to "Closed - Pickup expired"
The request is removed from the queue for the item by
removing it's position
re-positioning all other requests in the queue accordingly
The item status of the associated item should remain "Awaiting pickup"
No edit button or other edit option should appear (closed requests should never be editable)
NOTE: and I were discussing whether expiration should happen at the beginning or end of the day for day/week/month periods or if they should expire at a specific time of day like minute/hour periods. I said we should do what's easiest and Marc said, "Treating all of the periods similarly and expiring at a specific date and time is likely easiest, as it means we don't have to involve the respecting time zone work into this area. (We would if we wanted to do beginning or end of the day)."
Scenario
Given requested item A with request status "Closed - Pickup expired"
When item A is checked in
Then check in should behave as it would if the request weren’t present - I will add some test scenarios to elaborate on how that logic should work)
Test Scenarios (to elaborate on scenario 2 above) This functionality already works, we just need to make sure it still works in this new scenario
Scenario
Given a requested Item A with Item status = Awaiting pickup AND Request X is in position 1 of the request queue and Request Y is in position 2 of the request queue
When Request X becomes "Closed - Pickup expired" AND Item A is checked in at Service Point 1
Then:
Item status will change to Awaiting pickup if Request Y has pickup service point Service Point 1
Item status will change to In transit if Request Y has pickup service point other than Service Point 1
Scenario
Given a requested Item A with Item status = Awaiting pickup AND Request X is in position 1 of the request queue AND there are no other requests in the request queue for that item
When Request X becomes "Closed - Pickup expired" AND Item A is checked in at Service Point 1
Then:
Item status will change to Awaiting pickup Available if Item A's Effective location is related to Service Point 1
Item status will change to In transit if Item A's Effective location is not related to Service Point 1
Purpose: to implement request status "Closed - Pickup expired"
User story:
As a circ desk worker
I want requested books to only sit on the hold shelf for a limited period of time
So that the hold shelves are not clogged with held books that haven't been picked up
Scenarios
Scenario
Given a request with Request status = "Open - Awaiting pickup"
When the request's "Hold shelf expiration date" passes
Then:
The request status should change to "Closed - Pickup expired"
The request is removed from the queue for the item by
removing it's position
re-positioning all other requests in the queue accordingly
The item status of the associated item should remain "Awaiting pickup"
No edit button or other edit option should appear (closed requests should never be editable)
NOTE: and I were discussing whether expiration should happen at the beginning or end of the day for day/week/month periods or if they should expire at a specific time of day like minute/hour periods. I said we should do what's easiest and Marc said, "Treating all of the periods similarly and expiring at a specific date and time is likely easiest, as it means we don't have to involve the respecting time zone work into this area. (We would if we wanted to do beginning or end of the day)."
Scenario
Given requested item A with request status "Closed - Pickup expired"
When item A is checked in
Then check in should behave as it would if the request weren’t present - I will add some test scenarios to elaborate on how that logic should work)
Test Scenarios (to elaborate on scenario 2 above)
This functionality already works, we just need to make sure it still works in this new scenario
Scenario
Given a requested Item A with Item status = Awaiting pickup AND Request X is in position 1 of the request queue and Request Y is in position 2 of the request queue
When Request X becomes "Closed - Pickup expired" AND Item A is checked in at Service Point 1
Then:
Item status will change to Awaiting pickup if Request Y has pickup service point Service Point 1
Item status will change to In transit if Request Y has pickup service point other than Service Point 1
Scenario
Given a requested Item A with Item status = Awaiting pickup AND Request X is in position 1 of the request queue AND there are no other requests in the request queue for that item
When Request X becomes "Closed - Pickup expired" AND Item A is checked in at Service Point 1
Then:
Item status will change to Awaiting pickup Available if Item A's Effective location is related to Service Point 1
Item status will change to In transit if Item A's Effective location is not related to Service Point 1