Koha-clms/acqui
Martin Renvoize c215f2dd43
Bug 30144: Add UI for servicing instructions
This patch adds the user interface for managing and displaying
EDIFACT servicing instructions in the acquisitions module.

Changes to acqui/neworderempty.pl:
- Parses servicing_instruction JSON for editing existing orders
- Fetches EDIFACT_SI authorized values for dropdown
- Passes data to template in both array and JSON formats

Changes to acqui/addorder.pl:
- Accepts servicing_instruction_groups_json from form submission
- Validates and stores JSON in database

Changes to acqui/basket.pl:
- Fetches EDIFACT_SI authorized values
- Formats servicing instructions for display in get_order_infos()
- Creates human-readable display strings with:
  * LVC codes replaced with descriptions
  * Groups separated by <br> tags
  * Format: "Description" or "Description: free text"

Changes to neworderempty.tt:
- Dynamic UI for adding/removing servicing instruction groups
- Each group can contain:
  * One LVC (coded) instruction only, OR
  * One LVT (free-text) instruction only, OR
  * One LVC + one LVT combination
- Validation prevents:
  * More than 2 instructions per group
  * Duplicate LVC or LVT in same group
- LVC instructions use dropdown populated from EDIFACT_SI authorized values
- LVT instructions use free-text input
- Groups serialized to JSON hidden field for form submission
- Smart button labels show what can be added to each group

Changes to basket.tt:
- Displays servicing instructions in basket table
- Pre-formatted in Perl (no JavaScript parsing needed)
- Shows LVC descriptions instead of codes
- Multiple groups displayed on separate lines

Changes to columns_settings.yml:
- Adds servicing_instruction column to basket table configuration

Display format examples:
- LVC only: "Barcode labelling"
- LVT only: "Handle with care"
- Combined: "Binding: Apply to spine"
- Multiple groups (on separate lines):
  Barcode labelling
  Binding: Special instructions

Test plan:
1. Create/edit order
2. Add servicing instruction groups
3. Try to add more than 2 instructions to a group (should prevent)
4. Try to add duplicate LVC or LVT to group (should prevent)
5. Save order
6. View basket and verify instructions display correctly
7. Edit order and verify instructions load into form

Sponsored-by: Martin Renvoize <martin.renvoize@gmail.com>
Signed-off-by: Hannah Dunne-Howrie <hdunne-howrie@westminster.gov.uk>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Pedro Amorim <pedro.amorim@openfifth.co.uk>
2026-08-28 16:36:22 +00:00
..
acqui-home.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
addorder.pl Bug 30144: Add UI for servicing instructions 2026-08-28 16:36:22 +00:00
addorderiso2709.pl Bug 42764: Fix spelling errors across the codebase 2026-06-03 16:09:04 +00:00
ajax-getauthvaluedropbox.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
basket.pl Bug 30144: Add UI for servicing instructions 2026-08-28 16:36:22 +00:00
basketgroup.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
basketheader.pl Bug 41076: Adjust our perl tidiness for v20250105 2026-02-05 09:03:51 -07:00
booksellers.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
cancelorder.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
check_budget_total.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
check_uniqueness.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
duplicate_orders.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
edifactmsgs.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
edimsg.pl Bug 40383: Add JSON representation to Koha::Edifact and JSON download to edimsg.pl 2026-03-26 14:21:18 +01:00
finishreceive.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
histsearch.pl Bug 41454: Remove unused dbh calls 2026-04-15 09:14:51 -06:00
invoice-files.pl Bug 42080: (follow-up) limit data sent to libmagic to 100 characters 2026-06-26 11:56:58 +00:00
invoice.pl Bug 41996: Filter EDI errors on invoice page by invoicenumber 2026-08-18 11:21:34 +00:00
invoices.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
lateorders-export.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
lateorders.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
moddeliverydate.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
modordernotes.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
neworderempty.pl Bug 30144: Add UI for servicing instructions 2026-08-28 16:36:22 +00:00
newordersubscription.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
newordersuggestion.pl Bug 39726: Remove op connectDuplicate from acqui/newordersuggestions.pl 2026-06-19 15:39:10 +00:00
ordered.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
orderreceive.pl Bug 39724: Remove GetSuggestionInfo from C4/Suggestions.pm 2026-03-05 08:34:04 -07:00
parcel.pl Bug 39724: Remove GetSuggestionInfo from C4/Suggestions.pm 2026-03-05 08:34:04 -07:00
parcels.pl Bug 12278: Add a total column to the table in parcels.pl 2026-08-25 08:56:29 +00:00
showorder.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
spent.pl Bug 42225: (QA follow-up) Use configured unitprice field in outer SELECT 2026-07-16 10:54:38 +00:00
transferorder.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
uncertainprice.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
vendor_issues.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
vendors.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
z3950_search.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00