66: THEN
67:
68: l_return_status := FND_API.G_RET_STS_ERROR;
69:
70: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
71: THEN
72:
73: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
74: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','list line id');
71: THEN
72:
73: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
74: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','list line id');
75: OE_MSG_PUB.Add;
76:
77: END IF;
78:
79: END IF;
93:
94: l_return_status := FND_API.G_RET_STS_ERROR;
95:
96: FND_MESSAGE.SET_NAME('QP','QP_CANNOT_UPDATE_LIST_LINE_TYP');
97: OE_MSG_PUB.Add;
98:
99: END IF;
100:
101: IF p_old_MODIFIERS_rec.modifier_level_code IS NOT NULL
105:
106: l_return_status := FND_API.G_RET_STS_ERROR;
107:
108: FND_MESSAGE.SET_NAME('QP','QP_CANNOT_UPDATE_MOD_LVL');
109: OE_MSG_PUB.Add;
110:
111: END IF;
112:
113: IF p_old_MODIFIERS_rec.list_line_no IS NOT NULL
117:
118: l_return_status := FND_API.G_RET_STS_ERROR;
119:
120: FND_MESSAGE.SET_NAME('QP','QP_CANNOT_UPDATE_LIST_LINE_NO');
121: OE_MSG_PUB.Add;
122:
123: END IF;
124: IF (p_old_MODIFIERS_rec.proration_type_code IS NOT NULL OR
125: p_old_MODIFIERS_rec.list_line_type_code = 'FREIGHT_CHARGE')
130:
131: FND_MESSAGE.SET_NAME('QP','QP_CANNOT_UPDATE_ATTRIBUTE');
132: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Proration Type Code');
133:
134: OE_MSG_PUB.Add;
135:
136: END IF;
137: END IF;
138:
167: l_return_status := FND_API.G_RET_STS_ERROR;
168:
169: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
170: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',QP_PRC_UTIL.Get_Attribute_Name('LIST_LINE_TYPE_CODE')); -- Fix For Bug-1974413
171: OE_MSG_PUB.Add;
172:
173: END IF;
174:
175: IF l_gsa_indicator IS NULL
195: oe_debug_pub.add('list line type code invalid');
196: l_return_status := FND_API.G_RET_STS_ERROR;
197:
198: FND_MESSAGE.SET_NAME('QP','QP_INVALID_LIST_LINE_TYPE');
199: OE_MSG_PUB.Add;
200:
201: END IF;
202:
203: -- For bug 2363065, raise the error in basic pricing if not called from FTE
214: oe_debug_pub.add('list line type code invalid');
215: l_return_status := FND_API.G_RET_STS_ERROR;
216:
217: FND_MESSAGE.SET_NAME('QP','QP_INVALID_LIST_LINE_TYPE');
218: OE_MSG_PUB.Add;
219:
220: END IF;
221: END IF;
222:
229:
230: l_return_status := FND_API.G_RET_STS_ERROR;
231:
232: FND_MESSAGE.SET_NAME('QP','QP_INVALID_LIST_LINE_TYPE');
233: OE_MSG_PUB.Add;
234:
235: END IF;
236: END IF;
237:
263: THEN
264:
265: l_return_status := FND_API.G_RET_STS_ERROR;
266: FND_MESSAGE.SET_NAME('QP','QP_MOD_DATES_WITHIN_MODLIST');
267: OE_MSG_PUB.Add;
268:
269: END IF;
270:
271: IF l_end_date_active IS NOT NULL
274: THEN
275:
276: l_return_status := FND_API.G_RET_STS_ERROR;
277: FND_MESSAGE.SET_NAME('QP','QP_MOD_DATES_WITHIN_MODLIST');
278: OE_MSG_PUB.Add;
279:
280: END IF;
281:
282: IF l_start_date_active IS NOT NULL
285: THEN
286:
287: l_return_status := FND_API.G_RET_STS_ERROR;
288: FND_MESSAGE.SET_NAME('QP','QP_MOD_DATES_WITHIN_MODLIST');
289: OE_MSG_PUB.Add;
290:
291: END IF;
292:
293: IF l_end_date_active IS NOT NULL
296: THEN
297:
298: l_return_status := FND_API.G_RET_STS_ERROR;
299: FND_MESSAGE.SET_NAME('QP','QP_MOD_DATES_WITHIN_MODLIST');
300: OE_MSG_PUB.Add;
301:
302: END IF;
303: END IF; -- list_line_type_code <> 'PMR'
304:
312: THEN
313:
314: l_return_status := FND_API.G_RET_STS_ERROR;
315: FND_MESSAGE.SET_NAME('QP','QP_FRT_CHRG_ALLOW_CHRGS');
316: OE_MSG_PUB.Add;
317:
318: END IF;
319:
320: /* If Ask_For_Flag is entered, list_line_no is mandatory for these list types */
333: THEN
334: l_return_status := FND_API.G_RET_STS_ERROR;
335:
336: FND_MESSAGE.SET_NAME('QP','QP_LIST_NO_MAND_IF_ASK_FOR');
337: OE_MSG_PUB.Add;
338:
339: END IF;
340:
341: /* List_line_no is mandatory for Coupon Issue */
347: THEN
348: l_return_status := FND_API.G_RET_STS_ERROR;
349:
350: FND_MESSAGE.SET_NAME('QP','QP_LIST_NO_MAND_FOR_CIE');
351: OE_MSG_PUB.Add;
352:
353: END IF;
354:
355: --dbms_output.put_line('1');
374: l_return_status := FND_API.G_RET_STS_ERROR;
375:
376: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
377: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',QP_PRC_UTIL.Get_Attribute_Name('AUTOMATIC_FLAG')); -- Fix For Bug-1974413
378: OE_MSG_PUB.Add;
379:
380: END IF;
381:
382: IF p_MODIFIERS_rec.list_line_type_code <> 'PMR' THEN
388: oe_debug_pub.add('auto flag invalid');
389: l_return_status := FND_API.G_RET_STS_ERROR;
390:
391: FND_MESSAGE.SET_NAME('QP','QP_AUTO_FLAG_Y_OR_N');
392: OE_MSG_PUB.Add;
393:
394: END IF;
395:
396: /* Automatic flag is mandatory for all Benefit lines */
403: l_return_status := FND_API.G_RET_STS_ERROR;
404:
405: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
406: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',QP_PRC_UTIL.Get_Attribute_Name('AUTOMATIC_FLAG')); -- Fix For Bug-1974413
407: OE_MSG_PUB.Add;
408:
409: END IF;
410:
411: /* Automatic Flag must be Y for OID, PRG, CIE and PBH */
421:
422: l_return_status := FND_API.G_RET_STS_ERROR;
423:
424: FND_MESSAGE.SET_NAME('QP','QP_AUTO_FLAG_MUST_BE_Y');
425: OE_MSG_PUB.Add;
426:
427: END IF;
428:
429: /* Only Discount, Surcharge and Freight Charge can be manual or automatic. Other Discount types can always be automatic */
439:
440: l_return_status := FND_API.G_RET_STS_ERROR;
441:
442: FND_MESSAGE.SET_NAME('QP','QP_DIS_SUR_FREIGHT_MANUAL');
443: OE_MSG_PUB.Add;
444:
445: END IF;
446:
447: END IF; -- list_line_type_code <> 'PMR'
461: l_return_status := FND_API.G_RET_STS_ERROR;
462:
463: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
464: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',QP_PRC_UTIL.Get_Attribute_Name('MODIFIER_LEVEL_CODE')); --Fix For Bug-1974413
465: OE_MSG_PUB.Add;
466:
467:
468: ELSIF (p_MODIFIERS_rec.modifier_level_code = 'ORDER'
469: AND p_MODIFIERS_rec.pricing_group_sequence IS NOT NULL
474: /* Bug 1957062 Check Bypassed for Basic Pricing */
475:
476: l_return_status := FND_API.G_RET_STS_ERROR;
477: FND_MESSAGE.SET_NAME('QP','QP_ORD_LVL_NULL_BUCKET');
478: OE_MSG_PUB.Add;
479:
480:
481: /* Modifier Level Code can be LINE, ORDER or LINEGROUP */
482:
488: oe_debug_pub.add('modifier level invalid');
489: l_return_status := FND_API.G_RET_STS_ERROR;
490:
491: FND_MESSAGE.SET_NAME('QP','QP_MOD_LVL_LN_LNGRP_OR_ORD');
492: OE_MSG_PUB.Add;
493:
494: END IF;
495:
496: /* Modifier Level Code can be LINE or ORDER for list line type of Freight Charge and Terms Substitution */
503:
504: l_return_status := FND_API.G_RET_STS_ERROR;
505:
506: FND_MESSAGE.SET_NAME('QP','QP_MOD_LVL_LN_OR_ORD');
507: OE_MSG_PUB.Add;
508:
509: END IF;
510:
511: /* Modifier Level Code can be LINE or LINEGROUP for list line type of Price Break Header and Other Item Discount */
522: FND_MESSAGE.SET_NAME('QP','QP_MOD_LVL_LN_OR_LNGRP');
523: ELSE
524: FND_MESSAGE.SET_NAME('QP','QP_MOD_LVL_LN');
525: END IF;
526: OE_MSG_PUB.Add;
527:
528: END IF;
529:
530: /* Modifier Level Code can be LINE for list line type of Item Upgrade */
535:
536: l_return_status := FND_API.G_RET_STS_ERROR;
537:
538: FND_MESSAGE.SET_NAME('QP','QP_MOD_LVL_LN');
539: OE_MSG_PUB.Add;
540:
541: END IF;
542:
543: /* Modifier Level Code can be LINE for GSA discounts */
548:
549: l_return_status := FND_API.G_RET_STS_ERROR;
550:
551: FND_MESSAGE.SET_NAME('QP','QP_MOD_LVL_LN');
552: OE_MSG_PUB.Add;
553:
554: END IF;
555:
556: END IF; -- list_line_type_code <> 'PMR' and list_line_type_code <> 'RLTD'
568: l_return_status := FND_API.G_RET_STS_ERROR;
569:
570: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
571: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',QP_PRC_UTIL.Get_Attribute_Name('PRICE_BY_FORMULA_ID')); -- Fix For Bug-1974413
572: OE_MSG_PUB.Add;
573:
574: END IF;
575:
576: /* Arithmetic Operator is mandatory for these Qualifier list lines */
588: l_return_status := FND_API.G_RET_STS_ERROR;
589:
590: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
591: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',QP_PRC_UTIL.Get_Attribute_Name('ARITHMETIC_OPERATOR')); -- Fix For Bug-1974413
592: OE_MSG_PUB.Add;
593:
594: END IF;
595:
596: /* Arithmetic Operator is mandatory for these Benefit list lines */
611: l_return_status := FND_API.G_RET_STS_ERROR;
612:
613: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
614: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',QP_PRC_UTIL.Get_Attribute_Name('ARITHMETIC_OPERATOR')); -- Fix For Bug-1974413
615: OE_MSG_PUB.Add;
616:
617: END IF;
618:
619: /* For Order level discounts, only lumpsum is allowed for Freight Charge */
626: oe_debug_pub.add('arith op mand');
627: l_return_status := FND_API.G_RET_STS_ERROR;
628:
629: FND_MESSAGE.SET_NAME('QP','QP_LUMPSUM_FOR_ORDER');
630: OE_MSG_PUB.Add;
631:
632: END IF;
633:
634: /* Arithmetic Operators applicable for list line type FREIGHT_CHARGE are % and AMT modified by spgopal also lumpsum for freight charge at line level*/
642:
643: l_return_status := FND_API.G_RET_STS_ERROR;
644:
645: FND_MESSAGE.SET_NAME('QP','QP_DIS_PERCNT_OR_AMT');
646: OE_MSG_PUB.Add;
647:
648: END IF;
649:
650: /* For Order level discounts, only % is allowed for all discounts except for Freight Charge */
657: oe_debug_pub.add('arith op mand');
658: l_return_status := FND_API.G_RET_STS_ERROR;
659:
660: FND_MESSAGE.SET_NAME('QP','QP_PERCENT_FOR_ORDER');
661: OE_MSG_PUB.Add;
662:
663: END IF;
664:
665: /* Operand is mandatory for these Benefit list lines */
681: l_return_status := FND_API.G_RET_STS_ERROR;
682:
683: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
684: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',QP_PRC_UTIL.Get_Attribute_Name('PRICE_BY_FORMULA_ID')); -- Fix For Bug-1974413
685: OE_MSG_PUB.Add;
686:
687: END IF;
688:
689:
695:
696: l_return_status := FND_API.G_RET_STS_ERROR;
697:
698: FND_MESSAGE.SET_NAME('QP','QP_GSA_NEWPRICE_ONLY');
699: OE_MSG_PUB.Add;
700:
701: END IF;
702:
703: /* Arithmetic Operator can be %, AMT or NEWPRICE */
714: oe_debug_pub.add('arith op invalid');
715: l_return_status := FND_API.G_RET_STS_ERROR;
716:
717: FND_MESSAGE.SET_NAME('QP','QP_DIS_PERCNT_AMT_OR_NEWPRICE');
718: OE_MSG_PUB.Add;
719:
720: END IF;
721: END IF; -- list_line_type_code <> 'PMR'
722:
744: l_return_status := FND_API.G_RET_STS_ERROR;
745:
746: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
747: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',QP_PRC_UTIL.Get_Attribute_Name('OVERRIDE_FLAG')); -- Fix For Bug-1974413
748: OE_MSG_PUB.Add;
749:
750: END IF;
751:
752: /* Override Flag can be Y or N */
759: oe_debug_pub.add('override flag invalid');
760: l_return_status := FND_API.G_RET_STS_ERROR;
761:
762: FND_MESSAGE.SET_NAME('QP','QP_OVERRIDE_FLAG_Y_OR_N');
763: OE_MSG_PUB.Add;
764:
765: END IF;
766:
767: /* Override flag is mandatory for all Benefit lines */
774: l_return_status := FND_API.G_RET_STS_ERROR;
775:
776: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
777: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',QP_PRC_UTIL.Get_Attribute_Name('OVERRIDE_FLAG')); -- Fix For Bug-1974413
778: OE_MSG_PUB.Add;
779:
780: END IF;
781:
782: /* Override Flag must be N for OID, PRG, CIE */
792:
793: l_return_status := FND_API.G_RET_STS_ERROR;
794:
795: FND_MESSAGE.SET_NAME('QP','QP_OVERRIDE_FLAG_MUST_BE_N');
796: OE_MSG_PUB.Add;
797:
798:
799: END IF;
800:
820: l_return_status := FND_API.G_RET_STS_ERROR;
821:
822: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
823: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',QP_PRC_UTIL.Get_Attribute_Name('PRINT_ON_INVOICE_FLAG')); -- Fix For Bug-1974413
824: OE_MSG_PUB.Add;
825:
826: END IF;
827:
828: /* Prine on Invoice Flag can be Y or N */
835: oe_debug_pub.add('print flag invalid');
836: l_return_status := FND_API.G_RET_STS_ERROR;
837:
838: FND_MESSAGE.SET_NAME('QP','QP_PRNT_INV_FLAG_Y_OR_N');
839: OE_MSG_PUB.Add;
840:
841: END IF;
842:
843:
854: oe_debug_pub.add('start date after end date');
855: l_return_status := FND_API.G_RET_STS_ERROR;
856:
857: FND_MESSAGE.SET_NAME('QP','QP_STRT_DATE_BFR_END_DATE');
858: OE_MSG_PUB.Add;
859:
860: END IF;
861:
862: --dbms_output.put_line('6');
875: l_return_status := FND_API.G_RET_STS_ERROR;
876:
877: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
878: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Terms Attr and Terms Value');
879: OE_MSG_PUB.Add;
880:
881: END IF;
882:
883: oe_debug_pub.add('before valida subs');
905: If (l_context_flag = 'N' AND l_error_code = 7) -- invalid context
906: Then
907: l_return_status := FND_API.G_RET_STS_ERROR;
908:
909: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
910: THEN
911:
912: FND_MESSAGE.SET_NAME('QP','QP_INVALID_SUBSTITUTION_CONT' );
913: OE_MSG_PUB.Add;
909: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
910: THEN
911:
912: FND_MESSAGE.SET_NAME('QP','QP_INVALID_SUBSTITUTION_CONT' );
913: OE_MSG_PUB.Add;
914: END IF;
915:
916: End If;
917:
918: If (l_attribute_flag = 'N' AND l_error_code = 8) -- invalid attribute
919: Then
920: l_return_status := FND_API.G_RET_STS_ERROR;
921:
922: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
923: THEN
924:
925: FND_MESSAGE.SET_NAME('QP','QP_INVALID_SUBSTITUTION_ATTR' );
926: OE_MSG_PUB.Add;
922: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
923: THEN
924:
925: FND_MESSAGE.SET_NAME('QP','QP_INVALID_SUBSTITUTION_ATTR' );
926: OE_MSG_PUB.Add;
927: END IF;
928:
929: End If;
930:
931: If (l_value_flag = 'N' AND l_error_code = 9) -- invalid value
932: Then
933: l_return_status := FND_API.G_RET_STS_ERROR;
934:
935: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
936: THEN
937:
938: FND_MESSAGE.SET_NAME('QP','QP_INVALID_SUBSTITUTION_VALUE' );
939: OE_MSG_PUB.Add;
935: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
936: THEN
937:
938: FND_MESSAGE.SET_NAME('QP','QP_INVALID_SUBSTITUTION_VALUE' );
939: OE_MSG_PUB.Add;
940: END IF;
941:
942: End If;
943:
965: l_return_status := FND_API.G_RET_STS_ERROR;
966:
967: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
968: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Prod Attr Value and Upgrade Item');
969: OE_MSG_PUB.Add;
970:
971: ELSE
972:
973: BEGIN
988:
989: l_return_status := FND_API.G_RET_STS_ERROR;
990:
991: FND_MESSAGE.SET_NAME('QP','QP_INVALID_ITEM_UPGRD');
992: OE_MSG_PUB.Add;
993:
994: END;
995:
996: END IF;
1016: --dbms_output.put_line('formula id is applicable with DIS,SUR ');
1017: l_return_status := FND_API.G_RET_STS_ERROR;
1018:
1019: FND_MESSAGE.SET_NAME('QP','QP_DIS_SUR_OR_FRT_FOR_FORMULA');
1020: OE_MSG_PUB.Add;
1021:
1022: END IF;
1023:
1024: /* The Get Condition of OID and PRG cannot have formula attached to it */
1030:
1031: l_return_status := FND_API.G_RET_STS_ERROR;
1032:
1033: FND_MESSAGE.SET_NAME('QP','QP_FORMULA_NOT_IN_GET');
1034: OE_MSG_PUB.Add;
1035:
1036: END IF;
1037:
1038: /* THE CODE BELOW CHANGED BY SPGOPAL === 05/15/00 FOR REASONS AS MENTIONED */
1052: oe_debug_pub.add('arith oper % or AMT invalid');
1053: l_return_status := FND_API.G_RET_STS_ERROR;
1054:
1055: FND_MESSAGE.SET_NAME('QP','QP_DIS_PERCNT_OR_AMT');
1056: OE_MSG_PUB.Add;
1057:
1058: END IF;
1059:
1060: --dbms_output.put_line('9');
1082:
1083: l_return_status := FND_API.G_RET_STS_ERROR;
1084:
1085: FND_MESSAGE.SET_NAME('QP','QP_FORMULA_NOT_FOUND');
1086: OE_MSG_PUB.Add;
1087:
1088: END;
1089: END IF; --price_by_formula_id IS NOT NULL
1090:
1098: --dbms_output.put_line('no operand if formula is given = '|| to_char(p_MODIFIERS_rec.operand));
1099: l_return_status := FND_API.G_RET_STS_ERROR;
1100:
1101: FND_MESSAGE.SET_NAME('QP','QP_OPERAND_OR_FORMULA');
1102: OE_MSG_PUB.Add;
1103: END IF;
1104: */
1105:
1106: oe_debug_pub.add('77');
1118: l_return_status := FND_API.G_RET_STS_ERROR;
1119:
1120: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
1121: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',QP_PRC_UTIL.Get_Attribute_Name('PRICE_BREAK_TYPE_CODE')); --Fix For Bug-1974413
1122: OE_MSG_PUB.Add;
1123:
1124: END IF;
1125:
1126: END IF; --list_line_type_code = 'PBH'
1138: oe_debug_pub.add('price brek type can be point or range');
1139: l_return_status := FND_API.G_RET_STS_ERROR;
1140:
1141: FND_MESSAGE.SET_NAME('QP','QP_PRCBRK_POINT_OR_RANGE');
1142: OE_MSG_PUB.Add;
1143:
1144: END IF;
1145:
1146:
1157:
1158: l_return_status := FND_API.G_RET_STS_ERROR;
1159:
1160: FND_MESSAGE.SET_NAME('QP','QP_RECURRING_NOT_ALLOWED');
1161: OE_MSG_PUB.Add;
1162:
1163: END IF;
1164: END IF;
1165:
1175:
1176: l_return_status := FND_API.G_RET_STS_ERROR;
1177:
1178: FND_MESSAGE.SET_NAME('QP','QP_LUMPSUM_RECUR_DIS_SUR');
1179: OE_MSG_PUB.Add;
1180:
1181: END IF;
1182:
1183: /* The only price break types allowed for a Qualifier list line are Point and Recurring */
1193:
1194: l_return_status := FND_API.G_RET_STS_ERROR;
1195:
1196: FND_MESSAGE.SET_NAME('QP','QP_BREAK_TYPE_POINT_OR_RECUR');
1197: OE_MSG_PUB.Add;
1198:
1199: END IF;
1200: END IF;
1201:
1211:
1212: l_return_status := FND_API.G_RET_STS_ERROR;
1213:
1214: FND_MESSAGE.SET_NAME('QP','QP_BREAK_TYPE_POINT_OR_RANGE');
1215: OE_MSG_PUB.Add;
1216:
1217: END IF;
1218: END IF;
1219:
1229:
1230: l_return_status := FND_API.G_RET_STS_ERROR;
1231:
1232: FND_MESSAGE.SET_NAME('QP','QP_RECURRING_NOT_ALLOWED');
1233: OE_MSG_PUB.Add;
1234:
1235: END IF;
1236: END IF; --list_line_type_code <> 'PMR'
1237:
1256: l_return_status := FND_API.G_RET_STS_ERROR;
1257:
1258: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
1259: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',QP_PRC_UTIL.Get_Attribute_Name('PRODUCT_PRECEDENCE')); -- Fix For Bug-1974413
1260: OE_MSG_PUB.Add;
1261:
1262: END IF;
1263:
1264: END IF;
1278: l_return_status := FND_API.G_RET_STS_ERROR;
1279:
1280: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
1281: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Get Price');
1282: OE_MSG_PUB.Add;
1283:
1284: END IF;
1285:
1286: /* JULIN (2738479): PRG benefit price list lines cannot be based on lines whose arithmetic_operator is BLOCK_PRICE or PERCENT_PRICE. */
1304: (l_list_line_type_code <> 'PBH' AND l_qualification_ind NOT IN (2,4,6,8,10,12,14,20,22,28,30))
1305: THEN
1306: l_return_status := FND_API.G_RET_STS_ERROR;
1307: FND_MESSAGE.SET_NAME('QP','QP_INVALID_GET_PRICE_LIST_LINE');
1308: OE_MSG_PUB.Add;
1309: END IF;
1310:
1311:
1312: END IF;
1334: --dbms_output.put_line('either exp date or other 2 values');
1335: l_return_status := FND_API.G_RET_STS_ERROR;
1336:
1337: FND_MESSAGE.SET_NAME('QP','QP_EXP_DATE_OR_EXP_PERIODS');
1338: OE_MSG_PUB.Add;
1339:
1340: END IF;
1341: END IF;
1342:
1352: --dbms_output.put_line('all these 3 values are mandatory');
1353: l_return_status := FND_API.G_RET_STS_ERROR;
1354:
1355: FND_MESSAGE.SET_NAME('QP','QP_EXP_UOM_NUM_STRTDT_MAND');
1356: OE_MSG_PUB.Add;
1357:
1358: END IF;
1359:
1360: IF p_MODIFIERS_rec.expiration_period_uom IS NOT NULL
1375: --dbms_output.put_line('invalid exp uom');
1376: l_return_status := FND_API.G_RET_STS_ERROR;
1377:
1378: FND_MESSAGE.SET_NAME('QP','QP_INVALID_PERIOD_UOM');
1379: OE_MSG_PUB.Add;
1380:
1381: END;
1382:
1383: END IF;
1399: --dbms_output.put_line('estim gl value only for coupons');
1400: l_return_status := FND_API.G_RET_STS_ERROR;
1401:
1402: FND_MESSAGE.SET_NAME('QP','QP_GL_VAL_FOR_CIE_IUE_TSN');
1403: OE_MSG_PUB.Add;
1404:
1405: END IF;
1406: END IF; -- list_line_type_code <> 'PMR'
1407:
1417: l_return_status := FND_API.G_RET_STS_ERROR;
1418:
1419: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
1420: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',QP_PRC_UTIL.Get_Attribute_Name('ESTIM_ACCRUAL_RATE')); -- Fix For Bug-1974413
1421: OE_MSG_PUB.Add;
1422:
1423: END IF;
1424:
1425: /* Charge Type and Charge Subtype are mandatory for list line type of Freight Charge */
1434: l_return_status := FND_API.G_RET_STS_ERROR;
1435:
1436: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
1437: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Charge Name');
1438: OE_MSG_PUB.Add;
1439:
1440: END IF;
1441:
1442: BEGIN
1480: --dbms_output.put_line('invalid charge and subcharge type');
1481: l_return_status := FND_API.G_RET_STS_ERROR;
1482:
1483: FND_MESSAGE.SET_NAME('QP','QP_INVALID_CHARGE_TYPE_SUBTYPE');
1484: OE_MSG_PUB.Add;
1485:
1486: END;
1487:
1488: END IF;
1505: l_return_status := FND_API.G_RET_STS_ERROR;
1506:
1507: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
1508: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',QP_PRC_UTIL.Get_Attribute_Name('ACCRUAL_CONVERSION_RATE')); -- Fix For Bug-1974413
1509: OE_MSG_PUB.Add;
1510:
1511: END IF;
1512:
1513: END IF;
1534: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
1535: --FND_MESSAGE.SET_TOKEN('ATTRIBUTE',QP_PRC_UTIL.Get_Attribute_Name('BENEFIT_QTY')||'/'||
1536: -- QP_PRC_UTIL.Get_Attribute_Name('BENEFIT_UOM_CODE')); -- Fix For Bug-1974413
1537: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Quantity/UOM'); --Bug No 6010792
1538: OE_MSG_PUB.Add;
1539:
1540: END IF;
1541:
1542: END IF;
1554: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
1555: --FND_MESSAGE.SET_TOKEN('ATTRIBUTE',QP_PRC_UTIL.Get_Attribute_Name('BENEFIT_QTY')||'/'||
1556: -- QP_PRC_UTIL.Get_Attribute_Name('BENEFIT_UOM_CODE')); -- Fix For Bug-1974413
1557: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Quantity/UOM'); --Bug No 6010792
1558: OE_MSG_PUB.Add;
1559:
1560: END IF;
1561:
1562: /* Benefit qty is mandatory if benefit uom is entered, for the benefit DIS line of PBH */
1578: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
1579: --FND_MESSAGE.SET_TOKEN('ATTRIBUTE',QP_PRC_UTIL.Get_Attribute_Name('BENEFIT_QTY')||'/'||
1580: -- QP_PRC_UTIL.Get_Attribute_Name('BENEFIT_UOM_CODE')); -- Fix For Bug-1974413
1581: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Quantity/UOM'); --Bug No 6010792
1582: OE_MSG_PUB.Add;
1583:
1584: END IF;
1585:
1586: END IF;
1609: --dbms_output.put_line('invalid bene uom');
1610: l_return_status := FND_API.G_RET_STS_ERROR;
1611:
1612: FND_MESSAGE.SET_NAME('QP','QP_INVALID_BENEFIT_UOM');
1613: OE_MSG_PUB.Add;
1614:
1615: END;
1616:
1617: ELSE
1630: --dbms_output.put_line('invalid bene uom');
1631: l_return_status := FND_API.G_RET_STS_ERROR;
1632:
1633: FND_MESSAGE.SET_NAME('QP','QP_INVALID_BENEFIT_UOM');
1634: OE_MSG_PUB.Add;
1635:
1636: END;
1637:
1638: END IF;
1659: l_return_status := FND_API.G_RET_STS_ERROR;
1660:
1661: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
1662: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Phase');
1663: OE_MSG_PUB.Add;
1664:
1665: END IF;
1666:
1667: /* Phase is mandatory for all benefit list lines, except for RLTD */
1676: l_return_status := FND_API.G_RET_STS_ERROR;
1677:
1678: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
1679: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Phase');
1680: OE_MSG_PUB.Add;
1681:
1682: END IF;
1683:
1684: /* Validate the Phase from qp_pricing_phases table */
1702: WHEN NO_DATA_FOUND THEN
1703: l_return_status := FND_API.G_RET_STS_ERROR;
1704:
1705: FND_MESSAGE.SET_NAME('QP','QP_INVALID_PHASE');
1706: OE_MSG_PUB.Add;
1707:
1708: END;
1709:
1710: /* Additional buy products are not allowed for a PRG, with line phase*/
1721: EXCEPTION
1722: WHEN NO_DATA_FOUND THEN */
1723: l_return_status := FND_API.G_RET_STS_ERROR;
1724: FND_MESSAGE.SET_NAME('QP','QP_INVALID_PHASE_RLTD');
1725: OE_MSG_PUB.Add;
1726: -- END;
1727: END IF;
1728:
1729: /* If Additional buy products exists for a PRG,the phase cannot be changed to line phase*/
1743: END;
1744: IF l_rltd_exist = 'Y' THEN
1745: l_return_status := FND_API.G_RET_STS_ERROR;
1746: FND_MESSAGE.SET_NAME('QP','QP_INVALID_PHASE_RLTD');
1747: OE_MSG_PUB.Add;
1748: END IF;
1749: END IF;
1750:
1751: /* Phase with event PRICING should not be attached to modifier types PRG/IUE/OID/TSN/CIE -- Bug#2724502 */
1764: IF l_phase_price_evt = 'Y' THEN
1765: l_return_status := FND_API.G_RET_STS_ERROR;
1766:
1767: FND_MESSAGE.SET_NAME('QP','QP_PHASE_PRICE_EVT_ERROR');
1768: OE_MSG_PUB.Add;
1769:
1770: END IF;
1771: END IF;
1772:
1786: IF l_phase_freeze_set = 'Y' THEN
1787: l_return_status := FND_API.G_RET_STS_ERROR;
1788:
1789: FND_MESSAGE.SET_NAME('QP','QP_PHASE_FREEZE_ERROR');
1790: OE_MSG_PUB.Add;
1791:
1792: END IF;
1793: END IF;
1794:
1800:
1801: l_return_status := FND_API.G_RET_STS_ERROR;
1802:
1803: FND_MESSAGE.SET_NAME('QP','QP_INVALID_PHASE');
1804: OE_MSG_PUB.Add;
1805:
1806: END IF;
1807:
1808: END IF;
1829: oe_debug_pub.add('list line type code invalid');
1830: l_return_status := FND_API.G_RET_STS_ERROR;
1831:
1832: FND_MESSAGE.SET_NAME('QP','QP_ACCRUALS_NOT_ALLOWED');
1833: OE_MSG_PUB.Add;
1834:
1835: END IF;
1836:
1837: /* Accruals not allowed for GSA Discounts */
1842:
1843: l_return_status := FND_API.G_RET_STS_ERROR;
1844:
1845: FND_MESSAGE.SET_NAME('QP','QP_ACCRUALS_NOT_ALLOWED');
1846: OE_MSG_PUB.Add;
1847:
1848: END IF;
1849:
1850: /* Accrual is mandatory for Coupon issue */
1856:
1857: l_return_status := FND_API.G_RET_STS_ERROR;
1858:
1859: FND_MESSAGE.SET_NAME('QP','QP_ACCRUALS_MAND_FOR_CIE');
1860: OE_MSG_PUB.Add;
1861:
1862: END IF;
1863:
1864: /* Accrual flag must be Y when accrual related fields are entered
1880:
1881: l_return_status := FND_API.G_RET_STS_ERROR;
1882:
1883: FND_MESSAGE.SET_NAME('QP','QP_ACCRUAL_COLUMNS');
1884: OE_MSG_PUB.Add;
1885:
1886: END IF;
1887:
1888: */
1899: l_return_status := FND_API.G_RET_STS_ERROR;
1900:
1901: FND_MESSAGE.SET_NAME('QP','QP_ACCRUALS_FOR_DIS_ONLY');
1902:
1903: OE_MSG_PUB.Add;
1904:
1905: END IF;
1906:
1907: /* Proration is mandatory for these Primary Modifier types */
1920: l_return_status := FND_API.G_RET_STS_ERROR;
1921:
1922: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
1923: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',QP_PRC_UTIL.Get_Attribute_Name('PRORATION_TYPE_CODE')); -- Fix For Bug-1974413
1924: OE_MSG_PUB.Add;
1925:
1926: END IF;
1927:
1928: /* Proration type code must be 'N' for GSA Discounts */
1933:
1934: l_return_status := FND_API.G_RET_STS_ERROR;
1935:
1936: FND_MESSAGE.SET_NAME('QP','QP_GSA_PRORATION_ALWAYS_N');
1937: OE_MSG_PUB.Add;
1938:
1939: END IF;
1940:
1941: IF ( p_MODIFIERS_rec.list_line_type_code = 'IUE' OR
1950: l_return_status := FND_API.G_RET_STS_ERROR;
1951:
1952: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
1953: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',QP_PRC_UTIL.Get_Attribute_Name('PRORATION_TYPE_CODE')); -- Fix For Bug-1974413
1954: OE_MSG_PUB.Add;
1955:
1956: END IF;
1957:
1958:
1968: l_return_status := FND_API.G_RET_STS_ERROR;
1969:
1970: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
1971: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',QP_PRC_UTIL.Get_Attribute_Name('PRORATION_TYPE_CODE')); -- Fix For Bug-1974413
1972: OE_MSG_PUB.Add;
1973:
1974: END IF;
1975:
1976: /* If the Primary line is a Price Break Header and the Child lines are DIS or SUR, proration type code is mandatory */
1985: l_return_status := FND_API.G_RET_STS_ERROR;
1986:
1987: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
1988: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',QP_PRC_UTIL.Get_Attribute_Name('PRORATION_TYPE_CODE')); -- Fix For Bug-1974413
1989: OE_MSG_PUB.Add;
1990:
1991: END IF;
1992:
1993: /* If the Primary line is a Coupon Issue, the Child lines must be DIS or PRG */
1999:
2000: l_return_status := FND_API.G_RET_STS_ERROR;
2001:
2002: FND_MESSAGE.SET_NAME('QP','QP_CIE_CHILD_DIS_OR_PRG');
2003: OE_MSG_PUB.Add;
2004:
2005: END IF;
2006:
2007: /* If the Primary line is a Price Break Header, the child lines must be DIS or SUR */
2017:
2018: l_return_status := FND_API.G_RET_STS_ERROR;
2019:
2020: FND_MESSAGE.SET_NAME('QP','QP_PBH_CHILD_DIS_OR_SUR');
2021: OE_MSG_PUB.Add;
2022:
2023: END IF;
2024:
2025: /* Pricing Group Sequence is --not-- mandatory for these Primary Modifier types */
2040: l_return_status := FND_API.G_RET_STS_ERROR;
2041:
2042: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
2043: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Bucket');
2044: OE_MSG_PUB.Add;
2045:
2046: END IF;
2047: */
2048:
2054:
2055: l_return_status := FND_API.G_RET_STS_ERROR;
2056:
2057: FND_MESSAGE.SET_NAME('QP','QP_GSA_BUCKET_VALUE_1');
2058: OE_MSG_PUB.Add;
2059:
2060: END IF;
2061:
2062: /* Pricing Group Sequence is --not-- mandatory for all Benefit list lines */
2073: l_return_status := FND_API.G_RET_STS_ERROR;
2074:
2075: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
2076: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Bucket');
2077: OE_MSG_PUB.Add;
2078:
2079: END IF;
2080: */
2081:
2094:
2095: l_return_status := FND_API.G_RET_STS_ERROR;
2096:
2097: FND_MESSAGE.SET_NAME('QP','QP_MANUAL_DIS_BUCKET_NULL');
2098: OE_MSG_PUB.Add;
2099:
2100: END IF;
2101:
2102:
2109:
2110: l_return_status := FND_API.G_RET_STS_ERROR;
2111:
2112: FND_MESSAGE.SET_NAME('QP','QP_GSA_INCOMP_ALWAYS_LVL1');
2113: OE_MSG_PUB.Add;
2114:
2115: END IF;
2116:
2117:
2136: IF (l_error_code <> 0 ) -- invalid context
2137: THEN
2138: l_return_status := FND_API.G_RET_STS_ERROR;
2139:
2140: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
2141: THEN
2142:
2143: FND_MESSAGE.SET_NAME('QP','QP_INVALID_ACCUM_ATTRIBUTE');
2144: OE_MSG_PUB.Add;
2140: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
2141: THEN
2142:
2143: FND_MESSAGE.SET_NAME('QP','QP_INVALID_ACCUM_ATTRIBUTE');
2144: OE_MSG_PUB.Add;
2145: END IF;
2146: END IF;
2147: END IF;
2148:
2218: oe_debug_pub.add('EXP others');
2219: oe_debug_pub.add('error =' || sqlerrm);
2220: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2221:
2222: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2223: THEN
2224: OE_MSG_PUB.Add_Exc_Msg
2225: ( G_PKG_NAME
2226: , 'Entity'
2220: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2221:
2222: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2223: THEN
2224: OE_MSG_PUB.Add_Exc_Msg
2225: ( G_PKG_NAME
2226: , 'Entity'
2227: );
2228: END IF;
2246: /* changes to fix bug # 1724169 */
2247:
2248: IF FND_PROFILE.VALUE('QP_NEGATIVE_PRICING') = 'N' AND p_MODIFIERS_rec.operand < 0 THEN
2249: FND_MESSAGE.SET_NAME('QP','OE_PR_NEGATIVE_AMOUNT');
2250: OE_MSG_PUB.Add;
2251: x_return_status := FND_API.G_RET_STS_ERROR;
2252: END IF;
2253:
2254:
3180: WHEN OTHERS THEN
3181:
3182: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3183:
3184: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3185: THEN
3186: OE_MSG_PUB.Add_Exc_Msg
3187: ( G_PKG_NAME
3188: , 'Attributes'
3182: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3183:
3184: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3185: THEN
3186: OE_MSG_PUB.Add_Exc_Msg
3187: ( G_PKG_NAME
3188: , 'Attributes'
3189: );
3190: END IF;
3234: WHEN OTHERS THEN
3235:
3236: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3237:
3238: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3239: THEN
3240: OE_MSG_PUB.Add_Exc_Msg
3241: ( G_PKG_NAME
3242: , 'Entity_Delete'
3236: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3237:
3238: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3239: THEN
3240: OE_MSG_PUB.Add_Exc_Msg
3241: ( G_PKG_NAME
3242: , 'Entity_Delete'
3243: );
3244: END IF;