DBA Data[Home] [Help]

PACKAGE BODY: APPS.PA_PT_CO_IMPL_STATUSES_PKG

Source


1 PACKAGE BODY PA_PT_CO_IMPL_STATUSES_PKG AS
2 /* $Header: PAFPCOIB.pls 120.1 2005/08/19 16:25:31 mwasowic noship $ */
3 
4 g_module_name   VARCHAR2(100) := 'pa.plsql.PA_PT_CO_IMPL_STATUSES_PKG';
5 
6 /*==================================================================
7    API for inserting into the table
8  ==================================================================*/
9 PROCEDURE INSERT_ROW (
10       p_pt_co_impl_statuses_id          IN       pa_pt_co_impl_statuses.pt_co_impl_statuses_id%TYPE,
11       p_fin_plan_type_id                IN       pa_pt_co_impl_statuses.fin_plan_type_id%TYPE,
12       p_ci_type_id                      IN       pa_pt_co_impl_statuses.ci_type_id%TYPE,
13       p_version_type                    IN       pa_pt_co_impl_statuses.version_type%TYPE,
14       p_status_code                     IN       pa_pt_co_impl_statuses.status_code%TYPE,
15       p_impl_default_flag               IN       pa_pt_co_impl_statuses.impl_default_flag%TYPE,
16       x_row_id                          OUT      NOCOPY ROWID, --File.Sql.39 bug 4440895
17       x_return_status                   OUT      NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
18       x_msg_count                       OUT      NOCOPY NUMBER, --File.Sql.39 bug 4440895
19       x_msg_data                        OUT      NOCOPY VARCHAR2) --File.Sql.39 bug 4440895
20 IS
21 
22 BEGIN
23 
24       x_return_status := FND_API.G_RET_STS_SUCCESS;
25 
26       INSERT
27       INTO  PA_PT_CO_IMPL_STATUSES (
28             pt_co_impl_statuses_id,
29             fin_plan_type_id,
30             ci_type_id,
31             version_type,
32             status_code,
33             impl_default_flag,
34             record_version_number,
35             creation_date,
36             created_by,
37             last_update_login,
38             last_updated_by,
39             last_update_date)
40             VALUES(
41             p_pt_co_impl_statuses_id,
42             p_fin_plan_type_id,
43             p_ci_type_id,
44             p_version_type,
45             p_status_code,
46             p_impl_default_flag,
47             1,
48             sysdate,
49             fnd_global.user_id,
50             fnd_global.login_id,
51             fnd_global.user_id,
52             sysdate)
53             RETURNING ROWID INTO x_row_id;
54 
55 EXCEPTION
56       WHEN OTHERS THEN
57             x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
58             x_msg_count     := 1;
59             x_msg_data      := SQLERRM;
60             FND_MSG_PUB.add_exc_msg( p_pkg_name         =>
61 'PA_PT_CO_IMPL_STATUSES_PKG',
62                                      p_procedure_name   => 'INSERT_ROW');
63             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
64 
65 END Insert_Row;
66 
67 /*==================================================================
68    API for updating records of the table
69  ==================================================================*/
70 PROCEDURE UPDATE_ROW (
71       p_pt_co_impl_statuses_id           IN       pa_pt_co_impl_statuses.pt_co_impl_statuses_id%TYPE,
72       p_fin_plan_type_id                 IN       pa_pt_co_impl_statuses.fin_plan_type_id%TYPE,
73       p_ci_type_id                       IN       pa_pt_co_impl_statuses.ci_type_id%TYPE,
74       p_version_type                     IN       pa_pt_co_impl_statuses.version_type%TYPE,
75       p_status_code                      IN       pa_pt_co_impl_statuses.status_code%TYPE,
76       p_impl_default_flag                IN       pa_pt_co_impl_statuses.impl_default_flag%TYPE,
77       p_record_version_number            IN       pa_pt_co_impl_statuses.record_version_number%TYPE,
78       p_lock_row                         IN       VARCHAR2,
79       x_return_status                    OUT      NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
80       x_msg_count                        OUT      NOCOPY NUMBER, --File.Sql.39 bug 4440895
81       x_msg_data                         OUT      NOCOPY VARCHAR2) --File.Sql.39 bug 4440895
82 
83 IS
84       l_record_version_number            NUMBER;
85 
86       l_debug_mode                       VARCHAR2(1);
87       l_debug_level3                     CONSTANT NUMBER := 3;
88       l_module_name                      VARCHAR2(100) := 'UPDATE_ROW' || g_module_name;
89       l_return_status                    VARCHAR2(30);
90       l_msg_count                        NUMBER;
91       l_msg_index_out                    NUMBER;
92       l_data                             VARCHAR2(2000);
93       l_msg_data                         VARCHAR2(2000);
94 
95 BEGIN
96 
97      x_return_status := FND_API.G_RET_STS_SUCCESS;
98 
99      l_debug_mode    := NVL(FND_PROFILE.value('PA_DEBUG_MODE'),'N');
100 
101      IF l_debug_mode = 'Y' THEN
102            pa_debug.set_curr_function( p_function   => 'UPDATE_ROW',
103                                        p_debug_mode => l_debug_mode );
104      END IF;
105      IF l_debug_mode = 'Y' THEN
106             pa_debug.g_err_stage:= 'Entering UPDATE_ROW ';
107             pa_debug.write(l_module_name,pa_debug.g_err_stage,
108                                   l_debug_level3);
109      END IF;
110 
111      IF l_debug_mode = 'Y' THEN
112             pa_debug.g_err_stage:= 'The Co Impl Id : ' || p_pt_co_impl_statuses_id;
113             pa_debug.write(l_module_name,pa_debug.g_err_stage,
114                                   l_debug_level3);
115      END IF;
116 
117      IF p_pt_co_impl_statuses_id IS NOT NULL THEN
118 
119             IF p_lock_row = 'Y' THEN
120                  /* Calling Lock_Row */
121                  IF l_debug_mode = 'Y' THEN
122                       pa_debug.g_err_stage:= 'Calling Lock_Row when p_pt_co_impl_statuses_id is not null';
123                       pa_debug.write(l_module_name,pa_debug.g_err_stage,
124                                         l_debug_level3);
125                  END IF;
126 
127                  Lock_Row(p_row_id                   => null,
128                           p_pt_co_impl_statuses_id   => p_pt_co_impl_statuses_id,
129                           p_record_version_number    => p_record_version_number,
130                           p_fin_plan_type_id         => null,
131                           p_ci_type_id               => null,
132                           p_version_type             => null,
133                           p_status_code              => null,
134                           x_return_status            => l_return_status,
135                           x_msg_count                => l_msg_count,
136                           x_msg_data                 => l_msg_data);
137 
138                  IF l_return_status <>  FND_API.G_RET_STS_SUCCESS THEN
139                        IF l_debug_mode = 'Y' THEN
140                             pa_debug.g_err_stage:= 'Error in Lock_Row';
141                             pa_debug.write(l_module_name,pa_debug.g_err_stage,l_debug_level3);
142                        END IF;
143                        RAISE PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc;
144                  END IF;
145             END IF;
146 
147             IF l_debug_mode = 'Y' THEN
148                  pa_debug.g_err_stage:= 'Updating with p_pt_co_impl_statuses_id';
149                  pa_debug.write(l_module_name,pa_debug.g_err_stage,
150                                         l_debug_level3);
151             END IF;
152 
153             UPDATE PA_PT_CO_IMPL_STATUSES
154             SET
155             pt_co_impl_statuses_id  = DECODE (p_pt_co_impl_statuses_id, FND_API.G_MISS_NUM,
156                                               NULL, NVL(p_pt_co_impl_statuses_id, pt_co_impl_statuses_id)),
157             fin_plan_type_id        = DECODE (p_fin_plan_type_id, FND_API.G_MISS_NUM, NULL,
158                                                                   NVL(p_fin_plan_type_id, fin_plan_type_id)),
159             ci_type_id              = DECODE (p_ci_type_id, FND_API.G_MISS_NUM, NULL,
160                                                                   NVL(p_ci_type_id, ci_type_id)),
161             version_type            = DECODE (p_version_type, FND_API.G_MISS_CHAR, NULL,
162                                                                   NVL(p_version_type, version_type)),
163             status_code             = DECODE (p_status_code, FND_API.G_MISS_NUM, NULL,
164                                                                   NVL(p_status_code, status_code)),
165             impl_default_flag       = DECODE (p_impl_default_flag, FND_API.G_MISS_CHAR, NULL,
166                                                                   NVL(p_impl_default_flag, impl_default_flag)),
167             record_version_number   = p_record_version_number + 1,
168             last_update_date        = SYSDATE,
169             last_updated_by         = FND_GLOBAL.USER_ID,
170             last_update_login       = FND_GLOBAL.LOGIN_ID
171             WHERE pt_co_impl_statuses_id = p_pt_co_impl_statuses_id;
172 
173      ELSE
174             IF p_lock_row = 'Y' THEN
175                  /* Calling Lock_Row */
176                  IF l_debug_mode = 'Y' THEN
177                        pa_debug.g_err_stage:= 'Calling Lock_Row when p_pt_co_impl_statuses_id is null';
178                        pa_debug.write(l_module_name,pa_debug.g_err_stage,
179                                              l_debug_level3);
180                  END IF;
181 
182                  Lock_Row(p_row_id                   => null,
183                           p_pt_co_impl_statuses_id   => null,
184                           p_record_version_number    => p_record_version_number,
185                           p_fin_plan_type_id         => p_fin_plan_type_id,
186                           p_ci_type_id               => p_ci_type_id,
187                           p_version_type             => p_version_type,
188                           p_status_code              => p_status_code,
189                           x_return_status            => l_return_status,
190                           x_msg_count                => l_msg_count,
191                           x_msg_data                 => l_msg_data);
192 
193                   IF l_return_status <>  FND_API.G_RET_STS_SUCCESS THEN
194                        IF l_debug_mode = 'Y' THEN
195                             pa_debug.g_err_stage:= 'Error in Lock_Row';
196                             pa_debug.write(l_module_name,pa_debug.g_err_stage,l_debug_level3);
197                        END IF;
198                        RAISE PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc;
199                   END IF;
200             END IF;
201 
202             IF l_debug_mode = 'Y' THEN
203                   pa_debug.g_err_stage:= 'Updating without p_pt_co_impl_statuses_id';
204                   pa_debug.write(l_module_name,pa_debug.g_err_stage,
205                                         l_debug_level3);
206             END IF;
207 
208             UPDATE PA_PT_CO_IMPL_STATUSES
209             SET
210             pt_co_impl_statuses_id  = DECODE (p_pt_co_impl_statuses_id, FND_API.G_MISS_NUM,
211                                               NULL, NVL(p_pt_co_impl_statuses_id, pt_co_impl_statuses_id)),
212             fin_plan_type_id        = DECODE (p_fin_plan_type_id, FND_API.G_MISS_NUM, NULL,
213                                                                   NVL(p_fin_plan_type_id, fin_plan_type_id)),
214             ci_type_id              = DECODE (p_ci_type_id, FND_API.G_MISS_NUM, NULL,
215                                                                   NVL(p_ci_type_id, ci_type_id)),
216             version_type            = DECODE (p_version_type, FND_API.G_MISS_CHAR, NULL,
217                                                                   NVL(p_version_type, version_type)),
218             status_code             = DECODE (p_status_code, FND_API.G_MISS_CHAR, NULL,
219                                                                   NVL(p_status_code, status_code)),
220             impl_default_flag       = DECODE (p_impl_default_flag, FND_API.G_MISS_CHAR, NULL,
221                                                                   NVL(p_impl_default_flag, impl_default_flag)),
222             record_version_number   = nvl(p_record_version_number,record_version_number) + 1,
223             last_update_login       = FND_GLOBAL.LOGIN_ID,
224             last_updated_by         = FND_GLOBAL.USER_ID,
225             last_update_date        = SYSDATE
226             WHERE  fin_plan_type_id = p_fin_plan_type_id
227             AND    ci_type_id       = p_ci_type_id
228             AND    version_type     = DECODE(p_version_type,
229                                            PA_FP_CONSTANTS_PKG.G_ELEMENT_TYPE_BOTH, version_type,
230                                            Nvl(p_version_type,version_type))
231             AND    status_code      = Nvl (p_status_code, status_code);
232 
233      END IF;
234 
235      IF SQL%NOTFOUND THEN
236            PA_UTILS.Add_Message ( p_app_short_name => 'PA'
237                                  ,p_msg_name       => 'PA_XC_RECORD_CHANGED');
238            x_return_status := FND_API.G_RET_STS_ERROR;
239      END IF;
240 
241      IF l_debug_mode = 'Y' THEN
242             pa_debug.reset_curr_function;
243      END IF;
244 
245      l_msg_count := FND_MSG_PUB.count_msg;
246 
247      IF l_msg_count > 0 THEN
248             IF l_msg_count = 1 THEN
249                    PA_INTERFACE_UTILS_PUB.get_messages
250                       (p_encoded        => FND_API.G_TRUE,
251                        p_msg_index      => 1,
252                        p_msg_count      => l_msg_count,
253                        p_msg_data       => l_msg_data,
254                        p_data           => l_data,
255                        p_msg_index_out  => l_msg_index_out);
256                        x_msg_data       := l_data;
257                        x_msg_count      := l_msg_count;
258             ELSE
259                    x_msg_count := l_msg_count;
260             END IF;
261             RETURN;
262      END IF;
263 
264      IF l_debug_mode = 'Y' THEN
265             pa_debug.g_err_stage:= 'Leaving UPDATE_ROW ';
266             pa_debug.write(l_module_name,pa_debug.g_err_stage,
267                                   l_debug_level3);
268      END IF;
269 
270 EXCEPTION
271      WHEN PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc THEN
272             x_return_status := FND_API.G_RET_STS_ERROR;
273 
274             IF l_debug_mode = 'Y' THEN
275                   pa_debug.reset_curr_function;
276             END IF;
277 
278             FND_MSG_PUB.add_exc_msg( p_pkg_name        => 'PA_PT_CO_IMPL_STATUSES_PKG' ,
279                                      p_procedure_name  => 'Update_Row');
280 
281      WHEN OTHERS THEN
282             x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
283             x_msg_count     := 1;
284             x_msg_data      := SQLERRM;
285             FND_MSG_PUB.add_exc_msg( p_pkg_name         => 'PA_PT_CO_IMPL_STATUSES_PKG',
286                                      p_procedure_name   => 'Update_Row');
287             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
288 
289 END UPDATE_ROW;
290 
291 /*==================================================================
292    API for deleting records of the table
293  ==================================================================*/
294 PROCEDURE DELETE_ROW (
295       p_pt_co_impl_statuses_id           IN       pa_pt_co_impl_statuses.pt_co_impl_statuses_id%TYPE,
296       p_fin_plan_type_id                 IN       pa_pt_co_impl_statuses.fin_plan_type_id%TYPE,
297       p_ci_type_id                       IN       pa_pt_co_impl_statuses.ci_type_id%TYPE,
298       p_version_type                     IN       pa_pt_co_impl_statuses.version_type%TYPE,
299       p_status_code                      IN       pa_pt_co_impl_statuses.status_code%TYPE,
300       p_record_version_number            IN       pa_pt_co_impl_statuses.record_version_number%TYPE,
301       p_lock_row                         IN       VARCHAR2,
302       x_return_status                    OUT      NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
303       x_msg_count                        OUT      NOCOPY NUMBER, --File.Sql.39 bug 4440895
304       x_msg_data                         OUT      NOCOPY VARCHAR2) --File.Sql.39 bug 4440895
305 IS
306       l_debug_mode                       VARCHAR2(1);
307       l_debug_level3                     CONSTANT NUMBER := 3;
308       l_module_name                      VARCHAR2(100) := 'UPDATE_ROW' || g_module_name;
309       l_return_status                    VARCHAR2(30);
310       l_msg_count                        NUMBER;
311       l_msg_index_out                    NUMBER;
312       l_data                             VARCHAR2(2000);
313       l_msg_data                         VARCHAR2(2000);
314 BEGIN
315 
316       x_return_status := FND_API.G_RET_STS_SUCCESS;
317 
318       IF p_pt_co_impl_statuses_id IS NOT NULL THEN
319             IF p_lock_row = 'Y' THEN
323                        pa_debug.write(l_module_name,pa_debug.g_err_stage,
320                   /* Calling Lock_Row */
321                   IF l_debug_mode = 'Y' THEN
322                        pa_debug.g_err_stage:= 'Calling Lock_Row when p_pt_co_impl_statuses_id is not null';
324                                             l_debug_level3);
325                   END IF;
326 
327                   Lock_Row(p_row_id                   => null,
328                            p_pt_co_impl_statuses_id   => p_pt_co_impl_statuses_id,
329                            p_record_version_number    => p_record_version_number,
330                            p_fin_plan_type_id         => null,
331                            p_ci_type_id               => null,
332                            p_version_type             => null,
333                            p_status_code              => null,
334                            x_return_status            => l_return_status,
335                            x_msg_count                => l_msg_count,
336                            x_msg_data                 => l_msg_data);
337 
338                   IF l_return_status <>  FND_API.G_RET_STS_SUCCESS THEN
339                         IF l_debug_mode = 'Y' THEN
340                              pa_debug.g_err_stage:= 'Error in Lock_Row';
341                              pa_debug.write(l_module_name,pa_debug.g_err_stage,l_debug_level3);
342                         END IF;
343                         RAISE PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc;
344                   END IF;
345             END IF;
346 
347             IF l_debug_mode = 'Y' THEN
348                   pa_debug.g_err_stage:= 'Calling Delte_Row ';
349                   pa_debug.write(l_module_name,pa_debug.g_err_stage,
350                                         l_debug_level3);
351             END IF;
352 
353             DELETE
354             FROM     pa_pt_co_impl_statuses
355             WHERE    pt_co_impl_statuses_id = p_pt_co_impl_statuses_id;
356 
357             IF l_debug_mode = 'Y' THEN
358                   pa_debug.g_err_stage:= 'Row Deleted';
359                   pa_debug.write(l_module_name,pa_debug.g_err_stage,
360                                         l_debug_level3);
361             END IF;
362 
363       ELSE
364             IF p_lock_row = 'Y' THEN
365                   /* Calling Lock_Row */
366                   IF l_debug_mode = 'Y' THEN
367                         pa_debug.g_err_stage:= 'Calling Lock_Row when p_pt_co_impl_statuses_id is null';
368                         pa_debug.write(l_module_name,pa_debug.g_err_stage,
369                                                l_debug_level3);
370                   END IF;
371 
372                   Lock_Row(p_row_id                   => null,
373                            p_pt_co_impl_statuses_id   => null,
374                            p_record_version_number    => p_record_version_number,
375                            p_fin_plan_type_id         => p_fin_plan_type_id,
376                            p_ci_type_id               => p_ci_type_id,
377                            p_version_type             => p_version_type,
378                            p_status_code              => p_status_code,
379                            x_return_status            => l_return_status,
380                            x_msg_count                => l_msg_count,
381                            x_msg_data                 => l_msg_data);
382 
383                   IF l_return_status <>  FND_API.G_RET_STS_SUCCESS THEN
384                         IF l_debug_mode = 'Y' THEN
385                               pa_debug.g_err_stage:= 'Error in Lock_Row';
386                               pa_debug.write(l_module_name,pa_debug.g_err_stage,l_debug_level3);
387                         END IF;
388                         RAISE PA_FP_CONSTANTS_PKG.Invalid_Arg_Exc;
389                   END IF;
390             END IF;
391 
392             IF l_debug_mode = 'Y' THEN
393                   pa_debug.g_err_stage:= 'Calling Delte_Row ';
394                   pa_debug.write(l_module_name,pa_debug.g_err_stage,
395                                         l_debug_level3);
396             END IF;
397 
398             DELETE
399             FROM     pa_pt_co_impl_statuses
400             WHERE    fin_plan_type_id = p_fin_plan_type_id
401             AND      ci_type_id = p_ci_type_id
402             AND      version_type = DECODE(p_version_type,
403                                            PA_FP_CONSTANTS_PKG.G_ELEMENT_TYPE_BOTH, version_type,
404                                            Nvl(p_version_type,version_type))
405             AND      status_code = Nvl (p_status_code, status_code);
406 
407             IF l_debug_mode = 'Y' THEN
408                   pa_debug.g_err_stage:= 'Row Deleted';
409                   pa_debug.write(l_module_name,pa_debug.g_err_stage,
410                                         l_debug_level3);
411             END IF;
412       END IF;
413 
414       IF (SQL%NOTFOUND) THEN
415             PA_UTILS.Add_Message ( p_app_short_name => 'PA',
416                                    p_msg_name       => 'PA_XC_RECORD_CHANGED');
417             x_return_status := FND_API.G_RET_STS_ERROR;
418       END IF;
419 
420 EXCEPTION
421       WHEN OTHERS THEN
422             x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
423             x_msg_count     := 1;
424             x_msg_data      := SQLERRM;
425             FND_MSG_PUB.add_exc_msg( p_pkg_name         => 'PA_PT_CO_IMPL_STATUSES_PKG',
426                                      p_procedure_name   => 'DELETE_ROW');
427             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
428 
429 END DELETE_ROW;
430 
431 /*==================================================================
432    API for locking records of the table
433  ==================================================================*/
434 PROCEDURE LOCK_ROW (
435       p_row_id                          IN       ROWID,
439       p_ci_type_id                      IN       pa_pt_co_impl_statuses.ci_type_id%TYPE,
436       p_pt_co_impl_statuses_id          IN       pa_pt_co_impl_statuses.pt_co_impl_statuses_id%TYPE,
437       p_record_version_number           IN       pa_pt_co_impl_statuses.record_version_number%TYPE,
438       p_fin_plan_type_id                IN       pa_pt_co_impl_statuses.fin_plan_type_id%TYPE,
440       p_version_type                    IN       pa_pt_co_impl_statuses.version_type%TYPE,
441       p_status_code                     IN       pa_pt_co_impl_statuses.status_code%TYPE,
442       x_return_status                   OUT      NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
443       x_msg_count                       OUT      NOCOPY NUMBER, --File.Sql.39 bug 4440895
444       x_msg_data                        OUT      NOCOPY VARCHAR2) --File.Sql.39 bug 4440895
445 
446 IS
447       l_row_id                          ROWID;
448 
449       l_debug_mode                       VARCHAR2(1);
450       l_debug_level3                     CONSTANT NUMBER := 3;
451       l_module_name                      VARCHAR2(100) := 'UPDATE_ROW' || g_module_name;
452 
453       CURSOR lock_rows_crs
454       IS
455       SELECT  ROWID
456       FROM    pa_pt_co_impl_statuses
457       WHERE   fin_plan_type_id = p_fin_plan_type_id
458       AND     ci_type_id = p_ci_type_id
459       AND     version_type = DECODE(p_version_type,
460                                     PA_FP_CONSTANTS_PKG.G_ELEMENT_TYPE_BOTH, version_type,
461                                     Nvl(p_version_type,version_type))
462       AND     status_code = Nvl (p_status_code, status_code)
463       FOR     UPDATE NOWAIT;
464 
465       l_row_id_rec                      lock_rows_crs%ROWTYPE;
466 
467 BEGIN
468       x_return_status := FND_API.G_RET_STS_SUCCESS;
469 
470       IF p_pt_co_impl_statuses_id IS NOT NULL THEN
471             IF l_debug_mode = 'Y' THEN
472                   pa_debug.g_err_stage:= 'Lockin Row when p_pt_co_impl_statuses_id is not null';
473                   pa_debug.write(l_module_name,pa_debug.g_err_stage,
474                                         l_debug_level3);
475             END IF;
476 
477             SELECT  ROWID
478             INTO    l_row_id
479             FROM    pa_pt_co_impl_statuses
480             WHERE   pt_co_impl_statuses_id = p_pt_co_impl_statuses_id
481             AND     record_version_number  = Nvl(p_record_version_number, record_version_number)
482             FOR     UPDATE NOWAIT;
483 
484             IF l_debug_mode = 'Y' THEN
485                   pa_debug.g_err_stage:= 'Row Locked when p_pt_co_impl_statuses_id is not null';
486                   pa_debug.write(l_module_name,pa_debug.g_err_stage,
487                                         l_debug_level3);
488             END IF;
489       ELSE
490             IF l_debug_mode = 'Y' THEN
491                   pa_debug.g_err_stage:= 'Locking Row when p_pt_co_impl_statuses_id is null';
492                   pa_debug.write(l_module_name,pa_debug.g_err_stage,
493                                         l_debug_level3);
494             END IF;
495 
496             OPEN lock_rows_crs;
497 
498             LOOP
499                   FETCH lock_rows_crs INTO l_row_id_rec;
500                   EXIT WHEN lock_rows_crs%NOTFOUND;
501             END LOOP;
502 
503             CLOSE lock_rows_crs;
504 
505       END IF;
506 
507 EXCEPTION
508       WHEN OTHERS THEN
509              x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
510              x_msg_count     := 1;
511              x_msg_data      := SQLERRM;
512              FND_MSG_PUB.add_exc_msg( p_pkg_name         => 'PA_PT_CO_IMPL_STATUSES_PKG',
513                                       p_procedure_name   => 'LOCK_ROW');
514              RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
515 
516 END Lock_Row;
517 
518 END PA_PT_CO_IMPL_STATUSES_PKG;