Enable support for serials to create receiving pieces in ECS environments with central ordering
Description
Environment
Potential Workaround
CSP Approved
CSP Request Details
CSP Rejection Details
defines
is blocked by
Checklist
hideActivity
Serhii_Nosko December 12, 2024 at 3:49 PM
It should not be a valid case, so the answer is no, because we have a Location object in Po Line that has tenantId, and holding will be created in the same tenant accordingly during opening the order.
Folijet also implemented recently feature to Change ownership where holdings can be moved from one member tenant to another, but we in scope of this feature implemented consumer to update our Location.tenantId param in Po Line accordingly to keep consistency, so we should be safe here as well. Here is code for this: Code
Dennis Bridges December 12, 2024 at 3:30 PM
I believe the answer to this question is no, because locations cannot be move from one tenant to another. However, I will defer to just in case I have miss understood the question.
Owen Stephens December 12, 2024 at 12:03 PM
can you answer the following question from our dev:
" Will there ever be a situation where a tenantId on a location will not match the tenantId on an associated holdings permanentLocationId?"
cc
Jack Golding December 11, 2024 at 10:42 AM
Notes from call on
- Differences within holdings/locations resources is that they are now assigned a tenantId
- Some existing data within the ECS bugfest environment doesnt account for this
- Decided upon a workflow for this ticket namely that an affiliation select should still be used, being a filtered list of tenants whose tenantId
are used within the location/holdings resources attached to a POL, upon selecting an affiliation the holding/location field should then only be populated with options whose tenantId
matches that which has been selected in the affiliation field
Additional notes from generate receiving work:
callNumber is not always present
Switch over to using useLocations and useInstanceHoldings hooks from stripes-acq-components, can simply pass the instanceId from the POL instead of mapping holdingIds
Jag Goraya December 9, 2024 at 11:09 AM
TODO: Handle ECS vs non-ECS environments
Unknown:
Location ↔︎ Affiliation relationship should work as in Receiving
Locations can belong to multiple tenants
Description:
In ECS-enabled environments where the central tenant Consortium manager has Central Ordering enabled, receiving pieces generated by the central tenant Serials app do not display in Receiving in any tenant. To resolve this, the Serials app in the central tenant should include tenant (labelled “affiliation”) to the “generate receiving pieces” dialogue. This value is then passed to the piece as “receivingTenantID”. The list of valid TenantIDs can be found under “Tenant Address” within Settings → Consortium Manager → Membership.
In order for the system to know whether this situation applies, the following must be true:
ui-consortia-settings must be enabled on the tenant
Central ordering must be true in Settings - Consortium manager - Central ordering
User story statement(s):
As a serials librarian in a consortia using ECS
I want to be able to create receiving pieces from the serials management module
so that I can generate receiving pieces based on publication patterns
Scenarios:
Scenario 1:
Given ordering is allowed with affiliated locations
When I view the “Generate receiving pieces” modal
Then I see an option to selection an Affiliation value
Scenario 2:
Given ordering is NOT allowed with affiliated locations
When I view the “Generate receiving pieces” modal
Then I DO NOT see an option to selection an Affiliation value
Scenario 3:
Given the “Generate receiving pieces” modal
When there is an Affiliation field
Then this field must be validated as filled in either to enable the “Generate receiving pieces” button or to successfully complete the “Generate recieving pieces” step
Scenario 4:
Given I am seeing an option to select an Affiliation value in the Generate receiving pieces modal
When I open the dropdown on the Affiliation field
Then I see a filterable options list, with valid values displayed as I type.
Scenario 5:
Given the “Generate receiving pieces” modal with an Affiliation field that has a valid value
When I choose to “Generate receiving pieces”
Then the affiliation value is included in the JSON for each receiving piece in the
receivingTenantId
propertyOutstanding questions
How to know we are in an ECS context with affiliated locations?
How to know the list of valid values for the affiliation field?
Are there any changes to how we should process locations and holdings in ECS context?
Other information
The simplest approach maybe to bring in stripes-acq-components as that already has ECS/Affiliation handling in it
Acceptance criteria:
User the Serials app to generate receiving pieces for any holding in the central tenant
Verify that those pieces appear in the Receiving app in the central tenant as “expected”
If either of the prerequisites listed above is NOT true, then the “Affiliation” dropdown should NOT be present when generating pieces.
CC: