[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
- 1 User Story
- 2 Scenarios:
- 3 Mock-up
- 3.1 Extended Mock-Ups for the Organization code to address accessibility
- 3.2 Previous Mock-ups
- 3.2.1 Variants for Accessibility
- 3.2.2 Variant 1 - Tooltip
- 3.2.3 Variant 2 - Popover
- 3.2.4 Variant 3 - Info Icon
- 3.2.5 Variant 4 - Full Organization Text with and without Organization code
- 3.2.6 Proposed optimized grouping
- 3.2.7 First Mock-Up draft from the existing UI Ticket
- 3.2.8 Optimized grouping of acquisition data proposed from SME Lead at SLUB
- 4 Questions
- 5 Comments
- 6 Labels
- 7 Dependencies
- 8 Requirement Analysis
- 9 Additions: API-calls and Calculations
- 9.1 API Calls - Overviews
- 9.2 Example: 3 Items | 1 Fund
- 9.2.1 API-calls
- 9.2.1.1 App Inventory
- 9.2.1.2 App Orders
- 9.2.1.3 App Finance
- 9.2.1.4 App Organization
- 9.2.1.5 Settings / Orders
- 9.2.2 Calculation
- 9.2.1 API-calls
- 9.3 Example: 2 Items | 2 Fund
- 9.3.1 API-calls
- 9.3.1.1 App Inventory
- 9.3.1.2 App Orders
- 9.3.1.3 App Finance
- 9.3.1.4 App Organization
- 9.3.1.5 Settings / Orders
- 9.3.2 Calculation
- 9.3.1 API-calls
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
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
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
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 |
---|---|---|---|---|
|
| to extract the uuid of the POL to conduct the following queries |
{
"id": "8a5762c5-53ce-4420-bbca-85bddb8c7fdd",
"purchaseOrderLineIdentifier": "574f63b1-d576-4a3f-a60c-639d8f56af6e"
} | |
|
| 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"
}
}
| |
| to display the value in the item record | |||
| to calculate average cost | |||
| to extract the uuid of the vendor and get the value of the field "name" out of /organizations/organizations | |||
| to extract the uuid of the vendor and get the value of the field "name" out of /organizations/organizations | |||
| /finance/transactions/?query=encumbrance.sourcePoLineId=="{id}" |
| to display the value in the item record | {
"id": "3af17167-d702-4e44-9a64-6dab074c4838",
"currency": "EUR",
"encumbrance": {
"amountExpended": 285.0
}
}
|
| to calculate average cost | |||
|
| to display the value in mouse-over or tool-tip |
{
"id": "e8235069-53e6-46fd-9b13-525f90c8fb43",
"name": "Massmann Internationale Buchhandlung GmbH",
"code": "3"
}
| |
| to display the value in the in the item record | |||
|
| 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 |
---|---|---|---|
operator 1 |
|
|
/finance/transactions/?query=encumbrance.sourcePoLineId=="{id}" |
divided by |
|
|
|
operator 2 |
|
|
|
result |
|
| 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 |
---|---|---|---|
operator 1 |
|
|
/finance/transactions/?query=encumbrance.sourcePoLineId=="{id}" |
sum up all operator 1 |
|
|
|
result (interim) |
|
| The result is the complete amount of expenditure in the order line. |
divided by |
|
|
|
operator 2 |
|
|
|
result |
|
| The result is the average cost of an item of the order line. |