673:
674: -- Initialize API return status to success
675: -- Initialize message list if p_init_msg_list is set to TRUE.
676: IF FND_API.to_boolean(p_init_msg_list) THEN
677: FND_MSG_PUB.initialize;
678: END IF;
679:
680: x_return_status := FND_API.G_RET_STS_SUCCESS;
681:
799: OPEN c_visit_status(p_x_Visit_tbl(i).visit_id);
800: FETCH c_visit_status INTO l_visit_status;
801: IF c_visit_status%NOTFOUND THEN
802: CLOSE c_visit_status;
803: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
804: Fnd_Message.set_name('AHL', 'AHL_API_RECORD_NOT_FOUND');
805: Fnd_Msg_Pub.ADD;
806: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
807: fnd_log.string(fnd_log.level_statement,L_DEBUG,'Visit status not found for visit : ' ||p_x_Visit_tbl(i).visit_id );
801: IF c_visit_status%NOTFOUND THEN
802: CLOSE c_visit_status;
803: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
804: Fnd_Message.set_name('AHL', 'AHL_API_RECORD_NOT_FOUND');
805: Fnd_Msg_Pub.ADD;
806: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
807: fnd_log.string(fnd_log.level_statement,L_DEBUG,'Visit status not found for visit : ' ||p_x_Visit_tbl(i).visit_id );
808: END IF;
809: END IF;
861: END IF;
862:
863: ------------------------End of API Body---------------------------------------
864: --Standard check to count messages
865: l_msg_count := Fnd_Msg_Pub.count_msg;
866:
867: IF l_msg_count > 0 THEN
868: x_msg_count := l_msg_count;
869: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
882: EXCEPTION
883: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
884: ROLLBACK TO Process_Visit;
885: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
886: FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
887: p_count => x_msg_count,
888: p_data => x_msg_data);
889:
890: WHEN FND_API.G_EXC_ERROR THEN
889:
890: WHEN FND_API.G_EXC_ERROR THEN
891: ROLLBACK TO Process_Visit;
892: X_return_status := FND_API.G_RET_STS_ERROR;
893: FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
894: p_count => x_msg_count,
895: p_data => X_msg_data);
896: WHEN OTHERS THEN
897: ROLLBACK TO Process_Visit;
895: p_data => X_msg_data);
896: WHEN OTHERS THEN
897: ROLLBACK TO Process_Visit;
898: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
899: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
900: THEN
901: fnd_msg_pub.add_exc_msg(p_pkg_name => 'AHL_VWP_VISITS_PVT',
902: p_procedure_name => 'Process_Visit',
903: p_error_text => SUBSTR(SQLERRM,1,240));
897: ROLLBACK TO Process_Visit;
898: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
899: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
900: THEN
901: fnd_msg_pub.add_exc_msg(p_pkg_name => 'AHL_VWP_VISITS_PVT',
902: p_procedure_name => 'Process_Visit',
903: p_error_text => SUBSTR(SQLERRM,1,240));
904: END IF;
905: FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
901: fnd_msg_pub.add_exc_msg(p_pkg_name => 'AHL_VWP_VISITS_PVT',
902: p_procedure_name => 'Process_Visit',
903: p_error_text => SUBSTR(SQLERRM,1,240));
904: END IF;
905: FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
906: p_count => x_msg_count,
907: p_data => x_msg_data);
908: END Process_Visit;
909:
1136: END IF;
1137:
1138: -- Initialize message list if p_init_msg_list is set to TRUE.
1139: IF Fnd_Api.to_boolean(p_init_msg_list) THEN
1140: Fnd_Msg_Pub.initialize;
1141: END IF;
1142:
1143: -- Initialize API return status to success
1144: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
1240: IF visit_rec.project_template_id IS NOT NULL THEN
1241: OPEN c_proj_template(visit_rec.project_template_id);
1242: FETCH c_proj_template INTO l_visit_rec.proj_template_name;
1243: IF c_proj_template%NOTFOUND THEN
1244: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
1245: Fnd_Message.SET_NAME('AHL','AHL_VWP_INVALID_PROTEM');
1246: Fnd_Msg_Pub.ADD;
1247: RAISE Fnd_Api.G_EXC_ERROR;
1248: END IF;
1242: FETCH c_proj_template INTO l_visit_rec.proj_template_name;
1243: IF c_proj_template%NOTFOUND THEN
1244: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
1245: Fnd_Message.SET_NAME('AHL','AHL_VWP_INVALID_PROTEM');
1246: Fnd_Msg_Pub.ADD;
1247: RAISE Fnd_Api.G_EXC_ERROR;
1248: END IF;
1249: END IF;
1250: CLOSE c_proj_template;
1323: x_visit_rec := l_visit_rec;
1324: END IF;
1325: ------------------------End of API Body------------------------------------
1326: -- Standard call to get message count and if count is 1, get message info
1327: Fnd_Msg_Pub.Count_And_Get
1328: ( p_count => x_msg_count,
1329: p_data => x_msg_data,
1330: p_encoded => Fnd_Api.g_false);
1331:
1337: EXCEPTION
1338: WHEN Fnd_Api.G_EXC_ERROR THEN
1339: x_return_status := Fnd_Api.G_RET_STS_ERROR;
1340: ROLLBACK TO Get_Visit_Details;
1341: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
1342: p_data => x_msg_data,
1343: p_encoded => Fnd_Api.g_false);
1344:
1345: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
1344:
1345: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
1346: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
1347: ROLLBACK TO Get_Visit_Details;
1348: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
1349: p_data => x_msg_data,
1350: p_encoded => Fnd_Api.g_false);
1351:
1352: WHEN OTHERS THEN
1351:
1352: WHEN OTHERS THEN
1353: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
1354: ROLLBACK TO Get_Visit_Details;
1355: Fnd_Msg_Pub.add_exc_msg( p_pkg_name => G_PKG_NAME,
1356: p_procedure_name => 'Get_Visit_Details',
1357: p_error_text => SQLERRM);
1358: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
1359: p_data => x_msg_data,
1354: ROLLBACK TO Get_Visit_Details;
1355: Fnd_Msg_Pub.add_exc_msg( p_pkg_name => G_PKG_NAME,
1356: p_procedure_name => 'Get_Visit_Details',
1357: p_error_text => SQLERRM);
1358: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
1359: p_data => x_msg_data,
1360: p_encoded => Fnd_Api.g_false);
1361: END Get_Visit_Details;
1362:
1532: END IF;
1533:
1534: -- Initialize message list if p_init_msg_list is set to TRUE.
1535: IF Fnd_Api.to_boolean(p_init_msg_list) THEN
1536: Fnd_Msg_Pub.initialize;
1537: END IF;
1538:
1539: -- Initialize API return status to success
1540: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
1590: x_return_status => l_return_status);
1591:
1592: IF NVL(l_return_status, 'X') <> 'S' THEN
1593: Fnd_Message.SET_NAME('AHL','AHL_VWP_TYPE_CODE_NOT_EXISTS');
1594: Fnd_Msg_Pub.ADD;
1595: RAISE Fnd_Api.G_EXC_ERROR;
1596: END IF;
1597: END IF;
1598:
1604: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
1605: fnd_log.string(fnd_log.level_statement,L_DEBUG,'Unit does not exists..');
1606: END IF;
1607: Fnd_Message.SET_NAME('AHL','AHL_VWP_UNIT_NOT_EXISTS');
1608: Fnd_Msg_Pub.ADD;
1609: CLOSE c_unit_det;
1610: RAISE Fnd_Api.G_EXC_ERROR;
1611: END IF;
1612: CLOSE c_unit_det;
1634: x_error_msg_code => l_msg_data);
1635:
1636: IF NVL(l_return_status,'x') <> 'S' THEN
1637: Fnd_Message.SET_NAME('AHL','AHL_VWP_ORG_NOT_EXISTS');
1638: Fnd_Msg_Pub.ADD;
1639: RAISE Fnd_Api.G_EXC_ERROR;
1640: END IF;
1641: END IF;
1642:
1668: x_error_msg_code => l_msg_data);
1669:
1670: IF NVL(l_return_status,'x') <> 'S' THEN
1671: Fnd_Message.SET_NAME('AHL','AHL_VWP_DEPT_NOT_EXISTS');
1672: Fnd_Msg_Pub.ADD;
1673: RAISE Fnd_Api.G_EXC_ERROR;
1674: END IF;
1675:
1676: AHL_VWP_RULES_PVT.CHECK_DEPARTMENT_SHIFT
1678: x_return_status => l_return_status);
1679:
1680: IF NVL(l_return_status,'x') <> 'S' THEN
1681: Fnd_Message.SET_NAME('AHL','AHL_VWP_NO_DEPT_SHIFT');
1682: Fnd_Msg_Pub.ADD;
1683: RAISE Fnd_Api.G_EXC_ERROR;
1684: END IF;
1685: END IF;
1686:
1706: x_error_msg_code => l_msg_data);
1707:
1708: IF NVL(l_return_status,'x') <> 'S' THEN
1709: Fnd_Message.SET_NAME('AHL','AHL_VWP_SERVICE_REQ_NOT_EXISTS');
1710: Fnd_Msg_Pub.ADD;
1711: RAISE Fnd_Api.g_exc_error;
1712: END IF;
1713:
1714: --Assign the returned value
1762: -- To validate visit start date should be less than plan end date
1763: IF l_Visit_rec.START_DATE IS NOT NULL AND l_Visit_rec.plan_end_date IS NOT NULL THEN
1764: IF (l_Visit_rec.START_DATE > l_Visit_rec.plan_end_date) THEN
1765: Fnd_Message.SET_NAME('AHL','AHL_VWP_START_DT_GTR_CLOSE_DT');
1766: Fnd_Msg_Pub.ADD;
1767: RAISE Fnd_Api.G_EXC_ERROR;
1768: END IF;
1769: END IF;
1770: -- End of changes by amagrawa
1781: l_Visit_rec.SIMULATION_PLAN_ID := l_simulation_plan_id;
1782:
1783: IF l_simulation_plan_id IS NULL THEN
1784: Fnd_Message.SET_NAME('AHL','AHL_VWP_PRI_PLN_NOT_EXIST');
1785: Fnd_Msg_Pub.ADD;
1786: RAISE Fnd_Api.G_EXC_ERROR;
1787: END IF;
1788: END IF;
1789:
1803: x_return_status => l_return_status);
1804:
1805: IF NVL(l_return_status, 'X') <> 'S' THEN
1806: Fnd_Message.SET_NAME('AHL','AHL_VWP_PRI_NOT_EXISTS');
1807: Fnd_Msg_Pub.ADD;
1808: RAISE Fnd_Api.G_EXC_ERROR;
1809: END IF;
1810: l_visit_rec.priority_code := l_priority_code;
1811: END IF;
1820: x_error_msg_code => l_msg_data);
1821:
1822: IF NVL(l_return_status, 'X') <> 'S' THEN
1823: Fnd_Message.SET_NAME('AHL','AHL_VWP_INVALID_PROTEM');
1824: Fnd_Msg_Pub.ADD;
1825: RAISE Fnd_Api.G_EXC_ERROR;
1826: END IF;
1827: l_visit_rec.proj_template_id := l_proj_template_id;
1828: ELSE
1835: l_dummy := NULL;
1836:
1837: IF ((l_visit_rec.subinventory IS NOT NULL) AND (l_visit_rec.locator_segment IS NULL)) THEN
1838: Fnd_Message.SET_NAME('AHL','AHL_VWP_LOCATOR_NULL');
1839: Fnd_Msg_Pub.ADD;
1840: RAISE Fnd_Api.G_EXC_ERROR;
1841: ELSIF ((l_visit_rec.subinventory IS NULL) AND (l_visit_rec.locator_segment IS NOT NULL))THEN
1842: Fnd_Message.SET_NAME('AHL','AHL_VWP_SUBINVENTORY_NULL');
1843: Fnd_Msg_Pub.ADD;
1839: Fnd_Msg_Pub.ADD;
1840: RAISE Fnd_Api.G_EXC_ERROR;
1841: ELSIF ((l_visit_rec.subinventory IS NULL) AND (l_visit_rec.locator_segment IS NOT NULL))THEN
1842: Fnd_Message.SET_NAME('AHL','AHL_VWP_SUBINVENTORY_NULL');
1843: Fnd_Msg_Pub.ADD;
1844: RAISE Fnd_Api.G_EXC_ERROR;
1845: ELSIF ((l_visit_rec.subinventory IS NOT NULL) AND (l_visit_rec.locator_segment IS NOT NULL)) THEN
1846:
1847: OPEN c_subinv_validate (l_visit_rec.subinventory, l_visit_rec.organization_id);
1848: FETCH c_subinv_validate INTO l_status_id;
1849: IF (c_subinv_validate%NOTFOUND) THEN
1850: CLOSE c_subinv_validate;
1851: Fnd_Message.SET_NAME('AHL','AHL_VWP_SUBINV_NOT_EXISTS');
1852: Fnd_Msg_Pub.ADD;
1853: RAISE Fnd_Api.G_EXC_ERROR;
1854: ELSE
1855: IF l_status_id in (NVL(fnd_profile.value('AHL_MTL_MAT_STATUS_UNSERVICABLE'), -1), NVL(fnd_profile.value('AHL_MTL_MAT_STATUS_MRB'), -1)) THEN
1856: CLOSE c_subinv_validate;
1855: IF l_status_id in (NVL(fnd_profile.value('AHL_MTL_MAT_STATUS_UNSERVICABLE'), -1), NVL(fnd_profile.value('AHL_MTL_MAT_STATUS_MRB'), -1)) THEN
1856: CLOSE c_subinv_validate;
1857: FND_MESSAGE.SET_NAME('AHL', 'AHL_SUBINVENTORY_NOT_SVC');
1858: FND_MESSAGE.Set_Token('INV', l_visit_rec.subinventory);
1859: FND_MSG_PUB.ADD;
1860: RAISE Fnd_Api.G_EXC_ERROR;
1861: END IF;
1862: END IF;
1863: CLOSE c_subinv_validate;
1867: OPEN c_loc_validate (l_visit_rec.organization_id, l_visit_rec.subinventory,l_visit_rec.locator_segment );
1868: FETCH c_loc_validate INTO l_inv_loc_id;
1869: IF c_loc_validate%NOTFOUND THEN
1870: Fnd_Message.SET_NAME('AHL','AHL_VWP_PHY_LOCATOR_NOT_EXISTS');
1871: Fnd_Msg_Pub.ADD;
1872: CLOSE c_loc_validate;
1873: RAISE Fnd_Api.G_EXC_ERROR;
1874: END IF;
1875: CLOSE c_loc_validate;
1916: -- If the value for the ID already exists, then
1917: -- l_dummy would be populated with '1', otherwise, it receives NULL.
1918: IF l_dummy IS NOT NULL THEN
1919: Fnd_Message.SET_NAME('AHL','AHL_VWP_SEQUENCE_NOT_EXISTS');
1920: Fnd_Msg_Pub.ADD;
1921: END IF;
1922:
1923: -- For all optional fields check if its g_miss_num/g_miss_char/g_miss_date
1924: -- then Null else the value call Default_Missing_Attribs procedure
1930: END IF;
1931: END IF;
1932:
1933: --Standard check to count messages
1934: l_msg_count := Fnd_Msg_Pub.count_msg;
1935:
1936: IF l_msg_count > 0 THEN
1937: x_msg_count := l_msg_count;
1938: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
1990: -- Instance ID is madatory for transit visit
1991: IF l_Visit_rec.item_instance_id IS NULL
1992: OR l_Visit_rec.item_instance_id = FND_API.G_MISS_NUM THEN
1993: Fnd_Message.SET_NAME('AHL','AHL_VWP_TC_UNIT_REQ');
1994: Fnd_Msg_Pub.ADD;
1995: END IF;
1996:
1997: -- Planned Start Date is madatory for transit visit
1998: IF l_visit_rec.START_DATE IS NULL OR l_visit_rec.START_DATE = FND_API.g_miss_date THEN
1996:
1997: -- Planned Start Date is madatory for transit visit
1998: IF l_visit_rec.START_DATE IS NULL OR l_visit_rec.START_DATE = FND_API.g_miss_date THEN
1999: Fnd_Message.SET_NAME('AHL','AHL_VWP_TC_ST_DT_REQ');
2000: Fnd_Msg_Pub.ADD;
2001: END IF;
2002:
2003: -- Planned End Date is madatory for transit visit
2004: /*
2011: l_Visit_rec.unit_schedule_id := NULL;
2012: END IF;
2013:
2014: --Standard check to count messages
2015: l_msg_count := Fnd_Msg_Pub.count_msg;
2016:
2017: IF l_msg_count > 0 THEN
2018: x_msg_count := l_msg_count;
2019: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
2135: fnd_log.string(fnd_log.level_statement,L_DEBUG,'After calling AHL_VWP_TASKS_PVT.ASSOCIATE_DEFAULT_MRS - x_return_status : '||x_return_status);
2136: END IF;
2137:
2138: --Standard check to count messages
2139: l_msg_count := Fnd_Msg_Pub.count_msg;
2140:
2141: IF l_msg_count > 0 THEN
2142: X_msg_count := l_msg_count;
2143: X_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
2163: fnd_log.string(fnd_log.level_statement,L_DEBUG,'After calling AHL_VWP_TIMES_PVT.Calculate_Task_Times - l_return_status : '||l_return_status);
2164: END IF;
2165:
2166: --Standard check to count messages
2167: l_msg_count := Fnd_Msg_Pub.count_msg;
2168:
2169: IF l_msg_count > 0 THEN
2170: X_msg_count := l_msg_count;
2171: X_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
2219: END IF;
2220: END IF; -- l_Visit_rec.visit_create_type IS NOT NULL
2221: ---------------------------End of API Body---------------------------------------
2222: --Standard check to count messages
2223: l_msg_count := Fnd_Msg_Pub.count_msg;
2224:
2225: IF l_msg_count > 0 THEN
2226: X_msg_count := l_msg_count;
2227: X_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
2239: EXCEPTION
2240: WHEN Fnd_Api.g_exc_error THEN
2241: ROLLBACK TO Create_Visit;
2242: x_return_status := Fnd_Api.g_ret_sts_error;
2243: Fnd_Msg_Pub.count_and_get(
2244: p_encoded => Fnd_Api.g_false,
2245: p_count => x_msg_count,
2246: p_data => x_msg_data
2247: );
2247: );
2248: WHEN Fnd_Api.g_exc_unexpected_error THEN
2249: ROLLBACK TO Create_Visit;
2250: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
2251: Fnd_Msg_Pub.count_and_get (
2252: p_encoded => Fnd_Api.g_false,
2253: p_count => x_msg_count,
2254: p_data => x_msg_data
2255: );
2255: );
2256: WHEN OTHERS THEN
2257: ROLLBACK TO Create_Visit;
2258: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
2259: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
2260: THEN
2261: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
2262: END IF;
2263: Fnd_Msg_Pub.count_and_get (
2257: ROLLBACK TO Create_Visit;
2258: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
2259: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
2260: THEN
2261: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
2262: END IF;
2263: Fnd_Msg_Pub.count_and_get (
2264: p_encoded => Fnd_Api.g_false,
2265: p_count => x_msg_count,
2259: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
2260: THEN
2261: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
2262: END IF;
2263: Fnd_Msg_Pub.count_and_get (
2264: p_encoded => Fnd_Api.g_false,
2265: p_count => x_msg_count,
2266: p_data => x_msg_data
2267: );
2377: END IF;
2378:
2379: -- Initialize message list if p_init_msg_list is set to TRUE.
2380: IF Fnd_Api.to_boolean(p_init_msg_list) THEN
2381: Fnd_Msg_Pub.initialize;
2382: END IF;
2383:
2384: -- Initialize API return status to success
2385: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
2399: OPEN c_visit(p_visit_id);
2400: FETCH c_visit INTO c_visit_rec;
2401: IF c_Visit%NOTFOUND THEN
2402: CLOSE c_Visit;
2403: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
2404: Fnd_Message.set_name('AHL', 'AHL_API_RECORD_NOT_FOUND');
2405: Fnd_Msg_Pub.ADD;
2406: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
2407: fnd_log.string(fnd_log.level_statement,L_DEBUG,'Visit not found for' ||l_visit_rec.visit_id );
2401: IF c_Visit%NOTFOUND THEN
2402: CLOSE c_Visit;
2403: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
2404: Fnd_Message.set_name('AHL', 'AHL_API_RECORD_NOT_FOUND');
2405: Fnd_Msg_Pub.ADD;
2406: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
2407: fnd_log.string(fnd_log.level_statement,L_DEBUG,'Visit not found for' ||l_visit_rec.visit_id );
2408: END IF;
2409: END IF;
2414:
2415: -- Check if the visit status is deleted.display error message if so. Added in 11.5.10
2416: IF UPPER(c_visit_rec.status_code) = 'DELETED' THEN
2417: Fnd_Message.SET_NAME('AHL','AHL_VWP_INVALID_STATUS');
2418: Fnd_Msg_Pub.ADD;
2419: RAISE Fnd_Api.G_EXC_ERROR;
2420: END IF;
2421:
2422: -- org/dept/start date/end date are passed from UA
2731: p_x_Visit_rec.visit_id := l_visit_id;
2732:
2733: ---------------------------End of API Body---------------------------------------
2734: --Standard check to count messages
2735: l_msg_count := Fnd_Msg_Pub.count_msg;
2736:
2737: IF l_msg_count > 0 THEN
2738: X_msg_count := l_msg_count;
2739: X_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
2751: EXCEPTION
2752: WHEN Fnd_Api.g_exc_error THEN
2753: ROLLBACK TO Copy_Visit;
2754: x_return_status := Fnd_Api.g_ret_sts_error;
2755: Fnd_Msg_Pub.count_and_get (
2756: p_encoded => Fnd_Api.g_false,
2757: p_count => x_msg_count,
2758: p_data => x_msg_data
2759: );
2759: );
2760: WHEN Fnd_Api.g_exc_unexpected_error THEN
2761: ROLLBACK TO Copy_Visit;
2762: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
2763: Fnd_Msg_Pub.count_and_get (
2764: p_encoded => Fnd_Api.g_false,
2765: p_count => x_msg_count,
2766: p_data => x_msg_data
2767: );
2767: );
2768: WHEN OTHERS THEN
2769: ROLLBACK TO Copy_Visit;
2770: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
2771: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
2772: THEN
2773: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
2774: END IF;
2775: Fnd_Msg_Pub.count_and_get (
2769: ROLLBACK TO Copy_Visit;
2770: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
2771: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
2772: THEN
2773: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
2774: END IF;
2775: Fnd_Msg_Pub.count_and_get (
2776: p_encoded => Fnd_Api.g_false,
2777: p_count => x_msg_count,
2771: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
2772: THEN
2773: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
2774: END IF;
2775: Fnd_Msg_Pub.count_and_get (
2776: p_encoded => Fnd_Api.g_false,
2777: p_count => x_msg_count,
2778: p_data => x_msg_data
2779: );
2905: END IF;
2906:
2907: -- Initialize message list if p_init_msg_list is set to TRUE.
2908: IF Fnd_Api.to_boolean(p_init_msg_list) THEN
2909: Fnd_Msg_Pub.initialize;
2910: END IF;
2911:
2912: -- Initialize API return status to success
2913: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
2924: OPEN c_Visit(l_Visit_rec.visit_id);
2925: FETCH c_Visit INTO c_Visit_rec;
2926: IF c_Visit%NOTFOUND THEN
2927: CLOSE c_Visit;
2928: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
2929: Fnd_Message.set_name('AHL', 'AHL_API_RECORD_NOT_FOUND');
2930: Fnd_Msg_Pub.ADD;
2931: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
2932: fnd_log.string(fnd_log.level_statement,L_DEBUG,'Visit not found for' ||l_visit_rec.visit_id );
2926: IF c_Visit%NOTFOUND THEN
2927: CLOSE c_Visit;
2928: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
2929: Fnd_Message.set_name('AHL', 'AHL_API_RECORD_NOT_FOUND');
2930: Fnd_Msg_Pub.ADD;
2931: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
2932: fnd_log.string(fnd_log.level_statement,L_DEBUG,'Visit not found for' ||l_visit_rec.visit_id );
2933: END IF;
2934: END IF;
2939:
2940: -- To validate Object version number.
2941: IF (c_visit_rec.object_version_number <> l_visit_rec.object_version_number) THEN
2942: Fnd_Message.Set_Name('AHL','AHL_COM_RECORD_CHANGED');
2943: Fnd_Msg_Pub.ADD;
2944: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
2945: END IF;
2946: --------------------Value OR ID conversion---------------------------
2947: -- Commented for TC changes by Senthil
2995:
2996: -- not allowed to update if status code is not planning, released or partially released.
2997: IF c_visit_rec.status_code NOT IN ('PLANNING','RELEASED', 'PARTIALLY RELEASED') THEN
2998: Fnd_Message.SET_NAME('AHL','AHL_VWP_INVALID_STATUS_NO_EDIT');
2999: Fnd_Msg_Pub.ADD;
3000: RAISE Fnd_Api.G_EXC_ERROR;
3001: END IF;
3002:
3003: -- Process fields that are only updateable when visit is in Planning status
3026: );
3027:
3028: IF NVL(l_return_status, 'X') <> 'S' THEN
3029: Fnd_Message.SET_NAME('AHL','AHL_VWP_TYPE_CODE_NOT_EXISTS');
3030: Fnd_Msg_Pub.ADD;
3031: RAISE Fnd_Api.G_EXC_ERROR;
3032: END IF;
3033: END IF;
3034:
3049: x_error_msg_code => l_msg_data);
3050:
3051: IF NVL(l_return_status,'x') <> 'S' THEN
3052: Fnd_Message.SET_NAME('AHL','AHL_VWP_SERVICE_REQ_NOT_EXISTS');
3053: Fnd_Msg_Pub.ADD;
3054: RAISE Fnd_Api.g_exc_error;
3055: END IF;
3056:
3057: --Assign the returned value
3074: x_return_status => l_return_status);
3075:
3076: IF NVL(l_return_status, 'X') <> 'S' THEN
3077: Fnd_Message.SET_NAME('AHL','AHL_VWP_PRI_NOT_EXISTS');
3078: Fnd_Msg_Pub.ADD;
3079: RAISE Fnd_Api.G_EXC_ERROR;
3080: END IF;
3081: l_visit_rec.priority_code := l_priority_code;
3082: END IF;
3094: x_error_msg_code => l_msg_data);
3095:
3096: IF NVL(l_return_status,'x') <> 'S' THEN
3097: Fnd_Message.SET_NAME('AHL','AHL_VWP_ORG_NOT_EXISTS');
3098: Fnd_Msg_Pub.ADD;
3099: RAISE Fnd_Api.G_EXC_ERROR;
3100: END IF;
3101:
3102: l_visit_rec.organization_id := l_organization_id;
3127: x_error_msg_code => l_msg_data);
3128:
3129: IF NVL(l_return_status,'x') <> 'S' THEN
3130: Fnd_Message.SET_NAME('AHL','AHL_VWP_DEPT_NOT_EXISTS');
3131: Fnd_Msg_Pub.ADD;
3132: RAISE Fnd_Api.G_EXC_ERROR;
3133: END IF;
3134:
3135: l_visit_rec.department_id := l_department_id;
3138: x_return_status => l_return_status);
3139:
3140: IF NVL(l_return_status,'x') <> 'S' THEN
3141: Fnd_Message.SET_NAME('AHL','AHL_VWP_NO_DEPT_SHIFT');
3142: Fnd_Msg_Pub.ADD;
3143: RAISE Fnd_Api.G_EXC_ERROR;
3144: END IF;
3145:
3146: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
3161: x_error_msg_code => l_msg_data);
3162:
3163: IF NVL(l_return_status, 'X') <> 'S' THEN
3164: Fnd_Message.SET_NAME('AHL','AHL_VWP_INVALID_PROTEMP');
3165: Fnd_Msg_Pub.ADD;
3166: RAISE Fnd_Api.G_EXC_ERROR;
3167: END IF;
3168: ELSE
3169: -- If Project Template Name is null
3173:
3174: IF (l_proj_template_id <> c_visit_rec.project_template_id) AND (c_visit_rec.project_id IS NOT NULL) THEN
3175: -- Project Template cannot be updated if Project has been created for Visit
3176: Fnd_Message.SET_NAME('AHL','AHL_VWP_PROJ_CRTD');
3177: Fnd_Msg_Pub.ADD;
3178: RAISE Fnd_Api.G_EXC_ERROR;
3179: ELSE
3180: l_visit_rec.proj_template_id := l_proj_template_id;
3181: END IF;
3184: l_dummy := NULL;
3185:
3186: IF ((l_visit_rec.subinventory IS NOT NULL) AND (l_visit_rec.locator_segment IS NULL)) THEN
3187: Fnd_Message.SET_NAME('AHL','AHL_VWP_LOCATOR_NULL');
3188: Fnd_Msg_Pub.ADD;
3189: RAISE Fnd_Api.G_EXC_ERROR;
3190: ELSIF ((l_visit_rec.subinventory IS NULL) AND (l_visit_rec.locator_segment IS NOT NULL))THEN
3191: Fnd_Message.SET_NAME('AHL','AHL_VWP_SUBINVENTORY_NULL');
3192: Fnd_Msg_Pub.ADD;
3188: Fnd_Msg_Pub.ADD;
3189: RAISE Fnd_Api.G_EXC_ERROR;
3190: ELSIF ((l_visit_rec.subinventory IS NULL) AND (l_visit_rec.locator_segment IS NOT NULL))THEN
3191: Fnd_Message.SET_NAME('AHL','AHL_VWP_SUBINVENTORY_NULL');
3192: Fnd_Msg_Pub.ADD;
3193: RAISE Fnd_Api.G_EXC_ERROR;
3194: ELSIF ((l_visit_rec.subinventory IS NOT NULL) AND (l_visit_rec.locator_segment IS NOT NULL)) THEN
3195:
3196: OPEN c_subinv_validate (l_visit_rec.subinventory, l_visit_rec.organization_id);
3197: FETCH c_subinv_validate INTO l_status_id;
3198: IF c_subinv_validate%NOTFOUND THEN
3199: CLOSE c_subinv_validate;
3200: Fnd_Message.SET_NAME('AHL','AHL_VWP_SUBINV_NOT_EXISTS');
3201: Fnd_Msg_Pub.ADD;
3202: RAISE Fnd_Api.G_EXC_ERROR;
3203: ELSE
3204: IF l_status_id in (NVL(fnd_profile.value('AHL_MTL_MAT_STATUS_UNSERVICABLE'), -1), NVL(fnd_profile.value('AHL_MTL_MAT_STATUS_MRB'), -1)) THEN
3205: CLOSE c_subinv_validate;
3204: IF l_status_id in (NVL(fnd_profile.value('AHL_MTL_MAT_STATUS_UNSERVICABLE'), -1), NVL(fnd_profile.value('AHL_MTL_MAT_STATUS_MRB'), -1)) THEN
3205: CLOSE c_subinv_validate;
3206: FND_MESSAGE.SET_NAME('AHL', 'AHL_SUBINVENTORY_NOT_SVC');
3207: FND_MESSAGE.Set_Token('INV', l_visit_rec.subinventory);
3208: FND_MSG_PUB.ADD;
3209: RAISE Fnd_Api.G_EXC_ERROR;
3210: END IF;
3211: END IF;
3212: CLOSE c_subinv_validate;
3216: OPEN c_loc_validate (l_visit_rec.organization_id, l_visit_rec.subinventory,l_visit_rec.locator_segment );
3217: FETCH c_loc_validate INTO l_inv_loc_id;
3218: IF c_loc_validate%NOTFOUND THEN
3219: Fnd_Message.SET_NAME('AHL','AHL_VWP_PHY_LOCATOR_NOT_EXISTS');
3220: Fnd_Msg_Pub.ADD;
3221: CLOSE c_loc_validate;
3222: RAISE Fnd_Api.G_EXC_ERROR;
3223: END IF;
3224: CLOSE c_loc_validate;
3253: --- as per the updates by Jay and Yan in the CMRO Forum, issue number 169
3254: IF c_visit_rec.status_code IN ('RELEASED', 'PARTIALLY RELEASED') THEN
3255: IF l_date_time_start IS NULL THEN
3256: Fnd_Message.SET_NAME('AHL','AHL_VWP_ST_DT_REQ');
3257: Fnd_Msg_Pub.ADD;
3258: RAISE FND_Api.G_EXC_ERROR;
3259: END IF;
3260:
3261: IF l_date_time_end IS NULL THEN
3259: END IF;
3260:
3261: IF l_date_time_end IS NULL THEN
3262: Fnd_Message.SET_NAME('AHL','AHL_VWP_END_DT_REQ');
3263: Fnd_Msg_Pub.ADD;
3264: RAISE FND_Api.G_EXC_ERROR;
3265: END IF;
3266: END IF;
3267:
3269: THEN
3270: -- Planned Start Date is madatory for transit visit
3271: IF l_date_time_start IS NULL THEN
3272: Fnd_Message.SET_NAME('AHL','AHL_VWP_TC_ST_DT_REQ');
3273: Fnd_Msg_Pub.ADD;
3274: RAISE FND_Api.G_EXC_ERROR;
3275: END IF;
3276:
3277: -- Planned End Date is madatory for transit visit
3276:
3277: -- Planned End Date is madatory for transit visit
3278: IF l_date_time_end IS NULL THEN
3279: Fnd_Message.SET_NAME('AHL','AHL_VWP_TC_END_DT_REQ');
3280: Fnd_Msg_Pub.ADD;
3281: RAISE FND_Api.G_EXC_ERROR;
3282: END IF;
3283: END IF;
3284:
3285: -- To validate visit start date should be less than plan end date
3286: IF l_date_time_end IS NOT NULL AND l_date_time_start IS NOT NULL THEN
3287: IF (l_date_time_start > l_date_time_end) THEN
3288: Fnd_Message.SET_NAME('AHL','AHL_VWP_START_DT_GTR_CLOSE_DT');
3289: Fnd_Msg_Pub.ADD;
3290: RAISE Fnd_Api.G_EXC_ERROR;
3291: END IF;
3292: END IF;
3293: l_visit_rec.STATUS_CODE := c_Visit_rec.STATUS_CODE;
3788: RAISE FND_API.G_EXC_ERROR;
3789: END IF;
3790: END IF;
3791:
3792: l_msg_count := Fnd_Msg_Pub.count_msg;
3793: IF l_msg_count > 0 THEN
3794: X_msg_count := l_msg_count;
3795: X_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
3796: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
3807: EXCEPTION
3808: WHEN Fnd_Api.g_exc_error THEN
3809: ROLLBACK TO Update_Visit;
3810: x_return_status := Fnd_Api.g_ret_sts_error;
3811: Fnd_Msg_Pub.count_and_get (
3812: p_encoded => Fnd_Api.g_false,
3813: p_count => x_msg_count,
3814: p_data => x_msg_data
3815: );
3815: );
3816: WHEN Fnd_Api.g_exc_unexpected_error THEN
3817: ROLLBACK TO Update_Visit;
3818: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
3819: Fnd_Msg_Pub.count_and_get (
3820: p_encoded => Fnd_Api.g_false,
3821: p_count => x_msg_count,
3822: p_data => x_msg_data
3823: );
3823: );
3824: WHEN OTHERS THEN
3825: ROLLBACK TO Update_Visit;
3826: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
3827: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
3828: THEN
3829: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
3830: END IF;
3831: Fnd_Msg_Pub.count_and_get (
3825: ROLLBACK TO Update_Visit;
3826: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
3827: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
3828: THEN
3829: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
3830: END IF;
3831: Fnd_Msg_Pub.count_and_get (
3832: p_encoded => Fnd_Api.g_false,
3833: p_count => x_msg_count,
3827: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
3828: THEN
3829: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
3830: END IF;
3831: Fnd_Msg_Pub.count_and_get (
3832: p_encoded => Fnd_Api.g_false,
3833: p_count => x_msg_count,
3834: p_data => x_msg_data
3835: );
3931: IF NVL(x_return_status, 'X') <> Fnd_Api.G_RET_STS_SUCCESS
3932: THEN
3933: -- Method call was not successful, raise error
3934: Fnd_Message.SET_NAME('AHL','AHL_VWP_PRJ_TASK_FAILED');
3935: Fnd_Msg_Pub.ADD;
3936: IF (fnd_log.level_error >= fnd_log.g_current_runtime_level)THEN
3937: fnd_log.string
3938: (
3939: fnd_log.level_error,
4058: END IF;
4059:
4060: -- Initialize message list if p_init_msg_list is set to TRUE.
4061: IF Fnd_Api.to_boolean(p_init_msg_list) THEN
4062: Fnd_Msg_Pub.initialize;
4063: END IF;
4064:
4065: --Initialize API return status to success
4066: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
4080: OPEN c_Visit(p_visit_id);
4081: FETCH c_Visit INTO l_Visit_rec;
4082: IF c_Visit%NOTFOUND THEN
4083: CLOSE c_Visit;
4084: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
4085: Fnd_Message.set_name('AHL', 'AHL_API_RECORD_NOT_FOUND');
4086: Fnd_Msg_Pub.ADD;
4087: IF(fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
4088: fnd_log.string(fnd_log.level_statement,L_DEBUG,'Record not found for the visit with ID'||p_visit_id);
4082: IF c_Visit%NOTFOUND THEN
4083: CLOSE c_Visit;
4084: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
4085: Fnd_Message.set_name('AHL', 'AHL_API_RECORD_NOT_FOUND');
4086: Fnd_Msg_Pub.ADD;
4087: IF(fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
4088: fnd_log.string(fnd_log.level_statement,L_DEBUG,'Record not found for the visit with ID'||p_visit_id);
4089: END IF;
4090: END IF;
4094:
4095: -- Check the status of visit, if 'planning' then only delete
4096: IF UPPER(l_visit_rec.status_code) <> 'PLANNING' THEN
4097: Fnd_Message.SET_NAME('AHL','AHL_VWP_STATUS_NOT_DELETE');
4098: Fnd_Msg_Pub.ADD;
4099: IF(fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
4100: fnd_log.string(fnd_log.level_statement,L_DEBUG,'Visit is in invalid status for deletion. Visit ID: '||p_visit_id);
4101: END IF;
4102: RAISE Fnd_Api.G_EXC_ERROR;
4157: END IF;
4158:
4159: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4160: -- Check Error Message stack.
4161: x_msg_count := FND_MSG_PUB.count_msg;
4162: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level)THEN
4163: fnd_log.string (fnd_log.level_statement,L_DEBUG,'Errors from delete_simul_visits: ' || x_msg_count );
4164: END IF;
4165: RAISE Fnd_Api.g_exc_error;
4196: IF NVL(l_return_status, 'X') <> Fnd_Api.G_RET_STS_SUCCESS THEN
4197: CLOSE c_Tasks_csr;
4198: Fnd_Message.SET_NAME('AHL','AHL_VWP_TASK_DEL_FAILED');
4199: Fnd_Message.SET_TOKEN('TASK_NAME',l_tasks_rec.visit_task_number);
4200: Fnd_Msg_Pub.ADD;
4201: RAISE Fnd_Api.G_EXC_ERROR;
4202: END IF;
4203: END LOOP;
4204: CLOSE c_Tasks_csr;
4285: END IF;
4286:
4287: IF NVL(l_return_status, 'X') <> Fnd_Api.G_RET_STS_SUCCESS THEN
4288: Fnd_Message.SET_NAME('AHL','AHL_VWP_PRJ_UPDATE_FAILED'); -- Failed to update job
4289: Fnd_Msg_Pub.ADD;
4290: RAISE Fnd_Api.G_EXC_ERROR;
4291: END IF;
4292: ELSE
4293: -- When a visit is hard deleted than the related projects is also deleted
4313:
4314: IF NVL(l_return_status, 'X') <> Fnd_Api.G_RET_STS_SUCCESS THEN
4315: -- Method call was not successful, raise error
4316: Fnd_Message.SET_NAME('AHL','AHL_VWP_PRJ_DEL_FAILED');
4317: Fnd_Msg_Pub.ADD;
4318: RAISE Fnd_Api.G_EXC_ERROR;
4319: END IF;
4320: END IF; -- soft delete flag
4321: END IF; -- project id not null
4360: WHERE VISIT_ID = l_visit_rec.visit_id;
4361: END IF; -- soft delete flag
4362: --------------------------End of API Body---------------------------------------
4363: --Standard check to count messages
4364: l_msg_count := Fnd_Msg_Pub.count_msg;
4365:
4366: IF l_msg_count > 0 THEN
4367: X_msg_count := l_msg_count;
4368: X_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
4380: EXCEPTION
4381: WHEN Fnd_Api.g_exc_error THEN
4382: ROLLBACK TO Delete_Visit;
4383: x_return_status := Fnd_Api.g_ret_sts_error;
4384: Fnd_Msg_Pub.count_and_get (
4385: p_encoded => Fnd_Api.g_false,
4386: p_count => x_msg_count,
4387: p_data => x_msg_data
4388: );
4388: );
4389: WHEN Fnd_Api.g_exc_unexpected_error THEN
4390: ROLLBACK TO Delete_Visit;
4391: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
4392: Fnd_Msg_Pub.count_and_get (
4393: p_encoded => Fnd_Api.g_false,
4394: p_count => x_msg_count,
4395: p_data => x_msg_data
4396: );
4396: );
4397: WHEN OTHERS THEN
4398: ROLLBACK TO Delete_Visit;
4399: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
4400: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
4401: THEN
4402: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
4403: END IF;
4404: Fnd_Msg_Pub.count_and_get (
4398: ROLLBACK TO Delete_Visit;
4399: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
4400: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
4401: THEN
4402: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
4403: END IF;
4404: Fnd_Msg_Pub.count_and_get (
4405: p_encoded => Fnd_Api.g_false,
4406: p_count => x_msg_count,
4400: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
4401: THEN
4402: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
4403: END IF;
4404: Fnd_Msg_Pub.count_and_get (
4405: p_encoded => Fnd_Api.g_false,
4406: p_count => x_msg_count,
4407: p_data => x_msg_data
4408: );
4436: fnd_log.string(fnd_log.level_procedure,L_DEBUG||'.begin','At the start of PLSQL procedure');
4437: END IF;
4438:
4439: IF Fnd_Api.to_boolean (p_init_msg_list) THEN
4440: Fnd_Msg_Pub.initialize;
4441: END IF;
4442:
4443: IF NOT Fnd_Api.compatible_api_call (
4444: l_api_version,
4472: RAISE Fnd_Api.g_exc_error;
4473: END IF;
4474: END IF;
4475: -------------------- finish --------------------------
4476: Fnd_Msg_Pub.count_and_get (
4477: p_encoded => Fnd_Api.g_false,
4478: p_count => x_msg_count,
4479: p_data => x_msg_data
4480: );
4485:
4486: EXCEPTION
4487: WHEN Fnd_Api.g_exc_error THEN
4488: x_return_status := Fnd_Api.g_ret_sts_error;
4489: Fnd_Msg_Pub.count_and_get (
4490: p_encoded => Fnd_Api.g_false,
4491: p_count => x_msg_count,
4492: p_data => x_msg_data
4493: );
4492: p_data => x_msg_data
4493: );
4494: WHEN Fnd_Api.g_exc_unexpected_error THEN
4495: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
4496: Fnd_Msg_Pub.count_and_get (
4497: p_encoded => Fnd_Api.g_false,
4498: p_count => x_msg_count,
4499: p_data => x_msg_data
4500: );
4499: p_data => x_msg_data
4500: );
4501: WHEN OTHERS THEN
4502: x_return_status := Fnd_Api.g_ret_sts_unexp_error;
4503: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error) THEN
4504: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
4505: END IF;
4506: Fnd_Msg_Pub.count_and_get (
4507: p_encoded => Fnd_Api.g_false,
4500: );
4501: WHEN OTHERS THEN
4502: x_return_status := Fnd_Api.g_ret_sts_unexp_error;
4503: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error) THEN
4504: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
4505: END IF;
4506: Fnd_Msg_Pub.count_and_get (
4507: p_encoded => Fnd_Api.g_false,
4508: p_count => x_msg_count,
4502: x_return_status := Fnd_Api.g_ret_sts_unexp_error;
4503: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error) THEN
4504: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
4505: END IF;
4506: Fnd_Msg_Pub.count_and_get (
4507: p_encoded => Fnd_Api.g_false,
4508: p_count => x_msg_count,
4509: p_data => x_msg_data
4510: );
4558: -- Post 11.5.10 Enhancements
4559: -- Only visit name is mandatory on create/update visit pages
4560: -- VISIT NAME
4561: IF (p_Visit_rec.visit_name IS NULL OR p_Visit_rec.visit_name = Fnd_Api.G_MISS_CHAR) THEN
4562: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
4563: Fnd_Message.set_name ('AHL', 'AHL_VWP_VST_NAME_MISSING');
4564: Fnd_Msg_Pub.ADD;
4565: END IF;
4566: x_return_status := Fnd_Api.g_ret_sts_error;
4560: -- VISIT NAME
4561: IF (p_Visit_rec.visit_name IS NULL OR p_Visit_rec.visit_name = Fnd_Api.G_MISS_CHAR) THEN
4562: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
4563: Fnd_Message.set_name ('AHL', 'AHL_VWP_VST_NAME_MISSING');
4564: Fnd_Msg_Pub.ADD;
4565: END IF;
4566: x_return_status := Fnd_Api.g_ret_sts_error;
4567: RETURN;
4568: END IF;
4568: END IF;
4569:
4570: /* -- VISIT TYPE ==== VISIT_TYPE_CODE
4571: IF (p_Visit_rec.visit_type_code IS NULL OR p_Visit_rec.visit_type_code = Fnd_Api.G_MISS_CHAR)THEN
4572: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
4573: Fnd_Message.set_name ('AHL', 'AHL_VWP_TYPE_MISSING');
4574: Fnd_Msg_Pub.ADD;
4575: END IF;
4576: x_return_status := Fnd_Api.g_ret_sts_error;
4570: /* -- VISIT TYPE ==== VISIT_TYPE_CODE
4571: IF (p_Visit_rec.visit_type_code IS NULL OR p_Visit_rec.visit_type_code = Fnd_Api.G_MISS_CHAR)THEN
4572: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
4573: Fnd_Message.set_name ('AHL', 'AHL_VWP_TYPE_MISSING');
4574: Fnd_Msg_Pub.ADD;
4575: END IF;
4576: x_return_status := Fnd_Api.g_ret_sts_error;
4577: RETURN;
4578: END IF;
4579: */
4580: /* IF p_Visit_rec.VISIT_ID IS NULL THEN
4581: -- ITEM ==== INVENTORY_ITEM_ID
4582: IF (p_Visit_rec.ITEM_NAME IS NULL OR p_Visit_rec.ITEM_NAME = Fnd_Api.G_MISS_CHAR) THEN
4583: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
4584: Fnd_Message.set_name ('AHL', 'AHL_VWP_ITEM_MISSING');
4585: Fnd_Msg_Pub.ADD;
4586: END IF;
4587: x_return_status := Fnd_Api.g_ret_sts_error;
4581: -- ITEM ==== INVENTORY_ITEM_ID
4582: IF (p_Visit_rec.ITEM_NAME IS NULL OR p_Visit_rec.ITEM_NAME = Fnd_Api.G_MISS_CHAR) THEN
4583: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
4584: Fnd_Message.set_name ('AHL', 'AHL_VWP_ITEM_MISSING');
4585: Fnd_Msg_Pub.ADD;
4586: END IF;
4587: x_return_status := Fnd_Api.g_ret_sts_error;
4588: RETURN;
4589: END IF;
4590: */
4591: /* -- SERIAL NUMBER ==== ITEM_INSTANCE_ID
4592: IF (p_Visit_rec.SERIAL_NUMBER IS NULL OR p_Visit_rec.SERIAL_NUMBER = Fnd_Api.G_MISS_CHAR) THEN
4593:
4594: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
4595: Fnd_Message.set_name ('AHL', 'AHL_VWP_SERIAL_MISSING');
4596: Fnd_Msg_Pub.ADD;
4597: END IF;
4598: x_return_status := Fnd_Api.g_ret_sts_error;
4592: IF (p_Visit_rec.SERIAL_NUMBER IS NULL OR p_Visit_rec.SERIAL_NUMBER = Fnd_Api.G_MISS_CHAR) THEN
4593:
4594: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
4595: Fnd_Message.set_name ('AHL', 'AHL_VWP_SERIAL_MISSING');
4596: Fnd_Msg_Pub.ADD;
4597: END IF;
4598: x_return_status := Fnd_Api.g_ret_sts_error;
4599: RETURN;
4600: END IF;
4629: 'Ahl_Visits_VL',
4630: 'VISIT_ID = ' || p_Visit_rec.VISIT_ID
4631: ) = Fnd_Api.g_false THEN
4632:
4633: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
4634: Fnd_Message.set_name ('AHL', 'AHL_VWP_DUPLICATE_VISIT_ID');
4635: Fnd_Msg_Pub.ADD;
4636: END IF;
4637: x_return_status := Fnd_Api.g_ret_sts_error;
4631: ) = Fnd_Api.g_false THEN
4632:
4633: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
4634: Fnd_Message.set_name ('AHL', 'AHL_VWP_DUPLICATE_VISIT_ID');
4635: Fnd_Msg_Pub.ADD;
4636: END IF;
4637: x_return_status := Fnd_Api.g_ret_sts_error;
4638: RETURN;
4639:
4659: END IF;
4660: END IF;
4661:
4662: IF l_valid_flag = Fnd_Api.g_false THEN
4663: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
4664: Fnd_Message.set_name ('AHL', 'AHL_VWP_DUPLI_VISIT_NUMBER');
4665: Fnd_Msg_Pub.ADD;
4666: END IF;
4667: x_return_status := Fnd_Api.g_ret_sts_error;
4661:
4662: IF l_valid_flag = Fnd_Api.g_false THEN
4663: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
4664: Fnd_Message.set_name ('AHL', 'AHL_VWP_DUPLI_VISIT_NUMBER');
4665: Fnd_Msg_Pub.ADD;
4666: END IF;
4667: x_return_status := Fnd_Api.g_ret_sts_error;
4668: RETURN;
4669: END IF;
4799: END IF;
4800:
4801: -- Initialize message list if p_init_msg_list is set to TRUE.
4802: IF Fnd_Api.to_boolean(p_init_msg_list) THEN
4803: Fnd_Msg_Pub.initialize;
4804: END IF;
4805:
4806: -- Initialize API return status to success
4807: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
4822: -- AnRaj added for R 12.0 ACL changes in VWP, Start
4823: CHECK_UNIT_QUARANTINED( p_visit_id => p_visit_id,
4824: item_instance_id => c_visit_rec.Item_Instance_Id);
4825: -- Check Error Message stack.
4826: l_msg_count := FND_MSG_PUB.count_msg;
4827: IF l_msg_count > 0 THEN
4828: x_return_status := FND_API.G_RET_STS_ERROR;
4829: RAISE FND_API.G_EXC_ERROR;
4830: END IF;
4837: FETCH get_open_job_task_csr INTO l_task_id;
4838: IF get_open_job_task_csr%FOUND THEN
4839: l_chk_flag := 'N';
4840: Fnd_Message.SET_NAME('AHL','AHL_VWP_INVALID_JOB_STATUS');
4841: Fnd_Msg_Pub.ADD;
4842: CLOSE get_open_job_task_csr;
4843: RAISE Fnd_Api.g_exc_error;
4844: END IF;
4845: CLOSE get_open_job_task_csr;
4850: FETCH get_ue_tasks_csr INTO l_ue_id;
4851: IF get_ue_tasks_csr%FOUND THEN
4852: l_chk_flag :='N';
4853: Fnd_Message.SET_NAME('AHL','AHL_VWP_UE_CLOSE_INV');
4854: Fnd_Msg_Pub.ADD;
4855: CLOSE get_ue_tasks_csr;
4856: RAISE Fnd_Api.g_exc_error;
4857: END IF;
4858: CLOSE get_ue_tasks_csr;
4882: fnd_log.string(fnd_log.level_statement,L_DEBUG,'After Calling AHL_VWP_COST_PVT.Calculate_WO_Cost : l_return_status - '||l_return_status);
4883: END IF;
4884:
4885: -- Check Error Message stack.
4886: l_msg_count := FND_MSG_PUB.count_msg;
4887: IF l_msg_count > 0 THEN
4888: x_return_status := FND_API.G_RET_STS_ERROR;
4889: RAISE FND_API.G_EXC_ERROR;
4890: END IF;
4932: END LOOP;
4933: CLOSE c_wip_entity;
4934:
4935: -- Check Error Message stack.
4936: l_msg_count := FND_MSG_PUB.count_msg;
4937: IF l_msg_count > 0 THEN
4938: x_return_status := FND_API.G_RET_STS_ERROR;
4939: RAISE FND_API.G_EXC_ERROR;
4940: END IF;
5003: END IF;
5004:
5005: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5006: -- Check Error Message stack.
5007: x_msg_count := FND_MSG_PUB.count_msg;
5008: RAISE Fnd_Api.g_exc_error;
5009: END IF;
5010: -- yazhou 28Sept2005 ends
5011:
5063: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
5064: fnd_log.string(fnd_log.level_statement,L_DEBUG,'After calling AHL_LTP_REQST_MATRL_PVT.Process_Planned_Materials : x_return_status - '||x_return_status);
5065: END IF;
5066:
5067: l_msg_count := FND_MSG_PUB.count_msg;
5068: IF l_msg_count > 0 THEN
5069: X_msg_count := l_msg_count;
5070: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5071: RAISE FND_API.G_EXC_ERROR;
5077: -- End Code on 17th Feb 2004 by shbhanda
5078: END IF;
5079: ELSE
5080: Fnd_Message.SET_NAME('AHL','AHL_VWP_STATUS_NOT_RELEASED');
5081: Fnd_Msg_Pub.ADD;
5082: RAISE Fnd_Api.g_exc_error;
5083: END IF;
5084:
5085: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
5092: IF Fnd_Api.To_Boolean ( p_commit ) THEN
5093: COMMIT WORK;
5094: END IF;
5095:
5096: Fnd_Msg_Pub.count_and_get(
5097: p_encoded => Fnd_Api.g_false,
5098: p_count => x_msg_count,
5099: p_data => x_msg_data);
5100:
5104: EXCEPTION
5105: WHEN Fnd_Api.g_exc_error THEN
5106: ROLLBACK TO Close_Visit;
5107: x_return_status := Fnd_Api.g_ret_sts_error;
5108: Fnd_Msg_Pub.count_and_get (
5109: p_encoded => Fnd_Api.g_false,
5110: p_count => x_msg_count,
5111: p_data => x_msg_data
5112: );
5112: );
5113: WHEN Fnd_Api.g_exc_unexpected_error THEN
5114: ROLLBACK TO Close_Visit;
5115: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
5116: Fnd_Msg_Pub.count_and_get (
5117: p_encoded => Fnd_Api.g_false,
5118: p_count => x_msg_count,
5119: p_data => x_msg_data
5120: );
5120: );
5121: WHEN OTHERS THEN
5122: ROLLBACK TO Close_Visit;
5123: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
5124: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
5125: THEN
5126: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
5127: END IF;
5128: Fnd_Msg_Pub.count_and_get (
5122: ROLLBACK TO Close_Visit;
5123: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
5124: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
5125: THEN
5126: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
5127: END IF;
5128: Fnd_Msg_Pub.count_and_get (
5129: p_encoded => Fnd_Api.g_false,
5130: p_count => x_msg_count,
5124: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
5125: THEN
5126: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
5127: END IF;
5128: Fnd_Msg_Pub.count_and_get (
5129: p_encoded => Fnd_Api.g_false,
5130: p_count => x_msg_count,
5131: p_data => x_msg_data
5132: );
5225: END IF;
5226:
5227: -- Initialize message list if p_init_msg_list is set to TRUE.
5228: IF Fnd_Api.to_boolean(p_init_msg_list) THEN
5229: Fnd_Msg_Pub.initialize;
5230: END IF;
5231:
5232: -- Initialize API return status to success
5233: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
5245: CLOSE c_visit;
5246:
5247: IF c_visit_rec.OBJECT_VERSION_NUMBER <> p_obj_ver_num THEN
5248: Fnd_Message.Set_Name('AHL','AHL_COM_RECORD_CHANGED');
5249: Fnd_Msg_Pub.ADD;
5250: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
5251: END IF;
5252:
5253: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
5374:
5375: IF NVL(x_return_status, 'X') <> Fnd_Api.G_RET_STS_SUCCESS THEN
5376: -- Method call was not successful, raise error
5377: Fnd_Message.SET_NAME('AHL','AHL_VWP_PRJ_UPDATE_FAILED'); -- Failed to update job
5378: Fnd_Msg_Pub.ADD;
5379: IF (fnd_log.level_error >= fnd_log.g_current_runtime_level)THEN
5380: fnd_log.string( fnd_log.level_error,'ahl.plsql.'||G_PKG_NAME||'.'||L_API_NAME,
5381: 'Cant update the project to Rejected status');
5382: END IF;
5459: IF Fnd_Api.To_Boolean ( p_commit ) THEN
5460: COMMIT WORK;
5461: END IF;
5462:
5463: Fnd_Msg_Pub.count_and_get(
5464: p_encoded => Fnd_Api.g_false,
5465: p_count => x_msg_count,
5466: p_data => x_msg_data);
5467:
5471: EXCEPTION
5472: WHEN Fnd_Api.g_exc_error THEN
5473: ROLLBACK TO Cancel_Visit;
5474: x_return_status := Fnd_Api.g_ret_sts_error;
5475: Fnd_Msg_Pub.count_and_get (
5476: p_encoded => Fnd_Api.g_false,
5477: p_count => x_msg_count,
5478: p_data => x_msg_data
5479: );
5479: );
5480: WHEN Fnd_Api.g_exc_unexpected_error THEN
5481: ROLLBACK TO Cancel_Visit;
5482: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
5483: Fnd_Msg_Pub.count_and_get (
5484: p_encoded => Fnd_Api.g_false,
5485: p_count => x_msg_count,
5486: p_data => x_msg_data
5487: );
5487: );
5488: WHEN OTHERS THEN
5489: ROLLBACK TO Cancel_Visit;
5490: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
5491: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
5492: THEN
5493: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
5494: END IF;
5495: Fnd_Msg_Pub.count_and_get (
5489: ROLLBACK TO Cancel_Visit;
5490: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
5491: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
5492: THEN
5493: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
5494: END IF;
5495: Fnd_Msg_Pub.count_and_get (
5496: p_encoded => Fnd_Api.g_false,
5497: p_count => x_msg_count,
5491: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
5492: THEN
5493: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
5494: END IF;
5495: Fnd_Msg_Pub.count_and_get (
5496: p_encoded => Fnd_Api.g_false,
5497: p_count => x_msg_count,
5498: p_data => x_msg_data
5499: );
5559: END IF;
5560:
5561: -- Initialize message list if p_init_msg_list is set to TRUE.
5562: IF Fnd_Api.to_boolean(p_init_msg_list) THEN
5563: Fnd_Msg_Pub.initialize;
5564: END IF;
5565:
5566: -- Initialize API return status to success
5567: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
5578: OPEN c_Visit(l_visit_rec.visit_id);
5579: FETCH c_Visit INTO c_Visit_rec;
5580: IF c_Visit%NOTFOUND THEN
5581: CLOSE c_Visit;
5582: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
5583: Fnd_Message.set_name('AHL', 'AHL_API_RECORD_NOT_FOUND');
5584: Fnd_Msg_Pub.ADD;
5585: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
5586: fnd_log.string(fnd_log.level_statement,L_DEBUG,'Visit not found for - ' ||l_visit_rec.visit_id );
5580: IF c_Visit%NOTFOUND THEN
5581: CLOSE c_Visit;
5582: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.g_msg_lvl_error) THEN
5583: Fnd_Message.set_name('AHL', 'AHL_API_RECORD_NOT_FOUND');
5584: Fnd_Msg_Pub.ADD;
5585: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
5586: fnd_log.string(fnd_log.level_statement,L_DEBUG,'Visit not found for - ' ||l_visit_rec.visit_id );
5587: END IF;
5588: END IF;
5635: ---------------AnRaj added on 19th June 2005-------------------
5636: -- R12: Department is made mandatory
5637: IF l_visit_rec.department_id IS NULL OR l_visit_rec.department_id = Fnd_Api.G_MISS_NUM THEN
5638: Fnd_Message.SET_NAME('AHL','AHL_VWP_RELSD_DEPT_MAND');
5639: Fnd_Msg_Pub.ADD;
5640: RAISE Fnd_Api.G_EXC_ERROR;
5641: END IF;
5642:
5643: -- R12: Department change does not require to cancel current visit and Create a new visit
5652: IF l_visit_rec.START_DATE IS NULL
5653: OR l_visit_rec.START_DATE = FND_API.g_miss_date
5654: THEN
5655: Fnd_Message.SET_NAME('AHL','AHL_VWP_TC_ST_DT_REQ');
5656: Fnd_Msg_Pub.ADD;
5657: RAISE Fnd_Api.G_EXC_ERROR;
5658: END IF;
5659:
5660: -- Planned End Date is madatory for transit visit
5661: IF l_visit_rec.PLAN_END_DATE IS NULL
5662: OR l_visit_rec.PLAN_END_DATE = FND_API.g_miss_date
5663: THEN
5664: Fnd_Message.SET_NAME('AHL','AHL_VWP_TC_END_DT_REQ');
5665: Fnd_Msg_Pub.ADD;
5666: RAISE Fnd_Api.G_EXC_ERROR;
5667: END IF;
5668:
5669: -- Planned End Date must be greater than or equal to Planned Start Date
5668:
5669: -- Planned End Date must be greater than or equal to Planned Start Date
5670: IF (l_visit_rec.START_DATE > l_visit_rec.PLAN_END_DATE) THEN
5671: Fnd_Message.SET_NAME('AHL','AHL_VWP_START_DT_GTR_CLOSE_DT');
5672: Fnd_Msg_Pub.ADD;
5673: RAISE Fnd_Api.G_EXC_ERROR;
5674: END IF;
5675:
5676: -- If visit start date is earlier than SYSDATE then use sysdate to create new visit
5689: l_visit_rec.organization_id := l_org_id;
5690:
5691: IF NVL(l_return_status,'x') <> 'S' THEN
5692: Fnd_Message.SET_NAME('AHL','AHL_VWP_ORG_NOT_EXISTS');
5693: Fnd_Msg_Pub.ADD;
5694: RAISE Fnd_Api.G_EXC_ERROR;
5695: END IF;
5696:
5697: -- Department must have shift defined
5700: x_return_status => l_return_status);
5701:
5702: IF NVL(l_return_status,'x') <> 'S' THEN
5703: Fnd_Message.SET_NAME('AHL','AHL_VWP_NO_DEPT_SHIFT');
5704: Fnd_Msg_Pub.ADD;
5705: RAISE Fnd_Api.G_EXC_ERROR;
5706: END IF;
5707:
5708: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
5835: END IF;
5836: END IF;
5837: END IF;
5838:
5839: l_msg_count := Fnd_Msg_Pub.count_msg;
5840:
5841: IF l_msg_count > 0 THEN
5842: X_msg_count := l_msg_count;
5843: X_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
5854: EXCEPTION
5855: WHEN Fnd_Api.g_exc_error THEN
5856: ROLLBACK TO Synchronize_Visit;
5857: x_return_status := Fnd_Api.g_ret_sts_error;
5858: Fnd_Msg_Pub.count_and_get (
5859: p_encoded => Fnd_Api.g_false,
5860: p_count => x_msg_count,
5861: p_data => x_msg_data
5862: );
5862: );
5863: WHEN Fnd_Api.g_exc_unexpected_error THEN
5864: ROLLBACK TO Synchronize_Visit;
5865: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
5866: Fnd_Msg_Pub.count_and_get (
5867: p_encoded => Fnd_Api.g_false,
5868: p_count => x_msg_count,
5869: p_data => x_msg_data
5870: );
5870: );
5871: WHEN OTHERS THEN
5872: ROLLBACK TO Synchronize_Visit;
5873: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
5874: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
5875: THEN
5876: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
5877: END IF;
5878: Fnd_Msg_Pub.count_and_get (
5872: ROLLBACK TO Synchronize_Visit;
5873: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
5874: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
5875: THEN
5876: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
5877: END IF;
5878: Fnd_Msg_Pub.count_and_get (
5879: p_encoded => Fnd_Api.g_false,
5880: p_count => x_msg_count,
5874: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
5875: THEN
5876: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
5877: END IF;
5878: Fnd_Msg_Pub.count_and_get (
5879: p_encoded => Fnd_Api.g_false,
5880: p_count => x_msg_count,
5881: p_data => x_msg_data
5882: );
5958: l_unit_name := ahl_util_uc_pkg.get_unit_name(item_instance_id);
5959: Fnd_Message.SET_NAME('AHL','AHL_VWP_CLOSE_HDR_UNIT_QRNT');
5960: -- The Unit for this Visit (UNIT_NAME-1) is quarantined.
5961: Fnd_Message.Set_Token('UNIT_NAME',l_unit_name);
5962: Fnd_Msg_Pub.ADD;
5963: -- log message
5964: IF (l_log_statement >= l_log_current_level)THEN
5965: fnd_log.string(fnd_log.level_statement,L_DEBUG,l_unit_name || 'Unit is quarantined, Error message added');
5966: END IF; -- log
5975: IF l_quarantined = FND_API.G_TRUE THEN
5976: Fnd_Message.SET_NAME('AHL','AHL_VWP_CLOSE_TSK_UNIT_QRNT');
5977: -- The Unit for the Task (UNIT_NAME-1) is quarantined.
5978: Fnd_Message.Set_Token('TASK_NUMBER',l_task_number);
5979: Fnd_Msg_Pub.ADD;
5980: -- log message
5981: IF (l_log_statement >= l_log_current_level)THEN
5982: fnd_log.string(fnd_log.level_statement,L_DEBUG,l_task_number || 'Unit for this task is quarantined.');
5983: END IF; -- log