In order to better accommodate the procedures of the various libraries, it's necessary for us to make the inventory integration a little more flexible. In order to accomplish this we're moving away from "create inventory/item" flags and will support two new enumeration fields:
- "Instance, Holding, Item" (default)
- "Instance, Holding"
- "Instance, Holding, Item"
- "Instance, Holding" (default)
It may seem redundant to have these fields in both physical and eresource sections of poLine, but this allows for better support of P/E Mix orders, e.g. create Instance, Holding and Item for the physical part, but don't create anything for the electronic part.
As it currently stands, orders of type "Other" don't have a separate section in poLine, and sort of "piggyback" on the physical section. For now we can keep this as-is.
: The defaults identified above should NOT be set in the schemas, but rather in the code. There are a few reasons for this... We plan on later implementing the ability for tenants to specify defaults which override the system-wide defaults noted in this story. Another reason relates to orders of type "Other" and is described below.
In the UI these will appear as drop-down menus in each of the accordions. The drop-down in the physical accordion should adjust the default to "None" if the order is of type "Other". This work will be tracked in a separate story.
- poLine.physical.createInventory has been added to the schemas as described above
- poLine.eresource.createInventory has been refactored in the schemas as described above
- schema examples have been updated
- the business logic related to instance/holding/item creation has been updated such that the record types specified are created
- 80%+ test coverage on new code
- API tests are updated