57: l_message_list VARCHAR2(2000);
58: gmf_cost_failure EXCEPTION;
59:
60: BEGIN
61: IF NVL (g_debug, gme_debug.g_log_procedure + 1) <=
62: gme_debug.g_log_procedure THEN
63: gme_debug.put_line ('Entering api ' || g_pkg_name || '.'
64: || l_api_name);
65: gme_debug.put_line ( g_pkg_name
58: gmf_cost_failure EXCEPTION;
59:
60: BEGIN
61: IF NVL (g_debug, gme_debug.g_log_procedure + 1) <=
62: gme_debug.g_log_procedure THEN
63: gme_debug.put_line ('Entering api ' || g_pkg_name || '.'
64: || l_api_name);
65: gme_debug.put_line ( g_pkg_name
66: || '.'
59:
60: BEGIN
61: IF NVL (g_debug, gme_debug.g_log_procedure + 1) <=
62: gme_debug.g_log_procedure THEN
63: gme_debug.put_line ('Entering api ' || g_pkg_name || '.'
64: || l_api_name);
65: gme_debug.put_line ( g_pkg_name
66: || '.'
67: || l_api_name
61: IF NVL (g_debug, gme_debug.g_log_procedure + 1) <=
62: gme_debug.g_log_procedure THEN
63: gme_debug.put_line ('Entering api ' || g_pkg_name || '.'
64: || l_api_name);
65: gme_debug.put_line ( g_pkg_name
66: || '.'
67: || l_api_name
68: || ' unreleasing batch_id='
69: || p_batch_header_rec.batch_id);
133:
134: -- 8672422 - We need to refetch step here and make sure it's not already processed
135: -- as unrelease step also processes dependent steps.
136: IF (gme_batch_steps_dbl.fetch_row (l_batch_step_rec, l_in_batch_step_rec)) THEN
137: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
138: gme_debug.put_line ('In DB date is '||TO_CHAR(l_in_batch_step_rec.last_update_date, 'DD-MON-YYYY HH24:MI:SS'));
139: gme_debug.put_line ('In step status is '||l_in_batch_step_rec.step_status);
140: END IF;
141: --IF l_in_batch_step_rec.step_status = 1 THEN
134: -- 8672422 - We need to refetch step here and make sure it's not already processed
135: -- as unrelease step also processes dependent steps.
136: IF (gme_batch_steps_dbl.fetch_row (l_batch_step_rec, l_in_batch_step_rec)) THEN
137: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
138: gme_debug.put_line ('In DB date is '||TO_CHAR(l_in_batch_step_rec.last_update_date, 'DD-MON-YYYY HH24:MI:SS'));
139: gme_debug.put_line ('In step status is '||l_in_batch_step_rec.step_status);
140: END IF;
141: --IF l_in_batch_step_rec.step_status = 1 THEN
142: -- If the step is already pending go to next step.
135: -- as unrelease step also processes dependent steps.
136: IF (gme_batch_steps_dbl.fetch_row (l_batch_step_rec, l_in_batch_step_rec)) THEN
137: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
138: gme_debug.put_line ('In DB date is '||TO_CHAR(l_in_batch_step_rec.last_update_date, 'DD-MON-YYYY HH24:MI:SS'));
139: gme_debug.put_line ('In step status is '||l_in_batch_step_rec.step_status);
140: END IF;
141: --IF l_in_batch_step_rec.step_status = 1 THEN
142: -- If the step is already pending go to next step.
143: --continue;
179: IF NOT gme_common_pvt.create_history
180: (p_batch_header_rec => x_batch_header_rec
181: ,p_original_status => gme_common_pvt.g_batch_wip) THEN
182: -- ,p_event_id => gme_common_pvt.g_transaction_header_id) THEN
183: IF g_debug <= gme_debug.g_log_procedure THEN
184: gme_debug.put_line ( g_pkg_name
185: || '.'
186: || l_api_name
187: || ' create history returned error');
180: (p_batch_header_rec => x_batch_header_rec
181: ,p_original_status => gme_common_pvt.g_batch_wip) THEN
182: -- ,p_event_id => gme_common_pvt.g_transaction_header_id) THEN
183: IF g_debug <= gme_debug.g_log_procedure THEN
184: gme_debug.put_line ( g_pkg_name
185: || '.'
186: || l_api_name
187: || ' create history returned error');
188: END IF;
187: || ' create history returned error');
188: END IF;
189: END IF;
190:
191: IF NVL (g_debug, gme_debug.g_log_procedure + 1) <=
192: gme_debug.g_log_procedure THEN
193: gme_debug.put_line ('Exiting api ' || g_pkg_name || '.' || l_api_name);
194: END IF;
195: EXCEPTION
188: END IF;
189: END IF;
190:
191: IF NVL (g_debug, gme_debug.g_log_procedure + 1) <=
192: gme_debug.g_log_procedure THEN
193: gme_debug.put_line ('Exiting api ' || g_pkg_name || '.' || l_api_name);
194: END IF;
195: EXCEPTION
196: WHEN gmf_cost_failure THEN
189: END IF;
190:
191: IF NVL (g_debug, gme_debug.g_log_procedure + 1) <=
192: gme_debug.g_log_procedure THEN
193: gme_debug.put_line ('Exiting api ' || g_pkg_name || '.' || l_api_name);
194: END IF;
195: EXCEPTION
196: WHEN gmf_cost_failure THEN
197: -- Bug 5043868
208: NULL;
209: WHEN OTHERS THEN
210: fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
211:
212: IF g_debug <= gme_debug.g_log_procedure THEN
213: gme_debug.put_line ( 'Unexpected error: '
214: || g_pkg_name
215: || '.'
216: || l_api_name
209: WHEN OTHERS THEN
210: fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
211:
212: IF g_debug <= gme_debug.g_log_procedure THEN
213: gme_debug.put_line ( 'Unexpected error: '
214: || g_pkg_name
215: || '.'
216: || l_api_name
217: || ': '
242: error_get_item EXCEPTION;
243: error_revert_material EXCEPTION;
244: error_update_row EXCEPTION;
245: BEGIN
246: IF NVL (g_debug, gme_debug.g_log_procedure + 1) <=
247: gme_debug.g_log_procedure THEN
248: gme_debug.put_line ('Entering api ' || g_pkg_name || '.'
249: || l_api_name);
250: gme_debug.put_line ( g_pkg_name
243: error_revert_material EXCEPTION;
244: error_update_row EXCEPTION;
245: BEGIN
246: IF NVL (g_debug, gme_debug.g_log_procedure + 1) <=
247: gme_debug.g_log_procedure THEN
248: gme_debug.put_line ('Entering api ' || g_pkg_name || '.'
249: || l_api_name);
250: gme_debug.put_line ( g_pkg_name
251: || '.'
244: error_update_row EXCEPTION;
245: BEGIN
246: IF NVL (g_debug, gme_debug.g_log_procedure + 1) <=
247: gme_debug.g_log_procedure THEN
248: gme_debug.put_line ('Entering api ' || g_pkg_name || '.'
249: || l_api_name);
250: gme_debug.put_line ( g_pkg_name
251: || '.'
252: || l_api_name
246: IF NVL (g_debug, gme_debug.g_log_procedure + 1) <=
247: gme_debug.g_log_procedure THEN
248: gme_debug.put_line ('Entering api ' || g_pkg_name || '.'
249: || l_api_name);
250: gme_debug.put_line ( g_pkg_name
251: || '.'
252: || l_api_name
253: || ' unrelease material material_detail_id='
254: || p_material_detail_rec.material_detail_id);
266: ,l_phantom_batch_rec) THEN
267: RAISE error_fetch_batch;
268: END IF;
269:
270: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
271: gme_debug.put_line
272: ( g_pkg_name
273: || '.'
274: || l_api_name
267: RAISE error_fetch_batch;
268: END IF;
269:
270: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
271: gme_debug.put_line
272: ( g_pkg_name
273: || '.'
274: || l_api_name
275: || ' found phantom ingredient material_detail_id='
336: IF NOT gme_material_details_dbl.update_row (l_material_detail_rec) THEN
337: RAISE error_update_row;
338: END IF;
339:
340: IF NVL (g_debug, gme_debug.g_log_procedure + 1) <=
341: gme_debug.g_log_procedure THEN
342: gme_debug.put_line ('Exiting api ' || g_pkg_name || '.' || l_api_name);
343: END IF;
344: EXCEPTION
337: RAISE error_update_row;
338: END IF;
339:
340: IF NVL (g_debug, gme_debug.g_log_procedure + 1) <=
341: gme_debug.g_log_procedure THEN
342: gme_debug.put_line ('Exiting api ' || g_pkg_name || '.' || l_api_name);
343: END IF;
344: EXCEPTION
345: WHEN error_update_row OR error_fetch_batch THEN
338: END IF;
339:
340: IF NVL (g_debug, gme_debug.g_log_procedure + 1) <=
341: gme_debug.g_log_procedure THEN
342: gme_debug.put_line ('Exiting api ' || g_pkg_name || '.' || l_api_name);
343: END IF;
344: EXCEPTION
345: WHEN error_update_row OR error_fetch_batch THEN
346: gme_common_pvt.log_message ('GME_UNEXPECTED_ERROR', 'ERROR'
350: NULL;
351: WHEN OTHERS THEN
352: fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
353:
354: IF g_debug <= gme_debug.g_log_procedure THEN
355: gme_debug.put_line ( 'Unexpected error: '
356: || g_pkg_name
357: || '.'
358: || l_api_name
351: WHEN OTHERS THEN
352: fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
353:
354: IF g_debug <= gme_debug.g_log_procedure THEN
355: gme_debug.put_line ( 'Unexpected error: '
356: || g_pkg_name
357: || '.'
358: || l_api_name
359: || ': '
402: l_lpn_loc NUMBER;
403: l_lpn_context NUMBER;
404:
405: BEGIN
406: IF NVL (g_debug, gme_debug.g_log_procedure + 1) <= gme_debug.g_log_procedure THEN
407: gme_debug.put_line ('Entering api ' || g_pkg_name || '.'|| l_api_name);
408: gme_debug.put_line (g_pkg_name|| '.'|| l_api_name|| ' material_detail_id='|| p_material_detail_rec.material_detail_id);
409: gme_debug.put_line (g_pkg_name|| '.'|| l_api_name|| ' p_create_resv_pend_lots='|| p_create_resv_pend_lots);
410: IF p_ignore_transactable THEN
403: l_lpn_context NUMBER;
404:
405: BEGIN
406: IF NVL (g_debug, gme_debug.g_log_procedure + 1) <= gme_debug.g_log_procedure THEN
407: gme_debug.put_line ('Entering api ' || g_pkg_name || '.'|| l_api_name);
408: gme_debug.put_line (g_pkg_name|| '.'|| l_api_name|| ' material_detail_id='|| p_material_detail_rec.material_detail_id);
409: gme_debug.put_line (g_pkg_name|| '.'|| l_api_name|| ' p_create_resv_pend_lots='|| p_create_resv_pend_lots);
410: IF p_ignore_transactable THEN
411: gme_debug.put_line (g_pkg_name|| '.'|| l_api_name|| ' p_ignore_transactable IS TRUE');
404:
405: BEGIN
406: IF NVL (g_debug, gme_debug.g_log_procedure + 1) <= gme_debug.g_log_procedure THEN
407: gme_debug.put_line ('Entering api ' || g_pkg_name || '.'|| l_api_name);
408: gme_debug.put_line (g_pkg_name|| '.'|| l_api_name|| ' material_detail_id='|| p_material_detail_rec.material_detail_id);
409: gme_debug.put_line (g_pkg_name|| '.'|| l_api_name|| ' p_create_resv_pend_lots='|| p_create_resv_pend_lots);
410: IF p_ignore_transactable THEN
411: gme_debug.put_line (g_pkg_name|| '.'|| l_api_name|| ' p_ignore_transactable IS TRUE');
412: ELSE
405: BEGIN
406: IF NVL (g_debug, gme_debug.g_log_procedure + 1) <= gme_debug.g_log_procedure THEN
407: gme_debug.put_line ('Entering api ' || g_pkg_name || '.'|| l_api_name);
408: gme_debug.put_line (g_pkg_name|| '.'|| l_api_name|| ' material_detail_id='|| p_material_detail_rec.material_detail_id);
409: gme_debug.put_line (g_pkg_name|| '.'|| l_api_name|| ' p_create_resv_pend_lots='|| p_create_resv_pend_lots);
410: IF p_ignore_transactable THEN
411: gme_debug.put_line (g_pkg_name|| '.'|| l_api_name|| ' p_ignore_transactable IS TRUE');
412: ELSE
413: gme_debug.put_line (g_pkg_name|| '.'|| l_api_name|| ' p_ignore_transactable IS FALSE');
407: gme_debug.put_line ('Entering api ' || g_pkg_name || '.'|| l_api_name);
408: gme_debug.put_line (g_pkg_name|| '.'|| l_api_name|| ' material_detail_id='|| p_material_detail_rec.material_detail_id);
409: gme_debug.put_line (g_pkg_name|| '.'|| l_api_name|| ' p_create_resv_pend_lots='|| p_create_resv_pend_lots);
410: IF p_ignore_transactable THEN
411: gme_debug.put_line (g_pkg_name|| '.'|| l_api_name|| ' p_ignore_transactable IS TRUE');
412: ELSE
413: gme_debug.put_line (g_pkg_name|| '.'|| l_api_name|| ' p_ignore_transactable IS FALSE');
414: END IF;
415: END IF;
409: gme_debug.put_line (g_pkg_name|| '.'|| l_api_name|| ' p_create_resv_pend_lots='|| p_create_resv_pend_lots);
410: IF p_ignore_transactable THEN
411: gme_debug.put_line (g_pkg_name|| '.'|| l_api_name|| ' p_ignore_transactable IS TRUE');
412: ELSE
413: gme_debug.put_line (g_pkg_name|| '.'|| l_api_name|| ' p_ignore_transactable IS FALSE');
414: END IF;
415: END IF;
416:
417: -- Set the return status to success initially
432: l_trans_date := NVL(gme_common_pvt.g_ib_timestamp_date, gme_common_pvt.g_timestamp);
433: END IF;
434:
435: x_actual_qty := p_material_detail_rec.actual_qty;
436: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
437: gme_debug.put_line(g_pkg_name|| '.'|| l_api_name || ' actual_qty = '||x_actual_qty);
438: END IF;
439:
440: FOR i IN 1 .. l_mmt_tbl.COUNT LOOP
433: END IF;
434:
435: x_actual_qty := p_material_detail_rec.actual_qty;
436: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
437: gme_debug.put_line(g_pkg_name|| '.'|| l_api_name || ' actual_qty = '||x_actual_qty);
438: END IF;
439:
440: FOR i IN 1 .. l_mmt_tbl.COUNT LOOP
441: l_mmt_rec := l_mmt_tbl (i);
468: END IF;
469: END IF;
470:
471: /* Bug 12836004 Added logic to see if LPN would get associated with a diff locator if an opp txn is created */
472: IF (g_debug <= gme_debug.g_log_statement) THEN
473: gme_debug.put_line ( g_pkg_name
474: || '.'
475: || l_api_name
476: || ':'
469: END IF;
470:
471: /* Bug 12836004 Added logic to see if LPN would get associated with a diff locator if an opp txn is created */
472: IF (g_debug <= gme_debug.g_log_statement) THEN
473: gme_debug.put_line ( g_pkg_name
474: || '.'
475: || l_api_name
476: || ':'
477: || 'Checking the current the LPN subinv and loc for lpn :'||l_mmt_rec.lpn_id);
488: x_out_lpnno => l_lpn_no,
489: x_context => l_lpn_context) = FALSE) THEN
490: -- The current Lpn locator is diff. WMS functionality doesnt allow an LPN to have an onhand in 2 diff locators.
491: -- So raise an error.
492: IF (g_debug <= gme_debug.g_log_statement) THEN
493: gme_debug.put_line ( g_pkg_name
494: || '.'
495: || l_api_name
496: || ':'
489: x_context => l_lpn_context) = FALSE) THEN
490: -- The current Lpn locator is diff. WMS functionality doesnt allow an LPN to have an onhand in 2 diff locators.
491: -- So raise an error.
492: IF (g_debug <= gme_debug.g_log_statement) THEN
493: gme_debug.put_line ( g_pkg_name
494: || '.'
495: || l_api_name
496: || ':'
497: || 'Raising an error ');
495: || l_api_name
496: || ':'
497: || 'Raising an error ');
498:
499: gme_debug.put_line ( g_pkg_name
500: || '.'
501: || l_api_name
502: || ':'
503: || 'Original txn subinv :'
502: || ':'
503: || 'Original txn subinv :'
504: || l_mmt_rec.subinventory_code);
505:
506: gme_debug.put_line ( g_pkg_name
507: || '.'
508: || l_api_name
509: || ':'
510: || 'Original txn Locator id :'
509: || ':'
510: || 'Original txn Locator id :'
511: || l_mmt_rec.locator_id);
512:
513: gme_debug.put_line ( g_pkg_name
514: || '.'
515: || l_api_name
516: || ':'
517: || 'Current LPN subinv : '
516: || ':'
517: || 'Current LPN subinv : '
518: || l_lpn_subinv);
519:
520: gme_debug.put_line ( g_pkg_name
521: || '.'
522: || l_api_name
523: || ':'
524: || 'Current LPN locator id '
535: );
536: RAISE fnd_api.g_exc_error;
537: END IF;
538:
539: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
540: gme_debug.put_line(g_pkg_name|| '.'|| l_api_name||
541: ' calling gme_transactions_pvt.delete_material_txn with trxn_id= '||l_mmt_rec.transaction_id);
542: END IF;
543:
536: RAISE fnd_api.g_exc_error;
537: END IF;
538:
539: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
540: gme_debug.put_line(g_pkg_name|| '.'|| l_api_name||
541: ' calling gme_transactions_pvt.delete_material_txn with trxn_id= '||l_mmt_rec.transaction_id);
542: END IF;
543:
544: -- Bug 13017256 - Let's pass in user entered date. It will only get
553:
554: IF x_return_status <> fnd_api.g_ret_sts_success THEN
555: IF x_return_status = gme_common_pvt.g_not_transactable AND p_ignore_transactable THEN
556: -- don't do anything... move to the next...
557: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
558: gme_debug.put_line(g_pkg_name|| '.'|| l_api_name
559: || ' gme_transactions_pvt.delete_material_txn returned '||l_return_status
560: || ' but p_ignore_transactable is set to TRUE; so moving to the next transaction');
561: END IF;
554: IF x_return_status <> fnd_api.g_ret_sts_success THEN
555: IF x_return_status = gme_common_pvt.g_not_transactable AND p_ignore_transactable THEN
556: -- don't do anything... move to the next...
557: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
558: gme_debug.put_line(g_pkg_name|| '.'|| l_api_name
559: || ' gme_transactions_pvt.delete_material_txn returned '||l_return_status
560: || ' but p_ignore_transactable is set to TRUE; so moving to the next transaction');
561: END IF;
562: ELSE
559: || ' gme_transactions_pvt.delete_material_txn returned '||l_return_status
560: || ' but p_ignore_transactable is set to TRUE; so moving to the next transaction');
561: END IF;
562: ELSE
563: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
564: gme_debug.put_line(g_pkg_name|| '.'|| l_api_name
565: || ' gme_transactions_pvt.delete_material_txn returned '||l_return_status
566: || ' but p_ignore_transactable is set to FALSE; raising exception');
567: END IF;
560: || ' but p_ignore_transactable is set to TRUE; so moving to the next transaction');
561: END IF;
562: ELSE
563: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
564: gme_debug.put_line(g_pkg_name|| '.'|| l_api_name
565: || ' gme_transactions_pvt.delete_material_txn returned '||l_return_status
566: || ' but p_ignore_transactable is set to FALSE; raising exception');
567: END IF;
568: RAISE error_del_trans;
568: RAISE error_del_trans;
569: END IF;
570: ELSE -- delete was successful; recreate resv / pplot if requested
571:
572: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
573: gme_debug.put_line(g_pkg_name|| '.'|| l_api_name || ' delete loop; actual_qty = '||x_actual_qty);
574: gme_debug.put_line(g_pkg_name|| '.'|| l_api_name || ' delete loop; trans qty fromm mmt = '||l_mmt_rec.transaction_quantity);
575: END IF;
576: -- Pawan Kumar bug 5483071 added following if condition
569: END IF;
570: ELSE -- delete was successful; recreate resv / pplot if requested
571:
572: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
573: gme_debug.put_line(g_pkg_name|| '.'|| l_api_name || ' delete loop; actual_qty = '||x_actual_qty);
574: gme_debug.put_line(g_pkg_name|| '.'|| l_api_name || ' delete loop; trans qty fromm mmt = '||l_mmt_rec.transaction_quantity);
575: END IF;
576: -- Pawan Kumar bug 5483071 added following if condition
577: IF (p_material_detail_rec.line_type = -1 ) THEN
570: ELSE -- delete was successful; recreate resv / pplot if requested
571:
572: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
573: gme_debug.put_line(g_pkg_name|| '.'|| l_api_name || ' delete loop; actual_qty = '||x_actual_qty);
574: gme_debug.put_line(g_pkg_name|| '.'|| l_api_name || ' delete loop; trans qty fromm mmt = '||l_mmt_rec.transaction_quantity);
575: END IF;
576: -- Pawan Kumar bug 5483071 added following if condition
577: IF (p_material_detail_rec.line_type = -1 ) THEN
578: x_actual_qty := x_actual_qty + (l_mmt_rec.transaction_quantity);
579: ELSE
580: x_actual_qty := x_actual_qty - (l_mmt_rec.transaction_quantity) ;
581: END IF;
582:
583: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
584: gme_debug.put_line(g_pkg_name|| '.'|| l_api_name || 'after trxn delete loop; actual_qty = '||x_actual_qty);
585: END IF;
586:
587: IF p_create_resv_pend_lots = 1 THEN
580: x_actual_qty := x_actual_qty - (l_mmt_rec.transaction_quantity) ;
581: END IF;
582:
583: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
584: gme_debug.put_line(g_pkg_name|| '.'|| l_api_name || 'after trxn delete loop; actual_qty = '||x_actual_qty);
585: END IF;
586:
587: IF p_create_resv_pend_lots = 1 THEN
588: -- nsinghi bug#5176319. Do not already create reservation. Reservation will be created in gme_post_process after onhand is increased due to wip return.
594: gme_common_pvt.g_mat_txn_hdr_tbl(l_txn_hdr_tbl_cnt).material_dtl_id := p_material_detail_rec.material_detail_id;
595:
596: -- gme_common_pvt.g_txn_hdr_tbl_cnt := gme_common_pvt.g_txn_hdr_tbl_cnt + 1;
597:
598: IF (NVL (g_debug, 0) = gme_debug.g_log_statement) THEN
599: gme_debug.put_line ( g_pkg_name
600: || '.'
601: || l_api_name
602: || ':'
595:
596: -- gme_common_pvt.g_txn_hdr_tbl_cnt := gme_common_pvt.g_txn_hdr_tbl_cnt + 1;
597:
598: IF (NVL (g_debug, 0) = gme_debug.g_log_statement) THEN
599: gme_debug.put_line ( g_pkg_name
600: || '.'
601: || l_api_name
602: || ':'
603: ||'gme_common_pvt.g_mat_txn_hdr_tbl('
629: ,x_exception_material_tbl => x_exception_material_tbl
630: ,x_return_status => x_return_status);
631: END IF;
632:
633: IF NVL (g_debug, gme_debug.g_log_procedure + 1) <=
634: gme_debug.g_log_procedure THEN
635: gme_debug.put_line ('Exiting api ' || g_pkg_name || '.' || l_api_name|| ' with return_status = '||x_return_status||' and x_actual_qty='||x_actual_qty);
636: END IF;
637: EXCEPTION
630: ,x_return_status => x_return_status);
631: END IF;
632:
633: IF NVL (g_debug, gme_debug.g_log_procedure + 1) <=
634: gme_debug.g_log_procedure THEN
635: gme_debug.put_line ('Exiting api ' || g_pkg_name || '.' || l_api_name|| ' with return_status = '||x_return_status||' and x_actual_qty='||x_actual_qty);
636: END IF;
637: EXCEPTION
638: WHEN fnd_api.g_exc_error THEN
631: END IF;
632:
633: IF NVL (g_debug, gme_debug.g_log_procedure + 1) <=
634: gme_debug.g_log_procedure THEN
635: gme_debug.put_line ('Exiting api ' || g_pkg_name || '.' || l_api_name|| ' with return_status = '||x_return_status||' and x_actual_qty='||x_actual_qty);
636: END IF;
637: EXCEPTION
638: WHEN fnd_api.g_exc_error THEN
639: x_return_status := fnd_api.g_ret_sts_error;
641: NULL;
642: WHEN OTHERS THEN
643: fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
644:
645: IF g_debug <= gme_debug.g_log_procedure THEN
646: gme_debug.put_line ( 'Unexpected error: '
647: || g_pkg_name
648: || '.'
649: || l_api_name
642: WHEN OTHERS THEN
643: fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
644:
645: IF g_debug <= gme_debug.g_log_procedure THEN
646: gme_debug.put_line ( 'Unexpected error: '
647: || g_pkg_name
648: || '.'
649: || l_api_name
650: || ': '
676: SELECT *
677: FROM mtl_material_transactions mmt
678: WHERE transaction_id = v_transaction_id;
679: BEGIN
680: IF (NVL (g_debug, 0) IN (gme_debug.g_log_statement, gme_debug.g_log_procedure) ) THEN
681: gme_debug.put_line (g_pkg_name || '.' || l_api_name || ':' || 'Entering');
682: END IF;
683:
684: x_return_status := fnd_api.g_ret_sts_success;
677: FROM mtl_material_transactions mmt
678: WHERE transaction_id = v_transaction_id;
679: BEGIN
680: IF (NVL (g_debug, 0) IN (gme_debug.g_log_statement, gme_debug.g_log_procedure) ) THEN
681: gme_debug.put_line (g_pkg_name || '.' || l_api_name || ':' || 'Entering');
682: END IF;
683:
684: x_return_status := fnd_api.g_ret_sts_success;
685:
682: END IF;
683:
684: x_return_status := fnd_api.g_ret_sts_success;
685:
686: IF (NVL (g_debug, 0) = gme_debug.g_log_statement) THEN
687: gme_debug.put_line ( g_pkg_name|| '.'|| l_api_name|| ':'||'p_material_dtl_id = '
688: ||p_material_dtl_id);
689: gme_debug.put_line ( g_pkg_name|| '.'|| l_api_name|| ':'||'gme_common_pvt.g_mat_txn_hdr_tbl.COUNT = '
690: ||gme_common_pvt.g_mat_txn_hdr_tbl.COUNT);
683:
684: x_return_status := fnd_api.g_ret_sts_success;
685:
686: IF (NVL (g_debug, 0) = gme_debug.g_log_statement) THEN
687: gme_debug.put_line ( g_pkg_name|| '.'|| l_api_name|| ':'||'p_material_dtl_id = '
688: ||p_material_dtl_id);
689: gme_debug.put_line ( g_pkg_name|| '.'|| l_api_name|| ':'||'gme_common_pvt.g_mat_txn_hdr_tbl.COUNT = '
690: ||gme_common_pvt.g_mat_txn_hdr_tbl.COUNT);
691: END IF;
685:
686: IF (NVL (g_debug, 0) = gme_debug.g_log_statement) THEN
687: gme_debug.put_line ( g_pkg_name|| '.'|| l_api_name|| ':'||'p_material_dtl_id = '
688: ||p_material_dtl_id);
689: gme_debug.put_line ( g_pkg_name|| '.'|| l_api_name|| ':'||'gme_common_pvt.g_mat_txn_hdr_tbl.COUNT = '
690: ||gme_common_pvt.g_mat_txn_hdr_tbl.COUNT);
691: END IF;
692:
693: IF gme_common_pvt.g_mat_txn_hdr_tbl.COUNT > 0 THEN
695: LOOP
696:
697: IF gme_common_pvt.g_mat_txn_hdr_tbl(cnt).material_dtl_id = p_material_dtl_id THEN
698:
699: IF (NVL (g_debug, 0) = gme_debug.g_log_statement) THEN
700: gme_debug.put_line ( g_pkg_name|| '.'|| l_api_name|| ':'||'gme_common_pvt.g_mat_txn_hdr_tbl('||cnt||').txn_header_id = '
701: ||gme_common_pvt.g_mat_txn_hdr_tbl(cnt).txn_header_id);
702: gme_debug.put_line ( g_pkg_name|| '.'|| l_api_name|| ':'||'gme_common_pvt.g_mat_txn_hdr_tbl('||cnt||').material_dtl_id = '
703: ||gme_common_pvt.g_mat_txn_hdr_tbl(cnt).material_dtl_id);
696:
697: IF gme_common_pvt.g_mat_txn_hdr_tbl(cnt).material_dtl_id = p_material_dtl_id THEN
698:
699: IF (NVL (g_debug, 0) = gme_debug.g_log_statement) THEN
700: gme_debug.put_line ( g_pkg_name|| '.'|| l_api_name|| ':'||'gme_common_pvt.g_mat_txn_hdr_tbl('||cnt||').txn_header_id = '
701: ||gme_common_pvt.g_mat_txn_hdr_tbl(cnt).txn_header_id);
702: gme_debug.put_line ( g_pkg_name|| '.'|| l_api_name|| ':'||'gme_common_pvt.g_mat_txn_hdr_tbl('||cnt||').material_dtl_id = '
703: ||gme_common_pvt.g_mat_txn_hdr_tbl(cnt).material_dtl_id);
704: END IF;
698:
699: IF (NVL (g_debug, 0) = gme_debug.g_log_statement) THEN
700: gme_debug.put_line ( g_pkg_name|| '.'|| l_api_name|| ':'||'gme_common_pvt.g_mat_txn_hdr_tbl('||cnt||').txn_header_id = '
701: ||gme_common_pvt.g_mat_txn_hdr_tbl(cnt).txn_header_id);
702: gme_debug.put_line ( g_pkg_name|| '.'|| l_api_name|| ':'||'gme_common_pvt.g_mat_txn_hdr_tbl('||cnt||').material_dtl_id = '
703: ||gme_common_pvt.g_mat_txn_hdr_tbl(cnt).material_dtl_id);
704: END IF;
705:
706: l_mat_dtl_rec.material_detail_id := gme_common_pvt.g_mat_txn_hdr_tbl(cnt).material_dtl_id;
724: OPEN cur_get_transaction (l_new_transaction_id);
725: FETCH cur_get_transaction INTO l_new_mmt_rec;
726: CLOSE cur_get_transaction;
727:
728: IF (NVL (g_debug, 0) = gme_debug.g_log_statement) THEN
729: gme_debug.put_line('Ing issue transaction id is ' || l_mmt_rec.transaction_id);
730: gme_debug.put_line('Ing Return transaction id is ' || l_new_mmt_rec.transaction_id);
731: gme_debug.put_line('source line id is' || l_new_mmt_rec.source_line_id);
732: END IF;
725: FETCH cur_get_transaction INTO l_new_mmt_rec;
726: CLOSE cur_get_transaction;
727:
728: IF (NVL (g_debug, 0) = gme_debug.g_log_statement) THEN
729: gme_debug.put_line('Ing issue transaction id is ' || l_mmt_rec.transaction_id);
730: gme_debug.put_line('Ing Return transaction id is ' || l_new_mmt_rec.transaction_id);
731: gme_debug.put_line('source line id is' || l_new_mmt_rec.source_line_id);
732: END IF;
733: -- Bug 6997483
726: CLOSE cur_get_transaction;
727:
728: IF (NVL (g_debug, 0) = gme_debug.g_log_statement) THEN
729: gme_debug.put_line('Ing issue transaction id is ' || l_mmt_rec.transaction_id);
730: gme_debug.put_line('Ing Return transaction id is ' || l_new_mmt_rec.transaction_id);
731: gme_debug.put_line('source line id is' || l_new_mmt_rec.source_line_id);
732: END IF;
733: -- Bug 6997483
734: -- Call create_resv_pplot only of the source_line_id of the ing return/reversal transaction
727:
728: IF (NVL (g_debug, 0) = gme_debug.g_log_statement) THEN
729: gme_debug.put_line('Ing issue transaction id is ' || l_mmt_rec.transaction_id);
730: gme_debug.put_line('Ing Return transaction id is ' || l_new_mmt_rec.transaction_id);
731: gme_debug.put_line('source line id is' || l_new_mmt_rec.source_line_id);
732: END IF;
733: -- Bug 6997483
734: -- Call create_resv_pplot only of the source_line_id of the ing return/reversal transaction
735: -- matches the transaction_id of the original ing issue transaction.
766: l_out_pplot_rec gme_pending_product_lots%ROWTYPE;
767: l_return_status VARCHAR2(1);
768:
769: BEGIN
770: IF NVL (g_debug, gme_debug.g_log_procedure + 1) <= gme_debug.g_log_procedure THEN
771: gme_debug.put_line ('Entering api ' || g_pkg_name || '.'|| l_api_name);
772: END IF;
773:
774: -- Set the return status to success initially
767: l_return_status VARCHAR2(1);
768:
769: BEGIN
770: IF NVL (g_debug, gme_debug.g_log_procedure + 1) <= gme_debug.g_log_procedure THEN
771: gme_debug.put_line ('Entering api ' || g_pkg_name || '.'|| l_api_name);
772: END IF;
773:
774: -- Set the return status to success initially
775: x_return_status := fnd_api.g_ret_sts_success;
834:
835: l_sequence := gme_pending_product_lots_pvt.get_last_sequence
836: (p_matl_dtl_id => l_pplot_rec.material_detail_id
837: ,x_return_status => l_return_status);
838: IF NVL (g_debug, -1) <= gme_debug.g_log_statement THEN
839: gme_debug.put_line (g_pkg_name || '.' || l_api_name||' return_status from lot_qty '|| l_mmln_tbl (j).transaction_quantity);
840: gme_debug.put_line (g_pkg_name || '.' || l_api_name||' return_status from get_sequence '||l_return_status);
841: END IF;
842: l_sequence := l_sequence + gme_pending_product_lots_pvt.g_sequence_increment;
835: l_sequence := gme_pending_product_lots_pvt.get_last_sequence
836: (p_matl_dtl_id => l_pplot_rec.material_detail_id
837: ,x_return_status => l_return_status);
838: IF NVL (g_debug, -1) <= gme_debug.g_log_statement THEN
839: gme_debug.put_line (g_pkg_name || '.' || l_api_name||' return_status from lot_qty '|| l_mmln_tbl (j).transaction_quantity);
840: gme_debug.put_line (g_pkg_name || '.' || l_api_name||' return_status from get_sequence '||l_return_status);
841: END IF;
842: l_sequence := l_sequence + gme_pending_product_lots_pvt.g_sequence_increment;
843: l_pplot_rec.sequence := l_sequence;
836: (p_matl_dtl_id => l_pplot_rec.material_detail_id
837: ,x_return_status => l_return_status);
838: IF NVL (g_debug, -1) <= gme_debug.g_log_statement THEN
839: gme_debug.put_line (g_pkg_name || '.' || l_api_name||' return_status from lot_qty '|| l_mmln_tbl (j).transaction_quantity);
840: gme_debug.put_line (g_pkg_name || '.' || l_api_name||' return_status from get_sequence '||l_return_status);
841: END IF;
842: l_sequence := l_sequence + gme_pending_product_lots_pvt.g_sequence_increment;
843: l_pplot_rec.sequence := l_sequence;
844:
852: END IF;
853: END LOOP;
854: END IF; -- IF l_material_detail_rec.line_type = gme_common_pvt.g_line_type_ing
855:
856: IF NVL (g_debug, gme_debug.g_log_procedure + 1) <= gme_debug.g_log_procedure THEN
857: gme_debug.put_line ('Exiting api ' || g_pkg_name || '.' || l_api_name|| ' with return_status='||x_return_status);
858: END IF;
859:
860: EXCEPTION
853: END LOOP;
854: END IF; -- IF l_material_detail_rec.line_type = gme_common_pvt.g_line_type_ing
855:
856: IF NVL (g_debug, gme_debug.g_log_procedure + 1) <= gme_debug.g_log_procedure THEN
857: gme_debug.put_line ('Exiting api ' || g_pkg_name || '.' || l_api_name|| ' with return_status='||x_return_status);
858: END IF;
859:
860: EXCEPTION
861: WHEN OTHERS THEN
860: EXCEPTION
861: WHEN OTHERS THEN
862: fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
863:
864: IF g_debug <= gme_debug.g_log_procedure THEN
865: gme_debug.put_line ( 'Unexpected error: '
866: || g_pkg_name
867: || '.'
868: || l_api_name
861: WHEN OTHERS THEN
862: fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
863:
864: IF g_debug <= gme_debug.g_log_procedure THEN
865: gme_debug.put_line ( 'Unexpected error: '
866: || g_pkg_name
867: || '.'
868: || l_api_name
869: || ': '
892: error_step_status EXCEPTION;
893: error_phantom EXCEPTION;
894:
895: BEGIN
896: IF NVL (g_debug, gme_debug.g_log_procedure + 1) <=
897: gme_debug.g_log_procedure THEN
898: gme_debug.put_line ('Entering api ' || g_pkg_name || '.'
899: || l_api_name);
900: END IF;
893: error_phantom EXCEPTION;
894:
895: BEGIN
896: IF NVL (g_debug, gme_debug.g_log_procedure + 1) <=
897: gme_debug.g_log_procedure THEN
898: gme_debug.put_line ('Entering api ' || g_pkg_name || '.'
899: || l_api_name);
900: END IF;
901:
894:
895: BEGIN
896: IF NVL (g_debug, gme_debug.g_log_procedure + 1) <=
897: gme_debug.g_log_procedure THEN
898: gme_debug.put_line ('Entering api ' || g_pkg_name || '.'
899: || l_api_name);
900: END IF;
901:
902: IF p_batch_hdr_rec.batch_type = gme_common_pvt.g_doc_type_fpo THEN
918: IF l_is_step_status_valid > 0 THEN
919: RAISE error_step_status;
920: END IF;
921:
922: IF NVL (g_debug, gme_debug.g_log_procedure + 1) <=
923: gme_debug.g_log_procedure THEN
924: gme_debug.put_line ('Exiting api ' || g_pkg_name || '.' || l_api_name);
925: END IF;
926: EXCEPTION
919: RAISE error_step_status;
920: END IF;
921:
922: IF NVL (g_debug, gme_debug.g_log_procedure + 1) <=
923: gme_debug.g_log_procedure THEN
924: gme_debug.put_line ('Exiting api ' || g_pkg_name || '.' || l_api_name);
925: END IF;
926: EXCEPTION
927: WHEN error_phantom THEN
920: END IF;
921:
922: IF NVL (g_debug, gme_debug.g_log_procedure + 1) <=
923: gme_debug.g_log_procedure THEN
924: gme_debug.put_line ('Exiting api ' || g_pkg_name || '.' || l_api_name);
925: END IF;
926: EXCEPTION
927: WHEN error_phantom THEN
928: gme_common_pvt.log_message ('PM_INVALID_PHANTOM_ACTION');
935: x_return_status := fnd_api.g_ret_sts_error;
936: WHEN OTHERS THEN
937: fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
938:
939: IF g_debug <= gme_debug.g_log_procedure THEN
940: gme_debug.put_line ( 'Unexpected error: '
941: || g_pkg_name
942: || '.'
943: || l_api_name
936: WHEN OTHERS THEN
937: fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
938:
939: IF g_debug <= gme_debug.g_log_procedure THEN
940: gme_debug.put_line ( 'Unexpected error: '
941: || g_pkg_name
942: || '.'
943: || l_api_name
944: || ': '
969: l_sqs NUMBER;
970: l_satt NUMBER;
971: l_satr NUMBER;
972: BEGIN
973: IF NVL (g_debug, gme_debug.g_log_procedure + 1) <= gme_debug.g_log_procedure THEN
974: gme_debug.put_line ('Entering api ' || g_pkg_name || '.'|| l_api_name);
975: END IF;
976: IF (p_mmln_tbl.COUNT > 0) THEN
977: FOR i IN 1..p_mmln_tbl.COUNT LOOP
970: l_satt NUMBER;
971: l_satr NUMBER;
972: BEGIN
973: IF NVL (g_debug, gme_debug.g_log_procedure + 1) <= gme_debug.g_log_procedure THEN
974: gme_debug.put_line ('Entering api ' || g_pkg_name || '.'|| l_api_name);
975: END IF;
976: IF (p_mmln_tbl.COUNT > 0) THEN
977: FOR i IN 1..p_mmln_tbl.COUNT LOOP
978: gme_transactions_pvt.query_quantities(x_return_status => l_return_status,
997: x_sqr => l_sqr,
998: x_sqs => l_sqs,
999: x_satt => l_satt,
1000: x_satr => l_satr);
1001: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
1002: gme_debug.put_line('NVL(l_att,0) = '||NVL(l_att,0));
1003: gme_debug.put_line('NVL(ABS(p_mmln_tbl(i).primary_quantity),0) = '||NVL(ABS(p_mmln_tbl(i).primary_quantity),0));
1004: END IF;
1005: IF (NVL(l_att,0) < NVL(ABS(p_mmln_tbl(i).primary_quantity),0)) THEN
998: x_sqs => l_sqs,
999: x_satt => l_satt,
1000: x_satr => l_satr);
1001: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
1002: gme_debug.put_line('NVL(l_att,0) = '||NVL(l_att,0));
1003: gme_debug.put_line('NVL(ABS(p_mmln_tbl(i).primary_quantity),0) = '||NVL(ABS(p_mmln_tbl(i).primary_quantity),0));
1004: END IF;
1005: IF (NVL(l_att,0) < NVL(ABS(p_mmln_tbl(i).primary_quantity),0)) THEN
1006: IF (p_org_neg_control = 2) THEN --org does not allow negative inventory
999: x_satt => l_satt,
1000: x_satr => l_satr);
1001: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
1002: gme_debug.put_line('NVL(l_att,0) = '||NVL(l_att,0));
1003: gme_debug.put_line('NVL(ABS(p_mmln_tbl(i).primary_quantity),0) = '||NVL(ABS(p_mmln_tbl(i).primary_quantity),0));
1004: END IF;
1005: IF (NVL(l_att,0) < NVL(ABS(p_mmln_tbl(i).primary_quantity),0)) THEN
1006: IF (p_org_neg_control = 2) THEN --org does not allow negative inventory
1007: gme_common_pvt.log_message
1009: ,p_product_code => 'GME'
1010: ,p_token1_name => 'ITEM_NO'
1011: ,p_token1_value => p_item_no
1012: );
1013: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
1014: gme_debug.put_line('error. onhand will be driven negative for lot '||p_mmln_tbl(i).lot_number||' which the org does not allow');
1015: END IF;
1016: RETURN TRUE;
1017: ELSIF (p_org_neg_control = 1) --org allows negative inventory
1010: ,p_token1_name => 'ITEM_NO'
1011: ,p_token1_value => p_item_no
1012: );
1013: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
1014: gme_debug.put_line('error. onhand will be driven negative for lot '||p_mmln_tbl(i).lot_number||' which the org does not allow');
1015: END IF;
1016: RETURN TRUE;
1017: ELSIF (p_org_neg_control = 1) --org allows negative inventory
1018: AND (l_qr > 0) THEN
1021: ,p_product_code => 'GME'
1022: ,p_token1_name => 'ITEM_NO'
1023: ,p_token1_value => p_item_no
1024: );
1025: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
1026: gme_debug.put_line('error. onhand will be driven negative for lot '||p_mmln_tbl(i).lot_number||' which org allows but there are reservations');
1027: END IF;
1028: RETURN TRUE;
1029: END IF;
1022: ,p_token1_name => 'ITEM_NO'
1023: ,p_token1_value => p_item_no
1024: );
1025: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
1026: gme_debug.put_line('error. onhand will be driven negative for lot '||p_mmln_tbl(i).lot_number||' which org allows but there are reservations');
1027: END IF;
1028: RETURN TRUE;
1029: END IF;
1030: END IF;
1052: x_sqr => l_sqr,
1053: x_sqs => l_sqs,
1054: x_satt => l_satt,
1055: x_satr => l_satr);
1056: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
1057: gme_debug.put_line('NVL(l_att,0) = '||NVL(l_att,0));
1058: gme_debug.put_line('NVL(ABS(p_mmt_rec.primary_quantity),0) = '||NVL(ABS(p_mmt_rec.primary_quantity),0));
1059: END IF;
1060: IF (NVL(l_att,0) < NVL(ABS(p_mmt_rec.primary_quantity),0)) THEN
1053: x_sqs => l_sqs,
1054: x_satt => l_satt,
1055: x_satr => l_satr);
1056: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
1057: gme_debug.put_line('NVL(l_att,0) = '||NVL(l_att,0));
1058: gme_debug.put_line('NVL(ABS(p_mmt_rec.primary_quantity),0) = '||NVL(ABS(p_mmt_rec.primary_quantity),0));
1059: END IF;
1060: IF (NVL(l_att,0) < NVL(ABS(p_mmt_rec.primary_quantity),0)) THEN
1061: IF (p_org_neg_control = 2) THEN --org does not allow negative inventory
1054: x_satt => l_satt,
1055: x_satr => l_satr);
1056: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
1057: gme_debug.put_line('NVL(l_att,0) = '||NVL(l_att,0));
1058: gme_debug.put_line('NVL(ABS(p_mmt_rec.primary_quantity),0) = '||NVL(ABS(p_mmt_rec.primary_quantity),0));
1059: END IF;
1060: IF (NVL(l_att,0) < NVL(ABS(p_mmt_rec.primary_quantity),0)) THEN
1061: IF (p_org_neg_control = 2) THEN --org does not allow negative inventory
1062: gme_common_pvt.log_message
1064: ,p_product_code => 'GME'
1065: ,p_token1_name => 'ITEM_NO'
1066: ,p_token1_value => p_item_no
1067: );
1068: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
1069: gme_debug.put_line('error. onhand will be driven negative which the org does not allow');
1070: END IF;
1071: RETURN TRUE;
1072: ELSIF (p_org_neg_control = 1) --org allows negative inventory
1065: ,p_token1_name => 'ITEM_NO'
1066: ,p_token1_value => p_item_no
1067: );
1068: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
1069: gme_debug.put_line('error. onhand will be driven negative which the org does not allow');
1070: END IF;
1071: RETURN TRUE;
1072: ELSIF (p_org_neg_control = 1) --org allows negative inventory
1073: AND (l_qr > 0) THEN
1076: ,p_product_code => 'GME'
1077: ,p_token1_name => 'ITEM_NO'
1078: ,p_token1_value => p_item_no
1079: );
1080: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
1081: gme_debug.put_line('error. onhand will be driven negative which org allows but there are reservations');
1082: END IF;
1083: RETURN TRUE;
1084: END IF;
1077: ,p_token1_name => 'ITEM_NO'
1078: ,p_token1_value => p_item_no
1079: );
1080: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
1081: gme_debug.put_line('error. onhand will be driven negative which org allows but there are reservations');
1082: END IF;
1083: RETURN TRUE;
1084: END IF;
1085: END IF;
1087: RETURN FALSE;
1088: EXCEPTION
1089: WHEN OTHERS THEN
1090: fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
1091: IF g_debug <= gme_debug.g_log_procedure THEN
1092: gme_debug.put_line('Unexpected error: '|| g_pkg_name|| '.'|| l_api_name|| ': '|| SQLERRM);
1093: END IF;
1094: RETURN FALSE;
1095: END check_inv_negative;
1088: EXCEPTION
1089: WHEN OTHERS THEN
1090: fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
1091: IF g_debug <= gme_debug.g_log_procedure THEN
1092: gme_debug.put_line('Unexpected error: '|| g_pkg_name|| '.'|| l_api_name|| ': '|| SQLERRM);
1093: END IF;
1094: RETURN FALSE;
1095: END check_inv_negative;
1096: