[Jira Tickets created] UI-Inventory - Display additional order data on Inventory item record

[Jira Tickets created] UI-Inventory - Display additional order data on Inventory item record

Jira Ticket created

This draft is finished. Further work and discussion will happen in the Jira Ticket:

UIIN-3350: Display additional order data on Inventory item recordIn Review

User Story

Purpose: 

User story statement(s):

As a librarian, when I am in an item record in the inventory app in the accordion "Acquisition"

I want to have

  1. a quick overview over the following acquisition data without switching into the app orders. 

    • Cost (expendedAmount from encumbrances divided by total order quantity)

      • the Currency should be used as in the app "Orders"

    • Acquisition method

    • Fund (Fund code(s) used at POL)

    • Organization name

  2. an opportunity to quickly assess the vendor information in the app organisations.

    • Organization code (Hyperlink to the respective data record)

    • Organization name (Hyperlink to the respective data record)

Scenarios:

Scenario 1 - Additional display of information

  • Given user is in the inventory app and viewing the item record

    • item already has an order

    • a POL is linked

  • When user clicks on the "Acquisition" accordion

  • Then the display should be extended with the following

    • Average cost - (calculations will be explained separately, the currency sign as well as the punctuation marks should be used as....) 

    • Acquisition method

    • Fund (can be more than one)

    • the already existing organizations code should become a hyperlink to the respective data record in the app "Organizations”

    • Organization name

Scenario 2 - Hyperlink to Organizations App

  • Given user is in the inventory app and viewing the item record

    •  item already has an order

    • a POL is linked

    • "Acquisition" accordion is open

  • When user clicks on the organization code

  • Then the Organization code should be a Hyperlink

    • the Hyperlink should lead to the respective data record in the app "Organizations"

Scenario 3 - Display of Organization name

  • Given user is in the inventory app and viewing the item record

    •  item already has an order

    • a POL is linked

    • "Acquisition" accordion is open

  • When user hovers over the Organization code (Hyperlink) (with the mouse)

  • Then there should be a tool tip displaying the full organization name 

  • When user clicks on the Organization name

  • Then the Organization name should be a Hyperlink

    • the Hyperlink should lead to the respective data record in the app "Organizations"

 

In scope

Pull additional information from POL and encumbrance and display on Item record

Out of scope

  • Pull cost data from invoices

  • Allow user to input cost data manually

  • To edit these displays manually

 

Mock-up

Extended Mock-Ups for the Organization code to address accessibility

The Organization name is too long to be displayed, but the organization code is only a number (in SLUB Dresden). In this ticket story, the Organization code becomes a link, which gets the user into the Organisations app. Further would it be helpful, to get the whole Organisations name displayed. For this I designed different options to figure out, which works best, especially for accessibility reasons. In the D-Erwerbung we decided to go with Variant 4.

Variant 4 - Full Organization Text with and without Organization code

Mockup - Verbesserte Anordnung.jpg

 

Previous Mock-ups

Questions

/

Comments

  • Which costs should be displayed? How are they calculated? Are there special cases?

    • What happens if multiple copies are assigned to different funds?

      • These are listed under "Funds," and the calculation for costs changes.

  • What should be displayed if there is no POL yet?

    • This extension is intended for copies with an order. Therefore, a POL already exists.

    • The extension for copies without an order will be considered in a separate ticket.

  • Is the order of the fields in the mock-up correct?

    • No, the grouping doesn't make much sense yet → We are still developing a counterproposal

Labels

  • acq-sig-topics

  • acquisition

  • metadatamanagement

Dependencies

Requirement Analysis

Additions: API-calls and Calculations

API Calls - Overviews

  • App: Name of the App, which contains the information. 

  • API-Doc: Link to the documentation of the most specific API-call. 

  • API-Element: Name of the Element, which value is needed. 

  • Action: Description of the action, which is conducted with the value of the API-Element, for example: extract, display, calculate, ....

  • Example: Example-Code of the element with relevant value(s).  

 

App

API-Doc

API-Element

Action

Example

App

API-Doc

API-Element

Action

Example

Inventory

/item-storage/items

purchaseOrderLineIdentifier

to extract the uuid of the POL to conduct the following queries

 

{ "id": "8a5762c5-53ce-4420-bbca-85bddb8c7fdd", "purchaseOrderLineIdentifier": "574f63b1-d576-4a3f-a60c-639d8f56af6e" }

Orders

/orders/order-lines/{id}

acquisitionMethod

to extract the uuid of the acquisition method and get the value out of orders/acquisition-methods

 

{ "id": "574f63b1-d576-4a3f-a60c-639d8f56af6e", "acquisitionMethod": "df26d81b-9d63-4ff8-bf41-49bf75cfa70e", "fundDistribution": [ { "code": "MO/401100"         } ], "locations": [ { "quantity": 3 } ], "eresource": { "accessProvider": "e8235069-53e6-46fd-9b13-525f90c8fb43" } }

 

{ "id": "574f63b1-d576-4a3f-a60c-639d8f56af6e", "acquisitionMethod": "df26d81b-9d63-4ff8-bf41-49bf75cfa70e", "fundDistribution": [ { "code": "MO/401100"         } ], "locations": [ { "quantity": 3 } ], "physical": { "materialSupplier": "e8235069-53e6-46fd-9b13-525f90c8fb43" } }

 

