From 11808b422a5ca98cbceb4caf1708b6d42829d5fd Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Fri, 13 Feb 2026 15:23:52 +0000 Subject: [PATCH] Bug 30144: (QA follow-up) Add EDIFACT_SI authorised values to installer data Tests were failing on upgrade route because they tried to create EDIFACT_SI authorised values that already existed from the atomicupdate script, causing unique constraint violations. This patch: - Removes test code that created EDIFACT_SI values (tests should assume database defaults exist) - Adds EDIFACT_SI category to auth_val_cat.sql for fresh installs - Adds all 32 EDItEUR List 3B servicing instruction codes to auth_values.yml for fresh installs Now the authorised values exist in both installation paths: - Upgrade route: Created by atomicupdate script - Fresh install: Created by installer SQL/YAML files Test plan: 1. prove t/db_dependent/Koha/EDI.t 2. prove t/db_dependent/Koha/Edifact/Order.t 3. Verify both tests pass without warnings --- .../data/mysql/en/mandatory/auth_values.yml | 171 ++++++++++++++++++ .../data/mysql/mandatory/auth_val_cat.sql | 5 + t/db_dependent/Koha/EDI.t | 14 +- 3 files changed, 177 insertions(+), 13 deletions(-) diff --git a/installer/data/mysql/en/mandatory/auth_values.yml b/installer/data/mysql/en/mandatory/auth_values.yml index 79897bc843b..cd759a97500 100644 --- a/installer/data/mysql/en/mandatory/auth_values.yml +++ b/installer/data/mysql/en/mandatory/auth_values.yml @@ -5739,3 +5739,174 @@ tables: authorised_value: "770" lib: "Writer of accompanying material" lib_opac: "Writer of accompanying material" + + # EDItEUR List 3B - Servicing instruction codes for EDIFACT + - category: "EDIFACT_SI" + authorised_value: "BB" + lib: "Barcode labelling" + lib_opac: "Barcode labelling" + + - category: "EDIFACT_SI" + authorised_value: "BBN" + lib: "Do not apply barcode labels" + lib_opac: "Do not apply barcode labels" + + - category: "EDIFACT_SI" + authorised_value: "BC" + lib: "Classification" + lib_opac: "Classification" + + - category: "EDIFACT_SI" + authorised_value: "BCN" + lib: "Do not classify" + lib_opac: "Do not classify" + + - category: "EDIFACT_SI" + authorised_value: "BI" + lib: "Binding: binding, reinforcing, laminating" + lib_opac: "Binding: binding, reinforcing, laminating" + + - category: "EDIFACT_SI" + authorised_value: "BIN" + lib: "Do not apply normal binding" + lib_opac: "Do not apply normal binding" + + - category: "EDIFACT_SI" + authorised_value: "BJ" + lib: "Sleeving: jackets, sleeves, wallets" + lib_opac: "Sleeving: jackets, sleeves, wallets" + + - category: "EDIFACT_SI" + authorised_value: "BJN" + lib: "Do not supply normal sleeving" + lib_opac: "Do not supply normal sleeving" + + - category: "EDIFACT_SI" + authorised_value: "BP" + lib: "Audio/CD-ROM packaging: special pouches" + lib_opac: "Audio/CD-ROM packaging: special pouches" + + - category: "EDIFACT_SI" + authorised_value: "BPN" + lib: "Do not supply normal audio/CD-ROM packaging" + lib_opac: "Do not supply normal audio/CD-ROM packaging" + + - category: "EDIFACT_SI" + authorised_value: "BS" + lib: "Security fitting: triggers, Knogo labels" + lib_opac: "Security fitting: triggers, Knogo labels" + + - category: "EDIFACT_SI" + authorised_value: "BSN" + lib: "Do not apply usual security fitting" + lib_opac: "Do not apply usual security fitting" + + - category: "EDIFACT_SI" + authorised_value: "CA" + lib: "Cataloguing: catalogue record supply" + lib_opac: "Cataloguing: catalogue record supply" + + - category: "EDIFACT_SI" + authorised_value: "CAN" + lib: "Do not supply catalogue record" + lib_opac: "Do not supply catalogue record" + + - category: "EDIFACT_SI" + authorised_value: "JK" + lib: "Plastic wallet on paperback" + lib_opac: "Plastic wallet on paperback" + + - category: "EDIFACT_SI" + authorised_value: "JKN" + lib: "Do not supply plastic wallet" + lib_opac: "Do not supply plastic wallet" + + - category: "EDIFACT_SI" + authorised_value: "KA" + lib: "Kapco: thick laminate film on paperback" + lib_opac: "Kapco: thick laminate film on paperback" + + - category: "EDIFACT_SI" + authorised_value: "KAN" + lib: "Do not apply Kapco" + lib_opac: "Do not apply Kapco" + + - category: "EDIFACT_SI" + authorised_value: "LA" + lib: "Thin laminate film on paperback" + lib_opac: "Thin laminate film on paperback" + + - category: "EDIFACT_SI" + authorised_value: "LAN" + lib: "Do not laminate" + lib_opac: "Do not laminate" + + - category: "EDIFACT_SI" + authorised_value: "RE" + lib: "Reinforcement of hardback" + lib_opac: "Reinforcement of hardback" + + - category: "EDIFACT_SI" + authorised_value: "REN" + lib: "Do not reinforce hardback" + lib_opac: "Do not reinforce hardback" + + - category: "EDIFACT_SI" + authorised_value: "RP" + lib: "Reinforcement of paperback" + lib_opac: "Reinforcement of paperback" + + - category: "EDIFACT_SI" + authorised_value: "RPN" + lib: "Do not reinforce paperback" + lib_opac: "Do not reinforce paperback" + + - category: "EDIFACT_SI" + authorised_value: "SF" + lib: "Sewn flexi" + lib_opac: "Sewn flexi" + + - category: "EDIFACT_SI" + authorised_value: "SFN" + lib: "Do not sew" + lib_opac: "Do not sew" + + - category: "EDIFACT_SI" + authorised_value: "SL" + lib: "Plastic sleeve on hardback" + lib_opac: "Plastic sleeve on hardback" + + - category: "EDIFACT_SI" + authorised_value: "SLN" + lib: "Do not sleeve plastic on hardback" + lib_opac: "Do not sleeve plastic on hardback" + + - category: "EDIFACT_SI" + authorised_value: "TR" + lib: "Traditional case binding of paperback" + lib_opac: "Traditional case binding of paperback" + + - category: "EDIFACT_SI" + authorised_value: "TRN" + lib: "Do not case bind paperback" + lib_opac: "Do not case bind paperback" + + - category: "EDIFACT_SI" + authorised_value: "NF" + lib: "Non-standard servicing: see free text" + lib_opac: "Non-standard servicing: see free text" + + - category: "EDIFACT_SI" + authorised_value: "NS" + lib: "No servicing" + lib_opac: "No servicing" + + - category: "EDIFACT_SI" + authorised_value: "NX" + lib: "Non-standard servicing: see instructions sent outside EDI" + lib_opac: "Non-standard servicing: see instructions sent outside EDI" + + - category: "EDIFACT_SI" + authorised_value: "PF" + lib: "Binding as supplied by publisher" + lib_opac: "Binding as supplied by publisher" diff --git a/installer/data/mysql/mandatory/auth_val_cat.sql b/installer/data/mysql/mandatory/auth_val_cat.sql index 124ae72a794..a76ecb903aa 100644 --- a/installer/data/mysql/mandatory/auth_val_cat.sql +++ b/installer/data/mysql/mandatory/auth_val_cat.sql @@ -114,3 +114,8 @@ VALUES INSERT IGNORE INTO authorised_value_categories (category_name, is_system) VALUES ('BOOKING_CANCELLATION', 1); + +-- For EDIFACT +INSERT IGNORE INTO authorised_value_categories (category_name, is_system) +VALUES + ('EDIFACT_SI', 0); diff --git a/t/db_dependent/Koha/EDI.t b/t/db_dependent/Koha/EDI.t index a751692b389..88151868ea8 100755 --- a/t/db_dependent/Koha/EDI.t +++ b/t/db_dependent/Koha/EDI.t @@ -1990,19 +1990,7 @@ subtest 'servicing_instructions_quote_processing' => sub { ); } - # Add EDIFACT_SI authorized values for servicing instruction codes - for my $code ( [ 'BB', 'Barcode labelling' ], [ 'BI', 'Binding' ], [ 'BJ', 'Sleeving' ] ) { - $builder->build( - { - source => 'AuthorisedValue', - value => { - category => 'EDIFACT_SI', - authorised_value => $code->[0], - lib => $code->[1] - } - } - ); - } + # EDIFACT_SI authorized values are expected to exist from database defaults my $filename = 'QUOTES_SERVICING.CEQ'; ok( -e $dirname . $filename, 'File QUOTES_SERVICING.CEQ found' ); -- 2.53.0