1072: PROCEDURE ENTITY_HEADER
1073: (p_header_rec IN OUT NOCOPY QP_BULK_LOADER_PUB.HEADER_REC_TYPE)
1074:
1075: IS
1076: l_msg_rec QP_BULK_MSG.Msg_Rec_Type;
1077: l_old_PRICE_LIST_rec QP_Price_List_PUB.Price_List_Rec_Type;
1078: l_dummy VARCHAR2(10);
1079: l_unit_precision_type varchar2(255) ;
1080: l_precision number := NULL;
1178: p_header_rec.process_status_flag(I):=NULL; --'E';
1179:
1180: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
1181: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','ORIG_SYS_HEADER_ID');
1182: QP_BULK_MSG.ADD(l_msg_rec);
1183:
1184: END IF;
1185: END IF;
1186:
1192: P_header_rec.process_status_flag(I):=NULL; --'E';
1193:
1194: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
1195: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','LIST_TYPE_CODE');
1196: QP_BULK_MSG.ADD(l_msg_rec);
1197:
1198: END IF;
1199:
1200: --currency_code
1204: P_header_rec.process_status_flag(I):=NULL; --'E';
1205:
1206: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
1207: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','CURRENCY_CODE');
1208: QP_BULK_MSG.ADD(l_msg_rec);
1209: qp_bulk_loader_pub.write_log('Currency Validation failed');
1210:
1211: END IF;
1212:
1217: p_header_rec.process_status_flag(I):=NULL; --'E';
1218:
1219: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
1220: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','NAME');
1221: QP_BULK_MSG.ADD(l_msg_rec);
1222:
1223: END IF;
1224:
1225: --Rounding_factor
1229: P_header_rec.process_status_flag(I):=NULL;
1230:
1231: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
1232: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','ROUNDING_FACTOR');
1233: QP_BULK_MSG.ADD(l_msg_rec);
1234:
1235: END IF;
1236:
1237: IF p_header_rec.interface_action_code(I) = 'INSERT' THEN
1242: P_header_rec.process_status_flag(I):=NULL;
1243:
1244: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
1245: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','LANGUAGE');
1246: QP_BULK_MSG.ADD(l_msg_rec);
1247:
1248: END IF;
1249:
1250: -- Source Language
1254: p_header_rec.process_status_flag(I):=NULL;
1255:
1256: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
1257: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','SOURCE_LANG');
1258: QP_BULK_MSG.ADD(l_msg_rec);
1259:
1260: END IF;
1261: END IF;
1262:
1266: THEN
1267:
1268: p_header_rec.process_status_flag(I):=NULL;
1269: FND_MESSAGE.SET_NAME('QP','QP_MUL_CURR_REQD');
1270: QP_BULK_MSG.ADD(l_msg_rec);
1271:
1272: END IF;
1273:
1274:
1296: IF l_date_length<>10 or l_first_date_hash<>'/' or l_second_date_hash<>'/'
1297: THEN
1298: p_header_rec.process_status_flag(I):=NULL;
1299: FND_MESSAGE.SET_NAME('QP', 'QP_INVALID_DATE');
1300: QP_BULK_MSG.Add(l_msg_rec);
1301: END IF;
1302:
1303: l_start_date := to_date(p_header_rec.start_date_active(I),'YYYY/MM/DD');
1304: exception
1304: exception
1305: when others then
1306: p_header_rec.process_status_flag(I):=NULL;
1307: FND_MESSAGE.SET_NAME('QP', 'QP_INVALID_DATE');
1308: QP_BULK_MSG.Add(l_msg_rec);
1309: end;
1310: END IF;
1311:
1312: IF p_header_rec.end_date_active(I) is not null THEN
1326: IF l_date_length<>10 or l_first_date_hash<>'/' or l_second_date_hash<>'/'
1327: THEN
1328: p_header_rec.process_status_flag(I):=NULL;
1329: FND_MESSAGE.SET_NAME('QP', 'QP_INVALID_DATE');
1330: QP_BULK_MSG.Add(l_msg_rec);
1331: END IF;
1332:
1333: l_end_date := to_date(p_header_rec.end_date_active(I),'YYYY/MM/DD');
1334: exception
1334: exception
1335: when others then
1336: p_header_rec.process_status_flag(I):=NULL;
1337: FND_MESSAGE.SET_NAME('QP', 'QP_INVALID_DATE');
1338: QP_BULK_MSG.Add(l_msg_rec);
1339: end;
1340: END IF;
1341: -- Bug 4904393 END RAVI (5138015,5207598,5207612,5414062)
1342:
1350: THEN
1351: IF l_start_date > l_end_date THEN
1352: p_header_rec.process_status_flag(I):=NULL;
1353: FND_MESSAGE.SET_NAME('QP', 'QP_STRT_DATE_BFR_END_DATE');
1354: QP_BULK_MSG.Add(l_msg_rec);
1355: END IF;
1356: END IF;
1357: -- Bug 4929691 END RAVI (5207598,5207612)
1358:
1370: WHEN NO_DATA_FOUND THEN
1371: p_header_rec.process_status_flag(I):=NULL;
1372: FND_MESSAGE.SET_NAME('QP','QP_INVALID_ATTRIBUTE');
1373: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','rounding_factor');
1374: qp_bulk_msg.add(l_msg_rec);
1375: END;
1376: END IF;
1377:
1378: IF p_header_rec.rounding_factor(I) IS NOT NULL
1383: IF l_price_rounding = 'PRECISION' THEN
1384: IF p_header_rec.rounding_factor(I) <> l_precision THEN
1385: p_header_rec.process_status_flag(I):=NULL;
1386: FND_MESSAGE.SET_NAME('QP', 'QP_ROUNDING_FACTOR_NO_UPDATE');
1387: qp_bulk_msg.add(l_msg_rec);
1388: END IF;
1389: END IF;
1390:
1391: IF (p_header_rec.rounding_factor(I))
1392: < nvl((l_precision), (p_header_rec.rounding_factor(I))) THEN
1393: p_header_rec.process_status_flag(I):=NULL;
1394: FND_MESSAGE.SET_NAME('QP', 'OE_PRL_INVALID_ROUNDING_FACTOR');
1395: FND_MESSAGE.SET_TOKEN('PRECISION', l_precision);
1396: qp_bulk_msg.add(l_msg_rec);
1397: END IF;
1398:
1399: ELSE
1400: IF l_price_rounding = 'PRECISION' THEN
1400: IF l_price_rounding = 'PRECISION' THEN
1401: IF p_header_rec.rounding_factor(I) <> l_extended_precision THEN
1402: p_header_rec.process_status_flag(I):=NULL;
1403: FND_MESSAGE.SET_NAME('QP', 'QP_ROUNDING_FACTOR_NO_UPDATE');
1404: qp_bulk_msg.add(l_msg_rec);
1405: END IF;
1406: END IF;
1407:
1408: IF (p_header_rec.rounding_factor(I))
1409: < nvl((l_extended_precision),(p_header_rec.rounding_factor(I))) THEN
1410: p_header_rec.process_status_flag(I):=NULL;
1411: FND_MESSAGE.SET_NAME('QP', 'OE_PRL_INVALID_ROUNDING_FACTOR');
1412: FND_MESSAGE.SET_TOKEN('PRECISION', l_extended_precision);
1413: qp_bulk_msg.add(l_msg_rec);
1414: END IF;
1415: END IF;
1416:
1417: END IF;
1430: THEN
1431: p_header_rec.process_status_flag(I):=NULL;
1432: FND_MESSAGE.SET_NAME('QP','QP_INVALID_ATTRIBUTE');
1433: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','active_flag');
1434: qp_bulk_msg.add(l_msg_rec);
1435: END IF;
1436: END IF;
1437:
1438: IF ( p_header_rec.automatic_flag(I) IS NOT NULL)
1441: THEN
1442: p_header_rec.process_status_flag(I):=NULL;
1443: FND_MESSAGE.SET_NAME('QP','QP_INVALID_ATTRIBUTE');
1444: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','automatic_flag');
1445: qp_bulk_msg.add(l_msg_rec);
1446: END IF;
1447: END IF;
1448:
1449: IF p_header_rec.global_flag(I) NOT IN ('Y', 'N', 'n')
1450: THEN
1451: p_header_rec.process_status_flag(I):=NULL;
1452: FND_MESSAGE.SET_NAME('QP','QP_INVALID_ATTRIBUTE');
1453: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','global_flag');
1454: qp_bulk_msg.add(l_msg_rec);
1455: END IF;
1456:
1457: --added for MOAC
1458: l_security_profile := QP_SECURITY.security_on;
1465: and p_header_rec.global_flag(I) in ('N', 'n')) THEN
1466: p_header_rec.process_status_flag(I):=NULL;
1467: FND_MESSAGE.SET_NAME('QP','QP_INVALID_ATTRIBUTE');
1468: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','global_flag');
1469: qp_bulk_msg.add(l_msg_rec);
1470: END IF;
1471:
1472: IF l_security_profile = 'Y' THEN
1473: --if security is ON and global_flag is 'N', orig_org_id cannot be null
1479: and p_header_rec.orig_org_id(I) is null) THEN
1480: p_header_rec.process_status_flag(I):=NULL;
1481: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
1482: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','ORIG_ORG_ID');
1483: qp_bulk_msg.add(l_msg_rec);
1484:
1485: END IF;
1486:
1487: /* for bug 4731613 moved this validation to attribute_header procedure
1490: and QP_UTIL.validate_org_id(p_header_rec.orig_org_id(I)) = 'N') THEN
1491: p_header_rec.process_status_flag(I):=NULL;
1492: FND_MESSAGE.SET_NAME('FND','FND_MO_ORG_INVALID');
1493: -- FND_MESSAGE.SET_TOKEN('ATTRIBUTE','orig_org_id');
1494: qp_bulk_msg.add(l_msg_rec);
1495: END IF;
1496: */
1497: END IF;--IF l_security_profile = 'Y'
1498:
1500: IF ((p_header_rec.global_flag(I) = 'Y'
1501: and p_header_rec.orig_org_id(I) is not null) OR (p_header_rec.global_flag(I) = 'N' and p_header_rec.orig_org_id(I) is null)) THEN
1502: p_header_rec.process_status_flag(I):=NULL;
1503: FND_MESSAGE.SET_NAME('QP', 'QP_GLOBAL_OU_VALIDATION');
1504: qp_bulk_msg.add(l_msg_rec);
1505: END IF;--p_header_rec.global_flag
1506: END IF;
1507: --end validations for moac
1508:
1512: THEN
1513: p_header_rec.process_status_flag(I):=NULL;
1514: FND_MESSAGE.SET_NAME('QP','QP_INVALID_ATTRIBUTE');
1515: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','mobile_download');
1516: qp_bulk_msg.add(l_msg_rec);
1517: END IF;
1518: END IF;
1519:
1520: --Checking for uniqueness of the Name in qp_list_headers.
1542:
1543: If l_exist = 1 THEN
1544: p_header_rec.process_status_flag(I):=NULL;
1545: fnd_message.set_name('QP', 'SO_OTHER_NAME_ALREADY_IN_USE');
1546: qp_bulk_msg.add(l_msg_rec);
1547: END IF;
1548:
1549: l_exist := NULL;
1550:
1558:
1559: IF l_exist >0 THEN
1560: p_header_rec.process_status_flag(I):=NULL;
1561: fnd_message.set_name('QP', 'SO_OTHER_NAME_ALREADY_IN_USE');
1562: qp_bulk_msg.add(l_msg_rec);
1563: END IF;
1564: END IF;
1565:
1566: --Checking for uniqueness of orig_sys_header_ref in qp_list_headers
1587: p_header_rec.process_status_flag(I):=NULL;
1588: fnd_message.set_name('QP', 'ORIG_SYS_HEADER_REF_NOT_UNIQUE');
1589: FND_MESSAGE.SET_TOKEN('REF_NO', p_header_rec.orig_sys_header_ref(I));
1590: FND_MESSAGE.SET_TOKEN('LS_CODE', p_header_rec.list_source_code(I));
1591: qp_bulk_msg.add(l_msg_rec);
1592: ELSIF p_header_rec.interface_action_code(I) = 'UPDATE' AND l_exist =0 THEN
1593: p_header_rec.process_status_flag(I):=NULL;
1594: fnd_message.set_name('QP', 'HEADER_RECORD_DOES_NOT_EXIST');
1595: FND_MESSAGE.SET_TOKEN('REF_NO', p_header_rec.orig_sys_header_ref(I));
1593: p_header_rec.process_status_flag(I):=NULL;
1594: fnd_message.set_name('QP', 'HEADER_RECORD_DOES_NOT_EXIST');
1595: FND_MESSAGE.SET_TOKEN('REF_NO', p_header_rec.orig_sys_header_ref(I));
1596: FND_MESSAGE.SET_TOKEN('LS_CODE', p_header_rec.list_source_code(I));
1597: qp_bulk_msg.add(l_msg_rec);
1598: END IF;
1599:
1600: --bug 6961376 start
1601:
1628: p_header_rec.process_status_flag(I):=NULL;
1629: fnd_message.set_name('QP','ORIG_SYS_HEADER_REF_NOT_UNIQUE');
1630: FND_MESSAGE.SET_TOKEN('REF_NO', p_header_rec.orig_sys_header_ref(I));
1631: FND_MESSAGE.SET_TOKEN('LS_CODE', p_header_rec.list_source_code(I));
1632: qp_bulk_msg.add(l_msg_rec);
1633: END IF;
1634: ELSIF p_header_rec.interface_action_code(I) = 'UPDATE' AND l_header_id_null = 'N' THEN
1635: qp_bulk_loader_pub.write_log('checking for unique orig_sys_header_ref: ' || p_header_rec.orig_sys_header_ref(I));
1636: select count(distinct list_header_id) into l_exist
1664: p_header_rec.process_status_flag(I):=NULL;
1665: fnd_message.set_name('QP','ORIG_SYS_HEADER_REF_NOT_UNIQUE');
1666: FND_MESSAGE.SET_TOKEN('REF_NO', p_header_rec.orig_sys_header_ref(I));
1667: FND_MESSAGE.SET_TOKEN('LS_CODE', p_header_rec.list_source_code(I));
1668: qp_bulk_msg.add(l_msg_rec);
1669: END IF;
1670: END IF;
1671: --bug 6961376 end
1672:
1678: p_instance_pk1 => p_header_rec.list_header_id(I)) <> 'T' THEN
1679: p_header_rec.process_status_flag(I):=NULL;
1680: fnd_message.set_name('QP', 'QP_NO_PRIVILEGE');
1681: fnd_message.set_token('PRICING_OBJECT', 'Price List');
1682: qp_bulk_msg.add(l_msg_rec);
1683: END IF;
1684: END IF;
1685:
1686: --Defaulting
1715: ,p_attribute13 => p_header_rec.attribute13(i)
1716: ,p_attribute14 => p_header_rec.attribute14(i)
1717: ,p_attribute15 => p_header_rec.attribute15(i)) THEN
1718:
1719: QP_BULK_MSG.ADD(l_msg_rec);
1720:
1721: -- Log Error Message
1722: FND_MESSAGE.SET_NAME('QP','QP_INVALID_ATTRIBUTE');
1723: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
1723: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
1724: 'Entity:Flexfield:Header_Desc_Flex');
1725: P_header_rec.process_status_flag(I):=NULL;
1726:
1727: QP_BULK_MSG.ADD(l_msg_rec);
1728:
1729: ELSE -- if the flex validation is successfull
1730:
1731: IF p_header_rec.context(i) IS NULL
1837: l_old_price_list_rec.pte_code <> p_header_rec.pte_code(I) THEN
1838: p_header_rec.process_status_flag(I):=NULL;
1839: fnd_message.set_name('QP', 'QP_NO_UPDATE_ATTRIBUTE');
1840: fnd_message.set_token('ATTRIBUTE', 'Source System Code / PTE Code');
1841: qp_bulk_msg.add(l_msg_rec);
1842: END IF;
1843: END IF;
1844:
1845: END LOOP;
1859: PROCEDURE ENTITY_LINE
1860: (P_LINE_REC IN OUT NOCOPY QP_BULK_LOADER_PUB.LINE_REC_TYPE)
1861:
1862: IS
1863: l_msg_rec QP_BULK_MSG.Msg_Rec_Type;
1864: l_dummy NUMBER;
1865: l_dummy_1 NUMBER;
1866: l_exist NUMBER;
1867: l_pb_type_code QP_LIST_LINES.price_break_type_code%type;
1927: p_line_rec.process_status_flag(I):=NULL;
1928: fnd_message.set_name('QP', 'QP_INVALID_HEADER_REF');
1929: FND_MESSAGE.SET_TOKEN('REF_NO', p_line_rec.orig_sys_header_ref(I));
1930: FND_MESSAGE.SET_TOKEN('LS_CODE', NULL);
1931: qp_bulk_msg.add(l_msg_rec);
1932: End;
1933: IF p_line_rec.list_header_id(I) IS NOT NULL or
1934: p_line_rec.list_header_id(I) <> 0 THEN
1935: l_list_header_id := p_line_rec.list_header_id(I);
1950: THEN
1951: p_line_rec.process_status_flag(I):=NULL;
1952: fnd_message.set_name('QP', 'QP_ATTRIBUTE_REQUIRED');
1953: fnd_message.set_token('ATTRIBUTE', 'ORIG_SYS_LINE_REF');
1954: qp_bulk_msg.add(l_msg_rec);
1955: END IF;
1956:
1957: --Bug#5359974 RAVI START
1958: --The continuous PB flag set to 'Y' if the line is PBH
1969: p_line_rec.list_line_type_code(I):= '1';
1970: p_line_rec.process_status_flag(I):=NULL;
1971: fnd_message.set_name('QP', 'QP_ATTRIBUTE_REQUIRED');
1972: fnd_message.set_token('ATTRIBUTE', 'LIST_LINE_TYPE_CODE');
1973: qp_bulk_msg.add(l_msg_rec);
1974: END IF;
1975:
1976: IF p_line_rec.list_line_type_code(I) <>'PLL' AND p_line_rec.list_line_type_code(I)<>'PBH' THEN
1977: p_line_rec.process_status_flag(I):=NULL;
1976: IF p_line_rec.list_line_type_code(I) <>'PLL' AND p_line_rec.list_line_type_code(I)<>'PBH' THEN
1977: p_line_rec.process_status_flag(I):=NULL;
1978: fnd_message.set_name('QP', 'QP_INVALID_ATTRIBUTE');
1979: fnd_message.set_token('ATTRIBUTE', 'LIST_LINE_TYPE_CODE');
1980: qp_bulk_msg.add(l_msg_rec);
1981: END IF;
1982:
1983: --3. Arithmetic Operator
1984: IF p_line_rec.arithmetic_operator(I) IS NULL
1986: p_line_rec.arithmetic_operator(I):= '1';
1987: p_line_rec.process_status_flag(I):=NULL;
1988: fnd_message.set_name('QP', 'QP_ATTRIBUTE_REQUIRED');
1989: fnd_message.set_token('ATTRIBUTE', 'ARITHMETIC_OPERATOR1');
1990: qp_bulk_msg.add(l_msg_rec);
1991: ELSE
1992: IF p_line_rec.arithmetic_operator(I) = 'BLOCK_PRICE' AND
1993: p_line_rec.list_line_type_code(I) <> 'PBH' AND
1994: p_line_rec.price_break_header_ref(I) IS NULL THEN
1995: p_line_rec.arithmetic_operator(I):= '1';
1996: p_line_rec.process_status_flag(I):=NULL;
1997: FND_MESSAGE.SET_NAME('QP', 'QP_INVALID_ATTRIBUTE');
1998: fnd_message.set_token('ATTRIBUTE', 'ARITHMETIC_OPERATOR 2');
1999: qp_bulk_msg.add(l_msg_rec);
2000: END IF;
2001: IF p_line_rec.arithmetic_operator(I) = 'BREAKUNIT_PRICE' THEN
2002: IF p_line_rec.list_line_type_code(I) = 'PLL' AND
2003: p_line_rec.price_break_header_ref(I) IS NOT NULL THEN
2006: p_line_rec.arithmetic_operator(I):= '1';
2007: p_line_rec.process_status_flag(I):=NULL;
2008: FND_MESSAGE.SET_NAME('QP', 'QP_INVALID_ATTRIBUTE');
2009: fnd_message.set_token('ATTRIBUTE', 'ARITHMETIC_OPERATOR 3');
2010: qp_bulk_msg.add(l_msg_rec);
2011: END IF;
2012: END IF;
2013: --End arithemetic operator check
2014:
2062: p_line_rec.arithmetic_operator(I):= '1';
2063: p_line_rec.process_status_flag(I):=NULL;
2064: FND_MESSAGE.SET_NAME('QP', 'QP_INVALID_ATTRIBUTE');
2065: fnd_message.set_token('ATTRIBUTE', 'ARITHMETIC_OPERATOR 4');
2066: qp_bulk_msg.add(l_msg_rec);
2067: else
2068: l_servicable_item := 'Y';
2069: end if;
2070: END IF;
2092: If p_line_rec.interface_action_code(I)='INSERT' AND l_exist >= 1 THEN
2093: p_line_rec.process_status_flag(I):=NULL;
2094: fnd_message.set_name('QP', 'ORIG_SYS_LINE_REF_NOT_UNIQUE');
2095: FND_MESSAGE.SET_TOKEN('REF_NO', p_line_rec.orig_sys_line_ref(I));
2096: qp_bulk_msg.add(l_msg_rec);
2097: ELSIF p_line_rec.interface_action_code(I)='UPDATE' AND l_exist = 0 THEN
2098: p_line_rec.process_status_flag(I):=NULL;
2099: fnd_message.set_name('QP', 'LINE_RECORD_DOES_NOT_EXIST');
2100: FND_MESSAGE.SET_TOKEN('REF_NO', p_line_rec.orig_sys_line_ref(I));
2097: ELSIF p_line_rec.interface_action_code(I)='UPDATE' AND l_exist = 0 THEN
2098: p_line_rec.process_status_flag(I):=NULL;
2099: fnd_message.set_name('QP', 'LINE_RECORD_DOES_NOT_EXIST');
2100: FND_MESSAGE.SET_TOKEN('REF_NO', p_line_rec.orig_sys_line_ref(I));
2101: qp_bulk_msg.add(l_msg_rec);
2102: END IF;
2103:
2104: If p_line_rec.interface_action_code(I)='INSERT' THEN
2105: l_exist:= NULL;
2112: IF l_exist >1 THEN
2113: p_line_rec.process_status_flag(I):=NULL;
2114: fnd_message.set_name('QP', 'ORIG_SYS_LINE_REF_NOT_UNIQUE');
2115: FND_MESSAGE.SET_TOKEN('REF_NO', p_line_rec.orig_sys_line_ref(I));
2116: qp_bulk_msg.add(l_msg_rec);
2117: END IF;
2118: end if;
2119:
2120: --- check for conditionally required fields --------
2122: IF p_line_rec.price_break_type_code(I) IS NULL then
2123: p_line_rec.process_status_flag(I):=NULL;
2124: fnd_message.set_name('QP', 'QP_ATTRIBUTE_REQUIRED');
2125: fnd_message.set_token('ATTRIBUTE', 'PRICE_BREAK_TYPE_CODE');
2126: qp_bulk_msg.add(l_msg_rec);
2127: END IF;
2128: ELSE
2129: IF p_line_rec.price_break_header_ref(I) IS NULL and
2130: p_line_rec.price_break_type_code(I) IS NOT NULL then
2130: p_line_rec.price_break_type_code(I) IS NOT NULL then
2131: p_line_rec.process_status_flag(I):=NULL;
2132: FND_MESSAGE.SET_NAME('QP', 'QP_INVALID_ATTRIBUTE');
2133: fnd_message.set_token('ATTRIBUTE', 'PRICE_BREAK_TYPE_CODE');
2134: qp_bulk_msg.add(l_msg_rec);
2135: END IF;
2136: END IF;
2137:
2138: IF p_line_rec.price_break_header_ref(I) IS NOT NULL then
2139: IF p_line_rec.rltd_modifier_grp_type(I) IS NULL then
2140: p_line_rec.process_status_flag(I):=NULL;
2141: fnd_message.set_name('QP', 'QP_ATTRIBUTE_REQUIRED');
2142: fnd_message.set_token('ATTRIBUTE', 'RLTD_MODIFIER_GRP_TYPE');
2143: qp_bulk_msg.add(l_msg_rec);
2144: END IF;
2145: END IF;
2146:
2147: qp_bulk_loader_pub.write_log('check price break ARITHMETIC OPERATOR');
2160: -- if any price breaks are BLOCK
2161: IF (l_dummy > 0) THEN
2162: p_line_rec.process_status_flag(I):=NULL;
2163: FND_MESSAGE.SET_NAME('QP','QP_INVALID_CHILD_APPL_METHOD');
2164: qp_bulk_msg.add(l_msg_rec);
2165: END IF;
2166:
2167: -- Bug# 5228560 RAVI START
2168: l_dummy:= null;
2180: -- if any price breaks are BLOCK in old lines
2181: IF (l_dummy > 0) THEN
2182: p_line_rec.process_status_flag(I):=NULL;
2183: FND_MESSAGE.SET_NAME('QP','QP_INVALID_CHILD_APPL_METHOD');
2184: qp_bulk_msg.add(l_msg_rec);
2185: END IF;
2186: -- Bug# 5228560 RAVI END
2187: END IF;
2188:
2208:
2209: IF (l_dummy > 0) THEN
2210: p_line_rec.process_status_flag(I):=NULL;
2211: FND_MESSAGE.SET_NAME('QP','QP_INVALID_PRICE_BREAK');
2212: qp_bulk_msg.add(l_msg_rec);
2213: END IF;
2214:
2215: END IF;
2216:
2231:
2232: IF (l_dummy > 0) THEN
2233: p_line_rec.process_status_flag(I):=NULL;
2234: FND_MESSAGE.SET_NAME('QP','QP_INVALID_PRICE_BREAK');
2235: qp_bulk_msg.add(l_msg_rec);
2236: END IF;
2237:
2238: l_dummy := null;
2239: IF p_LINE_rec.price_break_type_code(I) = 'POINT' THEN
2250:
2251: IF (l_dummy > 0) THEN
2252: p_line_rec.process_status_flag(I):=NULL;
2253: FND_MESSAGE.SET_NAME('QP','QP_INVALID_PRICE_BREAK');
2254: qp_bulk_msg.add(l_msg_rec);
2255: END IF;
2256: END IF;
2257: -- Bug# 5228560 RAVI END
2258:
2266: p_line_rec.recurring_value(I) is not NULL THEN
2267: P_LINE_REC.PROCESS_STATUS_FLAG(I):= NULL; --'E';
2268: FND_MESSAGE.SET_NAME('QP', 'QP_INVALID_ATTRIBUTE');
2269: FND_MESSAGE.SET_TOKEN('ATTRIBUTE', 'Recurring Value');
2270: QP_BULK_MSG.ADD(l_msg_rec);
2271: END IF;
2272:
2273: BEGIN
2274: SELECT price_break_type_code, arithmetic_operator
2287: l_pb_type_code IS NULL THEN
2288: P_LINE_REC.PROCESS_STATUS_FLAG(I):= NULL; --'E';
2289: FND_MESSAGE.SET_NAME('QP', 'QP_INVALID_ATTRIBUTE');
2290: FND_MESSAGE.SET_TOKEN('ATTRIBUTE', 'Recurring Value');
2291: QP_BULK_MSG.ADD(l_msg_rec);
2292: qp_bulk_loader_pub.write_log('PRICE BREAK TYPE CODE NULL');
2293: ELSE
2294: IF p_line_rec.price_break_type_code(I) = l_pb_type_code
2295: THEN
2297: ELSE
2298: P_LINE_REC.PROCESS_STATUS_FLAG(I):= NULL; --'E';
2299: FND_MESSAGE.SET_NAME('QP', 'QP_INVALID_ATTRIBUTE');
2300: FND_MESSAGE.SET_TOKEN('ATTRIBUTE', 'Recurring Value');
2301: QP_BULK_MSG.ADD(l_msg_rec);
2302: qp_bulk_loader_pub.write_log('PRICE BREAK TYPE CODE OF PARENT AND CHILD UNEQUAL');
2303: END IF;
2304: END IF;
2305: --Bug 4405737 END RAVI
2310: THEN
2311: P_LINE_REC.PROCESS_STATUS_FLAG(I):= NULL; --'E';
2312: FND_MESSAGE.SET_NAME('QP', 'QP_INVALID_ATTRIBUTE');
2313: FND_MESSAGE.SET_TOKEN('ATTRIBUTE', 'Arithmetic Operator');
2314: QP_BULK_MSG.ADD(l_msg_rec);
2315: END IF;
2316: ELSIF p_line_rec.arithmetic_operator(I) = 'BLOCK_PRICE' THEN
2317: IF l_art_opr <> 'BLOCK_PRICE' THEN
2318: P_LINE_REC.PROCESS_STATUS_FLAG(I):= NULL; --'E';
2317: IF l_art_opr <> 'BLOCK_PRICE' THEN
2318: P_LINE_REC.PROCESS_STATUS_FLAG(I):= NULL; --'E';
2319: FND_MESSAGE.SET_NAME('QP', 'QP_INVALID_ATTRIBUTE');
2320: FND_MESSAGE.SET_TOKEN('ATTRIBUTE', 'Arithmetic Operator');
2321: QP_BULK_MSG.ADD(l_msg_rec);
2322: END IF;
2323: ELSIF p_line_rec.arithmetic_operator(I) = 'BREAKUNIT_PRICE' THEN
2324: IF l_art_opr <> 'BLOCK_PRICE' OR l_pb_type_code <> 'RANGE' THEN
2325: P_LINE_REC.PROCESS_STATUS_FLAG(I):= NULL; --'E';
2324: IF l_art_opr <> 'BLOCK_PRICE' OR l_pb_type_code <> 'RANGE' THEN
2325: P_LINE_REC.PROCESS_STATUS_FLAG(I):= NULL; --'E';
2326: FND_MESSAGE.SET_NAME('QP', 'QP_INVALID_ATTRIBUTE');
2327: FND_MESSAGE.SET_TOKEN('ATTRIBUTE', 'Arithmetic Operator');
2328: QP_BULK_MSG.ADD(l_msg_rec);
2329: END IF;
2330: END IF;
2331: END IF;
2332:
2351: IF l_art_opr <> 'UNIT_PRICE' THEN
2352: P_LINE_REC.PROCESS_STATUS_FLAG(I):= NULL; --'E';
2353: FND_MESSAGE.SET_NAME('QP', 'QP_INVALID_ATTRIBUTE');
2354: FND_MESSAGE.SET_TOKEN('ATTRIBUTE', 'Arithmetic Operator - Orderable item - PBC UNIT_PRICE -- PBH Wrong');
2355: QP_BULK_MSG.ADD(l_msg_rec);
2356: END IF;
2357: ELSIF p_line_rec.arithmetic_operator(I) = 'BLOCK_PRICE' THEN
2358: IF l_art_opr <> 'BLOCK_PRICE' THEN
2359: P_LINE_REC.PROCESS_STATUS_FLAG(I):= NULL; --'E';
2358: IF l_art_opr <> 'BLOCK_PRICE' THEN
2359: P_LINE_REC.PROCESS_STATUS_FLAG(I):= NULL; --'E';
2360: FND_MESSAGE.SET_NAME('QP', 'QP_INVALID_ATTRIBUTE');
2361: FND_MESSAGE.SET_TOKEN('ATTRIBUTE', 'Arithmetic Operator - Orderable item - PBC BLOCK_PRICE -- PBH Wrong');
2362: QP_BULK_MSG.ADD(l_msg_rec);
2363: END IF;
2364: ELSIF p_line_rec.arithmetic_operator(I) = 'BREAKUNIT_PRICE' THEN
2365: IF l_art_opr <> 'BLOCK_PRICE' OR l_pb_type_code <> 'RANGE' THEN
2366: P_LINE_REC.PROCESS_STATUS_FLAG(I):= NULL; --'E';
2365: IF l_art_opr <> 'BLOCK_PRICE' OR l_pb_type_code <> 'RANGE' THEN
2366: P_LINE_REC.PROCESS_STATUS_FLAG(I):= NULL; --'E';
2367: FND_MESSAGE.SET_NAME('QP', 'QP_INVALID_ATTRIBUTE');
2368: FND_MESSAGE.SET_TOKEN('ATTRIBUTE', 'Arithmetic Operator - Orderable item - PBC BREAKUNIT_PRICE -- PBH Wrong');
2369: QP_BULK_MSG.ADD(l_msg_rec);
2370: END IF;
2371: END IF;
2372: ELSIF l_servicable_item='Y' THEN
2373: IF p_line_rec.arithmetic_operator(I) = 'UNIT_PRICE' THEN
2374: IF l_art_opr <> 'UNIT_PRICE' and l_art_opr <> 'PERCENT_PRICE' THEN
2375: P_LINE_REC.PROCESS_STATUS_FLAG(I):= NULL; --'E';
2376: FND_MESSAGE.SET_NAME('QP', 'QP_INVALID_ATTRIBUTE');
2377: FND_MESSAGE.SET_TOKEN('ATTRIBUTE', 'Arithmetic Operator - Servicable item - PBC UNIT_PRICE -- PBH Wrong');
2378: QP_BULK_MSG.ADD(l_msg_rec);
2379: END IF;
2380: ELSIF p_line_rec.arithmetic_operator(I) = 'BLOCK_PRICE' THEN
2381: IF l_art_opr <> 'BLOCK_PRICE' THEN
2382: P_LINE_REC.PROCESS_STATUS_FLAG(I):= NULL; --'E';
2381: IF l_art_opr <> 'BLOCK_PRICE' THEN
2382: P_LINE_REC.PROCESS_STATUS_FLAG(I):= NULL; --'E';
2383: FND_MESSAGE.SET_NAME('QP', 'QP_INVALID_ATTRIBUTE');
2384: FND_MESSAGE.SET_TOKEN('ATTRIBUTE', 'Arithmetic Operator - Servicable item - PBC BLOCK_PRICE -- PBH Wrong');
2385: QP_BULK_MSG.ADD(l_msg_rec);
2386: END IF;
2387: ELSIF p_line_rec.arithmetic_operator(I) = 'BREAKUNIT_PRICE' THEN
2388: IF l_art_opr <> 'BLOCK_PRICE' THEN
2389: P_LINE_REC.PROCESS_STATUS_FLAG(I):= NULL; --'E';
2388: IF l_art_opr <> 'BLOCK_PRICE' THEN
2389: P_LINE_REC.PROCESS_STATUS_FLAG(I):= NULL; --'E';
2390: FND_MESSAGE.SET_NAME('QP', 'QP_INVALID_ATTRIBUTE');
2391: FND_MESSAGE.SET_TOKEN('ATTRIBUTE', 'Arithmetic Operator - Servicable item - PBC BREAKUNIT_PRICE -- PBH Wrong');
2392: QP_BULK_MSG.ADD(l_msg_rec);
2393: END IF;
2394: ELSIF p_line_rec.arithmetic_operator(I) = 'PERCENT_PRICE' THEN
2395: IF l_art_opr <> 'BLOCK_PRICE' OR
2396: l_art_opr <> 'PERCENT_PRICE' OR
2398: THEN
2399: P_LINE_REC.PROCESS_STATUS_FLAG(I):= NULL; --'E';
2400: FND_MESSAGE.SET_NAME('QP', 'QP_INVALID_ATTRIBUTE');
2401: FND_MESSAGE.SET_TOKEN('ATTRIBUTE', 'Arithmetic Operator - Servicable item - PBC PERCENT_PRICE -- PBH Wrong');
2402: QP_BULK_MSG.ADD(l_msg_rec);
2403: END IF;
2404: END IF;
2405: END IF;
2406: -- Bug# 5228560 (5246745) RAVI END
2421: THEN
2422:
2423: p_line_rec.process_status_flag(I):=NULL;
2424: FND_MESSAGE.SET_NAME('QP','QP_OPERAND_FORMULA');
2425: QP_BULK_MSG.ADD(l_msg_rec);
2426:
2427: END IF;
2428:
2429: -- Recurring value check
2435: IF p_line_rec.recurring_value(I) is not null THEN
2436: IF p_line_rec.recurring_value(I) < 1 Then
2437: FND_MESSAGE.SET_NAME('QP','QP_INVALID_ATTRIBUTE');
2438: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Recurring Value');
2439: QP_BULK_MSG.ADD(l_msg_rec);
2440: ELSIF p_line_rec.arithmetic_operator(I) <> 'BLOCK_PRICE'
2441: OR l_art_opr <> 'BLOCK_PRICE'
2442: OR l_pb_type_code <> 'RANGE'
2443: THEN
2442: OR l_pb_type_code <> 'RANGE'
2443: THEN
2444: FND_MESSAGE.SET_NAME('QP','QP_INVALID_ATTRIBUTE');
2445: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Recurring Value');
2446: QP_BULK_MSG.ADD(l_msg_rec);
2447: END IF;
2448: END IF;
2449: /**
2450: IF p_line_rec.recurring_value(I) is not null
2450: IF p_line_rec.recurring_value(I) is not null
2451: And p_line_rec.recurring_value(I) < 1 Then
2452: FND_MESSAGE.SET_NAME('QP','QP_INVALID_ATTRIBUTE');
2453: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Recurring Value');
2454: QP_BULK_MSG.ADD(l_msg_rec);
2455: END IF;
2456: **/
2457: -- Bug 4995724 END RAVI
2458:
2463: THEN
2464: Null;
2465: ELSIF (p_line_rec.start_date_active(I) > p_line_rec.end_date_active(I) ) THEN
2466: FND_MESSAGE.SET_NAME('QP', 'QP_STRT_DATE_BFR_END_DATE');
2467: QP_BULK_MSG.Add(l_msg_rec);
2468: --Bug# 5228368 RAVI
2469: p_line_rec.process_status_flag(I):=NULL;
2470: END IF;
2471:
2509: IF p_line_rec.start_date_active(I) < l_header_start_date OR
2510: p_line_rec.end_date_active(I) > l_header_end_date
2511: THEN
2512: FND_MESSAGE.SET_NAME('QP', 'QP_INVALID_DATE');
2513: QP_BULK_MSG.Add(l_msg_rec);
2514: p_line_rec.process_status_flag(I):=NULL;
2515: END IF;
2516: -- Bug 5246745 RAVI END
2517:
2562: IF l_PBH_start_date <> p_line_rec.start_date_active(I) OR
2563: l_PBH_end_date <> p_line_rec.end_date_active(I)
2564: THEN
2565: FND_MESSAGE.SET_NAME('QP', 'QP_INVALID_DATE');
2566: QP_BULK_MSG.Add(l_msg_rec);
2567: p_line_rec.process_status_flag(I):=NULL;
2568: END IF;
2569: END IF;
2570: -- Bug 5246745 RAVI END
2592: ,p_attribute13 => p_line_rec.attribute13(i)
2593: ,p_attribute14 => p_line_rec.attribute14(i)
2594: ,p_attribute15 => p_line_rec.attribute15(i)) THEN
2595:
2596: QP_BULK_MSG.ADD(l_msg_rec);
2597:
2598: -- Log Error Message
2599: FND_MESSAGE.SET_NAME('QP','QP_INVALID_ATTRIBUTE');
2600: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
2600: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
2601: 'Entity:Flexfield:Line_Desc_Flex');
2602: p_line_rec.process_status_flag(I):=NULL;
2603:
2604: QP_BULK_MSG.ADD(l_msg_rec);
2605:
2606: ELSE -- if the flex validation is successfull
2607:
2608: IF p_line_rec.context(i) IS NULL
2728:
2729: PROCEDURE ENTITY_QUALIFIER
2730: (p_qualifier_rec IN OUT NOCOPY QP_BULK_LOADER_PUB.qualifier_rec_type)
2731: IS
2732: l_msg_rec QP_BULK_MSG.Msg_Rec_Type;
2733: l_segment_name VARCHAR2(240);
2734: x_value VARCHAR2(240);
2735: x_id VARCHAR2(150);
2736: x_format_type VARCHAR2(1);
2792: IF p_qualifier_rec.qualifier_grouping_no(I) IS NULL THEN
2793: p_qualifier_rec.process_status_flag(I):=NULL;
2794: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
2795: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','QUALIFIER GROUPING NO');
2796: QP_BULK_MSG.ADD(l_msg_rec);
2797: END IF;
2798:
2799: IF p_qualifier_rec.list_line_id(I) IS NOT NULL THEN
2800: IF p_qualifier_rec.list_line_id(I) <> -1 THEN
2800: IF p_qualifier_rec.list_line_id(I) <> -1 THEN
2801: p_qualifier_rec.process_status_flag(I):=NULL;
2802: FND_MESSAGE.SET_NAME('QP','QP_INVALID_ATTRIBUTE');
2803: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','LIST_LINE_ID');
2804: QP_BULK_MSG.ADD(l_msg_rec);
2805: END IF;
2806: ELSE
2807: p_qualifier_rec.list_line_id(I):=-1;
2808: END IF;
2811: p_qualifier_rec.qualifier_context(I) := '1';
2812: p_qualifier_rec.process_status_flag(I):=NULL;
2813: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
2814: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','QUALIFIER CONTEXT');
2815: QP_BULK_MSG.ADD(l_msg_rec);
2816: END IF; */
2817:
2818:
2819: -- Qualifier Attribute
2824: p_qualifier_rec.qualifier_attribute_code(I):= '1';
2825: p_qualifier_rec.process_status_flag(I):=NULL;
2826: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
2827: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','QUALIFIER ATTRIBUTE CODE');
2828: QP_BULK_MSG.ADD(l_msg_rec);
2829: /* ELSE
2830:
2831: BEGIN
2832: p_qualifier_rec.qualifier_attribute(I):= QP_UTIL.Get_Attribute_Name(
2839: p_qualifier_rec.qualifier_attribute(I):='1';
2840: p_qualifier_rec.process_status_flag(I):=NULL;
2841: FND_MESSAGE.SET_NAME('QP','QP_VALUE_TO_ID_ERROR');
2842: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','qualifier_attribute');
2843: QP_BULK_MSG.ADD(l_msg_rec);
2844: END IF;
2845: EXCEPTION
2846: WHEN NO_DATA_FOUND THEN
2847: p_qualifier_rec.qualifier_attribute(I):='1';
2847: p_qualifier_rec.qualifier_attribute(I):='1';
2848: p_qualifier_rec.process_status_flag(I):=NULL;
2849: FND_MESSAGE.SET_NAME('QP','QP_VALUE_TO_ID_ERROR');
2850: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','qualifier_attribute');
2851: QP_BULK_MSG.ADD(l_msg_rec);
2852: END;
2853: END IF; */
2854:
2855: END IF;
2860: THEN
2861: p_qualifier_rec.process_status_flag(I):=NULL;
2862: FND_MESSAGE.SET_NAME('QP','QP_INVALID_ATTRIBUTE');
2863: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','QUALIFY HIER DESCENDENTS FLAG ');
2864: qp_bulk_msg.add(l_msg_rec);
2865: ELSIF p_qualifier_rec.qualify_hier_descendents_flag(I) in ('Y','y') THEN
2866: BEGIN
2867: select 'Y' into l_hierarchy_enabled
2868: from dual
2878: EXCEPTION WHEN NO_DATA_FOUND THEN
2879: p_qualifier_rec.process_status_flag(I):=NULL;
2880: FND_MESSAGE.SET_NAME('QP','QP_INVALID_ATTRIBUTE');
2881: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','QUALIFY HIER DESCENDENTS FLAG ');
2882: qp_bulk_msg.add(l_msg_rec);
2883: END;
2884: ELSE
2885: null;
2886: END IF;
2893: IF p_qualifier_rec.start_date_active(I) > p_qualifier_rec.end_date_active(I) THEN
2894: qp_bulk_loader_pub.write_log('End Date is before Start Date');
2895: p_qualifier_rec.process_status_flag(I):=NULL;
2896: FND_MESSAGE.SET_NAME('QP', 'QP_STRT_DATE_BFR_END_DATE');
2897: QP_BULK_MSG.Add(l_msg_rec);
2898: END IF;
2899: ELSE
2900: qp_bulk_loader_pub.write_log('Qualifier Start Date is null');
2901: p_qualifier_rec.process_status_flag(I):=NULL;
2899: ELSE
2900: qp_bulk_loader_pub.write_log('Qualifier Start Date is null');
2901: p_qualifier_rec.process_status_flag(I):=NULL;
2902: FND_MESSAGE.SET_NAME('QP', 'QP_INVALID_DATE');
2903: QP_BULK_MSG.Add(l_msg_rec);
2904: END IF;
2905: END IF;
2906: -- Bug# 5214576 RAVI END
2907:
2921: exception when others then
2922: p_qualifier_rec.process_status_flag(I):=NULL;
2923: FND_MESSAGE.SET_NAME('QP','QP_INVALID_ATTRIBUTE');
2924: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','QUALIFIER_ATTR_VALUE');
2925: QP_BULK_MSG.ADD(l_msg_rec);
2926: end;
2927: ELSE
2928:
2929: -- Bug 5152088 Checking if Qualifier Attribute Value Code is valid
2953: IF l_error_code IS NULL THEN
2954: p_qualifier_rec.process_status_flag(I):=NULL;
2955: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
2956: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','QUALIFIER ATTRIBUTE CODE');
2957: QP_BULK_MSG.ADD(l_msg_rec);
2958: ELSE
2959: IF l_error_code=1 THEN
2960: qp_bulk_loader_pub.write_log('Qualifier Flexfield_name is not passed.');
2961: p_qualifier_rec.process_status_flag(I):=NULL;
2960: qp_bulk_loader_pub.write_log('Qualifier Flexfield_name is not passed.');
2961: p_qualifier_rec.process_status_flag(I):=NULL;
2962: FND_MESSAGE.SET_NAME('QP','QP_QLF_FLXFLD_NULL');
2963: --FND_MESSAGE.SET_TOKEN('ATTRIBUTE','QUALIFIER ATTRIBUTE CODE');
2964: QP_BULK_MSG.ADD(l_msg_rec);
2965: ELSIF l_error_code=2 THEN
2966: qp_bulk_loader_pub.write_log('Qualifier Context is not passed');
2967: p_qualifier_rec.process_status_flag(I):=NULL;
2968: FND_MESSAGE.SET_NAME('QP','QP_QLF_CNTXT_NULL');
2966: qp_bulk_loader_pub.write_log('Qualifier Context is not passed');
2967: p_qualifier_rec.process_status_flag(I):=NULL;
2968: FND_MESSAGE.SET_NAME('QP','QP_QLF_CNTXT_NULL');
2969: --FND_MESSAGE.SET_TOKEN('ATTRIBUTE','QUALIFIER ATTRIBUTE CODE');
2970: QP_BULK_MSG.ADD(l_msg_rec);
2971: ELSIF l_error_code=3 THEN
2972: qp_bulk_loader_pub.write_log('Qualifier Attribute is not passed.');
2973: p_qualifier_rec.process_status_flag(I):=NULL;
2974: FND_MESSAGE.SET_NAME('QP','QP_QLF_ATTR_NULL');
2972: qp_bulk_loader_pub.write_log('Qualifier Attribute is not passed.');
2973: p_qualifier_rec.process_status_flag(I):=NULL;
2974: FND_MESSAGE.SET_NAME('QP','QP_QLF_ATTR_NULL');
2975: --FND_MESSAGE.SET_TOKEN('ATTRIBUTE','QUALIFIER ATTRIBUTE CODE');
2976: QP_BULK_MSG.ADD(l_msg_rec);
2977: ELSIF l_error_code=4 THEN
2978: qp_bulk_loader_pub.write_log('Qualifier Value is not passed');
2979: p_qualifier_rec.process_status_flag(I):=NULL;
2980: FND_MESSAGE.SET_NAME('QP','QP_QLF_ATTR_VAL_NULL');
2978: qp_bulk_loader_pub.write_log('Qualifier Value is not passed');
2979: p_qualifier_rec.process_status_flag(I):=NULL;
2980: FND_MESSAGE.SET_NAME('QP','QP_QLF_ATTR_VAL_NULL');
2981: --FND_MESSAGE.SET_TOKEN('ATTRIBUTE','QUALIFIER ATTRIBUTE CODE');
2982: QP_BULK_MSG.ADD(l_msg_rec);
2983: ELSIF l_error_code=5 THEN
2984: qp_bulk_loader_pub.write_log('Qualifier Application short name is not passed');
2985: p_qualifier_rec.process_status_flag(I):=NULL;
2986: FND_MESSAGE.SET_NAME('QP','QP_QLF_APP_NAME_NULL');
2984: qp_bulk_loader_pub.write_log('Qualifier Application short name is not passed');
2985: p_qualifier_rec.process_status_flag(I):=NULL;
2986: FND_MESSAGE.SET_NAME('QP','QP_QLF_APP_NAME_NULL');
2987: --FND_MESSAGE.SET_TOKEN('ATTRIBUTE','QUALIFIER ATTRIBUTE CODE');
2988: QP_BULK_MSG.ADD(l_msg_rec);
2989: ELSIF l_error_code=6 THEN
2990: qp_bulk_loader_pub.write_log('Qualifier Invalid application short name.');
2991: p_qualifier_rec.process_status_flag(I):=NULL;
2992: FND_MESSAGE.SET_NAME('QP','QP_QLF_INVALID_APP_NAME');
2990: qp_bulk_loader_pub.write_log('Qualifier Invalid application short name.');
2991: p_qualifier_rec.process_status_flag(I):=NULL;
2992: FND_MESSAGE.SET_NAME('QP','QP_QLF_INVALID_APP_NAME');
2993: --FND_MESSAGE.SET_TOKEN('ATTRIBUTE','QUALIFIER ATTRIBUTE CODE');
2994: QP_BULK_MSG.ADD(l_msg_rec);
2995: ELSIF l_error_code=7 THEN
2996: qp_bulk_loader_pub.write_log('Qualifier Invalid context passed');
2997: p_qualifier_rec.process_status_flag(I):=NULL;
2998: FND_MESSAGE.SET_NAME('QP','QP_QLF_INVALID_CNTXT');
2996: qp_bulk_loader_pub.write_log('Qualifier Invalid context passed');
2997: p_qualifier_rec.process_status_flag(I):=NULL;
2998: FND_MESSAGE.SET_NAME('QP','QP_QLF_INVALID_CNTXT');
2999: --FND_MESSAGE.SET_TOKEN('ATTRIBUTE','QUALIFIER ATTRIBUTE CODE');
3000: QP_BULK_MSG.ADD(l_msg_rec);
3001: ELSIF l_error_code=8 THEN
3002: qp_bulk_loader_pub.write_log('Qualifier Invalid Attribute passed');
3003: p_qualifier_rec.process_status_flag(I):=NULL;
3004: FND_MESSAGE.SET_NAME('QP','QP_QLF_INVALID_ATTRIB');
3002: qp_bulk_loader_pub.write_log('Qualifier Invalid Attribute passed');
3003: p_qualifier_rec.process_status_flag(I):=NULL;
3004: FND_MESSAGE.SET_NAME('QP','QP_QLF_INVALID_ATTRIB');
3005: --FND_MESSAGE.SET_TOKEN('ATTRIBUTE','QUALIFIER ATTRIBUTE CODE');
3006: QP_BULK_MSG.ADD(l_msg_rec);
3007: ELSIF l_error_code=9 THEN
3008: qp_bulk_loader_pub.write_log('Qualifier Value does not exist');
3009: p_qualifier_rec.process_status_flag(I):=NULL;
3010: FND_MESSAGE.SET_NAME('QP','QP_QLF_INVALID_ATTR_VAL');
3008: qp_bulk_loader_pub.write_log('Qualifier Value does not exist');
3009: p_qualifier_rec.process_status_flag(I):=NULL;
3010: FND_MESSAGE.SET_NAME('QP','QP_QLF_INVALID_ATTR_VAL');
3011: --FND_MESSAGE.SET_TOKEN('ATTRIBUTE','QUALIFIER ATTRIBUTE CODE');
3012: QP_BULK_MSG.ADD(l_msg_rec);
3013: ELSIF l_error_code=10 THEN
3014: qp_bulk_loader_pub.write_log('Qualifier Invalid Flexfield Name');
3015: p_qualifier_rec.process_status_flag(I):=NULL;
3016: FND_MESSAGE.SET_NAME('QP','QP_QLF_INVALID_FLXFLD_NAME');
3014: qp_bulk_loader_pub.write_log('Qualifier Invalid Flexfield Name');
3015: p_qualifier_rec.process_status_flag(I):=NULL;
3016: FND_MESSAGE.SET_NAME('QP','QP_QLF_INVALID_FLXFLD_NAME');
3017: --FND_MESSAGE.SET_TOKEN('ATTRIBUTE','QUALIFIER ATTRIBUTE CODE');
3018: QP_BULK_MSG.ADD(l_msg_rec);
3019: END IF;
3020: END IF;
3021: END IF;
3022:
3030: IF p_qualifier_rec.qualifier_attr_value_to_code(I) IS NULL THEN
3031: p_qualifier_rec.process_status_flag(I):=NULL;
3032: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
3033: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','QUALIFIER ATTRIBUTE VALUE TO');
3034: QP_BULK_MSG.ADD(l_msg_rec);
3035: ELSE
3036:
3037: BEGIN
3038: l_segment_name :=QP_PRICE_LIST_LINE_UTIL.Get_Segment_Name
3058: IF p_qualifier_rec.qualifier_attr_value_to(I) IS NULL THEN
3059: p_qualifier_rec.process_status_flag(I):=NULL;
3060: FND_MESSAGE.SET_NAME('QP','QP_VALUE_TO_ID_ERROR');
3061: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','qualifier_attr_value_to');
3062: QP_BULK_MSG.add(l_msg_rec);
3063: END IF;
3064:
3065: EXCEPTION
3066: WHEN NO_DATA_FOUND THEN
3066: WHEN NO_DATA_FOUND THEN
3067: p_qualifier_rec.process_status_flag(I):=NULL;
3068: FND_MESSAGE.SET_NAME('QP','QP_VALUE_TO_ID_ERROR');
3069: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','qualifier_attr_value_to');
3070: QP_BULK_MSG.ADD(l_msg_rec);
3071:
3072: END;
3073: END IF;
3074: END IF;
3081: IF p_qualifier_rec.orig_sys_qualifier_ref(I) IS NULL THEN
3082: p_qualifier_rec.process_status_flag(I):=NULL;
3083: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
3084: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','ORIG_SYS_QUALIFIER_REF');
3085: QP_BULK_MSG.ADD(l_msg_rec);
3086: END IF;
3087: l_exist:=null;
3088: -- Check for uniqueness of orig_sys_qualifier_ref
3089: BEGIN
3099: IF p_qualifier_rec.interface_action_code(I) = 'INSERT' AND l_exist = 1 THEN
3100: p_qualifier_rec.process_status_flag(I):=NULL;
3101: FND_MESSAGE.SET_NAME('QP', 'ORIG_SYS_QUAL_REF_NOT_UNIQUE');
3102: FND_MESSAGE.SET_TOKEN('REF_NO', p_qualifier_rec.orig_sys_qualifier_ref(I));
3103: QP_BULK_MSG.add(l_msg_rec);
3104: ELSIF p_qualifier_rec.interface_action_code(I) = 'UPDATE' AND l_exist = 0 THEN
3105: p_qualifier_rec.process_status_flag(I):=NULL;
3106: FND_MESSAGE.SET_NAME('QP', 'QUALIFIER_REC_DOES_NOT_EXIST');
3107: FND_MESSAGE.SET_TOKEN('REF_NO', p_qualifier_rec.orig_sys_qualifier_ref(I));
3104: ELSIF p_qualifier_rec.interface_action_code(I) = 'UPDATE' AND l_exist = 0 THEN
3105: p_qualifier_rec.process_status_flag(I):=NULL;
3106: FND_MESSAGE.SET_NAME('QP', 'QUALIFIER_REC_DOES_NOT_EXIST');
3107: FND_MESSAGE.SET_TOKEN('REF_NO', p_qualifier_rec.orig_sys_qualifier_ref(I));
3108: QP_BULK_MSG.add(l_msg_rec);
3109: END IF;
3110: If p_qualifier_rec.interface_action_code(I)='INSERT' THEN
3111: l_exist:=null;
3112: Select count(*) INTO l_exist
3119: IF l_exist >1 THEN
3120: p_qualifier_rec.process_status_flag(I):=NULL;
3121: FND_MESSAGE.SET_NAME('QP', 'ORIG_SYS_QUAL_REF_NOT_UNIQUE');
3122: FND_MESSAGE.SET_TOKEN('REF_NO', p_qualifier_rec.orig_sys_qualifier_ref(I));
3123: QP_BULK_MSG.add(l_msg_rec);
3124: END IF;
3125: end if;
3126:
3127: Begin
3134: p_qualifier_rec.process_status_flag(I):=NULL;
3135: p_qualifier_rec.list_header_id(I) := -1;
3136: fnd_message.set_name('QP', 'QP_INVALID_HEADER_REF');
3137: FND_MESSAGE.SET_TOKEN('REF_NO',NULL);
3138: qp_bulk_msg.add(l_msg_rec);
3139: End;
3140:
3141: --SECONDARY PRICELIST CHECK
3142: qp_bulk_loader_pub.write_log( 'SECONDARY PRICELIST CHECK');
3159: qp_bulk_loader_pub.write_log( 'Secondary Price List Currency not compatible with primary price list currency code');
3160: P_QUALIFIER_REC.PROCESS_STATUS_FLAG(I):= NULL; --'E';
3161: FND_MESSAGE.SET_NAME('QP', 'QP_SEC_PRL_CCD_INVALID');
3162: --FND_MESSAGE.SET_TOKEN('PRICELIST_NAME', p_qualifier_rec.qualifier_attr_value(I));
3163: QP_BULK_MSG.ADD(l_msg_rec);
3164: END;
3165: -- Bug 4926775 END RAVI
3166:
3167: IF p_qualifier_rec.qualifier_attr_value(I) IS NULL THEN
3176: WHEN NO_DATA_FOUND THEN
3177: P_QUALIFIER_REC.PROCESS_STATUS_FLAG(I):= NULL; --'E';
3178: FND_MESSAGE.SET_NAME('QP', 'SEC_PRL_ERROR');
3179: FND_MESSAGE.SET_TOKEN('PRICELIST_NAME', p_qualifier_rec.qualifier_attr_value_code(I));
3180: QP_BULK_MSG.ADD(l_msg_rec);
3181: END;
3182: END IF;
3183: IF p_qualifier_rec.qualifier_attr_value(I) IS NOT NULL THEN
3184: qp_bulk_loader_pub.write_log( 'Secondary Price List duplicate check');
3216: if l_exist <> 0 then
3217: P_QUALIFIER_REC.PROCESS_STATUS_FLAG(I):= NULL; --'E';
3218: FND_MESSAGE.SET_NAME('QP','QP_INVALID_ATTRIBUTE');
3219: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',' Price List');
3220: QP_BULK_MSG.ADD(l_msg_rec);
3221: end if;
3222: qp_bulk_loader_pub.write_log( 'Secondary Price List security check');
3223: IF QP_security.check_function(p_function_name => QP_Security.G_FUNCTION_UPDATE,
3224: p_instance_type => QP_Security.G_PRICELIST_OBJECT,
3225: p_instance_pk1 => to_number(p_qualifier_rec.qualifier_attr_value(I))) <> 'T' THEN
3226: p_qualifier_rec.process_status_flag(I):=NULL;
3227: fnd_message.set_name('QP', 'QP_NO_PRIVILEGE');
3228: fnd_message.set_token('PRICING_OBJECT', 'Price List');
3229: qp_bulk_msg.add(l_msg_rec);
3230: END IF;
3231: END IF;
3232: END IF;
3233:
3248: IF l_exist > 0 THEN
3249: P_QUALIFIER_REC.PROCESS_STATUS_FLAG(I):= NULL; --'E';
3250: FND_MESSAGE.SET_NAME('QP','QP_1_SEC_PLST_FOR_BASIC');
3251: --Only one secondary pricelist allowed in Basic Pricing
3252: QP_BULK_MSG.ADD(l_msg_rec);
3253: END IF;
3254: l_exist:=0;
3255: SELECT count(*)
3256: INTO l_exist
3263: IF l_exist > 1 THEN
3264: P_QUALIFIER_REC.PROCESS_STATUS_FLAG(I):= NULL; --'E';
3265: FND_MESSAGE.SET_NAME('QP','QP_1_SEC_PLST_FOR_BASIC');
3266: --Only one secondary pricelist allowed in Basic Pricing
3267: QP_BULK_MSG.ADD(l_msg_rec);
3268: END IF;
3269: END IF;
3270: END IF;
3271: --check for the qualifier level
3283:
3284: IF l_seg_level = 'ORDER' THEN
3285: P_QUALIFIER_REC.PROCESS_STATUS_FLAG(I):= NULL; --'E';
3286: FND_MESSAGE.SET_NAME('QP', 'QP_ORDER_LEVEL_QUAL_NOT_ALLOWED');
3287: QP_BULK_MSG.ADD(l_msg_rec);
3288: END IF;
3289:
3290: EXCEPTION
3291: WHEN NO_DATA_FOUND THEN
3346: FND_MESSAGE.SET_TOKEN('CONTEXT',
3347: p_Qualifier_rec.qualifier_context(I));
3348: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
3349: p_Qualifier_rec.qualifier_attribute(I));
3350: QP_BULK_MSG.ADD(l_msg_rec);
3351:
3352: END IF;
3353:
3354: IF l_sourcing_status <> 'Y' THEN
3361: FND_MESSAGE.SET_TOKEN('CONTEXT',
3362: p_Qualifier_rec.qualifier_context(I));
3363: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
3364: p_Qualifier_rec.qualifier_attribute(I));
3365: QP_BULK_MSG.ADD(l_msg_rec);
3366: END IF;
3367:
3368: END IF;
3369:
3391:
3392: PROCEDURE ENTITY_PRICING_ATTR
3393: (p_pricing_attr_rec IN OUT NOCOPY QP_BULK_LOADER_PUB.pricing_attr_rec_type)
3394: IS
3395: l_msg_rec QP_BULK_MSG.Msg_Rec_Type;
3396: l_exist NUMBER;
3397: l_exist1 NUMBER;
3398: l_comparison_operator_code VARCHAR2(30);
3399: l_error_code NUMBER;
3747: p_pricing_attr_rec.list_line_id(I) := -1;
3748: p_pricing_attr_rec.process_status_flag(I):=NULL;
3749: fnd_message.set_name('QP', 'QP_INVALID_LINE_REF');
3750: FND_MESSAGE.SET_TOKEN('REF_NO', p_pricing_attr_rec.orig_sys_line_ref(I));
3751: qp_bulk_msg.add(l_msg_rec);
3752: END;
3753: qp_bulk_loader_pub.write_log('After entity list_line_id pricing attribute');
3754:
3755:
3796: if l_pa_count=0 then
3797: p_pricing_attr_rec.process_status_flag(I):=NULL;
3798: FND_MESSAGE.SET_NAME('QP', 'QP_INVALID_ATTRIBUTE');
3799: fnd_message.set_token('ATTRIBUTE', 'PRODUCT_ATTRIBUTE_VALUE');
3800: qp_bulk_msg.add(l_msg_rec);
3801: end if;
3802: END IF;
3803: -- Bug# 5246745 RAVI END
3804:
3815: p_pricing_attr_rec.process_status_flag(I):=NULL;
3816: fnd_message.set_name('QP', 'QP_INVALID_HEADER_REF');
3817: FND_MESSAGE.SET_TOKEN('REF_NO', p_pricing_attr_rec.orig_sys_header_ref(I));
3818: FND_MESSAGE.SET_TOKEN('LS_CODE', NULL);
3819: qp_bulk_msg.add(l_msg_rec);
3820: END;
3821:
3822: -- Excluder Flag
3823: p_pricing_attr_rec.excluder_flag(I):='N';
3849: IF p_pricing_attr_rec.interface_action_code(I) = 'INSERT' AND l_exist = 1 THEN
3850: p_pricing_attr_rec.process_status_flag(I):=NULL;
3851: fnd_message.set_name('QP', 'ORIG_SYS_PRC_ATTR_REF_NOT_UNIQ');
3852: FND_MESSAGE.SET_TOKEN('REF_NO', p_pricing_attr_rec.orig_sys_pricing_attr_ref(I));
3853: qp_bulk_msg.add(l_msg_rec);
3854: ELSIF p_pricing_attr_rec.interface_action_code(I) = 'UPDATE' AND l_exist = 0 THEN
3855: p_pricing_attr_rec.process_status_flag(I):=NULL;
3856: fnd_message.set_name('QP', 'PRC_ATTR_REC_DOES_NOT_EXIST');
3857: FND_MESSAGE.SET_TOKEN('REF_NO', p_pricing_attr_rec.orig_sys_pricing_attr_ref(I));
3854: ELSIF p_pricing_attr_rec.interface_action_code(I) = 'UPDATE' AND l_exist = 0 THEN
3855: p_pricing_attr_rec.process_status_flag(I):=NULL;
3856: fnd_message.set_name('QP', 'PRC_ATTR_REC_DOES_NOT_EXIST');
3857: FND_MESSAGE.SET_TOKEN('REF_NO', p_pricing_attr_rec.orig_sys_pricing_attr_ref(I));
3858: qp_bulk_msg.add(l_msg_rec);
3859: END IF;
3860:
3861: IF p_pricing_attr_rec.interface_action_code(I) = 'INSERT' THEN
3862: l_exist:=null;
3876: IF l_exist > 1 THEN
3877: p_pricing_attr_rec.process_status_flag(I):=NULL;
3878: fnd_message.set_name('QP', 'ORIG_SYS_PRC_ATTR_REF_NOT_UNIQ');
3879: FND_MESSAGE.SET_TOKEN('REF_NO', p_pricing_attr_rec.orig_sys_pricing_attr_ref(I));
3880: qp_bulk_msg.add(l_msg_rec);
3881: END IF;
3882: END IF;
3883:
3884: -- Functional Area Validation for Hierarchical Categories (sfiresto)
3907: FND_MESSAGE.set_name('QP', 'QP_INVALID_CAT_FUNC_PTE');
3908: FND_MESSAGE.set_token('CATID', p_PRICING_ATTR_REC.product_attr_value(I));
3909: FND_MESSAGE.set_token('PTE', l_pte_code);
3910: FND_MESSAGE.set_token('SS', l_ss_code);
3911: QP_BULK_MSG.Add(L_MSG_REC);
3912:
3913: END IF;
3914:
3915: END;
3927: ELSE
3928: p_pricing_attr_rec.process_status_flag(I):=NULL;
3929: fnd_message.set_name('QP', 'QP_ATTRIBUTE_REQUIRED');
3930: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Product Attribute Datatype');
3931: qp_bulk_msg.add(l_msg_rec);
3932: END IF;
3933:
3934: qp_bulk_loader_pub.write_log('After entity pricing attribute');
3935:
3938: IF P_PRICING_ATTR_REC.PRODUCT_UOM_CODE(I) IS NULL THEN
3939: P_PRICING_ATTR_REC.process_status_flag(I):=NULL;
3940: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
3941: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',QP_PRC_UTIL.Get_Attribute_Name('PRODUCT_UOM_CODE'));
3942: QP_BULK_MSG.ADD(L_MSG_REC);
3943: END IF;
3944:
3945:
3946: --- check for single pricing_attribute record with pricing context/attr/value null
3982: qp_bulk_loader_pub.write_log('Count of records in Int table with pricing contect/attr/value null' || to_char(l_exist1));
3983: IF l_exist > 0 THEN
3984: p_pricing_attr_rec.process_status_flag(I):=NULL;
3985: FND_MESSAGE.SET_NAME('QP','QP_BULK_PRC_ATTR_ERROR');
3986: QP_BULK_MSG.ADD(l_msg_rec);
3987: END IF;
3988: IF l_exist1 > 0 THEN
3989: p_pricing_attr_rec.process_status_flag(I):=NULL;
3990: FND_MESSAGE.SET_NAME('QP','QP_BULK_INT_PRC_ATTR_ERROR');
3987: END IF;
3988: IF l_exist1 > 0 THEN
3989: p_pricing_attr_rec.process_status_flag(I):=NULL;
3990: FND_MESSAGE.SET_NAME('QP','QP_BULK_INT_PRC_ATTR_ERROR');
3991: QP_BULK_MSG.ADD(l_msg_rec);
3992: END IF;
3993:
3994: END IF;
3995:
4026: IF l_exist > 0 OR l_exist1 > 0 THEN
4027: p_pricing_attr_rec.process_status_flag(I):=NULL;
4028: FND_MESSAGE.SET_NAME('QP','QP_1_PRIC_CONT_FOR_BASIC');
4029: --Only one pricing context allwed in Basic Pricing
4030: QP_BULK_MSG.ADD(l_msg_rec);
4031: END IF;
4032:
4033: END IF;
4034: END IF;
4049: WHEN NO_DATA_FOUND THEN
4050: p_pricing_attr_rec.process_status_flag(I):=NULL;
4051: FND_MESSAGE.SET_NAME('QP','QP_PRIC_CONTXT_NA_BASIC');
4052: --Pricing Attribute Context not allowed in Basic Pricing
4053: QP_BULK_MSG.ADD(l_msg_rec);
4054: END;
4055:
4056: END IF;
4057:
4069: WHEN NO_DATA_FOUND THEN
4070: p_pricing_attr_rec.process_status_flag(I):=NULL;
4071: FND_MESSAGE.SET_NAME('QP','QP_PROD_CONTXT_NA_BASIC');
4072: --Product Attribute Context not allowed in Basic Pricing
4073: QP_BULK_MSG.ADD(l_msg_rec);
4074: END;
4075: END IF;
4076: END IF;
4077: --- check for consistency of product context/att/val among the attributes
4109:
4110: IF l_exist >0 OR l_exist1>0 THEN
4111: p_pricing_attr_rec.process_status_flag(I):=NULL;
4112: FND_MESSAGE.SET_NAME('QP', 'INVALID_PROD_CONTEXT_ATTR_PAIR');
4113: QP_BULK_MSG.ADD(l_msg_rec);
4114: END IF;
4115:
4116: -- check for pricing atributes
4117: IF (p_Pricing_Attr_rec.pricing_attribute_context(I) IS NOT NULL
4126: p_pricing_attr_rec.process_status_flag(I):=NULL;
4127: IF p_Pricing_Attr_rec.pricing_attribute_context(I) IS NULL THEN
4128: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED' );
4129: FND_MESSAGE.SET_TOKEN('ATTRIBUTE', 'PRICING_ATTRIBUTE_CONTEXT');
4130: QP_BULK_MSG.ADD(l_msg_rec);
4131: END IF;
4132: IF p_Pricing_Attr_rec.pricing_attribute(I) IS NULL THEN
4133: IF p_Pricing_Attr_rec.pricing_attr_code(I) IS NULL THEN
4134: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED' );
4132: IF p_Pricing_Attr_rec.pricing_attribute(I) IS NULL THEN
4133: IF p_Pricing_Attr_rec.pricing_attr_code(I) IS NULL THEN
4134: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED' );
4135: FND_MESSAGE.SET_TOKEN('ATTRIBUTE', 'PRICING_ATTRIBUTE');
4136: QP_BULK_MSG.ADD(l_msg_rec);
4137: ELSE
4138: FND_MESSAGE.SET_NAME('QP','QP_VALUE_TO_ID_ERROR' );
4139: FND_MESSAGE.SET_TOKEN('ATTRIBUTE', 'PRICING_ATTRIBUTE');
4140: QP_BULK_MSG.ADD(l_msg_rec);
4136: QP_BULK_MSG.ADD(l_msg_rec);
4137: ELSE
4138: FND_MESSAGE.SET_NAME('QP','QP_VALUE_TO_ID_ERROR' );
4139: FND_MESSAGE.SET_TOKEN('ATTRIBUTE', 'PRICING_ATTRIBUTE');
4140: QP_BULK_MSG.ADD(l_msg_rec);
4141: END IF;
4142: END IF;
4143: IF p_Pricing_Attr_rec.comparison_operator_code(I) IS NULL THEN
4144: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED' );
4142: END IF;
4143: IF p_Pricing_Attr_rec.comparison_operator_code(I) IS NULL THEN
4144: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED' );
4145: FND_MESSAGE.SET_TOKEN('ATTRIBUTE', 'COMPARISON_OPERATOR_CODE');
4146: QP_BULK_MSG.ADD(l_msg_rec);
4147: END IF;
4148: ELSE
4149: QP_UTIL.validate_qp_flexfield(flexfield_name =>'QP_ATTR_DEFNS_PRICING'
4150: ,context =>p_Pricing_Attr_rec.pricing_attribute_context(I)
4165: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED' );
4166: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
4167: QP_PRC_UTIL.Get_Attribute_Name('PRICING_ATTRIBUTE_CONTEXT'));
4168:
4169: QP_BULK_MSG.Add(l_msg_rec);
4170: END IF;
4171:
4172: If l_attribute_error = 'N' AND l_error_code = 8 -- invalid Attribute
4173: Then
4173: Then
4174: p_pricing_attr_rec.process_status_flag(I):=NULL;
4175: FND_MESSAGE.SET_NAME('QP','QP_INVALID_ATTRIBUTE');
4176: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',' Attribute');
4177: QP_BULK_MSG.Add(l_msg_rec);
4178: END IF;
4179:
4180: IF p_pricing_Attr_rec.comparison_operator_code(I) = '=' Then
4181:
4183: Then
4184: p_pricing_attr_rec.process_status_flag(I):=NULL;
4185: FND_MESSAGE.SET_NAME('QP','QP_INVALID_ATTRIBUTE');
4186: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',' Value From ');
4187: QP_BULK_MSG.Add(l_msg_rec);
4188: End If;
4189: END IF;
4190:
4191: p_pricing_attr_rec.pricing_attribute_datatype(I):=l_datatype;
4196: THEN
4197: p_pricing_attr_rec.process_status_flag(I):=NULL;
4198: FND_MESSAGE.SET_NAME('QP','QP_INVALID_ATTRIBUTE');
4199: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Pricing Attribute');
4200: QP_BULK_MSG.Add(l_msg_rec);
4201: END IF;
4202:
4203: --validation for canonical form
4204: l_error_code:=QP_UTIL.validate_num_date(p_Pricing_Attr_rec.pricing_attribute_datatype(I),
4206: IF l_error_code <> 0 THEN
4207: p_pricing_attr_rec.process_status_flag(I):=NULL;
4208: FND_MESSAGE.SET_NAME('QP','QP_INVALID_ATTRIBUTE');
4209: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Value From ');
4210: QP_BULK_MSG.Add(l_msg_rec);
4211: END IF;
4212:
4213: -- Validation for Value_To
4214:
4222: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED' );
4223: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
4224: QP_PRC_UTIL.Get_Attribute_Name('PRICING_ATTR_VALUE_TO')||'/'||
4225: QP_PRC_UTIL.Get_Attribute_Name('PRICING_ATTR_VALUE_FROM'));
4226: QP_BULK_MSG.Add(l_msg_rec);
4227: END IF;
4228:
4229: -- validate value from
4230:
4236: p_pricing_attr_rec.process_status_flag(I):=NULL;
4237: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED' );
4238: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
4239: QP_PRC_UTIL.Get_Attribute_Name('PRICING_ATTR_VALUE_FROM'));
4240: QP_BULK_MSG.Add(l_msg_rec);
4241: END IF;
4242:
4243: l_error_code:=QP_UTIL.validate_num_date(p_Pricing_Attr_rec.pricing_attribute_datatype(I),
4244: p_Pricing_Attr_rec.pricing_attr_value_to(I));
4246: IF l_error_code <> 0 THEN
4247: p_pricing_attr_rec.process_status_flag(I):=NULL;
4248: FND_MESSAGE.SET_NAME('QP','QP_INVALID_ATTRIBUTE');
4249: FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Value To ');
4250: QP_BULK_MSG.Add(l_msg_rec);
4251: END IF;
4252:
4253: END IF; -- Else
4254:
4261: p_pricing_attr_rec.process_status_flag(I) :=NULL; --'E';
4262: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED' );
4263: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
4264: QP_PRC_UTIL.Get_Attribute_Name('COMPARISON_OPERATOR_CODE'));
4265: QP_BULK_MSG.Add(l_msg_rec);
4266: ElSE
4267: SELECT lookup_code
4268: INTO l_comparison_operator_code
4269: FROM QP_LOOKUPS
4275: p_pricing_attr_rec.process_status_flag(I) :=NULL; --'E';
4276: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED' );
4277: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
4278: QP_PRC_UTIL.Get_Attribute_Name('COMPARISON_OPERATOR_CODE'));
4279: QP_BULK_MSG.Add(l_msg_rec);
4280: END IF;
4281:
4282: END IF; /* comparison_operator_code is null */
4283:
4302: if l_exist > 0 then
4303: p_pricing_attr_rec.process_status_flag(I) :=NULL; --'E';
4304: FND_MESSAGE.SET_NAME('QP','QP_INVALID_ATTRIBUTE');
4305: FND_MESSAGE.SET_TOKEN('ATTRIBUTE', 'PRICING ATTRIBUTE');
4306: QP_BULK_MSG.Add(l_msg_rec);
4307: end if;
4308:
4309: END IF; /* context or atttribute is not null */
4310:
4327: IF p_pricing_attr_rec.pricing_attribute_context(I) IS NULL THEN
4328: p_pricing_attr_rec.process_status_flag(I) :=NULL; --'E';
4329: FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
4330: FND_MESSAGE.SET_TOKEN('ATTRIBUTE', 'Pricing Attribute Context');
4331: QP_BULK_MSG.Add(l_msg_rec);
4332: ELSIF p_pricing_attr_rec.pricing_attribute_context(I)<>'VOLUME' THEN
4333: p_pricing_attr_rec.process_status_flag(I) :=NULL; --'E';
4334: FND_MESSAGE.SET_NAME('QP','PBH_CHILD_LINE_INVALID_CONTEXT');
4335: QP_BULK_MSG.Add(l_msg_rec);
4331: QP_BULK_MSG.Add(l_msg_rec);
4332: ELSIF p_pricing_attr_rec.pricing_attribute_context(I)<>'VOLUME' THEN
4333: p_pricing_attr_rec.process_status_flag(I) :=NULL; --'E';
4334: FND_MESSAGE.SET_NAME('QP','PBH_CHILD_LINE_INVALID_CONTEXT');
4335: QP_BULK_MSG.Add(l_msg_rec);
4336: END IF;
4337:
4338: EXCEPTION
4339: WHEN NO_DATA_FOUND THEN
4377:
4378: IF l_count > 0 THEN
4379: p_pricing_attr_rec.process_status_flag(I):=NULL;
4380: FND_MESSAGE.SET_NAME('QP','QP_UNIQUE_PRIMARY_UOM');
4381: QP_BULK_MSG.Add(l_msg_rec);
4382:
4383: -- set the corresponding line as errored
4384: UPDATE qp_interface_list_lines
4385: SET process_status_flag = NULL --'E'
4412: THEN
4413: p_pricing_attr_rec.process_status_flag(J):=NULL; --'E';
4414: l_msg_rec.orig_sys_pricing_attr_ref := p_pricing_attr_rec.orig_sys_pricing_attr_ref(J);
4415: FND_MESSAGE.SET_NAME('QP', 'QP_PARENT_FAILED');
4416: QP_BULK_MSG.ADD(l_msg_rec);
4417: END IF;
4418: END LOOP;
4419:
4420: END IF; --End duplicate exists
4441:
4442: IF l_count > 0 THEN
4443: p_pricing_attr_rec.process_status_flag(I):=NULL;
4444: FND_MESSAGE.SET_NAME('QP','QP_UNIQUE_PRIMARY_UOM');
4445: QP_BULK_MSG.Add(l_msg_rec);
4446:
4447: -- set the corresponding line as errored
4448: UPDATE qp_interface_list_lines
4449: SET process_status_flag = NULL --'E'
4476: THEN
4477: p_pricing_attr_rec.process_status_flag(J):=NULL; --'E';
4478: l_msg_rec.orig_sys_pricing_attr_ref := p_pricing_attr_rec.orig_sys_pricing_attr_ref(J);
4479: FND_MESSAGE.SET_NAME('QP', 'QP_PARENT_FAILED');
4480: QP_BULK_MSG.ADD(l_msg_rec);
4481: END IF;
4482: END LOOP;
4483: END IF; -- If duplicate
4484:
4565:
4566: IF l_count>1 THEN
4567: P_PRICING_ATTR_REC.PROCESS_STATUS_FLAG(I):= NULL; --'E';
4568: FND_MESSAGE.SET_NAME('QP', 'QP_MULT_PRICE_BREAK_ATTRS');
4569: QP_BULK_MSG.ADD(l_msg_rec);
4570:
4571: UPDATE qp_interface_list_lines
4572: SET process_status_flag = NULL --'E'
4573: WHERE orig_sys_line_ref = p_pricing_attr_rec.orig_sys_line_ref(I)
4624: EXCEPTION
4625: WHEN OTHERS THEN
4626: P_PRICING_ATTR_REC.PROCESS_STATUS_FLAG(I):= NULL; --'E';
4627: FND_MESSAGE.SET_NAME('QP', 'QP_INVALID_DATA_TYPE');
4628: QP_BULK_MSG.ADD(l_msg_rec);
4629: p_pricing_attr_rec.pricing_attr_value_to(I):=0;
4630: END;
4631:
4632: BEGIN
4634: EXCEPTION
4635: WHEN OTHERS THEN
4636: P_PRICING_ATTR_REC.PROCESS_STATUS_FLAG(I):= NULL; --'E';
4637: FND_MESSAGE.SET_NAME('QP', 'QP_INVALID_DATA_TYPE');
4638: QP_BULK_MSG.ADD(l_msg_rec);
4639: p_pricing_attr_rec.pricing_attr_value_from(I):=0;
4640: END;
4641: -- Bug# 5440851 RAVI END
4642:
4699: ELSE
4700: qp_bulk_loader_pub.write_log('ERROR: No Same To_From Value for Price Break');
4701: P_PRICING_ATTR_REC.PROCESS_STATUS_FLAG(I):= NULL ; --'E';
4702: FND_MESSAGE.SET_NAME('QP', 'QP_PBK_CRSPNDNG_TO_FROM');
4703: QP_BULK_MSG.ADD(l_msg_rec);
4704:
4705: UPDATE qp_interface_list_lines
4706: SET process_status_flag = NULL --'E'
4707: WHERE orig_sys_line_ref = p_pricing_attr_rec.orig_sys_line_ref(I)
4726: ELSE
4727: qp_bulk_loader_pub.write_log('ERROR: No Same From_To Value for Price Break');
4728: P_PRICING_ATTR_REC.PROCESS_STATUS_FLAG(I):= NULL ; --'E';
4729: FND_MESSAGE.SET_NAME('QP', 'QP_PBK_CRSPNDNG_FROM_TO');
4730: QP_BULK_MSG.ADD(l_msg_rec);
4731:
4732: UPDATE qp_interface_list_lines
4733: SET process_status_flag = NULL --'E'
4734: WHERE orig_sys_line_ref = p_pricing_attr_rec.orig_sys_line_ref(I)
4762: ELSE
4763: qp_bulk_loader_pub.write_log('ERROR: No 0 From Value');
4764: P_PRICING_ATTR_REC.PROCESS_STATUS_FLAG(I):= NULL ; --'E';
4765: FND_MESSAGE.SET_NAME('QP', 'QP_PBK_ZERO_FROM');
4766: QP_BULK_MSG.ADD(l_msg_rec);
4767:
4768: UPDATE qp_interface_list_lines
4769: SET process_status_flag = NULL --'E'
4770: WHERE orig_sys_line_ref = p_pricing_attr_rec.orig_sys_line_ref(I)
4803: IF l_status = 'OVERLAP' OR l_status1 = 'OVERLAP' THEN
4804: qp_bulk_loader_pub.write_log('Overlapping Price Breaks');
4805: P_PRICING_ATTR_REC.PROCESS_STATUS_FLAG(I):= NULL ; --'E';
4806: FND_MESSAGE.SET_NAME('QP', 'QP_OVERLAP_PRICE_BREAK_RANGE');
4807: QP_BULK_MSG.ADD(l_msg_rec);
4808:
4809: UPDATE qp_interface_list_lines
4810: SET process_status_flag = NULL --'E'
4811: WHERE orig_sys_line_ref = p_pricing_attr_rec.orig_sys_line_ref(I)
4859: ,p_attribute13 => p_pricing_attr_rec.attribute13(i)
4860: ,p_attribute14 => p_pricing_attr_rec.attribute14(i)
4861: ,p_attribute15 => p_pricing_attr_rec.attribute15(i)) THEN
4862:
4863: QP_BULK_MSG.ADD(l_msg_rec);
4864:
4865: -- Log Error Message
4866: FND_MESSAGE.SET_NAME('QP','QP_INVALID_ATTRIBUTE');
4867: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
4867: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
4868: 'Entity:Flexfield:Pricing_Attr_Desc_Flex');
4869: p_pricing_attr_rec.process_status_flag(I):=NULL;
4870:
4871: QP_BULK_MSG.ADD(l_msg_rec);
4872:
4873: ELSE -- if the flex validation is successfull
4874:
4875: IF p_pricing_attr_rec.context(i) IS NULL
4971: p_pricing_attr_rec.product_attr_value(I) THEN
4972:
4973: P_PRICING_ATTR_REC.PROCESS_STATUS_FLAG(I):= NULL; --'E';
4974: FND_MESSAGE.SET_NAME('QP', 'NO_PRODUCT_ATTR_UPD');
4975: QP_BULK_MSG.ADD(l_msg_rec);
4976: END IF;
4977: END IF;
4978:
4979:
5004: FND_MESSAGE.SET_TOKEN('CONTEXT',
5005: p_Pricing_Attr_rec.product_attribute_context(I));
5006: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
5007: p_Pricing_Attr_rec.product_attribute(I));
5008: QP_BULK_MSG.ADD(l_msg_rec);
5009: END IF;
5010:
5011: IF l_sourcing_status <> 'Y' THEN
5012:
5014: FND_MESSAGE.SET_TOKEN('CONTEXT',
5015: p_Pricing_Attr_rec.product_attribute_context(I));
5016: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
5017: p_Pricing_Attr_rec.product_attribute(I));
5018: QP_BULK_MSG.ADD(l_msg_rec);
5019:
5020: END IF;
5021:
5022: END IF; --If sourcing_method = 'ATTRIBUTE MAPPING'
5049: FND_MESSAGE.SET_TOKEN('CONTEXT',
5050: p_Pricing_Attr_rec.pricing_attribute_context(I));
5051: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
5052: p_Pricing_Attr_rec.pricing_attribute(I));
5053: QP_BULK_MSG.ADD(l_msg_rec);
5054: END IF;
5055:
5056: IF l_sourcing_status <> 'Y' THEN
5057:
5059: FND_MESSAGE.SET_TOKEN('CONTEXT',
5060: p_Pricing_Attr_rec.pricing_attribute_context(I));
5061: FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
5062: p_Pricing_Attr_rec.pricing_attribute(I));
5063: QP_BULK_MSG.ADD(l_msg_rec);
5064:
5065: END IF;
5066:
5067: END IF; --If sourcing_method = 'ATTRIBUTE MAPPING'