62: IS
63:
64: /* Local variable section */
65: l_api_name CONSTANT VARCHAR2(30) := 'IS_WORKING_DAY';
66: l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
67:
68: CURSOR get_day_cur (c_calendar_id VARCHAR2 , c_cal_date DATE) IS
69: SELECT 1 FROM dual
70: WHERE EXISTS
103:
104: BEGIN
105:
106: /* Set the return status to success initially */
107: x_return_status := FND_API.G_RET_STS_SUCCESS;
108:
109: /* Initialize message list and count if needed */
110: IF p_init_msg_list THEN
111: fnd_msg_pub.initialize;
111: fnd_msg_pub.initialize;
112: END IF;
113:
114: /* Make sure we are call compatible */
115: IF NOT FND_API.compatible_api_call ( GMP_CALENDAR_API.m_api_version
116: ,p_api_version
117: ,'IS_WORKING_DAY'
118: ,GMP_CALENDAR_API.m_pkg_name) THEN
119: x_return_status := FND_API.G_RET_STS_ERROR;
115: IF NOT FND_API.compatible_api_call ( GMP_CALENDAR_API.m_api_version
116: ,p_api_version
117: ,'IS_WORKING_DAY'
118: ,GMP_CALENDAR_API.m_pkg_name) THEN
119: x_return_status := FND_API.G_RET_STS_ERROR;
120: RAISE INVALID_VERSION;
121: END IF;
122:
123: IF ((p_calendar_code is NOT NULL) AND (p_date is NOT NULL ))
162:
163: EXCEPTION
164: WHEN INVALID_DATA_PASSED OR invalid_version THEN
165:
166: x_return_status := FND_API.G_RET_STS_ERROR;
167: FND_MESSAGE.SET_NAME('GMD', 'GMD_UNEXPECTED_ERROR');
168: FND_MESSAGE.SET_TOKEN('ERROR', sqlerrm);
169: FND_MSG_PUB.ADD;
170: RETURN FALSE ;
169: FND_MSG_PUB.ADD;
170: RETURN FALSE ;
171:
172: WHEN CALENDAR_REQUIRED THEN
173: x_return_status := FND_API.G_RET_STS_ERROR;
174: FND_MESSAGE.SET_NAME('GMP','GMP_VALUE_REQUIRED');
175: FND_MESSAGE.SET_TOKEN('VALUE_REQUIRED',X_msg);
176: FND_MSG_PUB.ADD;
177: RETURN FALSE ;
176: FND_MSG_PUB.ADD;
177: RETURN FALSE ;
178:
179: WHEN DATE_OUT_OF_CAL_RANGE THEN
180: x_return_status := FND_API.G_RET_STS_SUCCESS;
181: FND_MESSAGE.SET_NAME('GMP','GMP_DATE_OUT_OF_CAL_RANGE');
182: FND_MSG_PUB.ADD;
183: RETURN TRUE;
184:
182: FND_MSG_PUB.ADD;
183: RETURN TRUE;
184:
185: WHEN PS_INVALID_CALENDAR THEN
186: x_return_status := FND_API.G_RET_STS_ERROR;
187: FND_MESSAGE.SET_NAME('GMP','PS_INVALID_CALENDAR');
188: FND_MSG_PUB.ADD;
189: RETURN FALSE ;
190:
191: WHEN OTHERS THEN
192: FND_MESSAGE.SET_NAME('GMD', 'GMD_UNEXPECTED_ERROR');
193: FND_MESSAGE.SET_TOKEN('ERROR', sqlerrm);
194: FND_MSG_PUB.ADD;
195: x_return_status := FND_API.g_ret_sts_unexp_error;
196: RETURN FALSE ;
197: END is_working_day;
198:
199: /*
305:
306: /* Local variable section */
307:
308: l_api_name CONSTANT VARCHAR2(30) := 'GET_CONTIGUOUS_PERIODS';
309: l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
310:
311: /* Define Exceptions */
312: CALENDAR_REQUIRED EXCEPTION;
313: CONTIG_PERIODS_FAILURE EXCEPTION;
327: log_message('p_calendar_code: '||p_calendar_code);
328: log_message('p_duration: '||p_duration);
329: */
330: /* Set the return status to success initially */
331: x_return_status := FND_API.G_RET_STS_SUCCESS;
332:
333: /* Initialize message list and count if needed */
334: IF p_init_msg_list THEN
335: fnd_msg_pub.initialize;
335: fnd_msg_pub.initialize;
336: END IF;
337:
338: /* Make sure we are call compatible */
339: IF NOT FND_API.compatible_api_call ( GMP_CALENDAR_API.m_api_version
340: ,p_api_version
341: ,'GET_CONTIGUOUS_PERIODS'
342: ,GMP_CALENDAR_API.m_pkg_name) THEN
343: x_return_status := FND_API.G_RET_STS_ERROR;
339: IF NOT FND_API.compatible_api_call ( GMP_CALENDAR_API.m_api_version
340: ,p_api_version
341: ,'GET_CONTIGUOUS_PERIODS'
342: ,GMP_CALENDAR_API.m_pkg_name) THEN
343: x_return_status := FND_API.G_RET_STS_ERROR;
344: RAISE INVALID_VERSION;
345: END IF;
346:
347: /* Handling the 0 duration case right before the Looping starts */
611: ELSE
612: FND_MESSAGE.SET_NAME('GMP','GMP_ENTER_START_OR_END_DATE');
613: FND_MESSAGE.SET_TOKEN('ERROR', sqlerrm);
614: FND_MSG_PUB.ADD;
615: x_return_status := FND_API.G_RET_STS_ERROR;
616:
617: /* } */
618: END IF ;
619:
620: FND_FILE.PUT_LINE(FND_FILE.LOG,'Completed '||l_api_name ||to_char(sysdate,'MM/DD/YYYY HH24:MI:SS'));
621:
622: EXCEPTION
623: WHEN CONTIG_PERIODS_FAILURE OR INVALID_VERSION THEN
624: x_return_status := FND_API.G_RET_STS_ERROR;
625:
626: WHEN CALENDAR_REQUIRED THEN
627: x_return_status := FND_API.G_RET_STS_ERROR;
628: FND_MESSAGE.SET_NAME('GMP','GMP_VALUE_REQUIRED');
623: WHEN CONTIG_PERIODS_FAILURE OR INVALID_VERSION THEN
624: x_return_status := FND_API.G_RET_STS_ERROR;
625:
626: WHEN CALENDAR_REQUIRED THEN
627: x_return_status := FND_API.G_RET_STS_ERROR;
628: FND_MESSAGE.SET_NAME('GMP','GMP_VALUE_REQUIRED');
629: FND_MESSAGE.SET_TOKEN('VALUE_REQUIRED',X_msg);
630: FND_MSG_PUB.ADD;
631:
635: WHEN OTHERS THEN
636: FND_MESSAGE.SET_NAME('GMD', 'GMD_UNEXPECTED_ERROR');
637: FND_MESSAGE.SET_TOKEN('ERROR', sqlerrm);
638: FND_MSG_PUB.ADD;
639: x_return_status := FND_API.G_RET_STS_ERROR;
640: END get_contiguous_periods;
641: /*
642: ==========================================================================
643: Procedure:
738:
739:
740: EXCEPTION
741: WHEN GMP_DATE_NOT_IN_CAL_RANGE THEN
742: x_return_status := FND_API.G_RET_STS_ERROR;
743: FND_FILE.PUT_LINE(FND_FILE.LOG,'Date Passed is Out of Calendar Range '||X_msg);
744: FND_MESSAGE.SET_NAME('GMP','GMP_DATE_NOT_IN_CAL_RANGE');
745: FND_MSG_PUB.ADD;
746:
744: FND_MESSAGE.SET_NAME('GMP','GMP_DATE_NOT_IN_CAL_RANGE');
745: FND_MSG_PUB.ADD;
746:
747: WHEN ENTER_START_OR_END_DATE THEN
748: x_return_status := FND_API.G_RET_STS_ERROR;
749: FND_FILE.PUT_LINE(FND_FILE.LOG,'Enter Start Or End Date '||X_msg);
750: FND_MESSAGE.SET_NAME('GMP','GMP_ENTER_START_OR_END_DATE');
751: FND_MSG_PUB.ADD;
752:
750: FND_MESSAGE.SET_NAME('GMP','GMP_ENTER_START_OR_END_DATE');
751: FND_MSG_PUB.ADD;
752:
753: WHEN PS_INVALID_CALENDAR THEN
754: x_return_status := FND_API.G_RET_STS_ERROR;
755: FND_MESSAGE.SET_NAME('GMP','PS_INVALID_CALENDAR');
756: FND_MSG_PUB.ADD;
757:
758: WHEN INVALID_VALUE THEN
755: FND_MESSAGE.SET_NAME('GMP','PS_INVALID_CALENDAR');
756: FND_MSG_PUB.ADD;
757:
758: WHEN INVALID_VALUE THEN
759: x_return_status := FND_API.G_RET_STS_ERROR;
760: FND_FILE.PUT_LINE(FND_FILE.LOG,'Invalid Value '||X_field||'-'||X_value);
761: FND_MESSAGE.SET_NAME('GMP','GMP_INVALID_VALUE');
762: FND_MESSAGE.SET_TOKEN('FIELD',X_field);
763: FND_MESSAGE.SET_TOKEN('VALUE',X_value);
812:
813: /* Local variable section */
814:
815: l_api_name CONSTANT VARCHAR2(30) := 'GET_ALL_DATES';
816: l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
817:
818: /* Define Exceptions */
819: CALENDAR_REQUIRED EXCEPTION;
820: CHECK_ALL_DATES_FAILURE EXCEPTION;
828:
829: BEGIN
830:
831: /* Set the return status to success initially */
832: x_return_status := FND_API.G_RET_STS_SUCCESS;
833:
834: /* Initialize message list and count if needed */
835: IF p_init_msg_list THEN
836: fnd_msg_pub.initialize;
836: fnd_msg_pub.initialize;
837: END IF;
838:
839: /* Make sure we are call compatible */
840: IF NOT FND_API.compatible_api_call ( GMP_CALENDAR_API.m_api_version
841: ,p_api_version
842: ,'GET_ALL_DATES'
843: ,GMP_CALENDAR_API.m_pkg_name) THEN
844: x_return_status := FND_API.G_RET_STS_ERROR;
840: IF NOT FND_API.compatible_api_call ( GMP_CALENDAR_API.m_api_version
841: ,p_api_version
842: ,'GET_ALL_DATES'
843: ,GMP_CALENDAR_API.m_pkg_name) THEN
844: x_return_status := FND_API.G_RET_STS_ERROR;
845: RAISE INVALID_VERSION;
846: END IF;
847: --
848: IF p_calendar_code is NOT NULL
883: FND_FILE.PUT_LINE(FND_FILE.LOG,'Completed '||l_api_name ||to_char(sysdate,'MM/DD/YYYY HH24:MI:SS'));
884:
885: EXCEPTION
886: WHEN check_all_dates_failure OR invalid_version THEN
887: x_return_status := FND_API.G_RET_STS_ERROR;
888:
889: WHEN CALENDAR_REQUIRED OR VALUE_REQUIRED THEN
890: x_return_status := FND_API.G_RET_STS_ERROR;
891: FND_MESSAGE.SET_NAME('GMP','GMP_VALUE_REQUIRED');
886: WHEN check_all_dates_failure OR invalid_version THEN
887: x_return_status := FND_API.G_RET_STS_ERROR;
888:
889: WHEN CALENDAR_REQUIRED OR VALUE_REQUIRED THEN
890: x_return_status := FND_API.G_RET_STS_ERROR;
891: FND_MESSAGE.SET_NAME('GMP','GMP_VALUE_REQUIRED');
892: FND_MESSAGE.SET_TOKEN('VALUE_REQUIRED',X_msg);
893: FND_MSG_PUB.ADD;
894:
892: FND_MESSAGE.SET_TOKEN('VALUE_REQUIRED',X_msg);
893: FND_MSG_PUB.ADD;
894:
895: WHEN INVALID_CAL_RANGE THEN
896: x_return_status := FND_API.G_RET_STS_ERROR;
897: FND_MESSAGE.SET_NAME('GMP','MR_INV_CALENDAR_RANGE');
898: FND_MSG_PUB.ADD;
899:
900: WHEN OTHERS THEN
900: WHEN OTHERS THEN
901: FND_MESSAGE.SET_NAME('GMD', 'GMD_UNEXPECTED_ERROR');
902: FND_MESSAGE.SET_TOKEN('ERROR', sqlerrm);
903: FND_MSG_PUB.ADD;
904: x_return_status := FND_API.g_ret_sts_unexp_error;
905:
906: END get_all_dates ;
907:
908: /*
949: i INTEGER := 0 ;
950: /* Local variable section */
951:
952: l_api_name CONSTANT VARCHAR2(30) := 'GET_WORK_DAYS';
953: l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
954:
955: /* Define Exceptions */
956: CALENDAR_REQUIRED EXCEPTION;
957: work_days_failure EXCEPTION;
960:
961: BEGIN
962:
963: /* Set the return status to success initially */
964: x_return_status := FND_API.G_RET_STS_SUCCESS;
965:
966: /* Initialize message list and count if needed */
967: IF p_init_msg_list THEN
968: fnd_msg_pub.initialize;
968: fnd_msg_pub.initialize;
969: END IF;
970:
971: /* Make sure we are call compatible */
972: IF NOT FND_API.compatible_api_call ( GMP_CALENDAR_API.m_api_version
973: ,p_api_version
974: ,'GET_WORK_DAYS'
975: ,GMP_CALENDAR_API.m_pkg_name) THEN
976: x_return_status := FND_API.G_RET_STS_ERROR;
972: IF NOT FND_API.compatible_api_call ( GMP_CALENDAR_API.m_api_version
973: ,p_api_version
974: ,'GET_WORK_DAYS'
975: ,GMP_CALENDAR_API.m_pkg_name) THEN
976: x_return_status := FND_API.G_RET_STS_ERROR;
977: RAISE INVALID_VERSION;
978: END IF;
979:
980: IF p_calendar_code is NOT NULL
1007: FND_FILE.PUT_LINE(FND_FILE.LOG,'Completed '||l_api_name ||to_char(sysdate,'MM/DD/YYYY HH24:MI:SS'));
1008:
1009: EXCEPTION
1010: WHEN work_days_failure OR invalid_version THEN
1011: x_return_status := FND_API.G_RET_STS_ERROR;
1012:
1013: WHEN CALENDAR_REQUIRED THEN
1014: x_return_status := FND_API.G_RET_STS_ERROR;
1015: FND_MESSAGE.SET_NAME('GMP','GMP_VALUE_REQUIRED');
1010: WHEN work_days_failure OR invalid_version THEN
1011: x_return_status := FND_API.G_RET_STS_ERROR;
1012:
1013: WHEN CALENDAR_REQUIRED THEN
1014: x_return_status := FND_API.G_RET_STS_ERROR;
1015: FND_MESSAGE.SET_NAME('GMP','GMP_VALUE_REQUIRED');
1016: FND_MESSAGE.SET_TOKEN('VALUE_REQUIRED',X_msg);
1017: FND_MSG_PUB.ADD;
1018:
1019: WHEN OTHERS THEN
1020: FND_MESSAGE.SET_NAME('GMD', 'GMD_UNEXPECTED_ERROR');
1021: FND_MESSAGE.SET_TOKEN('ERROR', sqlerrm);
1022: FND_MSG_PUB.ADD;
1023: x_return_status := FND_API.g_ret_sts_unexp_error;
1024:
1025: END get_work_days ;
1026:
1027: /* ==========================================================================
1064:
1065: /* Local variable section */
1066:
1067: l_api_name CONSTANT VARCHAR2(30) := 'GET_WORKDAY_DETAILS';
1068: l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
1069:
1070: /* Define Exceptions */
1071: SHOPDAY_NUMBER_REQUIRED EXCEPTION;
1072: WORKDAY_DTLS_FAILURE EXCEPTION;
1077:
1078: BEGIN
1079:
1080: /* Set the return status to success initially */
1081: x_return_status := FND_API.G_RET_STS_SUCCESS;
1082:
1083: /* Initialize message list and count if needed */
1084: IF p_init_msg_list THEN
1085: fnd_msg_pub.initialize;
1085: fnd_msg_pub.initialize;
1086: END IF;
1087:
1088: /* Make sure we are call compatible */
1089: IF NOT FND_API.compatible_api_call ( GMP_CALENDAR_API.m_api_version
1090: ,p_api_version
1091: ,'GET_WORKDAY_DETAILS'
1092: ,GMP_CALENDAR_API.m_pkg_name) THEN
1093: x_return_status := FND_API.G_RET_STS_ERROR;
1089: IF NOT FND_API.compatible_api_call ( GMP_CALENDAR_API.m_api_version
1090: ,p_api_version
1091: ,'GET_WORKDAY_DETAILS'
1092: ,GMP_CALENDAR_API.m_pkg_name) THEN
1093: x_return_status := FND_API.G_RET_STS_ERROR;
1094: RAISE INVALID_VERSION;
1095: END IF;
1096: --
1097: OPEN Cur_shop_day(p_calendar_code , p_shopday_no);
1124: FND_FILE.PUT_LINE(FND_FILE.LOG,'Completed '||l_api_name ||to_char(sysdate,'MM/DD/YYYY HH24:MI:SS'));
1125:
1126: EXCEPTION
1127: WHEN INVALID_VERSION THEN
1128: x_return_status := FND_API.G_RET_STS_ERROR;
1129:
1130: WHEN SHOPDAY_NUMBER_REQUIRED THEN
1131: x_return_status := FND_API.G_RET_STS_ERROR;
1132: FND_MESSAGE.SET_NAME('GMP','GMP_VALUE_REQUIRED');
1127: WHEN INVALID_VERSION THEN
1128: x_return_status := FND_API.G_RET_STS_ERROR;
1129:
1130: WHEN SHOPDAY_NUMBER_REQUIRED THEN
1131: x_return_status := FND_API.G_RET_STS_ERROR;
1132: FND_MESSAGE.SET_NAME('GMP','GMP_VALUE_REQUIRED');
1133: FND_MESSAGE.SET_TOKEN('VALUE_REQUIRED',X_msg);
1134: FND_MSG_PUB.ADD;
1135:
1133: FND_MESSAGE.SET_TOKEN('VALUE_REQUIRED',X_msg);
1134: FND_MSG_PUB.ADD;
1135:
1136: WHEN INVALID_SHOPDAY THEN
1137: x_return_status := FND_API.G_RET_STS_ERROR;
1138: FND_MESSAGE.SET_NAME('GMP','GMP_INVALID_SHOPDAY');
1139: FND_MSG_PUB.ADD;
1140:
1141: WHEN OTHERS THEN
1141: WHEN OTHERS THEN
1142: FND_MESSAGE.SET_NAME('GMD', 'GMD_UNEXPECTED_ERROR');
1143: FND_MESSAGE.SET_TOKEN('ERROR', sqlerrm);
1144: FND_MSG_PUB.ADD;
1145: x_return_status := FND_API.g_ret_sts_unexp_error;
1146:
1147: END get_workday_details ;
1148:
1149: /* ==========================================================================
1217:
1218:
1219: EXCEPTION
1220: WHEN GMP_SDATE_BEFORE_CAL_SDATE THEN
1221: x_return_status := FND_API.G_RET_STS_ERROR;
1222: FND_MESSAGE.SET_NAME('GMP','GMP_SDATE_BEFORE_CAL_SDATE');
1223: FND_MSG_PUB.ADD;
1224:
1225: WHEN PS_INVALID_CALENDAR THEN
1222: FND_MESSAGE.SET_NAME('GMP','GMP_SDATE_BEFORE_CAL_SDATE');
1223: FND_MSG_PUB.ADD;
1224:
1225: WHEN PS_INVALID_CALENDAR THEN
1226: x_return_status := FND_API.G_RET_STS_ERROR;
1227: FND_MESSAGE.SET_NAME('GMP','PS_INVALID_CALENDAR');
1228: FND_MSG_PUB.ADD;
1229:
1230: WHEN GMP_EDATE_AFTER_CAL_EDATE THEN
1227: FND_MESSAGE.SET_NAME('GMP','PS_INVALID_CALENDAR');
1228: FND_MSG_PUB.ADD;
1229:
1230: WHEN GMP_EDATE_AFTER_CAL_EDATE THEN
1231: x_return_status := FND_API.G_RET_STS_ERROR;
1232: FND_MESSAGE.SET_NAME('GMP','GMP_EDATE_AFTER_CAL_EDATE');
1233: FND_MSG_PUB.ADD;
1234:
1235: WHEN OTHERS THEN
1235: WHEN OTHERS THEN
1236: FND_MESSAGE.SET_NAME('GMD', 'GMD_UNEXPECTED_ERROR');
1237: FND_MESSAGE.SET_TOKEN('ERROR', sqlerrm);
1238: FND_MSG_PUB.ADD;
1239: x_return_status := FND_API.g_ret_sts_unexp_error;
1240: end check_cal_data;
1241: /* ==========================================================================
1242: Procedure:
1243: check_all_dates
1320: end If;
1321:
1322: EXCEPTION
1323: WHEN VALUE_REQUIRED THEN
1324: x_return_status := FND_API.G_RET_STS_ERROR;
1325: FND_MESSAGE.SET_NAME('GMP','GMP_VALUE_REQUIRED');
1326: FND_MESSAGE.SET_TOKEN('VALUE_REQUIRED',X_msg);
1327: FND_MSG_PUB.ADD;
1328: --
1326: FND_MESSAGE.SET_TOKEN('VALUE_REQUIRED',X_msg);
1327: FND_MSG_PUB.ADD;
1328: --
1329: WHEN INVALID_CAL_RANGE THEN
1330: x_return_status := FND_API.G_RET_STS_ERROR;
1331: FND_MESSAGE.SET_NAME('GMP','MR_INV_CALENDAR_RANGE');
1332: FND_MSG_PUB.ADD;
1333: --
1334: WHEN PS_INVALID_CALENDAR THEN
1331: FND_MESSAGE.SET_NAME('GMP','MR_INV_CALENDAR_RANGE');
1332: FND_MSG_PUB.ADD;
1333: --
1334: WHEN PS_INVALID_CALENDAR THEN
1335: x_return_status := FND_API.G_RET_STS_ERROR;
1336: FND_MESSAGE.SET_NAME('GMP','PS_INVALID_CALENDAR');
1337: FND_MSG_PUB.ADD;
1338: --
1339: WHEN OTHERS THEN
1339: WHEN OTHERS THEN
1340: FND_MESSAGE.SET_NAME('GMD', 'GMD_UNEXPECTED_ERROR');
1341: FND_MESSAGE.SET_TOKEN('ERROR', sqlerrm);
1342: FND_MSG_PUB.ADD;
1343: x_return_status := FND_API.g_ret_sts_unexp_error;
1344:
1345: end check_all_dates;
1346:
1347: /*
1375: /* p_ind 0 means start and 1 means end */
1376:
1377: /* Local variable section */
1378: l_api_name CONSTANT VARCHAR2(30) := 'IS_WORKING_DAYTIME';
1379: l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
1380:
1381: x_date date;
1382:
1383: CURSOR get_datetime_cur (c_calendar_code VARCHAR2, c_cal_date DATE) IS
1413:
1414: BEGIN
1415:
1416: /* Set the return status to success initially */
1417: x_return_status := FND_API.G_RET_STS_SUCCESS;
1418:
1419: /* Initialize message list and count if needed */
1420: IF p_init_msg_list THEN
1421: fnd_msg_pub.initialize;
1421: fnd_msg_pub.initialize;
1422: END IF;
1423:
1424: /* Make sure we are call compatible */
1425: IF NOT FND_API.compatible_api_call ( GMP_CALENDAR_API.m_api_version
1426: ,p_api_version
1427: ,'IS_WORKING_DAYTIME'
1428: ,GMP_CALENDAR_API.m_pkg_name) THEN
1429: x_return_status := FND_API.G_RET_STS_ERROR;
1425: IF NOT FND_API.compatible_api_call ( GMP_CALENDAR_API.m_api_version
1426: ,p_api_version
1427: ,'IS_WORKING_DAYTIME'
1428: ,GMP_CALENDAR_API.m_pkg_name) THEN
1429: x_return_status := FND_API.G_RET_STS_ERROR;
1430: RAISE INVALID_VERSION;
1431: END IF;
1432:
1433: /* Error Out if the Indicator passed not 0 or 1 */
1476:
1477: EXCEPTION
1478: WHEN INVALID_DATA_PASSED OR invalid_version THEN
1479:
1480: x_return_status := FND_API.G_RET_STS_ERROR;
1481: FND_MESSAGE.SET_NAME('GMD', 'GMD_UNEXPECTED_ERROR');
1482: FND_MESSAGE.SET_TOKEN('ERROR', sqlerrm);
1483: FND_MSG_PUB.ADD;
1484: RETURN FALSE ;
1483: FND_MSG_PUB.ADD;
1484: RETURN FALSE ;
1485:
1486: WHEN CALENDAR_REQUIRED THEN
1487: x_return_status := FND_API.G_RET_STS_ERROR;
1488: FND_MESSAGE.SET_NAME('GMP','GMP_VALUE_REQUIRED');
1489: FND_MESSAGE.SET_TOKEN('VALUE_REQUIRED',X_msg);
1490: FND_MSG_PUB.ADD;
1491: RETURN FALSE ;
1490: FND_MSG_PUB.ADD;
1491: RETURN FALSE ;
1492:
1493: WHEN INVALID_VALUE THEN
1494: x_return_status := FND_API.G_RET_STS_ERROR;
1495: FND_FILE.PUT_LINE(FND_FILE.LOG,'Invalid Value '||X_field||'-'||X_value);
1496: FND_MESSAGE.SET_NAME('GMP','GMP_INVALID_VALUE');
1497: FND_MESSAGE.SET_TOKEN('FIELD',X_field);
1498: FND_MESSAGE.SET_TOKEN('VALUE',X_value);
1502: WHEN OTHERS THEN
1503: FND_MESSAGE.SET_NAME('GMD', 'GMD_UNEXPECTED_ERROR');
1504: FND_MESSAGE.SET_TOKEN('ERROR', sqlerrm);
1505: FND_MSG_PUB.ADD;
1506: x_return_status := FND_API.g_ret_sts_unexp_error;
1507: RETURN FALSE ;
1508: END IS_WORKING_DAYTIME ;
1509:
1510: -- Bug: 6265867 Kbanddyo added this procedure
1617: X_msg := '';
1618: X_field := '';
1619: X_value := '';
1620: l_date := NULL;
1621: l_return_status := FND_API.G_RET_STS_SUCCESS;
1622: x_return_status := FND_API.G_RET_STS_SUCCESS;
1623:
1624: /* Initialize message list and count if needed */
1625: IF p_init_msg_list THEN
1618: X_field := '';
1619: X_value := '';
1620: l_date := NULL;
1621: l_return_status := FND_API.G_RET_STS_SUCCESS;
1622: x_return_status := FND_API.G_RET_STS_SUCCESS;
1623:
1624: /* Initialize message list and count if needed */
1625: IF p_init_msg_list THEN
1626: fnd_msg_pub.initialize;
1626: fnd_msg_pub.initialize;
1627: END IF;
1628:
1629: /* Make sure we are call compatible */
1630: IF NOT FND_API.compatible_api_call ( GMP_CALENDAR_API.m_api_version
1631: ,p_api_version
1632: ,'GET_NEAREST_WORKDAYTIME'
1633: ,GMP_CALENDAR_API.m_pkg_name) THEN
1634: FND_FILE.PUT_LINE ( FND_FILE.LOG,'if not FND_API.compatible_api_call');
1630: IF NOT FND_API.compatible_api_call ( GMP_CALENDAR_API.m_api_version
1631: ,p_api_version
1632: ,'GET_NEAREST_WORKDAYTIME'
1633: ,GMP_CALENDAR_API.m_pkg_name) THEN
1634: FND_FILE.PUT_LINE ( FND_FILE.LOG,'if not FND_API.compatible_api_call');
1635: x_return_status := FND_API.G_RET_STS_ERROR;
1636: x_date := (sysdate - 9999 ) ;
1637: RAISE INVALID_VERSION;
1638: END IF;
1631: ,p_api_version
1632: ,'GET_NEAREST_WORKDAYTIME'
1633: ,GMP_CALENDAR_API.m_pkg_name) THEN
1634: FND_FILE.PUT_LINE ( FND_FILE.LOG,'if not FND_API.compatible_api_call');
1635: x_return_status := FND_API.G_RET_STS_ERROR;
1636: x_date := (sysdate - 9999 ) ;
1637: RAISE INVALID_VERSION;
1638: END IF;
1639:
1644: THEN
1645: X_field := 'Direction ';
1646: X_value := p_direction;
1647:
1648: x_return_status := FND_API.G_RET_STS_ERROR;
1649: x_date := (sysdate - 9999 ) ;
1650: RAISE INVALID_VALUE;
1651:
1652: END IF;
1666:
1667: IF l_return_status = 'E' THEN
1668:
1669: FND_FILE.PUT_LINE ( FND_FILE.LOG,'IF l_return_status = E');
1670: x_return_status := FND_API.G_RET_STS_ERROR;
1671: x_date := (sysdate - 9999 ) ;
1672: RAISE INVALID_DATA_PASSED;
1673: ELSE
1674: OPEN Is_WorkDayTime(p_calendar_id , p_date) ;
1675: FETCH Is_WorkdayTime INTO l_count ;
1676: CLOSE Is_WorkdayTime ;
1677:
1678: IF l_count = 1 THEN
1679: x_return_status := FND_API.G_RET_STS_SUCCESS;
1680: x_date := p_date ;
1681: ELSE
1682: IF p_direction = 1 THEN
1683: OPEN get_NextDatetime_cur(p_calendar_id , p_date) ;
1688: OPEN get_PrevDatetime_cur(p_calendar_id , p_date) ;
1689: FETCH get_PrevDatetime_cur INTO l_date ;
1690: CLOSE get_PrevDatetime_cur ;
1691: END IF ;
1692: l_return_status := FND_API.G_RET_STS_SUCCESS;
1693: x_return_status := FND_API.G_RET_STS_SUCCESS;
1694: X_date := l_date ;
1695:
1696: END IF ; /* IF l_count = 1 */
1689: FETCH get_PrevDatetime_cur INTO l_date ;
1690: CLOSE get_PrevDatetime_cur ;
1691: END IF ;
1692: l_return_status := FND_API.G_RET_STS_SUCCESS;
1693: x_return_status := FND_API.G_RET_STS_SUCCESS;
1694: X_date := l_date ;
1695:
1696: END IF ; /* IF l_count = 1 */
1697: END IF; /* IF l_return_status = 'E' */
1698: ELSE
1699:
1700:
1701: FND_FILE.PUT_LINE ( FND_FILE.LOG,'last else');
1702: x_return_status := FND_API.G_RET_STS_ERROR;
1703: x_date := (sysdate - 9999 ) ;
1704: X_msg := 'Calendar/Date ';
1705: RAISE CALENDAR_REQUIRED;
1706: END IF;
1705: RAISE CALENDAR_REQUIRED;
1706: END IF;
1707: EXCEPTION
1708: WHEN INVALID_DATA_PASSED OR invalid_version THEN
1709: x_return_status := FND_API.G_RET_STS_ERROR;
1710: x_date := (sysdate - 9999 ) ;
1711: FND_MESSAGE.SET_NAME('GMD', 'GMD_UNEXPECTED_ERROR');
1712: FND_MESSAGE.SET_TOKEN('ERROR', sqlerrm);
1713: FND_MSG_PUB.ADD;
1712: FND_MESSAGE.SET_TOKEN('ERROR', sqlerrm);
1713: FND_MSG_PUB.ADD;
1714:
1715: WHEN CALENDAR_REQUIRED THEN
1716: x_return_status := FND_API.G_RET_STS_ERROR;
1717: FND_MESSAGE.SET_NAME('GMP','GMP_VALUE_REQUIRED');
1718: FND_MESSAGE.SET_TOKEN('VALUE_REQUIRED',X_msg);
1719: FND_MSG_PUB.ADD;
1720: x_date := (sysdate - 9999 ) ;
1719: FND_MSG_PUB.ADD;
1720: x_date := (sysdate - 9999 ) ;
1721:
1722: WHEN INVALID_VALUE THEN
1723: x_return_status := FND_API.G_RET_STS_ERROR;
1724: x_date := (sysdate - 9999 ) ;
1725: FND_FILE.PUT_LINE(FND_FILE.LOG,'Invalid Value '||X_field||'-'||X_value);
1726: FND_MESSAGE.SET_NAME('GMP','GMP_INVALID_VALUE');
1727: FND_MESSAGE.SET_TOKEN('FIELD',X_field);
1728: FND_MESSAGE.SET_TOKEN('VALUE',X_value);
1729: FND_MSG_PUB.ADD;
1730:
1731: WHEN OTHERS THEN
1732: x_return_status := FND_API.g_ret_sts_unexp_error;
1733: x_date := (sysdate - 9999 ) ;
1734: FND_MESSAGE.SET_NAME('GMD', 'GMD_UNEXPECTED_ERROR');
1735: FND_MESSAGE.SET_TOKEN('ERROR', sqlerrm);
1736: FND_MSG_PUB.ADD;