125: l_returnvalue VARCHAR2(1) := 'Y';
126: l_api_name VARCHAR2(30) := 'Change_Within_Tol_Date';
127: BEGIN
128: IF (g_debug = 'Y'
129: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
130: fnd_log.string(fnd_log.level_statement, g_module_prefix
131: || l_api_name, 'Parameters:'
132: ||' OldValue:'
133: || to_char(p_oldvalue, 'DD-MON-YYYY')
126: l_api_name VARCHAR2(30) := 'Change_Within_Tol_Date';
127: BEGIN
128: IF (g_debug = 'Y'
129: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
130: fnd_log.string(fnd_log.level_statement, g_module_prefix
131: || l_api_name, 'Parameters:'
132: ||' OldValue:'
133: || to_char(p_oldvalue, 'DD-MON-YYYY')
134: ||' NewValue:'
158: END IF;
159: END IF;
160:
161: IF (g_debug = 'Y'
162: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
163: fnd_log.string(fnd_log.level_statement, g_module_prefix
164: || l_api_name,'Return Value:'
165: || l_returnvalue);
166: END IF;
159: END IF;
160:
161: IF (g_debug = 'Y'
162: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
163: fnd_log.string(fnd_log.level_statement, g_module_prefix
164: || l_api_name,'Return Value:'
165: || l_returnvalue);
166: END IF;
167:
191: l_returnvalue VARCHAR2(1) := 'Y';
192: l_api_name VARCHAR2(30) := 'Change_Within_Tol_Percent';
193: BEGIN
194: IF (g_debug = 'Y'
195: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
196: fnd_log.string(fnd_log.level_statement, g_module_prefix
197: || l_api_name, 'Parameters:'
198: ||' OldValue:'
199: || to_char(p_oldvalue)
192: l_api_name VARCHAR2(30) := 'Change_Within_Tol_Percent';
193: BEGIN
194: IF (g_debug = 'Y'
195: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
196: fnd_log.string(fnd_log.level_statement, g_module_prefix
197: || l_api_name, 'Parameters:'
198: ||' OldValue:'
199: || to_char(p_oldvalue)
200: ||' NewValue:'
211: AND p_oldvalue <> 0) THEN
212: l_changepercent := abs((p_oldvalue - p_newvalue) / p_oldvalue) * 100;
213:
214: IF (g_debug = 'Y'
215: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
216: fnd_log.string(fnd_log.level_statement, g_module_prefix
217: || l_api_name, 'ChangePercent:'
218: || to_char(l_changepercent));
219: END IF;
212: l_changepercent := abs((p_oldvalue - p_newvalue) / p_oldvalue) * 100;
213:
214: IF (g_debug = 'Y'
215: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
216: fnd_log.string(fnd_log.level_statement, g_module_prefix
217: || l_api_name, 'ChangePercent:'
218: || to_char(l_changepercent));
219: END IF;
220: -- value has increased
233: END IF;
234: END IF;
235:
236: IF (g_debug = 'Y'
237: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
238: fnd_log.string(fnd_log.level_statement, g_module_prefix
239: || l_api_name,'Return Value:'
240: || l_returnvalue);
241: END IF;
234: END IF;
235:
236: IF (g_debug = 'Y'
237: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
238: fnd_log.string(fnd_log.level_statement, g_module_prefix
239: || l_api_name,'Return Value:'
240: || l_returnvalue);
241: END IF;
242:
266: l_returnvalue VARCHAR2(1) := 'Y';
267: l_api_name VARCHAR2(30) := 'Change_Within_Tol_Amount';
268: BEGIN
269: IF (g_debug = 'Y'
270: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
271: fnd_log.string(fnd_log.level_statement, g_module_prefix
272: || l_api_name, 'Parameters:'
273: ||' OldValue:'
274: || to_char(p_oldvalue)
267: l_api_name VARCHAR2(30) := 'Change_Within_Tol_Amount';
268: BEGIN
269: IF (g_debug = 'Y'
270: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
271: fnd_log.string(fnd_log.level_statement, g_module_prefix
272: || l_api_name, 'Parameters:'
273: ||' OldValue:'
274: || to_char(p_oldvalue)
275: ||' NewValue:'
300: END IF;
301: END IF;
302:
303: IF (g_debug = 'Y'
304: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
305: fnd_log.string(fnd_log.level_statement, g_module_prefix
306: || l_api_name,'Return Value:'
307: || l_returnvalue);
308: END IF;
301: END IF;
302:
303: IF (g_debug = 'Y'
304: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
305: fnd_log.string(fnd_log.level_statement, g_module_prefix
306: || l_api_name,'Return Value:'
307: || l_returnvalue);
308: END IF;
309:
359: l_call_amount_api := FALSE;
360: END IF;
361:
362: IF (g_debug = 'Y'
363: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
364: IF (l_call_percent_api) THEN
365: fnd_log.string(fnd_log.level_statement, g_module_prefix
366: || l_api_name,'l_call_percent_api: Y');
367: ELSE
361:
362: IF (g_debug = 'Y'
363: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
364: IF (l_call_percent_api) THEN
365: fnd_log.string(fnd_log.level_statement, g_module_prefix
366: || l_api_name,'l_call_percent_api: Y');
367: ELSE
368: fnd_log.string(fnd_log.level_statement, g_module_prefix
369: || l_api_name,'l_call_percent_api: N');
364: IF (l_call_percent_api) THEN
365: fnd_log.string(fnd_log.level_statement, g_module_prefix
366: || l_api_name,'l_call_percent_api: Y');
367: ELSE
368: fnd_log.string(fnd_log.level_statement, g_module_prefix
369: || l_api_name,'l_call_percent_api: N');
370: END IF;
371:
372: IF (l_call_amount_api) THEN
369: || l_api_name,'l_call_percent_api: N');
370: END IF;
371:
372: IF (l_call_amount_api) THEN
373: fnd_log.string(fnd_log.level_statement, g_module_prefix
374: || l_api_name,'l_call_amount_api: Y');
375: ELSE
376: fnd_log.string(fnd_log.level_statement, g_module_prefix
377: || l_api_name,'l_call_amount_api: N');
372: IF (l_call_amount_api) THEN
373: fnd_log.string(fnd_log.level_statement, g_module_prefix
374: || l_api_name,'l_call_amount_api: Y');
375: ELSE
376: fnd_log.string(fnd_log.level_statement, g_module_prefix
377: || l_api_name,'l_call_amount_api: N');
378: END IF;
379: END IF;
380:
381: IF (l_call_percent_api) THEN
382: l_returnvalue := change_within_tol_percent(p_oldvalue, p_newvalue, p_maxincrement, p_maxdecrement);
383:
384: IF (g_debug = 'Y'
385: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
386: fnd_log.string(fnd_log.level_statement, g_module_prefix
387: || l_api_name,'Change_Within_Tol_Percent Return Value:'
388: || l_returnvalue);
389: END IF;
382: l_returnvalue := change_within_tol_percent(p_oldvalue, p_newvalue, p_maxincrement, p_maxdecrement);
383:
384: IF (g_debug = 'Y'
385: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
386: fnd_log.string(fnd_log.level_statement, g_module_prefix
387: || l_api_name,'Change_Within_Tol_Percent Return Value:'
388: || l_returnvalue);
389: END IF;
390: END IF;
395: p_maxdecrementamount);
396: END IF;
397:
398: IF (g_debug = 'Y'
399: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
400: fnd_log.string(fnd_log.level_statement, g_module_prefix
401: || l_api_name,'Return Value:'
402: || l_returnvalue);
403: END IF;
396: END IF;
397:
398: IF (g_debug = 'Y'
399: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
400: fnd_log.string(fnd_log.level_statement, g_module_prefix
401: || l_api_name,'Return Value:'
402: || l_returnvalue);
403: END IF;
404:
423: l_msg_data VARCHAR2(100);
424: l_api_name VARCHAR2(30) := 'Populate_INTERNAL_Tolerances';
425: BEGIN
426: IF (g_debug = 'Y'
427: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
428: fnd_log.string(fnd_log.level_statement, g_module_prefix
429: || l_api_name,'p_organization_id :'
430: || p_organization_id);
431: END IF;
424: l_api_name VARCHAR2(30) := 'Populate_INTERNAL_Tolerances';
425: BEGIN
426: IF (g_debug = 'Y'
427: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
428: fnd_log.string(fnd_log.level_statement, g_module_prefix
429: || l_api_name,'p_organization_id :'
430: || p_organization_id);
431: END IF;
432:
436: x_tolerances_tbl => l_tolerances_tbl, x_return_status => l_return_status,
437: x_msg_count => l_msg_count, x_msg_data => l_msg_data);
438:
439: IF (g_debug = 'Y'
440: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
441: fnd_log.string(fnd_log.level_statement, g_module_prefix
442: || l_api_name,'PO_CO_Tolerances_Grp.get_tolerances API result:'
443: || l_return_status);
444: END IF;
437: x_msg_count => l_msg_count, x_msg_data => l_msg_data);
438:
439: IF (g_debug = 'Y'
440: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
441: fnd_log.string(fnd_log.level_statement, g_module_prefix
442: || l_api_name,'PO_CO_Tolerances_Grp.get_tolerances API result:'
443: || l_return_status);
444: END IF;
445:
444: END IF;
445:
446: IF (l_return_status <> fnd_api.g_ret_sts_success) THEN
447: IF (g_debug = 'Y'
448: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
449: fnd_log.string(fnd_log.level_statement, g_module_prefix
450: || l_api_name,'PO_CO_Tolerances_Grp.get_tolerances API failed:'
451: || l_msg_count
452: ||' '
445:
446: IF (l_return_status <> fnd_api.g_ret_sts_success) THEN
447: IF (g_debug = 'Y'
448: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
449: fnd_log.string(fnd_log.level_statement, g_module_prefix
450: || l_api_name,'PO_CO_Tolerances_Grp.get_tolerances API failed:'
451: || l_msg_count
452: ||' '
453: || l_msg_data);
476: l_msg_data VARCHAR2(100);
477: l_api_name VARCHAR2(30) := 'Populate_Tolerances';
478: BEGIN
479: IF (g_debug = 'Y'
480: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
481: fnd_log.string(fnd_log.level_statement, g_module_prefix
482: || l_api_name,'p_organization_id :'
483: || p_organization_id);
484: END IF;
477: l_api_name VARCHAR2(30) := 'Populate_Tolerances';
478: BEGIN
479: IF (g_debug = 'Y'
480: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
481: fnd_log.string(fnd_log.level_statement, g_module_prefix
482: || l_api_name,'p_organization_id :'
483: || p_organization_id);
484: END IF;
485:
488: x_tolerances_tbl => l_tolerances_tbl, x_return_status => l_return_status,
489: x_msg_count => l_msg_count, x_msg_data => l_msg_data);
490:
491: IF (g_debug = 'Y'
492: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
493: fnd_log.string(fnd_log.level_statement, g_module_prefix
494: || l_api_name,'PO_CO_Tolerances_Grp.get_tolerances API result:'
495: || l_return_status);
496: END IF;
489: x_msg_count => l_msg_count, x_msg_data => l_msg_data);
490:
491: IF (g_debug = 'Y'
492: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
493: fnd_log.string(fnd_log.level_statement, g_module_prefix
494: || l_api_name,'PO_CO_Tolerances_Grp.get_tolerances API result:'
495: || l_return_status);
496: END IF;
497:
496: END IF;
497:
498: IF (l_return_status <> fnd_api.g_ret_sts_success) THEN
499: IF (g_debug = 'Y'
500: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
501: fnd_log.string(fnd_log.level_statement, g_module_prefix
502: || l_api_name,'PO_CO_Tolerances_Grp.get_tolerances API failed:'
503: || l_msg_count
504: ||' '
497:
498: IF (l_return_status <> fnd_api.g_ret_sts_success) THEN
499: IF (g_debug = 'Y'
500: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
501: fnd_log.string(fnd_log.level_statement, g_module_prefix
502: || l_api_name,'PO_CO_Tolerances_Grp.get_tolerances API failed:'
503: || l_msg_count
504: ||' '
505: || l_msg_data);
533: BEGIN
534: l_progress := '001';
535:
536: IF (g_debug = 'Y'
537: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
538: fnd_log.string(fnd_log.level_statement, g_module_prefix
539: || l_api_name, 'p_reqgrp_id:'
540: || p_reqgrp_id
541: ||' p_reqheader_id:'
534: l_progress := '001';
535:
536: IF (g_debug = 'Y'
537: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
538: fnd_log.string(fnd_log.level_statement, g_module_prefix
539: || l_api_name, 'p_reqgrp_id:'
540: || p_reqgrp_id
541: ||' p_reqheader_id:'
542: || p_reqheader_id
556:
557: l_progress := '002';
558:
559: IF (g_debug = 'Y'
560: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
561: fnd_log.string(fnd_log.level_statement, g_module_prefix
562: || l_api_name,'Before needbydate, startdate, enddate checks');
563: END IF;
564: -- handle need by date, start date, end date, price checks
557: l_progress := '002';
558:
559: IF (g_debug = 'Y'
560: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
561: fnd_log.string(fnd_log.level_statement, g_module_prefix
562: || l_api_name,'Before needbydate, startdate, enddate checks');
563: END IF;
564: -- handle need by date, start date, end date, price checks
565:
565:
566: IF (nvl(p_source_type_code, '') = 'INVENTORY') THEN
567: -- handle need by date only
568: IF (g_debug = 'Y'
569: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
570: fnd_log.string(fnd_log.level_statement, g_module_prefix
571: || l_api_name,'for internal req Before need by date checks');
572: END IF;
573: l_progress := '021';
566: IF (nvl(p_source_type_code, '') = 'INVENTORY') THEN
567: -- handle need by date only
568: IF (g_debug = 'Y'
569: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
570: fnd_log.string(fnd_log.level_statement, g_module_prefix
571: || l_api_name,'for internal req Before need by date checks');
572: END IF;
573: l_progress := '021';
574:
590: l_return_val := 'Y';
591: END;
592:
593: IF (g_debug = 'Y'
594: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
595: fnd_log.string(fnd_log.level_statement, g_module_prefix
596: || l_api_name,'return value(needbydate):'
597: || l_return_val);
598: END IF;
591: END;
592:
593: IF (g_debug = 'Y'
594: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
595: fnd_log.string(fnd_log.level_statement, g_module_prefix
596: || l_api_name,'return value(needbydate):'
597: || l_return_val);
598: END IF;
599: ELSE
620: l_return_val := 'Y';
621: END;
622:
623: IF (g_debug = 'Y'
624: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
625: fnd_log.string(fnd_log.level_statement, g_module_prefix
626: || l_api_name,'return value(needbydate):'
627: || l_return_val);
628: END IF;
621: END;
622:
623: IF (g_debug = 'Y'
624: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
625: fnd_log.string(fnd_log.level_statement, g_module_prefix
626: || l_api_name,'return value(needbydate):'
627: || l_return_val);
628: END IF;
629: END IF;
629: END IF;
630: l_progress := '003';
631:
632: IF (g_debug = 'Y'
633: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
634: fnd_log.string(fnd_log.level_statement, g_module_prefix
635: || l_api_name,'Before line quantity, line amount checks');
636: END IF;
637: IF (l_return_val <> 'N') THEN
630: l_progress := '003';
631:
632: IF (g_debug = 'Y'
633: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
634: fnd_log.string(fnd_log.level_statement, g_module_prefix
635: || l_api_name,'Before line quantity, line amount checks');
636: END IF;
637: IF (l_return_val <> 'N') THEN
638: -- check for line quantity, line amount tolerances
639: BEGIN
640:
641: IF (nvl(p_source_type_code, '') = 'INVENTORY') THEN
642: IF (g_debug = 'Y'
643: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
644: fnd_log.string(fnd_log.level_statement, g_module_prefix
645: || l_api_name,'for internal req Before line quantity, line amount checks');
646: END IF;
647:
640:
641: IF (nvl(p_source_type_code, '') = 'INVENTORY') THEN
642: IF (g_debug = 'Y'
643: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
644: fnd_log.string(fnd_log.level_statement, g_module_prefix
645: || l_api_name,'for internal req Before line quantity, line amount checks');
646: END IF;
647:
648: SELECT 'N'
719: END;
720: END IF;
721:
722: IF (g_debug = 'Y'
723: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
724: fnd_log.string(fnd_log.level_statement, g_module_prefix
725: || l_api_name,'return value(line amount):'
726: || l_return_val);
727: END IF;
720: END IF;
721:
722: IF (g_debug = 'Y'
723: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
724: fnd_log.string(fnd_log.level_statement, g_module_prefix
725: || l_api_name,'return value(line amount):'
726: || l_return_val);
727: END IF;
728:
728:
729: l_progress := '004';
730:
731: IF (g_debug = 'Y'
732: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
733: fnd_log.string(fnd_log.level_statement, g_module_prefix
734: || l_api_name,'Before document total checks');
735: END IF;
736:
729: l_progress := '004';
730:
731: IF (g_debug = 'Y'
732: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
733: fnd_log.string(fnd_log.level_statement, g_module_prefix
734: || l_api_name,'Before document total checks');
735: END IF;
736:
737: IF (l_return_val <> 'N') THEN
775: END IF;
776: END IF;
777:
778: IF (g_debug = 'Y'
779: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
780: fnd_log.string(fnd_log.level_statement, g_module_prefix
781: || l_api_name,'Return Value:'
782: || l_return_val);
783: END IF;
776: END IF;
777:
778: IF (g_debug = 'Y'
779: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
780: fnd_log.string(fnd_log.level_statement, g_module_prefix
781: || l_api_name,'Return Value:'
782: || l_return_val);
783: END IF;
784:
785: RETURN l_return_val;
786: EXCEPTION
787: WHEN OTHERS THEN
788: IF (g_debug = 'Y'
789: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
790: fnd_log.string(fnd_log.level_statement, g_module_prefix
791: || l_api_name, 'Exception:'
792: || SQLERRM
793: ||' PROGRESS:'
786: EXCEPTION
787: WHEN OTHERS THEN
788: IF (g_debug = 'Y'
789: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
790: fnd_log.string(fnd_log.level_statement, g_module_prefix
791: || l_api_name, 'Exception:'
792: || SQLERRM
793: ||' PROGRESS:'
794: || l_progress);
818: BEGIN
819: x_appr_status := 'Y';
820:
821: IF (g_debug = 'Y'
822: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
823: fnd_log.string(fnd_log.level_statement, g_module_prefix
824: || l_api_name, 'p_chreqgrp_id:'
825: || p_chreqgrp_id);
826: END IF;
819: x_appr_status := 'Y';
820:
821: IF (g_debug = 'Y'
822: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
823: fnd_log.string(fnd_log.level_statement, g_module_prefix
824: || l_api_name, 'p_chreqgrp_id:'
825: || p_chreqgrp_id);
826: END IF;
827:
829:
830: por_custom_pkg.custom_rco_reqappr_tol_check(p_chreqgrp_id, x_appr_status, l_skip_std_logic);
831:
832: IF (g_debug = 'Y'
833: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
834: fnd_log.string(fnd_log.level_statement, g_module_prefix
835: || l_api_name,'After Calling POR_CUSTOM_PKG.CUSTOM_RCO_REQAPPR_TOL_CHECK '
836: ||' x_appr_status:'
837: || x_appr_status
830: por_custom_pkg.custom_rco_reqappr_tol_check(p_chreqgrp_id, x_appr_status, l_skip_std_logic);
831:
832: IF (g_debug = 'Y'
833: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
834: fnd_log.string(fnd_log.level_statement, g_module_prefix
835: || l_api_name,'After Calling POR_CUSTOM_PKG.CUSTOM_RCO_REQAPPR_TOL_CHECK '
836: ||' x_appr_status:'
837: || x_appr_status
838: ||' l_skip_std_logic:'
858: END IF;
859: END IF;
860:
861: IF (g_debug = 'Y'
862: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
863: fnd_log.string(fnd_log.level_statement, g_module_prefix
864: || l_api_name, 'x_appr_status:'
865: || x_appr_status);
866: END IF;
859: END IF;
860:
861: IF (g_debug = 'Y'
862: AND fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
863: fnd_log.string(fnd_log.level_statement, g_module_prefix
864: || l_api_name, 'x_appr_status:'
865: || x_appr_status);
866: END IF;
867: