DBA Data[Home] [Help]

PACKAGE BODY: APPS.INV_LABEL_PVT7

Source


1 PACKAGE BODY INV_LABEL_PVT7 AS
2 /* $Header: INVLAP7B.pls 120.11.12020000.3 2013/01/19 13:25:24 blavu ship $ */
3 
4 LABEL_B     CONSTANT VARCHAR2(50) := '<label';
5 LABEL_E     CONSTANT VARCHAR2(50) := '</label>'||fnd_global.local_chr(10);
6 VARIABLE_B  CONSTANT VARCHAR2(50) := '<variable name= "';
7 VARIABLE_E  CONSTANT VARCHAR2(50) := '</variable>'||fnd_global.local_chr(10);
8 TAG_E    CONSTANT VARCHAR2(50)  := '>'||fnd_global.local_chr(10);
9 l_debug number;
10 
11 
12 PROCEDURE trace(p_message IN VARCHAR2) iS
13 BEGIN
14       inv_label.trace(p_message, 'LABEL_SHIPPING');
15 END trace;
16 
17 FUNCTION get_total_number_of_lpns(p_delivery_id IN NUMBER) RETURN NUMBER
18 IS
19    l_lpn_count    NUMBER := 0;
20 BEGIN
21    SELECT count(*)  INTO l_lpn_count
22    FROM wsh_delivery_assignments_v
23    WHERE delivery_id = p_delivery_id
24    AND  parent_delivery_detail_id is null;
25       RETURN l_lpn_count;
26 EXCEPTION
27    WHEN no_data_found THEN
28    RETURN  0;
29 
30 END get_total_number_of_lpns;
31 
32    --Bug# 5051977. Added the following function.
33    --This function will return 'Y' if there is a label aready printed for this LPN
34    --and delivery; otherwise it returns 'N'. This is used only for pick drop.
35    FUNCTION check_duplicate_label ( p_delivery_id IN NUMBER, p_transaction_id IN NUMBER)
36    RETURN VARCHAR2
37    IS
38       CURSOR Dup_Staging_txn_cur IS
39           SELECT 'Y'
40           FROM mtl_material_transactions mmt ,
41                mtl_material_transactions_temp mmtt,
42                wsh_delivery_assignments wda,
43                wsh_delivery_details wdd
44           WHERE mmtt.transaction_temp_id     = p_transaction_id
45           AND wda.delivery_id                = p_delivery_id
46           AND mmt.organization_id            = mmtt.organization_id
47           AND mmt.transaction_source_type_id IN (INV_GLOBALS.G_SOURCETYPE_SALESORDER,INV_GLOBALS.G_SOURCETYPE_INTORDER)
48           AND mmt.transaction_action_id      = INV_GLOBALS.G_ACTION_STGXFR
49           AND mmtt.transfer_lpn_id           = mmt.transfer_lpn_id
50           AND mmt.move_order_line_id         = wdd.move_order_line_id
51           AND wda.delivery_detail_id         = wdd.delivery_detail_id
52           AND ROWNUM<2;
53 
54       l_dup_label  VARCHAR2(1):= 'N';
55       l_debug       NUMBER  := INV_LABEL.l_debug;
56    BEGIN
57          IF (l_debug = 1) THEN
58              trace('In duplicate label check for del:'|| p_delivery_id||'tranxid:'||p_transaction_id);
59          End if;
60          OPEN  Dup_Staging_txn_cur ;
61          FETCH Dup_Staging_txn_cur INTO l_dup_label ;
62          CLOSE Dup_Staging_txn_cur;
63          IF ( l_dup_label = 'Y' AND l_debug = 1 ) THEN
64               trace('There is a label already printed for this LPN and delivery.');
65          END IF;
66          RETURN l_dup_label;
67    EXCEPTION
68    WHEN OTHERS THEN
69          RETURN 'N';
70    END check_duplicate_label;
71    --End of fix for Bug# 5051977
72 
73 PROCEDURE get_variable_data(
74    x_variable_content   OUT NOCOPY INV_LABEL.label_tbl_type
75 ,  x_msg_count    OUT NOCOPY NUMBER
76 ,  x_msg_data     OUT NOCOPY VARCHAR2
77 ,  x_return_status      OUT NOCOPY VARCHAR2
78 ,  p_label_type_info IN INV_LABEL.label_type_rec
79 ,  p_transaction_id  IN NUMBER
80 ,  p_input_param     IN MTL_MATERIAL_TRANSACTIONS_TEMP%ROWTYPE
81 ,  p_transaction_identifier IN NUMBER
82 ) IS
83 
84    l_delivery_id     NUMBER;
85    l_delivery_detail_id NUMBER;
86 
87    l_move_order_line_id NUMBER;
88 
89 ---------------------------------------------------------------------------------------------
90 -- Project: 'Custom Labels' (A 11i10+ Project)                                               |
91 -- Author: Dinesh ([email protected])                                                      |
92 -- Change Description:                                                                       |
93 --   Following variables were added (as a part of 11i10+ 'Custom Labels' Project)            |
94 --   to retrieve and hold the SQL Statement and it's result.                                 |
95 ---------------------------------------------------------------------------------------------
96    l_sql_stmt  VARCHAR2(4000);
97    l_sql_stmt_result VARCHAR2(4000) := NULL;
98    TYPE sql_stmt IS REF CURSOR;
99    c_sql_stmt sql_stmt;
100    l_custom_sql_ret_status VARCHAR2(1);
101    l_custom_sql_ret_msg VARCHAR2(2000);
102 
103    -- Fix for bug: 4179593 Start
104    l_CustSqlWarnFlagSet BOOLEAN;
105    l_CustSqlErrFlagSet BOOLEAN;
106    l_CustSqlWarnMsg VARCHAR2(2000);
107    l_CustSqlErrMsg VARCHAR2(2000);
108    -- Fix for bug: 4179593 End
109 
110  ------------------------End of this change for Custom Labels project code--------------------
111 
112    CURSOR  c_wdd_shipping IS
113    SELECT wda.delivery_id, wdd.organization_id, wdd.subinventory
114    FROM   wsh_delivery_assignments_v   wda, wsh_new_deliveries wnd
115           , wsh_delivery_details wdd
116    WHERE  wda.delivery_detail_id = p_transaction_id
117    AND    wnd.delivery_id        = wda.delivery_id
118    AND    wdd.delivery_detail_id(+) = wda.delivery_detail_id;
119 
120    CURSOR   c_cart_shipping IS
121    SELECT   wda.delivery_id, mmtt.organization_id, mmtt.subinventory_code
122    FROM  wsh_delivery_assignments_v wda, wsh_new_deliveries wnd,
123       wsh_delivery_details wdd, mtl_material_transactions_temp mmtt
124    WHERE    mmtt.move_order_line_id    = wdd.move_order_line_id
125    AND      wda.delivery_detail_id     = wdd.delivery_detail_id
126    AND      wnd.delivery_id            = wda.delivery_id
127    AND      mmtt.transaction_temp_id   = p_transaction_id;
128 
129    -- Fix for Bug# 3786272. Removed the 'wms_packaging_hist' from the 'FROM' clause.
130 
131    CURSOR c_cart_shipping_pkg IS
132    SELECT   DISTINCT(wda.delivery_id)
133    FROM  wsh_delivery_assignments_v wda, wsh_new_deliveries wnd,
134       wsh_delivery_details wdd, mtl_material_transactions_temp mmtt
135       --wms_packaging_hist wph
136    WHERE    mmtt.move_order_line_id    = wdd.move_order_line_id (+)
137    AND      wda.delivery_detail_id (+)    = wdd.delivery_detail_id
138    AND      wnd.delivery_id (+)           = wda.delivery_id
139    AND      mmtt.cartonization_id      = p_transaction_id; -- Bug 2374644
140 
141 
142    /* Bug 2072560:
143       The solution to this (in consultation with  Tharian and Janet), we will derive
144            the move_order_line_id from the mmtt and then with the move_order_line_id
145            derive the delivery_detail_id from the WDD and then eventually the delivery_id.
146    */
147    /*CURSOR c_mmtt_temp_id IS
148    SELECT move_order_line_id
149    FROM   mtl_material_transactions_temp mmtt
150    WHERE  mmtt.transaction_temp_id = p_transaction_id;
151 
152 
153 
154       CURSOR c_wdd_delivery_dtl_id IS
155    SELECT delivery_detail_id
156    FROM   wsh_delivery_details wdd
157    WHERE  wdd.move_order_line_id = l_move_order_line_id;
158 
159 
160    CURSOR c_wda_delivery_id IS
161    SELECT delivery_id
162    FROM   wsh_delivery_assignments_v wda
163    WHERE  wda.delivery_detail_id = l_delivery_detail_id;*/
164 
165    /* Combined the above three cursors into one */
166    CURSOR c_mmtt_pick_drop IS
167    SELECT wda.delivery_id, mmtt.organization_id, mmtt.transfer_subinventory
168    FROM   wsh_delivery_assignments_v wda, wsh_delivery_details wdd
169           , mtl_material_transactions_temp mmtt
170    WHERE  wda.delivery_detail_id = wdd.delivery_detail_id
171    AND    wdd.move_order_line_id = mmtt.move_order_line_id
172    AND    mmtt.transaction_temp_id = p_transaction_id;
173 
174    /* Added for Patchset J
175     * When calling label printing from Packing Workbench
176     * LPN_ID is passed to label printing
177     * Delivery ID can be derived with the LPN_ID
178     * New cursor to derive delivery_id with LPN */
179    CURSOR c_lpn_delivery(p_lpn_id NUMBER) IS
180       SELECT wda.delivery_id
181       FROM wsh_delivery_assignments_v wda
182           ,wsh_delivery_details wdd
183       WHERE wda.parent_delivery_detail_id = wdd.delivery_detail_id
184       AND   wda.delivery_id IS NOT NULL
185       AND   wdd.lpn_id IS NOT NULL
186       AND   wdd.released_status = 'X'  -- For LPN reuse ER : 6845650
187       AND   exists(
188              select lpn_id from wms_license_plate_numbers
189              where lpn_id = wdd.lpn_id
190              and   outermost_lpn_id = p_lpn_id)
191       AND rownum<2;
192 
193 
194 
195    /* Patchset J- Select attribute1..attribute15, tp_attribute1..tp_attribute15
196     *, global_attribute1..global_attribute15, attribute_category,
197     * tp_attribute_category, global_attribute_category from wsh_new_deliveries
198     */
199 
200    CURSOR  c_delivery(p_delivery_id NUMBER) IS
201    SELECT     wnd.delivery_id       delivery_number
202              -- Added by joabraha for Bug 3549300
203            , nvl(wnd.customer_id,addr.customer_id) customer_id  -- Modified for Bug# 14784146
204            , wnd.organization_id   organization_id
205              --
206                 /*Bug 3969347 -Added two columns ship_from_addressee
207                   and ship_to_addressee to obtain data
208                   for these label fields.*/
209                 , hro.name              ship_from_addressee
210                 --    , rac.customer_name     ship_to_addressee  Commented for Bug#4445708
211                 --End of fix for Bug 3969347
212                 , addr.addressee        ship_to_addressee  --Added for fix of Bug#4445708
213       , rac.customer_name     customer_name
214       , rac.customer_name     customer
215       , hrl.address_line_1    ship_from_address1
216       , hrl.address_line_2    ship_from_address2
217       , hrl.address_line_3    ship_from_address3
218       , hrl.address_line_4    ship_from_address4
219       , hrl.city              ship_from_city
220       , hrl.postal_code       ship_from_postal_code
221       , hrl.state             ship_from_state
222       , hrl.county            ship_from_county
223       , hrl.country           ship_from_country
224       , hrl.province          ship_from_province
225       , hrl1.address_line_1   ship_to_address1
226       , hrl1.address_line_2   ship_to_address2
227       , hrl1.address_line_3   ship_to_address3
228       , hrl1.address_line_4   ship_to_address4
229       , hrl1.city       ship_to_city
230       , hrl1.postal_code      ship_to_postal_code
231       , hrl1.state            ship_to_state
232       , hrl1.county           ship_to_county
233       , hrl1.country          ship_to_country
234       , hrl1.province         ship_to_province
235       -- Bug 2878652, get carrier name from wsh_carriers_v
236       -- Bug 5121507, Get carrier in order of Trip->Delivery
237       -- Get carrier_id first, then query carrier_name later
238       --, wcv.carrier_name      carrier
239       , nvl(wt.carrier_id, wnd.carrier_id) carrier_id
240       , null carrier
241       , wnd.waybill           waybill
242       , wnd.waybill           airbill
243       , wdi.sequence_number   bill_of_lading
244       -- Bug 2878652, get ship_method_name with ship_method_code
245       , fcl.meaning           ship_method
246       , wnd.gross_weight      shipment_gross_weight
247       , wnd.weight_uom_code   shipment_gross_weight_uom
248       , (wnd.gross_weight  -  wnd.net_weight)   shipment_tare_weight
249       , wnd.weight_uom_code   shipment_tare_weight_uom
250       , wnd.volume            shipment_volume
251       , wnd.volume_uom_code   shipment_volume_uom
252       , get_total_number_of_lpns(wnd.delivery_id) total_number_of_lpns
253            , wnd.attribute_category new_del_attribute_category
254            , wnd.attribute1        new_del_attribute1
255            , wnd.attribute2        new_del_attribute2
256            , wnd.attribute3        new_del_attribute3
257            , wnd.attribute4        new_del_attribute4
258            , wnd.attribute5        new_del_attribute5
259            , wnd.attribute6        new_del_attribute6
260            , wnd.attribute7        new_del_attribute7
261            , wnd.attribute8        new_del_attribute8
262            , wnd.attribute9        new_del_attribute9
263            , wnd.attribute10        new_del_attribute10
264            , wnd.attribute11        new_del_attribute11
265            , wnd.attribute12        new_del_attribute12
266            , wnd.attribute13        new_del_attribute13
267            , wnd.attribute14        new_del_attribute14
268            , wnd.attribute15        new_del_attribute15
269            , wnd.tp_attribute_category new_del_tp_attr_category
270            , wnd.tp_attribute1        new_del_tp_attr1
271            , wnd.tp_attribute2        new_del_tp_attr2
272            , wnd.tp_attribute3        new_del_tp_attr3
273            , wnd.tp_attribute4        new_del_tp_attr4
274            , wnd.tp_attribute5        new_del_tp_attr5
275            , wnd.tp_attribute6        new_del_tp_attr6
276            , wnd.tp_attribute7        new_del_tp_attr7
277            , wnd.tp_attribute8        new_del_tp_attr8
278            , wnd.tp_attribute9        new_del_tp_attr9
279            , wnd.tp_attribute10        new_del_tp_attr10
280            , wnd.tp_attribute11        new_del_tp_attr11
281            , wnd.tp_attribute12        new_del_tp_attr12
282            , wnd.tp_attribute13        new_del_tp_attr13
283            , wnd.tp_attribute14        new_del_tp_attr14
284            , wnd.tp_attribute15        new_del_tp_attr15
285            , wnd.global_attribute_category new_del_global_attr_category
286            , wnd.global_attribute1        new_del_global_attr1
287            , wnd.global_attribute2        new_del_global_attr2
288            , wnd.global_attribute3        new_del_global_attr3
289            , wnd.global_attribute4        new_del_global_attr4
290            , wnd.global_attribute5        new_del_global_attr5
291            , wnd.global_attribute6        new_del_global_attr6
292            , wnd.global_attribute7        new_del_global_attr7
293            , wnd.global_attribute8        new_del_global_attr8
294            , wnd.global_attribute9        new_del_global_attr9
295            , wnd.global_attribute10        new_del_global_attr10
296            , wnd.global_attribute11        new_del_global_attr11
297            , wnd.global_attribute12        new_del_global_attr12
298            , wnd.global_attribute13        new_del_global_attr13
299            , wnd.global_attribute14        new_del_global_attr14
300            , wnd.global_attribute15        new_del_global_attr15
301    FROM
302         --
303         -- Modification Start for Bug # - 4418524
304         --
305         -- As part of TCA related changes ra_customers, ra_contacts views are
306         -- obsoleted in R12. The columns fetched from these views are fetched
307         -- from hz_parties and hz_cust_accounts.
308         --
309         -- Following table alias are commented
310         --  ra_customers                 rac
311         --
312         -- Following Queries are added to replace the above commented
313         -- views
314         --
315            ( SELECT CUST_ACCT.cust_account_id customer_id,
316                     SUBSTRB(PARTY.party_name,1,50) customer_name
317              FROM hz_parties PARTY
318                      , hz_cust_accounts CUST_ACCT
319                   WHERE CUST_ACCT.party_id = PARTY.party_id
320            ) rac,
321              --
322              -- Modification End for Bug # - 4418524
323              --
324       (select loc.location_id location_id,loc.address_line_1 address_line_1
325             ,loc.address_line_2 address_line_2,loc.address_line_3 address_line_3
326             ,loc.loc_information13 address_line_4,loc.town_or_city city
327             ,loc.postal_code postal_code,loc.region_2 state,loc.region_1 county
328             ,loc.country country, DECODE(LOC.STYLE,'CA',(SELECT MEANING
329  	                               FROM   FND_COMMON_LOOKUPS
330  	                               WHERE  LOOKUP_TYPE = 'CA_PROVINCE'
331  	                                      AND LOOKUP_CODE = LOC.REGION_1
332  	                                      AND ROWNUM < 2),
333  	                         'CA_GLB',(SELECT MEANING
334  	                                   FROM   FND_COMMON_LOOKUPS
335  	                                   WHERE  LOOKUP_TYPE = 'CA_PROVINCE'
336  	                                          AND LOOKUP_CODE = LOC.REGION_1
337  	                                          AND ROWNUM < 2),
338  	                         LOC.REGION_3) PROVINCE  -- Modified for bug 7281160
339             from hr_locations_all loc
340       union all
341       select hz.location_id location_id,hz.address1   address_line_1
342             ,hz.address2   address_line_2,hz.address3 address_line_3
343             ,hz.address4   address_line_4,hz.city city,hz.postal_code postal_code
344             ,hz.state state,hz.county county,hz.country country,hz.province province
345       from hz_locations hz   ) hrl,
346         --Bug 3969347 -Adding the table hr_organization_units
347              hr_organization_units hro,
348         --End of fix for Bug 3969347.
349       (select loc.location_id location_id,loc.address_line_1 address_line_1
350             ,loc.address_line_2 address_line_2,loc.address_line_3 address_line_3
351             ,loc.loc_information13 address_line_4,loc.town_or_city city
352             ,loc.postal_code postal_code,loc.region_2 state,loc.region_1 county
353             ,loc.country country, DECODE(LOC.STYLE,'CA',(SELECT MEANING
354  	                               FROM   FND_COMMON_LOOKUPS
355  	                               WHERE  LOOKUP_TYPE = 'CA_PROVINCE'
356  	                                      AND LOOKUP_CODE = LOC.REGION_1
357  	                                      AND ROWNUM < 2),
358  	                         'CA_GLB',(SELECT MEANING
359  	                                   FROM   FND_COMMON_LOOKUPS
360  	                                   WHERE  LOOKUP_TYPE = 'CA_PROVINCE'
361  	                                          AND LOOKUP_CODE = LOC.REGION_1
362  	                                          AND ROWNUM < 2),
363  	                         LOC.REGION_3) PROVINCE  -- Modified for bug 7281160
364             from hr_locations_all loc
365       union all
366       select hz.location_id location_id,hz.address1   address_line_1
367             ,hz.address2   address_line_2,hz.address3 address_line_3
368             ,hz.address4   address_line_4,hz.city city,hz.postal_code postal_code
369             ,hz.state state,hz.county county,hz.country country,hz.province province
370       from hz_locations hz   ) hrl1,
371       wsh_new_deliveries    wnd,
372       wsh_delivery_legs     wdl,
373       wsh_document_instances  wdi
374       -- Bug 2878652, get carrier name and ship method name
375       , fnd_common_lookups fcl
376       -- Bug 5121507 Getting Carrier in the order of Trip->Delivery
377       --, wsh_carriers_v wcv
378       ,  wsh_trip_stops  wts
379       ,  wsh_trips       wt
380                 --Added to fix the issue reported in the Bug#4445708
381                 , (  select wda.delivery_id delivery_id, party_site.addressee addressee -- Added p_delivery_id 13108954
382 				            , wdd.customer_id customer_id
383                     from wsh_delivery_details wdd
384                        , wsh_delivery_assignments wda
385                        , hz_cust_site_uses_all hcsua
386                        , hz_party_sites party_site
387                        , hz_loc_assignments loc_assign
388                        , hz_locations loc
389                        , hz_cust_acct_sites_all acct_site
390                     where wdd.delivery_detail_id = wda.delivery_detail_id
391                       and wda.delivery_id = p_delivery_id
392                       and wdd.container_flag = 'N'
393                       and hcsua.site_use_id = wdd.ship_to_site_use_id
394                       and acct_site.cust_acct_site_id = hcsua.cust_acct_site_id
395                       AND acct_site.party_site_id = party_site.party_site_id
396                       AND loc.location_id = party_site.location_id
397                       AND loc.location_id = loc_assign.location_id
398                       AND NVL ( acct_site.org_id, -99 )  = NVL ( loc_assign.org_id, -99 )
399                       and rownum = 1
400                   ) addr
401    WHERE wnd.delivery_id      =  p_delivery_id
402    AND   rac.customer_id(+)   =  addr.customer_id  -- wnd.customer_id Modified for Bug# 14784146
403    and   addr.delivery_id(+)  =  wnd.delivery_id  -- 13108954
404    AND   hrl.location_id(+)   =  wnd.INITIAL_PICKUP_LOCATION_ID
405    AND   hrl1.location_id(+)  =  wnd.ULTIMATE_DROPOFF_LOCATION_ID
406    AND   wdl.delivery_id (+)  =  wnd.delivery_id
407    AND   wdi.entity_id  (+)   =  wdl.delivery_leg_id
408    AND     wdi.entity_name  (+)    =     'WSH_DELIVERY_LEGS' -- Bug 3905110
409    --Bug 3969347 --Added this condition to join the table hr_organization_units.
410    AND     hro.organization_id(+)  =       wnd.organization_id
411     --End of fix for Bug 3969347
412    AND wdi.document_type(+) = 'BOL'
413    AND fcl.lookup_type(+) = 'SHIP_METHOD'
414    AND fcl.lookup_code(+) = wnd.ship_method_code
415    --Bug 5121507 Getting Carrier in the order of Trip->Delivery
416    AND wnd.delivery_id      = wdl.delivery_id(+)
417    AND wdl.pick_up_stop_id  = wts.stop_id (+)
418    AND wts.trip_id          = wt.trip_id (+);
419 
420    l_delivery_data   LONG;
421    l_sales_order_header_id NUMBER; -- Introduced for bug: 5740331
422 
423    l_selected_fields    INV_LABEL.label_field_variable_tbl_type;
424    l_selected_fields_count NUMBER;
425 
426    l_delivery_rec_index    NUMBER := 0;
427 
428    l_label_format_id       NUMBER := 0 ;
429    l_label_format       VARCHAR2(100);
430    l_printer      VARCHAR2(30);
431 
432    l_api_name        VARCHAR2(20) := 'get_variable_data';
433 
434    l_return_status      VARCHAR2(240);
435 
436    l_error_message   VARCHAR2(240);
437    l_msg_count       NUMBER;
438    l_api_status      VARCHAR2(240);
439    l_msg_data     VARCHAR2(240);
440 
441    i        NUMBER;
442 
443    l_organization_id NUMBER;
444    l_subinventory_code  VARCHAR2(30) :=null;
445 
446    l_label_index NUMBER;
447    l_label_request_id NUMBER;
448 
449    --I cleanup, use l_prev_format_id to record the previous label format
450    l_prev_format_id      NUMBER;
451    -- I cleanup, user l_prev_sub to record the previous subinventory
452    --so that get_printer is not called if the subinventory is the same
453    l_prev_sub VARCHAR2(30);
454 
455    -- a list of columns that are selected for format
456    l_column_name_list LONG;
457 
458 BEGIN
459    -- Initialize return status as success
460    x_return_status := FND_API.G_RET_STS_SUCCESS;
461    -- If the transactions_id is passed, and the business flow code passed is in 6(Cross dock),
462    -- or 19(Pick Drop), then the transactions_id passed is the Delivery_Detail_Id.
463    -- Since we are printing the "Shipping"  label here, we will have to derive the delivery_id
464    -- from the delivery_detail_id and print the details for the Delivery Id .
465    -- If the business flow code passed is 21(Shipping) then the transaction id passed is the
466    -- delivery ID itself and so this can be directly assigned to the l_delivery_id
467 
468    -- For Pick Load(18), transaction_header_id is passed as p_transaction_id,
469    -- Delivery ID is obtained from MMTT and joining mmtt.move_order_line_id
470    -- to wdd.move_order_line_id.. All the MMTT record with that header_id
471    -- has the same move_order_line_id
472 
473     l_debug := INV_LABEL.l_debug;
474    IF (l_debug = 1) THEN
475       trace('**In Shipping label**');
476       trace('  Business_flow: '||p_label_type_info.business_flow_code);
477       trace('  Transaction ID:'||p_transaction_id);
478    END IF;
479 
480    -- Get l_delivery_id
481    IF p_transaction_id IS NOT NULL then
482       -- txn mode
483       IF p_label_type_info.business_flow_code in (6) THEN
484       -- means that the delivery_detail_id has been passed
485          OPEN c_wdd_shipping;
486          FETCH c_wdd_shipping INTO l_delivery_id, l_organization_id, l_subinventory_code;
487          IF c_wdd_shipping%NOTFOUND THEN
488             IF (l_debug = 1) THEN
489                trace(' No delivery_id found from WDD, no label print');
490             END IF;
491             CLOSE c_wdd_shipping;
492             RETURN;
493          ELSE
494             CLOSE c_wdd_shipping;
495          END IF;
496       ELSIF p_label_type_info.business_flow_code in (19) THEN
497       -- Old Design.
498       -- when the transactions manager calls printing for business flow of 'Pick Drop' (19) and passes the
499       -- transactions_temp_id, we derive the the transfer_lpn_id and the content_lpn_id from the MMTT and using either
500       -- the transfer_lpn_id  or content_lpn_id (imp: only if transfer_lpn_id is null) derive the delivery_detail_id
501       -- from the wsh_delivery_details.
502       -- There may be no delivery at Pick Load, Pick Drop, and Cartonization is the users fails to create one.
503       -- But a delivery ID will be automatically created after ship confirm.
504       -- This means that of the business flows of Pick Load, Pick Drop, and Cartonization there may be no delivery
505       -- label printed on some ocassions mentioned above.
506 
507       -- New Design:
508       -- Derive the move_order_line_id from the mmtt and then with the move_order_line_id derive the delivery_detail_id
509       -- from the WDD and then eventually the delivery_id.
510 
511       /*combined cursor c_mmtt_temp_id, c_wdd_delivery_dtl_id
512       , c_wda_delivery_id into one c_mmtt_pick_drop cursor*/
513          OPEN c_mmtt_pick_drop;
514          FETCH c_mmtt_pick_drop INTO l_delivery_id, l_organization_id, l_subinventory_code;
515 
516          IF c_mmtt_pick_drop%NOTFOUND THEN
517             IF (l_debug = 1) THEN
518                trace(' No record found in MMTT for given ID:'||p_transaction_id);
519             END IF;
520             CLOSE c_mmtt_pick_drop;
521             RETURN;
522          ELSE
523             CLOSE c_mmtt_pick_drop;
524             IF (l_debug = 1) THEN
525                trace(' Found delivery ID for pick drop:'||l_delivery_id);
526             END IF;
527          END IF;
528 
529       ELSIF p_label_type_info.business_flow_code in (21) THEN
530       -- means that the delivery_id has been passed
531          l_delivery_id := p_transaction_id ;
532 
533 	 -- Bug 5740331 - Added the following block to fetch the sales order header.
534          BEGIN
535           SELECT DISTINCT(source_header_id)
536           INTO  l_sales_order_header_id
537           FROM  wsh_delivery_details wdd,
538                     wsh_delivery_assignments wda
539           WHERE wdd.delivery_detail_id = wda.delivery_detail_id
540           AND   wda.delivery_id = l_delivery_id
541           AND   wdd.container_flag = 'N' ;
542 
543           IF (l_debug = 1) THEN
544                trace('Value of l_sales_order_header_id:'|| l_sales_order_header_id);
545           END IF;
546 
547           EXCEPTION
548           WHEN TOO_MANY_ROWS THEN
549 	  IF (l_debug = 1) THEN
550 		trace('In the exception for too many rows for Sales Order Header');
551           END IF;
552                 l_sales_order_header_id := NULL;
553           WHEN OTHERS THEN
554           IF (l_debug = 1) THEN
555 		trace('In the exception for too many rows for Sales Order Header');
556           END IF;
557 		l_sales_order_header_id := NULL;
558           END;
559           --End of fix for Bug 5740331
560 
561       ELSIF p_label_type_info.business_flow_code in (22) THEN
562          OPEN c_cart_shipping_pkg;
563          FETCH c_cart_shipping_pkg INTO l_delivery_id;
564             IF c_cart_shipping_pkg%NOTFOUND
565             THEN
566                IF (l_debug = 1) THEN
567                   trace(' No delivery_id found for cartonizationt');
568                END IF;
569                CLOSE c_cart_shipping_pkg;
570                RETURN;
571             ELSE
572                IF (l_debug = 1) THEN
573                   Trace('Found delivery_id for cartonization:' || l_delivery_id);
574                END IF;
575             END IF;
576 
577       ELSIF p_label_type_info.business_flow_code in (18, 34) THEN
578          OPEN c_cart_shipping;
579          FETCH c_cart_shipping INTO l_delivery_id, l_organization_id, l_subinventory_code;
580          IF c_cart_shipping%NOTFOUND THEN
581             IF (l_debug = 1) THEN
582                trace(' No delivery_id found from MMTT, no label print');
583             END IF;
584             CLOSE c_cart_shipping;
585             RETURN;
586          ELSE
587             CLOSE c_cart_shipping;
588          END IF;
589 
590       -- 18th February 2002 : Commented out below for fix to bug 2219171 for Qualcomm. Hence forth the
591       -- WMSTASKB.pls will be calling label printing at Pick Load with the
592       -- transaction_temp_id as opposed to the transaction_header_id earlier. This business flows(18)
593       -- have been added to  the above call.
594       -- ELSIF p_label_type_info.business_flow_code in (18) THEN
595       -- OPEN c_pickload_shipping;
596       -- FETCH c_pickload_shipping INTO l_delivery_id;
597       -- IF c_pickload_shipping%NOTFOUND THEN
598       --    trace(' No delivery_id found from MMTT with the header_id, no label print');
599       --    CLOSE c_pickload_shipping;
600       --    RETURN;
601       -- ELSE
602       --    CLOSE c_pickload_shipping;
603       -- END IF;
604 
605       ELSE
606          IF (l_debug = 1) THEN
607             trace(' Invalid business flow code '|| p_label_type_info.business_flow_code || ' No label print');
608          END IF;
609          RETURN;
610       END IF;
611    ELSE
612       -- manual mode.Manual request is from Jason's page.
613       -- We have to have an agreement that when they call
614       -- this API, they have to pass the delivery_id
615       -- in place of the transactions_temp_id.
616       l_delivery_id := p_input_param.transaction_temp_id;
617 
618       -- After patchset J, as per request from Packing Workbench
619       -- If delivery_id is not passed in directly
620       --  but LPN_ID is available
621       --  will derive the delivery_id with the LPN_ID
622       IF l_delivery_id IS NULL AND p_input_param.lpn_id IS NOT NULL THEN
623          OPEN c_lpn_delivery(p_input_param.lpn_id);
624          FETCH c_lpn_delivery INTO l_delivery_id;
625          CLOSE c_lpn_delivery;
626       END IF;
627 
628    END IF;
629 
630    IF (l_debug = 1) THEN
631       trace(' Got Delivery_id = '|| l_delivery_id);
632    END IF;
633 
634    IF l_delivery_id IS NULL THEN
635       IF (l_debug = 1) THEN
636          trace(' Delivery ID IS NULL, can not process ');
637       END IF;
638       RETURN;
639    END IF;
640 
641    IF (l_debug = 1) THEN
642       trace(' Getting selected fields ');
643    END IF;
644 
645    INV_LABEL.GET_VARIABLES_FOR_FORMAT(
646       x_variables       => l_selected_fields
647    ,  x_variables_count => l_selected_fields_count
648    ,  p_format_id    => p_label_type_info.default_format_id);
649 
650    IF (l_selected_fields_count=0) OR (l_selected_fields.count =0 ) THEN
651       IF (l_debug = 1) THEN
652          trace('no fields defined for this format: ' || p_label_type_info.default_format_id || ',' ||p_label_type_info.default_format_name);
653       END IF;
654       --return;
655    END IF;
656 
657    IF (l_debug = 1) THEN
658       trace(' Found variable defined for this format, cont = ' || l_selected_fields_count);
659    END IF;
660 
661    l_delivery_rec_index := 0;
662    IF (l_debug = 1) THEN
663       trace('** in PVT7.get_variable_data ** , start ');
664    END IF;
665    l_printer := p_label_type_info.default_printer;
666    l_prev_sub := '####';
667 
668    l_label_index := 1;
669    l_prev_format_id := p_label_type_info.default_format_id;
670 
671    WHILE l_delivery_id IS NOT NULL LOOP
672       l_delivery_data := '';
673       FOR v_delivery IN c_delivery(l_delivery_id) LOOP
674          l_delivery_rec_index := l_delivery_rec_index + 1;
675          IF (l_debug = 1) THEN
676             trace(' ** New Label  ' || l_delivery_rec_index );
677          END IF;
678 
679          -- Bug 5121507, get carrier name
680          IF v_delivery.carrier_id IS NOT NULL THEN
681             BEGIN
682                SELECT carrier_name
683                INTO v_delivery.carrier
684                FROM wsh_carriers_v
685                WHERE carrier_id = v_delivery.carrier_id
686                AND ROWNUM<2;
687             EXCEPTION
688                WHEN others THEN
689                   v_delivery.carrier := null;
690             END;
691          END IF;
692 
693          --R12 : RFID compliance project
694          --Calling rules engine before calling to get printer
695          IF (l_debug = 1) THEN
696             trace('Apply Rules engine for format'
697             ||',manual_format_id='||p_label_type_info.manual_format_id
698             ||',manual_format_name='||p_label_type_info.manual_format_name);
699          END IF;
700 
701          /* insert a record into wms_label_requests entity to
702          call the label rules engine to get appropriate label */
703          INV_LABEL.GET_FORMAT_WITH_RULE
704          (  p_document_id        =>p_label_type_info.label_type_id,
705             P_LABEL_FORMAT_ID    => p_label_type_info.manual_format_id,
706             p_delivery_id  =>l_delivery_id,
707             --p_printer_name  =>l_printer,-- Removed in R12: 4396558
708             P_BUSINESS_FLOW_CODE =>   p_label_type_info.business_flow_code,
709             P_LAST_UPDATE_DATE   =>sysdate,
710             P_LAST_UPDATED_BY    =>FND_GLOBAL.user_id,
711             P_CREATION_DATE      =>sysdate,
712             P_CREATED_BY         =>FND_GLOBAL.user_id,
713             x_return_status      =>l_return_status,
714             x_label_format_id   =>l_label_format_id,
715             x_label_format    =>l_label_format,
716             x_label_request_id  =>l_label_request_id,
717             -- Added by joabraha for Bug 3549300
718             p_customer_id     => v_delivery.customer_id,
719             p_organization_id   => v_delivery.organization_id,
720 	    -- Added by dchithir for bug 5740331
721 	    p_sales_order_header_id  => l_sales_order_header_id,
722 	    p_lpn_id => p_input_param.lpn_id -- 12529483
723             );
724 
725          IF l_return_status <> 'S' THEN
726             FND_MESSAGE.SET_NAME('WMS', 'WMS_LABL_RULE_ENGINE_FAILED');
727             FND_MSG_PUB.ADD;
728             l_label_format:= p_label_type_info.default_format_id;
729             l_label_format_id:= p_label_type_info.default_format_name;
730          END IF;
731          IF (l_debug = 1) THEN
732             trace('did apply label ' || l_label_format || ',' || l_label_format_id||',req_id '||l_label_request_id);
733          END IF;
734 
735 
736 
737          IF (l_debug = 1) THEN
738             trace(' Getting printer, manual_printer='||p_label_type_info.manual_printer ||',sub='||l_subinventory_code ||',default printer='||p_label_type_info.default_printer);
739          END IF;
740 
741          -- IF clause Added for Add format/printer for manual request
742          IF p_label_type_info.manual_printer IS NULL THEN
743          -- The p_label_type_info.manual_printer is the one  passed from the manual page.
744          -- As per the design, if a printer is passed from the manual page, then we use that printer irrespective.
745 
746             IF (l_subinventory_code IS NOT NULL) AND (l_subinventory_code <> l_prev_sub) THEN
747                IF (l_debug = 1) THEN
748                   trace('getting printer with sub '||l_subinventory_code);
749                END IF;
750                BEGIN
751                   WSH_REPORT_PRINTERS_PVT.GET_PRINTER(
752                      p_concurrent_program_id=>p_label_type_info.label_type_id,
753                      p_user_id              =>fnd_global.user_id,
754                      p_responsibility_id    =>fnd_global.resp_id,
755                      p_application_id       =>fnd_global.resp_appl_id,
756                      p_organization_id      =>l_organization_id,
757                      p_zone                 =>l_subinventory_code,
758                      p_format_id         =>l_label_format_id, --added in r12 RFID 4396558
759                      x_printer              =>l_printer,
760                      x_api_status           =>l_api_status,
761                      x_error_message        =>l_error_message);
762                   IF l_api_status <> 'S' THEN
763                      IF (l_debug = 1) THEN
764                         trace('Error in calling get_printer, set printer as default printer, err_msg:'||l_error_message);
765                      END IF;
766                      l_printer := p_label_type_info.default_printer;
767                   END IF;
768 
769                EXCEPTION
770                   WHEN others THEN
771                      l_printer := p_label_type_info.default_printer;
772                END;
773                 l_prev_sub := l_subinventory_code;
774             END IF;
775          ELSE
776             IF (l_debug = 1) THEN
777                trace('Set printer as Manual Printer passed in:' || p_label_type_info.manual_printer );
778             END IF;
779             l_printer := p_label_type_info.manual_printer;
780          END IF;
781 
782 
783 
784 
785 
786          IF p_label_type_info.manual_format_id IS NOT NULL THEN
787             l_label_format_id := p_label_type_info.manual_format_id;
788             l_label_format := p_label_type_info.manual_format_name;
789             IF (l_debug = 1) THEN
790                trace('Manual format passed in:'||l_label_format_id||','||l_label_format);
791             END IF;
792          END IF;
793          IF (l_label_format_id IS NOT NULL) THEN
794             -- Derive the fields for the format either passed in or derived via the rules engine.
795             IF l_label_format_id <> nvl(l_prev_format_id, -999) THEN
796                IF (l_debug = 1) THEN
797                   trace(' Getting variables for new format ' || l_label_format);
798                END IF;
799                INV_LABEL.GET_VARIABLES_FOR_FORMAT(
800                   x_variables       => l_selected_fields
801                ,  x_variables_count => l_selected_fields_count
802                ,  p_format_id    => l_label_format_id);
803 
804                l_prev_format_id := l_label_format_id;
805 
806                IF (l_selected_fields_count=0) OR (l_selected_fields.count =0 ) THEN
807                   IF (l_debug = 1) THEN
808                      trace('no fields defined for this format: ' || l_label_format|| ',' ||l_label_format_id);
809                   END IF;
810                   GOTO NextLabel;
811                END IF;
812                IF (l_debug = 1) THEN
813                   trace('   Found selected_fields for format ' || l_label_format ||', num='|| l_selected_fields_count);
814                END IF;
815             END IF;
816          ELSE
817             IF (l_debug = 1) THEN
818                trace('No format exists for this label, goto nextlabel');
819             END IF;
820             GOTO NextLabel;
821          END IF;
822 
823          /* variable header */
824          l_delivery_data := l_delivery_data || LABEL_B;
825          IF l_label_format <> nvl(p_label_type_info.default_format_name, '@@@') THEN
826             l_delivery_data := l_delivery_data || ' _FORMAT="' || nvl(p_label_type_info.manual_format_name, l_label_format) || '"';
827          END IF;
828          IF (l_printer IS NOT NULL) AND (l_printer <> nvl(p_label_type_info.default_printer,'###')) THEN
829             l_delivery_data := l_delivery_data || ' _PRINTERNAME="'||l_printer||'"';
830          END IF;
831 
832          l_delivery_data := l_delivery_data || TAG_E;
833 
834 
835          IF (l_debug = 1) THEN
836             trace('Starting assign variables, ');
837          END IF;
838 
839          l_column_name_list := 'Set variables for ';
840 
841          /* Modified for Bug 4072474 -start*/
842          l_custom_sql_ret_status := FND_API.G_RET_STS_SUCCESS;
843          /* Modified for Bug 4072474 -End*/
844 
845          -- Fix for bug: 4179593 Start
846          l_CustSqlWarnFlagSet := FALSE;
847          l_CustSqlErrFlagSet := FALSE;
848          l_CustSqlWarnMsg := NULL;
849          l_CustSqlErrMsg := NULL;
850          -- Fix for bug: 4179593 End
851 
852          /* Loop for each selected fields, find the columns and write into the XML_content*/
853          FOR i IN 1..l_selected_fields.count LOOP
854 
855             IF (l_debug = 1) THEN
856                   l_column_name_list := l_column_name_list || ',' ||l_selected_fields(i).column_name;
857             END IF;
858 
859 ---------------------------------------------------------------------------------------------
860 -- Project: 'Custom Labels' (A 11i10+ Project)                                               |
861 -- Author: Dinesh ([email protected])                                                      |
862 -- Change Description:                                                                       |
863 --  The check (SQL_STMT <> NULL and COLUMN_NAME = NULL) implies that the field is a          |
864 --  Custom SQL based field. Handle it appropriately.                                         |
865 ---------------------------------------------------------------------------------------------
866            IF (l_selected_fields(i).SQL_STMT IS NOT NULL AND l_selected_fields(i).column_name = 'sql_stmt') THEN
867              IF (l_debug = 1) THEN
868               trace('Custom Labels Trace [INVLAP7B.pls]: ------------------------- REPORT BEGIN-------------------------------------');
869               trace('Custom Labels Trace [INVLAP7B.pls]: LABEL_FIELD_ID       : ' || l_selected_fields(i).label_field_id);
870               trace('Custom Labels Trace [INVLAP7B.pls]: FIELD_VARIABLE_NAME  : ' || l_selected_fields(i).variable_name);
871               trace('Custom Labels Trace [INVLAP7B.pls]: COLUMN_NAME          : ' || l_selected_fields(i).column_name);
872               trace('Custom Labels Trace [INVLAP7B.pls]: SQL_STMT             : ' || l_selected_fields(i).sql_stmt);
873              END IF;
874              l_sql_stmt := l_selected_fields(i).sql_stmt;
875              IF (l_debug = 1) THEN
876               trace('Custom Labels Trace [INVLAP7B.pls]: l_sql_stmt BEFORE REQUEST_ID Filter Concatenation: ' || l_sql_stmt);
877              END IF;
878              l_sql_stmt := l_sql_stmt || ' AND WLR.LABEL_REQUEST_ID = :REQUEST_ID';
879              IF (l_debug = 1) THEN
880               trace('Custom Labels Trace [INVLAP7B.pls]: l_sql_stmt AFTER REQUEST_ID Filter Concatenation: ' || l_sql_stmt);
881 
882              END IF;
883              BEGIN
884              IF (l_debug = 1) THEN
885               trace('Custom Labels Trace [INVLAP7B.pls]: At Breadcrumb 1');
886               trace('Custom Labels Trace [INVLAP7B.pls]: LABEL_REQUEST_ID     : ' || l_label_request_id);
887              END IF;
888              OPEN c_sql_stmt FOR l_sql_stmt using l_label_request_id;
889              LOOP
890                 FETCH c_sql_stmt INTO l_sql_stmt_result;
891                 EXIT WHEN c_sql_stmt%notfound OR c_sql_stmt%rowcount >=2;
892              END LOOP;
893 
894              IF (c_sql_stmt%rowcount=1 AND l_sql_stmt_result IS NULL) THEN
895                 x_return_status := FND_API.G_RET_STS_SUCCESS;
896                 l_custom_sql_ret_status  := INV_LABEL.G_WARNING;
897                 fnd_message.set_name('WMS','WMS_CS_NULL_VALUE_RETURNED');
898                 fnd_msg_pub.ADD;
899                 -- Fix for bug: 4179593 Start
900                 --fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => l_custom_sql_ret_msg);
901                 l_custom_sql_ret_msg := fnd_msg_pub.get(p_msg_index => fnd_msg_pub.g_last, p_encoded => fnd_api.g_false);
902                 l_CustSqlWarnMsg := l_custom_sql_ret_msg;
903                 l_CustSqlWarnFlagSet := TRUE;
904                 -- Fix for bug: 4179593 End
905                IF (l_debug = 1) THEN
906                 trace('Custom Labels Trace [INVLAP7B.pls]: At Breadcrumb 2');
907                 trace('Custom Labels Trace [INVLAP7B.pls]: l_sql_stmt_result is: ' || l_sql_stmt_result);
908                 trace('Custom Labels Trace [INVLAP7B.pls]: WARNING: NULL value returned by the custom SQL Query.');
909                 trace('Custom Labels Trace [INVLAP7B.pls]: l_custom_sql_ret_status  is set to : ' || l_custom_sql_ret_status );
910                END IF;
911              ELSIF c_sql_stmt%rowcount=0 THEN
912                IF (l_debug = 1) THEN
913                 trace('Custom Labels Trace [INVLAP7B.pls]: At Breadcrumb 3');
914                 trace('Custom Labels Trace [INVLAP7B.pls]: WARNING: No row returned by the Custom SQL query');
915                END IF;
916                x_return_status := FND_API.G_RET_STS_SUCCESS;
917                l_custom_sql_ret_status  := INV_LABEL.G_WARNING;
918                fnd_message.set_name('WMS','WMS_CS_NO_DATA_FOUND');
919                fnd_msg_pub.ADD;
920                /* Replaced following statement for Bug 4207625: Anupam Jain*/
921                /*fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => l_custom_sql_ret_status);*/
922                -- Fix for bug: 4179593 Start
923                --fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => l_custom_sql_ret_msg);
924                l_custom_sql_ret_msg := fnd_msg_pub.get(p_msg_index => fnd_msg_pub.g_last, p_encoded => fnd_api.g_false);
925                l_CustSqlWarnMsg := l_custom_sql_ret_msg;
926                l_CustSqlWarnFlagSet := TRUE;
927                -- Fix for bug: 4179593 End
928              ELSIF c_sql_stmt%rowcount>=2 THEN
929                IF (l_debug = 1) THEN
930                 trace('Custom Labels Trace [INVLAP7B.pls]: At Breadcrumb 4');
931                 trace('Custom Labels Trace [INVLAP7B.pls]: ERROR: Multiple values returned by the Custom SQL query');
932                END IF;
933                l_sql_stmt_result := NULL;
934                x_return_status := FND_API.G_RET_STS_SUCCESS;
935                l_custom_sql_ret_status  := FND_API.G_RET_STS_ERROR;
936                fnd_message.set_name('WMS','WMS_CS_MULTIPLE_VALUES_RETURN');
937                fnd_msg_pub.ADD;
938                /* Replaced following statement for Bug 4207625: Anupam Jain*/
939                /*fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => l_custom_sql_ret_status);*/
940                -- Fix for bug: 4179593 Start
941                --fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => l_custom_sql_ret_msg);
942                l_custom_sql_ret_msg := fnd_msg_pub.get(p_msg_index => fnd_msg_pub.g_last, p_encoded => fnd_api.g_false);
943                l_CustSqlErrMsg := l_custom_sql_ret_msg;
944                l_CustSqlErrFlagSet := TRUE;
945                -- Fix for bug: 4179593 End
946              END IF;
947              IF (c_sql_stmt%ISOPEN) THEN
948                CLOSE c_sql_stmt;
949              END IF;
950             EXCEPTION
951             WHEN OTHERS THEN
952             IF (c_sql_stmt%ISOPEN) THEN
953                CLOSE c_sql_stmt;
954             END IF;
955               IF (l_debug = 1) THEN
956                 trace('Custom Labels Trace [INVLAP7B.pls]: At Breadcrumb 5');
957                 trace('Custom Labels Trace [INVLAP7B.pls]: Unexpected Error has occured in GET_VARIABLES_DATA');
958               END IF;
959               x_return_status := FND_API.G_RET_STS_ERROR;
960               fnd_message.set_name('WMS','WMS_CS_WRONG_SQL_CONSTRUCT');
961               fnd_msg_pub.ADD;
962               fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data);
963               RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
964             END;
965             IF (l_debug = 1) THEN
966               trace('Custom Labels Trace [INVLAP7B.pls]: At Breadcrumb 6');
967               trace('Custom Labels Trace [INVLAP7B.pls]: Before assigning it to l_delivery_data');
968             END IF;
969             l_delivery_data  :=   l_delivery_data
970                            || variable_b
971                            || l_selected_fields(i).variable_name
972                            || '">'
973                            || l_sql_stmt_result
974                            || variable_e;
975             l_sql_stmt_result := NULL;
976             l_sql_stmt        := NULL;
977             IF (l_debug = 1) THEN
978               trace('Custom Labels Trace [INVLAP7B.pls]: At Breadcrumb 7');
979               trace('Custom Labels Trace [INVLAP7B.pls]: After assigning it to l_delivery_data');
980               trace('Custom Labels Trace [INVLAP7B.pls]: --------------------------REPORT END-------------------------------------');
981             END IF;
982 ------------------------End of this change for Custom Labels project code--------------------
983             ELSIF LOWER(l_selected_fields(i).column_name) = 'current_date' THEN
984                l_delivery_data := l_delivery_data || VARIABLE_B ||
985                l_selected_fields(i).variable_name || '">' || INV_LABEL.G_DATE || VARIABLE_E;
986             ELSIF LOWER(l_selected_fields(i).column_name) = 'current_time' THEN
987                l_delivery_data := l_delivery_data || VARIABLE_B ||
988                l_selected_fields(i).variable_name || '">' || INV_LABEL.G_TIME || VARIABLE_E;
989             ELSIF LOWER(l_selected_fields(i).column_name) = 'request_user' THEN
990                l_delivery_data := l_delivery_data || VARIABLE_B ||
991                l_selected_fields(i).variable_name || '">' || INV_LABEL.G_USER || VARIABLE_E;
992             ELSIF LOWER(l_selected_fields(i).column_name) = 'airbill' THEN
993                l_delivery_data := l_delivery_data || VARIABLE_B ||
994                l_selected_fields(i).variable_name || '">' || v_delivery.airbill || VARIABLE_E;
995             ELSIF LOWER(l_selected_fields(i).column_name) = 'bill_of_lading' THEN
996                l_delivery_data := l_delivery_data || VARIABLE_B ||
997                l_selected_fields(i).variable_name || '">' || v_delivery.bill_of_lading || VARIABLE_E;
998             ELSIF LOWER(l_selected_fields(i).column_name) = 'carrier' THEN
999                l_delivery_data := l_delivery_data || VARIABLE_B ||
1000                l_selected_fields(i).variable_name || '">' || v_delivery.carrier || VARIABLE_E;
1001             ELSIF LOWER(l_selected_fields(i).column_name) = 'customer' THEN
1002                l_delivery_data := l_delivery_data || VARIABLE_B ||
1003                l_selected_fields(i).variable_name || '">' || v_delivery.customer || VARIABLE_E;
1004             ELSIF LOWER(l_selected_fields(i).column_name) = 'delivery_number' THEN
1005                l_delivery_data := l_delivery_data || VARIABLE_B ||
1006                 l_selected_fields(i).variable_name || '">' || v_delivery.delivery_number || VARIABLE_E;
1007             ELSIF LOWER(l_selected_fields(i).column_name) = 'ship_from_postal_code' THEN
1008                l_delivery_data := l_delivery_data || VARIABLE_B ||
1009                l_selected_fields(i).variable_name || '">' || v_delivery.ship_from_postal_code || VARIABLE_E;
1010             ELSIF LOWER(l_selected_fields(i).column_name) = 'ship_from_state' THEN
1011                l_delivery_data := l_delivery_data || VARIABLE_B ||
1012                l_selected_fields(i).variable_name || '">' || v_delivery.ship_from_state || VARIABLE_E;
1013             ELSIF LOWER(l_selected_fields(i).column_name) = 'ship_from_address1' THEN
1014                l_delivery_data := l_delivery_data || VARIABLE_B ||
1015                l_selected_fields(i).variable_name || '">' || v_delivery.ship_from_address1 || VARIABLE_E;
1016             ELSIF LOWER(l_selected_fields(i).column_name) = 'ship_from_address2' THEN
1017                l_delivery_data := l_delivery_data || VARIABLE_B ||
1018                l_selected_fields(i).variable_name || '">' || v_delivery.ship_from_address2 || VARIABLE_E;
1019             ELSIF LOWER(l_selected_fields(i).column_name) = 'ship_from_address3' THEN
1020                l_delivery_data := l_delivery_data || VARIABLE_B ||
1021                l_selected_fields(i).variable_name || '">' || v_delivery.ship_from_address3 || VARIABLE_E;
1022             ELSIF LOWER(l_selected_fields(i).column_name) = 'ship_from_address4' THEN
1023                l_delivery_data := l_delivery_data || VARIABLE_B ||
1024                l_selected_fields(i).variable_name || '">' || v_delivery.ship_from_address4 || VARIABLE_E;
1025             ELSIF LOWER(l_selected_fields(i).column_name) = 'ship_from_city' THEN
1026                l_delivery_data := l_delivery_data || VARIABLE_B ||
1027                l_selected_fields(i).variable_name || '">' || v_delivery.ship_from_city || VARIABLE_E;
1028             ELSIF LOWER(l_selected_fields(i).column_name) = 'ship_from_country' THEN
1029                l_delivery_data := l_delivery_data || VARIABLE_B ||
1030                l_selected_fields(i).variable_name || '">' || v_delivery.ship_from_country || VARIABLE_E;
1031             ELSIF LOWER(l_selected_fields(i).column_name) = 'ship_from_county' THEN
1032                l_delivery_data := l_delivery_data || VARIABLE_B ||
1033                l_selected_fields(i).variable_name || '">' || v_delivery.ship_from_county || VARIABLE_E;
1034             ELSIF LOWER(l_selected_fields(i).column_name) = 'ship_from_province' THEN
1035                l_delivery_data := l_delivery_data || VARIABLE_B ||
1036                l_selected_fields(i).variable_name || '">' || v_delivery.ship_from_province || VARIABLE_E;
1037             ELSIF LOWER(l_selected_fields(i).column_name) = 'ship_from_state' THEN
1038                l_delivery_data := l_delivery_data || VARIABLE_B ||
1039                l_selected_fields(i).variable_name || '">' || v_delivery.ship_from_state || VARIABLE_E;
1040             ELSIF LOWER(l_selected_fields(i).column_name) = 'shipment_gross_weight' THEN
1041                l_delivery_data := l_delivery_data || VARIABLE_B ||
1042                l_selected_fields(i).variable_name || '">' || v_delivery.shipment_gross_weight || VARIABLE_E;
1043             ELSIF LOWER(l_selected_fields(i).column_name) = 'shipment_gross_weight_uom' THEN
1044                l_delivery_data := l_delivery_data || VARIABLE_B ||
1045                l_selected_fields(i).variable_name || '">' || v_delivery.shipment_gross_weight_uom || VARIABLE_E;
1046             ELSIF LOWER(l_selected_fields(i).column_name) = 'ship_method' THEN
1047                l_delivery_data := l_delivery_data || VARIABLE_B ||
1048                l_selected_fields(i).variable_name || '">' || v_delivery.ship_method || VARIABLE_E;
1049             ELSIF LOWER(l_selected_fields(i).column_name) = 'shipment_tare_weight' THEN
1050                l_delivery_data := l_delivery_data || VARIABLE_B ||
1051                l_selected_fields(i).variable_name || '">' || v_delivery.shipment_tare_weight || VARIABLE_E;
1052             ELSIF LOWER(l_selected_fields(i).column_name) = 'shipment_tare_weight_uom' THEN
1053                l_delivery_data := l_delivery_data || VARIABLE_B ||
1054                l_selected_fields(i).variable_name || '">' || v_delivery.shipment_tare_weight_uom || VARIABLE_E;
1055             ELSIF LOWER(l_selected_fields(i).column_name) = 'ship_to_address1' THEN
1056                l_delivery_data := l_delivery_data || VARIABLE_B ||
1057                l_selected_fields(i).variable_name || '">' || v_delivery.ship_to_address1 || VARIABLE_E;
1058             ELSIF LOWER(l_selected_fields(i).column_name) = 'ship_to_address2' THEN
1059                l_delivery_data := l_delivery_data || VARIABLE_B ||
1060                l_selected_fields(i).variable_name || '">' || v_delivery.ship_to_address2 || VARIABLE_E;
1061             ELSIF LOWER(l_selected_fields(i).column_name) = 'ship_to_address3' THEN
1062                l_delivery_data := l_delivery_data || VARIABLE_B ||
1063                l_selected_fields(i).variable_name || '">' || v_delivery.ship_to_address3 || VARIABLE_E;
1064             ELSIF LOWER(l_selected_fields(i).column_name) = 'ship_to_address4' THEN
1065                l_delivery_data := l_delivery_data || VARIABLE_B ||
1066                l_selected_fields(i).variable_name || '">' || v_delivery.ship_to_address4 || VARIABLE_E;
1067             ELSIF LOWER(l_selected_fields(i).column_name) = 'ship_to_city' THEN
1068                l_delivery_data := l_delivery_data || VARIABLE_B ||
1069                l_selected_fields(i).variable_name || '">' || v_delivery.ship_to_city || VARIABLE_E;
1070             ELSIF LOWER(l_selected_fields(i).column_name) = 'ship_to_country' THEN
1071                l_delivery_data := l_delivery_data || VARIABLE_B ||
1072                l_selected_fields(i).variable_name || '">' || v_delivery.ship_to_country || VARIABLE_E;
1073             ELSIF LOWER(l_selected_fields(i).column_name) = 'ship_to_county' THEN
1074                l_delivery_data := l_delivery_data || VARIABLE_B ||
1075                l_selected_fields(i).variable_name || '">' || v_delivery.ship_to_county || VARIABLE_E;
1076             ELSIF LOWER(l_selected_fields(i).column_name) = 'ship_to_postal_code' THEN
1077                l_delivery_data := l_delivery_data || VARIABLE_B ||
1078                l_selected_fields(i).variable_name || '">' || v_delivery.ship_to_postal_code || VARIABLE_E;
1079             ELSIF LOWER(l_selected_fields(i).column_name) = 'ship_to_province' THEN
1080                l_delivery_data := l_delivery_data || VARIABLE_B ||
1081                l_selected_fields(i).variable_name || '">' || v_delivery.ship_to_province || VARIABLE_E;
1082             ELSIF LOWER(l_selected_fields(i).column_name) = 'ship_to_state' THEN
1083                l_delivery_data := l_delivery_data || VARIABLE_B ||
1084                l_selected_fields(i).variable_name || '">' || v_delivery.ship_to_state || VARIABLE_E;
1085             ELSIF LOWER(l_selected_fields(i).column_name) = 'shipment_volume' THEN
1086                l_delivery_data := l_delivery_data || VARIABLE_B ||
1087                l_selected_fields(i).variable_name || '">' || v_delivery.shipment_volume || VARIABLE_E;
1088             ELSIF LOWER(l_selected_fields(i).column_name) = 'shipment_volume_uom' THEN
1089                l_delivery_data := l_delivery_data || VARIABLE_B ||
1090                l_selected_fields(i).variable_name || '">' || v_delivery.shipment_volume_uom || VARIABLE_E;
1091             ELSIF LOWER(l_selected_fields(i).column_name) = 'total_number_of_lpns' THEN
1092                l_delivery_data := l_delivery_data || VARIABLE_B ||
1093                l_selected_fields(i).variable_name || '">' || v_delivery.total_number_of_lpns || VARIABLE_E;
1094             ELSIF LOWER(l_selected_fields(i).column_name) = 'waybill' THEN
1095                l_delivery_data := l_delivery_data || VARIABLE_B ||
1096                l_selected_fields(i).variable_name || '">' || v_delivery.waybill || VARIABLE_E;
1097             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_attribute1' THEN
1098                l_delivery_data := l_delivery_data || VARIABLE_B ||
1099                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_attribute1 || VARIABLE_E;
1100             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_attribute2' THEN
1101                l_delivery_data := l_delivery_data || VARIABLE_B ||
1102                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_attribute2 || VARIABLE_E;
1103             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_attribute3' THEN
1104                l_delivery_data := l_delivery_data || VARIABLE_B ||
1105                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_attribute3 || VARIABLE_E;
1106             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_attribute4' THEN
1107                l_delivery_data := l_delivery_data || VARIABLE_B ||
1108                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_attribute4 || VARIABLE_E;
1109             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_attribute5' THEN
1110                l_delivery_data := l_delivery_data || VARIABLE_B ||
1111                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_attribute5 || VARIABLE_E;
1112             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_attribute6' THEN
1113                l_delivery_data := l_delivery_data || VARIABLE_B ||
1114                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_attribute6 || VARIABLE_E;
1115             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_attribute7' THEN
1116                l_delivery_data := l_delivery_data || VARIABLE_B ||
1117                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_attribute7 || VARIABLE_E;
1118             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_attribute8' THEN
1119                l_delivery_data := l_delivery_data || VARIABLE_B ||
1120                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_attribute8 || VARIABLE_E;
1121             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_attribute9' THEN
1122                l_delivery_data := l_delivery_data || VARIABLE_B ||
1123                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_attribute9 || VARIABLE_E;
1124             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_attribute10' THEN
1125                l_delivery_data := l_delivery_data || VARIABLE_B ||
1126                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_attribute10 || VARIABLE_E;
1127             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_attribute11' THEN
1128                l_delivery_data := l_delivery_data || VARIABLE_B ||
1129                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_attribute11 || VARIABLE_E;
1130             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_attribute12' THEN
1131                l_delivery_data := l_delivery_data || VARIABLE_B ||
1132                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_attribute12 || VARIABLE_E;
1133             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_attribute13' THEN
1134                l_delivery_data := l_delivery_data || VARIABLE_B ||
1135                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_attribute13 || VARIABLE_E;
1136             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_attribute14' THEN
1137                l_delivery_data := l_delivery_data || VARIABLE_B ||
1138                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_attribute14 || VARIABLE_E;
1139             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_attribute15' THEN
1140                l_delivery_data := l_delivery_data || VARIABLE_B ||
1141                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_attribute15 || VARIABLE_E;
1142             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_attribute_category' THEN
1143                l_delivery_data := l_delivery_data || VARIABLE_B ||
1144                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_attribute_category || VARIABLE_E;
1145 
1146              ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_tp_attr1' THEN
1147                l_delivery_data := l_delivery_data || VARIABLE_B ||
1148                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_tp_attr1 || VARIABLE_E;
1149             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_tp_attr2' THEN
1150                l_delivery_data := l_delivery_data || VARIABLE_B ||
1151                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_tp_attr2 || VARIABLE_E;
1152             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_tp_attr3' THEN
1153                l_delivery_data := l_delivery_data || VARIABLE_B ||
1154                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_tp_attr3 || VARIABLE_E;
1155             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_tp_attr4' THEN
1156                l_delivery_data := l_delivery_data || VARIABLE_B ||
1157                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_tp_attr4 || VARIABLE_E;
1158             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_tp_attr5' THEN
1159                l_delivery_data := l_delivery_data || VARIABLE_B ||
1160                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_tp_attr5 || VARIABLE_E;
1161             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_tp_attr6' THEN
1162                l_delivery_data := l_delivery_data || VARIABLE_B ||
1163                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_tp_attr6 || VARIABLE_E;
1164             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_tp_attr7' THEN
1165                l_delivery_data := l_delivery_data || VARIABLE_B ||
1166                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_tp_attr7 || VARIABLE_E;
1167             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_tp_attr8' THEN
1168                l_delivery_data := l_delivery_data || VARIABLE_B ||
1169                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_tp_attr8 || VARIABLE_E;
1170             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_tp_attr9' THEN
1171                l_delivery_data := l_delivery_data || VARIABLE_B ||
1172                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_tp_attr9 || VARIABLE_E;
1173             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_tp_attr10' THEN
1174                l_delivery_data := l_delivery_data || VARIABLE_B ||
1175                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_tp_attr10 || VARIABLE_E;
1176             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_tp_attr11' THEN
1177                l_delivery_data := l_delivery_data || VARIABLE_B ||
1178                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_tp_attr11 || VARIABLE_E;
1179             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_tp_attr12' THEN
1180                l_delivery_data := l_delivery_data || VARIABLE_B ||
1181                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_tp_attr12 || VARIABLE_E;
1182             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_tp_attr13' THEN
1183                l_delivery_data := l_delivery_data || VARIABLE_B ||
1184                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_tp_attr13 || VARIABLE_E;
1185             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_tp_attr14' THEN
1186                l_delivery_data := l_delivery_data || VARIABLE_B ||
1187                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_tp_attr14 || VARIABLE_E;
1188             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_tp_attr15' THEN
1189                l_delivery_data := l_delivery_data || VARIABLE_B ||
1190                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_tp_attr15 || VARIABLE_E;
1191             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_tp_attr_category' THEN
1192                l_delivery_data := l_delivery_data || VARIABLE_B ||
1193                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_tp_attr_category || VARIABLE_E;
1194 
1195              ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_global_attr1' THEN
1196                l_delivery_data := l_delivery_data || VARIABLE_B ||
1197                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_global_attr1 || VARIABLE_E;
1198             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_global_attr2' THEN
1199                l_delivery_data := l_delivery_data || VARIABLE_B ||
1200                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_global_attr2 || VARIABLE_E;
1201             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_global_attr3' THEN
1202                l_delivery_data := l_delivery_data || VARIABLE_B ||
1203                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_global_attr3 || VARIABLE_E;
1204             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_global_attr4' THEN
1205                l_delivery_data := l_delivery_data || VARIABLE_B ||
1206                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_global_attr4 || VARIABLE_E;
1207             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_global_attr5' THEN
1208                l_delivery_data := l_delivery_data || VARIABLE_B ||
1209                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_global_attr5 || VARIABLE_E;
1210             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_global_attr6' THEN
1211                l_delivery_data := l_delivery_data || VARIABLE_B ||
1212                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_global_attr6 || VARIABLE_E;
1213             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_global_attr7' THEN
1214                l_delivery_data := l_delivery_data || VARIABLE_B ||
1215                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_global_attr7 || VARIABLE_E;
1216             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_global_attr8' THEN
1217                l_delivery_data := l_delivery_data || VARIABLE_B ||
1218                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_global_attr8 || VARIABLE_E;
1219             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_global_attr9' THEN
1220                l_delivery_data := l_delivery_data || VARIABLE_B ||
1221                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_global_attr9 || VARIABLE_E;
1222             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_global_attr10' THEN
1223                l_delivery_data := l_delivery_data || VARIABLE_B ||
1224                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_global_attr10 || VARIABLE_E;
1225             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_global_attr11' THEN
1226                l_delivery_data := l_delivery_data || VARIABLE_B ||
1227                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_global_attr11 || VARIABLE_E;
1228             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_global_attr12' THEN
1229                l_delivery_data := l_delivery_data || VARIABLE_B ||
1230                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_global_attr12 || VARIABLE_E;
1231             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_global_attr13' THEN
1232                l_delivery_data := l_delivery_data || VARIABLE_B ||
1233                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_global_attr13 || VARIABLE_E;
1234             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_global_attr14' THEN
1235                l_delivery_data := l_delivery_data || VARIABLE_B ||
1236                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_global_attr14 || VARIABLE_E;
1237             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_global_attr15' THEN
1238                l_delivery_data := l_delivery_data || VARIABLE_B ||
1239                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_global_attr15 || VARIABLE_E;
1240             ELSIF LOWER(l_selected_fields(i).column_name) = 'new_del_global_attr_category' THEN
1241                l_delivery_data := l_delivery_data || VARIABLE_B ||
1242                l_selected_fields(i).variable_name || '">' || v_delivery.new_del_global_attr_category || VARIABLE_E;
1243             --Bug 3969347-Added the label fields ship_from_addressee and ship_to_addressee.
1244             ELSIF LOWER(l_selected_fields(i).column_name) = 'ship_from_addressee' THEN
1245                    l_delivery_data := l_delivery_data || VARIABLE_B ||
1246                     l_selected_fields(i).variable_name || '">' || v_delivery.ship_from_addressee || VARIABLE_E;
1247             ELSIF LOWER(l_selected_fields(i).column_name) = 'ship_to_addressee' THEN
1248                    l_delivery_data := l_delivery_data || VARIABLE_B ||
1249                     l_selected_fields(i).variable_name || '">' || v_delivery.ship_to_addressee || VARIABLE_E;
1250            --End of fix for Bug 3969347.
1251 
1252           END IF;
1253 
1254          END LOOP;
1255          l_delivery_data := l_delivery_data || LABEL_E;
1256          x_variable_content(l_label_index).label_content := l_delivery_data;
1257          x_variable_content(l_label_index).label_request_id := l_label_request_id;
1258 
1259 ------------------------Start of changes for Custom Labels project code------------------
1260 
1261         -- Fix for bug: 4179593 Start
1262         IF (l_CustSqlWarnFlagSet) THEN
1263          l_custom_sql_ret_status := INV_LABEL.G_WARNING;
1264          l_custom_sql_ret_msg := l_CustSqlWarnMsg;
1265         END IF;
1266 
1267         IF (l_CustSqlErrFlagSet) THEN
1268          l_custom_sql_ret_status := FND_API.G_RET_STS_ERROR;
1269          l_custom_sql_ret_msg := l_CustSqlErrMsg;
1270         END IF;
1271         -- Fix for bug: 4179593 End
1272 
1273         x_variable_content(l_label_index).label_status      := l_custom_sql_ret_status ;
1274         x_variable_content(l_label_index).error_message     := l_custom_sql_ret_msg;
1275 ------------------------End of this changes for Custom Labels project code---------------
1276 
1277          l_label_index := l_label_index +1;
1278          <<NextLabel>>
1279          l_delivery_data := '';
1280          l_label_request_id := null;
1281 
1282 ------------------------Start of changes for Custom Labels project code------------------
1283         l_custom_sql_ret_status := NULL;
1284         l_custom_sql_ret_msg    := NULL;
1285 ------------------------End of this changes for Custom Labels project code---------------
1286 
1287          IF (l_debug = 1) THEN
1288             trace(l_column_name_list);
1289                trace('  Finished writing item variables ');
1290          END IF;
1291       END LOOP;
1292 
1293       IF p_label_type_info.business_flow_code in (22)
1294       THEN
1295          FETCH c_cart_shipping_pkg INTO l_delivery_id;
1296             IF c_cart_shipping_pkg%NOTFOUND
1297             THEN
1298                IF (l_debug = 1) THEN
1299                   trace(' No more delivery_id found for cartonization');
1300                END IF;
1301                CLOSE c_cart_shipping_pkg;
1302                l_delivery_id := null;
1303             ELSE
1304                IF (l_debug = 1) THEN
1305                   Trace('Found next delivery_id=' || l_delivery_id);
1306                END IF;
1307             END IF;
1308       ELSE
1309          l_delivery_id := null;
1310       END IF;
1311 
1312    END LOOP;
1313 END get_variable_data;
1314 
1315 PROCEDURE get_variable_data(
1316    x_variable_content   OUT NOCOPY LONG
1317 ,  x_msg_count    OUT NOCOPY NUMBER
1318 ,  x_msg_data           OUT NOCOPY VARCHAR2
1319 ,  x_return_status      OUT NOCOPY VARCHAR2
1320 ,  p_label_type_info IN INV_LABEL.label_type_rec
1321 ,  p_transaction_id  IN NUMBER
1322 ,  p_input_param     IN MTL_MATERIAL_TRANSACTIONS_TEMP%ROWTYPE
1323 ,  p_transaction_identifier IN NUMBER
1324 ) IS
1325    l_variable_data_tbl INV_LABEL.label_tbl_type;
1326 BEGIN
1327    get_variable_data(
1328       x_variable_content   => l_variable_data_tbl
1329    ,  x_msg_count    => x_msg_count
1330    ,  x_msg_data           => x_msg_data
1331    ,  x_return_status      => x_return_status
1332    ,  p_label_type_info => p_label_type_info
1333    ,  p_transaction_id  => p_transaction_id
1334    ,  p_input_param     => p_input_param
1335    ,  p_transaction_identifier=> p_transaction_identifier
1336    );
1337 
1338    x_variable_content := '';
1339 
1340    FOR i IN 1..l_variable_data_tbl.count() LOOP
1341       x_variable_content := x_variable_content || l_variable_data_tbl(i).label_content;
1342    END LOOP;
1343 
1344 END get_variable_data;
1345 
1346 
1347 END INV_LABEL_PVT7;