1: PACKAGE BODY OE_OE_TOTALS_SUMMARY AS
2: /* $Header: OEXVTOTB.pls 120.9.12000000.3 2007/06/25 08:57:53 sgoli ship $ */
3:
4: G_PKG_NAME CONSTANT VARCHAR2(30) := 'OE_OE_TOTALS_SUMMARY';
5:
1: PACKAGE BODY OE_OE_TOTALS_SUMMARY AS
2: /* $Header: OEXVTOTB.pls 120.9.12000000.3 2007/06/25 08:57:53 sgoli ship $ */
3:
4: G_PKG_NAME CONSTANT VARCHAR2(30) := 'OE_OE_TOTALS_SUMMARY';
5:
6: --rc pviprana Global table to hold the recurring amounts of an order level modifier grouped by periodicity
7: G_RECURRING_AMOUNTS_TBL recurring_amounts_tbl_type;
8:
479: --
480: l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
481: --
482: BEGIN
483: OE_OE_TOTALS_SUMMARY.Global_Totals
484: (
485: p_header_id
486: );
487: p_subtotal:=OE_OE_TOTALS_SUMMARY.Order_Subtotals
483: OE_OE_TOTALS_SUMMARY.Global_Totals
484: (
485: p_header_id
486: );
487: p_subtotal:=OE_OE_TOTALS_SUMMARY.Order_Subtotals
488: (
489: p_header_id
490: );
491:
488: (
489: p_header_id
490: );
491:
492: p_discount:=OE_OE_TOTALS_SUMMARY.Price_Adjustments
493: (
494: p_header_id
495: );
496: p_charges:=OE_OE_TOTALS_SUMMARY.Charges
492: p_discount:=OE_OE_TOTALS_SUMMARY.Price_Adjustments
493: (
494: p_header_id
495: );
496: p_charges:=OE_OE_TOTALS_SUMMARY.Charges
497: (
498: p_header_id
499: );
500: p_tax:=OE_OE_TOTALS_SUMMARY.Taxes
496: p_charges:=OE_OE_TOTALS_SUMMARY.Charges
497: (
498: p_header_id
499: );
500: p_tax:=OE_OE_TOTALS_SUMMARY.Taxes
501: (
502: p_header_id
503: );
504:
524: l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
525: --
526: BEGIN
527:
528: OE_OE_TOTALS_SUMMARY.Global_Totals(p_header_id);
529:
530: l_subtotal:=OE_OE_TOTALS_SUMMARY.Order_Subtotals(p_header_id);
531:
532: -- performance bug 4060810: disabling this calculation as it is not used
526: BEGIN
527:
528: OE_OE_TOTALS_SUMMARY.Global_Totals(p_header_id);
529:
530: l_subtotal:=OE_OE_TOTALS_SUMMARY.Order_Subtotals(p_header_id);
531:
532: -- performance bug 4060810: disabling this calculation as it is not used
533: -- l_discount:=OE_OE_TOTALS_SUMMARY.Price_Adjustments(p_header_id);
534: l_charges:=OE_OE_TOTALS_SUMMARY.Charges(p_header_id);
529:
530: l_subtotal:=OE_OE_TOTALS_SUMMARY.Order_Subtotals(p_header_id);
531:
532: -- performance bug 4060810: disabling this calculation as it is not used
533: -- l_discount:=OE_OE_TOTALS_SUMMARY.Price_Adjustments(p_header_id);
534: l_charges:=OE_OE_TOTALS_SUMMARY.Charges(p_header_id);
535: l_tax:=OE_OE_TOTALS_SUMMARY.Taxes(p_header_id);
536:
537: RETURN (l_subtotal + l_charges + l_tax);
530: l_subtotal:=OE_OE_TOTALS_SUMMARY.Order_Subtotals(p_header_id);
531:
532: -- performance bug 4060810: disabling this calculation as it is not used
533: -- l_discount:=OE_OE_TOTALS_SUMMARY.Price_Adjustments(p_header_id);
534: l_charges:=OE_OE_TOTALS_SUMMARY.Charges(p_header_id);
535: l_tax:=OE_OE_TOTALS_SUMMARY.Taxes(p_header_id);
536:
537: RETURN (l_subtotal + l_charges + l_tax);
538:
531:
532: -- performance bug 4060810: disabling this calculation as it is not used
533: -- l_discount:=OE_OE_TOTALS_SUMMARY.Price_Adjustments(p_header_id);
534: l_charges:=OE_OE_TOTALS_SUMMARY.Charges(p_header_id);
535: l_tax:=OE_OE_TOTALS_SUMMARY.Taxes(p_header_id);
536:
537: RETURN (l_subtotal + l_charges + l_tax);
538:
539: EXCEPTION
820: l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
821: --
822: BEGIN
823: IF l_debug_level > 0 THEN
824: oe_debug_pub.add( 'ENTERING OE_OE_TOTALS_SUMMARY.GET_ORDER_AMOUNT' ) ;
825: END IF;
826:
827: -- combining 2 SQLs into one for performance
828: SELECT SUM(DECODE(line_category_code, 'RETURN', 0, nvl(Ordered_Quantity,0)*(unit_list_price))),
844: IF l_debug_level > 0 THEN
845: oe_debug_pub.add( ' ORDER AMOUNT:='||L_ORDER_AMOUNT ) ;
846: END IF;
847: IF l_debug_level > 0 THEN
848: oe_debug_pub.add( 'LEAVING OE_OE_TOTALS_SUMMARY.GET_ORDER_AMOUNT' ) ;
849: END IF;
850:
851: return l_order_amount;
852: EXCEPTION
1098: --
1099: BEGIN
1100:
1101: IF l_debug_level > 0 THEN
1102: OE_DEBUG_PUB.ADD('ENTERING OE_OE_TOTALS_SUMMARY.REC_ORDER_TOTALS',1);
1103: OE_DEBUG_PUB.ADD('INPUTS TO THE API',1);
1104: OE_DEBUG_PUB.ADD('p_header_id :'||p_header_id,1);
1105: OE_DEBUG_PUB.ADD('p_charge_periodicity_code :'||p_charge_periodicity_code,1);
1106: END IF;
1104: OE_DEBUG_PUB.ADD('p_header_id :'||p_header_id,1);
1105: OE_DEBUG_PUB.ADD('p_charge_periodicity_code :'||p_charge_periodicity_code,1);
1106: END IF;
1107:
1108: OE_OE_TOTALS_SUMMARY.Global_Rec_Totals(p_header_id => p_header_id,
1109: p_charge_periodicity_code => p_charge_periodicity_code);
1110:
1111: x_tax := g_rec_tax_value;
1112: x_subtotal := g_rec_total_extended_price;
1110:
1111: x_tax := g_rec_tax_value;
1112: x_subtotal := g_rec_total_extended_price;
1113:
1114: x_discount:=OE_OE_TOTALS_SUMMARY.Rec_Price_Adjustments
1115: (
1116: p_header_id,
1117: p_charge_periodicity_code
1118: );
1116: p_header_id,
1117: p_charge_periodicity_code
1118: );
1119:
1120: x_charges:=OE_OE_TOTALS_SUMMARY.Rec_Charges
1121: (
1122: p_header_id,
1123: p_charge_periodicity_code
1124: );
1125:
1126: x_total := x_tax + x_subtotal + x_charges;
1127:
1128: IF l_debug_level > 0 THEN
1129: OE_DEBUG_PUB.ADD('EXITING OE_OE_TOTALS_SUMMARY.REC_ORDER_TOTALS',1);
1130: END IF;
1131:
1132: END REC_ORDER_TOTALS;
1133:
1134:
1135: PROCEDURE GET_RECURRING_TOTALS
1136: (
1137: p_header_id IN NUMBER,
1138: x_rec_charges_tbl IN OUT NOCOPY OE_OE_TOTALS_SUMMARY.Rec_Charges_Tbl_Type)
1139: IS
1140: CURSOR C_rec_charge(g_header_id IN NUMBER) IS
1141: select distinct charge_periodicity_code
1142: from oe_order_lines_all
1153:
1154: BEGIN
1155:
1156: IF l_debug_level > 0 THEN
1157: OE_DEBUG_PUB.ADD('ENTERING OE_OE_TOTALS_SUMMARY.GET_RECURRING_TOTALS',1);
1158: OE_DEBUG_PUB.ADD('INPUTS TO THE API',1);
1159: OE_DEBUG_PUB.ADD('p_header_id :'||p_header_id,1);
1160: END IF;
1161:
1172: x_rec_charges_tbl(i).charge_periodicity_code := l_code;
1173: x_rec_charges_tbl(i).charge_periodicity_meaning := OE_ID_TO_VALUE.Charge_Periodicity(l_code);
1174:
1175:
1176: OE_OE_TOTALS_SUMMARY.GLOBAL_Rec_TOTALS
1177: (
1178: p_header_id => p_header_id,
1179: p_charge_periodicity_code => l_code
1180: );
1183:
1184: x_rec_charges_tbl(i).rec_tax := x_tax;
1185: x_rec_charges_tbl(i).rec_subtotal := x_subtotal;
1186:
1187: x_charges := OE_OE_TOTALS_SUMMARY.ReC_charges(p_header_id => p_header_id,
1188: p_charge_periodicity_code => l_code);
1189: x_rec_charges_tbl(i).rec_charges := x_charges;
1190: x_rec_charges_tbl(i).rec_total := x_subtotal + x_tax + x_charges;
1191:
1200: END LOOP;
1201: CLOSE C_rec_charge;
1202:
1203: IF l_debug_level > 0 THEN
1204: OE_DEBUG_PUB.ADD('EXITING OE_OE_TOTALS_SUMMARY.GET_RECURRING_TOTALS');
1205: END IF;
1206:
1207: EXCEPTION
1208:
1215:
1216: PROCEDURE GET_UI_RECURRING_TOTALS
1217: (
1218: p_header_id IN NUMBER,
1219: x_rec_charges_tbl IN OUT NOCOPY OE_OE_TOTALS_SUMMARY.Rec_Charges_Tbl_Type)
1220: IS
1221: CURSOR C_rec_charge(g_header_id IN NUMBER) IS
1222: select distinct nvl(charge_periodicity_code,'ONE')
1223: from oe_order_lines_all
1234:
1235: BEGIN
1236:
1237: IF l_debug_level > 0 THEN
1238: OE_DEBUG_PUB.ADD('ENTERING OE_OE_TOTALS_SUMMARY.GET_RECURRING_TOTALS',1);
1239: OE_DEBUG_PUB.ADD('INPUTS TO THE API',1);
1240: OE_DEBUG_PUB.ADD('p_header_id :'||p_header_id,1);
1241: END IF;
1242:
1254: IF (l_code <> 'ONE') THEN
1255: x_rec_charges_tbl(i).charge_periodicity_meaning := OE_ID_TO_VALUE.Charge_Periodicity(l_code);
1256: END IF;
1257:
1258: OE_OE_TOTALS_SUMMARY.GLOBAL_Rec_TOTALS
1259: (
1260: p_header_id => p_header_id,
1261: p_charge_periodicity_code => l_code
1262: );
1265:
1266: x_rec_charges_tbl(i).rec_tax := x_tax;
1267: x_rec_charges_tbl(i).rec_subtotal := x_subtotal;
1268:
1269: x_charges := OE_OE_TOTALS_SUMMARY.ReC_charges(p_header_id => p_header_id,
1270: p_charge_periodicity_code => l_code);
1271: x_rec_charges_tbl(i).rec_charges := x_charges;
1272: x_rec_charges_tbl(i).rec_total := nvl(x_subtotal,0) + nvl(x_tax,0) + nvl(x_charges,0);
1273:
1282: END LOOP;
1283: CLOSE C_rec_charge;
1284:
1285: IF l_debug_level > 0 THEN
1286: OE_DEBUG_PUB.ADD('EXITING OE_OE_TOTALS_SUMMARY.GET_RECURRING_TOTALS');
1287: END IF;
1288:
1289: EXCEPTION
1290:
1299: (
1300: p_header_id IN NUMBER,
1301: p_line_id IN NUMBER,
1302: p_line_number IN NUMBER,
1303: x_rec_charges_tbl IN OUT NOCOPY OE_OE_TOTALS_SUMMARY.Rec_Charges_Tbl_Type
1304: )
1305: IS
1306:
1307: CURSOR C_rec_charge(g_header_id IN NUMBER,p_line_number IN NUMBER) IS
1344:
1345: BEGIN
1346:
1347: IF l_debug_level > 0 THEN
1348: OE_DEBUG_PUB.ADD('ENTERING OE_OE_TOTALS_SUMMARY.GET_MODEL_RECURRING_TOTALS',1);
1349: OE_DEBUG_PUB.ADD('INPUTS TO THE API',1);
1350: OE_DEBUG_PUB.ADD('p_heder_id :'||p_header_id,1);
1351: OE_DEBUG_PUB.ADD('p_line_id_ :'||p_line_id,1);
1352: OE_DEBUG_PUB.ADD('p_line_number :'||p_line_number,1);
1444: END LOOP;
1445: CLOSE C_rec_charge;
1446:
1447: IF l_debug_level > 0 THEN
1448: OE_DEBUG_PUB.ADD('EXITING OE_OE_TOTALS_SUMMARY.GET_MODEL_RECURRING_TOTALS',1);
1449: END IF;
1450:
1451: END Get_Model_Recurring_Totals;
1452:
1472:
1473: BEGIN
1474:
1475: IF l_debug_level > 0 THEN
1476: oe_debug_pub.add('ENTERING OE_OE_TOTALS_SUMMARY.SET_ADJ_RECURRING_AMOUNTS');
1477: END IF;
1478: IF p_price_adjustment_id IS NULL THEN
1479: RETURN;
1480: ELSE
1525: END LOOP;
1526: CLOSE c_charge_periodicity;
1527:
1528: IF l_debug_level > 0 THEN
1529: oe_debug_pub.add('EXITING OE_OE_TOTALS_SUMMARY.SET_ADJ_RECURRING_AMOUNTS');
1530: END IF;
1531:
1532: END SET_ADJ_RECURRING_AMOUNTS;
1533:
1536: IS
1537: l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1538: BEGIN
1539: IF l_debug_level > 0 THEN
1540: oe_debug_pub.add('ENTERING OE_OE_TOTALS_SUMMARY.GET_ADJ_RECURRING_AMOUNTS');
1541: END IF;
1542:
1543: x_recurring_amounts_tbl := G_RECURRING_AMOUNTS_TBL;
1544:
1542:
1543: x_recurring_amounts_tbl := G_RECURRING_AMOUNTS_TBL;
1544:
1545: IF l_debug_level > 0 THEN
1546: oe_debug_pub.add('EXITING OE_OE_TOTALS_SUMMARY.GET_ADJ_RECURRING_AMOUNTS');
1547: END IF;
1548: END;
1549:
1550: --rc pviprana end
1565: oe_debug_pub.add('Header_id = '||p_header_id );
1566: oe_debug_pub.add('Charge periodicity code = '||p_charge_periodicity_code );
1567: END IF;
1568:
1569: OE_OE_TOTALS_SUMMARY.GLOBAL_Rec_TOTALS
1570: (
1571: p_header_id => p_header_id,
1572: p_charge_periodicity_code => p_charge_periodicity_code
1573: );
1605: oe_debug_pub.add('Header_id = '||p_header_id );
1606: oe_debug_pub.add('Charge periodicity code = '||p_charge_periodicity_code );
1607: END IF;
1608:
1609: OE_OE_TOTALS_SUMMARY.GLOBAL_Rec_TOTALS
1610: (
1611: p_header_id => p_header_id,
1612: p_charge_periodicity_code => p_charge_periodicity_code
1613: );
1649: oe_debug_pub.add('Header_id = '||p_header_id );
1650: oe_debug_pub.add('Charge periodicity code = '||p_charge_periodicity_code );
1651: END IF;
1652:
1653: OE_OE_TOTALS_SUMMARY.GLOBAL_Rec_TOTALS
1654: (
1655: p_header_id => p_header_id,
1656: p_charge_periodicity_code => p_charge_periodicity_code
1657: );
1657: );
1658:
1659: l_taxes:= g_rec_tax_value;
1660: l_subtotals := G_REC_TOTAL_EXTENDED_PRICE;
1661: l_charges:= OE_OE_TOTALS_SUMMARY.ReC_charges(p_header_id => p_header_id,
1662: p_charge_periodicity_code => p_charge_periodicity_code );
1663:
1664: RETURN(l_taxes + l_subtotals + l_charges);
1665:
1678: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1679:
1680: END PRN_REC_TOTALS;
1681:
1682: END OE_OE_TOTALS_SUMMARY;
1683: