6: ---------------------------------------------------------------------------
7:
8: -- The module base for this package.
9: D_PACKAGE_BASE CONSTANT VARCHAR2(50) :=
10: PO_LOG.get_package_base('PO_PRICE_ADJUSTMENTS_PKG');
11:
12: -- The module base for the subprogram.
13: D_popl_manual_overridden_adj CONSTANT VARCHAR2(100) :=
14: PO_LOG.get_subprogram_base(D_PACKAGE_BASE, 'popl_manual_overridden_adj');
10: PO_LOG.get_package_base('PO_PRICE_ADJUSTMENTS_PKG');
11:
12: -- The module base for the subprogram.
13: D_popl_manual_overridden_adj CONSTANT VARCHAR2(100) :=
14: PO_LOG.get_subprogram_base(D_PACKAGE_BASE, 'popl_manual_overridden_adj');
15:
16: -- The module base for the subprogram.
17: D_extract_price_adjustments CONSTANT VARCHAR2(100) :=
18: PO_LOG.get_subprogram_base(D_PACKAGE_BASE, 'extract_price_adjustments');
14: PO_LOG.get_subprogram_base(D_PACKAGE_BASE, 'popl_manual_overridden_adj');
15:
16: -- The module base for the subprogram.
17: D_extract_price_adjustments CONSTANT VARCHAR2(100) :=
18: PO_LOG.get_subprogram_base(D_PACKAGE_BASE, 'extract_price_adjustments');
19:
20: -- The module base for the subprogram.
21: D_complete_manual_mod_lov_map CONSTANT VARCHAR2(100) :=
22: PO_LOG.get_subprogram_base(D_PACKAGE_BASE, 'complete_manual_mod_lov_map');
18: PO_LOG.get_subprogram_base(D_PACKAGE_BASE, 'extract_price_adjustments');
19:
20: -- The module base for the subprogram.
21: D_complete_manual_mod_lov_map CONSTANT VARCHAR2(100) :=
22: PO_LOG.get_subprogram_base(D_PACKAGE_BASE, 'complete_manual_mod_lov_map');
23:
24: -- The module base for the subprogram.
25: D_copy_line_adjustments CONSTANT VARCHAR2(100) :=
26: PO_LOG.get_subprogram_base(D_PACKAGE_BASE, 'copy_line_adjustments');
22: PO_LOG.get_subprogram_base(D_PACKAGE_BASE, 'complete_manual_mod_lov_map');
23:
24: -- The module base for the subprogram.
25: D_copy_line_adjustments CONSTANT VARCHAR2(100) :=
26: PO_LOG.get_subprogram_base(D_PACKAGE_BASE, 'copy_line_adjustments');
27:
28: -- The module base for the subprogram.
29: D_delete_price_adjustments CONSTANT VARCHAR2(100) :=
30: PO_LOG.get_subprogram_base(D_PACKAGE_BASE, 'delete_price_adjustments');
26: PO_LOG.get_subprogram_base(D_PACKAGE_BASE, 'copy_line_adjustments');
27:
28: -- The module base for the subprogram.
29: D_delete_price_adjustments CONSTANT VARCHAR2(100) :=
30: PO_LOG.get_subprogram_base(D_PACKAGE_BASE, 'delete_price_adjustments');
31:
32: -- The module base for the subprogram.
33: D_line_modifier_exist CONSTANT VARCHAR2(100) :=
34: PO_LOG.get_subprogram_base(D_PACKAGE_BASE, 'line_modifier_exist');
30: PO_LOG.get_subprogram_base(D_PACKAGE_BASE, 'delete_price_adjustments');
31:
32: -- The module base for the subprogram.
33: D_line_modifier_exist CONSTANT VARCHAR2(100) :=
34: PO_LOG.get_subprogram_base(D_PACKAGE_BASE, 'line_modifier_exist');
35:
36: -- The module base for the subprogram.
37: D_check_man_ovr_mod_exist CONSTANT VARCHAR2(100) :=
38: PO_LOG.get_subprogram_base(D_PACKAGE_BASE, 'check_man_ovr_mod_exist');
34: PO_LOG.get_subprogram_base(D_PACKAGE_BASE, 'line_modifier_exist');
35:
36: -- The module base for the subprogram.
37: D_check_man_ovr_mod_exist CONSTANT VARCHAR2(100) :=
38: PO_LOG.get_subprogram_base(D_PACKAGE_BASE, 'check_man_ovr_mod_exist');
39:
40: ---------------------------------------------------------------------------
41: -- Global Constants.
42: ---------------------------------------------------------------------------
266:
267: l_line_modifiers_exist VARCHAR2(1);
268: l_modifier_code VARCHAR2(10);
269: BEGIN
270: IF PO_LOG.d_proc THEN
271: PO_LOG.proc_begin(d_mod);
272: PO_LOG.proc_begin(d_mod,'p_po_header_id',p_po_header_id);
273: PO_LOG.proc_begin(d_mod,'p_po_line_id',p_po_line_id);
274: END IF;
267: l_line_modifiers_exist VARCHAR2(1);
268: l_modifier_code VARCHAR2(10);
269: BEGIN
270: IF PO_LOG.d_proc THEN
271: PO_LOG.proc_begin(d_mod);
272: PO_LOG.proc_begin(d_mod,'p_po_header_id',p_po_header_id);
273: PO_LOG.proc_begin(d_mod,'p_po_line_id',p_po_line_id);
274: END IF;
275:
268: l_modifier_code VARCHAR2(10);
269: BEGIN
270: IF PO_LOG.d_proc THEN
271: PO_LOG.proc_begin(d_mod);
272: PO_LOG.proc_begin(d_mod,'p_po_header_id',p_po_header_id);
273: PO_LOG.proc_begin(d_mod,'p_po_line_id',p_po_line_id);
274: END IF;
275:
276: d_position := 100;
269: BEGIN
270: IF PO_LOG.d_proc THEN
271: PO_LOG.proc_begin(d_mod);
272: PO_LOG.proc_begin(d_mod,'p_po_header_id',p_po_header_id);
273: PO_LOG.proc_begin(d_mod,'p_po_line_id',p_po_line_id);
274: END IF;
275:
276: d_position := 100;
277: x_line_modifier_exist := 'N';
283: , x_modifier_code => l_modifier_code
284: );
285:
286: d_position := 200;
287: IF PO_LOG.d_stmt THEN
288: PO_LOG.stmt(d_mod, d_position, 'l_modifier_code', l_modifier_code);
289: END IF;
290:
291: IF (l_modifier_code = G_MANUAL_MOD
284: );
285:
286: d_position := 200;
287: IF PO_LOG.d_stmt THEN
288: PO_LOG.stmt(d_mod, d_position, 'l_modifier_code', l_modifier_code);
289: END IF;
290:
291: IF (l_modifier_code = G_MANUAL_MOD
292: OR l_modifier_code = G_MANUAL_OVR_MOD
299: x_line_modifier_exist := 'N';
300: END IF;
301:
302: d_position := 300;
303: IF PO_LOG.d_proc THEN
304: PO_LOG.proc_end(d_mod, 'x_line_modifier_exist', x_line_modifier_exist);
305: END IF;
306: END line_modifier_exist;
307:
300: END IF;
301:
302: d_position := 300;
303: IF PO_LOG.d_proc THEN
304: PO_LOG.proc_end(d_mod, 'x_line_modifier_exist', x_line_modifier_exist);
305: END IF;
306: END line_modifier_exist;
307:
308:
339: d_position NUMBER := 0;
340:
341: l_modifier_code VARCHAR2(10);
342: BEGIN
343: IF PO_LOG.d_proc THEN
344: PO_LOG.proc_begin(d_mod);
345: PO_LOG.proc_begin(d_mod,'p_po_header_id',p_po_header_id);
346: PO_LOG.proc_begin(d_mod,'p_po_line_id',p_po_line_id);
347: END IF;
340:
341: l_modifier_code VARCHAR2(10);
342: BEGIN
343: IF PO_LOG.d_proc THEN
344: PO_LOG.proc_begin(d_mod);
345: PO_LOG.proc_begin(d_mod,'p_po_header_id',p_po_header_id);
346: PO_LOG.proc_begin(d_mod,'p_po_line_id',p_po_line_id);
347: END IF;
348:
341: l_modifier_code VARCHAR2(10);
342: BEGIN
343: IF PO_LOG.d_proc THEN
344: PO_LOG.proc_begin(d_mod);
345: PO_LOG.proc_begin(d_mod,'p_po_header_id',p_po_header_id);
346: PO_LOG.proc_begin(d_mod,'p_po_line_id',p_po_line_id);
347: END IF;
348:
349: d_position := 100;
342: BEGIN
343: IF PO_LOG.d_proc THEN
344: PO_LOG.proc_begin(d_mod);
345: PO_LOG.proc_begin(d_mod,'p_po_header_id',p_po_header_id);
346: PO_LOG.proc_begin(d_mod,'p_po_line_id',p_po_line_id);
347: END IF;
348:
349: d_position := 100;
350: x_man_ovr_mod_exist := 'N';
356: , x_modifier_code => l_modifier_code
357: );
358:
359: d_position := 200;
360: IF PO_LOG.d_stmt THEN
361: PO_LOG.stmt(d_mod, d_position, 'l_modifier_code', l_modifier_code);
362: END IF;
363:
364: IF (l_modifier_code = G_MANUAL_MOD
357: );
358:
359: d_position := 200;
360: IF PO_LOG.d_stmt THEN
361: PO_LOG.stmt(d_mod, d_position, 'l_modifier_code', l_modifier_code);
362: END IF;
363:
364: IF (l_modifier_code = G_MANUAL_MOD
365: OR l_modifier_code = G_MANUAL_OVR_MOD
371: x_man_ovr_mod_exist := 'N';
372: END IF;
373:
374: d_position := 300;
375: IF PO_LOG.d_proc THEN
376: PO_LOG.proc_end(d_mod, 'x_man_ovr_mod_exist', x_man_ovr_mod_exist);
377: END IF;
378: END check_man_ovr_mod_exist;
379:
372: END IF;
373:
374: d_position := 300;
375: IF PO_LOG.d_proc THEN
376: PO_LOG.proc_end(d_mod, 'x_man_ovr_mod_exist', x_man_ovr_mod_exist);
377: END IF;
378: END check_man_ovr_mod_exist;
379:
380:
2343: --
2344: d_position := 1;
2345: SAVEPOINT COMPLETE_MANUAL_MOD_LOV_MAP;
2346:
2347: IF (PO_LOG.d_proc) THEN
2348: PO_LOG.proc_begin(d_mod);
2349: PO_LOG.proc_begin(d_mod, 'p_draft_id', p_draft_id);
2350: PO_LOG.proc_begin(d_mod, 'p_doc_sub_type', p_doc_sub_type);
2351: END IF;
2344: d_position := 1;
2345: SAVEPOINT COMPLETE_MANUAL_MOD_LOV_MAP;
2346:
2347: IF (PO_LOG.d_proc) THEN
2348: PO_LOG.proc_begin(d_mod);
2349: PO_LOG.proc_begin(d_mod, 'p_draft_id', p_draft_id);
2350: PO_LOG.proc_begin(d_mod, 'p_doc_sub_type', p_doc_sub_type);
2351: END IF;
2352:
2345: SAVEPOINT COMPLETE_MANUAL_MOD_LOV_MAP;
2346:
2347: IF (PO_LOG.d_proc) THEN
2348: PO_LOG.proc_begin(d_mod);
2349: PO_LOG.proc_begin(d_mod, 'p_draft_id', p_draft_id);
2350: PO_LOG.proc_begin(d_mod, 'p_doc_sub_type', p_doc_sub_type);
2351: END IF;
2352:
2353: x_return_status := FND_API.G_RET_STS_SUCCESS;
2346:
2347: IF (PO_LOG.d_proc) THEN
2348: PO_LOG.proc_begin(d_mod);
2349: PO_LOG.proc_begin(d_mod, 'p_draft_id', p_draft_id);
2350: PO_LOG.proc_begin(d_mod, 'p_doc_sub_type', p_doc_sub_type);
2351: END IF;
2352:
2353: x_return_status := FND_API.G_RET_STS_SUCCESS;
2354:
2352:
2353: x_return_status := FND_API.G_RET_STS_SUCCESS;
2354:
2355: d_position := 100;
2356: IF PO_LOG.d_stmt THEN
2357: PO_LOG.stmt(d_mod, d_position, 'Get newly added manual modifier lines');
2358: END IF;
2359:
2360: SELECT price_adjustment_id
2353: x_return_status := FND_API.G_RET_STS_SUCCESS;
2354:
2355: d_position := 100;
2356: IF PO_LOG.d_stmt THEN
2357: PO_LOG.stmt(d_mod, d_position, 'Get newly added manual modifier lines');
2358: END IF;
2359:
2360: SELECT price_adjustment_id
2361: BULK COLLECT INTO l_price_adjustment_id_tbl
2366: AND NVL(ADJD.delete_flag, 'N') = 'N' --line is not marked for deletion
2367: AND NVL(ADJD.change_accepted_flag, 'Y') = 'Y'; --change is accepted for the line. Do we need this condition??
2368:
2369: d_position := 120;
2370: IF PO_LOG.d_stmt THEN
2371: PO_LOG.stmt(d_mod, d_position, 'Populate PO_PRICE_ADJ_ATTRIBS table with pricing attribute details');
2372: END IF;
2373:
2374: FORALL i IN l_price_adjustment_id_tbl.FIRST .. l_price_adjustment_id_tbl.LAST
2367: AND NVL(ADJD.change_accepted_flag, 'Y') = 'Y'; --change is accepted for the line. Do we need this condition??
2368:
2369: d_position := 120;
2370: IF PO_LOG.d_stmt THEN
2371: PO_LOG.stmt(d_mod, d_position, 'Populate PO_PRICE_ADJ_ATTRIBS table with pricing attribute details');
2372: END IF;
2373:
2374: FORALL i IN l_price_adjustment_id_tbl.FIRST .. l_price_adjustment_id_tbl.LAST
2375: INSERT INTO PO_PRICE_ADJ_ATTRIBS_DRAFT
2421: AND PRA.pricing_attribute_context IS NOT NULL --only pricing attributes are picked, also to avoid product attributes
2422: AND PRA.pricing_attr_value_from IS NOT NULL); --pricing attr with from value should not be null
2423:
2424: d_position := 140;
2425: IF PO_LOG.d_stmt THEN
2426: PO_LOG.stmt(d_mod, d_position, 'INSERTED '|| SQL%ROWCOUNT ||' PRICING PRICE ADJ ATTRIBS');
2427: END IF;
2428:
2429: d_position := 160;
2422: AND PRA.pricing_attr_value_from IS NOT NULL); --pricing attr with from value should not be null
2423:
2424: d_position := 140;
2425: IF PO_LOG.d_stmt THEN
2426: PO_LOG.stmt(d_mod, d_position, 'INSERTED '|| SQL%ROWCOUNT ||' PRICING PRICE ADJ ATTRIBS');
2427: END IF;
2428:
2429: d_position := 160;
2430: IF PO_LOG.d_stmt THEN
2426: PO_LOG.stmt(d_mod, d_position, 'INSERTED '|| SQL%ROWCOUNT ||' PRICING PRICE ADJ ATTRIBS');
2427: END IF;
2428:
2429: d_position := 160;
2430: IF PO_LOG.d_stmt THEN
2431: PO_LOG.stmt(d_mod, d_position, 'Populate PO_PRICE_ADJ_ATTRIBS table with qualifier attribute details');
2432: END IF;
2433:
2434: FORALL i IN l_price_adjustment_id_tbl.FIRST .. l_price_adjustment_id_tbl.LAST
2427: END IF;
2428:
2429: d_position := 160;
2430: IF PO_LOG.d_stmt THEN
2431: PO_LOG.stmt(d_mod, d_position, 'Populate PO_PRICE_ADJ_ATTRIBS table with qualifier attribute details');
2432: END IF;
2433:
2434: FORALL i IN l_price_adjustment_id_tbl.FIRST .. l_price_adjustment_id_tbl.LAST
2435: INSERT INTO PO_PRICE_ADJ_ATTRIBS_DRAFT
2480: AND ADJD.list_line_id = QUAL.list_line_id
2481: AND QUAL.qualifier_attr_value IS NOT NULL); --qualifier attr with from value should not be null
2482:
2483: d_position := 180;
2484: IF PO_LOG.d_stmt THEN
2485: PO_LOG.stmt(d_mod, d_position, 'INSERTED '|| SQL%ROWCOUNT ||' QUALIFIER PRICE ADJ ATTRIBS');
2486: END IF;
2487:
2488: d_position := 200;
2481: AND QUAL.qualifier_attr_value IS NOT NULL); --qualifier attr with from value should not be null
2482:
2483: d_position := 180;
2484: IF PO_LOG.d_stmt THEN
2485: PO_LOG.stmt(d_mod, d_position, 'INSERTED '|| SQL%ROWCOUNT ||' QUALIFIER PRICE ADJ ATTRIBS');
2486: END IF;
2487:
2488: d_position := 200;
2489: IF PO_LOG.d_proc THEN
2485: PO_LOG.stmt(d_mod, d_position, 'INSERTED '|| SQL%ROWCOUNT ||' QUALIFIER PRICE ADJ ATTRIBS');
2486: END IF;
2487:
2488: d_position := 200;
2489: IF PO_LOG.d_proc THEN
2490: PO_LOG.proc_end(d_mod, 'x_return_status_text', x_return_status_text);
2491: PO_LOG.proc_end(d_mod, 'x_return_status', x_return_status);
2492: END IF;
2493:
2486: END IF;
2487:
2488: d_position := 200;
2489: IF PO_LOG.d_proc THEN
2490: PO_LOG.proc_end(d_mod, 'x_return_status_text', x_return_status_text);
2491: PO_LOG.proc_end(d_mod, 'x_return_status', x_return_status);
2492: END IF;
2493:
2494: EXCEPTION
2487:
2488: d_position := 200;
2489: IF PO_LOG.d_proc THEN
2490: PO_LOG.proc_end(d_mod, 'x_return_status_text', x_return_status_text);
2491: PO_LOG.proc_end(d_mod, 'x_return_status', x_return_status);
2492: END IF;
2493:
2494: EXCEPTION
2495: WHEN OTHERS THEN
2494: EXCEPTION
2495: WHEN OTHERS THEN
2496: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2497: x_return_status_text := 'UnExpected ERROR IN COMPLETE_MANUAL_MOD_LOV_MAP. SQLERRM at '||d_position||': '||SQLERRM;
2498: IF PO_LOG.d_exc THEN
2499: PO_LOG.exc(d_mod, d_position, x_return_status_text);
2500: END IF;
2501: ROLLBACK TO SAVEPOINT COMPLETE_MANUAL_MOD_LOV_MAP;
2502: END complete_manual_mod_lov_map;
2495: WHEN OTHERS THEN
2496: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2497: x_return_status_text := 'UnExpected ERROR IN COMPLETE_MANUAL_MOD_LOV_MAP. SQLERRM at '||d_position||': '||SQLERRM;
2498: IF PO_LOG.d_exc THEN
2499: PO_LOG.exc(d_mod, d_position, x_return_status_text);
2500: END IF;
2501: ROLLBACK TO SAVEPOINT COMPLETE_MANUAL_MOD_LOV_MAP;
2502: END complete_manual_mod_lov_map;
2503: