74: -- Standard Start of API Savepoint
75: SAVEPOINT CSD_SPLIT_PKG ;
76:
77: -- Standard Call to check API compatibility
78: IF NOT FND_API.Compatible_API_Call( l_api_version,
79: p_api_version,
80: l_api_name,
81: G_PKG_NAME) THEN
82: RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
78: IF NOT FND_API.Compatible_API_Call( l_api_version,
79: p_api_version,
80: l_api_name,
81: G_PKG_NAME) THEN
82: RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
83: END IF;
84:
85: -- Initialize message list if p_init_msg_list is set to TRUE.
86: IF FND_API.to_Boolean( p_init_msg_list ) THEN
82: RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
83: END IF;
84:
85: -- Initialize message list if p_init_msg_list is set to TRUE.
86: IF FND_API.to_Boolean( p_init_msg_list ) THEN
87: FND_MSG_PUB.initialize;
88: END IF;
89:
90: -- Initialize API return status to success
87: FND_MSG_PUB.initialize;
88: END IF;
89:
90: -- Initialize API return status to success
91: x_return_status := FND_API.G_RET_STS_SUCCESS;
92:
93: --
94: -- API body
95: --
100: p_repair_line_id => p_original_repair_line_id,
101: x_Repln_Rec => l_rep_line_rec,
102: x_return_status => x_return_status
103: );
104: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
105: IF(l_statement_level >= l_debug_level) THEN
106: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_SPLIT_PKG.Build_Repln_Record','failed');
107: END IF;
108: RAISE FND_API.G_EXC_ERROR;
104: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
105: IF(l_statement_level >= l_debug_level) THEN
106: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_SPLIT_PKG.Build_Repln_Record','failed');
107: END IF;
108: RAISE FND_API.G_EXC_ERROR;
109: END IF;
110:
111: l_total_original_quantity := l_rep_line_rec.quantity;
112: l_org_new_quantity := l_total_original_quantity - p_new_quantity;
133: end if;
134:
135: CSD_REPAIRS_PVT.Update_Repair_Order
136: (p_API_version_number => 1.0,
137: p_init_msg_list => FND_API.G_TRUE,
138: p_commit => FND_API.G_FALSE,
139: p_validation_level => null,
140: p_repair_line_id => p_original_repair_line_id,
141: p_Repln_Rec => l_original_rep_line_rec,
134:
135: CSD_REPAIRS_PVT.Update_Repair_Order
136: (p_API_version_number => 1.0,
137: p_init_msg_list => FND_API.G_TRUE,
138: p_commit => FND_API.G_FALSE,
139: p_validation_level => null,
140: p_repair_line_id => p_original_repair_line_id,
141: p_Repln_Rec => l_original_rep_line_rec,
142: x_return_status => x_return_status,
142: x_return_status => x_return_status,
143: x_msg_count => x_msg_count,
144: x_msg_data => x_msg_data
145: );
146: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
147: IF(l_statement_level >= l_debug_level) THEN
148: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_REPAIRS_PVT.Update_Repair_Order','failed');
149: END IF;
150: RAISE FND_API.G_EXC_ERROR;
146: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
147: IF(l_statement_level >= l_debug_level) THEN
148: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_REPAIRS_PVT.Update_Repair_Order','failed');
149: END IF;
150: RAISE FND_API.G_EXC_ERROR;
151: END IF;
152:
153: l_rep_line_rec.repair_number := null;
154: l_rep_line_rec.object_version_number := FND_API.G_MISS_NUM;
150: RAISE FND_API.G_EXC_ERROR;
151: END IF;
152:
153: l_rep_line_rec.repair_number := null;
154: l_rep_line_rec.object_version_number := FND_API.G_MISS_NUM;
155: l_rep_line_rec.quantity := p_new_quantity;
156: l_rep_line_rec.repair_type_id := p_repair_type_id;
157:
158: Create_New_Repair_Order (
157:
158: Create_New_Repair_Order (
159: p_api_version => 1.0,
160: p_init_msg_list => p_init_msg_list,
161: p_commit => FND_API.G_FALSE,
162: p_validation_level => null,
163: x_return_status => x_return_status,
164: x_msg_count => x_msg_count,
165: x_msg_data => x_msg_data,
167: p_copy_attachment => p_copy_attachment,
168: p_original_repair_line_id => p_original_repair_line_id,
169: p_rep_line_rec => l_rep_line_rec
170: );
171: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
172: IF(l_statement_level >= l_debug_level) THEN
173: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_SPLIT_PKG.Create_New_Repair_Order','failed');
174: END IF;
175: RAISE FND_API.G_EXC_ERROR;
171: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
172: IF(l_statement_level >= l_debug_level) THEN
173: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_SPLIT_PKG.Create_New_Repair_Order','failed');
174: END IF;
175: RAISE FND_API.G_EXC_ERROR;
176: END IF;
177:
178: l_repair_history_Rec.repair_line_id := p_original_repair_line_id;
179: l_repair_history_Rec.EVENT_CODE := 'SLT';
182:
183: CSD_REPAIR_HISTORY_PVT.Create_repair_history(
184: P_Api_Version_Number => p_api_version,
185: P_Init_Msg_List => p_init_msg_list,
186: P_Commit => FND_API.G_FALSE,
187: p_validation_level => p_validation_level,
188: P_REPH_REC => l_repair_history_Rec,
189: X_REPAIR_HISTORY_ID => l_repair_history_id,
190: X_Return_Status => x_return_status,
190: X_Return_Status => x_return_status,
191: X_Msg_Count => x_msg_count,
192: X_Msg_Data => x_msg_data
193: );
194: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
195: IF(l_statement_level >= l_debug_level) THEN
196: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_REPAIR_HISTORY_PVT.Create_repair_history','failed');
197: END IF;
198: RAISE FND_API.G_EXC_ERROR;
194: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
195: IF(l_statement_level >= l_debug_level) THEN
196: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_REPAIR_HISTORY_PVT.Create_repair_history','failed');
197: END IF;
198: RAISE FND_API.G_EXC_ERROR;
199: END IF;
200:
201:
202: l_repair_history_Rec.repair_line_id := x_repair_line_id;
224:
225: CSD_REPAIR_HISTORY_PVT.Create_repair_history(
226: P_Api_Version_Number => p_api_version,
227: P_Init_Msg_List => p_init_msg_list,
228: P_Commit => FND_API.G_FALSE,
229: p_validation_level => p_validation_level,
230: P_REPH_REC => l_repair_history_Rec,
231: X_REPAIR_HISTORY_ID => l_repair_history_id,
232: X_Return_Status => x_return_status,
232: X_Return_Status => x_return_status,
233: X_Msg_Count => x_msg_count,
234: X_Msg_Data => x_msg_data
235: );
236: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
237: IF(l_statement_level >= l_debug_level) THEN
238: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_REPAIR_HISTORY_PVT.Create_repair_history','failed');
239: END IF;
240: RAISE FND_API.G_EXC_ERROR;
236: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
237: IF(l_statement_level >= l_debug_level) THEN
238: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_REPAIR_HISTORY_PVT.Create_repair_history','failed');
239: END IF;
240: RAISE FND_API.G_EXC_ERROR;
241: END IF;
242:
243: -- swai: 12.1.1 bug 7176940 - check service bulletins after RO creation
244: IF (nvl(fnd_profile.value('CSD_AUTO_CHECK_BULLETINS'),'N') = 'Y') THEN
243: -- swai: 12.1.1 bug 7176940 - check service bulletins after RO creation
244: IF (nvl(fnd_profile.value('CSD_AUTO_CHECK_BULLETINS'),'N') = 'Y') THEN
245: CSD_RO_BULLETINS_PVT.LINK_BULLETINS_TO_RO(
246: p_api_version_number => 1.0,
247: p_init_msg_list => Fnd_Api.G_FALSE,
248: p_commit => Fnd_Api.G_FALSE,
249: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
250: p_repair_line_id => x_repair_line_id,
251: px_ro_sc_ids_tbl => l_ro_sc_ids_tbl,
244: IF (nvl(fnd_profile.value('CSD_AUTO_CHECK_BULLETINS'),'N') = 'Y') THEN
245: CSD_RO_BULLETINS_PVT.LINK_BULLETINS_TO_RO(
246: p_api_version_number => 1.0,
247: p_init_msg_list => Fnd_Api.G_FALSE,
248: p_commit => Fnd_Api.G_FALSE,
249: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
250: p_repair_line_id => x_repair_line_id,
251: px_ro_sc_ids_tbl => l_ro_sc_ids_tbl,
252: x_return_status => l_return_status,
245: CSD_RO_BULLETINS_PVT.LINK_BULLETINS_TO_RO(
246: p_api_version_number => 1.0,
247: p_init_msg_list => Fnd_Api.G_FALSE,
248: p_commit => Fnd_Api.G_FALSE,
249: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
250: p_repair_line_id => x_repair_line_id,
251: px_ro_sc_ids_tbl => l_ro_sc_ids_tbl,
252: x_return_status => l_return_status,
253: x_msg_count => l_msg_count,
272: );
273:
274: CSD_REPAIRS_PVT.Update_Repair_Order
275: (p_API_version_number => 1.0,
276: p_init_msg_list => FND_API.G_TRUE,
277: p_commit => FND_API.G_FALSE,
278: p_validation_level => null,
279: p_repair_line_id => p_original_repair_line_id,
280: p_Repln_Rec => l_original_rep_line_rec,
273:
274: CSD_REPAIRS_PVT.Update_Repair_Order
275: (p_API_version_number => 1.0,
276: p_init_msg_list => FND_API.G_TRUE,
277: p_commit => FND_API.G_FALSE,
278: p_validation_level => null,
279: p_repair_line_id => p_original_repair_line_id,
280: p_Repln_Rec => l_original_rep_line_rec,
281: x_return_status => x_return_status,
281: x_return_status => x_return_status,
282: x_msg_count => x_msg_count,
283: x_msg_data => x_msg_data
284: );
285: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
286: IF(l_statement_level >= l_debug_level) THEN
287: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_REPAIRS_PVT.Update_Repair_Order','failed');
288: END IF;
289: RAISE FND_API.G_EXC_ERROR;
285: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
286: IF(l_statement_level >= l_debug_level) THEN
287: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_REPAIRS_PVT.Update_Repair_Order','failed');
288: END IF;
289: RAISE FND_API.G_EXC_ERROR;
290: END IF;
291:
292: l_rep_line_rec.repair_number := null;
293: l_rep_line_rec.object_version_number := FND_API.G_MISS_NUM;
289: RAISE FND_API.G_EXC_ERROR;
290: END IF;
291:
292: l_rep_line_rec.repair_number := null;
293: l_rep_line_rec.object_version_number := FND_API.G_MISS_NUM;
294: for i in 1..(l_total_original_quantity-1) loop
295: l_rep_line_rec.quantity := 1;
296:
297: Create_New_Repair_Order (
296:
297: Create_New_Repair_Order (
298: p_api_version => 1.0,
299: p_init_msg_list => p_init_msg_list,
300: p_commit => FND_API.G_FALSE,
301: p_validation_level => null,
302: x_return_status => x_return_status,
303: x_msg_count => x_msg_count,
304: x_msg_data => x_msg_data,
306: p_copy_attachment => p_copy_attachment,
307: p_original_repair_line_id => p_original_repair_line_id,
308: p_rep_line_rec => l_rep_line_rec
309: );
310: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
311: IF(l_statement_level >= l_debug_level) THEN
312: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_SPLIT_PKG.Create_New_Repair_Order','failed');
313: END IF;
314: RAISE FND_API.G_EXC_ERROR;
310: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
311: IF(l_statement_level >= l_debug_level) THEN
312: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_SPLIT_PKG.Create_New_Repair_Order','failed');
313: END IF;
314: RAISE FND_API.G_EXC_ERROR;
315: END IF;
316:
317: l_repair_history_Rec.repair_line_id := x_repair_line_id;
318: l_repair_history_Rec.EVENT_CODE := 'SLT';
324: l_repair_history_Rec.paramc1 := l_original_repair_number;
325: CSD_REPAIR_HISTORY_PVT.Create_repair_history(
326: P_Api_Version_Number => p_api_version,
327: P_Init_Msg_List => p_init_msg_list,
328: P_Commit => FND_API.G_FALSE,
329: p_validation_level => p_validation_level,
330: P_REPH_REC => l_repair_history_Rec,
331: X_REPAIR_HISTORY_ID => l_repair_history_id,
332: X_Return_Status => x_return_status,
332: X_Return_Status => x_return_status,
333: X_Msg_Count => x_msg_count,
334: X_Msg_Data => x_msg_data
335: );
336: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
337: IF(l_statement_level >= l_debug_level) THEN
338: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_REPAIR_HISTORY_PVT.Create_repair_history','failed');
339: END IF;
340: RAISE FND_API.G_EXC_ERROR;
336: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
337: IF(l_statement_level >= l_debug_level) THEN
338: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_REPAIR_HISTORY_PVT.Create_repair_history','failed');
339: END IF;
340: RAISE FND_API.G_EXC_ERROR;
341: END IF;
342:
343:
344: end loop;
352:
353: CSD_REPAIR_HISTORY_PVT.Create_repair_history(
354: P_Api_Version_Number => p_api_version,
355: P_Init_Msg_List => p_init_msg_list,
356: P_Commit => FND_API.G_FALSE,
357: p_validation_level => p_validation_level,
358: P_REPH_REC => l_repair_history_Rec,
359: X_REPAIR_HISTORY_ID => l_repair_history_id,
360: X_Return_Status => x_return_status,
360: X_Return_Status => x_return_status,
361: X_Msg_Count => x_msg_count,
362: X_Msg_Data => x_msg_data
363: );
364: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
365: IF(l_statement_level >= l_debug_level) THEN
366: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_REPAIR_HISTORY_PVT.Create_repair_history','failed');
367: END IF;
368: RAISE FND_API.G_EXC_ERROR;
364: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
365: IF(l_statement_level >= l_debug_level) THEN
366: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_REPAIR_HISTORY_PVT.Create_repair_history','failed');
367: END IF;
368: RAISE FND_API.G_EXC_ERROR;
369: END IF;
370:
371: -- swai: 12.1.1 bug 7176940 - check service bulletins after RO creation
372: IF (nvl(fnd_profile.value('CSD_AUTO_CHECK_BULLETINS'),'N') = 'Y') THEN
371: -- swai: 12.1.1 bug 7176940 - check service bulletins after RO creation
372: IF (nvl(fnd_profile.value('CSD_AUTO_CHECK_BULLETINS'),'N') = 'Y') THEN
373: CSD_RO_BULLETINS_PVT.LINK_BULLETINS_TO_RO(
374: p_api_version_number => 1.0,
375: p_init_msg_list => Fnd_Api.G_FALSE,
376: p_commit => Fnd_Api.G_FALSE,
377: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
378: p_repair_line_id => x_repair_line_id,
379: px_ro_sc_ids_tbl => l_ro_sc_ids_tbl,
372: IF (nvl(fnd_profile.value('CSD_AUTO_CHECK_BULLETINS'),'N') = 'Y') THEN
373: CSD_RO_BULLETINS_PVT.LINK_BULLETINS_TO_RO(
374: p_api_version_number => 1.0,
375: p_init_msg_list => Fnd_Api.G_FALSE,
376: p_commit => Fnd_Api.G_FALSE,
377: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
378: p_repair_line_id => x_repair_line_id,
379: px_ro_sc_ids_tbl => l_ro_sc_ids_tbl,
380: x_return_status => l_return_status,
373: CSD_RO_BULLETINS_PVT.LINK_BULLETINS_TO_RO(
374: p_api_version_number => 1.0,
375: p_init_msg_list => Fnd_Api.G_FALSE,
376: p_commit => Fnd_Api.G_FALSE,
377: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
378: p_repair_line_id => x_repair_line_id,
379: px_ro_sc_ids_tbl => l_ro_sc_ids_tbl,
380: x_return_status => l_return_status,
381: x_msg_count => l_msg_count,
387:
388: -- End of API body
389: --
390: -- Standard check of p_commit.
391: IF FND_API.To_Boolean( p_commit ) THEN
392: COMMIT WORK;
393: END IF;
394:
395: -- Standard call to get message count and if count is 1, get message info.
397: ( p_count => x_msg_count,
398: p_data => x_msg_data
399: );
400: EXCEPTION
401: WHEN FND_API.G_EXC_ERROR THEN
402: ROLLBACK TO CSD_SPLIT_PKG;
403: x_return_status := FND_API.G_RET_STS_ERROR;
404: FND_MSG_PUB.Count_And_Get
405: ( p_count => x_msg_count,
399: );
400: EXCEPTION
401: WHEN FND_API.G_EXC_ERROR THEN
402: ROLLBACK TO CSD_SPLIT_PKG;
403: x_return_status := FND_API.G_RET_STS_ERROR;
404: FND_MSG_PUB.Count_And_Get
405: ( p_count => x_msg_count,
406: p_data => x_msg_data
407: );
409: FND_LOG.STRING(FND_LOG.LEVEL_ERROR,
410: 'CSD.PLSQL.CSD_SPLIT_PKG.Split_Repair_Order',
411: 'EXC_ERROR ['||x_msg_data||']');
412: END IF;
413: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
414: ROLLBACK TO CSD_SPLIT_PKG;
415: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
416: FND_MSG_PUB.Count_And_Get
417: ( p_count => x_msg_count,
411: 'EXC_ERROR ['||x_msg_data||']');
412: END IF;
413: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
414: ROLLBACK TO CSD_SPLIT_PKG;
415: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
416: FND_MSG_PUB.Count_And_Get
417: ( p_count => x_msg_count,
418: p_data => x_msg_data
419: );
423: 'EXC_UNEXPECTED_ERROR ['||x_msg_data||']');
424: END IF;
425: WHEN OTHERS THEN
426: ROLLBACK TO CSD_SPLIT_PKG;
427: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
428: IF FND_MSG_PUB.Check_Msg_Level
429: (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
430: THEN
431: FND_MSG_PUB.Add_Exc_Msg
536:
537: begin
538:
539: -- Initialize API return status to success
540: x_return_status := FND_API.G_RET_STS_SUCCESS;
541:
542: IF(l_statement_level >= l_debug_level) THEN
543: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_SPLIT_PKG.Build_Repln_Record','At the Begin in Build_Repln_Record');
544: END IF;
542: IF(l_statement_level >= l_debug_level) THEN
543: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_SPLIT_PKG.Build_Repln_Record','At the Begin in Build_Repln_Record');
544: END IF;
545:
546: IF NVL(p_repair_line_id,FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
547:
548: OPEN c_repair_line_dtls(p_repair_line_id);
549: FETCH c_repair_line_dtls INTO
550: x_Repln_Rec.REPAIR_NUMBER
624: IF c_repair_line_dtls%notfound then
625: FND_MESSAGE.SET_NAME('CSD','CSD_API_INV_REP_LINE_ID');
626: FND_MESSAGE.SET_TOKEN('REPAIR_LINE_ID',p_repair_line_id);
627: FND_MSG_PUB.ADD;
628: RAISE FND_API.G_EXC_ERROR;
629: END IF;
630:
631: IF c_repair_line_dtls%isopen then
632: CLOSE c_repair_line_dtls;
634:
635: END IF;
636:
637: EXCEPTION
638: WHEN FND_API.G_EXC_ERROR THEN
639: ROLLBACK TO CSD_SPLIT_PKG;
640: x_return_status := FND_API.G_RET_STS_ERROR;
641: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
642: ROLLBACK TO CSD_SPLIT_PKG;
636:
637: EXCEPTION
638: WHEN FND_API.G_EXC_ERROR THEN
639: ROLLBACK TO CSD_SPLIT_PKG;
640: x_return_status := FND_API.G_RET_STS_ERROR;
641: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
642: ROLLBACK TO CSD_SPLIT_PKG;
643: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
644: WHEN OTHERS THEN
637: EXCEPTION
638: WHEN FND_API.G_EXC_ERROR THEN
639: ROLLBACK TO CSD_SPLIT_PKG;
640: x_return_status := FND_API.G_RET_STS_ERROR;
641: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
642: ROLLBACK TO CSD_SPLIT_PKG;
643: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
644: WHEN OTHERS THEN
645: ROLLBACK TO CSD_SPLIT_PKG;
639: ROLLBACK TO CSD_SPLIT_PKG;
640: x_return_status := FND_API.G_RET_STS_ERROR;
641: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
642: ROLLBACK TO CSD_SPLIT_PKG;
643: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
644: WHEN OTHERS THEN
645: ROLLBACK TO CSD_SPLIT_PKG;
646: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
647: End Build_Repln_Record;
642: ROLLBACK TO CSD_SPLIT_PKG;
643: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
644: WHEN OTHERS THEN
645: ROLLBACK TO CSD_SPLIT_PKG;
646: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
647: End Build_Repln_Record;
648:
649:
650: PROCEDURE Build_Product_TXN_Record (
713:
714: begin
715:
716: -- Initialize API return status to success
717: x_return_status := FND_API.G_RET_STS_SUCCESS;
718:
719: IF NVL(p_product_txn_id,FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
720: OPEN c_product_txn_line_dtls(p_product_txn_id);
721: FETCH c_product_txn_line_dtls INTO
715:
716: -- Initialize API return status to success
717: x_return_status := FND_API.G_RET_STS_SUCCESS;
718:
719: IF NVL(p_product_txn_id,FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
720: OPEN c_product_txn_line_dtls(p_product_txn_id);
721: FETCH c_product_txn_line_dtls INTO
722: x_product_txn_Rec.estimate_detail_id
723: ,x_product_txn_Rec.action_type
771: IF c_product_txn_line_dtls%notfound then
772: FND_MESSAGE.SET_NAME('CSD','CSD_API_INV_REP_LINE_ID');
773: FND_MESSAGE.SET_TOKEN('p_product_txn_id',p_product_txn_id);
774: FND_MSG_PUB.ADD;
775: RAISE FND_API.G_EXC_ERROR;
776: END IF;
777:
778: IF c_product_txn_line_dtls%isopen then
779: CLOSE c_product_txn_line_dtls;
782: END IF;
783:
784: -- Standard call to get message count and if count is 1, get message info.
785: EXCEPTION
786: WHEN FND_API.G_EXC_ERROR THEN
787: ROLLBACK TO CSD_SPLIT_PKG;
788: x_return_status := FND_API.G_RET_STS_ERROR;
789: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
790: ROLLBACK TO CSD_SPLIT_PKG;
784: -- Standard call to get message count and if count is 1, get message info.
785: EXCEPTION
786: WHEN FND_API.G_EXC_ERROR THEN
787: ROLLBACK TO CSD_SPLIT_PKG;
788: x_return_status := FND_API.G_RET_STS_ERROR;
789: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
790: ROLLBACK TO CSD_SPLIT_PKG;
791: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
792: WHEN OTHERS THEN
785: EXCEPTION
786: WHEN FND_API.G_EXC_ERROR THEN
787: ROLLBACK TO CSD_SPLIT_PKG;
788: x_return_status := FND_API.G_RET_STS_ERROR;
789: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
790: ROLLBACK TO CSD_SPLIT_PKG;
791: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
792: WHEN OTHERS THEN
793: ROLLBACK TO CSD_SPLIT_PKG;
787: ROLLBACK TO CSD_SPLIT_PKG;
788: x_return_status := FND_API.G_RET_STS_ERROR;
789: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
790: ROLLBACK TO CSD_SPLIT_PKG;
791: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
792: WHEN OTHERS THEN
793: ROLLBACK TO CSD_SPLIT_PKG;
794: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
795: End Build_Product_TXN_Record;
790: ROLLBACK TO CSD_SPLIT_PKG;
791: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
792: WHEN OTHERS THEN
793: ROLLBACK TO CSD_SPLIT_PKG;
794: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
795: End Build_Product_TXN_Record;
796:
797:
798: PROCEDURE Set_Error_Message (
805: IS
806:
807: begin
808: -- Initialize API return status to success
809: x_return_status := FND_API.G_RET_STS_SUCCESS;
810:
811: -- Initialize message list if p_init_msg_list is set to TRUE.
812: IF FND_API.to_Boolean( fnd_api.g_true ) THEN
813: FND_MSG_PUB.initialize;
808: -- Initialize API return status to success
809: x_return_status := FND_API.G_RET_STS_SUCCESS;
810:
811: -- Initialize message list if p_init_msg_list is set to TRUE.
812: IF FND_API.to_Boolean( fnd_api.g_true ) THEN
813: FND_MSG_PUB.initialize;
814: END IF;
815:
816: IF (p_msg_code is not null) ThEN
813: FND_MSG_PUB.initialize;
814: END IF;
815:
816: IF (p_msg_code is not null) ThEN
817: x_return_status := FND_API.G_RET_STS_ERROR;
818: FND_MESSAGE.SET_NAME('CSD',p_msg_code);
819: FND_MSG_PUB.ADD;
820: END IF;
821:
875:
876:
877: begin
878: -- Initialize API return status to success
879: x_return_status := FND_API.G_RET_STS_SUCCESS;
880: l_number_product_txn_lines := 0;
881: l_total_quantity_rcvd := 0;
882: l_total_quantity_in_wip := 0;
883: l_repair_mode := null;
882: l_total_quantity_in_wip := 0;
883: l_repair_mode := null;
884:
885: -- Initialize message list if p_init_msg_list is set to TRUE.
886: IF FND_API.to_Boolean( fnd_api.g_true ) THEN
887: FND_MSG_PUB.initialize;
888: END IF;
889:
890: IF (p_repair_line_id is null) THEN
887: FND_MSG_PUB.initialize;
888: END IF;
889:
890: IF (p_repair_line_id is null) THEN
891: x_return_status := FND_API.G_RET_STS_ERROR;
892: FND_MESSAGE.SET_NAME('CSD','CSD_NOT_SPLIT_WITHOUT_RO_NUM');
893: FND_MSG_PUB.ADD;
894: FND_MSG_PUB.Count_And_Get
895: ( p_count => x_msg_count,
906: CLOSE c_repair_type_ref;
907: END IF;
908:
909: IF l_repair_type_ref not in ('SR', 'RR') then
910: x_return_status := FND_API.G_RET_STS_ERROR;
911: FND_MESSAGE.SET_NAME('CSD','CSD_NOT_SPLIT_INCORRECT_REF');
912: FND_MSG_PUB.ADD;
913: if (x_return_status <> FND_API.G_RET_STS_SUCCESS) then
914: FND_MSG_PUB.Count_And_Get
909: IF l_repair_type_ref not in ('SR', 'RR') then
910: x_return_status := FND_API.G_RET_STS_ERROR;
911: FND_MESSAGE.SET_NAME('CSD','CSD_NOT_SPLIT_INCORRECT_REF');
912: FND_MSG_PUB.ADD;
913: if (x_return_status <> FND_API.G_RET_STS_SUCCESS) then
914: FND_MSG_PUB.Count_And_Get
915: ( p_count => x_msg_count,
916: p_data => x_msg_data
917: );
932: l_repair_quantity := P.repair_quantity;
933: l_total_quantity_rcvd := l_total_quantity_rcvd + P.quantity_rcvd;
934: l_total_quantity_in_wip := l_total_quantity_in_wip + P.quantity_in_wip;
935: if P.status <> 'O' then
936: x_return_status := FND_API.G_RET_STS_ERROR;
937: FND_MESSAGE.SET_NAME('CSD','CSD_NOT_SPLIT_WRONG_STATUS');
938: FND_MSG_PUB.ADD;
939: elsif P.serial_number_control_code <> 1 then
940: x_return_status := FND_API.G_RET_STS_ERROR;
936: x_return_status := FND_API.G_RET_STS_ERROR;
937: FND_MESSAGE.SET_NAME('CSD','CSD_NOT_SPLIT_WRONG_STATUS');
938: FND_MSG_PUB.ADD;
939: elsif P.serial_number_control_code <> 1 then
940: x_return_status := FND_API.G_RET_STS_ERROR;
941: FND_MESSAGE.SET_NAME('CSD','CSD_NOT_SPLIT_PROD_SERIALIZED');
942: FND_MSG_PUB.ADD;
943: elsif P.repair_type_ref not in ('SR', 'RR') then
944: x_return_status := FND_API.G_RET_STS_ERROR;
940: x_return_status := FND_API.G_RET_STS_ERROR;
941: FND_MESSAGE.SET_NAME('CSD','CSD_NOT_SPLIT_PROD_SERIALIZED');
942: FND_MSG_PUB.ADD;
943: elsif P.repair_type_ref not in ('SR', 'RR') then
944: x_return_status := FND_API.G_RET_STS_ERROR;
945: FND_MESSAGE.SET_NAME('CSD','CSD_NOT_SPLIT_INCORRECT_REF');
946: FND_MSG_PUB.ADD;
947: elsif P.comms_nl_trackable_flag = 'Y' then
948: x_return_status := FND_API.G_RET_STS_ERROR;
944: x_return_status := FND_API.G_RET_STS_ERROR;
945: FND_MESSAGE.SET_NAME('CSD','CSD_NOT_SPLIT_INCORRECT_REF');
946: FND_MSG_PUB.ADD;
947: elsif P.comms_nl_trackable_flag = 'Y' then
948: x_return_status := FND_API.G_RET_STS_ERROR;
949: FND_MESSAGE.SET_NAME('CSD','CSD_NOT_SPLIT_PROD_IB_TRBLE');
950: FND_MSG_PUB.ADD;
951: end if;
952: if (x_return_status <> FND_API.G_RET_STS_SUCCESS) then
948: x_return_status := FND_API.G_RET_STS_ERROR;
949: FND_MESSAGE.SET_NAME('CSD','CSD_NOT_SPLIT_PROD_IB_TRBLE');
950: FND_MSG_PUB.ADD;
951: end if;
952: if (x_return_status <> FND_API.G_RET_STS_SUCCESS) then
953: FND_MSG_PUB.Count_And_Get
954: ( p_count => x_msg_count,
955: p_data => x_msg_data
956: );
962: CLOSE c_rma_product_txn_line_info;
963: END IF;
964:
965: if (l_number_product_txn_lines < 1) then
966: x_return_status := FND_API.G_RET_STS_ERROR;
967: FND_MESSAGE.SET_NAME('CSD','CSD_NOT_SPLIT_NO_LOGISTIC_LINE');
968: FND_MSG_PUB.ADD;
969: elsif (l_repair_quantity > l_total_quantity_rcvd) then
970: x_return_status := FND_API.G_RET_STS_ERROR;
966: x_return_status := FND_API.G_RET_STS_ERROR;
967: FND_MESSAGE.SET_NAME('CSD','CSD_NOT_SPLIT_NO_LOGISTIC_LINE');
968: FND_MSG_PUB.ADD;
969: elsif (l_repair_quantity > l_total_quantity_rcvd) then
970: x_return_status := FND_API.G_RET_STS_ERROR;
971: FND_MESSAGE.SET_NAME('CSD','CSD_NOT_SPLIT_ALL_QTYS_NOT_REC');
972: FND_MSG_PUB.ADD;
973: elsif ((l_repair_quantity > l_total_quantity_in_wip) and (l_repair_mode = 'WIP') and (l_wip_job_count > 0)) then
974: x_return_status := FND_API.G_RET_STS_ERROR;
970: x_return_status := FND_API.G_RET_STS_ERROR;
971: FND_MESSAGE.SET_NAME('CSD','CSD_NOT_SPLIT_ALL_QTYS_NOT_REC');
972: FND_MSG_PUB.ADD;
973: elsif ((l_repair_quantity > l_total_quantity_in_wip) and (l_repair_mode = 'WIP') and (l_wip_job_count > 0)) then
974: x_return_status := FND_API.G_RET_STS_ERROR;
975: FND_MESSAGE.SET_NAME('CSD','CSD_NOT_SPLIT_JOB_INCOMPLETED');
976: FND_MSG_PUB.ADD;
977: end if;
978:
975: FND_MESSAGE.SET_NAME('CSD','CSD_NOT_SPLIT_JOB_INCOMPLETED');
976: FND_MSG_PUB.ADD;
977: end if;
978:
979: if (x_return_status <> FND_API.G_RET_STS_SUCCESS) then
980: FND_MSG_PUB.Count_And_Get
981: ( p_count => x_msg_count,
982: p_data => x_msg_data
983: );
986:
987: FOR S in c_ship_product_txn_line_info(p_repair_line_id)
988: loop
989: if S.interface_to_om_flag = 'Y' then
990: x_return_status := FND_API.G_RET_STS_ERROR;
991: FND_MESSAGE.SET_NAME('CSD','CSD_NOT_SPLIT_LINE_INTERFACED');
992: FND_MSG_PUB.ADD;
993: end if;
994: end loop;
1001: p_data => x_msg_data
1002: );
1003:
1004: EXCEPTION
1005: WHEN FND_API.G_EXC_ERROR THEN
1006: ROLLBACK TO CSD_SPLIT_PKG;
1007: x_return_status := FND_API.G_RET_STS_ERROR;
1008: FND_MSG_PUB.Count_And_Get
1009: ( p_count => x_msg_count,
1003:
1004: EXCEPTION
1005: WHEN FND_API.G_EXC_ERROR THEN
1006: ROLLBACK TO CSD_SPLIT_PKG;
1007: x_return_status := FND_API.G_RET_STS_ERROR;
1008: FND_MSG_PUB.Count_And_Get
1009: ( p_count => x_msg_count,
1010: p_data => x_msg_data
1011: );
1013: FND_LOG.STRING(FND_LOG.LEVEL_ERROR,
1014: 'CSD.PLSQL.CSD_SPLIT_PKG.Is_Split_Repair_Order_Allow',
1015: 'EXC_ERROR ['||x_msg_data||']');
1016: END IF;
1017: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1018: ROLLBACK TO CSD_SPLIT_PKG;
1019: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1020: FND_MSG_PUB.Count_And_Get
1021: ( p_count => x_msg_count,
1015: 'EXC_ERROR ['||x_msg_data||']');
1016: END IF;
1017: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1018: ROLLBACK TO CSD_SPLIT_PKG;
1019: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1020: FND_MSG_PUB.Count_And_Get
1021: ( p_count => x_msg_count,
1022: p_data => x_msg_data
1023: );
1027: 'EXC_UNEXPECTED_ERROR ['||x_msg_data||']');
1028: END IF;
1029: WHEN OTHERS THEN
1030: ROLLBACK TO CSD_SPLIT_PKG;
1031: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1032: IF FND_MSG_PUB.Check_Msg_Level
1033: (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1034: THEN
1035: FND_MSG_PUB.Add_Exc_Msg
1083: Begin
1084:
1085:
1086: -- Initialize message list if p_init_msg_list is set to TRUE.
1087: IF FND_API.to_Boolean( p_init_msg_list ) THEN
1088: FND_MSG_PUB.initialize;
1089: END IF;
1090:
1091: -- Initialize API return status to success
1088: FND_MSG_PUB.initialize;
1089: END IF;
1090:
1091: -- Initialize API return status to success
1092: x_return_status := FND_API.G_RET_STS_SUCCESS;
1093:
1094: --
1095: -- API body
1096: --
1108: x_return_status => x_return_status,
1109: x_msg_count => x_msg_count,
1110: x_msg_data => x_msg_data
1111: );
1112: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1113: IF(l_statement_level >= l_debug_level) THEN
1114: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_REPAIRS_PVT.Create_Repair_Order','failed');
1115: END IF;
1116: RAISE FND_API.G_EXC_ERROR;
1112: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1113: IF(l_statement_level >= l_debug_level) THEN
1114: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_REPAIRS_PVT.Create_Repair_Order','failed');
1115: END IF;
1116: RAISE FND_API.G_EXC_ERROR;
1117: END IF;
1118:
1119: x_repair_line_id := l_repair_line_id;
1120:
1126: p_product_txn_id => P.product_transaction_id,
1127: x_product_txn_Rec => l_original_product_txn_rec,
1128: x_return_status => x_return_status
1129: );
1130: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1131: IF(l_statement_level >= l_debug_level) THEN
1132: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_SPLIT_PKG.Build_Product_TXN_Record','failed');
1133: END IF;
1134: RAISE FND_API.G_EXC_ERROR;
1130: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1131: IF(l_statement_level >= l_debug_level) THEN
1132: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_SPLIT_PKG.Build_Product_TXN_Record','failed');
1133: END IF;
1134: RAISE FND_API.G_EXC_ERROR;
1135: END IF;
1136:
1137:
1138: l_original_product_txn_rec.PRODUCT_TRANSACTION_ID := FND_API.G_MISS_NUM;
1134: RAISE FND_API.G_EXC_ERROR;
1135: END IF;
1136:
1137:
1138: l_original_product_txn_rec.PRODUCT_TRANSACTION_ID := FND_API.G_MISS_NUM;
1139: CSD_PRODUCT_TRANSACTIONS_PKG.INSERT_ROW
1140: ( px_PRODUCT_TRANSACTION_ID => l_original_product_txn_rec.PRODUCT_TRANSACTION_ID,
1141: p_REPAIR_LINE_ID => l_repair_line_id,
1142: p_ESTIMATE_DETAIL_ID => l_original_product_txn_rec.estimate_detail_id,
1203: ( p_repair_line_id => l_repair_line_id,
1204: x_prod_txn_tbl => x_ship_prod_txn_tbl,
1205: x_return_status => x_return_status );
1206:
1207: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1208: IF(l_statement_level >= l_debug_level) THEN
1209: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_SPLIT_PKG.Build_Ship_Prod_Txn_Tbl','failed');
1210: END IF;
1211: RAISE FND_API.G_EXC_ERROR;
1207: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1208: IF(l_statement_level >= l_debug_level) THEN
1209: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_SPLIT_PKG.Build_Ship_Prod_Txn_Tbl','failed');
1210: END IF;
1211: RAISE FND_API.G_EXC_ERROR;
1212: END IF;
1213:
1214:
1215: IF x_ship_prod_txn_tbl.COUNT > 0 THEN
1217: LOOP
1218:
1219: CSD_PROCESS_PVT.CREATE_PRODUCT_TXN
1220: (p_api_version => 1.0 ,
1221: p_commit => fnd_api.g_false,
1222: p_init_msg_list => 'F',
1223: p_validation_level => fnd_api.g_valid_level_full,
1224: x_product_txn_rec => x_ship_prod_txn_tbl(i),
1225: x_return_status => x_return_status,
1219: CSD_PROCESS_PVT.CREATE_PRODUCT_TXN
1220: (p_api_version => 1.0 ,
1221: p_commit => fnd_api.g_false,
1222: p_init_msg_list => 'F',
1223: p_validation_level => fnd_api.g_valid_level_full,
1224: x_product_txn_rec => x_ship_prod_txn_tbl(i),
1225: x_return_status => x_return_status,
1226: x_msg_count => x_msg_count,
1227: x_msg_data => x_msg_data );
1225: x_return_status => x_return_status,
1226: x_msg_count => x_msg_count,
1227: x_msg_data => x_msg_data );
1228:
1229: IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
1230: IF(l_statement_level >= l_debug_level) THEN
1231: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_PROCESS_UTIL.CREATE_PRODUCT_TXN','failed');
1232: END IF;
1233: RAISE FND_API.G_EXC_ERROR;
1229: IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
1230: IF(l_statement_level >= l_debug_level) THEN
1231: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_PROCESS_UTIL.CREATE_PRODUCT_TXN','failed');
1232: END IF;
1233: RAISE FND_API.G_EXC_ERROR;
1234: END IF;
1235: END LOOP;
1236: END IF;
1237:
1245: x_msg_data => x_msg_data,
1246: p_original_repair_line_id => p_original_repair_line_id,
1247: p_new_repair_line_id => l_repair_line_id);
1248:
1249: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1250: IF(l_statement_level >= l_debug_level) THEN
1251: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_SPLIT_PKG.Copy_Repair_History','failed');
1252: END IF;
1253: RAISE FND_API.G_EXC_ERROR;
1249: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1250: IF(l_statement_level >= l_debug_level) THEN
1251: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_SPLIT_PKG.Copy_Repair_History','failed');
1252: END IF;
1253: RAISE FND_API.G_EXC_ERROR;
1254: END IF;
1255:
1256: Copy_JTF_Notes (
1257: p_api_version => 1.0,
1263: x_msg_data => x_msg_data,
1264: p_original_repair_line_id => p_original_repair_line_id,
1265: p_new_repair_line_id => l_repair_line_id);
1266:
1267: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1268: IF(l_statement_level >= l_debug_level) THEN
1269: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_SPLIT_PKG.Copy_JTF_Notes','failed');
1270: END IF;
1271: RAISE FND_API.G_EXC_ERROR;
1267: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1268: IF(l_statement_level >= l_debug_level) THEN
1269: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_SPLIT_PKG.Copy_JTF_Notes','failed');
1270: END IF;
1271: RAISE FND_API.G_EXC_ERROR;
1272: END IF;
1273:
1274: If (p_copy_attachment = 'Y') THEN
1275: CSD_REPAIRS_PVT.Copy_Attachments
1282: x_return_status => x_return_status,
1283: x_msg_count => x_msg_count,
1284: x_msg_data => x_msg_data);
1285:
1286: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1287: IF(l_statement_level >= l_debug_level) THEN
1288: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_REPAIRS_PVT.Copy_Attachments','failed');
1289: END IF;
1290: RAISE FND_API.G_EXC_ERROR;
1286: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1287: IF(l_statement_level >= l_debug_level) THEN
1288: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_REPAIRS_PVT.Copy_Attachments','failed');
1289: END IF;
1290: RAISE FND_API.G_EXC_ERROR;
1291: END IF;
1292: END if;
1293:
1294: -- End of API body
1293:
1294: -- End of API body
1295: --
1296: -- Standard check of p_commit.
1297: IF FND_API.To_Boolean( p_commit ) THEN
1298: COMMIT WORK;
1299: END IF;
1300:
1301: -- Standard call to get message count and if count is 1, get message info.
1304: p_data => x_msg_data
1305: );
1306:
1307: EXCEPTION
1308: WHEN FND_API.G_EXC_ERROR THEN
1309: ROLLBACK TO CSD_SPLIT_PKG;
1310: x_return_status := FND_API.G_RET_STS_ERROR;
1311: FND_MSG_PUB.Count_And_Get
1312: ( p_count => x_msg_count,
1306:
1307: EXCEPTION
1308: WHEN FND_API.G_EXC_ERROR THEN
1309: ROLLBACK TO CSD_SPLIT_PKG;
1310: x_return_status := FND_API.G_RET_STS_ERROR;
1311: FND_MSG_PUB.Count_And_Get
1312: ( p_count => x_msg_count,
1313: p_data => x_msg_data
1314: );
1316: FND_LOG.STRING(FND_LOG.LEVEL_ERROR,
1317: 'CSD.PLSQL.CSD_SPLIT_PKG.Create_New_Repair_Order',
1318: 'EXC_ERROR ['||x_msg_data||']');
1319: END IF;
1320: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1321: ROLLBACK TO CSD_SPLIT_PKG;
1322: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1323: FND_MSG_PUB.Count_And_Get
1324: ( p_count => x_msg_count,
1318: 'EXC_ERROR ['||x_msg_data||']');
1319: END IF;
1320: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1321: ROLLBACK TO CSD_SPLIT_PKG;
1322: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1323: FND_MSG_PUB.Count_And_Get
1324: ( p_count => x_msg_count,
1325: p_data => x_msg_data
1326: );
1330: 'EXC_UNEXPECTED_ERROR ['||x_msg_data||']');
1331: END IF;
1332: WHEN OTHERS THEN
1333: ROLLBACK TO CSD_SPLIT_PKG;
1334: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1335: IF FND_MSG_PUB.Check_Msg_Level
1336: (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1337: THEN
1338: FND_MSG_PUB.Add_Exc_Msg
1382: Begin
1383:
1384:
1385: -- Initialize message list if p_init_msg_list is set to TRUE.
1386: IF FND_API.to_Boolean( p_init_msg_list ) THEN
1387: FND_MSG_PUB.initialize;
1388: END IF;
1389:
1390: -- Initialize API return status to success
1387: FND_MSG_PUB.initialize;
1388: END IF;
1389:
1390: -- Initialize API return status to success
1391: x_return_status := FND_API.G_RET_STS_SUCCESS;
1392:
1393: --
1394: -- API body
1395: --
1403: p_original_repair_history_id => C.repair_history_id,
1404: x_repair_history_Rec => l_repair_history_rec,
1405: x_return_status => x_return_status
1406: );
1407: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1408: IF(l_statement_level >= l_debug_level) THEN
1409: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_SPLIT_PKG.Build_Repair_History_Record','failed');
1410: END IF;
1411: RAISE FND_API.G_EXC_ERROR;
1407: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1408: IF(l_statement_level >= l_debug_level) THEN
1409: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_SPLIT_PKG.Build_Repair_History_Record','failed');
1410: END IF;
1411: RAISE FND_API.G_EXC_ERROR;
1412: END IF;
1413:
1414:
1415: l_repair_history_rec.repair_line_id := p_new_repair_line_id;
1424: X_Return_Status => x_return_status,
1425: X_Msg_Count => x_msg_count,
1426: X_Msg_Data => x_msg_data
1427: );
1428: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1429: IF(l_statement_level >= l_debug_level) THEN
1430: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_REPAIR_HISTORY_PVT.Create_repair_history','failed');
1431: END IF;
1432: RAISE FND_API.G_EXC_ERROR;
1428: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1429: IF(l_statement_level >= l_debug_level) THEN
1430: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.CSD_REPAIR_HISTORY_PVT.Create_repair_history','failed');
1431: END IF;
1432: RAISE FND_API.G_EXC_ERROR;
1433: END IF;
1434:
1435: end loop;
1436: IF c_repair_history_id%isopen then
1440:
1441: -- End of API body
1442: --
1443: -- Standard check of p_commit.
1444: IF FND_API.To_Boolean( p_commit ) THEN
1445: COMMIT WORK;
1446: END IF;
1447:
1448: -- Standard call to get message count and if count is 1, get message info.
1450: ( p_count => x_msg_count,
1451: p_data => x_msg_data
1452: );
1453: EXCEPTION
1454: WHEN FND_API.G_EXC_ERROR THEN
1455: ROLLBACK TO CSD_SPLIT_PKG;
1456: x_return_status := FND_API.G_RET_STS_ERROR;
1457: FND_MSG_PUB.Count_And_Get
1458: ( p_count => x_msg_count,
1452: );
1453: EXCEPTION
1454: WHEN FND_API.G_EXC_ERROR THEN
1455: ROLLBACK TO CSD_SPLIT_PKG;
1456: x_return_status := FND_API.G_RET_STS_ERROR;
1457: FND_MSG_PUB.Count_And_Get
1458: ( p_count => x_msg_count,
1459: p_data => x_msg_data
1460: );
1462: FND_LOG.STRING(FND_LOG.LEVEL_ERROR,
1463: 'CSD.PLSQL.CSD_SPLIT_PKG.Copy_Repair_History',
1464: 'EXC_ERROR ['||x_msg_data||']');
1465: END IF;
1466: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1467: ROLLBACK TO CSD_SPLIT_PKG;
1468: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1469: FND_MSG_PUB.Count_And_Get
1470: ( p_count => x_msg_count,
1464: 'EXC_ERROR ['||x_msg_data||']');
1465: END IF;
1466: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1467: ROLLBACK TO CSD_SPLIT_PKG;
1468: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1469: FND_MSG_PUB.Count_And_Get
1470: ( p_count => x_msg_count,
1471: p_data => x_msg_data
1472: );
1476: 'EXC_UNEXPECTED_ERROR ['||x_msg_data||']');
1477: END IF;
1478: WHEN OTHERS THEN
1479: ROLLBACK TO CSD_SPLIT_PKG;
1480: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1481: IF FND_MSG_PUB.Check_Msg_Level
1482: (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1483: THEN
1484: FND_MSG_PUB.Add_Exc_Msg
1522:
1523: begin
1524:
1525: -- Initialize API return status to success
1526: x_return_status := FND_API.G_RET_STS_SUCCESS;
1527:
1528: OPEN c_repair_history_record(p_original_repair_history_id);
1529: FETCH c_repair_history_record INTO
1530: x_repair_history_Rec.request_id, x_repair_history_Rec.program_id, x_repair_history_Rec.program_application_id,
1545: IF c_repair_history_record%notfound then
1546: FND_MESSAGE.SET_NAME('CSD','CSD_API_INV_REP_LINE_ID');
1547: FND_MESSAGE.SET_TOKEN('p_original_repair_history_id',p_original_repair_history_id);
1548: FND_MSG_PUB.ADD;
1549: RAISE FND_API.G_EXC_ERROR;
1550: END IF;
1551:
1552: IF c_repair_history_record%isopen then
1553: CLOSE c_repair_history_record;
1595: Begin
1596:
1597:
1598: -- Initialize message list if p_init_msg_list is set to TRUE.
1599: IF FND_API.to_Boolean( p_init_msg_list ) THEN
1600: FND_MSG_PUB.initialize;
1601: END IF;
1602:
1603: -- Initialize API return status to success
1600: FND_MSG_PUB.initialize;
1601: END IF;
1602:
1603: -- Initialize API return status to success
1604: x_return_status := FND_API.G_RET_STS_SUCCESS;
1605:
1606: --
1607: -- API body
1608: --
1650: , p_context => C.CONTEXT
1651: , p_jtf_note_contexts_tab => l_jtf_note_contexts_tab
1652: );
1653:
1654: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1655: IF(l_statement_level >= l_debug_level) THEN
1656: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.JTF_NOTES_PUB.create_note','failed');
1657: END IF;
1658: RAISE FND_API.G_EXC_ERROR;
1654: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1655: IF(l_statement_level >= l_debug_level) THEN
1656: FND_LOG.STRING(l_statement_level,'CSD.PLSQL.JTF_NOTES_PUB.create_note','failed');
1657: END IF;
1658: RAISE FND_API.G_EXC_ERROR;
1659: END IF;
1660:
1661: end loop;
1662: IF c_jtf_note_id%isopen then
1666:
1667: -- End of API body
1668: --
1669: -- Standard check of p_commit.
1670: IF FND_API.To_Boolean( p_commit ) THEN
1671: COMMIT WORK;
1672: END IF;
1673:
1674: -- Standard call to get message count and if count is 1, get message info.
1677: p_data => x_msg_data
1678: );
1679:
1680: EXCEPTION
1681: WHEN FND_API.G_EXC_ERROR THEN
1682: ROLLBACK TO CSD_SPLIT_PKG;
1683: x_return_status := FND_API.G_RET_STS_ERROR;
1684: FND_MSG_PUB.Count_And_Get
1685: ( p_count => x_msg_count,
1679:
1680: EXCEPTION
1681: WHEN FND_API.G_EXC_ERROR THEN
1682: ROLLBACK TO CSD_SPLIT_PKG;
1683: x_return_status := FND_API.G_RET_STS_ERROR;
1684: FND_MSG_PUB.Count_And_Get
1685: ( p_count => x_msg_count,
1686: p_data => x_msg_data
1687: );
1689: FND_LOG.STRING(FND_LOG.LEVEL_ERROR,
1690: 'CSD.PLSQL.CSD_SPLIT_PKG.Copy_JTF_Notes',
1691: 'EXC_ERROR ['||x_msg_data||']');
1692: END IF;
1693: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1694: ROLLBACK TO CSD_SPLIT_PKG;
1695: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1696: FND_MSG_PUB.Count_And_Get
1697: ( p_count => x_msg_count,
1691: 'EXC_ERROR ['||x_msg_data||']');
1692: END IF;
1693: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1694: ROLLBACK TO CSD_SPLIT_PKG;
1695: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1696: FND_MSG_PUB.Count_And_Get
1697: ( p_count => x_msg_count,
1698: p_data => x_msg_data
1699: );
1703: 'EXC_UNEXPECTED_ERROR ['||x_msg_data||']');
1704: END IF;
1705: WHEN OTHERS THEN
1706: ROLLBACK TO CSD_SPLIT_PKG;
1707: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1708: IF FND_MSG_PUB.Check_Msg_Level
1709: (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1710: THEN
1711: FND_MSG_PUB.Add_Exc_Msg
1799: and organization_id = p_org_id;
1800:
1801: BEGIN
1802:
1803: x_return_status := FND_API.G_RET_STS_SUCCESS;
1804:
1805: --taklam
1806: -- return;
1807:
1837: IF repair_line_dtls%notfound then
1838: FND_MESSAGE.SET_NAME('CSD','CSD_API_INV_REP_LINE_ID');
1839: FND_MESSAGE.SET_TOKEN('REPAIR_LINE_ID',p_repair_line_id);
1840: FND_MSG_PUB.ADD;
1841: RAISE FND_API.G_EXC_ERROR;
1842: END IF;
1843:
1844: IF repair_line_dtls%isopen then
1845: CLOSE repair_line_dtls;
1867: x_prod_txn_tbl(1).business_process_id := l_bus_process_id ;
1868: x_prod_txn_tbl(1).inventory_item_id := l_inv_item_id ;
1869: x_prod_txn_tbl(1).unit_of_measure_code := l_unit_of_measure ;
1870: x_prod_txn_tbl(1).quantity := l_quantity ;
1871: x_prod_txn_tbl(1).lot_number := FND_API.G_MISS_CHAR;
1872: x_prod_txn_tbl(1).price_list_id := l_price_list_id ;
1873: -- x_prod_txn_tbl(1).contract_id := l_contract_id ;
1874: x_prod_txn_tbl(1).sub_inventory := FND_API.G_MISS_CHAR;
1875: x_prod_txn_tbl(1).no_charge_flag := csd_process_util.get_no_chg_flag(l_cps_txn_billing_type_id);
1870: x_prod_txn_tbl(1).quantity := l_quantity ;
1871: x_prod_txn_tbl(1).lot_number := FND_API.G_MISS_CHAR;
1872: x_prod_txn_tbl(1).price_list_id := l_price_list_id ;
1873: -- x_prod_txn_tbl(1).contract_id := l_contract_id ;
1874: x_prod_txn_tbl(1).sub_inventory := FND_API.G_MISS_CHAR;
1875: x_prod_txn_tbl(1).no_charge_flag := csd_process_util.get_no_chg_flag(l_cps_txn_billing_type_id);
1876: x_prod_txn_tbl(1).interface_to_om_flag := 'N' ;
1877: x_prod_txn_tbl(1).book_sales_order_flag := 'N' ;
1878: x_prod_txn_tbl(1).release_sales_order_flag := 'N' ;
1893: x_prod_txn_tbl(1).po_number := l_po_number; -- swai bug fix 4535829
1894:
1895: END IF;
1896: EXCEPTION
1897: WHEN FND_API.G_EXC_ERROR THEN
1898: x_return_status := FND_API.G_RET_STS_ERROR ;
1899: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1900: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1901: WHEN OTHERS THEN
1894:
1895: END IF;
1896: EXCEPTION
1897: WHEN FND_API.G_EXC_ERROR THEN
1898: x_return_status := FND_API.G_RET_STS_ERROR ;
1899: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1900: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1901: WHEN OTHERS THEN
1902: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1895: END IF;
1896: EXCEPTION
1897: WHEN FND_API.G_EXC_ERROR THEN
1898: x_return_status := FND_API.G_RET_STS_ERROR ;
1899: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1900: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1901: WHEN OTHERS THEN
1902: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1903: END build_ship_prod_txn_tbl;
1896: EXCEPTION
1897: WHEN FND_API.G_EXC_ERROR THEN
1898: x_return_status := FND_API.G_RET_STS_ERROR ;
1899: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1900: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1901: WHEN OTHERS THEN
1902: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1903: END build_ship_prod_txn_tbl;
1904:
1898: x_return_status := FND_API.G_RET_STS_ERROR ;
1899: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1900: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1901: WHEN OTHERS THEN
1902: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1903: END build_ship_prod_txn_tbl;
1904:
1905:
1906: End CSD_SPLIT_PKG;