31: lv_action VARCHAR2(20);
32: t_ra_customer_trx_rec RA_CUSTOMER_TRX_ALL%ROWTYPE;
33: t_ra_customer_trx_lines_rec RA_CUSTOMER_TRX_LINES_ALL%ROWTYPE;
34: t_jai_ar_trx_rec JAI_AR_TRXS%ROWTYPE;
35: t_jai_ar_trx_lines_rec JAI_AR_TRX_LINES%ROWTYPE;
36: lv_return_message VARCHAR2(2000);
37: lv_return_code VARCHAR2(100);
38: ln_trx_line_id NUMBER;
39: le_error EXCEPTION;
50:
51: CURSOR c_jai_ar_trx(p_customer_trx_id NUMBER) IS
52: SELECT * FROM JAI_AR_TRXS WHERE CUSTOMER_TRX_ID = p_customer_trx_id;
53:
54: CURSOR c_jai_ar_trx_lines(p_customer_trx_line_id NUMBER) IS
55: SELECT *
56: FROM JAI_AR_TRX_LINES
57: WHERE CUSTOMER_TRX_LINE_ID = p_customer_trx_line_id;
58:
52: SELECT * FROM JAI_AR_TRXS WHERE CUSTOMER_TRX_ID = p_customer_trx_id;
53:
54: CURSOR c_jai_ar_trx_lines(p_customer_trx_line_id NUMBER) IS
55: SELECT *
56: FROM JAI_AR_TRX_LINES
57: WHERE CUSTOMER_TRX_LINE_ID = p_customer_trx_line_id;
58:
59: CURSOR inclu_flag_cur IS
60: SELECT NVL(ja.inclusive_tax_flag, 'N') inclusive_tax_flag
68:
69: v_organization_id NUMBER;
70: lv_inclu_tax_flag VARCHAR2(3);
71:
72: lv_excise_inv_no JAI_AR_TRX_LINES.excise_invoice_no%Type;
73: lv_vat_inv_no JAI_AR_TRXS.VAT_INVOICE_NO%TYPE;
74:
75: CURSOR get_excise_inv_no_cur(pn_customer_trx_id NUMBER) IS
76: SELECT l.excise_invoice_no
73: lv_vat_inv_no JAI_AR_TRXS.VAT_INVOICE_NO%TYPE;
74:
75: CURSOR get_excise_inv_no_cur(pn_customer_trx_id NUMBER) IS
76: SELECT l.excise_invoice_no
77: FROM JAI_AR_TRX_LINES L
78: WHERE l.customer_trx_id = pn_customer_trx_id;
79:
80: CURSOR get_vat_inv_no_cur(pn_customer_trx_id NUMBER) IS
81: SELECT h.vat_invoice_no
119: WHERE rctla.customer_trx_id =
120: p_transaction_rec.trx_id
121: AND rctla.line_type = 'LINE') LOOP
122:
123: OPEN c_jai_ar_trx_lines(c_ra_customer_line.customer_trx_line_id);
124: FETCH c_jai_ar_trx_lines
125: INTO t_jai_ar_trx_lines_rec;
126: CLOSE c_jai_ar_trx_lines;
127:
120: p_transaction_rec.trx_id
121: AND rctla.line_type = 'LINE') LOOP
122:
123: OPEN c_jai_ar_trx_lines(c_ra_customer_line.customer_trx_line_id);
124: FETCH c_jai_ar_trx_lines
125: INTO t_jai_ar_trx_lines_rec;
126: CLOSE c_jai_ar_trx_lines;
127:
128: JAI_AR_TRX_LINES_PKG.DELETE_AR_TRX_LINES(pr_old => t_jai_ar_trx_lines_rec,
121: AND rctla.line_type = 'LINE') LOOP
122:
123: OPEN c_jai_ar_trx_lines(c_ra_customer_line.customer_trx_line_id);
124: FETCH c_jai_ar_trx_lines
125: INTO t_jai_ar_trx_lines_rec;
126: CLOSE c_jai_ar_trx_lines;
127:
128: JAI_AR_TRX_LINES_PKG.DELETE_AR_TRX_LINES(pr_old => t_jai_ar_trx_lines_rec,
129: pr_new => NULL,
122:
123: OPEN c_jai_ar_trx_lines(c_ra_customer_line.customer_trx_line_id);
124: FETCH c_jai_ar_trx_lines
125: INTO t_jai_ar_trx_lines_rec;
126: CLOSE c_jai_ar_trx_lines;
127:
128: JAI_AR_TRX_LINES_PKG.DELETE_AR_TRX_LINES(pr_old => t_jai_ar_trx_lines_rec,
129: pr_new => NULL,
130: pv_action => lv_action,
124: FETCH c_jai_ar_trx_lines
125: INTO t_jai_ar_trx_lines_rec;
126: CLOSE c_jai_ar_trx_lines;
127:
128: JAI_AR_TRX_LINES_PKG.DELETE_AR_TRX_LINES(pr_old => t_jai_ar_trx_lines_rec,
129: pr_new => NULL,
130: pv_action => lv_action,
131: pv_return_code => lv_return_code,
132: pv_return_message => lv_return_message);
342: FETCH c_ra_customer_trx_lines
343: INTO t_ra_customer_trx_lines_rec;
344: CLOSE c_ra_customer_trx_lines;
345:
346: JAI_AR_TRX_LINES_PKG.POPULATE_JAI_AR_LINES(pr_new => t_ra_customer_trx_lines_rec,
347: pv_action => lv_action,
348: pv_return_code => lv_return_code,
349: pv_return_message => lv_return_message);
350: IF lv_return_code <> jai_constants.successful then
352: pv_return_message := lv_return_message;
353: RAISE le_error;
354: END IF;
355:
356: JAI_AR_TRX_LINES_PKG.DEFAULT_TAX(pr_old => NULL,
357: pr_new => t_ra_customer_trx_lines_rec,
358: pv_action => lv_action,
359: pv_return_code => lv_return_code,
360: pv_return_message => lv_return_message);
421: FETCH c_ra_customer_trx_lines
422: INTO t_ra_customer_trx_lines_rec;
423: CLOSE c_ra_customer_trx_lines;
424:
425: OPEN c_jai_ar_trx_lines(c_ra_customer_line.customer_trx_line_id);
426: FETCH c_jai_ar_trx_lines
427: INTO t_jai_ar_trx_lines_rec;
428: CLOSE c_jai_ar_trx_lines;
429:
422: INTO t_ra_customer_trx_lines_rec;
423: CLOSE c_ra_customer_trx_lines;
424:
425: OPEN c_jai_ar_trx_lines(c_ra_customer_line.customer_trx_line_id);
426: FETCH c_jai_ar_trx_lines
427: INTO t_jai_ar_trx_lines_rec;
428: CLOSE c_jai_ar_trx_lines;
429:
430: --For case that add new line of invoice
423: CLOSE c_ra_customer_trx_lines;
424:
425: OPEN c_jai_ar_trx_lines(c_ra_customer_line.customer_trx_line_id);
426: FETCH c_jai_ar_trx_lines
427: INTO t_jai_ar_trx_lines_rec;
428: CLOSE c_jai_ar_trx_lines;
429:
430: --For case that add new line of invoice
431: IF t_jai_ar_trx_lines_rec.customer_trx_line_id <>
424:
425: OPEN c_jai_ar_trx_lines(c_ra_customer_line.customer_trx_line_id);
426: FETCH c_jai_ar_trx_lines
427: INTO t_jai_ar_trx_lines_rec;
428: CLOSE c_jai_ar_trx_lines;
429:
430: --For case that add new line of invoice
431: IF t_jai_ar_trx_lines_rec.customer_trx_line_id <>
432: t_ra_customer_trx_lines_rec.customer_trx_line_id THEN
427: INTO t_jai_ar_trx_lines_rec;
428: CLOSE c_jai_ar_trx_lines;
429:
430: --For case that add new line of invoice
431: IF t_jai_ar_trx_lines_rec.customer_trx_line_id <>
432: t_ra_customer_trx_lines_rec.customer_trx_line_id THEN
433: JAI_AR_TRX_LINES_PKG.POPULATE_JAI_AR_LINES(pr_new => t_ra_customer_trx_lines_rec,
434: pv_action => lv_action,
435: pv_return_code => lv_return_code,
429:
430: --For case that add new line of invoice
431: IF t_jai_ar_trx_lines_rec.customer_trx_line_id <>
432: t_ra_customer_trx_lines_rec.customer_trx_line_id THEN
433: JAI_AR_TRX_LINES_PKG.POPULATE_JAI_AR_LINES(pr_new => t_ra_customer_trx_lines_rec,
434: pv_action => lv_action,
435: pv_return_code => lv_return_code,
436: pv_return_message => lv_return_message);
437: IF lv_return_code <> jai_constants.successful then
439: pv_return_message := lv_return_message;
440: RAISE le_error;
441: END IF;
442:
443: JAI_AR_TRX_LINES_PKG.DEFAULT_TAX(pr_old => NULL,
444: pr_new => t_ra_customer_trx_lines_rec,
445: pv_action => lv_action,
446: pv_return_code => lv_return_code,
447: pv_return_message => lv_return_message);
452: END IF;
453: --For case that modify an existing line of invoice
454: ELSE
455:
456: IF t_jai_ar_trx_lines_rec.quantity <>
457: t_ra_customer_trx_lines_rec.quantity_credited OR
458: t_jai_ar_trx_lines_rec.unit_selling_price <>
459: t_ra_customer_trx_lines_rec.unit_selling_price OR
460: t_jai_ar_trx_lines_rec.unit_code <>
454: ELSE
455:
456: IF t_jai_ar_trx_lines_rec.quantity <>
457: t_ra_customer_trx_lines_rec.quantity_credited OR
458: t_jai_ar_trx_lines_rec.unit_selling_price <>
459: t_ra_customer_trx_lines_rec.unit_selling_price OR
460: t_jai_ar_trx_lines_rec.unit_code <>
461: t_ra_customer_trx_lines_rec.uom_code THEN
462: JAI_AR_TRX_LINES_PKG.RECALCULATE_TAX_FOR_DM(pr_old => t_jai_ar_trx_lines_rec,
456: IF t_jai_ar_trx_lines_rec.quantity <>
457: t_ra_customer_trx_lines_rec.quantity_credited OR
458: t_jai_ar_trx_lines_rec.unit_selling_price <>
459: t_ra_customer_trx_lines_rec.unit_selling_price OR
460: t_jai_ar_trx_lines_rec.unit_code <>
461: t_ra_customer_trx_lines_rec.uom_code THEN
462: JAI_AR_TRX_LINES_PKG.RECALCULATE_TAX_FOR_DM(pr_old => t_jai_ar_trx_lines_rec,
463: pr_new => t_ra_customer_trx_lines_rec,
464: pv_action => lv_action,
458: t_jai_ar_trx_lines_rec.unit_selling_price <>
459: t_ra_customer_trx_lines_rec.unit_selling_price OR
460: t_jai_ar_trx_lines_rec.unit_code <>
461: t_ra_customer_trx_lines_rec.uom_code THEN
462: JAI_AR_TRX_LINES_PKG.RECALCULATE_TAX_FOR_DM(pr_old => t_jai_ar_trx_lines_rec,
463: pr_new => t_ra_customer_trx_lines_rec,
464: pv_action => lv_action,
465: pv_return_code => lv_return_code,
466: pv_return_message => lv_return_message);
471: RAISE le_error;
472: END IF;
473: END IF;
474:
475: IF (nvl(t_jai_ar_trx_lines_rec.inventory_item_id, -9999) =
476: nvl(t_ra_customer_trx_lines_rec.inventory_item_id, -9999) OR
477: t_jai_ar_trx_lines_rec.inventory_item_id IS NULL) AND
478: (t_jai_ar_trx_lines_rec.quantity <>
479: t_ra_customer_trx_lines_rec.quantity_invoiced OR
473: END IF;
474:
475: IF (nvl(t_jai_ar_trx_lines_rec.inventory_item_id, -9999) =
476: nvl(t_ra_customer_trx_lines_rec.inventory_item_id, -9999) OR
477: t_jai_ar_trx_lines_rec.inventory_item_id IS NULL) AND
478: (t_jai_ar_trx_lines_rec.quantity <>
479: t_ra_customer_trx_lines_rec.quantity_invoiced OR
480: t_jai_ar_trx_lines_rec.quantity <>
481: t_ra_customer_trx_lines_rec.quantity_credited OR
474:
475: IF (nvl(t_jai_ar_trx_lines_rec.inventory_item_id, -9999) =
476: nvl(t_ra_customer_trx_lines_rec.inventory_item_id, -9999) OR
477: t_jai_ar_trx_lines_rec.inventory_item_id IS NULL) AND
478: (t_jai_ar_trx_lines_rec.quantity <>
479: t_ra_customer_trx_lines_rec.quantity_invoiced OR
480: t_jai_ar_trx_lines_rec.quantity <>
481: t_ra_customer_trx_lines_rec.quantity_credited OR
482: t_jai_ar_trx_lines_rec.unit_selling_price <>
476: nvl(t_ra_customer_trx_lines_rec.inventory_item_id, -9999) OR
477: t_jai_ar_trx_lines_rec.inventory_item_id IS NULL) AND
478: (t_jai_ar_trx_lines_rec.quantity <>
479: t_ra_customer_trx_lines_rec.quantity_invoiced OR
480: t_jai_ar_trx_lines_rec.quantity <>
481: t_ra_customer_trx_lines_rec.quantity_credited OR
482: t_jai_ar_trx_lines_rec.unit_selling_price <>
483: t_ra_customer_trx_lines_rec.unit_selling_price OR
484: t_jai_ar_trx_lines_rec.unit_code <>
478: (t_jai_ar_trx_lines_rec.quantity <>
479: t_ra_customer_trx_lines_rec.quantity_invoiced OR
480: t_jai_ar_trx_lines_rec.quantity <>
481: t_ra_customer_trx_lines_rec.quantity_credited OR
482: t_jai_ar_trx_lines_rec.unit_selling_price <>
483: t_ra_customer_trx_lines_rec.unit_selling_price OR
484: t_jai_ar_trx_lines_rec.unit_code <>
485: t_ra_customer_trx_lines_rec.uom_code) THEN
486: JAI_AR_TRX_LINES_PKG.RECALCULATE_TAX_FOR_INV_CM(pr_old => t_jai_ar_trx_lines_rec,
480: t_jai_ar_trx_lines_rec.quantity <>
481: t_ra_customer_trx_lines_rec.quantity_credited OR
482: t_jai_ar_trx_lines_rec.unit_selling_price <>
483: t_ra_customer_trx_lines_rec.unit_selling_price OR
484: t_jai_ar_trx_lines_rec.unit_code <>
485: t_ra_customer_trx_lines_rec.uom_code) THEN
486: JAI_AR_TRX_LINES_PKG.RECALCULATE_TAX_FOR_INV_CM(pr_old => t_jai_ar_trx_lines_rec,
487: pr_new => t_ra_customer_trx_lines_rec,
488: pv_action => lv_action,
482: t_jai_ar_trx_lines_rec.unit_selling_price <>
483: t_ra_customer_trx_lines_rec.unit_selling_price OR
484: t_jai_ar_trx_lines_rec.unit_code <>
485: t_ra_customer_trx_lines_rec.uom_code) THEN
486: JAI_AR_TRX_LINES_PKG.RECALCULATE_TAX_FOR_INV_CM(pr_old => t_jai_ar_trx_lines_rec,
487: pr_new => t_ra_customer_trx_lines_rec,
488: pv_action => lv_action,
489: pv_return_code => lv_return_code,
490: pv_return_message => lv_return_message);
495: END IF;
496: END IF;
497:
498: IF (NVL(t_ra_customer_trx_lines_rec.inventory_item_id, 0) <>
499: NVL(t_jai_ar_trx_lines_rec.inventory_item_id, 0)) OR
500: (t_jai_ar_trx_lines_rec.inventory_item_id IS NULL AND
501: t_jai_ar_trx_lines_rec.Description IS NULL) THEN
502: JAI_AR_TRX_LINES_PKG.DEFAULT_TAX(pr_old => t_jai_ar_trx_lines_rec,
503: pr_new => t_ra_customer_trx_lines_rec,
496: END IF;
497:
498: IF (NVL(t_ra_customer_trx_lines_rec.inventory_item_id, 0) <>
499: NVL(t_jai_ar_trx_lines_rec.inventory_item_id, 0)) OR
500: (t_jai_ar_trx_lines_rec.inventory_item_id IS NULL AND
501: t_jai_ar_trx_lines_rec.Description IS NULL) THEN
502: JAI_AR_TRX_LINES_PKG.DEFAULT_TAX(pr_old => t_jai_ar_trx_lines_rec,
503: pr_new => t_ra_customer_trx_lines_rec,
504: pv_action => lv_action,
497:
498: IF (NVL(t_ra_customer_trx_lines_rec.inventory_item_id, 0) <>
499: NVL(t_jai_ar_trx_lines_rec.inventory_item_id, 0)) OR
500: (t_jai_ar_trx_lines_rec.inventory_item_id IS NULL AND
501: t_jai_ar_trx_lines_rec.Description IS NULL) THEN
502: JAI_AR_TRX_LINES_PKG.DEFAULT_TAX(pr_old => t_jai_ar_trx_lines_rec,
503: pr_new => t_ra_customer_trx_lines_rec,
504: pv_action => lv_action,
505: pv_return_code => lv_return_code,
498: IF (NVL(t_ra_customer_trx_lines_rec.inventory_item_id, 0) <>
499: NVL(t_jai_ar_trx_lines_rec.inventory_item_id, 0)) OR
500: (t_jai_ar_trx_lines_rec.inventory_item_id IS NULL AND
501: t_jai_ar_trx_lines_rec.Description IS NULL) THEN
502: JAI_AR_TRX_LINES_PKG.DEFAULT_TAX(pr_old => t_jai_ar_trx_lines_rec,
503: pr_new => t_ra_customer_trx_lines_rec,
504: pv_action => lv_action,
505: pv_return_code => lv_return_code,
506: pv_return_message => lv_return_message);
515: END LOOP;
516:
517: --For case that deleting existing lines
518: FOR c_ra_customer_line IN (SELECT customer_trx_line_id
519: FROM JAI_AR_TRX_LINES
520: WHERE customer_trx_line_id NOT IN
521: (SELECT customer_trx_line_id
522: FROM RA_CUSTOMER_TRX_LINES_ALL rctla
523: WHERE rctla.customer_trx_id =
527: p_event_class_rec.trx_id) LOOP
528: /*OPEN c_ra_customer_trx_lines(c_ra_customer_line.customer_trx_line_id);
529: FETCH c_ra_customer_trx_lines INTO t_ra_customer_trx_lines_rec;
530: CLOSE c_ra_customer_trx_lines;*/
531: OPEN c_jai_ar_trx_lines(c_ra_customer_line.customer_trx_line_id);
532: FETCH c_jai_ar_trx_lines
533: INTO t_jai_ar_trx_lines_rec;
534: CLOSE c_jai_ar_trx_lines;
535: JAI_AR_TRX_LINES_PKG.DELETE_AR_TRX_LINES(pr_old => t_jai_ar_trx_lines_rec,
528: /*OPEN c_ra_customer_trx_lines(c_ra_customer_line.customer_trx_line_id);
529: FETCH c_ra_customer_trx_lines INTO t_ra_customer_trx_lines_rec;
530: CLOSE c_ra_customer_trx_lines;*/
531: OPEN c_jai_ar_trx_lines(c_ra_customer_line.customer_trx_line_id);
532: FETCH c_jai_ar_trx_lines
533: INTO t_jai_ar_trx_lines_rec;
534: CLOSE c_jai_ar_trx_lines;
535: JAI_AR_TRX_LINES_PKG.DELETE_AR_TRX_LINES(pr_old => t_jai_ar_trx_lines_rec,
536: pr_new => NULL,
529: FETCH c_ra_customer_trx_lines INTO t_ra_customer_trx_lines_rec;
530: CLOSE c_ra_customer_trx_lines;*/
531: OPEN c_jai_ar_trx_lines(c_ra_customer_line.customer_trx_line_id);
532: FETCH c_jai_ar_trx_lines
533: INTO t_jai_ar_trx_lines_rec;
534: CLOSE c_jai_ar_trx_lines;
535: JAI_AR_TRX_LINES_PKG.DELETE_AR_TRX_LINES(pr_old => t_jai_ar_trx_lines_rec,
536: pr_new => NULL,
537: pv_action => lv_action,
530: CLOSE c_ra_customer_trx_lines;*/
531: OPEN c_jai_ar_trx_lines(c_ra_customer_line.customer_trx_line_id);
532: FETCH c_jai_ar_trx_lines
533: INTO t_jai_ar_trx_lines_rec;
534: CLOSE c_jai_ar_trx_lines;
535: JAI_AR_TRX_LINES_PKG.DELETE_AR_TRX_LINES(pr_old => t_jai_ar_trx_lines_rec,
536: pr_new => NULL,
537: pv_action => lv_action,
538: pv_return_code => lv_return_code,
531: OPEN c_jai_ar_trx_lines(c_ra_customer_line.customer_trx_line_id);
532: FETCH c_jai_ar_trx_lines
533: INTO t_jai_ar_trx_lines_rec;
534: CLOSE c_jai_ar_trx_lines;
535: JAI_AR_TRX_LINES_PKG.DELETE_AR_TRX_LINES(pr_old => t_jai_ar_trx_lines_rec,
536: pr_new => NULL,
537: pv_action => lv_action,
538: pv_return_code => lv_return_code,
539: pv_return_message => lv_return_message);