[Home] [Help]
PACKAGE BODY: APPS.POS_UPDATE_CAPACITY_PKG
Source
1 PACKAGE BODY POS_UPDATE_CAPACITY_PKG AS
2 /* $Header: POSUPDNB.pls 120.2.12020000.3 2013/02/09 14:09:46 hvutukur ship $ */
3
4
5 L_TABLE_STYLE VARCHAR2(100) := ' style="border-collapse:collapse" cellpadding="1" cellspacing="0" border="0" width="100%" ';
6
7 L_TABLE_HEADER_STYLE VARCHAR2(100) := ' class="tableheader" style="border-left:1px solid #f7f7e7" ';
8
9 L_TABLE_LABEL_STYLE VARCHAR2(100) := ' class="tableheaderright" nowrap align=right style="border:1px solid #f7f7e7" ';
10
11 L_TABLE_CELL_STYLE VARCHAR2(100) := ' class="tabledata" nowrap align=left style="border:1px solid #cccc99" ';
12
13 L_TABLE_CELL_WRAP_STYLE VARCHAR2(100) := ' class="tabledata" align=left style="border:1px solid #cccc99" ';
14
15 L_TABLE_CELL_RIGHT_STYLE VARCHAR2(100) := ' class="tabledata" nowrap align=right style="border:1px solid #cccc99" ';
16
17 /*===========================================================================
18 PROCEDURE NAME: updmodifiers()
19 ===========================================================================*/
20
21 PROCEDURE INSERT_TEMP_MFG_CAPACITY(
22 p_asl_id IN NUMBER,
23 p_from_date IN DATE,
24 p_to_date IN DATE,
25 p_capacity_per_day IN NUMBER,
26 p_created_by in number,
27 p_capacity_id in number,
28 p_status in varchar2,/*
29 p_supplier_item_number in varchar2,
30 p_item_number in varchar2,
31 p_item_description in varchar2,
32 p_uom in varchar2,
33 p_vendor_id in number,
34 p_vendor_name in varchar2,*/
35 p_error_code OUT NOCOPY VARCHAR2,
36 p_error_message OUT NOCOPY VARCHAR2) is
37
38
39 l_seq number;
40 BEGIN
41
42 /* Update PO_ASL_ATTRIBUTES form ISP */
43 select POS_MFG_CAPACITY_TEMP_ID_S.NEXTVAL
44 into l_seq from sys.dual;
45
46 insert into POS_MFG_CAPACITY_TEMP (
47 mfg_capacity_id,
48 asl_id,
49 last_update_date,
50 last_updated_by,
51 last_update_login,
52 creation_date,
53 created_by,
54 from_date,
55 to_date,
56 capacity_per_day,/*
57 supplier_item_number,
58 item_number,
59 item_description,
60 uom,
61 vendor_id,
62 vendor_name,*/
63 CAPACITY_ID,
64 status)
65 values
66 (
67 l_seq,
68 p_asl_id,
69 sysdate,
70 p_created_by,
71 p_created_by,
72 sysdate,
73 p_created_by,
74 p_from_date,
75 p_to_date,
76 p_capacity_per_day,/*
77 p_supplier_item_number,
78 p_item_number,
79 p_item_description,
80 p_uom,
81 p_vendor_id,
82 p_vendor_name,*/
83 p_capacity_id,
84 p_status);
85
86
87
88 EXCEPTION
89
90 WHEN OTHERS THEN
91
92 p_ERROR_CODE := 'Y';
93 p_ERROR_MESSAGE := 'exception raised during Update';
94
95 END INSERT_TEMP_MFG_CAPACITY;
96
97
98 PROCEDURE INSERT_TEMP_CAPACITY_TOLERANCE(
99 p_asl_id IN NUMBER,
100 p_days_in_advance IN NUMBER,
101 p_tolerance IN NUMBER,
102 p_created_by in number,
103 /*
104 p_supplier_item_number in varchar2,
105 p_item_number in varchar2,
106 p_item_description in varchar2,
107 p_uom in varchar2,
108 p_vendor_id in number,
109 p_vendor_name in varchar2,
110 */
111 p_error_code OUT NOCOPY VARCHAR2,
112 p_error_message OUT NOCOPY VARCHAR2) is
113
114
115 l_seq number;
116 BEGIN
117
118 /* Update PO_ASL_ATTRIBUTES form ISP */
119 select POS_MFG_CAPACITY_TEMP_ID_S.NEXTVAL
120 into l_seq from sys.dual;
121
122 insert into POS_CAPACITY_TOLERANCE_TEMP(
123 capacity_tolerance_id,
124 asl_id,
125 last_update_date,
126 last_updated_by,
127 last_update_login,
128 creation_date,
129 created_by,
130 days_in_advance,
134 item_number,
131 tolerance,
132 /*
133 supplier_item_number,
135 item_description,
136 uom,
137 vendor_id,
138 vendor_name,
139 */
140 status)
141 values
142 (
143 l_seq,
144 p_asl_id,
145 sysdate,
146 p_created_by,
147 p_created_by,
148 sysdate,
149 p_created_by,
150 p_days_in_advance,
151 p_tolerance,
152 /*
153 p_supplier_item_number,
154 p_item_number,
155 p_item_description,
156 p_uom,
157 p_vendor_id,
158 p_vendor_name,
159 */
160 'NEW');
161
162
163
164 EXCEPTION
165
166 WHEN OTHERS THEN
167
168 p_ERROR_CODE := 'Y';
169 p_ERROR_MESSAGE := 'exception raised during Update';
170
171 END INSERT_TEMP_CAPACITY_TOLERANCE;
172
173
174
175 PROCEDURE UPDATE_EXIST(p_asl_id in NUMBER,
176 p_return_code out NOCOPY number) is
177
178 begin
179
180 select count(*)
181 into p_return_code
182 from POS_MFG_CAPACITY_TEMP
183 where asl_id=p_asl_id and status in ('NEW', 'OLD', 'DEL', 'MOD');
184
185 if(p_return_code>0) then return;
186 else
187 select count(*)
188 into p_return_code
189 from POS_CAPACITY_TOLERANCE_TEMP
190 where asl_id=p_asl_id and status='NEW';
191 end if;
192
193 end UPDATE_EXIST;
194
195 PROCEDURE StartWorkflow(p_asl_id in NUMBER) is
196
197 l_seq varchar2(25);
198 l_itemkey varchar2(40);
199 l_itemtype varchar2(20):='POSUPDNT';
200 l_count number;
201
202 BEGIN
203
204 /* Update PO_ASL_ATTRIBUTES form ISP */
205
206 UPDATE_EXIST(p_asl_id, l_count);
207
208 if(l_count=0) then
209 return;
210 end if;
211
212 select to_char(POS_ASL_UPD_ITEMKEY_S.NEXTVAL)
213 into l_seq from sys.dual;
214
215 l_itemkey:=to_char(p_asl_id)||'-'||l_seq;
216
217 wf_engine.createProcess ( ItemType => l_ItemType,
218 ItemKey => l_ItemKey,
219 Process => 'UPDATE_CAPACITY');
220
221
222 wf_engine.SetItemAttrNumber ( itemtype => l_itemtype,
223 itemkey => l_itemkey,
224 aname => 'ASL_ID',
225 avalue => p_asl_id);
226 wf_engine.StartProcess ( ItemType => l_ItemType,
227 ItemKey => l_ItemKey );
228
229 end StartWorkflow;
230
231 procedure OLD_MFG_CAPACITY_TABLE( itemtype in varchar2,
232 itemkey in varchar2,
233 asl_id in number) is
234
235
236 l_document VARCHAR2(32000) := '';
237 NL VARCHAR2(1) := fnd_global.newline;
238 l_from DATE;
239 l_to DATE;
240 l_cap_per_day NUMBER;
241 l_from_date_text VARCHAR2(150) := '';
242 l_to_date_text VARCHAR2(150) := '';
243 CURSOR old_mfg_capacity(id number) is
244 SELECT from_date, to_date, capacity_per_day
245 FROM pos_supplier_item_capacity_v
246 WHERE asl_id=id
247 order by from_date asc;
248
249 begin
250 l_document := '<TABLE' || L_TABLE_STYLE || 'cellpadding=2 cellspacing=1>';
251
252 l_document := l_document || '<TR>';
253
254 l_document := l_document || '<TH align=left' || L_TABLE_HEADER_STYLE || '>' ||
255 fnd_message.get_string('POS', 'POS_FROM') ||
256 '</TH> ' || NL;
257 l_document := l_document || '<TH align=left ' || L_TABLE_HEADER_STYLE || '>' ||
258 fnd_message.get_string('POS', 'POS_TO') ||
259 '</TH> ' || NL;
260 l_document := l_document || '<TH align=left' || L_TABLE_HEADER_STYLE || '>' ||
261 fnd_message.get_string('POS', 'POS_CAPACITY_PER_DAY') ||
262 '</TH> ' || NL;
263
264 l_document := l_document || '</TR>';
265
266 open old_mfg_capacity(asl_id);
267
268 LOOP
269 FETCH old_mfg_capacity INTO l_from, l_to, l_cap_per_day;
270 EXIT WHEN old_mfg_capacity%NOTFOUND;
271 /*
272 * Modified as part of bug 7524573 changing date format
273 * if (FND_RELEASE.MAJOR_VERSION = 12 and FND_RELEASE.minor_version >= 1 and FND_RELEASE.POINT_VERSION >= 1 )
274 * or (FND_RELEASE.MAJOR_VERSION > 12) then
275 */
276 /*
277 * Commented above if condition and added below if condition as part of Bug #: 11824514
278 */
279 IF ( fnd_release.major_version = 12
280 AND fnd_release.minor_version = 1
281 AND fnd_release.point_version >= 1 )
282 OR ( fnd_release.major_version = 12
283 AND fnd_release.minor_version >= 2 )
284 OR ( fnd_release.major_version > 12 ) THEN
285 l_from_date_text := to_char(l_from,
286 FND_PROFILE.VALUE_SPECIFIC('ICX_DATE_FORMAT_MASK', fnd_global.user_id),
287 'NLS_CALENDAR = ''' || nvl(FND_PROFILE.VALUE_SPECIFIC('FND_FORMS_USER_CALENDAR', fnd_global.user_id), 'GREGORIAN') || '''');
288 l_to_date_text := to_char(l_to,
289 FND_PROFILE.VALUE_SPECIFIC('ICX_DATE_FORMAT_MASK', fnd_global.user_id),
290 'NLS_CALENDAR = ''' || nvl(FND_PROFILE.VALUE_SPECIFIC('FND_FORMS_USER_CALENDAR', fnd_global.user_id), 'GREGORIAN') || '''');
291 else
292 l_from_date_text := to_char(l_from);
296 l_document := l_document || '<TD '|| L_TABLE_CELL_STYLE ||'>' || l_from_date_text ||'</TD> ' || NL;
293 l_to_date_text := to_char(l_to);
294 end if;
295
297 l_document := l_document || '<TD ' || L_TABLE_CELL_STYLE ||'>' || l_to_date_text ||'</TD> ' || NL;
298 /*Modified as part of bug 7524573 changing date format*/
299 l_document := l_document || '<TD ' || L_TABLE_CELL_STYLE ||'>' ||to_char(l_cap_per_day)||'</TD> ' || NL;
300 l_document := l_document || '</TR>' || NL;
301
302
303 end loop;
304
305 l_document := l_document || '</TABLE>';
306
307 wf_engine.SetItemAttrText ( itemtype => itemtype,
308 itemkey => itemkey,
309 aname => 'OLD_MFG_CAPACITY_TABLE',
310 avalue => l_document);
311
312 end OLD_MFG_CAPACITY_TABLE;
313
314 procedure NEW_MFG_CAPACITY_TABLE( itemtype in varchar2,
315 itemkey in varchar2,
316 asl_id in number) is
317
318
319 l_document VARCHAR2(32000) := '';
320 NL VARCHAR2(1) := fnd_global.newline;
321 l_from DATE;
322 l_to DATE;
323 l_cap_per_day NUMBER;
324 l_from_date_text VARCHAR2(150) := '';
325 l_to_date_text VARCHAR2(150) := '';
326
327 CURSOR new_mfg_capacity(id number) is
328 SELECT from_date, to_date, capacity_per_day
329 FROM pos_mfg_capacity_temp
330 WHERE asl_id=id and status in ('NEW', 'OLD', 'MOD')
331 order by from_date asc;
332
333 begin
334 l_document := '<TABLE' || L_TABLE_STYLE || 'cellpadding=2 cellspacing=1>';
335
336 l_document := l_document || '<TR>';
337
338 l_document := l_document || '<TH align=left' || L_TABLE_HEADER_STYLE || '>' ||
339 fnd_message.get_string('POS', 'POS_FROM') ||
340 '</TH> ' || NL;
341 l_document := l_document || '<TH align=left' || L_TABLE_HEADER_STYLE || '>' ||
342 fnd_message.get_string('POS', 'POS_TO') ||
343 '</TH> ' || NL;
344 l_document := l_document || '<TH align=left' || L_TABLE_HEADER_STYLE || '>' ||
345 fnd_message.get_string('POS', 'POS_CAPACITY_PER_DAY') ||
346 '</TH> ' || NL;
347
348 l_document := l_document || '</TR>';
349
350 open new_mfg_capacity(asl_id);
351
352 LOOP
353 FETCH new_mfg_capacity INTO l_from, l_to, l_cap_per_day;
354 EXIT WHEN new_mfg_capacity%NOTFOUND;
355 l_document := l_document || '<TR>';
356 /*
357 * Modified as part of bug 7524573 changing date format
358 * if (FND_RELEASE.MAJOR_VERSION = 12 and FND_RELEASE.minor_version >= 1 and FND_RELEASE.POINT_VERSION >= 1 )
359 * or (FND_RELEASE.MAJOR_VERSION > 12) then
360 */
361 /*
362 * Commented above if condition and added below condition as part of Bug #: 11824514
363 */
364 IF ( fnd_release.major_version = 12
365 AND fnd_release.minor_version = 1
366 AND fnd_release.point_version >= 1 )
367 OR ( fnd_release.major_version = 12
368 AND fnd_release.minor_version >= 2 )
369 OR ( fnd_release.major_version > 12 ) THEN
370 l_from_date_text := to_char(l_from,
371 FND_PROFILE.VALUE_SPECIFIC('ICX_DATE_FORMAT_MASK', fnd_global.user_id),
372 'NLS_CALENDAR = ''' || nvl(FND_PROFILE.VALUE_SPECIFIC('FND_FORMS_USER_CALENDAR', fnd_global.user_id), 'GREGORIAN') || '''');
373 l_to_date_text := to_char(l_to,
374 FND_PROFILE.VALUE_SPECIFIC('ICX_DATE_FORMAT_MASK', fnd_global.user_id),
375 'NLS_CALENDAR = ''' || nvl(FND_PROFILE.VALUE_SPECIFIC('FND_FORMS_USER_CALENDAR', fnd_global.user_id), 'GREGORIAN') || '''');
376 else
377 l_from_date_text := to_char(l_from);
378 l_to_date_text := to_char(l_to);
379 end if;
380
381 l_document := l_document || '<TD '|| L_TABLE_CELL_STYLE ||'>' || l_from_date_text ||'</TD> ' || NL;
382 l_document := l_document || '<TD' || L_TABLE_CELL_STYLE ||'>' || l_to_date_text ||'</TD> ' || NL;
383 /*Modified as part of bug 7524573 changing date format*/
384 l_document := l_document || '<TD' || L_TABLE_CELL_STYLE ||'>' ||to_char(l_cap_per_day)||'</TD> ' || NL;
385 l_document := l_document || '</TR>' || NL;
386 end loop;
387
388 l_document := l_document || '</TABLE>' || NL;
389
390 wf_engine.SetItemAttrText ( itemtype => itemtype,
391 itemkey => itemkey,
392 aname => 'NEW_MFG_CAPACITY_TABLE',
393 avalue => l_document);
394
395 end NEW_MFG_CAPACITY_TABLE;
396
397
398 procedure OLD_CAPACITY_TOLERANCE_TABLE( itemtype in varchar2,
399 itemkey in varchar2,
400 asl_id in number) is
401
402
403 l_document VARCHAR2(32000) := '';
404 NL VARCHAR2(1) := fnd_global.newline;
405 l_days_in_advance NUMBER;
406 l_tolerance NUMBEr;
407
408 CURSOR OLD_CAPACITY_TOLERANCE(id number) is
409 SELECT number_of_days, tolerance
410 FROM po_supplier_item_tolerance
411 WHERE asl_id=id
412 order by number_of_days asc;
413
414 begin
415
416 l_document := '<TABLE' || L_TABLE_STYLE || 'cellpadding=2 cellspacing=1>' || NL;
417
418 l_document := l_document || '<TR>' || NL;
419
420 l_document := l_document || '<TH align=left' || L_TABLE_HEADER_STYLE || '>' ||
421 fnd_message.get_string('POS', 'POS_DAYS_IN_ADVANCE') ||
425 '</TH> ' || NL;
422 '</TH> ' || NL;
423 l_document := l_document || '<TH align=left' || L_TABLE_HEADER_STYLE || '>' ||
424 fnd_message.get_string('POS', 'POS_TOLERANCE') ||
426
427 l_document := l_document || '</TR>' || NL;
428
429
430 open OLD_CAPACITY_TOLERANCE(asl_id);
431
432 LOOP
433 FETCH OLD_CAPACITY_TOLERANCE INTO l_days_in_advance, l_tolerance;
434 EXIT WHEN OLD_CAPACITY_TOLERANCE%NOTFOUND;
435
436
437 l_document := l_document || '<TR>';
438
439 l_document := l_document || '<TD '|| L_TABLE_CELL_STYLE ||'>' || to_char(l_days_in_advance)||'</TD> ';
440 l_document := l_document || '<TD ' || L_TABLE_CELL_STYLE ||'>' ||to_char(l_tolerance)||'</TD> ';
441
442 l_document := l_document || '</TR>';
443 end loop;
444
445 l_document := l_document || '</TABLE>';
446
447 wf_engine.SetItemAttrText ( itemtype => itemtype,
448 itemkey => itemkey,
449 aname => 'OLD_CAPACITY_TOLERANCE_TABLE',
450 avalue => l_document);
451
452 end OLD_CAPACITY_TOLERANCE_TABLE;
453
454 procedure NEW_CAPACITY_TOLERANCE_TABLE( itemtype in varchar2,
455 itemkey in varchar2,
456 asl_id in number) is
457
458 l_document VARCHAR2(32000) := '';
459 NL VARCHAR2(1) := fnd_global.newline;
460 l_days_in_advance NUMBER;
461 l_tolerance NUMBEr;
462
463 CURSOR NEW_CAPACITY_TOLERANCE(id number) is
464 SELECT days_in_advance, tolerance
465 FROM POS_CAPACITY_TOLERANCE_TEMP
466 WHERE asl_id=id and status='NEW'
467 order by days_in_advance asc;
468
469 begin
470
471
472 l_document := '<TABLE' || L_TABLE_STYLE || 'cellpadding=2 cellspacing=1>' || NL;
473
474 l_document := l_document || '<TR>' || NL;
475
476 l_document := l_document || '<TH align=left' || L_TABLE_HEADER_STYLE || '>' ||
477 fnd_message.get_string('POS', 'POS_DAYS_IN_ADVANCE') ||
478 '</TH> ' || NL;
479 l_document := l_document || '<TH align=left' || L_TABLE_HEADER_STYLE || '>' ||
480 fnd_message.get_string('POS', 'POS_TOLERANCE') ||
481 '</TH> ' || NL;
482
483 l_document := l_document || '</TR>' || NL;
484
485
486 open NEW_CAPACITY_TOLERANCE(asl_id);
487
488 LOOP
489 FETCH NEW_CAPACITY_TOLERANCE INTO l_days_in_advance, l_tolerance;
490 EXIT WHEN NEW_CAPACITY_TOLERANCE%NOTFOUND;
491
492 l_document := l_document || '<TR>';
493
494 l_document := l_document || '<TD '|| L_TABLE_CELL_STYLE ||'>' || to_char(l_days_in_advance)||'</TD> ';
495 l_document := l_document || '<TD '|| L_TABLE_CELL_STYLE ||'>' ||to_char(l_tolerance)||'</TD> ';
496
497 l_document := l_document || '</TR>';
498
499 end loop;
500
501 l_document := l_document || '</TABLE>';
502
503 wf_engine.SetItemAttrText ( itemtype => itemtype,
504 itemkey => itemkey,
505 aname => 'NEW_CAPACITY_TOLERANCE_TABLE',
506 avalue => l_document);
507
508 end NEW_CAPACITY_TOLERANCE_TABLE;
509
510
511 procedure INIT_ATTRIBUTES( itemtype in varchar2,
512 itemkey in varchar2,
513 actid in number,
514 funcmode in varchar2,
515 resultout out NOCOPY varchar2 ) is
516
517 l_supplier_item_number varchar2(25);
518 l_item_number varchar2(25);
519 l_item_description varchar2(240);
520 l_uom varchar2(25);
521 l_vendor_id number;
522 l_buyer_id number;
523 l_planner_id number;
524 l_asl_id number;
525 l_buyer_username varchar2(80):=null;
526 l_planner_username varchar2(80):=null;
527 l_supplier_username varchar2(240):=null;
528 l_buyer_displayname varchar2(80):=null;
529 l_planner_displayname varchar2(80):=null;
530 l_supplier_displayname varchar2(80):=null;
531 l_approval_required_by varchar2(20);
532 l_progress varchar2(3):='0';
533
534 begin
535 if (funcmode <> wf_engine.eng_run) then
536 resultout := wf_engine.eng_null;
537 return;
538 end if;
539 l_progress:='1';
540 l_asl_id:=wf_engine.GetItemAttrNumber ( itemtype => itemtype,
541 itemkey => itemkey,
542 aname => 'ASL_ID');
543 select DESCRIPTION,
544 BUYER_ID,
545 PLANNER_ID,
546 UOM,
547 SUPPLIER_ITEM_NUMBER,
548 ITEM_NUMBER,
549 VENDOR_ID
550 into l_item_description,
551 l_buyer_id,
552 l_planner_id,
553 l_uom,
554 l_supplier_item_number,
555 l_item_number,
556 l_vendor_id
557 from POS_ORD_MODIFIERS_V
558 where asl_id=l_asl_id;
559
560 l_progress:='2';
561 wf_engine.SetItemAttrText ( itemtype => itemtype,
562 itemkey => itemkey,
563 aname => 'ITEM_DESCRIPTION',
564 avalue => l_item_description);
565 wf_engine.SetItemAttrText ( itemtype => itemtype,
566 itemkey => itemkey,
567 aname => 'ITEM_NUM',
568 avalue => l_item_number);
572 avalue => l_supplier_item_number);
569 wf_engine.SetItemAttrText ( itemtype => itemtype,
570 itemkey => itemkey,
571 aname => 'SUPPLIER_ITEM',
573 wf_engine.SetItemAttrText ( itemtype => itemtype,
574 itemkey => itemkey,
575 aname => 'SUPPLIER_ITEM_NVL',
576 avalue => nvl(l_supplier_item_number,
577 l_item_number));
578 wf_engine.SetItemAttrText ( itemtype => itemtype,
579 itemkey => itemkey,
580 aname => 'PURCHASING_UOM',
581 avalue => l_uom);
582
583 l_progress:='3';
584 if(l_buyer_id is not null) then
585 wf_directory.GetUserName('PER', l_buyer_id, l_buyer_username, l_buyer_displayname);
586 end if;
587 l_progress:='4';
588 if(l_planner_id is not null) then
589 wf_directory.GetUserName('PER', l_planner_id, l_planner_username, l_planner_displayname);
590 end if;
591 l_progress:='5';
592 if(l_vendor_id is not null) then
593 select vendor_name
594 into l_supplier_username
595 from po_vendors
596 where vendor_id=l_vendor_id;
597 end if;
598
599 l_progress:='6';
600 wf_engine.SetItemAttrText ( itemtype => itemtype,
601 itemkey => itemkey,
602 aname => 'SUPPLIER_ORG_NAME',
603 avalue => l_supplier_username);
604
605 l_progress:='7';
606 select count(*)
607 into l_vendor_id
608 from POS_MFG_CAPACITY_TEMP
609 where asl_id=l_asl_id and status in ('NEW', 'OLD', 'DEL', 'MOD');
610
611 l_progress:='8';
612 if(l_vendor_id>0) then
613 l_progress:='9';
614 select last_updated_by
615 into l_vendor_id
616 from POS_MFG_CAPACITY_TEMP
617 where mfg_capacity_id=
618 (select min(mfg_capacity_id)
619 from POS_MFG_CAPACITY_TEMP
620 where asl_id=l_asl_id and
621 status in ('NEW', 'OLD', 'DEL', 'MOD'));
622 else
623 l_progress:='10';
624 select last_updated_by
625 into l_vendor_id
626 from POS_CAPACITY_TOLERANCE_TEMP
627 where capacity_tolerance_id=
628 (select min(capacity_tolerance_id)
629 from POS_CAPACITY_TOLERANCE_TEMP
630 where asl_id=l_asl_id and status='NEW');
631 end if;
632
633 l_progress:='11';
634 if(l_vendor_id is not null) then
635 wf_directory.GetUserName('FND_USR', l_vendor_id, l_supplier_username, l_supplier_displayname);
636 end if;
637 l_progress:='12';
638 wf_engine.SetItemAttrText ( itemtype => itemtype,
639 itemkey => itemkey,
640 aname => 'BUYER_NAME',
641 avalue => l_buyer_username);
642 wf_engine.SetItemAttrText ( itemtype => itemtype,
643 itemkey => itemkey,
644 aname => 'BUYER_DISPLAY_NAME',
645 avalue => l_buyer_displayname);
646 wf_engine.SetItemAttrText ( itemtype => itemtype,
647 itemkey => itemkey,
648 aname => 'PLANNER_NAME',
649 avalue => l_planner_username);
650 wf_engine.SetItemAttrText ( itemtype => itemtype,
651 itemkey => itemkey,
652 aname => 'PLANNER_DISPLAY_NAME',
653 avalue => l_planner_displayname);
654 wf_engine.SetItemAttrText ( itemtype => itemtype,
655 itemkey => itemkey,
656 aname => 'SUPPLIER_NAME',
657 avalue => l_supplier_username);
658 wf_engine.SetItemAttrText ( itemtype => itemtype,
659 itemkey => itemkey,
660 aname => 'SUPPLIER_DISPLAY_NAME',
661 avalue => l_supplier_displayname);
662
663 l_progress:='13';
664 FND_PROFILE.get('POS_ASL_MOD_APPR_REQD_BY', l_approval_required_by);
665 l_progress:='14';
666 if(upper(l_approval_required_by)='BUYER') then
667 wf_engine.SetItemAttrText ( itemtype => itemtype,
668 itemkey => itemkey,
669 aname => 'APPROVAL_REQUIRED_BY',
670 avalue => 'BUYER');
671 elsif(upper(l_approval_required_by)='PLANNER') then
672 wf_engine.SetItemAttrText ( itemtype => itemtype,
673 itemkey => itemkey,
674 aname => 'APPROVAL_REQUIRED_BY',
675 avalue => 'PLANNER');
676 else
677 wf_engine.SetItemAttrText ( itemtype => itemtype,
678 itemkey => itemkey,
679 aname => 'APPROVAL_REQUIRED_BY',
680 avalue => 'NONE');
681 end if;
682
683 l_progress:='15';
684
685 wf_engine.SetItemAttrText (itemtype => itemtype,
686 itemkey => itemkey,
687 aname => 'POS_NOTIFY_APPROVER',
688 avalue => 'PLSQL:POS_UPDATE_CAPACITY_PKG.GENERATE_CAP_APP_NOTIF/'|| itemtype || ':' || itemkey);
689
690 wf_engine.SetItemAttrText (itemtype => itemtype,
691 itemkey => itemkey,
695 wf_engine.SetItemAttrText (itemtype => itemtype,
692 aname => 'POS_SUPP_NOTIF_APPR',
693 avalue => 'PLSQL:POS_UPDATE_CAPACITY_PKG.GENERATE_SUPPL_CAP_NOTIF_APPR/'|| itemtype || ':' || itemkey);
694
696 itemkey => itemkey,
697 aname => 'POS_SUPP_NOTIF_REJ',
698 avalue => 'PLSQL:POS_UPDATE_CAPACITY_PKG.GENERATE_SUPPL_CAP_NOTIF_REJ/'|| itemtype || ':' || itemkey);
699
700 OLD_MFG_CAPACITY_TABLE(itemtype, itemkey, l_asl_id);
701 l_progress:='16';
702 NEW_MFG_CAPACITY_TABLE(itemtype, itemkey, l_asl_id);
703 l_progress:='17';
704 OLD_CAPACITY_TOLERANCE_TABLE(itemtype, itemkey, l_asl_id);
705 l_progress:='18';
706 NEW_CAPACITY_TOLERANCE_TABLE(itemtype, itemkey, l_asl_id);
707
708 l_progress:='19';
709 EXCEPTION
710
711
712 WHEN OTHERS THEN
713 wf_core.context('POS_UPDATE_CAPACITY_PKG','INIT_ATTRIBUTES',l_progress);
714 raise;
715
716 end;
717
718 procedure GET_BUYER_NAME( itemtype in varchar2,
719 itemkey in varchar2,
720 actid in number,
721 funcmode in varchar2,
722 resultout out NOCOPY varchar2 ) is
723 begin
724 if (funcmode <> wf_engine.eng_run) then
725 resultout := wf_engine.eng_null;
726 return;
727 end if;
728 end;
729
730 procedure GET_PLANNER_NAME( itemtype in varchar2,
731 itemkey in varchar2,
732 actid in number,
733 funcmode in varchar2,
734 resultout out NOCOPY varchar2 ) is
735 begin
736 if (funcmode <> wf_engine.eng_run) then
737 resultout := wf_engine.eng_null;
738 return;
739 end if;
740 end;
741
742 procedure BUYER_APPROVAL_REQUIRED( itemtype in varchar2,
743 itemkey in varchar2,
744 actid in number,
745 funcmode in varchar2,
746 resultout out NOCOPY varchar2 ) is
747
748 l_approval_required_by varchar2(20);
749 l_buyer_name varchar2(180);
750 begin
751 if (funcmode <> wf_engine.eng_run) then
752 resultout := wf_engine.eng_null;
753 return;
754 end if;
755 l_approval_required_by:=wf_engine.GetItemAttrText ( itemtype => itemtype,
756 itemkey => itemkey,
757 aname => 'APPROVAL_REQUIRED_BY');
758 if(l_approval_required_by='BUYER') then
759 l_buyer_name:=wf_engine.GetItemAttrText ( itemtype => itemtype,
760 itemkey => itemkey,
761 aname => 'BUYER_NAME');
762 wf_engine.SetItemAttrText ( itemtype => itemtype,
763 itemkey => itemkey,
764 aname => 'RESPONSE_FROM_ROLE',
765 avalue => l_buyer_name);
766 resultout := wf_engine.eng_completed || ':' || 'Y';
767 else
768 resultout := wf_engine.eng_completed || ':' || 'N';
769 end if;
770
771 end;
772
773 procedure BUYER_EXIST( itemtype in varchar2,
774 itemkey in varchar2,
775 actid in number,
776 funcmode in varchar2,
777 resultout out NOCOPY varchar2 ) is
778
779 l_buyer_name varchar2(100);
780 begin
781 if (funcmode <> wf_engine.eng_run) then
782 resultout := wf_engine.eng_null;
783 return;
784 end if;
785 l_buyer_name:=wf_engine.GetItemAttrText ( itemtype => itemtype,
786 itemkey => itemkey,
787 aname => 'BUYER_NAME');
788 if(l_buyer_name is not null) then
789 resultout := wf_engine.eng_completed || ':' || 'Y';
790 else
791 resultout := wf_engine.eng_completed || ':' || 'N';
792 end if;
793 end;
794
795 procedure PLANNER_APPROVAL_REQUIRED( itemtype in varchar2,
796 itemkey in varchar2,
797 actid in number,
798 funcmode in varchar2,
799 resultout out NOCOPY varchar2 ) is
800
801 l_approval_required_by varchar2(20);
802 l_planner_name varchar2(180);
803 l_supplier_name varchar2(180);
804 begin
805 if (funcmode <> wf_engine.eng_run) then
806 resultout := wf_engine.eng_null;
807 return;
808 end if;
809 l_approval_required_by:=wf_engine.GetItemAttrText ( itemtype => itemtype,
810 itemkey => itemkey,
811 aname => 'APPROVAL_REQUIRED_BY');
812 if(l_approval_required_by='PLANNER') then
813 l_planner_name:=wf_engine.GetItemAttrText ( itemtype => itemtype,
814 itemkey => itemkey,
815 aname => 'PLANNER_NAME');
816 wf_engine.SetItemAttrText ( itemtype => itemtype,
817 itemkey => itemkey,
818 aname => 'RESPONSE_FROM_ROLE',
819 avalue => l_planner_name);
820 resultout := wf_engine.eng_completed || ':' || 'Y';
821 else
822 l_supplier_name:=wf_engine.GetItemAttrText ( itemtype => itemtype,
823 itemkey => itemkey,
824 aname => 'SUPPLIER_NAME');
825 wf_engine.SetItemAttrText ( itemtype => itemtype,
826 itemkey => itemkey,
830 end if;
827 aname => 'RESPONSE_FROM_ROLE',
828 avalue => l_supplier_name);
829 resultout := wf_engine.eng_completed || ':' || 'N';
831
832 end;
833
834 procedure PLANNER_EXIST( itemtype in varchar2,
835 itemkey in varchar2,
836 actid in number,
837 funcmode in varchar2,
838 resultout out NOCOPY varchar2 ) is
839
840 l_planner_name varchar2(100);
841 begin
842 if (funcmode <> wf_engine.eng_run) then
843 resultout := wf_engine.eng_null;
844 return;
845 end if;
846 l_planner_name:=wf_engine.GetItemAttrText ( itemtype => itemtype,
847 itemkey => itemkey,
848 aname => 'PLANNER_NAME');
849 if(l_planner_name is not null) then
850 resultout := wf_engine.eng_completed || ':' || 'Y';
851 else
852 resultout := wf_engine.eng_completed || ':' || 'N';
853 end if;
854 end;
855
856 procedure UPDATE_ASL( itemtype in varchar2,
857 itemkey in varchar2,
858 actid in number,
859 funcmode in varchar2,
860 resultout out NOCOPY varchar2 ) is
861
862 l_asl_id number;
863 l_num_of_days number;
864 l_tolerance number;
865 l_created_by number;
866
867 l_from_date DATE;
868 l_to_date DATE;
869 l_cap_per_day number;
870 l_status varchar2(10);
871 l_capacity_id number;
872 x_progress varchar2(3):='0';
873 l_progress number:=0;
874 CURSOR tol_updates(id number) is
875 SELECT
876 days_in_advance, tolerance, created_by
877 FROM POS_CAPACITY_TOLERANCE_TEMP
878 WHERE asl_id=id and status='NEW';
879
880 CURSOR cap_updates(id number) is
881 SELECT
882 from_date, to_date, capacity_per_day, capacity_id, created_by, status
883 FROM POS_MFG_CAPACITY_TEMP
884 WHERE asl_id=id and status in ('NEW', 'OLD', 'DEL', 'MOD');
885 begin
886 if (funcmode <> wf_engine.eng_run) then
887 resultout := wf_engine.eng_null;
888 return;
889 end if;
890 l_asl_id:=wf_engine.GetItemAttrNumber ( itemtype => itemtype,
891 itemkey => itemkey,
892 aname => 'ASL_ID');
893
894 pos_supplier_item_tol_pkg.delete(l_asl_id);
895
896 x_progress:='a1';
897 open tol_updates(l_asl_id);
898 LOOP
899 FETCH tol_updates INTO l_num_of_days, l_tolerance, l_created_by;
900 EXIT WHEN tol_updates%NOTFOUND;
901 pos_supplier_item_tol_pkg.store_line(l_asl_id, l_num_of_days, l_tolerance, l_created_by);
902 end loop;
903
904 x_progress:='a2';
905 update POS_CAPACITY_TOLERANCE_TEMP
906 set status='ACE'
907 where asl_id=l_asl_id
908 and status='NEW';
909
910 x_progress:='a3';
911 l_progress:=0;
912 open cap_updates(l_asl_id);
913 LOOP
914 FETCH cap_updates INTO l_from_date, l_to_date, l_cap_per_day, l_capacity_id, l_created_by, l_status;
915 EXIT WHEN cap_updates%NOTFOUND;
916
917 x_progress:='b'||to_char(l_progress);
918 l_progress:=l_progress+1;
919 if(l_status='NEW') then
920 insert into po_supplier_item_capacity
921 (CAPACITY_ID,
922 ASL_ID,
923 USING_ORGANIZATION_ID,
924 FROM_DATE,
925 TO_DATE,
926 CAPACITY_PER_DAY,
927 LAST_UPDATE_DATE,
928 LAST_UPDATED_BY,
929 LAST_UPDATE_LOGIN,
930 CREATION_DATE,
931 CREATED_BY)
932 values (
933 po_supplier_item_capacity_s.nextval,
934 l_asl_id,
935 -1,
936 l_from_date,
937 l_to_date,
938 l_cap_per_day,
939 sysdate,
940 l_created_by,
941 l_created_by,
942 sysdate,
943 l_created_by);
944 elsif(l_status='DEL') then
945 DELETE from po_supplier_item_capacity
946 WHERE
947 asl_id = l_asl_id AND capacity_id = l_capacity_id;
948 elsif(l_status='MOD') then
949 UPDATE po_supplier_item_capacity
950 SET
951 FROM_DATE = l_from_date,
952 TO_DATE = l_to_date,
953 CAPACITY_PER_DAY = l_cap_per_day,
954 last_update_date = Sysdate,
955 last_updated_by = l_created_by,
956 last_update_login = l_created_by
957 WHERE
958 asl_id = l_asl_id AND capacity_id = l_capacity_id;
959 end if;
960 end loop;
961 x_progress:='a4';
962
963 update POS_MFG_CAPACITY_TEMP
964 set status='ACE'
965 where asl_id=l_asl_id
966 and status in ('NEW', 'OLD', 'DEL', 'MOD');
967 x_progress:='a5';
968 EXCEPTION
969
970 WHEN OTHERS THEN
971 wf_core.context('POS_UPDATE_CAPACITY_PKG','UPDATE_ASL',x_progress);
972 raise;
973
974 end;
975
976 procedure DEFAULT_APPROVAL_MODE( itemtype in varchar2,
977 itemkey in varchar2,
978 actid in number,
979 funcmode in varchar2,
980 resultout out NOCOPY varchar2 ) is
981
982 l_default_mode varchar2(20);
983 begin
984 if (funcmode <> wf_engine.eng_run) then
985 resultout := wf_engine.eng_null;
986 return;
987 end if;
988 l_default_mode:=wf_engine.GetItemAttrText ( itemtype => itemtype,
989 itemkey => itemkey,
993 else
990 aname => 'DEFAULT_MODE');
991 if(upper(l_default_mode)='APPROVE') then
992 resultout := wf_engine.eng_completed || ':' || 'APPROVED';
994 resultout := wf_engine.eng_completed || ':' || 'REJECTED';
995 end if;
996
997 end;
998
999 procedure UPDATE_STATUS( itemtype in varchar2,
1000 itemkey in varchar2,
1001 actid in number,
1002 funcmode in varchar2,
1003 resultout out NOCOPY varchar2 ) is
1004
1005 l_asl_id number;
1006 begin
1007 if (funcmode <> wf_engine.eng_run) then
1008 resultout := wf_engine.eng_null;
1009 return;
1010 end if;
1011
1012 l_asl_id:=wf_engine.GetItemAttrNumber ( itemtype => itemtype,
1013 itemkey => itemkey,
1014 aname => 'ASL_ID');
1015
1016 update POS_MFG_CAPACITY_TEMP
1017 set status='REJ'
1018 where asl_id=l_asl_id
1019 and status in ('NEW', 'OLD', 'DEL', 'MOD');
1020
1021 update POS_CAPACITY_TOLERANCE_TEMP
1022 set status='REJ'
1023 where asl_id=l_asl_id
1024 and status='NEW';
1025
1026 end;
1027
1028 procedure BUYER_SAME_AS_PLANNER( itemtype in varchar2,
1029 itemkey in varchar2,
1030 actid in number,
1031 funcmode in varchar2,
1032 resultout out NOCOPY varchar2 ) is
1033
1034 l_buyer_name varchar2(100);
1035 l_planner_name varchar2(100);
1036 begin
1037 if (funcmode <> wf_engine.eng_run) then
1038 resultout := wf_engine.eng_null;
1039 return;
1040 end if;
1041 l_buyer_name:=wf_engine.GetItemAttrText ( itemtype => itemtype,
1042 itemkey => itemkey,
1043 aname => 'BUYER_NAME');
1044 l_planner_name:=wf_engine.GetItemAttrText ( itemtype => itemtype,
1045 itemkey => itemkey,
1046 aname => 'PLANNER_NAME');
1047
1048 if(l_planner_name is not null) then
1049 if(l_planner_name=l_buyer_name) then
1050 resultout := wf_engine.eng_completed || ':' || 'Y';
1051 else
1052 resultout := wf_engine.eng_completed || ':' || 'N';
1053 end if;
1054 else
1055 resultout := wf_engine.eng_completed || ':' || 'Y';
1056 end if;
1057 end;
1058
1059
1060 PROCEDURE GENERATE_CAP_APP_NOTIF(document_id in varchar2,
1061 display_type in varchar2,
1062 document in OUT NOCOPY varchar2,
1063 document_type in OUT NOCOPY varchar2)
1064 IS
1065
1066 NL VARCHAR2(1) := fnd_global.newline;
1067 l_document VARCHAR2(32000) := '';
1068
1069 x_old_capacity_tolerance varchar2(32000);
1070 x_new_capacity_tolerance varchar2(32000);
1071 x_new_mfg_capacity_table varchar2(32000);
1072 x_old_mfg_capacity_table varchar2(32000);
1073
1074
1075 l_item_type varchar2(300) := '';
1076 l_item_key WF_ITEM_ATTRIBUTE_VALUES.ITEM_KEY%TYPE := '';
1077
1078 l_base_href VARCHAR(2000) := fnd_profile.value('APPS_FRAMEWORK_AGENT');
1079
1080 BEGIN
1081
1082 l_item_type := substr(document_id, 1, instr(document_id, ':') - 1);
1083 l_item_key := substr(document_id, instr(document_id, ':') + 1, length(document_id) - 2);
1084
1085 l_document := l_document || '<LINK REL=STYLESHEET HREF="' || l_base_href || '/OA_HTML/PORSTYL2.css" TYPE=text/css>' || NL;
1086
1087 generate_header(l_document,l_item_type,l_item_key);
1088
1089
1090 x_old_capacity_tolerance := wf_engine.GetItemAttrText ( itemtype => l_item_type,
1091 itemkey => l_item_key,
1092 aname => 'OLD_CAPACITY_TOLERANCE_TABLE');
1093
1094 x_new_capacity_tolerance := wf_engine.GetItemAttrText ( itemtype => l_item_type,
1095 itemkey => l_item_key,
1096 aname => 'NEW_CAPACITY_TOLERANCE_TABLE');
1097
1098 x_new_mfg_capacity_table := wf_engine.GetItemAttrText ( itemtype => l_item_type,
1099 itemkey => l_item_key,
1100 aname => 'NEW_MFG_CAPACITY_TABLE');
1101
1102 x_old_mfg_capacity_table := wf_engine.GetItemAttrText ( itemtype => l_item_type,
1103 itemkey => l_item_key,
1104 aname => 'OLD_MFG_CAPACITY_TABLE');
1105
1106
1107
1108
1109 l_document := l_document || '<font size=3 color=#336699 face=arial><b>' || fnd_message.get_string('POS','POS_MANUF_CAPACITY') || '</B></font><HR> ' || NL;
1110 l_document := l_document || '<table width=100% cellpadding=2 cellspacing=1>' || NL;
1111 l_document := l_document || '<tr>' || NL;
1112 l_document := l_document || '<TH align=left><font color=#336699>' || fnd_message.get_string('POS','POS_PREVIOUS_VALUES') || '</TH>' || NL;
1113
1114 l_document := l_document || '<TH align=left><font color=#336699>' || fnd_message.get_string('POS','POS_REQUESTED_UPDATES') || '</TH>' || NL;
1115 l_document := l_document || '</tr>' || NL;
1116 l_document := l_document || '<tr><td valign=top>' || X_OLD_MFG_CAPACITY_TABLE || '</td><td valign=top>' || X_NEW_MFG_CAPACITY_TABLE || '</td>' || NL;
1117 l_document := l_document || '</tr> ' || NL;
1118 l_document := l_document || '</table>' || NL;
1119
1120 l_document := l_document || '<br>' || NL;
1121
1122 l_document := l_document || '<font size=3 color=#336699 face=arial><b>' || fnd_message.get_string('POS','POS_CAPACITY_TOLERANCE') || '</B></font><HR> ' || NL;
1123 l_document := l_document || '<table width=100% cellpadding=2 cellspacing=1>' || NL;
1127 l_document := l_document || '<TH align=left><font color=#336699>' || fnd_message.get_string('POS','POS_REQUESTED_UPDATES') || '</TH>' || NL;
1124 l_document := l_document || '<tr>' || NL;
1125 l_document := l_document || '<TH align=left><font color=#336699>' || fnd_message.get_string('POS','POS_PREVIOUS_VALUES') || '</TH>' || NL;
1126
1128 l_document := l_document || '</tr>' || NL;
1129 l_document := l_document || '<tr><td valign=top>' || X_OLD_CAPACITY_TOLERANCE|| '</td><td valign=top>' || X_NEW_CAPACITY_TOLERANCE || '</td>' || NL;
1130 l_document := l_document || '</tr> ' || NL;
1131 l_document := l_document || '</table>' || NL;
1132
1133 l_document := l_document || '</td> </tr> </table>' || NL;
1134
1135
1136 document := l_document;
1137
1138 EXCEPTION
1139 WHEN OTHERS THEN
1140 NULL;
1141 END;
1142
1143
1144 procedure generate_header(document in out nocopy varchar2,
1145 itemtype in varchar2,
1146 itemkey in varchar2)
1147 is
1148
1149 NL VARCHAR2(1) := fnd_global.newline;
1150 l_document VARCHAR2(32000) := '';
1151
1152 x_supp_item varchar2(25);
1153 x_item_num varchar2(25);
1154 x_item_desc varchar2(240);
1155 x_uom varchar2(25);
1156
1157 begin
1158
1159 x_item_desc := wf_engine.GetItemAttrText ( itemtype => itemtype,
1160 itemkey => itemkey,
1161 aname => 'ITEM_DESCRIPTION');
1162
1163 x_item_num := wf_engine.GetItemAttrText ( itemtype => itemtype,
1164 itemkey => itemkey,
1165 aname => 'ITEM_NUM');
1166
1167 x_supp_item := wf_engine.GetItemAttrText ( itemtype => itemtype,
1168 itemkey => itemkey,
1169 aname => 'SUPPLIER_ITEM');
1170
1171 x_uom := wf_engine.GetItemAttrText ( itemtype => itemtype,
1172 itemkey => itemkey,
1173 aname => 'PURCHASING_UOM');
1174
1175
1176 l_document := l_document || '<font size=3 color=#336699 face=arial><b>'||fnd_message.get_string('POS','POS_ASN_NOTIF_DETAILS') || '</B></font><HR>' || NL;
1177
1178 l_document := l_document || '<table width=100%><tr><td width=2>' || ' ' || '</td><td>' || NL;
1179
1180 l_document := l_document || '<table cellpadding=2 cellspacing=1> ' || NL;
1181
1182 l_document := l_document || '<tr ><td nowrap align=right><font color=black><B>' || fnd_message.get_string('POS','POS_SUPPLIER_ITEM_NUM') || '</B></font></td><td width=2> '|| ' ' || ' </td><td>' || x_supp_item || '</td> </tr>' || NL;
1183
1184 l_document := l_document || '<tr ><td nowrap align=right><font color=black><B>' || fnd_message.get_string('POS','POS_ASN_NOTIF_ITEM') || '</B></font></td><td width=2> ' || ' ' || '</td><td>' || x_item_num || '</td> </tr>' || NL;
1185
1186 l_document := l_document || '<tr ><td nowrap align=right><font color=black><B>' || fnd_message.get_string('POS','POS_ASN_NOTIF_ITEM_DESC') || '</B></font></td><td width=2>' || ' ' || ' </td><td>' || x_item_desc || '</td> </tr>' || NL;
1187
1188 l_document := l_document || '<tr ><td nowrap align=right><font color=black><B>' || fnd_message.get_string('POS','POS_ASN_NOTIF_UOM') || '</B></font></td><td width=2>' || ' ' || '</td><td>' || x_uom || '</td> </tr>' || NL;
1189
1190
1191 l_document := l_document || '</table>' || NL;
1192
1193 document := l_document;
1194
1195 exception
1196 when others then
1197 null;
1198 end;
1199
1200
1201 PROCEDURE GENERATE_SUPPL_CAP_NOTIF_APPR(document_id in varchar2,
1202 display_type in varchar2,
1203 document in OUT NOCOPY varchar2,
1204 document_type in OUT NOCOPY varchar2)
1205 IS
1206
1207 NL VARCHAR2(1) := fnd_global.newline;
1208 l_document VARCHAR2(32000) := '';
1209
1210 x_new_capacity_tolerance_table varchar2(32000) := '';
1211 x_new_mfg_capacity_table varchar2(32000) := '';
1212
1213 l_item_type varchar2(300) := '';
1214 l_item_key WF_ITEM_ATTRIBUTE_VALUES.ITEM_KEY%TYPE := '';
1215
1216 l_base_url VARCHAR(2000) := '';
1217
1218 BEGIN
1219
1220
1221 l_item_type := substr(document_id, 1, instr(document_id, ':') - 1);
1222 l_item_key := substr(document_id, instr(document_id, ':') + 1, length(document_id) - 2);
1223
1224
1225 l_base_url := POS_URL_PKG.get_external_url;
1226
1227
1228 l_document := l_document || '<LINK REL=STYLESHEET HREF="' || l_base_url || '/OA_HTML/PORSTYL2.css" TYPE=text/css>' || NL;
1229
1230 generate_header(l_document,l_item_type,l_item_key);
1231
1232 x_new_mfg_capacity_table := wf_engine.GetItemAttrText ( itemtype => l_item_type,
1233 itemkey => l_item_key,
1234 aname => 'NEW_MFG_CAPACITY_TABLE');
1235
1236 x_new_capacity_tolerance_table := wf_engine.GetItemAttrText ( itemtype => l_item_type,
1237 itemkey => l_item_key,
1238 aname => 'NEW_CAPACITY_TOLERANCE_TABLE');
1239
1240
1241 l_document := l_document || '<font size=3 color=#336699 face=arial><b>' || fnd_message.get_string('POS','POS_MANUF_CAPACITY') || '</B></font><HR> ' || fnd_message.get_string('POS','POS_ORD_MOD_APPROVED') || NL;
1242
1243 l_document := l_document || '<table width=100% cellpadding=2 cellspacing=1>' || NL;
1244 l_document := l_document || '<tr> <TH align=left><font color=#336699>' || fnd_message.get_string('POS','POS_VALUES') || '</TH></tr>' || NL;
1245
1246 l_document := l_document || '<tr><td>' || X_NEW_MFG_CAPACITY_TABLE || '</td></tr></table>' || NL;
1247
1248 l_document := l_document || '<br>' || NL;
1249
1250 l_document := l_document || '<font size=3 color=#336699 face=arial><b>' || fnd_message.get_string('POS','POS_CAPACITY_TOLERANCE') || '</b></font><HR> ' || NL;
1251
1252 l_document := l_document || '<table width=100% cellpadding=2 cellspacing=1>' || NL;
1253 l_document := l_document || '<tr> <TH align=left><font color=#336699>' || fnd_message.get_string('POS','POS_VALUES') || '</TH></tr>' || NL;
1254
1255 l_document := l_document || '<tr><td>' || X_NEW_CAPACITY_TOLERANCE_TABLE || '</td></tr></table>' || NL;
1256
1257
1258 l_document := l_document || '</td></tr></table>'|| NL;
1259
1260 document := l_document;
1261
1262
1263 EXCEPTION
1264 WHEN OTHERS THEN
1265 NULL;
1266 END;
1267
1268
1269 PROCEDURE GENERATE_SUPPL_CAP_NOTIF_REJ(document_id in varchar2,
1270 display_type in varchar2,
1271 document in OUT NOCOPY varchar2,
1272 document_type in OUT NOCOPY varchar2)
1273 IS
1274
1275 NL VARCHAR2(1) := fnd_global.newline;
1276 l_document VARCHAR2(32000) := '';
1277
1278 x_new_capacity_tolerance_table varchar2(32000) := '';
1279 x_new_mfg_capacity_table varchar2(32000) := '';
1280
1281 l_item_type varchar2(300) := '';
1282 l_item_key WF_ITEM_ATTRIBUTE_VALUES.ITEM_KEY%TYPE := '';
1283
1284 l_base_url VARCHAR(2000) := '';
1285
1286 BEGIN
1287
1288
1289 l_base_url := POS_URL_PKG.get_external_url;
1290
1291
1292 l_item_type := substr(document_id, 1, instr(document_id, ':') - 1);
1293 l_item_key := substr(document_id, instr(document_id, ':') + 1, length(document_id) - 2);
1294
1295 l_document := l_document || '<LINK REL=STYLESHEET HREF="' || l_base_url || '/OA_HTML/PORSTYL2.css" TYPE=text/css>' || NL;
1296
1297 generate_header(l_document,l_item_type,l_item_key);
1298
1299 x_new_mfg_capacity_table := wf_engine.GetItemAttrText ( itemtype => l_item_type,
1300 itemkey => l_item_key,
1301 aname => 'NEW_MFG_CAPACITY_TABLE');
1302
1303 x_new_capacity_tolerance_table := wf_engine.GetItemAttrText ( itemtype => l_item_type,
1304 itemkey => l_item_key,
1305 aname => 'NEW_CAPACITY_TOLERANCE_TABLE');
1306
1307
1308 l_document := l_document || '<font size=3 color=#336699 face=arial><b>' || fnd_message.get_string('POS','POS_MANUF_CAPACITY') || '</B></font><HR> ' || fnd_message.get_string('POS','POS_ORD_MOD_REJECTED') || NL;
1309
1310 l_document := l_document || '<table width=100% cellpadding=2 cellspacing=1>' || NL;
1311 l_document := l_document || '<tr> <TH align=left><font color=#336699>' || fnd_message.get_string('POS','POS_VALUES') || '</TH></tr>' || NL;
1312
1313 l_document := l_document || '<tr><td>' || X_NEW_MFG_CAPACITY_TABLE || '</td></tr></table>' || NL;
1314
1315 l_document := l_document || '<br>' || NL;
1316
1317 l_document := l_document || '<font size=3 color=#336699 face=arial><b>' || fnd_message.get_string('POS','POS_CAPACITY_TOLERANCE') || '</b></font><HR> ' || NL;
1318
1319 l_document := l_document || '<table width=100% cellpadding=2 cellspacing=1>' || NL;
1320 l_document := l_document || '<tr> <TH align=left><font color=#336699>' || fnd_message.get_string('POS','POS_VALUES') || '</TH></tr>' || NL;
1321
1322 l_document := l_document || '<tr><td>' || X_NEW_CAPACITY_TOLERANCE_TABLE || '</td></tr></table>' || NL;
1323
1324
1325 l_document := l_document || '</td></tr></table>'|| NL;
1326
1327 document := l_document;
1328
1329
1330 EXCEPTION
1331 WHEN OTHERS THEN
1332 NULL;
1333 END;
1334
1335 END POS_UPDATE_CAPACITY_PKG;