DBA Data[Home] [Help]

PACKAGE BODY: APPS.ONT_OEXOEWFR_XMLP_PKG

Source


1 PACKAGE BODY ONT_OEXOEWFR_XMLP_PKG AS
2 /* $Header: OEXOEWFRB.pls 120.1 2007/12/25 07:28:39 npannamp noship $ */
3   FUNCTION CF_EXTENDED_VALUEFORMULA(HEADER_ID1 IN NUMBER
4                                    ,LINE_ID IN NUMBER
5                                    ,LINE_VALUE IN NUMBER
6                                    ,LINE_CATEGORY_CODE IN VARCHAR2) RETURN NUMBER IS
7     EXTENDED_VALUE NUMBER;
8     T_RETURN_STATUS VARCHAR2(1) := '';
9     T_MSG_COUNT NUMBER := 0;
10     T_MSG_DATA VARCHAR2(4000) := '';
11     T_CHARGE_AMOUNT NUMBER := 0;
12   BEGIN
13     OE_CHARGE_PVT.GET_CHARGE_AMOUNT(P_API_VERSION_NUMBER => 1
14                                    ,P_INIT_MSG_LIST => 'F'
15                                    ,P_HEADER_ID => HEADER_ID1
16                                    ,P_LINE_ID => LINE_ID
17                                    ,P_ALL_CHARGES => 'F'
18                                    ,X_RETURN_STATUS => T_RETURN_STATUS
19                                    ,X_MSG_COUNT => T_MSG_COUNT
20                                    ,X_MSG_DATA => T_MSG_DATA
21                                    ,X_CHARGE_AMOUNT => T_CHARGE_AMOUNT);
22     EXTENDED_VALUE := LINE_VALUE;
23     IF LINE_CATEGORY_CODE = 'RETURN' THEN
24       EXTENDED_VALUE := EXTENDED_VALUE * -1;
25     END IF;
26     EXTENDED_VALUE := EXTENDED_VALUE + T_CHARGE_AMOUNT;
27     /*SRW.MESSAGE(1
28                ,'extended_value' || EXTENDED_VALUE)*/NULL;
29     RETURN (EXTENDED_VALUE);
30   EXCEPTION
31     WHEN OTHERS THEN
32       /*SRW.MESSAGE(9999
33                  ,'Error in getting charges: ' || SQLERRM)*/NULL;
34       RETURN (NULL);
35   END CF_EXTENDED_VALUEFORMULA;
36 
37   FUNCTION CF_HOLD_VALUEFORMULA(HEADER_ID1 IN NUMBER
38                                ,LINE_ID IN NUMBER) RETURN CHAR IS
39     L_HEADER_HOLD NUMBER;
40     L_LINE_HOLD NUMBER;
41     DUMMY NUMBER;
42     CURSOR HEADER_HOLD IS
43       SELECT
44         1
45       FROM
46         OE_ORDER_HOLDS_ALL OH
47       WHERE OH.HEADER_ID = HEADER_ID1
48         AND OH.LINE_ID IS NULL
49         AND OH.HOLD_RELEASE_ID IS NULL
50         AND ROWNUM = 1;
51     CURSOR LINE_HOLD IS
52       SELECT
53         1
54       FROM
55         OE_ORDER_HOLDS_ALL OH
56       WHERE OH.LINE_ID = CF_HOLD_VALUEFORMULA.LINE_ID
57         AND OH.HOLD_RELEASE_ID IS NULL
58         AND ROWNUM = 1;
59   BEGIN
60     OPEN HEADER_HOLD;
61     FETCH HEADER_HOLD
62      INTO L_HEADER_HOLD;
63     CLOSE HEADER_HOLD;
64     IF NVL(L_HEADER_HOLD
65        ,0) <> 0 THEN
66       RETURN 'YES';
67     ELSE
68       OPEN LINE_HOLD;
69       FETCH LINE_HOLD
70        INTO L_LINE_HOLD;
71       CLOSE LINE_HOLD;
72       IF NVL(L_LINE_HOLD
73          ,0) <> 0 THEN
74         RETURN 'YES';
75       ELSE
76         RETURN 'NO';
77       END IF;
78     END IF;
79     RETURN (NULL);
80   EXCEPTION
81     WHEN OTHERS THEN
82       RETURN (NULL);
83   END CF_HOLD_VALUEFORMULA;
84 
85   FUNCTION CF_COUNTRYFORMULA RETURN CHAR IS
86   BEGIN
87     RETURN ('U.S.');
88     RETURN (NULL);
89   EXCEPTION
90     WHEN OTHERS THEN
91       RETURN (NULL);
92   END CF_COUNTRYFORMULA;
93 
94   FUNCTION CF_CURRENCYFORMULA RETURN CHAR IS
95   BEGIN
96     RETURN ('USD');
97     RETURN (NULL);
98   EXCEPTION
99     WHEN OTHERS THEN
100       RETURN (NULL);
101   END CF_CURRENCYFORMULA;
102 
103   FUNCTION P_OVERDUE_DAYSVALIDTRIGGER RETURN BOOLEAN IS
104   BEGIN
105     IF P_OVERDUE_DAYS IS NULL THEN
106       RETURN (FALSE);
107     ELSE
108       RETURN (TRUE);
109     END IF;
110   END P_OVERDUE_DAYSVALIDTRIGGER;
111 
112   FUNCTION P_NO_DATAVALIDTRIGGER RETURN BOOLEAN IS
113   BEGIN
114     RETURN (TRUE);
115   END P_NO_DATAVALIDTRIGGER;
116 
117   FUNCTION P_ACTIONSVALIDTRIGGER RETURN BOOLEAN IS
118   BEGIN
119     RETURN (TRUE);
120   END P_ACTIONSVALIDTRIGGER;
121 
122   FUNCTION AFTERPFORM RETURN BOOLEAN IS
123   BEGIN
124     PARAM_WHERE_CLAUSE := ' ';
125     IF (P_ORDER_TYPE IS NOT NULL AND P_ORDER_TYPE <> 'ALL') THEN
126       PARAM_WHERE_CLAUSE := PARAM_WHERE_CLAUSE || ' and tt.name = :P_ORDER_TYPE';
127     END IF;
128     IF (P_ORDER_NO_LOW IS NOT NULL) THEN
129       PARAM_WHERE_CLAUSE := PARAM_WHERE_CLAUSE || ' and soh.order_number >= :P_ORDER_NO_LOW';
130     END IF;
131     IF (P_ORDER_NO_HIGH IS NOT NULL) THEN
132       PARAM_WHERE_CLAUSE := PARAM_WHERE_CLAUSE || ' and soh.order_number <= :P_ORDER_NO_HIGH';
133     END IF;
134     IF (P_LINE_CATEGORY IS NOT NULL AND P_LINE_CATEGORY <> 'ALL') THEN
135       PARAM_WHERE_CLAUSE := PARAM_WHERE_CLAUSE || ' and sol.line_category_code = :P_LINE_CATEGORY';
136     END IF;
137     RETURN (TRUE);
138   END AFTERPFORM;
139 
140   FUNCTION AFTERPFORM0009 RETURN BOOLEAN IS
141     L_AFTER BOOLEAN;
142     TEMP_VAR VARCHAR2(200);
143   BEGIN
144     RETURN (AFTERPFORM);
145   END AFTERPFORM0009;
146 
147   FUNCTION CF_ITEM_Y_NFORMULA(CONCATENATED_SEGMENTS IN VARCHAR2
148                              ,DESCRIPTION IN VARCHAR2) RETURN CHAR IS
149   BEGIN
150     IF (P_ITEM = 'ITEM_NO') THEN
151       RETURN (CONCATENATED_SEGMENTS);
152     ELSE
153       RETURN (DESCRIPTION);
154     END IF;
155     RETURN (NULL);
156   EXCEPTION
157     WHEN OTHERS THEN
158       RETURN (NULL);
159   END CF_ITEM_Y_NFORMULA;
160 
161   FUNCTION CF_BOOKED_DISPLAYFORMULA(BOOKED_FLAG IN VARCHAR2) RETURN CHAR IS
162   BEGIN
163     IF (P_ACTIONS = 'SCHED_NOT_PK') THEN
164       RETURN (BOOKED_FLAG);
165     ELSE
166       RETURN (' ');
167     END IF;
168     RETURN (NULL);
169   EXCEPTION
170     WHEN OTHERS THEN
171       RETURN (NULL);
172   END CF_BOOKED_DISPLAYFORMULA;
173 
174   FUNCTION BEFOREREPORT RETURN BOOLEAN IS
175    apf boolean;
176   BEGIN
177     BEGIN
178       P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
179       apf := afterpform0009;
180       /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
181     EXCEPTION
182       WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
183         BEGIN
184           /*SRW.MESSAGE(1
185                      ,'FAILED IN BEFORE REPORT TRIGGER')*/NULL;
186           /*RAISE SRW.PROGRAM_ABORT*/RAISE_APPLICATION_ERROR(-20101,null);
187           RETURN (FALSE);
188         END;
189     END;
190     BEGIN
191       /*SRW.MESSAGE(2
192                  ,'Before Report')*/NULL;
193       P_ORG_ID := MO_GLOBAL.GET_CURRENT_ORG_ID;
194       /*SRW.MESSAGE(2
195                  ,'Before Report-->:P_ORG_ID:' || P_ORG_ID)*/NULL;
196     END;
197     DECLARE
198       L_SOB_NAME VARCHAR2(240);
199     BEGIN
200       SELECT
201         SOB.NAME
202       INTO L_SOB_NAME
203       FROM
204         GL_SETS_OF_BOOKS SOB
205       WHERE SOB.SET_OF_BOOKS_ID = P_SOB_ID;
206       RP_COMPANY_NAME := L_SOB_NAME;
207     EXCEPTION
208       WHEN NO_DATA_FOUND THEN
209         RP_COMPANY_NAME := NULL;
210     END;
211     RETURN (TRUE);
212   END BEFOREREPORT;
213 
214   FUNCTION BEFOREPFORM RETURN BOOLEAN IS
215   BEGIN
216     RETURN (TRUE);
217   END BEFOREPFORM;
218 
219   FUNCTION PARAM_WHERE_CLAUSEVALIDTRIGGER RETURN BOOLEAN IS
220   BEGIN
221     RETURN (TRUE);
222   END PARAM_WHERE_CLAUSEVALIDTRIGGER;
223 
224   FUNCTION AFTERREPORT RETURN BOOLEAN IS
225   BEGIN
226     /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
227     RETURN (TRUE);
228   EXCEPTION
229     WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
230       /*SRW.MESSAGE(1
231                  ,'FAILED IN AFTER REPORT TRIGGER')*/NULL;
232       RETURN (FALSE);
233   END AFTERREPORT;
234 
235   FUNCTION BETWEENPAGE RETURN BOOLEAN IS
236   BEGIN
237     RETURN (TRUE);
238   END BETWEENPAGE;
239 
240   FUNCTION CF_LINE_NUMBERFORMULA(LINE_NUMBER IN NUMBER
241                                 ,SHIPMENT_NUMBER IN NUMBER
242                                 ,OPTION_NUMBER IN NUMBER
243                                 ,COMPONENT_NUMBER IN NUMBER
244                                 ,SERVICE_NUMBER IN NUMBER) RETURN CHAR IS
245     P_LINE_NUMBER NUMBER;
246     P_SHIPMENT_NUMBER NUMBER;
247     P_OPTION_NUMBER NUMBER;
248     P_COMPONENT_NUMBER NUMBER;
249     P_SERVICE_NUMBER NUMBER;
250     P_CONCAT_VALUE VARCHAR2(500);
251     P_CONCAT_VALUE2 VARCHAR2(500);
252     P_CONCAT_VALUE_NUM NUMBER;
253   BEGIN
254     P_LINE_NUMBER := LINE_NUMBER;
255     P_SHIPMENT_NUMBER := SHIPMENT_NUMBER;
256     P_OPTION_NUMBER := OPTION_NUMBER;
257     P_COMPONENT_NUMBER := COMPONENT_NUMBER;
258     P_SERVICE_NUMBER := SERVICE_NUMBER;
259     LINE_SHIPMENT_OPTION(P_LINE_NUMBER
260                         ,P_SHIPMENT_NUMBER
261                         ,P_OPTION_NUMBER
262                         ,P_CONCAT_VALUE
263                         ,P_COMPONENT_NUMBER
264                         ,P_SERVICE_NUMBER);
265     SELECT
266       REPLACE(P_CONCAT_VALUE
267              ,'.-1'
268              ,'')
269     INTO P_CONCAT_VALUE
270     FROM
271       DUAL;
272     RETURN (P_CONCAT_VALUE);
273     RETURN (NULL);
274   EXCEPTION
275     WHEN OTHERS THEN
276       RETURN (NULL);
277   END CF_LINE_NUMBERFORMULA;
278 
279   FUNCTION CF_ORDERED_DATEFORMULA(LINE_ID IN NUMBER
280                                  ,HEADER_ID1 IN NUMBER
281                                  ,ORDERED_DATE IN DATE) RETURN DATE IS
282     X_RESULT_DATE DATE;
283     L_LINE_DATE DATE;
284     L_HEADER_DATE DATE;
285     CURSOR GET_LINE_DATE IS
286       SELECT
287         WIAS.END_DATE
288       FROM
289         WF_ITEM_ACTIVITY_STATUSES WIAS,
290         WF_PROCESS_ACTIVITIES WPA
291       WHERE WIAS.ITEM_TYPE = 'OEOL'
292         AND WIAS.ITEM_KEY = TO_CHAR(LINE_ID)
293         AND WIAS.PROCESS_ACTIVITY = WPA.INSTANCE_ID
294         AND WPA.ACTIVITY_NAME = 'INVOICE_INTERFACE';
295     CURSOR GET_HEADER_DATE IS
296       SELECT
297         WIAS.END_DATE
298       FROM
299         WF_ITEM_ACTIVITY_STATUSES WIAS,
300         WF_PROCESS_ACTIVITIES WPA
301       WHERE WIAS.ITEM_TYPE = 'OEOH'
302         AND WIAS.ITEM_KEY = TO_CHAR(HEADER_ID1)
303         AND WIAS.PROCESS_ACTIVITY = WPA.INSTANCE_ID
304         AND WPA.ACTIVITY_NAME = 'HEADER_INVOICE_INTERFACE';
305   BEGIN
306     IF (P_ACTIONS <> 'INVOICE_INT_NOT_CLOSED') THEN
307       RETURN (ORDERED_DATE);
308     ELSE
309       OPEN GET_LINE_DATE;
310       FETCH GET_LINE_DATE
311        INTO L_LINE_DATE;
312       IF GET_LINE_DATE%FOUND THEN
313         RETURN (L_LINE_DATE);
314       ELSE
315         OPEN GET_HEADER_DATE;
316         FETCH GET_HEADER_DATE
317          INTO L_HEADER_DATE;
318         IF GET_HEADER_DATE%FOUND THEN
319           RETURN (L_HEADER_DATE);
320         ELSE
321           RETURN (NULL);
322         END IF;
323       END IF;
324     END IF;
325     RETURN (NULL);
326   EXCEPTION
327     WHEN OTHERS THEN
328       RETURN (NULL);
329   END CF_ORDERED_DATEFORMULA;
330 
331   FUNCTION G_LINE_IDGROUPFILTER(CF_ORDERED_DATE IN DATE) RETURN BOOLEAN IS
332   BEGIN
333     IF CF_ORDERED_DATE IS NULL THEN
334       RETURN (FALSE);
335     ELSE
336       RETURN (TRUE);
337     END IF;
338   END G_LINE_IDGROUPFILTER;
339 
340   FUNCTION CF_MASTER_ORGFORMULA RETURN CHAR IS
341     V_MASTER_ORG VARCHAR2(20);
342   BEGIN
343     SELECT
344       NVL(OE_SYS_PARAMETERS.VALUE('MASTER_ORGANIZATION_ID')
345          ,0)
346     INTO V_MASTER_ORG
347     FROM
348       DUAL;
349     RETURN V_MASTER_ORG;
350   END CF_MASTER_ORGFORMULA;
351 
352   FUNCTION CF_TYPEFORMULA(TYPE IN NUMBER) RETURN NUMBER IS
353   BEGIN
354     CP_TYPE := TYPE;
355     RETURN (0);
356   END CF_TYPEFORMULA;
357 
358   FUNCTION CF_TITLEFORMULA RETURN CHAR IS
359   BEGIN
360     IF CP_TYPE = 1 THEN
361       FND_MESSAGE.SET_NAME('ONT'
362                           ,'ONT_SEC_ENTER_BOOK');
363       RETURN (FND_MESSAGE.GET);
364     ELSIF CP_TYPE = 2 THEN
365       FND_MESSAGE.SET_NAME('ONT'
366                           ,'ONT_SEC_BOOK_SCH');
367       RETURN (FND_MESSAGE.GET);
368     ELSIF CP_TYPE = 3 THEN
369       FND_MESSAGE.SET_NAME('ONT'
370                           ,'ONT_SEC_SCH_PICK');
371       RETURN (FND_MESSAGE.GET);
372     ELSIF CP_TYPE = 4 THEN
373       FND_MESSAGE.SET_NAME('ONT'
374                           ,'ONT_SEC_PICK_SHIP');
375       RETURN (FND_MESSAGE.GET);
376     ELSIF CP_TYPE = 5 THEN
377       FND_MESSAGE.SET_NAME('ONT'
378                           ,'ONT_SEC_PUR_RCV');
379       RETURN (FND_MESSAGE.GET);
380     ELSIF CP_TYPE = 6 THEN
381       FND_MESSAGE.SET_NAME('ONT'
382                           ,'ONT_SEC_SHIP_AWT');
383       RETURN (FND_MESSAGE.GET);
384     ELSIF CP_TYPE = 7 THEN
385       FND_MESSAGE.SET_NAME('ONT'
386                           ,'ONT_SEC_SHIP_IVC');
387       RETURN (FND_MESSAGE.GET);
388     ELSIF CP_TYPE = 8 THEN
389       FND_MESSAGE.SET_NAME('ONT'
390                           ,'ONT_SEC_RCV_IVC');
391       RETURN (FND_MESSAGE.GET);
392     ELSIF CP_TYPE = 9 THEN
393       FND_MESSAGE.SET_NAME('ONT'
394                           ,'ONT_SEC_DROP_RCV');
395       RETURN (FND_MESSAGE.GET);
396     ELSIF CP_TYPE = 10 THEN
397       FND_MESSAGE.SET_NAME('ONT'
398                           ,'ONT_SEC_FUL_IVC');
399       RETURN (FND_MESSAGE.GET);
400     ELSIF CP_TYPE = 11 THEN
401       FND_MESSAGE.SET_NAME('ONT'
402                           ,'ONT_SEC_ITR_IVC');
403       RETURN (FND_MESSAGE.GET);
404     ELSIF CP_TYPE = 12 THEN
405       FND_MESSAGE.SET_NAME('ONT'
406                           ,'ONT_SEC_SHIP_CLS');
407       RETURN (FND_MESSAGE.GET);
408     ELSIF CP_TYPE = 13 THEN
409       FND_MESSAGE.SET_NAME('ONT'
410                           ,'ONT_SEC_IVC_CLS');
411       RETURN (FND_MESSAGE.GET);
412     END IF;
413     RETURN (NULL);
414   EXCEPTION
415     WHEN OTHERS THEN
416       RETURN (NULL);
417   END CF_TITLEFORMULA;
418 
419   FUNCTION CF_BOOKED_HEADINGFORMULA RETURN NUMBER IS
420   BEGIN
421     IF (P_ACTIONS = 'SCHED_NOT_PK') THEN
422       RETURN ('Booked');
423     ELSE
424       RETURN (' ');
425     END IF;
426     RETURN (' ');
427   EXCEPTION
428     WHEN OTHERS THEN
429       RETURN (NULL);
430   END CF_BOOKED_HEADINGFORMULA;
431 
432   FUNCTION CF_ORDER_TITLEFORMULA RETURN CHAR IS
433   BEGIN
434     IF CP_TYPE = 1 THEN
435       FND_MESSAGE.SET_NAME('ONT'
436                           ,'ONT_SEC_ORD_DAT');
437       RETURN (FND_MESSAGE.GET);
438     ELSIF CP_TYPE = 2 THEN
439       FND_MESSAGE.SET_NAME('ONT'
440                           ,'ONT_SEC_BOK_DAT');
441       RETURN (FND_MESSAGE.GET);
442     ELSIF CP_TYPE = 3 THEN
443       FND_MESSAGE.SET_NAME('ONT'
444                           ,'ONT_SEC_SCH_DAT');
445       RETURN (FND_MESSAGE.GET);
446     ELSIF CP_TYPE = 4 THEN
447       FND_MESSAGE.SET_NAME('ONT'
448                           ,'ONT_SEC_PIK_DAT');
449       RETURN (FND_MESSAGE.GET);
450     ELSIF CP_TYPE = 5 THEN
451       FND_MESSAGE.SET_NAME('ONT'
452                           ,'ONT_SEC_EXP_DAT');
453       RETURN (FND_MESSAGE.GET);
454     ELSIF CP_TYPE = 6 THEN
455       FND_MESSAGE.SET_NAME('ONT'
456                           ,'ONT_SEC_ACT_DAT');
457       RETURN (FND_MESSAGE.GET);
458     ELSIF CP_TYPE = 7 THEN
459       FND_MESSAGE.SET_NAME('ONT'
460                           ,'ONT_SEC_ACT_DAT');
461       RETURN (FND_MESSAGE.GET);
462     ELSIF CP_TYPE = 8 THEN
463       FND_MESSAGE.SET_NAME('ONT'
464                           ,'ONT_SEC_RCV_DAT');
465       RETURN (FND_MESSAGE.GET);
466     ELSIF CP_TYPE = 9 THEN
467       FND_MESSAGE.SET_NAME('ONT'
468                           ,'ONT_SEC_RCV_DAT');
469       RETURN (FND_MESSAGE.GET);
470     ELSIF CP_TYPE = 10 THEN
471       FND_MESSAGE.SET_NAME('ONT'
472                           ,'ONT_SEC_ORD_DAT');
473       RETURN (FND_MESSAGE.GET);
474     ELSIF CP_TYPE = 11 THEN
475       FND_MESSAGE.SET_NAME('ONT'
476                           ,'ONT_SEC_ITF_DAT');
477       RETURN (FND_MESSAGE.GET);
478     ELSIF CP_TYPE = 12 THEN
479       FND_MESSAGE.SET_NAME('ONT'
480                           ,'ONT_SEC_ACT_DAT');
481       RETURN (FND_MESSAGE.GET);
482     ELSIF CP_TYPE = 13 THEN
483       FND_MESSAGE.SET_NAME('ONT'
484                           ,'ONT_SEC_ITF_DAT');
485       RETURN (FND_MESSAGE.GET);
486     END IF;
487     RETURN (NULL);
488   EXCEPTION
489     WHEN OTHERS THEN
490       RETURN (NULL);
491   END CF_ORDER_TITLEFORMULA;
492 
493   FUNCTION CP_TYPE_P RETURN NUMBER IS
494   BEGIN
495     RETURN CP_TYPE;
496   END CP_TYPE_P;
497 
498   FUNCTION RP_COMPANY_NAME_P RETURN VARCHAR2 IS
499   BEGIN
500     RETURN RP_COMPANY_NAME;
501   END RP_COMPANY_NAME_P;
502 
503   PROCEDURE LINE_SHIPMENT_OPTION(P_LINE_NUMBER IN NUMBER
504                                 ,P_SHIPMENT_NUMBER IN NUMBER
505                                 ,P_OPTION_NUMBER IN NUMBER
506                                 ,P_CONCAT_VALUE OUT NOCOPY VARCHAR2
507                                 ,P_COMPONENT_NUMBER IN NUMBER := NULL
508                                 ,P_SERVICE_NUMBER IN NUMBER := NULL) IS
509     LINE_NUMBER NUMBER;
510     SHIPMENT_NUMBER NUMBER;
511     SERVICE_NUMBER NUMBER;
512     OPTION_NUMBER NUMBER;
513     COMPONENT_NUMBER NUMBER;
514   BEGIN
515     LINE_NUMBER := P_LINE_NUMBER;
516     SHIPMENT_NUMBER := P_SHIPMENT_NUMBER;
517     OPTION_NUMBER := P_OPTION_NUMBER;
518     COMPONENT_NUMBER := P_COMPONENT_NUMBER;
519     SERVICE_NUMBER := P_SERVICE_NUMBER;
520     IF SERVICE_NUMBER <> -1 THEN
521       IF OPTION_NUMBER <> -1 THEN
522         IF COMPONENT_NUMBER <> -1 THEN
523           P_CONCAT_VALUE := LINE_NUMBER || '.' || SHIPMENT_NUMBER || '.' || OPTION_NUMBER || '.' || COMPONENT_NUMBER || '.' || SERVICE_NUMBER;
524         ELSE
525           P_CONCAT_VALUE := LINE_NUMBER || '.' || SHIPMENT_NUMBER || '.' || OPTION_NUMBER || '..' || SERVICE_NUMBER;
526         END IF;
527       ELSE
528         IF COMPONENT_NUMBER <> -1 THEN
529           P_CONCAT_VALUE := LINE_NUMBER || '.' || SHIPMENT_NUMBER || '..' || COMPONENT_NUMBER || '.' || SERVICE_NUMBER;
530         ELSE
531           P_CONCAT_VALUE := LINE_NUMBER || '.' || SHIPMENT_NUMBER || '...' || SERVICE_NUMBER;
532         END IF;
533       END IF;
534     ELSE
535       IF OPTION_NUMBER <> -1 THEN
536         IF COMPONENT_NUMBER <> -1 THEN
537           P_CONCAT_VALUE := LINE_NUMBER || '.' || SHIPMENT_NUMBER || '.' || OPTION_NUMBER || '.' || COMPONENT_NUMBER;
538         ELSE
539           P_CONCAT_VALUE := LINE_NUMBER || '.' || SHIPMENT_NUMBER || '.' || OPTION_NUMBER;
540         END IF;
541       ELSE
542         IF COMPONENT_NUMBER <> -1 THEN
543           P_CONCAT_VALUE := LINE_NUMBER || '.' || SHIPMENT_NUMBER || '..' || COMPONENT_NUMBER;
544         ELSE
545           P_CONCAT_VALUE := LINE_NUMBER || '.' || SHIPMENT_NUMBER;
546         END IF;
547       END IF;
548     END IF;
549   END LINE_SHIPMENT_OPTION;
550 
551 END ONT_OEXOEWFR_XMLP_PKG;
552