fundDistribution/code

to display the value in the item record

locations/quantity

to calculate average cost

eresource/accessProvider

to extract the uuid of the vendor and get the value of the field "name" out of /organizations/organizations

physical/materialSupplier

to extract the uuid of the vendor and get the value of the field "name" out of /organizations/organizations

Finance

/finance/transactions/?query=encumbrance.sourcePoLineId=="{id}"

currency

to display the value in the item record

{ "id": "3af17167-d702-4e44-9a64-6dab074c4838", "currency": "EUR", "encumbrance": { "amountExpended": 285.0     } }

 

encumbrance/amountExpended

to calculate average cost

Organiation

/organizations/organizations

name

to display the value in mouse-over or tool-tip

 

{ "id": "e8235069-53e6-46fd-9b13-525f90c8fb43",    "name": "Massmann Internationale Buchhandlung GmbH", "code": "3" }

 

code

to display the value in the in the item record

Settings / Orders

/orders/acquisition-methods/{id}

value

to display the value in the item record

 

{ "id": "df26d81b-9d63-4ff8-bf41-49bf75cfa70e", "value": "Purchase" }

 

Example: 3 Items | 1 Fund

API-calls

App Inventory

Example

{ "id": "8a5762c5-53ce-4420-bbca-85bddb8c7fdd", "purchaseOrderLineIdentifier": "574f63b1-d576-4a3f-a60c-639d8f56af6e" }

App Orders

Example - E-resource

{ "id": "574f63b1-d576-4a3f-a60c-639d8f56af6e", "acquisitionMethod": "df26d81b-9d63-4ff8-bf41-49bf75cfa70e", "fundDistribution": [ { "code": "MO/401100"         } ], "locations": [ { "quantity": 3 } ], "eresource": { "accessProvider": "e8235069-53e6-46fd-9b13-525f90c8fb43" } }

Example - Physical resource

{ "id": "574f63b1-d576-4a3f-a60c-639d8f56af6e", "acquisitionMethod": "df26d81b-9d63-4ff8-bf41-49bf75cfa70e", "fundDistribution": [ { "code": "MO/401100"         } ], "locations": [ { "quantity": 3 } ], "physical": { "materialSupplier": "e8235069-53e6-46fd-9b13-525f90c8fb43" } }

App Finance

Example

{ "id": "3af17167-d702-4e44-9a64-6dab074c4838", "currency": "EUR", "encumbrance": { "amountExpended": 285.0     } }

App Organization

Example

{ "id": "e8235069-53e6-46fd-9b13-525f90c8fb43",    "name": "Massmann Internationale Buchhandlung GmbH", "code": "3" }

Settings / Orders

Example

{ "id": "df26d81b-9d63-4ff8-bf41-49bf75cfa70e", "value": "Purchase" }

Calculation

Calculation step

Result

Value

Description

Calculation step

Result

Value

Description

operator 1

encumbrance/amountExpended

285

App Finance /

/finance/transactions/?query=encumbrance.sourcePoLineId=="{id}"

divided by

 

 

 

operator 2

locations/quantity

3

App Orders

/orders/order-lines/{id}

result

Average Cost

95

The result is the average cost of an item of the order line. 

Example: 2 Items | 2 Fund

API-calls

App Inventory

Example

{ "id": "854e20cf-16ca-4aa9-9a94-cd2f327ba7bd", "purchaseOrderLineIdentifier": "b4f2b0a0-751c-4c92-b77c-1cd015d471e8" }

App Orders

Example - Physical resource

{ "id": "b4f2b0a0-751c-4c92-b77c-1cd015d471e8", "acquisitionMethod": "df26d81b-9d63-4ff8-bf41-49bf75cfa70e", "fundDistribution": [ { "code": "BG/alberti"         }, { "code": "BG/andres"       }     ], "locations": [ { "quantity": 2 } ], "physical": { "materialSupplier": "6e0e20f2-5706-47f6-9aa8-086c809d4964" } }

App Finance

/finance/transactions/?query=encumbrance.sourcePoLineId=="{id}":

Example

{ "transactions": [ { "id": "8f59471d-adfd-41ed-bf9d-a1b77c0ff551", "currency": "EUR", "encumbrance": { "amountExpended": 380 } }, { "id": "6710951d-9158-49d9-bdbc-d6bf64400051", "currency": "EUR", "encumbrance": { "amountExpended": 380 } } ] }

App Organization

Example

{ "id": "6e0e20f2-5706-47f6-9aa8-086c809d4964",    "name": "Wissenschaftliche Versandbuchhandlung Dietmar Dreier", "code": "6" }

Settings / Orders

Example

{ "id": "df26d81b-9d63-4ff8-bf41-49bf75cfa70e", "value": "Purchase" }

Calculation

Calculation step

Result

Value

Description

Calculation step

Result

Value

Description

operator 1

encumbrance/amountExpended

380

380

App Finance /

/finance/transactions/?query=encumbrance.sourcePoLineId=="{id}"

sum up all operator 1

 

 

 

result (interim)

totalAmountExpended

760

The result is the complete amount of expenditure in the order line. 

divided by

 

 

 

operator 2

locations/quantity

2

App Orders

/orders/order-lines/{id}

result

Average Cost

380

The result is the average cost of an item of the order line.