175: THEN
176: FOR i in p_prd_resrc_txn_tbl.FIRST..p_prd_resrc_txn_tbl.LAST
177: LOOP
178: IF p_prd_resrc_txn_tbl(I).workorder_id IS NULL OR
179: p_prd_resrc_txn_tbl(I).workorder_id=FND_API.G_MISS_NUM
180: THEN
181: FND_MESSAGE.set_name('AHL','AHL_PRD_WORKORDER_ID_NULL');
182: FND_MSG_PUB.ADD;
183: ELSE
183: ELSE
184:
185: /* sracha: already queried this info in translate_meaning_to_id procedure.
186: If p_prd_resrc_txn_tbl(I).organization_id is null
187: or p_prd_resrc_txn_tbl(I).organization_id=fnd_api.G_miss_num
188: Then
189: OPEN get_wo_org_id(p_prd_resrc_txn_tbl(I).workorder_id);
190: FETCH get_wo_org_id INTO l_org_id;
191: CLOSE get_wo_org_id;
232: p_workorder_id => p_prd_resrc_txn_tbl(i).workorder_id,
233: p_ue_id => NULL,
234: p_visit_id => NULL,
235: p_item_instance_id => NULL);
236: IF l_return_status = FND_API.G_TRUE THEN
237: FND_MESSAGE.Set_Name('AHL', 'AHL_PP_RESTXN_UNTLCKD');
238: FND_MESSAGE.Set_Token('WO_NAME', l_wrkrec.workorder_name);
239: FND_MSG_PUB.ADD;
240: IF G_DEBUG='Y' THEN
266: AHL_DEBUG_PUB.debug( 'After Work Order ID validation:status is:' || l_wrkrec.STATUS_CODE,l_proc_name);
267: END IF;
268:
269: IF p_prd_resrc_txn_tbl(I).workorder_operation_id IS NULL
270: OR p_prd_resrc_txn_tbl(I).workorder_operation_id=FND_API.G_MISS_NUM
271: THEN
272: FND_MESSAGE.set_name('AHL','AHL_PRD_WORKORDER_OP_ID_NULL');
273: FND_MSG_PUB.ADD;
274: END IF;
274: END IF;
275:
276: -- validate operation sequence.
277: If p_prd_resrc_txn_tbl(I).operation_sequence_num is null
278: or p_prd_resrc_txn_tbl(I).operation_sequence_num=fnd_api.g_miss_num
279: Then
280: FND_MESSAGE.set_name('AHL','AHL_PRD_OPSEQNUM_NULL');
281: FND_MSG_PUB.ADD;
282: Else
295: End if; -- p_prd_resrc_txn_tbl(I).operation_sequence_num is null
296:
297: -- Validate resource sequence.
298: If p_prd_resrc_txn_tbl(I).resource_sequence_num is not null
299: and p_prd_resrc_txn_tbl(I).resource_sequence_num<>fnd_api.g_miss_num
300: Then
301: --Select count(*) into l_ctr
302: Select 1 into l_ctr
303: From AHL_OPERATION_RESOURCES A
313: End if;
314:
315: -- validate department id.
316: If p_prd_resrc_txn_tbl(I).department_id is null or
317: p_prd_resrc_txn_tbl(I).department_id=fnd_api.g_miss_num
318: Then
319: FND_MESSAGE.set_name('AHL','AHL_PRD_TRX_DEPTID_NULL');
320: FND_MESSAGE.SET_TOKEN('OPER_RES',P_prd_resrc_txn_tbl(I).OPERATION_SEQUENCE_NUM||'-'
321: ||p_prd_resrc_txn_tbl(I).RESOURCE_SEQUENCE_NUM);
385:
386: -- rroy
387: -- R12 Tech UIs
388: -- throw an error if both qty and end date are null
389: If (p_prd_resrc_txn_tbl(I).qty is null OR p_prd_resrc_txn_tbl(I).qty = fnd_api.g_miss_num)
390: AND (p_prd_resrc_txn_tbl(I).end_date IS NULL OR p_prd_resrc_txn_tbl(I).transaction_date IS NULL)
391: THEN
392: FND_MESSAGE.set_name('AHL','AHL_PRD_TRX_QTY_NULL');
393: -- Change the message to reflect that at least one of qty or end date should be given
501:
502: -- validate serial number.
503: -- Adithya modified the code to take department_id for Bug # 6326254 - Start
504: IF p_prd_resrc_txn_tbl(i).serial_number IS NOT NULL AND
505: p_prd_resrc_txn_tbl(i).serial_number<>FND_API.G_MISS_CHAR
506: THEN
507:
508: Open get_instance_sernum (p_prd_resrc_txn_tbl(i).department_id,
509: p_prd_resrc_txn_tbl(i).serial_number,
542: AHL_DEBUG_PUB.debug( 'End of procedure',l_proc_name);
543: END IF;
544:
545: --Adithya added the following debug
546: FND_MSG_PUB.count_and_get( p_encoded =>FND_API.G_FALSE,
547: p_count => l_msg_count,
548: p_data => l_msg_data);
549: IF l_msg_count > 0 THEN
550: if (l_msg_count = 1) THEN
737: END IF;
738: ---
739:
740: IF p_x_prd_resrc_txn_tbl(I).OPERATION_SEQUENCE_NUM IS NOT NULL AND
741: p_x_prd_resrc_txn_tbl(I).OPERATION_SEQUENCE_NUM<>FND_API.G_MISS_NUM
742: THEN
743: Open CurGetOperSeq(p_x_prd_resrc_txn_tbl(I).OPERATION_SEQUENCE_NUM,
744: p_x_prd_resrc_txn_tbl(I).WORKORDER_ID);
745:
753: Else
754: p_x_prd_resrc_txn_tbl(I).Workorder_operation_id:=l_oper_rec.workorder_operation_id;
755:
756: IF (p_x_prd_resrc_txn_tbl(I).organization_id IS NULL) OR
757: (p_x_prd_resrc_txn_tbl(I).organization_id = FND_API.G_MISS_NUM) THEN
758: p_x_prd_resrc_txn_tbl(I).organization_id:=l_oper_rec.organization_id;
759: END IF;
760:
761: -- Adithya commented out the code for bug# 6326254. Charge deparment can be different
761: -- Adithya commented out the code for bug# 6326254. Charge deparment can be different
762: -- from the operation department.
763: -- Adithya added code to default dept id/code if they are null - Bug# 6452479.
764: IF ( p_x_prd_resrc_txn_tbl(I).department_id IS NULL OR
765: p_x_prd_resrc_txn_tbl(I).department_id = FND_API.G_MISS_NUM ) AND
766: ( p_x_prd_resrc_txn_tbl(I).department_code IS NULL OR
767: p_x_prd_resrc_txn_tbl(I).department_code = FND_API.G_MISS_CHAR )
768: THEN
769: IF G_DEBUG='Y' THEN
763: -- Adithya added code to default dept id/code if they are null - Bug# 6452479.
764: IF ( p_x_prd_resrc_txn_tbl(I).department_id IS NULL OR
765: p_x_prd_resrc_txn_tbl(I).department_id = FND_API.G_MISS_NUM ) AND
766: ( p_x_prd_resrc_txn_tbl(I).department_code IS NULL OR
767: p_x_prd_resrc_txn_tbl(I).department_code = FND_API.G_MISS_CHAR )
768: THEN
769: IF G_DEBUG='Y' THEN
770: AHL_DEBUG_PUB.debug( 'Defaulting Dept Id and Code',l_proc_name);
771: END IF;
772: p_x_prd_resrc_txn_tbl(I).department_id:=l_oper_rec.department_id;
773: p_x_prd_resrc_txn_tbl(I).department_code:=l_oper_rec.department_code;
774: p_x_prd_resrc_txn_tbl(I).organization_id:=l_oper_rec.organization_id;
775: ELSIF ( p_x_prd_resrc_txn_tbl(I).department_id IS NULL OR
776: p_x_prd_resrc_txn_tbl(I).department_id = FND_API.G_MISS_NUM ) AND
777: ( p_x_prd_resrc_txn_tbl(I).department_code IS NOT NULL AND
778: p_x_prd_resrc_txn_tbl(I).department_code <> FND_API.G_MISS_CHAR )
779: THEN
780: OPEN CurGetDeptdet(p_x_prd_resrc_txn_tbl(I).department_code
774: p_x_prd_resrc_txn_tbl(I).organization_id:=l_oper_rec.organization_id;
775: ELSIF ( p_x_prd_resrc_txn_tbl(I).department_id IS NULL OR
776: p_x_prd_resrc_txn_tbl(I).department_id = FND_API.G_MISS_NUM ) AND
777: ( p_x_prd_resrc_txn_tbl(I).department_code IS NOT NULL AND
778: p_x_prd_resrc_txn_tbl(I).department_code <> FND_API.G_MISS_CHAR )
779: THEN
780: OPEN CurGetDeptdet(p_x_prd_resrc_txn_tbl(I).department_code
781: ,p_x_prd_resrc_txn_tbl(I).organization_id);
782: FETCH CurGetDeptdet INTO p_x_prd_resrc_txn_tbl(I).department_id;
798: FND_MSG_PUB.ADD;
799: END IF; -- p_x_prd_resrc_txn_tbl(I).OPERATION_SEQUENCE_NUM
800:
801: If p_x_prd_resrc_txn_tbl(I).RESOURCE_SEQUENCE_NUM is not null and
802: p_x_prd_resrc_txn_tbl(I).RESOURCE_SEQUENCE_NUM<>fnd_api.g_miss_num
803: Then
804:
805: Open CurGetResSeq(p_x_prd_resrc_txn_tbl(I).WORKORDER_OPERATION_ID,
806: p_x_prd_resrc_txn_tbl(I).RESOURCE_SEQUENCE_NUM);
834: CLOSE CurGetResSeq;
835: Else
836: -- check resource name.
837: IF (p_x_prd_resrc_txn_tbl(I).Resource_Name is not null and
838: p_x_prd_resrc_txn_tbl(I).Resource_Name <> fnd_api.g_miss_char) THEN
839: OPEN getResID(p_x_prd_resrc_txn_tbl(I).resource_name,
840: p_x_prd_resrc_txn_tbl(I).organization_id,
841: p_x_prd_resrc_txn_tbl(I).department_id,
842: p_x_prd_resrc_txn_tbl(I).workorder_operation_id);
859: CLOSE get_wo_org_id;
860: END IF;
861:
862: IF p_x_prd_resrc_txn_tbl(I).department_CODE IS NOT NULL AND
863: p_x_prd_resrc_txn_tbl(I).department_CODE<>FND_API.G_MISS_CHAR
864: THEN
865: OPEN CurGetDeptdet(p_x_prd_resrc_txn_tbl(I).department_CODE,
866: p_x_prd_resrc_txn_tbl(I).organization_id);
867: FETCH CurGetDeptdet into l_deptrec;
879: END IF;
880: */
881:
882: IF p_x_prd_resrc_txn_tbl(I).ACTIVITY_MEANING IS NOT NULL AND
883: p_x_prd_resrc_txn_tbl(I).ACTIVITY_MEANING<>FND_API.G_MISS_CHAR
884: THEN
885: OPEN CurGetActivity(p_x_prd_resrc_txn_tbl(I).ACTIVITY_MEANING);
886: FETCH CurGetActivity into p_x_prd_resrc_txn_tbl(I).ACTIVITY_ID;
887: If CurGetActivity%NOTFOUND
895: CLOSE CurGetActivity;
896: END IF;
897:
898: IF p_x_prd_resrc_txn_tbl(I).REASON IS NOT NULL AND
899: p_x_prd_resrc_txn_tbl(I).REASON<>FND_API.G_MISS_CHAR
900: THEN
901: OPEN CurGetReason(p_x_prd_resrc_txn_tbl(I).Reason);
902: FETCH CurGetReason into p_x_prd_resrc_txn_tbl(I).REASON_ID;
903: If CurGetReason%NOTFOUND
913:
914: --Adithya commented out the following code
915: /*
916: IF p_x_prd_resrc_txn_tbl(I).serial_number IS NOT NULL AND
917: p_x_prd_resrc_txn_tbl(I).serial_number<>FND_API.G_MISS_CHAR
918: THEN
919:
920: Open get_instance_sernum (p_x_prd_resrc_txn_tbl(i).department_id,
921: p_x_prd_resrc_txn_tbl(i).serial_number);
932: */
933:
934:
935: If p_x_prd_resrc_txn_tbl(I).EMPLOYEE_NUM is not null and
936: p_x_prd_resrc_txn_tbl(I).EMPLOYEE_NUM<>fnd_api.g_miss_CHAR
937: Then
938: Open CurGetEmployee(p_x_prd_resrc_txn_tbl(I).EMPLOYEE_NUM,p_x_prd_resrc_txn_tbl(I).organization_id);
939: FETCH CurGetEmployee into l_emp_rec;
940: IF CurGetEmployee%NOTFOUND
971:
972: PROCEDURE PROCESS_RESOURCE_TXNS
973: (
974: p_api_version IN NUMBER := 1.0,
975: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
976: p_commit IN VARCHAR2 := FND_API.G_FALSE,
977: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
978: p_default IN VARCHAR2 := FND_API.G_FALSE,
979: p_module_type IN VARCHAR2 := NULL,
972: PROCEDURE PROCESS_RESOURCE_TXNS
973: (
974: p_api_version IN NUMBER := 1.0,
975: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
976: p_commit IN VARCHAR2 := FND_API.G_FALSE,
977: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
978: p_default IN VARCHAR2 := FND_API.G_FALSE,
979: p_module_type IN VARCHAR2 := NULL,
980: x_return_status OUT NOCOPY VARCHAR2,
973: (
974: p_api_version IN NUMBER := 1.0,
975: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
976: p_commit IN VARCHAR2 := FND_API.G_FALSE,
977: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
978: p_default IN VARCHAR2 := FND_API.G_FALSE,
979: p_module_type IN VARCHAR2 := NULL,
980: x_return_status OUT NOCOPY VARCHAR2,
981: x_msg_count OUT NOCOPY NUMBER,
974: p_api_version IN NUMBER := 1.0,
975: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
976: p_commit IN VARCHAR2 := FND_API.G_FALSE,
977: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
978: p_default IN VARCHAR2 := FND_API.G_FALSE,
979: p_module_type IN VARCHAR2 := NULL,
980: x_return_status OUT NOCOPY VARCHAR2,
981: x_msg_count OUT NOCOPY NUMBER,
982: x_msg_data OUT NOCOPY VARCHAR2,
988: l_num_rec NUMBER;
989: l_msg_count NUMBER;
990: l_msg_data VARCHAR2(2000);
991: l_return_status VARCHAR2(1);
992: l_init_msg_list VARCHAR2(10):=FND_API.G_FALSE;
993: l_commit VARCHAR2(1):= FND_API.G_FALSE;
994: l_ahl_res_txn_tbl AHL_WIP_JOB_PVT.ahl_res_txn_tbl_type;
995: l_wip_entity_id NUMBER;
996: l_txn_group_id NUMBER;
989: l_msg_count NUMBER;
990: l_msg_data VARCHAR2(2000);
991: l_return_status VARCHAR2(1);
992: l_init_msg_list VARCHAR2(10):=FND_API.G_FALSE;
993: l_commit VARCHAR2(1):= FND_API.G_FALSE;
994: l_ahl_res_txn_tbl AHL_WIP_JOB_PVT.ahl_res_txn_tbl_type;
995: l_wip_entity_id NUMBER;
996: l_txn_group_id NUMBER;
997: l_ctr NUMBER:=0;
1049:
1050:
1051: -- Standard call to check for call compatibility.
1052:
1053: IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version,
1054: p_api_version,
1055: l_api_name,G_PKG_NAME) THEN
1056: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1057: END IF;
1052:
1053: IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version,
1054: p_api_version,
1055: l_api_name,G_PKG_NAME) THEN
1056: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1057: END IF;
1058:
1059: -- Initialize message list if p_init_msg_list is set to TRUE.
1060:
1057: END IF;
1058:
1059: -- Initialize message list if p_init_msg_list is set to TRUE.
1060:
1061: IF FND_API.to_boolean(p_init_msg_list) THEN
1062: FND_MSG_PUB.initialize;
1063: END IF;
1064:
1065: -- Initialize API return status to success
1063: END IF;
1064:
1065: -- Initialize API return status to success
1066:
1067: x_return_status:=FND_API.G_RET_STS_SUCCESS;
1068:
1069:
1070: -- Debug info.
1071:
1089: -- check error message.
1090: l_msg_count := FND_MSG_PUB.count_msg;
1091: IF l_msg_count > 0 THEN
1092: X_msg_count := l_msg_count;
1093: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1094: IF G_DEBUG='Y' THEN
1095: AHL_DEBUG_PUB.debug( 'Error Thrown in translate',L_API_NAME);
1096: END IF;
1097: RAISE FND_API.G_EXC_ERROR;
1093: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1094: IF G_DEBUG='Y' THEN
1095: AHL_DEBUG_PUB.debug( 'Error Thrown in translate',L_API_NAME);
1096: END IF;
1097: RAISE FND_API.G_EXC_ERROR;
1098: END IF;
1099:
1100:
1101: -- Start of API Body
1099:
1100:
1101: -- Start of API Body
1102:
1103: x_return_status:=FND_API.G_RET_STS_SUCCESS;
1104:
1105: -- Validate input.
1106: VALIDATE_RES_TRNX
1107: (
1116: X_msg_count := l_msg_count;
1117: IF G_DEBUG='Y' THEN
1118: AHL_DEBUG_PUB.debug( 'Error Thrown In Validation',L_API_NAME);
1119: END IF;
1120: RAISE FND_API.G_EXC_ERROR;
1121: END IF;
1122:
1123: l_ctr := 0;
1124:
1125: -- Create resource requirements if it does not exist.
1126: FOR i IN p_x_prd_resrc_txn_tbl.FIRST..p_x_prd_resrc_txn_tbl.LAST
1127: LOOP
1128: IF (p_x_prd_resrc_txn_tbl(i).resource_sequence_num is null OR
1129: p_x_prd_resrc_txn_tbl(i).resource_sequence_num = fnd_api.g_miss_num) THEN
1130:
1131: l_Resrc_Require_Tbl(l_ctr).workorder_id := p_x_prd_resrc_txn_tbl(i).workorder_id;
1132: l_Resrc_Require_Tbl(l_ctr).operation_seq_number := p_x_prd_resrc_txn_tbl(i).operation_sequence_num;
1133: -- get operation start and end dates.
1203:
1204: IF (l_Resrc_Require_tbl.count > 0) THEN
1205: AHL_PP_RESRC_REQUIRE_PVT.Process_Resrc_Require (
1206: p_api_version => 1.0,
1207: p_init_msg_list => Fnd_Api.G_FALSE,
1208: p_commit => Fnd_Api.G_FALSE,
1209: p_module_type => 'JSP', -- need to pass JSP otherwise EAM api is not called.
1210: p_operation_flag => 'C',
1211: p_interface_flag => NULL,
1204: IF (l_Resrc_Require_tbl.count > 0) THEN
1205: AHL_PP_RESRC_REQUIRE_PVT.Process_Resrc_Require (
1206: p_api_version => 1.0,
1207: p_init_msg_list => Fnd_Api.G_FALSE,
1208: p_commit => Fnd_Api.G_FALSE,
1209: p_module_type => 'JSP', -- need to pass JSP otherwise EAM api is not called.
1210: p_operation_flag => 'C',
1211: p_interface_flag => NULL,
1212: p_x_Resrc_Require_tbl => l_Resrc_Require_tbl,
1213: x_return_status => l_return_status,
1214: x_msg_count => l_msg_count,
1215: x_msg_data => l_msg_data);
1216:
1217: IF(l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1218: IF (fnd_log.level_error >= G_DEBUG)THEN
1219: fnd_log.string
1220: (
1221: fnd_log.level_error,
1222: 'ahl.plsql.AHL_PRD_RESOURCE_TRANX_PVT.Process_Resource_Txns',
1223: 'AHL_PP_RESRC_REQUIRE_PVT.Process_Resrc_Require API returned error'
1224: );
1225: END IF;
1226: RAISE FND_API.G_EXC_ERROR;
1227: END IF;
1228:
1229: END IF;
1230:
1331:
1332: l_msg_count := FND_MSG_PUB.count_msg;
1333: IF l_msg_count > 0 THEN
1334: X_msg_count := l_msg_count;
1335: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1336: RAISE FND_API.G_EXC_ERROR;
1337: IF G_DEBUG='Y' THEN
1338: AHL_DEBUG_PUB.debug( 'Validation Errors in interface API');
1339: END IF;
1332: l_msg_count := FND_MSG_PUB.count_msg;
1333: IF l_msg_count > 0 THEN
1334: X_msg_count := l_msg_count;
1335: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1336: RAISE FND_API.G_EXC_ERROR;
1337: IF G_DEBUG='Y' THEN
1338: AHL_DEBUG_PUB.debug( 'Validation Errors in interface API');
1339: END IF;
1340:
1342:
1343: --Adithya added
1344: X_msg_count := l_msg_count;
1345:
1346: IF FND_API.TO_BOOLEAN(p_commit) THEN
1347: COMMIT;
1348: END IF;
1349:
1350: -- Debug info
1359:
1360: END IF;
1361:
1362: EXCEPTION
1363: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1364: ROLLBACK TO PROCESS_RESOURCE_TRANX;
1365: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1366: FND_MSG_PUB.count_and_get( p_encoded =>FND_API.G_FALSE,
1367: p_count => x_msg_count,
1361:
1362: EXCEPTION
1363: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1364: ROLLBACK TO PROCESS_RESOURCE_TRANX;
1365: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1366: FND_MSG_PUB.count_and_get( p_encoded =>FND_API.G_FALSE,
1367: p_count => x_msg_count,
1368: p_data => x_msg_data);
1369:
1362: EXCEPTION
1363: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1364: ROLLBACK TO PROCESS_RESOURCE_TRANX;
1365: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1366: FND_MSG_PUB.count_and_get( p_encoded =>FND_API.G_FALSE,
1367: p_count => x_msg_count,
1368: p_data => x_msg_data);
1369:
1370: WHEN FND_API.G_EXC_ERROR THEN
1366: FND_MSG_PUB.count_and_get( p_encoded =>FND_API.G_FALSE,
1367: p_count => x_msg_count,
1368: p_data => x_msg_data);
1369:
1370: WHEN FND_API.G_EXC_ERROR THEN
1371: ROLLBACK TO PROCESS_RESOURCE_TRANX;
1372: X_return_status := FND_API.G_RET_STS_ERROR;
1373: FND_MSG_PUB.count_and_get( p_encoded =>FND_API.G_FALSE,
1374: p_count => x_msg_count,
1368: p_data => x_msg_data);
1369:
1370: WHEN FND_API.G_EXC_ERROR THEN
1371: ROLLBACK TO PROCESS_RESOURCE_TRANX;
1372: X_return_status := FND_API.G_RET_STS_ERROR;
1373: FND_MSG_PUB.count_and_get( p_encoded =>FND_API.G_FALSE,
1374: p_count => x_msg_count,
1375: p_data => X_msg_data);
1376: WHEN OTHERS THEN
1369:
1370: WHEN FND_API.G_EXC_ERROR THEN
1371: ROLLBACK TO PROCESS_RESOURCE_TRANX;
1372: X_return_status := FND_API.G_RET_STS_ERROR;
1373: FND_MSG_PUB.count_and_get( p_encoded =>FND_API.G_FALSE,
1374: p_count => x_msg_count,
1375: p_data => X_msg_data);
1376: WHEN OTHERS THEN
1377: ROLLBACK TO PROCESS_RESOURCE_TRANX;
1374: p_count => x_msg_count,
1375: p_data => X_msg_data);
1376: WHEN OTHERS THEN
1377: ROLLBACK TO PROCESS_RESOURCE_TRANX;
1378: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1379: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1380: THEN
1381: fnd_msg_pub.add_exc_msg(p_pkg_name =>G_PKG_NAME,
1382: p_procedure_name =>l_api_name,
1382: p_procedure_name =>l_api_name,
1383: p_error_text =>SUBSTR(SQLERRM,1,240)
1384: );
1385: END IF;
1386: FND_MSG_PUB.count_and_get( p_encoded =>FND_API.G_FALSE,
1387: p_count => x_msg_count,
1388: p_data => X_msg_data);
1389:
1390: END;
1417: -- rroy
1418: -- R12 Tech UIs
1419: -- Negative resource transactions are allowed starting R12
1420: /*IF p_prd_myworkorder_txn_tbl(i).TRANSACTED_HOURS IS NOT NULL OR
1421: p_prd_myworkorder_txn_tbl(i).TRANSACTED_HOURS <> fnd_api.g_miss_num
1422: THEN
1423: IF p_prd_myworkorder_txn_tbl(i).TRANSACTED_HOURS < 0
1424: THEN
1425: FND_MESSAGE.set_name('AHL','AHL_PRD_RESTXN_QTY_INVALID');
1435: -- rroy
1436: -- R12 Tech UIs
1437:
1438: IF p_prd_myworkorder_txn_tbl(i).WORKORDER_ID IS NULL OR
1439: p_prd_myworkorder_txn_tbl(i).WORKORDER_ID = fnd_api.g_miss_num
1440: THEN
1441: FND_MESSAGE.set_name('AHL','AHL_PRD_WORKORDER_ID_NULL');
1442: FND_MSG_PUB.ADD;
1443: IF G_DEBUG='Y' THEN
1452: p_workorder_id => p_prd_myworkorder_txn_tbl(i).workorder_id,
1453: p_ue_id => NULL,
1454: p_visit_id => NULL,
1455: p_item_instance_id => NULL);
1456: IF l_return_status = FND_API.G_TRUE THEN
1457: OPEN get_wo_details(p_prd_myworkorder_txn_tbl(i).workorder_id);
1458: FETCH get_wo_details INTO l_wo_name;
1459: CLOSE get_wo_details;
1460: FND_MESSAGE.Set_Name('AHL', 'AHL_PP_RESTXN_UNTLCKD');
1464: END IF;
1465: -- rroy
1466: -- ACL Changes
1467: IF p_prd_myworkorder_txn_tbl(i).OPERATION_SEQUENCE IS NULL OR
1468: p_prd_myworkorder_txn_tbl(i).OPERATION_SEQUENCE = fnd_api.g_miss_num
1469: THEN
1470: FND_MESSAGE.set_name('AHL','AHL_PRD_OPERATION_NULL');
1471: FND_MSG_PUB.ADD;
1472: IF G_DEBUG='Y' THEN
1474: END IF;
1475: END IF ;
1476:
1477: IF p_prd_myworkorder_txn_tbl(i).RESOURCE_SEQUENCE IS NULL OR
1478: p_prd_myworkorder_txn_tbl(i).RESOURCE_SEQUENCE = fnd_api.g_miss_num
1479: THEN
1480: FND_MESSAGE.set_name('AHL','AHL_PRD_RESOURCE_NULL');
1481: FND_MSG_PUB.ADD;
1482: IF G_DEBUG='Y' THEN
1540:
1541: PROCEDURE PROCESS_MYWORKORDER_TXNS
1542: (
1543: p_api_version IN NUMBER := 1.0,
1544: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
1545: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1546: p_validation_level IN NUMBER:=FND_API.G_VALID_LEVEL_FULL,
1547: p_default IN VARCHAR2 := FND_API.G_FALSE,
1548: p_module_type IN VARCHAR2 := NULL,
1541: PROCEDURE PROCESS_MYWORKORDER_TXNS
1542: (
1543: p_api_version IN NUMBER := 1.0,
1544: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
1545: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1546: p_validation_level IN NUMBER:=FND_API.G_VALID_LEVEL_FULL,
1547: p_default IN VARCHAR2 := FND_API.G_FALSE,
1548: p_module_type IN VARCHAR2 := NULL,
1549: x_return_status OUT NOCOPY VARCHAR2,
1542: (
1543: p_api_version IN NUMBER := 1.0,
1544: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
1545: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1546: p_validation_level IN NUMBER:=FND_API.G_VALID_LEVEL_FULL,
1547: p_default IN VARCHAR2 := FND_API.G_FALSE,
1548: p_module_type IN VARCHAR2 := NULL,
1549: x_return_status OUT NOCOPY VARCHAR2,
1550: x_msg_count OUT NOCOPY NUMBER,
1543: p_api_version IN NUMBER := 1.0,
1544: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
1545: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1546: p_validation_level IN NUMBER:=FND_API.G_VALID_LEVEL_FULL,
1547: p_default IN VARCHAR2 := FND_API.G_FALSE,
1548: p_module_type IN VARCHAR2 := NULL,
1549: x_return_status OUT NOCOPY VARCHAR2,
1550: x_msg_count OUT NOCOPY NUMBER,
1551: x_msg_data OUT NOCOPY VARCHAR2,
1559: l_num_rec NUMBER;
1560: l_msg_count NUMBER;
1561: l_msg_data VARCHAR2(2000);
1562: l_return_status VARCHAR2(1);
1563: l_init_msg_list VARCHAR2(10):=FND_API.G_FALSE;
1564: l_commit VARCHAR2(1):= FND_API.G_FALSE;
1565: l_ahl_res_txn_tbl AHL_WIP_JOB_PVT.ahl_res_txn_tbl_type;
1566: l_wip_entity_id NUMBER;
1567: l_txn_group_id NUMBER;
1560: l_msg_count NUMBER;
1561: l_msg_data VARCHAR2(2000);
1562: l_return_status VARCHAR2(1);
1563: l_init_msg_list VARCHAR2(10):=FND_API.G_FALSE;
1564: l_commit VARCHAR2(1):= FND_API.G_FALSE;
1565: l_ahl_res_txn_tbl AHL_WIP_JOB_PVT.ahl_res_txn_tbl_type;
1566: l_wip_entity_id NUMBER;
1567: l_txn_group_id NUMBER;
1568: l_ctr NUMBER:=0;
1629:
1630:
1631: -- Standard call to check for call compatibility.
1632:
1633: IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version,
1634: p_api_version,
1635: l_api_name,G_PKG_NAME) THEN
1636: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1637: END IF;
1632:
1633: IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version,
1634: p_api_version,
1635: l_api_name,G_PKG_NAME) THEN
1636: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1637: END IF;
1638:
1639: -- Initialize message list if p_init_msg_list is set to TRUE.
1640:
1637: END IF;
1638:
1639: -- Initialize message list if p_init_msg_list is set to TRUE.
1640:
1641: IF FND_API.to_boolean(p_init_msg_list) THEN
1642: FND_MSG_PUB.initialize;
1643: END IF;
1644:
1645: -- Initialize API return status to success
1643: END IF;
1644:
1645: -- Initialize API return status to success
1646:
1647: x_return_status:=FND_API.G_RET_STS_SUCCESS;
1648:
1649:
1650: -- Debug info.
1651:
1661:
1662: l_msg_count := FND_MSG_PUB.count_msg;
1663: IF l_msg_count > 0 THEN
1664: X_msg_count := l_msg_count;
1665: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1666: IF G_DEBUG='Y' THEN
1667: AHL_DEBUG_PUB.debug( 'Error Thrown in Validate',L_API_NAME);
1668: END IF;
1669: RAISE FND_API.G_EXC_ERROR;
1665: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1666: IF G_DEBUG='Y' THEN
1667: AHL_DEBUG_PUB.debug( 'Error Thrown in Validate',L_API_NAME);
1668: END IF;
1669: RAISE FND_API.G_EXC_ERROR;
1670: END IF;
1671: -- Get the Defalut UOM Code --- Hr
1672: Open getDefaultUOM;
1673: fetch getDefaultUOM into l_uom_code;
1688: CLOSE GetWipid;
1689: IF l_wo_status_code IN ('1', '12', '7', '6', '13', '5') THEN
1690: FND_MESSAGE.set_name('AHL', 'AHL_PRD_RESOURCE_CANNOTEDIT');
1691: FND_MSG_PUB.ADD;
1692: RAISE FND_API.G_EXC_ERROR;
1693: END IF;
1694:
1695: Open getResDetails(p_x_prd_myworkorder_txn_tbl(i).ASSIGNMENT_ID);
1696: FETCH getResDetails into l_res_rec;
1738: End if;
1739: l_msg_count := FND_MSG_PUB.count_msg;
1740: IF l_msg_count > 0 THEN
1741: X_msg_count := l_msg_count;
1742: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1743: RAISE FND_API.G_EXC_ERROR;
1744: IF G_DEBUG='Y' THEN
1745: AHL_DEBUG_PUB.debug( 'Error in Insert_Resource_Txn API');
1746: END IF;
1739: l_msg_count := FND_MSG_PUB.count_msg;
1740: IF l_msg_count > 0 THEN
1741: X_msg_count := l_msg_count;
1742: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1743: RAISE FND_API.G_EXC_ERROR;
1744: IF G_DEBUG='Y' THEN
1745: AHL_DEBUG_PUB.debug( 'Error in Insert_Resource_Txn API');
1746: END IF;
1747: END IF;
1754:
1755:
1756:
1757: IF (p_x_prd_myworkorder_txn_tbl(i).OPERATION_COMPLETE IS NOT NULL AND
1758: p_x_prd_myworkorder_txn_tbl(i).OPERATION_COMPLETE <> FND_API.G_MISS_CHAR AND
1759: p_x_prd_myworkorder_txn_tbl(i).OPERATION_COMPLETE = 'Y')
1760: THEN
1761: getOperationRecord(
1762: p_operation_id => p_x_prd_myworkorder_txn_tbl(i).WORKORDER_OPERATION_ID,
1774: Then
1775: AHL_PRD_OPERATIONS_PVT.PROCESS_OPERATIONS
1776: (
1777: p_api_version =>1.0,
1778: p_init_msg_list =>FND_API.G_FALSE,
1779: p_commit =>l_commit,
1780: p_validation_level =>p_validation_level,
1781: p_default => FND_API.G_TRUE,
1782: p_module_type => NULL,
1777: p_api_version =>1.0,
1778: p_init_msg_list =>FND_API.G_FALSE,
1779: p_commit =>l_commit,
1780: p_validation_level =>p_validation_level,
1781: p_default => FND_API.G_TRUE,
1782: p_module_type => NULL,
1783: p_wip_mass_load_flag => 'N',
1784: x_return_status =>x_return_status,
1785: x_msg_count =>l_msg_count,
1789: End if;
1790: l_msg_count := FND_MSG_PUB.count_msg;
1791: IF l_msg_count > 0 THEN
1792: X_msg_count := l_msg_count;
1793: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1794: RAISE FND_API.G_EXC_ERROR;
1795: IF G_DEBUG='Y' THEN
1796: AHL_DEBUG_PUB.debug( 'Error in Process Operations API');
1797: END IF;
1790: l_msg_count := FND_MSG_PUB.count_msg;
1791: IF l_msg_count > 0 THEN
1792: X_msg_count := l_msg_count;
1793: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1794: RAISE FND_API.G_EXC_ERROR;
1795: IF G_DEBUG='Y' THEN
1796: AHL_DEBUG_PUB.debug( 'Error in Process Operations API');
1797: END IF;
1798: END IF;
1803: LOOP
1804: AHL_COMPLETIONS_PVT.complete_operation
1805: (
1806: p_api_version => 1.0,
1807: p_init_msg_list => FND_API.G_TRUE,
1808: p_commit => FND_API.G_FALSE,
1809: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
1810: p_default => FND_API.G_FALSE,
1811: p_module_type => NULL,
1804: AHL_COMPLETIONS_PVT.complete_operation
1805: (
1806: p_api_version => 1.0,
1807: p_init_msg_list => FND_API.G_TRUE,
1808: p_commit => FND_API.G_FALSE,
1809: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
1810: p_default => FND_API.G_FALSE,
1811: p_module_type => NULL,
1812: x_return_status => x_return_status,
1805: (
1806: p_api_version => 1.0,
1807: p_init_msg_list => FND_API.G_TRUE,
1808: p_commit => FND_API.G_FALSE,
1809: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
1810: p_default => FND_API.G_FALSE,
1811: p_module_type => NULL,
1812: x_return_status => x_return_status,
1813: x_msg_count => l_msg_count,
1806: p_api_version => 1.0,
1807: p_init_msg_list => FND_API.G_TRUE,
1808: p_commit => FND_API.G_FALSE,
1809: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
1810: p_default => FND_API.G_FALSE,
1811: p_module_type => NULL,
1812: x_return_status => x_return_status,
1813: x_msg_count => l_msg_count,
1814: x_msg_data => l_msg_data,
1819: END IF;
1820: l_msg_count := FND_MSG_PUB.count_msg;
1821: IF l_msg_count > 0 THEN
1822: X_msg_count := l_msg_count;
1823: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1824: RAISE FND_API.G_EXC_ERROR;
1825: IF G_DEBUG='Y' THEN
1826: AHL_DEBUG_PUB.debug( 'Error in Complete Operation API');
1827: END IF;
1820: l_msg_count := FND_MSG_PUB.count_msg;
1821: IF l_msg_count > 0 THEN
1822: X_msg_count := l_msg_count;
1823: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1824: RAISE FND_API.G_EXC_ERROR;
1825: IF G_DEBUG='Y' THEN
1826: AHL_DEBUG_PUB.debug( 'Error in Complete Operation API');
1827: END IF;
1828: END IF;
1826: AHL_DEBUG_PUB.debug( 'Error in Complete Operation API');
1827: END IF;
1828: END IF;
1829:
1830: IF FND_API.TO_BOOLEAN(p_commit) THEN
1831: COMMIT;
1832: END IF;
1833:
1834: -- Debug info
1842: AHL_DEBUG_PUB.disable_debug;
1843: END IF;
1844:
1845: EXCEPTION
1846: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1847: ROLLBACK TO PROCESS_MYWORKORDER_TXNS;
1848: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1849: FND_MSG_PUB.count_and_get( p_encoded =>FND_API.G_FALSE,
1850: p_count => x_msg_count,
1844:
1845: EXCEPTION
1846: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1847: ROLLBACK TO PROCESS_MYWORKORDER_TXNS;
1848: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1849: FND_MSG_PUB.count_and_get( p_encoded =>FND_API.G_FALSE,
1850: p_count => x_msg_count,
1851: p_data => x_msg_data);
1852:
1845: EXCEPTION
1846: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1847: ROLLBACK TO PROCESS_MYWORKORDER_TXNS;
1848: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1849: FND_MSG_PUB.count_and_get( p_encoded =>FND_API.G_FALSE,
1850: p_count => x_msg_count,
1851: p_data => x_msg_data);
1852:
1853: WHEN FND_API.G_EXC_ERROR THEN
1849: FND_MSG_PUB.count_and_get( p_encoded =>FND_API.G_FALSE,
1850: p_count => x_msg_count,
1851: p_data => x_msg_data);
1852:
1853: WHEN FND_API.G_EXC_ERROR THEN
1854: ROLLBACK TO PROCESS_MYWORKORDER_TXNS;
1855: X_return_status := FND_API.G_RET_STS_ERROR;
1856: FND_MSG_PUB.count_and_get( p_encoded =>FND_API.G_FALSE,
1857: p_count => x_msg_count,
1851: p_data => x_msg_data);
1852:
1853: WHEN FND_API.G_EXC_ERROR THEN
1854: ROLLBACK TO PROCESS_MYWORKORDER_TXNS;
1855: X_return_status := FND_API.G_RET_STS_ERROR;
1856: FND_MSG_PUB.count_and_get( p_encoded =>FND_API.G_FALSE,
1857: p_count => x_msg_count,
1858: p_data => X_msg_data);
1859: WHEN OTHERS THEN
1852:
1853: WHEN FND_API.G_EXC_ERROR THEN
1854: ROLLBACK TO PROCESS_MYWORKORDER_TXNS;
1855: X_return_status := FND_API.G_RET_STS_ERROR;
1856: FND_MSG_PUB.count_and_get( p_encoded =>FND_API.G_FALSE,
1857: p_count => x_msg_count,
1858: p_data => X_msg_data);
1859: WHEN OTHERS THEN
1860: ROLLBACK TO PROCESS_MYWORKORDER_TXNS;
1857: p_count => x_msg_count,
1858: p_data => X_msg_data);
1859: WHEN OTHERS THEN
1860: ROLLBACK TO PROCESS_MYWORKORDER_TXNS;
1861: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1862: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1863: THEN
1864: fnd_msg_pub.add_exc_msg(p_pkg_name =>G_PKG_NAME,
1865: p_procedure_name =>l_api_name,
1865: p_procedure_name =>l_api_name,
1866: p_error_text =>SUBSTR(SQLERRM,1,240)
1867: );
1868: END IF;
1869: FND_MSG_PUB.count_and_get( p_encoded =>FND_API.G_FALSE,
1870: p_count => x_msg_count,
1871: p_data => X_msg_data);
1872:
1873: END;
1943: --# PROCEDURE: Get_Resource_Txn_Defaults
1944: --# PARAMETERS
1945: --# Standard IN Parameters
1946: --# p_api_version IN NUMBER := 1.0
1947: --# p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE
1948: --# p_module_type IN VARCHAR2 := NULL
1949: --#
1950: --# Standard OUT Parameters
1951: --# x_return_status OUT NOCOPY VARCHAR2
1968:
1969: PROCEDURE Get_Resource_Txn_Defaults
1970: (
1971: p_api_version IN NUMBER := 1.0,
1972: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
1973: p_module_type IN VARCHAR2 := NULL,
1974: x_return_status OUT NOCOPY VARCHAR2,
1975: x_msg_count OUT NOCOPY NUMBER,
1976: x_msg_data OUT NOCOPY VARCHAR2,