From 4448955d112b9b5b8d88262e581446f57e28ce22 Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Mon, 18 May 2015 14:34:03 -0400 Subject: [PATCH] LP#1373690 IMD field repairs Signed-off-by: Bill Erickson --- .../src/sql/Pg/upgrade/XXXX.data.acq-order-edi.sql | 26 +++++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.data.acq-order-edi.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.data.acq-order-edi.sql index 886c6c6b08..e7169c1fd1 100644 --- a/Open-ILS/src/sql/Pg/upgrade/XXXX.data.acq-order-edi.sql +++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.data.acq-order-edi.sql @@ -205,6 +205,20 @@ FOR li IN target.lineitems; LINEITEMS.push(li_hash); END; # for lineitem + +# IMD fields are limited to 70 chars per value. Any values longer +# should be carried via repeating IMD fields. +# IMD fields should only display the +::: when a value is present +MACRO IMD(code, value) BLOCK; + IF NOT value; -%] +IMD+F+[% code %]' + [%- ELSE; + FOR line IN value.chunk(70) -%] +IMD+F+[% code %]+:::[% helpers.escape_edi(line) %]' + [%- END; + END; +END; + -%] [%- BLOCK big_block -%] UNA:+.? ' @@ -220,14 +234,14 @@ CUX+2:[% target.provider.currency_type %]:9' [%- FOR li_hash IN LINEITEMS -%] LIN+[% li_hash.id %]++[% li_hash.idval %]:[% li_hash.idqual %]' PIA+5+[% li_hash.idval %]:[% li_hash.idqual %]' -IMD+F+BTI[% IF li_hash.title %]+:::[% li_hash.title %][% END %]' -IMD+F+BPD[% IF li_hash.pubdate %]+:::[% li_hash.pubdate %][% END %]' -IMD+F+BPU[% IF li_hash.publisher %]+:::[% li_hash.publisher %][% END %]' +[% IMD('BTI', li_hash.title) -%] +[% IMD('BPD', li_hash.pubdate) -%] +[% IMD('BPU', li_hash.publisher) -%] [%- IF VENDOR_ULS -%] -IMD+F+BPU[% IF li_hash.author %]+:::[% li_hash.author %][% END %]' -IMD+F+BEN[% IF li_hash.edition %]+:::[% li_hash.edition %][% END %]' +[% IMD('BPU', li_hash.author) -%] +[% IMD('BEN', li_hash.edition) -%] [%- ELSE -%] -IMD+F+BPH[% IF li_hash.pagination %]+:::[% li_hash.pagination %][% END %]' +[% IMD('BPH', li_hash.pagination) -%] [%- END -%] QTY+21:[% li_hash.quantity %]' [%- GIR_INDEX = 0; -%] -- 2.11.0