DBA Data[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;