Enable support for serials to create receiving pieces in ECS environments with central ordering

Description

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 property

Outstanding 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:

Environment

None

Potential Workaround

None

CSP Approved

None

CSP Request Details

None

CSP Rejection Details

None

Checklist

hide

Activity

Show:

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 tenantIdare 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

Done

Details

Assignee

Reporter

Priority

Sprint

Development Team

Bienenvolk

Fix versions

Release

Ramsons (R2 2024) Bug Fix

TestRail: Cases

Open TestRail: Cases

TestRail: Runs

Open TestRail: Runs
Created September 17, 2024 at 6:33 PM
Updated January 10, 2025 at 4:04 PM
Resolved January 10, 2025 at 4:04 PM
TestRail: Cases
TestRail: Runs