492: END IF;
493:
494: -- Initialize message list if p_init_msg_list is set to TRUE.
495: IF fnd_api.to_boolean(p_init_msg_lst) THEN
496: fnd_msg_pub.initialize;
497: END IF;
498:
499: --Initialize the return status
500: x_return_status := FND_API.G_RET_STS_SUCCESS;
1052: IF c_mln_attributes%ISOPEN THEN
1053: CLOSE c_mln_attributes;
1054: END IF;
1055: x_return_status := FND_API.G_RET_STS_ERROR;
1056: fnd_msg_pub.count_and_get (
1057: p_encoded => FND_API.G_FALSE
1058: , p_count => x_msg_count
1059: , p_data => x_msg_data );
1060: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1061: IF c_mln_attributes%ISOPEN THEN
1062: CLOSE c_mln_attributes;
1063: END IF;
1064: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1065: fnd_msg_pub.count_and_get (
1066: p_encoded => FND_API.G_FALSE
1067: , p_count => x_msg_count
1068: , p_data => x_msg_data );
1069: WHEN OTHERS THEN
1070: IF c_mln_attributes%ISOPEN THEN
1071: CLOSE c_mln_attributes;
1072: END IF;
1073: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1074: fnd_msg_pub.count_and_get (
1075: p_encoded => FND_API.G_FALSE
1076: , p_count => x_msg_count
1077: , p_data => x_msg_data );
1078: IF SQLCODE IS NOT NULL THEN
1422: END IF;
1423:
1424: -- Initialize message list if p_init_msg_list is set to TRUE.
1425: IF fnd_api.to_boolean(p_init_msg_lst) THEN
1426: fnd_msg_pub.initialize;
1427: END IF;
1428:
1429: --Initialize the return status
1430: x_return_status := fnd_api.g_ret_sts_success;
1881: IF c_msn_attributes%ISOPEN THEN
1882: CLOSE c_msn_attributes;
1883: END IF;
1884: x_return_status := fnd_api.g_ret_sts_error;
1885: fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data);
1886: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1887: IF c_msn_attributes%ISOPEN THEN
1888: CLOSE c_msn_attributes;
1889: END IF;
1887: IF c_msn_attributes%ISOPEN THEN
1888: CLOSE c_msn_attributes;
1889: END IF;
1890: x_return_status := fnd_api.g_ret_sts_unexp_error;
1891: fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data);
1892: WHEN OTHERS THEN
1893: IF c_msn_attributes%ISOPEN THEN
1894: CLOSE c_msn_attributes;
1895: END IF;
1893: IF c_msn_attributes%ISOPEN THEN
1894: CLOSE c_msn_attributes;
1895: END IF;
1896: x_return_status := fnd_api.g_ret_sts_unexp_error;
1897: fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data);
1898:
1899: IF SQLCODE IS NOT NULL THEN
1900: inv_mobile_helper_functions.sql_error('INV_RCV_INTEGRATION_APIS.INSERT_MSNI', l_progress, SQLCODE);
1901: END IF;
1960: l_debug NUMBER := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
1961: BEGIN
1962: x_return_status := g_ret_sts_success;
1963:
1964: fnd_msg_pub.initialize;
1965:
1966: IF l_debug = 1 THEN
1967: print_debug('validate_lot_number: Entered with following parameters:', 9);
1968: print_debug('validate_lot_number: lot_number: ' || p_lot_number, 9);
2032: --then raise an error indicating invalid lot number
2033: IF (p_validation_mode = INV_RCV_INTEGRATION_APIS.G_EXISTS_ONLY AND
2034: l_lot_exists = 'N') THEN
2035: fnd_message.set_name('INV', 'INV_INVALID_LOT');
2036: fnd_msg_pub.ADD;
2037: x_return_status := FND_API.g_ret_sts_error;
2038: fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data);
2039: print_debug('err: ' || x_msg_data, 9);
2040: RETURN FALSE;
2034: l_lot_exists = 'N') THEN
2035: fnd_message.set_name('INV', 'INV_INVALID_LOT');
2036: fnd_msg_pub.ADD;
2037: x_return_status := FND_API.g_ret_sts_error;
2038: fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data);
2039: print_debug('err: ' || x_msg_data, 9);
2040: RETURN FALSE;
2041: END IF;
2042:
2053:
2054: --If the lot is not unique then raise an error
2055: IF NOT l_unique_lot THEN
2056: fnd_message.set_name('INV', 'INV_LOT_UNIQUE_FAIL');
2057: fnd_msg_pub.add;
2058: x_return_status := FND_API.g_ret_sts_error;
2059: fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data);
2060: RETURN FALSE;
2061: END IF;
2055: IF NOT l_unique_lot THEN
2056: fnd_message.set_name('INV', 'INV_LOT_UNIQUE_FAIL');
2057: fnd_msg_pub.add;
2058: x_return_status := FND_API.g_ret_sts_error;
2059: fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data);
2060: RETURN FALSE;
2061: END IF;
2062:
2063: --Validate the expiration date based on shelf life code
2072: EXCEPTION
2073: WHEN NO_DATA_FOUND THEN
2074: fnd_message.set_name('INV', 'INV_SHELF_LIFE_ERROR');
2075: fnd_message.set_token('INV', 'ITEM');
2076: fnd_msg_pub.ADD;
2077: IF l_debug = 1 THEN
2078: print_debug('validate_lot_number: Unable to fetch shelf life code for the inventory item passed', 9);
2079: END IF;
2080: x_return_status := FND_API.g_ret_sts_error;
2077: IF l_debug = 1 THEN
2078: print_debug('validate_lot_number: Unable to fetch shelf life code for the inventory item passed', 9);
2079: END IF;
2080: x_return_status := FND_API.g_ret_sts_error;
2081: fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data);
2082: RETURN FALSE;
2083: END;
2084:
2085: IF l_debug = 1 THEN
2096: FROM DUAL;
2097:
2098: IF TRUNC(l_expiration_date) <> trunc(p_expiration_date) THEN
2099: fnd_message.set_name('INV', 'INV_EXP_DATE_NOT_CONSIDER');
2100: fnd_msg_pub.ADD;
2101: IF l_debug = 1 THEN
2102: print_debug('validate_lot_number: Expiration will not be considered for shelf_life code of type ITEM_SHELF_LIFE_DAYS', 9);
2103: END IF;
2104: x_return_status := FND_API.g_ret_sts_error;
2101: IF l_debug = 1 THEN
2102: print_debug('validate_lot_number: Expiration will not be considered for shelf_life code of type ITEM_SHELF_LIFE_DAYS', 9);
2103: END IF;
2104: x_return_status := FND_API.g_ret_sts_error;
2105: fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data);
2106: RETURN FALSE;
2107: END IF;
2108: ELSIF l_shelf_life_code = user_defined_exp_date THEN
2109: IF l_debug = 1 THEN
2110: print_debug('validate_lot_number: Shelf_life code is of type USER_DEFINED_EXP_DATE', 9);
2111: END IF;
2112: IF p_expiration_date IS NULL THEN
2113: fnd_message.set_name('INV', 'INV_LOT_EXPREQD');
2114: fnd_msg_pub.ADD;
2115: IF l_debug = 1 THEN
2116: print_debug('validate_lot_number: Lot expiration date is required ', 9);
2117: END IF;
2118: x_return_status := FND_API.g_ret_sts_error;
2115: IF l_debug = 1 THEN
2116: print_debug('validate_lot_number: Lot expiration date is required ', 9);
2117: END IF;
2118: x_return_status := FND_API.g_ret_sts_error;
2119: fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data);
2120: RETURN FALSE;
2121: ELSE
2122: l_expiration_date := p_expiration_date;
2123: END IF;
2180: IF (l_debug = 1) THEN
2181: print_debug('validate_lot_number: Error in creating the lot number', 9);
2182: END IF;
2183: x_return_status := FND_API.g_ret_sts_error;
2184: fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data);
2185: RETURN FALSE;
2186: END IF;
2187: END IF; --END IF create the lot number
2188: --This API should be getting called only for a ship transaction from iSP.
2187: END IF; --END IF create the lot number
2188: --This API should be getting called only for a ship transaction from iSP.
2189: ELSE
2190: fnd_message.set_name('INV','INV_NOT_IMPLEMENTED');
2191: fnd_msg_pub.add;
2192: x_return_status := FND_API.g_ret_sts_error;
2193: fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data);
2194: RETURN FALSE;
2195: END IF; --END IF Check the transaction type
2189: ELSE
2190: fnd_message.set_name('INV','INV_NOT_IMPLEMENTED');
2191: fnd_msg_pub.add;
2192: x_return_status := FND_API.g_ret_sts_error;
2193: fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data);
2194: RETURN FALSE;
2195: END IF; --END IF Check the transaction type
2196:
2197: --All the validations have passed successfully, then
2202: IF (l_debug = 1) THEN
2203: print_debug('validate_lot_number: Exception occurred in validate_lot_number', 3);
2204: END IF;
2205: x_return_status := FND_API.g_ret_sts_error;
2206: fnd_msg_pub.count_and_get(
2207: p_encoded => fnd_api.g_false
2208: , p_count => x_msg_count
2209: , p_data => x_msg_data);
2210: IF SQLCODE IS NOT NULL THEN
2249: l_to_serial_number mtl_serial_numbers.serial_number%TYPE; --Bug 8413853
2250: BEGIN
2251: x_return_status := g_ret_sts_success;
2252:
2253: fnd_msg_pub.initialize;
2254:
2255:
2256: IF l_debug = 1 THEN
2257: print_debug('validate_serial_range: Entered with following parameters:', 9);
2273: IF (l_debug = 1) THEN
2274: print_debug('validate_serial_range: From Serial Number cannot be NULL', 9);
2275: END IF;
2276: fnd_message.set_name('INV', 'INV_INLTIS_FROMSER');
2277: fnd_msg_pub.add;
2278: x_return_status := FND_API.g_ret_sts_error;
2279: fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data);
2280: RETURN FALSE;
2281: END IF;
2275: END IF;
2276: fnd_message.set_name('INV', 'INV_INLTIS_FROMSER');
2277: fnd_msg_pub.add;
2278: x_return_status := FND_API.g_ret_sts_error;
2279: fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data);
2280: RETURN FALSE;
2281: END IF;
2282:
2283: --If to serial number and quantity both are NULL then raise an error
2285: IF (l_debug = 1) THEN
2286: print_debug('validate_serial_range: To Serial and quantity both cannot be NULL', 9);
2287: END IF;
2288: fnd_message.set_name('INV', 'INV_INLTIS_RANGE');
2289: fnd_msg_pub.add;
2290: x_return_status := FND_API.g_ret_sts_error;
2291: fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data);
2292: RETURN FALSE;
2293: END IF;
2287: END IF;
2288: fnd_message.set_name('INV', 'INV_INLTIS_RANGE');
2289: fnd_msg_pub.add;
2290: x_return_status := FND_API.g_ret_sts_error;
2291: fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data);
2292: RETURN FALSE;
2293: END IF;
2294:
2295: --If to serial number is passed, get the difference between from and to serials
2303: print_debug('validate_serial_range: Length of from and to serials do not match', 9);
2304: END IF;
2305: -- Bug Fix 4375959
2306: -- fnd_message.set_name('INV', 'INV_INLTIS_RANGE');
2307: fnd_msg_pub.add;
2308: x_return_status := FND_API.g_ret_sts_error;
2309: fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data);
2310: RETURN FALSE;
2311: END IF; --End If serial difference is < 0
2305: -- Bug Fix 4375959
2306: -- fnd_message.set_name('INV', 'INV_INLTIS_RANGE');
2307: fnd_msg_pub.add;
2308: x_return_status := FND_API.g_ret_sts_error;
2309: fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data);
2310: RETURN FALSE;
2311: END IF; --End If serial difference is < 0
2312:
2313: --If quantity is > 1 and the serial difference does not match the quantity
2319: IF (l_debug = 1) THEN
2320: print_debug('validate_serial_range: Serial quantity does not match transaction quantity', 9);
2321: END IF;
2322: fnd_message.set_name('INV', 'INV_SERQTY_NOTMATCH');
2323: fnd_msg_pub.add;
2324: x_return_status := FND_API.g_ret_sts_error;
2325: fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data);
2326: RETURN FALSE;
2327: END IF;
2321: END IF;
2322: fnd_message.set_name('INV', 'INV_SERQTY_NOTMATCH');
2323: fnd_msg_pub.add;
2324: x_return_status := FND_API.g_ret_sts_error;
2325: fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data);
2326: RETURN FALSE;
2327: END IF;
2328: END IF; --END IF p_to_serial_number is NOT NULL
2329:
2335: IF (l_debug = 1) THEN
2336: print_debug('validate_serial_range: To serial number must be specified', 9);
2337: END IF;
2338: fnd_message.set_name('INV', 'INV_SERIAL_NOT_ENTERED');
2339: fnd_msg_pub.add;
2340: x_return_status := FND_API.g_ret_sts_error;
2341: fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data);
2342: RETURN FALSE;
2343: END IF; --END IF p_to_serial_number IS NULL
2337: END IF;
2338: fnd_message.set_name('INV', 'INV_SERIAL_NOT_ENTERED');
2339: fnd_msg_pub.add;
2340: x_return_status := FND_API.g_ret_sts_error;
2341: fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data);
2342: RETURN FALSE;
2343: END IF; --END IF p_to_serial_number IS NULL
2344:
2345: --Now check for the existence of all the serials in the range
2374: print_debug('validate_serial_number: could not find the serial number: ' || l_cur_serial_number, 9);
2375: END IF;
2376: fnd_message.set_name('INV', 'INV_SER_NOTEXIST');
2377: fnd_message.set_token('TOKEN', l_cur_serial_number);
2378: fnd_msg_pub.add;
2379: x_return_status := FND_API.g_ret_sts_error;
2380: fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data);
2381: RETURN FALSE;
2382: END;
2376: fnd_message.set_name('INV', 'INV_SER_NOTEXIST');
2377: fnd_message.set_token('TOKEN', l_cur_serial_number);
2378: fnd_msg_pub.add;
2379: x_return_status := FND_API.g_ret_sts_error;
2380: fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data);
2381: RETURN FALSE;
2382: END;
2383: END LOOP; --END For each serial in the range
2384: END IF; --END IF g_exists_only
2417: IF (l_debug = 1) THEN
2418: print_debug('validate_serial_range: Error returned by validate_serials', 9);
2419: END IF;
2420: fnd_message.set_name('INV', 'INVALID_SERIAL_NUMBER');
2421: fnd_msg_pub.ADD;
2422: x_return_status := FND_API.g_ret_sts_error;
2423: fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data);
2424: RETURN FALSE;
2425: END IF;
2419: END IF;
2420: fnd_message.set_name('INV', 'INVALID_SERIAL_NUMBER');
2421: fnd_msg_pub.ADD;
2422: x_return_status := FND_API.g_ret_sts_error;
2423: fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data);
2424: RETURN FALSE;
2425: END IF;
2426: END IF; --END IF g_exists_or_create
2427:
2430:
2431: --This API should be getting called only for a ship transaction from iSP.
2432: ELSE
2433: fnd_message.set_name('INV','INV_NOT_IMPLEMENTED');
2434: fnd_msg_pub.add;
2435: x_return_status := FND_API.g_ret_sts_error;
2436: fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data);
2437: RETURN FALSE;
2438: END IF; --END IF Check the transaction type
2432: ELSE
2433: fnd_message.set_name('INV','INV_NOT_IMPLEMENTED');
2434: fnd_msg_pub.add;
2435: x_return_status := FND_API.g_ret_sts_error;
2436: fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data);
2437: RETURN FALSE;
2438: END IF; --END IF Check the transaction type
2439:
2440: EXCEPTION
2442: IF (l_debug = 1) THEN
2443: print_debug('validate_serial_range: Exception occurred in validate_serial_range', 3);
2444: END IF;
2445: x_return_status := FND_API.g_ret_sts_error;
2446: fnd_msg_pub.count_and_get(
2447: p_encoded => fnd_api.g_false
2448: , p_count => x_msg_count
2449: , p_data => x_msg_data);
2450: IF SQLCODE IS NOT NULL THEN
2497: /*end , INVCONV*/
2498:
2499: x_msg_data := x_msg_data||':'||fnd_message.get_string('INV','INV_LOT_SERIAL_VALIDATION_FAIL');
2500: fnd_message.set_name('INV','INV_LOT_SERIAL_VALIDATION_FAIL');
2501: fnd_msg_pub.ADD;
2502: RETURN FALSE;
2503: END IF;
2504:
2505: RETURN TRUE;
2527: x_return_status := g_ret_sts_success;
2528:
2529: x_return_status := g_ret_sts_error;
2530: fnd_message.set_name('INV','INV_NOT_IMPLEMENTED');
2531: fnd_msg_pub.add;
2532: fnd_msg_pub.count_and_get
2533: ( p_count => x_msg_count
2534: , p_data => x_msg_data
2535: );
2528:
2529: x_return_status := g_ret_sts_error;
2530: fnd_message.set_name('INV','INV_NOT_IMPLEMENTED');
2531: fnd_msg_pub.add;
2532: fnd_msg_pub.count_and_get
2533: ( p_count => x_msg_count
2534: , p_data => x_msg_data
2535: );
2536: RETURN NULL;
2555: x_return_status := g_ret_sts_success;
2556:
2557: x_return_status := g_ret_sts_error;
2558: fnd_message.set_name('INV','INV_NOT_IMPLEMENTED');
2559: fnd_msg_pub.add;
2560: fnd_msg_pub.count_and_get
2561: ( p_count => x_msg_count
2562: , p_data => x_msg_data
2563: );
2556:
2557: x_return_status := g_ret_sts_error;
2558: fnd_message.set_name('INV','INV_NOT_IMPLEMENTED');
2559: fnd_msg_pub.add;
2560: fnd_msg_pub.count_and_get
2561: ( p_count => x_msg_count
2562: , p_data => x_msg_data
2563: );
2564: END generate_serial_numbers;
2581: l_lpn_id NUMBER;
2582: BEGIN
2583: x_return_status := g_ret_sts_success;
2584:
2585: fnd_msg_pub.initialize;
2586:
2587: IF (p_validation_mode = g_exists_only OR p_validation_mode = g_exists_or_create) THEN
2588: BEGIN
2589: select 1, lpn_id
2605: print_debug( 'This is an invalid lpn => ' || ' lpn = '||p_lpn ||' lpn_id= '||p_lpn_id,1 );
2606: END IF;
2607: x_return_status := g_ret_sts_error;
2608: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_LPN');
2609: fnd_msg_pub.ADD;
2610: fnd_msg_pub.count_and_get
2611: ( p_count => x_msg_count
2612: , p_data => x_msg_data
2613: );
2606: END IF;
2607: x_return_status := g_ret_sts_error;
2608: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_LPN');
2609: fnd_msg_pub.ADD;
2610: fnd_msg_pub.count_and_get
2611: ( p_count => x_msg_count
2612: , p_data => x_msg_data
2613: );
2614: RETURN FALSE;
2632: IF (l_debug = 1) THEN
2633: print_debug( 'Error creating lpn => '||'lpn = '||p_lpn ||'lpn_id= '||p_lpn_id,1 );
2634: END IF;
2635: fnd_message.set_name('WMS', 'WMS_LPN_NOTGEN');
2636: fnd_msg_pub.ADD;
2637: fnd_msg_pub.count_and_get
2638: ( p_count => x_msg_count
2639: , p_data => x_msg_data
2640: );
2633: print_debug( 'Error creating lpn => '||'lpn = '||p_lpn ||'lpn_id= '||p_lpn_id,1 );
2634: END IF;
2635: fnd_message.set_name('WMS', 'WMS_LPN_NOTGEN');
2636: fnd_msg_pub.ADD;
2637: fnd_msg_pub.count_and_get
2638: ( p_count => x_msg_count
2639: , p_data => x_msg_data
2640: );
2641: RETURN FALSE;
2649: print_debug( 'This is an invalid lpn => ' || ' lpn = '||p_lpn ||' lpn_id= '||p_lpn_id,1 );
2650: END IF;
2651: x_return_status := g_ret_sts_error;
2652: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_LPN');
2653: fnd_msg_pub.ADD;
2654: fnd_msg_pub.count_and_get
2655: ( p_count => x_msg_count
2656: , p_data => x_msg_data
2657: );
2650: END IF;
2651: x_return_status := g_ret_sts_error;
2652: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_LPN');
2653: fnd_msg_pub.ADD;
2654: fnd_msg_pub.count_and_get
2655: ( p_count => x_msg_count
2656: , p_data => x_msg_data
2657: );
2658: RETURN FALSE;
2659: END;
2660: ELSE
2661: x_return_status := g_ret_sts_error;
2662: fnd_message.set_name('INV','INV_NOT_IMPLEMENTED');
2663: fnd_msg_pub.add;
2664: fnd_msg_pub.count_and_get
2665: ( p_count => x_msg_count
2666: , p_data => x_msg_data
2667: );
2660: ELSE
2661: x_return_status := g_ret_sts_error;
2662: fnd_message.set_name('INV','INV_NOT_IMPLEMENTED');
2663: fnd_msg_pub.add;
2664: fnd_msg_pub.count_and_get
2665: ( p_count => x_msg_count
2666: , p_data => x_msg_data
2667: );
2668: RETURN FALSE;
2730: -- error out. This API should not be called for a OPM transaction.
2731: IF gml_process_flags.check_process_orgn(l_org_id) = 1 THEN
2732: x_return_status := g_ret_sts_error;
2733: fnd_message.set_name('INV','INV_NOT_IMPLEMENTED');
2734: fnd_msg_pub.add;
2735: fnd_msg_pub.count_and_get
2736: ( p_count => x_msg_count
2737: , p_data => x_msg_data
2738: );
2731: IF gml_process_flags.check_process_orgn(l_org_id) = 1 THEN
2732: x_return_status := g_ret_sts_error;
2733: fnd_message.set_name('INV','INV_NOT_IMPLEMENTED');
2734: fnd_msg_pub.add;
2735: fnd_msg_pub.count_and_get
2736: ( p_count => x_msg_count
2737: , p_data => x_msg_data
2738: );
2739: RETURN FALSE;
2757: l_progress := '50';
2758:
2759: -- Initialize message list if p_init_msg_list is set to TRUE.
2760: IF fnd_api.to_boolean(p_init_msg_lst) THEN
2761: fnd_msg_pub.initialize;
2762: END IF;
2763:
2764: l_progress := '60';
2765:
2778: IF (l_debug = 1) THEN
2779: print_debug('VALIDATE_LPN_INFO: x_msg_data: '||x_msg_data,1);
2780: END IF;
2781: fnd_message.set_name('INV','INV_LPN_VALIDATION_FAILED');
2782: fnd_msg_pub.ADD;
2783: RETURN FALSE;
2784: END IF;
2785:
2786: l_progress := '80';
2814: x_return_status := g_ret_sts_success;
2815:
2816: x_return_status := g_ret_sts_error;
2817: fnd_message.set_name('INV','INV_NOT_IMPLEMENTED');
2818: fnd_msg_pub.add;
2819: fnd_msg_pub.count_and_get
2820: ( p_count => x_msg_count
2821: , p_data => x_msg_data
2822: );
2815:
2816: x_return_status := g_ret_sts_error;
2817: fnd_message.set_name('INV','INV_NOT_IMPLEMENTED');
2818: fnd_msg_pub.add;
2819: fnd_msg_pub.count_and_get
2820: ( p_count => x_msg_count
2821: , p_data => x_msg_data
2822: );
2823: END generate_lpn;
2853: OR transfer_license_plate_number is not null)
2854: );
2855: x_return_status := g_ret_sts_error;
2856: fnd_message.set_name('INV','INV_NOT_IMPLEMENTED');
2857: fnd_msg_pub.add;
2858: fnd_msg_pub.count_and_get
2859: ( p_count => x_msg_count
2860: , p_data => x_msg_data
2861: );
2854: );
2855: x_return_status := g_ret_sts_error;
2856: fnd_message.set_name('INV','INV_NOT_IMPLEMENTED');
2857: fnd_msg_pub.add;
2858: fnd_msg_pub.count_and_get
2859: ( p_count => x_msg_count
2860: , p_data => x_msg_data
2861: );
2862: EXCEPTION
2864: x_return_status := g_ret_sts_success;
2865: when OTHERS then
2866: x_return_status := g_ret_sts_error;
2867: fnd_message.set_name('INV','INV_NOT_IMPLEMENTED');
2868: fnd_msg_pub.add;
2869: fnd_msg_pub.count_and_get
2870: ( p_count => x_msg_count
2871: , p_data => x_msg_data
2872: );
2865: when OTHERS then
2866: x_return_status := g_ret_sts_error;
2867: fnd_message.set_name('INV','INV_NOT_IMPLEMENTED');
2868: fnd_msg_pub.add;
2869: fnd_msg_pub.count_and_get
2870: ( p_count => x_msg_count
2871: , p_data => x_msg_data
2872: );
2873: END;
3032: print_debug('VALIDATE_SUB_LOC 60: Invalid Subinventory Type for the transaction:' || l_sub_type || ':' || l_trx_type, 1);
3033: END IF;
3034:
3035: fnd_message.set_name('INV', 'INV_INVALID_SUBINV');
3036: fnd_msg_pub.ADD;
3037: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
3038: RETURN;
3039: END IF; --IF (l_sub_type = 2
3040:
3033: END IF;
3034:
3035: fnd_message.set_name('INV', 'INV_INVALID_SUBINV');
3036: fnd_msg_pub.ADD;
3037: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
3038: RETURN;
3039: END IF; --IF (l_sub_type = 2
3040:
3041: IF (l_lpn_cont_flag = 2
3049: print_debug('VALIDATE_SUB_LOC 70: Invalid LPN Controlled Flag for the transaction:' || l_lpn_cont_flag || ':' || l_lpn_id || ':' || l_lpn_num, 1);
3050: END IF;
3051:
3052: fnd_message.set_name('INV', 'INV_INVALID_SUBINV');
3053: fnd_msg_pub.ADD;
3054: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
3055: RETURN;
3056: END IF; --IF (l_lpn_cont_flag = 2
3057: END IF; --IF l_sub IS NOT NULL THEN
3050: END IF;
3051:
3052: fnd_message.set_name('INV', 'INV_INVALID_SUBINV');
3053: fnd_msg_pub.ADD;
3054: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
3055: RETURN;
3056: END IF; --IF (l_lpn_cont_flag = 2
3057: END IF; --IF l_sub IS NOT NULL THEN
3058:
3078: IF (l_debug = 1) THEN
3079: print_debug('VALIDATE_SUB_LOC 80: Invalid Locator Type for the transaction:' || l_loc_type || ':' || l_trx_type, 1);
3080: END IF;
3081: fnd_message.set_name('INV', 'INV_INT_LOCCODE');
3082: fnd_msg_pub.ADD;
3083: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
3084: RETURN;
3085: END IF;
3086: END IF; --IF l_locator_id IS NOT NULL THEN
3079: print_debug('VALIDATE_SUB_LOC 80: Invalid Locator Type for the transaction:' || l_loc_type || ':' || l_trx_type, 1);
3080: END IF;
3081: fnd_message.set_name('INV', 'INV_INT_LOCCODE');
3082: fnd_msg_pub.ADD;
3083: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
3084: RETURN;
3085: END IF;
3086: END IF; --IF l_locator_id IS NOT NULL THEN
3087:
3113: IF (l_debug = 1) THEN
3114: print_debug('VALIDATE_SUB_LOC 90: Invalid Location for the transaction:' || l_location_id || ':' || l_trx_type, 1);
3115: END IF;
3116: fnd_message.set_name('INV', 'INV_INVALID_LOCATION');
3117: fnd_msg_pub.ADD;
3118: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
3119: RETURN;
3120: EXCEPTION
3121: WHEN no_data_found THEN
3114: print_debug('VALIDATE_SUB_LOC 90: Invalid Location for the transaction:' || l_location_id || ':' || l_trx_type, 1);
3115: END IF;
3116: fnd_message.set_name('INV', 'INV_INVALID_LOCATION');
3117: fnd_msg_pub.ADD;
3118: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
3119: RETURN;
3120: EXCEPTION
3121: WHEN no_data_found THEN
3122: IF (l_debug = 1) THEN
3127: IF (l_debug = 1) THEN
3128: print_debug('VALIDATE_SUB_LOC 110: Invalid Location for the transaction:' || l_location_id || ':' || l_trx_type, 1);
3129: END IF;
3130: fnd_message.set_name('INV', 'INV_INVALID_LOCATION');
3131: fnd_msg_pub.ADD;
3132: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
3133: RETURN;
3134: END ;
3135: END IF; --IF (l_sub IS NULL AND l_location_id IS NOT NULL THEN
3128: print_debug('VALIDATE_SUB_LOC 110: Invalid Location for the transaction:' || l_location_id || ':' || l_trx_type, 1);
3129: END IF;
3130: fnd_message.set_name('INV', 'INV_INVALID_LOCATION');
3131: fnd_msg_pub.ADD;
3132: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
3133: RETURN;
3134: END ;
3135: END IF; --IF (l_sub IS NULL AND l_location_id IS NOT NULL THEN
3136: END LOOP;
3200: END IF;
3201:
3202: -- Initialize message list if p_init_msg_list is set to TRUE.
3203: IF fnd_api.to_boolean(p_init_msg_lst) THEN
3204: fnd_msg_pub.initialize;
3205: END IF;
3206:
3207: inv_rcv_integration_pvt.split_lot_serial(p_rti_tb => p_new_rti_info,
3208: x_return_status => x_return_status,
3262: -- error out. This API should not be called for a OPM transaction.
3263: IF gml_process_flags.check_process_orgn(l_org_id) = 1 THEN
3264: x_return_status := g_ret_sts_error;
3265: fnd_message.set_name('INV','INV_NOT_IMPLEMENTED');
3266: fnd_msg_pub.add;
3267: fnd_msg_pub.count_and_get
3268: ( p_count => x_msg_count
3269: , p_data => x_msg_data
3270: );
3263: IF gml_process_flags.check_process_orgn(l_org_id) = 1 THEN
3264: x_return_status := g_ret_sts_error;
3265: fnd_message.set_name('INV','INV_NOT_IMPLEMENTED');
3266: fnd_msg_pub.add;
3267: fnd_msg_pub.count_and_get
3268: ( p_count => x_msg_count
3269: , p_data => x_msg_data
3270: );
3271: RETURN FALSE;
3295: );
3296: IF (x_return_status <> g_ret_sts_success) THEN
3297: x_msg_data := x_msg_data||':'||fnd_message.get_string('INV','INV_FAILED');
3298: fnd_message.set_name('INV','INV_TRANSACTION_FAILED');
3299: fnd_msg_pub.ADD;
3300: RETURN FALSE;
3301: END IF;
3302:
3303: RETURN TRUE;
3844: print_debug('SPLIT_MMTT: No remaining MMTT with header_id '
3845: || p_txn_header_id || ' found MOL',4);
3846: END IF;
3847: fnd_message.set_name('WMS','WMS_TASK_NO_ELIGIBLE_TASKS');
3848: fnd_msg_pub.add;
3849: RAISE fnd_api.g_exc_error;
3850: END IF;
3851: ELSE
3852: IF (mmtt_cur%notfound) THEN
3918: IF (l_debug = 1) THEN
3919: print_debug('SPLIT_MMTT: MMTT Not fully loaded, next iteration...',4);
3920: END IF;
3921: fnd_message.set_name('WMS', 'WMS_TASK_NOT_FULLY_LOADED');
3922: fnd_msg_pub.ADD;
3923: l_skip_iteration := 'Y';
3924: END IF;
3925: ELSE -- p_peration_type = 'DROP'
3926: IF (l_drop_flag <> 3) THEN
3927: IF (l_debug = 1) THEN
3928: print_debug('SPLIT_MMTT: MMTT Not fully dropped, next iteration...',4);
3929: END IF;
3930: fnd_message.set_name('WMS', 'WMS_TASK_NOT_FULLY_DROPPED');
3931: fnd_msg_pub.ADD;
3932: l_skip_iteration := 'Y';
3933: END IF;
3934: END IF;
3935: END IF; --IF (p_operation_type IN ('LOAD', 'DROP'))
4522: IF (l_debug = 1) THEN
4523: print_debug('SPLIT_MMTT: Error in split_operation_instance',4);
4524: END IF;
4525: fnd_message.set_name('WMS','WMS_TASK_SPLIT_FAIL');
4526: fnd_msg_pub.add;
4527: RAISE fnd_api.g_exc_error;
4528: END IF;
4529: l_progress := '130';
4530:
4830: IF (mmtt_cur%isopen) THEN
4831: CLOSE mmtt_cur;
4832: END IF;
4833: x_return_status := g_ret_sts_unexp_err;
4834: fnd_msg_pub.count_and_get
4835: ( p_count => x_msg_count
4836: ,p_data => x_msg_data );
4837: END split_mmtt;
4838:
4946: IF (l_debug = 1) THEN
4947: print_debug('SPLIT_MO ERROR: Original quantity is <= 0', 4);
4948: END IF;
4949: fnd_message.set_name('INV', 'INV_INVALID_QTY');
4950: fnd_msg_pub.ADD;
4951: RAISE fnd_api.g_exc_error;
4952: END IF;
4953:
4954: l_progress := '20';
4971: IF (l_debug = 1) THEN
4972: print_debug('SPLIT_MO - ERROR: Quantity to split is <= 0', 4);
4973: END IF;
4974: fnd_message.set_name('INV', 'INV_INVALID_QTY');
4975: fnd_msg_pub.ADD;
4976: RAISE fnd_api.g_exc_error;
4977: END IF;
4978:
4979: -- convert prim quantities to transaction uom in mol first
5016: print_debug('SPLIT_MO - ERROR: Original QTY only '||l_orig_mol_rec.quantity
5017: || ', not enough to split ' || l_total_to_split, 4);
5018: END IF;
5019: fnd_message.set_name('INV', 'INV_INSUFFICIENT_QTY');
5020: fnd_msg_pub.ADD;
5021: RAISE fnd_api.g_exc_error;
5022: END IF;
5023:
5024: l_progress := '40';
5292: print_debug('SPLIT_MO: Error copying move order lines', 4);
5293: print_debug('SPLIT_MO: SQLCODE = ' || SQLCODE, 4);
5294: END IF;
5295: fnd_message.set_name('WMS','WMS_MO_CREATE_FAIL');
5296: fnd_msg_pub.add;
5297: RAISE fnd_api.g_exc_error;
5298: END;
5299:
5300: l_progress := '60';
5681: END IF;
5682:
5683: x_return_status := g_ret_sts_unexp_err;
5684:
5685: fnd_msg_pub.count_and_get
5686: ( p_count => x_msg_count
5687: ,p_data => x_msg_data );
5688: ROLLBACK TO split_mo_pub;
5689: END split_mo;
6502: IF (l_debug = 1) THEN
6503: print_debug('SPLIT_MMTT: Error in split_operation_instance',4);
6504: END IF;
6505: fnd_message.set_name('WMS','WMS_TASK_SPLIT_FAIL');
6506: fnd_msg_pub.add;
6507: RAISE fnd_api.g_exc_error;
6508: END IF;
6509:
6510: IF l_debug = 1 THEN
6521: IF (mmtt_cur%isopen) THEN
6522: CLOSE mmtt_cur;
6523: END IF;
6524: x_return_status := g_ret_sts_unexp_err;
6525: fnd_msg_pub.count_and_get
6526: ( p_count => x_msg_count
6527: ,p_data => x_msg_data );
6528: END split_mmtt;
6529: END inv_rcv_integration_apis;