3 INSERT INTO config.upgrade_log (version) VALUES ('0433'); -- atz
5 UPDATE action_trigger.event_definition SET delay='00:00:00', template=$$
7 [%# start JEDI document
8 # Vendor specific kludges:
9 # BT - vendcode goes to NAD/BY *suffix* w/ 91 qualifier
10 # INGRAM - vendcode goes to NAD/BY *segment* w/ 91 qualifier (separately)
11 # BRODART - vendcode goes to FTX segment (lineitem level)
14 IF target.provider.edi_default.vendcode && target.provider.code == 'BRODART';
15 xtra_ftx = target.provider.edi_default.vendcode;
18 [%- BLOCK big_block -%]
20 "recipient":"[% target.provider.san %]",
21 "sender":"[% target.ordering_agency.mailing_address.san %]",
24 "po_number":[% target.id %],
25 "date":"[% date.format(date.now, '%Y%m%d') %]",
27 [% IF target.provider.edi_default.vendcode && (target.provider.code == 'BT' || target.provider.name.match('(?i)^BAKER & TAYLOR')) -%]
28 {"id-qualifier": 91, "id":"[% target.ordering_agency.mailing_address.san _ ' ' _ target.provider.edi_default.vendcode %]"}
29 [%- ELSIF target.provider.edi_default.vendcode && target.provider.code == 'INGRAM' -%]
30 {"id":"[% target.ordering_agency.mailing_address.san %]"},
31 {"id-qualifier": 91, "id":"[% target.provider.edi_default.vendcode %]"}
33 {"id":"[% target.ordering_agency.mailing_address.san %]"}
37 [%- # target.provider.name (target.provider.id) -%]
38 "[% target.provider.san %]",
39 {"id-qualifier": 92, "id":"[% target.provider.id %]"}
41 "currency":"[% target.provider.currency_type %]",
44 [%- FOR li IN target.lineitems %]
46 "line_index":"[% li.id %]",
47 "identifiers":[ [%-# li.isbns = helpers.get_li_isbns(li.attributes) %]
48 [% FOR isbn IN helpers.get_li_isbns(li.attributes) -%]
49 [% IF isbn.length == 13 -%]
50 {"id-qualifier":"EN","id":"[% isbn %]"},
52 {"id-qualifier":"IB","id":"[% isbn %]"},
55 {"id-qualifier":"IN","id":"[% li.id %]"}
57 "price":[% li.estimated_unit_price || '0.00' %],
59 {"BTI":"[% helpers.get_li_attr('title', '', li.attributes) %]"},
60 {"BPU":"[% helpers.get_li_attr('publisher', '', li.attributes) %]"},
61 {"BPD":"[% helpers.get_li_attr('pubdate', '', li.attributes) %]"},
62 {"BPH":"[% helpers.get_li_attr('pagination','', li.attributes) %]"}
65 FOR note IN li.lineitem_notes;
66 NEXT UNLESS note.vendor_public == 't';
67 ftx_vals.push(note.value);
69 IF xtra_ftx; ftx_vals.unshift(xtra_ftx); END;
70 IF ftx_vals.size == 0; ftx_vals.unshift(''); END; # BT needs FTX+LIN for every LI, even if it is an empty one
74 [% FOR note IN ftx_vals -%] "[% note %]"[% UNLESS loop.last %], [% END %][% END %]
76 "quantity":[% li.lineitem_details.size %]
77 }[% UNLESS loop.last %],[% END %]
78 [%-# TODO: lineitem details (later) -%]
81 "line_items":[% target.lineitems.size %]
82 }] [%# close ORDERS array %]
83 }] [%# close body array %]
86 [% tempo = PROCESS big_block; helpers.escape_json(tempo) %]