]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/sql/Pg/upgrade/0433.edi_orders_template.sql
LP#1744385: Additions and edits to release note entry
[working/Evergreen.git] / Open-ILS / src / sql / Pg / upgrade / 0433.edi_orders_template.sql
1 BEGIN;
2
3 INSERT INTO config.upgrade_log (version) VALUES ('0433'); -- atz
4
5 UPDATE action_trigger.event_definition SET delay='00:00:00', template=$$
6 [%- USE date -%]
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)
12 -%]
13 [%- 
14 IF target.provider.edi_default.vendcode && target.provider.code == 'BRODART';
15     xtra_ftx = target.provider.edi_default.vendcode;
16 END;
17 -%]
18 [%- BLOCK big_block -%]
19 {
20    "recipient":"[% target.provider.san %]",
21    "sender":"[% target.ordering_agency.mailing_address.san %]",
22    "body": [{
23      "ORDERS":[ "order", {
24         "po_number":[% target.id %],
25         "date":"[% date.format(date.now, '%Y%m%d') %]",
26         "buyer":[
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 %]"}
32             [%- ELSE -%]
33                 {"id":"[% target.ordering_agency.mailing_address.san %]"}
34             [%- END -%]
35         ],
36         "vendor":[
37             [%- # target.provider.name (target.provider.id) -%]
38             "[% target.provider.san %]",
39             {"id-qualifier": 92, "id":"[% target.provider.id %]"}
40         ],
41         "currency":"[% target.provider.currency_type %]",
42                 
43         "items":[
44         [%- FOR li IN target.lineitems %]
45         {
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 %]"},
51                 [% ELSE -%]
52                 {"id-qualifier":"IB","id":"[% isbn %]"},
53                 [%- END %]
54             [% END %]
55                 {"id-qualifier":"IN","id":"[% li.id %]"}
56             ],
57             "price":[% li.estimated_unit_price || '0.00' %],
58             "desc":[
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) %]"}
63             ],
64             [%- ftx_vals = []; 
65                 FOR note IN li.lineitem_notes; 
66                     NEXT UNLESS note.vendor_public == 't'; 
67                     ftx_vals.push(note.value); 
68                 END; 
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
71             -%]
72
73             "free-text":[ 
74                 [% FOR note IN ftx_vals -%] "[% note %]"[% UNLESS loop.last %], [% END %][% END %] 
75             ],            
76             "quantity":[% li.lineitem_details.size %]
77         }[% UNLESS loop.last %],[% END %]
78         [%-# TODO: lineitem details (later) -%]
79         [% END %]
80         ],
81         "line_items":[% target.lineitems.size %]
82      }]  [%# close ORDERS array %]
83    }]    [%# close  body  array %]
84 }
85 [% END %]
86 [% tempo = PROCESS big_block; helpers.escape_json(tempo) %]
87
88 $$ 
89 WHERE id=23;
90
91 COMMIT;