[Home] [Help]
PACKAGE BODY: APPS.CSD_REPAIR_ACTUALS_PVT
Source
1 PACKAGE BODY CSD_REPAIR_ACTUALS_PVT as
2 /* $Header: csdvactb.pls 120.1 2008/02/09 01:02:32 takwong ship $ csdvactb.pls*/
3
4 -- ---------------------------------------------------------
5 -- Define global variables
6 -- ---------------------------------------------------------
7 G_FILE_NAME CONSTANT VARCHAR2(12) := 'csdvactb.pls';
8
9 -- Global variable for storing the debug level
10 G_debug_level number := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
11
12 /*--------------------------------------------------------------------*/
13 /* procedure name: CREATE_REPAIR_ACTUALS */
14 /* description : procedure used to Create Repair Actuals */
15 /* */
16 /* */
17 /* */
18 /* Called from : Depot Repair Actuals UI */
19 /* Input Parm : */
20 /* p_api_version NUMBER Req Api Version number */
21 /* p_init_msg_list VARCHAR2 Opt Initialize message stack */
22 /* p_commit VARCHAR2 Opt Commits in API */
23 /* p_validation_level NUMBER Opt validation steps */
24 /* px_CSD_REPAIR_ACTUALS_REC REC Req Actuals Record */
25 /* Output Parm : */
26 /* x_return_status VARCHAR2 Return status after the call. */
27 /* x_msg_count NUMBER Number of messages in stack */
28 /* x_msg_data VARCHAR2 Mesg. text if x_msg_count >= 1 */
29 /* Change Hist : */
30 /* 08/11/03 travikan Initial Creation. */
31 /* */
32 /* */
33 /* */
34 /*--------------------------------------------------------------------*/
35 PROCEDURE CREATE_REPAIR_ACTUALS(
36 P_Api_Version IN NUMBER,
37 P_Commit IN VARCHAR2,
38 P_Init_Msg_List IN VARCHAR2,
39 p_validation_level IN NUMBER,
40 px_CSD_REPAIR_ACTUALS_REC IN OUT NOCOPY CSD_REPAIR_ACTUALS_REC_TYPE,
41 X_Return_Status OUT NOCOPY VARCHAR2,
42 X_Msg_Count OUT NOCOPY NUMBER,
43 X_Msg_Data OUT NOCOPY VARCHAR2
44 )
45
46 IS
47 -- Variables used in FND Log
48 l_stat_level number := FND_LOG.LEVEL_STATEMENT;
49 l_proc_level number := FND_LOG.LEVEL_PROCEDURE;
50 l_event_level number := FND_LOG.LEVEL_EVENT;
51 l_excep_level number := FND_LOG.LEVEL_EXCEPTION;
52 l_error_level number := FND_LOG.LEVEL_ERROR;
53 l_unexp_level number := FND_LOG.LEVEL_UNEXPECTED;
54 l_mod_name varchar2(2000) := 'csd.plsql.CSD_REPAIR_ACTUALS_PVT.CREATE_REPAIR_ACTUALS';
55
56 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_REPAIR_ACTUALS';
57 l_api_version CONSTANT NUMBER := 1.0;
58 l_msg_count NUMBER;
59 l_msg_data VARCHAR2(100);
60 l_msg_index NUMBER;
61 l_dummy VARCHAR2(1);
62 l_incident_id NUMBER := NULL;
63 l_api_return_status VARCHAR2(3);
64
65 l_act_count NUMBER;
66
67 BEGIN
68 -- Standard Start of API savepoint
69 SAVEPOINT CREATE_REPAIR_ACTUALS;
70
71 -- Standard call to check for call compatibility.
72 IF NOT FND_API.Compatible_API_Call ( l_api_version,
73 p_api_version,
74 l_api_name,
75 G_PKG_NAME)
76 THEN
77 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
78 END IF;
79
80 -- Initialize message list if p_init_msg_list is set to TRUE.
81 IF FND_API.to_Boolean( p_init_msg_list ) THEN
82 FND_MSG_PUB.initialize;
83 END IF;
84
85 -- Initialize API return status to success
86 x_return_status := FND_API.G_RET_STS_SUCCESS;
87
88 -- Api body starts
89 IF ( Fnd_Log.Level_Statement >= G_debug_level) THEN
90 FND_LOG.STRING(Fnd_Log.Level_Statement,l_mod_name,'At the Beginning of create_repair_actuals');
91 END IF;
92
93 -- Dump the in parameters in the log file
94 -- if the debug level > 5
95 -- If fnd_profile.value('CSD_DEBUG_LEVEL') > 5 then
96 -- if (g_debug > 5) then
97 -- csd_gen_utility_pvt.dump_actuals_rec
98 -- ( p_CSD_REPAIR_ACTUALS_REC => px_CSD_REPAIR_ACTUALS_REC);
99 -- end if;
100
101 IF ( Fnd_Log.Level_Statement >= G_debug_level) THEN
102 FND_LOG.STRING(Fnd_Log.Level_Statement,l_mod_name,'Begin Check reqd parameter');
103 END IF;
104
105 -- Check the required parameter
106 CSD_PROCESS_UTIL.Check_Reqd_Param
107 ( p_param_value => px_CSD_REPAIR_ACTUALS_REC.repair_line_id,
108 p_param_name => 'REPAIR_LINE_ID',
109 p_api_name => l_api_name);
110
111 IF ( Fnd_Log.Level_Statement >= G_debug_level) THEN
112 FND_LOG.STRING(Fnd_Log.Level_Statement,l_mod_name,'End Check reqd parameter');
113 FND_LOG.STRING(Fnd_Log.Level_Statement,l_mod_name,'Begin Validate Repair Line id');
114 END IF;
115
116 -- Validate the repair line ID
117 IF NOT( CSD_PROCESS_UTIL.Validate_rep_line_id
118 ( p_repair_line_id => px_CSD_REPAIR_ACTUALS_REC.repair_line_id )) THEN
119 RAISE FND_API.G_EXC_ERROR;
120 END IF;
121
122 IF ( Fnd_Log.Level_Statement >= G_debug_level) THEN
123 FND_LOG.STRING(Fnd_Log.Level_Statement,l_mod_name,'End Validate Repair Line id');
124 FND_LOG.STRING(Fnd_Log.Level_Statement,l_mod_name,'Check if there is only one Actual Header per Repair Order');
125 END IF;
126
127 Begin
128 select count(*)
129 into l_act_count
130 from csd_repair_actuals
131 where repair_line_id = px_CSD_REPAIR_ACTUALS_REC.repair_line_id;
132 Exception
133 when others then
134 IF ( Fnd_Log.Level_Exception >= G_debug_level) THEN
135 FND_LOG.STRING(Fnd_Log.Level_Exception,l_mod_name,'Others exception error :'||SubStr('Error '||TO_CHAR(SQLCODE)||': '||SQLERRM, 1,255));
136 END IF;
137 End;
138
139 IF l_act_count > 0 then
140 IF ( Fnd_Log.Level_Exception >= G_debug_level) THEN
141 FND_LOG.STRING(Fnd_Log.Level_Exception,l_mod_name,'Actuals already exists for the repair line Id: '||px_CSD_REPAIR_ACTUALS_REC.repair_line_id);
142 END IF;
143
144 FND_MESSAGE.SET_NAME('CSD','CSD_API_ACTUALS_EXISTS');
145 FND_MESSAGE.SET_TOKEN('REPAIR_LINE_ID',px_CSD_REPAIR_ACTUALS_REC.repair_line_id);
146 FND_MSG_PUB.ADD;
147
148 IF (Fnd_Log.Level_Error >= Fnd_Log.G_Current_Runtime_Level) THEN
149 FND_LOG.MESSAGE(Fnd_Log.Level_Error,l_mod_name, FALSE);
150 END IF;
151
152 RAISE FND_API.G_EXC_ERROR;
153 End IF;
154
155 -- Assigning object version number
156 px_CSD_REPAIR_ACTUALS_REC.OBJECT_VERSION_NUMBER := 1;
157
158 --
159 -- API body
160 --
161 IF ( Fnd_Log.Level_Procedure >= G_debug_level) THEN
162 FND_LOG.STRING(Fnd_Log.Level_Procedure,l_mod_name,'Call to CSD_REPAIR_ACTUALS_PKG.Insert_Row');
163 END IF;
164
165 BEGIN
166
167 -- Invoke table handler(CSD_REPAIR_ACTUALS_PKG.Insert_Row)
168 CSD_REPAIR_ACTUALS_PKG.Insert_Row(
169 px_REPAIR_ACTUAL_ID => px_CSD_REPAIR_ACTUALS_REC.REPAIR_ACTUAL_ID
170 ,p_OBJECT_VERSION_NUMBER => px_CSD_REPAIR_ACTUALS_REC.OBJECT_VERSION_NUMBER
171 ,p_REPAIR_LINE_ID => px_CSD_REPAIR_ACTUALS_REC.REPAIR_LINE_ID
172 ,p_CREATED_BY => FND_GLOBAL.USER_ID
173 ,p_CREATION_DATE => SYSDATE
174 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
175 ,p_LAST_UPDATE_DATE => SYSDATE
176 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
177 ,p_ATTRIBUTE_CATEGORY => px_CSD_REPAIR_ACTUALS_REC.ATTRIBUTE_CATEGORY
178 ,p_ATTRIBUTE1 => px_CSD_REPAIR_ACTUALS_REC.ATTRIBUTE1
179 ,p_ATTRIBUTE2 => px_CSD_REPAIR_ACTUALS_REC.ATTRIBUTE2
180 ,p_ATTRIBUTE3 => px_CSD_REPAIR_ACTUALS_REC.ATTRIBUTE3
181 ,p_ATTRIBUTE4 => px_CSD_REPAIR_ACTUALS_REC.ATTRIBUTE4
182 ,p_ATTRIBUTE5 => px_CSD_REPAIR_ACTUALS_REC.ATTRIBUTE5
183 ,p_ATTRIBUTE6 => px_CSD_REPAIR_ACTUALS_REC.ATTRIBUTE6
184 ,p_ATTRIBUTE7 => px_CSD_REPAIR_ACTUALS_REC.ATTRIBUTE7
185 ,p_ATTRIBUTE8 => px_CSD_REPAIR_ACTUALS_REC.ATTRIBUTE8
186 ,p_ATTRIBUTE9 => px_CSD_REPAIR_ACTUALS_REC.ATTRIBUTE9
187 ,p_ATTRIBUTE10 => px_CSD_REPAIR_ACTUALS_REC.ATTRIBUTE10
188 ,p_ATTRIBUTE11 => px_CSD_REPAIR_ACTUALS_REC.ATTRIBUTE11
189 ,p_ATTRIBUTE12 => px_CSD_REPAIR_ACTUALS_REC.ATTRIBUTE12
190 ,p_ATTRIBUTE13 => px_CSD_REPAIR_ACTUALS_REC.ATTRIBUTE13
191 ,p_ATTRIBUTE14 => px_CSD_REPAIR_ACTUALS_REC.ATTRIBUTE14
192 ,p_ATTRIBUTE15 => px_CSD_REPAIR_ACTUALS_REC.ATTRIBUTE15
193 ,p_BILL_TO_ACCOUNT_ID => px_CSD_REPAIR_ACTUALS_REC.BILL_TO_ACCOUNT_ID
194 ,p_BILL_TO_PARTY_ID => px_CSD_REPAIR_ACTUALS_REC.BILL_TO_PARTY_ID
195 ,p_BILL_TO_PARTY_SITE_ID => px_CSD_REPAIR_ACTUALS_REC.BILL_TO_PARTY_SITE_ID
196 );
197
198 EXCEPTION
199 WHEN OTHERS THEN
200 IF ( Fnd_Log.Level_Exception >= G_debug_level) THEN
201 FND_LOG.STRING(Fnd_Log.Level_Exception,l_mod_name,'Others exception n CSD_REPAIR_ACTUALS_PKG.Insert_Row Call :'||SubStr('Error '||TO_CHAR(SQLCODE)||': '||SQLERRM, 1,255));
202 END IF;
203 x_return_status := FND_API.G_RET_STS_ERROR;
204 END;
205
206 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
207 RAISE FND_API.G_EXC_ERROR;
208 END IF;
209
210 --
211 -- End of API body
212 --
213
214 -- Standard check of p_commit.
215 IF FND_API.To_Boolean( p_commit ) THEN
216 COMMIT WORK;
217 END IF;
218
219 -- Standard call to get message count and IF count is get message info.
220 FND_MSG_PUB.Count_And_Get
221 (p_count => x_msg_count,
222 p_data => x_msg_data );
223 EXCEPTION
224 WHEN FND_API.G_EXC_ERROR THEN
225 IF ( Fnd_Log.Level_Exception >= G_debug_level) THEN
226 FND_LOG.STRING(Fnd_Log.Level_Exception,l_mod_name,'In FND_API.G_EXC_ERROR exception');
227 END IF;
228 x_return_status := FND_API.G_RET_STS_ERROR ;
229 ROLLBACK TO CREATE_REPAIR_ACTUALS;
230 FND_MSG_PUB.Count_And_Get
231 (p_count => x_msg_count,
232 p_data => x_msg_data );
233 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
234 IF ( Fnd_Log.Level_Exception >= G_debug_level) THEN
235 FND_LOG.STRING(Fnd_Log.Level_Exception,l_mod_name,'In FND_API.G_EXC_UNEXPECTED_ERROR exception ');
236 END IF;
237 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
238 ROLLBACK TO CREATE_REPAIR_ACTUALS;
239 FND_MSG_PUB.Count_And_Get
240 ( p_count => x_msg_count,
241 p_data => x_msg_data );
242 WHEN OTHERS THEN
243 IF ( Fnd_Log.Level_Exception >= G_debug_level) THEN
244 FND_LOG.STRING(Fnd_Log.Level_Exception,l_mod_name,'In OTHERS exception');
245 FND_LOG.STRING(Fnd_Log.Level_Exception,l_mod_name,'Sql Err Msg :'||SQLERRM );
246 END IF;
247 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
248 ROLLBACK TO CREATE_REPAIR_ACTUALS;
249 IF FND_MSG_PUB.Check_Msg_Level
250 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
251 THEN
252 FND_MSG_PUB.Add_Exc_Msg
253 (G_PKG_NAME ,
254 l_api_name );
255 END IF;
256 FND_MSG_PUB.Count_And_Get
257 (p_count => x_msg_count,
258 p_data => x_msg_data );
259
260 End CREATE_REPAIR_ACTUALS;
261
262
263 /*--------------------------------------------------------------------*/
264 /* procedure name: UPDATE_REPAIR_ACTUALS */
265 /* description : procedure used to Update Repair Actuals */
266 /* */
267 /* */
268 /* */
269 /* Called from : Depot Repair Actuals UI */
270 /* Input Parm : */
271 /* p_api_version NUMBER Req Api Version number */
272 /* p_init_msg_list VARCHAR2 Opt Initialize message stack */
273 /* p_commit VARCHAR2 Opt Commits in API */
274 /* p_validation_level NUMBER Opt validation steps */
275 /* px_CSD_REPAIR_ACTUALS_REC REC Req Actuals Record */
276 /* Output Parm : */
277 /* x_return_status VARCHAR2 Return status after the call. */
278 /* x_msg_count NUMBER Number of messages in stack */
279 /* x_msg_data VARCHAR2 Mesg. text if x_msg_count >= 1 */
280 /* Change Hist : */
281 /* 08/11/03 travikan Initial Creation. */
282 /* */
283 /* */
284 /* */
285 /*--------------------------------------------------------------------*/
286 PROCEDURE UPDATE_REPAIR_ACTUALS(
287 P_Api_Version IN NUMBER,
288 P_Commit IN VARCHAR2,
289 P_Init_Msg_List IN VARCHAR2,
290 p_validation_level IN NUMBER,
291 px_CSD_REPAIR_ACTUALS_REC IN OUT NOCOPY CSD_REPAIR_ACTUALS_REC_TYPE,
292 X_Return_Status OUT NOCOPY VARCHAR2,
293 X_Msg_Count OUT NOCOPY NUMBER,
294 X_Msg_Data OUT NOCOPY VARCHAR2
295 )
296
297 IS
298 -- Variables used in FND Log
299 l_stat_level number := FND_LOG.LEVEL_STATEMENT;
300 l_proc_level number := FND_LOG.LEVEL_PROCEDURE;
301 l_event_level number := FND_LOG.LEVEL_EVENT;
302 l_excep_level number := FND_LOG.LEVEL_EXCEPTION;
303 l_error_level number := FND_LOG.LEVEL_ERROR;
304 l_unexp_level number := FND_LOG.LEVEL_UNEXPECTED;
305 l_mod_name varchar2(2000) := 'csd.plsql.CSD_REPAIR_ACTUALS_PVT.UPDATE_REPAIR_ACTUALS';
306
307 l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_REPAIR_ACTUALS';
308 l_api_version CONSTANT NUMBER := 1.0;
309 l_msg_count NUMBER;
310 l_msg_data VARCHAR2(100);
311 l_msg_index NUMBER;
312 l_api_return_status VARCHAR2(3);
313
314 l_actual_id NUMBER;
315 l_obj_ver_num NUMBER;
316
317 CURSOR repair_actual(p_actual_id IN NUMBER) IS
318 SELECT
319 a.repair_actual_id,
320 a.object_version_number
321 FROM csd_repair_actuals a,
322 csd_repairs b
323 WHERE a.repair_line_id = b.repair_line_id
324 and a.repair_actual_id = p_actual_id;
325
326 BEGIN
327 -- Standard Start of API savepoint
328 SAVEPOINT UPDATE_REPAIR_ACTUALS;
329
330 -- Standard call to check for call compatibility.
331 IF NOT FND_API.Compatible_API_Call ( l_api_version,
332 p_api_version,
333 l_api_name,
334 G_PKG_NAME)
335 THEN
336 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
337 END IF;
338
339 -- Initialize message list if p_init_msg_list is set to TRUE.
340 IF FND_API.to_Boolean( p_init_msg_list ) THEN
341 FND_MSG_PUB.initialize;
342 END IF;
343
344 -- Initialize API return status to success
345 x_return_status := FND_API.G_RET_STS_SUCCESS;
346
347 -- Api body starts
348 IF ( Fnd_Log.Level_Statement >= G_debug_level) THEN
349 FND_LOG.STRING(Fnd_Log.Level_Statement,l_mod_name,'At the Beginning of update_repair_actual_lines');
350 END IF;
351
352 IF ( Fnd_Log.Level_Statement >= G_debug_level) THEN
353 FND_LOG.STRING(Fnd_Log.Level_Statement,l_mod_name,'Begin Check reqd parameter');
354 END IF;
355
356 -- Check the required parameter
357 CSD_PROCESS_UTIL.Check_Reqd_Param
358 ( p_param_value => px_CSD_REPAIR_ACTUALS_REC.repair_actual_id,
359 p_param_name => 'REPAIR_ACTUAL_ID',
360 p_api_name => l_api_name);
361
362 IF ( Fnd_Log.Level_Statement >= G_debug_level) THEN
363 FND_LOG.STRING(Fnd_Log.Level_Statement,l_mod_name,'End Check reqd parameter');
364 FND_LOG.STRING(Fnd_Log.Level_Statement,l_mod_name,'Begin Validate Repair Line id');
365 END IF;
366
367 -- Validate the repair line ID
368 IF NOT( CSD_PROCESS_UTIL.Validate_rep_line_id
369 ( p_repair_line_id => px_CSD_REPAIR_ACTUALS_REC.repair_line_id )) THEN
370 RAISE FND_API.G_EXC_ERROR;
371 END IF;
372
373 IF ( Fnd_Log.Level_Statement >= G_debug_level) THEN
374 FND_LOG.STRING(Fnd_Log.Level_Statement,l_mod_name,'End Validate Repair Line id');
375 END IF;
376
377 IF NVL(px_CSD_REPAIR_ACTUALS_REC.repair_actual_id,FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
378
379 OPEN repair_actual(px_CSD_REPAIR_ACTUALS_REC.repair_actual_id);
380 FETCH repair_actual
381 INTO l_actual_id,
382 l_obj_ver_num;
383
384 IF repair_actual%NOTFOUND THEN
385 FND_MESSAGE.SET_NAME('CSD','CSD_API_ACTUALS_MISSING');
386 FND_MESSAGE.SET_TOKEN('REPAIR_ACTUAL_ID',l_actual_id);
387 FND_MSG_PUB.ADD;
388 IF (Fnd_Log.Level_Error >= Fnd_Log.G_Current_Runtime_Level) THEN
389 FND_LOG.MESSAGE(Fnd_Log.Level_Error,l_mod_name, FALSE);
390 END IF;
391 RAISE FND_API.G_EXC_ERROR;
392 END IF;
393
394 IF repair_actual%ISOPEN THEN
395 CLOSE repair_actual;
396 END IF;
397
398 END IF;
399
400 IF ( Fnd_Log.Level_Statement >= G_debug_level) THEN
401 FND_LOG.STRING(Fnd_Log.Level_Statement,l_mod_name,'Validate Object Version Number');
402 END IF;
403
404 IF NVL(px_CSD_REPAIR_ACTUALS_REC.object_version_number,FND_API.G_MISS_NUM) <>l_obj_ver_num THEN
405
406 -- Modified the message name for bugfix 3281321. vkjain.
407 -- FND_MESSAGE.SET_NAME('CSD','CSD_OBJ_VER_MISMATCH');
408 FND_MESSAGE.SET_NAME('CSD','CSD_ACT_OBJ_VER_MISMATCH');
409 -- FND_MESSAGE.SET_TOKEN('REPAIR_ACTUAL_ID',l_actual_id);
410 FND_MSG_PUB.ADD;
411 IF (Fnd_Log.Level_Error >= Fnd_Log.G_Current_Runtime_Level) THEN
412 FND_LOG.MESSAGE(Fnd_Log.Level_Error,l_mod_name, FALSE);
413 END IF;
414 RAISE FND_API.G_EXC_ERROR;
415 END IF;
416
417
418 -- Assigning object version number
419 px_CSD_REPAIR_ACTUALS_REC.object_version_number := l_obj_ver_num+1;
420
421 --
422 -- API body
423 --
424 IF ( Fnd_Log.Level_Procedure >= G_debug_level) THEN
425 FND_LOG.STRING(Fnd_Log.Level_Procedure,l_mod_name,'Call to CSD_REPAIR_ACTUALS_PKG.Update_Row');
426 END IF;
427
428 BEGIN
429
430 -- Invoke table handler(CSD_REPAIR_ACTUALS_PKG.Update_Row)
431 CSD_REPAIR_ACTUALS_PKG.Update_Row(
432 p_REPAIR_ACTUAL_ID => px_CSD_REPAIR_ACTUALS_REC.REPAIR_ACTUAL_ID
433 ,p_OBJECT_VERSION_NUMBER => px_CSD_REPAIR_ACTUALS_REC.OBJECT_VERSION_NUMBER
434 ,p_REPAIR_LINE_ID => px_CSD_REPAIR_ACTUALS_REC.REPAIR_LINE_ID
435 ,p_CREATED_BY => FND_API.G_MISS_NUM
436 ,p_CREATION_DATE => FND_API.G_MISS_DATE
437 ,p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID
438 ,p_LAST_UPDATE_DATE => SYSDATE
439 ,p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID
440 ,p_ATTRIBUTE_CATEGORY => px_CSD_REPAIR_ACTUALS_REC.ATTRIBUTE_CATEGORY
441 ,p_ATTRIBUTE1 => px_CSD_REPAIR_ACTUALS_REC.ATTRIBUTE1
442 ,p_ATTRIBUTE2 => px_CSD_REPAIR_ACTUALS_REC.ATTRIBUTE2
443 ,p_ATTRIBUTE3 => px_CSD_REPAIR_ACTUALS_REC.ATTRIBUTE3
444 ,p_ATTRIBUTE4 => px_CSD_REPAIR_ACTUALS_REC.ATTRIBUTE4
445 ,p_ATTRIBUTE5 => px_CSD_REPAIR_ACTUALS_REC.ATTRIBUTE5
446 ,p_ATTRIBUTE6 => px_CSD_REPAIR_ACTUALS_REC.ATTRIBUTE6
447 ,p_ATTRIBUTE7 => px_CSD_REPAIR_ACTUALS_REC.ATTRIBUTE7
448 ,p_ATTRIBUTE8 => px_CSD_REPAIR_ACTUALS_REC.ATTRIBUTE8
449 ,p_ATTRIBUTE9 => px_CSD_REPAIR_ACTUALS_REC.ATTRIBUTE9
450 ,p_ATTRIBUTE10 => px_CSD_REPAIR_ACTUALS_REC.ATTRIBUTE10
451 ,p_ATTRIBUTE11 => px_CSD_REPAIR_ACTUALS_REC.ATTRIBUTE11
452 ,p_ATTRIBUTE12 => px_CSD_REPAIR_ACTUALS_REC.ATTRIBUTE12
453 ,p_ATTRIBUTE13 => px_CSD_REPAIR_ACTUALS_REC.ATTRIBUTE13
454 ,p_ATTRIBUTE14 => px_CSD_REPAIR_ACTUALS_REC.ATTRIBUTE14
455 ,p_ATTRIBUTE15 => px_CSD_REPAIR_ACTUALS_REC.ATTRIBUTE15
456 ,p_BILL_TO_ACCOUNT_ID => px_CSD_REPAIR_ACTUALS_REC.BILL_TO_ACCOUNT_ID
457 ,p_BILL_TO_PARTY_ID => px_CSD_REPAIR_ACTUALS_REC.BILL_TO_PARTY_ID
458 ,p_BILL_TO_PARTY_SITE_ID => px_CSD_REPAIR_ACTUALS_REC.BILL_TO_PARTY_SITE_ID
459 );
460 --
461 -- End of API body.
462 --
463
464 EXCEPTION
465 WHEN OTHERS THEN
466 IF ( Fnd_Log.Level_Exception >= G_debug_level) THEN
467 FND_LOG.STRING(Fnd_Log.Level_Exception,l_mod_name,'Others exception in CSD_REPAIR_ACTUALS_PKG.Update_Row Call :'||SubStr('Error '||TO_CHAR(SQLCODE)||': '||SQLERRM, 1,255));
468 END IF;
469 x_return_status := FND_API.G_RET_STS_ERROR;
470 END;
471
472 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
473 RAISE FND_API.G_EXC_ERROR;
474 END IF;
475
476 --
477 -- End of API body
478 --
479
480 -- Standard check of p_commit.
481 IF FND_API.To_Boolean( p_commit ) THEN
482 COMMIT WORK;
483 END IF;
484
485 -- Standard call to get message count and IF count is get message info.
486 FND_MSG_PUB.Count_And_Get
487 (p_count => x_msg_count,
488 p_data => x_msg_data );
489 EXCEPTION
490 WHEN FND_API.G_EXC_ERROR THEN
491 IF ( Fnd_Log.Level_Exception >= G_debug_level) THEN
492 FND_LOG.STRING(Fnd_Log.Level_Exception,l_mod_name,'In FND_API.G_EXC_ERROR exception');
493 END IF;
494 x_return_status := FND_API.G_RET_STS_ERROR ;
495 ROLLBACK TO UPDATE_REPAIR_ACTUALS;
496 FND_MSG_PUB.Count_And_Get
497 (p_count => x_msg_count,
498 p_data => x_msg_data );
499 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
500 IF ( Fnd_Log.Level_Exception >= G_debug_level) THEN
501 FND_LOG.STRING(Fnd_Log.Level_Exception,l_mod_name,'In FND_API.G_EXC_UNEXPECTED_ERROR exception ');
502 END IF;
503 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
504 ROLLBACK TO UPDATE_REPAIR_ACTUALS;
505 FND_MSG_PUB.Count_And_Get
506 ( p_count => x_msg_count,
507 p_data => x_msg_data );
508 WHEN OTHERS THEN
509 IF ( Fnd_Log.Level_Exception >= G_debug_level) THEN
510 FND_LOG.STRING(Fnd_Log.Level_Exception,l_mod_name,'In OTHERS exception');
511 FND_LOG.STRING(Fnd_Log.Level_Exception,l_mod_name,'Sql Err Msg :'||SQLERRM );
512 END IF;
513 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
514 ROLLBACK TO UPDATE_REPAIR_ACTUALS;
515 IF FND_MSG_PUB.Check_Msg_Level
516 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
517 THEN
518 FND_MSG_PUB.Add_Exc_Msg
519 (G_PKG_NAME ,
520 l_api_name );
521 END IF;
522 FND_MSG_PUB.Count_And_Get
523 (p_count => x_msg_count,
524 p_data => x_msg_data );
525 End UPDATE_REPAIR_ACTUALS;
526
527
528 /*--------------------------------------------------------------------*/
529 /* procedure name: DELETE_REPAIR_ACTUALS */
530 /* description : procedure used to Delete Repair Actuals */
531 /* */
532 /* */
533 /* */
534 /* Called from : Depot Repair Actuals UI */
535 /* Input Parm : */
536 /* p_api_version NUMBER Req Api Version number */
537 /* p_init_msg_list VARCHAR2 Opt Initialize message stack */
538 /* p_commit VARCHAR2 Opt Commits in API */
539 /* p_validation_level NUMBER Opt validation steps */
540 /* px_CSD_REPAIR_ACTUALS_REC REC Req Actuals Record */
541 /* Output Parm : */
542 /* x_return_status VARCHAR2 Return status after the call. */
543 /* x_msg_count NUMBER Number of messages in stack */
544 /* x_msg_data VARCHAR2 Mesg. text if x_msg_count >= 1 */
545 /* Change Hist : */
546 /* 08/11/03 travikan Initial Creation. */
547 /* */
548 /* */
549 /* */
550 /*--------------------------------------------------------------------*/
551 PROCEDURE DELETE_REPAIR_ACTUALS(
552 P_Api_Version IN NUMBER,
553 P_Commit IN VARCHAR2,
554 P_Init_Msg_List IN VARCHAR2,
555 p_validation_level IN NUMBER,
556 px_CSD_REPAIR_ACTUALS_REC IN OUT NOCOPY CSD_REPAIR_ACTUALS_REC_TYPE,
557 X_Return_Status OUT NOCOPY VARCHAR2,
558 X_Msg_Count OUT NOCOPY NUMBER,
559 X_Msg_Data OUT NOCOPY VARCHAR2
560 )
561
562 IS
563 -- Variables used in FND Log
564 l_stat_level number := FND_LOG.LEVEL_STATEMENT;
565 l_proc_level number := FND_LOG.LEVEL_PROCEDURE;
566 l_event_level number := FND_LOG.LEVEL_EVENT;
567 l_excep_level number := FND_LOG.LEVEL_EXCEPTION;
568 l_error_level number := FND_LOG.LEVEL_ERROR;
569 l_unexp_level number := FND_LOG.LEVEL_UNEXPECTED;
570 l_mod_name varchar2(2000) := 'csd.plsql.CSD_REPAIR_ACTUALS_PVT.DELETE_REPAIR_ACTUALS';
571
572 l_api_name CONSTANT VARCHAR2(30) := 'DELETE_REPAIR_ACTUALS';
573 l_api_version CONSTANT NUMBER := 1.0;
574 l_msg_count NUMBER;
575 l_msg_data VARCHAR2(100);
576 l_msg_index NUMBER;
577
578 l_actual_id NUMBER;
579 l_obj_ver_num NUMBER;
580 l_act_line_count NUMBER;
581
582 CURSOR repair_actual(p_actual_id IN NUMBER) IS
583 SELECT
584 a.repair_actual_id,
585 a.object_version_number
586 FROM csd_repair_actuals a,
587 csd_repairs b
588 WHERE a.repair_line_id = b.repair_line_id
589 and a.repair_actual_id = p_actual_id;
590
591 BEGIN
592 -- Standard Start of API savepoint
593 SAVEPOINT DELETE_REPAIR_ACTUALS;
594
595 -- Standard call to check for call compatibility.
596 IF NOT FND_API.Compatible_API_Call ( l_api_version,
597 p_api_version,
598 l_api_name,
599 G_PKG_NAME)
600 THEN
601 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
602 END IF;
603
604 -- Initialize message list if p_init_msg_list is set to TRUE.
605 IF FND_API.to_Boolean( p_init_msg_list ) THEN
606 FND_MSG_PUB.initialize;
607 END IF;
608
609 -- Initialize API return status to success
610 x_return_status := FND_API.G_RET_STS_SUCCESS;
611
612 -- Api body starts
613 IF ( Fnd_Log.Level_Statement >= G_debug_level) THEN
614 FND_LOG.STRING(Fnd_Log.Level_Statement,l_mod_name,'At the Beginning of delete_repair_actual_lines');
615 END IF;
616
617 -- Dump the in parameters in the log file
618 -- if the debug level > 5
619 -- If fnd_profile.value('CSD_DEBUG_LEVEL') > 5 then
620 /* TBD
621 if (g_debug > 5) then
622 csd_gen_utility_pvt.dump_actuals_rec
623 ( p_CSD_REPAIR_ACTUALS_REC => px_CSD_REPAIR_ACTUALS_REC);
624 end if;
625 */
626 IF ( Fnd_Log.Level_Statement >= G_debug_level) THEN
627 FND_LOG.STRING(Fnd_Log.Level_Statement,l_mod_name,'Begin Check reqd paramete');
628 END IF;
629
630 -- Check the required parameter
631 CSD_PROCESS_UTIL.Check_Reqd_Param
632 ( p_param_value => px_CSD_REPAIR_ACTUALS_REC.repair_actual_id,
633 p_param_name => 'REPAIR_ACTUAL_ID',
634 p_api_name => l_api_name);
635
636 IF ( Fnd_Log.Level_Statement >= G_debug_level) THEN
637 FND_LOG.STRING(Fnd_Log.Level_Statement,l_mod_name,'End Check reqd parameter');
638 FND_LOG.STRING(Fnd_Log.Level_Statement,l_mod_name,'Begin Validate Repair Line id');
639 END IF;
640
641 -- Validate the repair line ID
642 IF NOT( CSD_PROCESS_UTIL.Validate_rep_line_id
643 ( p_repair_line_id => px_CSD_REPAIR_ACTUALS_REC.repair_line_id )) THEN
644 RAISE FND_API.G_EXC_ERROR;
645 END IF;
646
647 IF ( Fnd_Log.Level_Statement >= G_debug_level) THEN
648 FND_LOG.STRING(Fnd_Log.Level_Statement,l_mod_name,'End Validate Repair Line id');
649 END IF;
650
651 IF NVL(px_CSD_REPAIR_ACTUALS_REC.repair_actual_id,FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
652
653 OPEN repair_actual(px_CSD_REPAIR_ACTUALS_REC.repair_actual_id);
654 FETCH repair_actual
655 INTO l_actual_id,
656 l_obj_ver_num;
657
658 IF repair_actual%NOTFOUND THEN
659 FND_MESSAGE.SET_NAME('CSD','CSD_API_ACTUALS_MISSING');
660 FND_MESSAGE.SET_TOKEN('REPAIR_ACTUAL_ID',l_actual_id);
661 FND_MSG_PUB.ADD;
662 IF (Fnd_Log.Level_Error >= Fnd_Log.G_Current_Runtime_Level) THEN
663 FND_LOG.MESSAGE(Fnd_Log.Level_Error,l_mod_name, FALSE);
664 END IF;
665 RAISE FND_API.G_EXC_ERROR;
666 END IF;
667
668 IF repair_actual%ISOPEN THEN
669 CLOSE repair_actual;
670 END IF;
671
672 END IF;
673
674 IF ( Fnd_Log.Level_Statement >= G_debug_level) THEN
675 FND_LOG.STRING(Fnd_Log.Level_Statement,l_mod_name,'Validate Object Version Number');
676 END IF;
677
678 IF NVL(px_CSD_REPAIR_ACTUALS_REC.object_version_number,FND_API.G_MISS_NUM) <>l_obj_ver_num THEN
679 IF ( Fnd_Log.Level_Statement >= G_debug_level) THEN
680 FND_LOG.STRING(Fnd_Log.Level_Statement,l_mod_name,'Object Version Number does not match'
681 || ' for the Repair Actual ID = ' || l_actual_id);
682 END IF;
683
684 -- Modified the message name for bugfix 3281321. vkjain.
685 -- FND_MESSAGE.SET_NAME('CSD','CSD_OBJ_VER_MISMATCH');
686 FND_MESSAGE.SET_NAME('CSD','CSD_ACT_OBJ_VER_MISMATCH');
687 -- FND_MESSAGE.SET_TOKEN('REPAIR_ACTUAL_ID',l_actual_id);
688 FND_MSG_PUB.ADD;
689 IF (Fnd_Log.Level_Error >= Fnd_Log.G_Current_Runtime_Level) THEN
690 FND_LOG.MESSAGE(Fnd_Log.Level_Error,l_mod_name, FALSE);
691 END IF;
692 RAISE FND_API.G_EXC_ERROR;
693 END IF;
694
695
696 BEGIN
697 SELECT count(*)
698 INTO l_act_line_count
699 FROM csd_repair_actual_lines
700 WHERE repair_actual_id = l_actual_id;
701 EXCEPTION
702 WHEN OTHERS THEN
703 IF ( Fnd_Log.Level_Exception >= G_debug_level) THEN
704 FND_LOG.STRING(Fnd_Log.Level_Exception,l_mod_name,'Others exception error :'||SubStr('Error '||TO_CHAR(SQLCODE)||': '||SQLERRM, 1,255));
705 END IF;
706 END;
707
708 IF l_act_line_count > 0 THEN
709 IF ( Fnd_Log.Level_Statement >= G_debug_level) THEN
710 FND_LOG.STRING(Fnd_Log.Level_Statement,l_mod_name,'Actual Lines exists for the Repair Order');
711 END IF;
712
713 FND_MESSAGE.SET_NAME('CSD','CSD_ACTUAL_LINE_EXISTS');
714 FND_MESSAGE.SET_TOKEN('REPAIR_LINE_ID', px_CSD_REPAIR_ACTUALS_REC.REPAIR_LINE_ID);
715 FND_MSG_PUB.ADD;
716 IF (Fnd_Log.Level_Error >= Fnd_Log.G_Current_Runtime_Level) THEN
717 FND_LOG.MESSAGE(Fnd_Log.Level_Error,l_mod_name, FALSE);
718 END IF;
719 RAISE FND_API.G_EXC_ERROR;
720 END IF;
721
722
723 --
724 -- API body
725 --
726 IF ( Fnd_Log.Level_Procedure >= G_debug_level) THEN
727 FND_LOG.STRING(Fnd_Log.Level_Procedure,l_mod_name,'Call to CSD_REPAIR_ACTUALS_PKG.Delete_Row');
728 END IF;
729
730 BEGIN
731
732 -- Invoke table handler(CSD_REPAIR_ACTUALS_PKG.Delete_Row)
733 CSD_REPAIR_ACTUALS_PKG.Delete_Row(
734 p_REPAIR_ACTUAL_ID => px_CSD_REPAIR_ACTUALS_REC.REPAIR_ACTUAL_ID
735 ,p_OBJECT_VERSION_NUMBER => px_CSD_REPAIR_ACTUALS_REC.OBJECT_VERSION_NUMBER);
736
737 EXCEPTION
738 WHEN OTHERS THEN
739 IF ( Fnd_Log.Level_Exception >= G_debug_level) THEN
740 FND_LOG.STRING(Fnd_Log.Level_Exception,l_mod_name,'Others exception error :'||SubStr('Error '||TO_CHAR(SQLCODE)||': '||SQLERRM, 1,255));
741 END IF;
742 x_return_status := FND_API.G_RET_STS_ERROR;
743 END;
744
745 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
746 RAISE FND_API.G_EXC_ERROR;
747 END IF;
748
749 --
750 -- End of API body
751 --
752
753 -- Standard check of p_commit.
754 IF FND_API.To_Boolean( p_commit ) THEN
755 COMMIT WORK;
756 END IF;
757
758 -- Standard call to get message count and IF count is get message info.
759 FND_MSG_PUB.Count_And_Get
760 (p_count => x_msg_count,
761 p_data => x_msg_data );
762 EXCEPTION
763 WHEN FND_API.G_EXC_ERROR THEN
764 IF ( Fnd_Log.Level_Exception >= G_debug_level) THEN
765 FND_LOG.STRING(Fnd_Log.Level_Exception,l_mod_name,'In FND_API.G_EXC_ERROR exception');
766 END IF;
767 x_return_status := FND_API.G_RET_STS_ERROR ;
768 ROLLBACK TO DELETE_REPAIR_ACTUALS;
769 FND_MSG_PUB.Count_And_Get
770 (p_count => x_msg_count,
771 p_data => x_msg_data );
772 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
773 IF ( Fnd_Log.Level_Exception >= G_debug_level) THEN
774 FND_LOG.STRING(Fnd_Log.Level_Exception,l_mod_name,'In FND_API.G_EXC_UNEXPECTED_ERROR exception ');
775 END IF;
776 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
777 ROLLBACK TO DELETE_REPAIR_ACTUALS;
778 FND_MSG_PUB.Count_And_Get
779 ( p_count => x_msg_count,
780 p_data => x_msg_data );
781 WHEN OTHERS THEN
782 IF ( Fnd_Log.Level_Exception >= G_debug_level) THEN
783 FND_LOG.STRING(Fnd_Log.Level_Exception,l_mod_name,'In OTHERS exception');
784 FND_LOG.STRING(Fnd_Log.Level_Exception,l_mod_name,'Sql Err Msg :'||SQLERRM );
785 END IF;
786 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
787 ROLLBACK TO DELETE_REPAIR_ACTUALS;
788 IF FND_MSG_PUB.Check_Msg_Level
789 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
790 THEN
791 FND_MSG_PUB.Add_Exc_Msg
792 (G_PKG_NAME ,
793 l_api_name );
794 END IF;
795 FND_MSG_PUB.Count_And_Get
796 (p_count => x_msg_count,
797 p_data => x_msg_data );
798 End DELETE_REPAIR_ACTUALS;
799
800 /*--------------------------------------------------------------------*/
801 /* procedure name: LOCK_REPAIR_ACTUALS */
802 /* description : procedure used to Lock Repair Actuals */
803 /* */
804 /* */
805 /* */
806 /* Called from : Depot Repair Actuals UI */
807 /* Input Parm : */
808 /* p_api_version NUMBER Req Api Version number */
809 /* p_init_msg_list VARCHAR2 Opt Initialize message stack */
810 /* p_commit VARCHAR2 Opt Commits in API */
811 /* p_validation_level NUMBER Opt validation steps */
812 /* px_CSD_REPAIR_ACTUALS_REC REC Req Actuals Record */
813 /* Output Parm : */
814 /* x_return_status VARCHAR2 Return status after the call. */
815 /* x_msg_count NUMBER Number of messages in stack */
816 /* x_msg_data VARCHAR2 Mesg. text if x_msg_count >= 1 */
817 /* Change Hist : */
818 /* 08/11/03 travikan Initial Creation. */
819 /* */
820 /* */
821 /* */
822 /*--------------------------------------------------------------------*/
823 PROCEDURE LOCK_REPAIR_ACTUALS(
824 P_Api_Version IN NUMBER,
825 P_Commit IN VARCHAR2,
826 P_Init_Msg_List IN VARCHAR2,
827 p_validation_level IN NUMBER,
828 px_CSD_REPAIR_ACTUALS_REC IN OUT NOCOPY CSD_REPAIR_ACTUALS_REC_TYPE,
829 X_Return_Status OUT NOCOPY VARCHAR2,
830 X_Msg_Count OUT NOCOPY NUMBER,
831 X_Msg_Data OUT NOCOPY VARCHAR2
832 )
833 IS
834 -- Variables used in FND Log
835 l_stat_level number := FND_LOG.LEVEL_STATEMENT;
836 l_proc_level number := FND_LOG.LEVEL_PROCEDURE;
837 l_event_level number := FND_LOG.LEVEL_EVENT;
838 l_excep_level number := FND_LOG.LEVEL_EXCEPTION;
839 l_error_level number := FND_LOG.LEVEL_ERROR;
840 l_unexp_level number := FND_LOG.LEVEL_UNEXPECTED;
841 l_mod_name varchar2(2000) := 'csd.plsql.CSD_REPAIR_ACTUALS_PVT.LOCK_REPAIR_ACTUALS';
842
843 l_api_name CONSTANT VARCHAR2(30) := 'LOCK_REPAIR_ACTUALS';
844 l_api_version CONSTANT NUMBER := 1.0;
845 l_msg_count NUMBER;
846 l_msg_data VARCHAR2(100);
847 l_msg_index NUMBER;
848
849 BEGIN
850 -- Standard Start of API savepoint
851 SAVEPOINT LOCK_REPAIR_ACTUALS;
852
853 -- Standard call to check for call compatibility.
854 IF NOT FND_API.Compatible_API_Call ( l_api_version,
855 p_api_version,
856 l_api_name,
857 G_PKG_NAME)
858 THEN
859 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
860 END IF;
861
862 -- Initialize message list if p_init_msg_list is set to TRUE.
863 IF FND_API.to_Boolean( p_init_msg_list ) THEN
864 FND_MSG_PUB.initialize;
865 END IF;
866
867 -- Initialize API return status to success
868 x_return_status := FND_API.G_RET_STS_SUCCESS;
869
870 -- Api body starts
871 IF ( Fnd_Log.Level_Statement >= G_debug_level) THEN
872 FND_LOG.STRING(Fnd_Log.Level_Statement,l_mod_name,'At the Beginning of lock_repair_actual_lines');
873 END IF;
874 -- Dump the in parameters in the log file
875 -- if the debug level > 5
876 -- If fnd_profile.value('CSD_DEBUG_LEVEL') > 5 then
877 -- if (g_debug > 5) then
878 -- csd_gen_utility_pvt.dump_actuals_rec
879 -- ( p_CSD_REPAIR_ACTUALS_REC => px_CSD_REPAIR_ACTUALS_REC);
880 -- end if;
881
882 IF ( Fnd_Log.Level_Statement >= G_debug_level) THEN
883 FND_LOG.STRING(Fnd_Log.Level_Statement,l_mod_name,'Begin Check reqd parameter');
884 END IF;
885
886 -- Check the required parameter
887 CSD_PROCESS_UTIL.Check_Reqd_Param
888 ( p_param_value => px_CSD_REPAIR_ACTUALS_REC.repair_actual_id,
889 p_param_name => 'REPAIR_ACTUAL_ID',
890 p_api_name => l_api_name);
891
892 IF ( Fnd_Log.Level_Statement >= G_debug_level) THEN
893 FND_LOG.STRING(Fnd_Log.Level_Statement,l_mod_name,'End Check reqd parameter');
894 END IF;
895
896 --
897 -- API body
898 --
899 IF ( Fnd_Log.Level_Procedure >= G_debug_level) THEN
900 FND_LOG.STRING(Fnd_Log.Level_Procedure,l_mod_name,'Call to CSD_REPAIR_ACTUALS_PKG.Lock_Row');
901 END IF;
902
903 BEGIN
904
905 -- Invoke table handler(CSD_REPAIR_ACTUALS_PKG.Lock_Row)
906 CSD_REPAIR_ACTUALS_PKG.Lock_Row(
907 p_REPAIR_ACTUAL_ID => px_CSD_REPAIR_ACTUALS_REC.REPAIR_ACTUAL_ID
908 ,p_OBJECT_VERSION_NUMBER => px_CSD_REPAIR_ACTUALS_REC.OBJECT_VERSION_NUMBER);
909
910 EXCEPTION
911 WHEN OTHERS THEN
912 IF ( Fnd_Log.Level_Exception >= G_debug_level) THEN
913 FND_LOG.STRING(Fnd_Log.Level_Exception,l_mod_name,'Others exception in CSD_REPAIR_ACTUALS_PKG.Lock_Row Call :'||SubStr('Error '||TO_CHAR(SQLCODE)||': '||SQLERRM, 1,255));
914 END IF;
915 x_return_status := FND_API.G_RET_STS_ERROR;
916 END;
917
918 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
919 RAISE FND_API.G_EXC_ERROR;
920 END IF;
921
922 --
923 -- End of API body
924 --
925
926 -- Standard check of p_commit.
927 IF FND_API.To_Boolean( p_commit ) THEN
928 COMMIT WORK;
929 END IF;
930
931 -- Standard call to get message count and IF count is get message info.
932 FND_MSG_PUB.Count_And_Get
933 (p_count => x_msg_count,
934 p_data => x_msg_data );
935 EXCEPTION
936 WHEN FND_API.G_EXC_ERROR THEN
937 IF ( Fnd_Log.Level_Exception >= G_debug_level) THEN
938 FND_LOG.STRING(Fnd_Log.Level_Exception,l_mod_name,'In FND_API.G_EXC_ERROR exception');
939 END IF;
940 x_return_status := FND_API.G_RET_STS_ERROR ;
941 ROLLBACK TO LOCK_REPAIR_ACTUALS;
942 FND_MSG_PUB.Count_And_Get
943 (p_count => x_msg_count,
944 p_data => x_msg_data );
945 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
946 IF ( Fnd_Log.Level_Exception >= G_debug_level) THEN
947 FND_LOG.STRING(Fnd_Log.Level_Exception,l_mod_name,'In FND_API.G_EXC_UNEXPECTED_ERROR exception ');
948 END IF;
949 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
950 ROLLBACK TO LOCK_REPAIR_ACTUALS;
951 FND_MSG_PUB.Count_And_Get
952 ( p_count => x_msg_count,
953 p_data => x_msg_data );
954 WHEN OTHERS THEN
955 IF ( Fnd_Log.Level_Exception >= G_debug_level) THEN
956 FND_LOG.STRING(Fnd_Log.Level_Exception,l_mod_name,'In OTHERS exception');
957 FND_LOG.STRING(Fnd_Log.Level_Exception,l_mod_name,'Sql Err Msg :'||SQLERRM );
958 END IF;
959 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
960 ROLLBACK TO LOCK_REPAIR_ACTUALS;
961 IF FND_MSG_PUB.Check_Msg_Level
962 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
963 THEN
964 FND_MSG_PUB.Add_Exc_Msg
965 (G_PKG_NAME ,
966 l_api_name );
967 END IF;
968 FND_MSG_PUB.Count_And_Get
969 (p_count => x_msg_count,
970 p_data => x_msg_data );
971
972 END LOCK_REPAIR_ACTUALS;
973
974 End CSD_REPAIR_ACTUALS_PVT;