DBA Data[Home] [Help]

PACKAGE BODY: APPS.PA_PROJ_TEMPLATE_SETUP_PUB

Source


4 G_PKG_NAME              CONSTANT VARCHAR2(30) := 'PA_PROJ_TEMPLATE_SETUP_PUB';
1 PACKAGE BODY PA_PROJ_TEMPLATE_SETUP_PUB AS
2 /* $Header: PATMSTPB.pls 120.3 2005/08/22 05:53:44 sunkalya noship $ */
3 
5 
6 -- API name                      : Create_Project_Template
7 -- Type                          : Public API
8 -- Pre-reqs                      : None
9 -- Return Value                  :
10 --
11 -- Parameters
12 --p_project_number              IN VARCHAR2
13 --p_project_name                  IN VARCHAR2
14 --p_project_type                  IN VARCHAR2
15 --p_organization_id         IN NUMBER
16 --p_organization_name           IN VARCHAR2
17 --p_effective_from_date         IN DATE
18 --p_effective_to_date           IN DATE
19 --p_description               IN VARCHAR2
20 
21 PROCEDURE Create_Project_Template(
22  p_api_version        IN    NUMBER  :=1.0,
23  p_init_msg_list          IN    VARCHAR2    :=FND_API.G_TRUE,
24  p_commit               IN  VARCHAR2    :=FND_API.G_FALSE,
25  p_validate_only          IN    VARCHAR2    :=FND_API.G_TRUE,
26  p_validation_level IN  NUMBER  :=FND_API.G_VALID_LEVEL_FULL,
27  p_calling_module         IN    VARCHAR2    :='SELF_SERVICE',
28  p_debug_mode         IN    VARCHAR2    :='N',
32  p_project_type       IN    VARCHAR2,
29  p_max_msg_count          IN    NUMBER  :=PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
30  p_project_number       IN    VARCHAR2,
31  p_project_name       IN    VARCHAR2,
33  p_organization_id  IN    NUMBER      := -9999,
34  p_organization_name    IN    VARCHAR2    := 'JUNK_CHARS',
35  p_effective_from_date  IN    DATE        := TO_DATE( '01-01-1000', 'DD-MM-YYYY' ),
36  p_effective_to_date    IN    DATE        := TO_DATE( '01-01-1000', 'DD-MM-YYYY' ),
37  p_description        IN    VARCHAR2    := 'JUNK_CHARS',
38  p_security_level     IN    NUMBER := 0,
39 -- anlee
40 -- Project Long Name changes
41  p_long_name          IN    VARCHAR2  DEFAULT NULL,
42 -- End of changes
43  p_operating_unit_id  IN    NUMBER, -- 4363092 MOAC changes
44  x_template_id        OUT   NOCOPY NUMBER, --File.Sql.39 bug 4440895
45  x_return_status          OUT   NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
46  x_msg_count          OUT   NOCOPY NUMBER, --File.Sql.39 bug 4440895
47  x_msg_data             OUT     NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
48 ) IS
49    l_api_name                      CONSTANT VARCHAR(30) := 'Create_Project_Template';
50    l_api_version                   CONSTANT NUMBER      := 1.0;
51 
52    l_task_id                       PA_PROJ_ELEMENTS.PROJ_ELEMENT_ID%TYPE;
53    l_return_status                 VARCHAR2(1);
54    l_msg_count                     NUMBER;
55    l_msg_data                      VARCHAR2(250);
56    l_data                          VARCHAR2(250);
57    l_msg_index_out                 NUMBER;
58    l_error_msg_code                VARCHAR2(250);
59 
60    l_organization_id               NUMBER;
61     -- added for Bug fix: 4537865
62     l_new_organization_id	   NUMBER;
63     -- added for Bug fix: 4537865
64    l_organization_name             hr_all_organization_units_tl.name%TYPE; --Bug 2931569
65 BEGIN
66     pa_debug.init_err_stack ('PA_PROJ_TEMPLATE_SETUP_PUB.Create_Project_Template');
67 
68     IF (p_debug_mode = 'Y') THEN
69       pa_debug.debug('PA_PROJ_TEMPLATE_SETUP_PUB.Create_Project_Template begin');
70     END IF;
71 
72     IF (p_commit = FND_API.G_TRUE) THEN
73       savepoint Create_Project_Template;
74     END IF;
75 
76     IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version, p_api_version, l_api_name, g_pkg_name) then
77       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
78     END IF;
79 
80 
81     IF FND_API.TO_BOOLEAN(nvl(p_init_msg_list,FND_API.G_FALSE)) THEN
82       FND_MSG_PUB.initialize;
83     END IF;
84 
85     IF (p_calling_module = 'SELF_SERVICE') OR (p_calling_module = 'EXCHANGE') THEN
86       --Check Carrying out organization name and Carrying out organization Id
87       IF ((p_organization_name <> 'JUNK_CHARS' ) AND
88           (p_organization_name IS NOT NULL)) OR
89          ((p_organization_id <> -9999 ) AND
90           (p_organization_id IS NOT NULL)) THEN
91         --dbms_output.put_line( 'Before Check_OrgName_Or_Id' );
92 
93         IF p_organization_id = -9999
94         THEN
95            l_organization_id := FND_API.G_MISS_NUM;
96         ELSE
97            l_organization_id := p_organization_id;
98         END IF;
99 
100         IF p_organization_name = 'JUNK_CHARS'
101         THEN
102            l_organization_name := FND_API.G_MISS_CHAR;
103         ELSE
104            l_organization_name := p_organization_name;
105         END IF;
106 
107         pa_hr_org_utils.Check_OrgName_Or_Id
108             (p_organization_id      => l_organization_id
109              ,p_organization_name   => l_organization_name
110              ,p_check_id_flag       => 'Y'
111            --,x_organization_id     => l_organization_id		* commented for Bug: 4537865
112              ,x_organization_id	    => l_new_organization_id		-- added for Bug fix: 4537865
113              ,x_return_status       => l_return_status
114              ,x_error_msg_code      => l_error_msg_code);
115 
116         -- added for Bug fix: 4537865
117         IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
118         l_organization_id := l_new_organization_id;
119 	END IF;
120          -- added for Bug fix: 4537866
121 
122         IF l_return_status = FND_API.G_RET_STS_ERROR THEN
123               PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
124                                    p_msg_name       => l_error_msg_code);
125         END IF;
126 
127       END IF; --End Name-Id Conversion
128     END IF;
129 
130     IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
131       x_msg_count := FND_MSG_PUB.count_msg;
132       IF x_msg_count = 1 then
133          pa_interface_utils_pub.get_messages
134          (p_encoded        => FND_API.G_TRUE,
135           p_msg_index      => 1,
136           p_msg_count      => l_msg_count,
137           p_msg_data       => l_msg_data,
138           p_data           => l_data,
139           p_msg_index_out  => l_msg_index_out);
140          x_msg_data := l_data;
141       END IF;
142       raise FND_API.G_EXC_ERROR;
143     END IF;
144 
145     --dbms_output.put_line( 'Before calling PA_PROJ_TEMPLATE_SETUP_PVT.Create_Project_Template ' );
146 
147     PA_PROJ_TEMPLATE_SETUP_PVT.Create_Project_Template(
148          p_api_version         => p_api_version
149         ,p_init_msg_list     => p_init_msg_list
150         ,p_commit                => p_commit
151         ,p_validate_only     => p_validate_only
155         ,p_max_msg_count     => p_max_msg_count
152         ,p_validation_level  => p_validation_level
153         ,p_calling_module    => p_calling_module
154         ,p_debug_mode          => p_debug_mode
156         ,p_project_number      => p_project_number
157         ,p_project_name        => p_project_name
158         ,p_project_type        => p_project_type
159         ,p_organization_id   => l_organization_id
160         ,p_effective_from_date => p_effective_from_date
161         ,p_effective_to_date     => p_effective_to_date
162         ,p_description         => p_description
163         ,p_security_level      => p_security_level
164 -- anlee
165 -- Project Long Name changes
166         ,p_long_name           => p_long_name
167 -- End of changes
168         ,p_operating_unit_id   => p_operating_unit_id -- 4363092 MOAC changes
169         ,x_template_id         => x_template_id
170         ,x_return_status     => l_return_status
171         ,x_msg_count           => l_msg_count
172         ,x_msg_data        => l_msg_data );
173 
174     IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
175       x_msg_count := FND_MSG_PUB.count_msg;
176       IF x_msg_count = 1 then
177          pa_interface_utils_pub.get_messages
178          (p_encoded        => FND_API.G_TRUE,
179           p_msg_index      => 1,
180           p_msg_count      => l_msg_count,
181           p_msg_data       => l_msg_data,
182           p_data           => l_data,
183           p_msg_index_out  => l_msg_index_out);
184          x_msg_data := l_data;
185       END IF;
186       raise FND_API.G_EXC_ERROR;
187     END IF;
188 
189     x_return_status := FND_API.G_RET_STS_SUCCESS;
190 
191     IF (p_commit = FND_API.G_TRUE) THEN
192       COMMIT;
193     END IF;
194 
195     IF (p_debug_mode = 'Y') THEN
196       pa_debug.debug('PA_PROJ_TEMPLATE_SETUP_PUB.Create_Project_Template END');
197     END IF;
198 EXCEPTION
199     when FND_API.G_EXC_ERROR then
200       if p_commit = FND_API.G_TRUE then
201          rollback to Create_Project_Template;
202       end if;
203       x_return_status := FND_API.G_RET_STS_ERROR;
204     when FND_API.G_EXC_UNEXPECTED_ERROR then
205       if p_commit = FND_API.G_TRUE then
206          rollback to Create_Project_Template;
207       end if;
208       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
209       fnd_msg_pub.add_exc_msg(p_pkg_name       => 'PA_PROJ_TEMPLATE_SETUP_PUB',
210                               p_procedure_name => 'Create_Project_Template',
211                               p_error_text     => SUBSTRB(SQLERRM,1,240));
212     when OTHERS then
216       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
213       if p_commit = FND_API.G_TRUE then
214          rollback to Create_Project_Template;
215       end if;
217       fnd_msg_pub.add_exc_msg(p_pkg_name       => 'PA_PROJ_TEMPLATE_SETUP_PUB',
218                               p_procedure_name => 'Create_Project_Template',
219                               p_error_text     => SUBSTRB(SQLERRM,1,240));
220       raise;
221 END Create_Project_Template;
222 
223 -- API name                      : Update_Project_Template
224 -- Type                          : Public API
225 -- Pre-reqs                      : None
226 -- Return Value                  :
227 --
228 -- Parameters
229 --p_project_number              IN VARCHAR2
230 --p_project_name                  IN VARCHAR2
231 --p_project_type                  IN VARCHAR2
232 --p_organization_id         IN NUMBER
233 --p_organization_name           IN VARCHAR2
234 --p_effective_from_date         IN DATE
235 --p_effective_to_date           IN DATE
236 --p_description               IN VARCHAR2
237 --
238 --  History
239 --
240 --  15-FEB-02   Majid Ansari             -Created
241 --
242 --
243 
244 PROCEDURE Update_Project_Template(
245  p_api_version        IN    NUMBER  :=1.0,
246  p_init_msg_list          IN    VARCHAR2    :=FND_API.G_TRUE,
247  p_commit               IN  VARCHAR2    :=FND_API.G_FALSE,
248  p_validate_only          IN    VARCHAR2    :=FND_API.G_TRUE,
249  p_validation_level IN  NUMBER  :=FND_API.G_VALID_LEVEL_FULL,
250  p_calling_module         IN    VARCHAR2    :='SELF_SERVICE',
251  p_debug_mode         IN    VARCHAR2    :='N',
252  p_max_msg_count          IN    NUMBER  :=PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
253  p_project_id           IN    NUMBER,
254  p_project_number       IN    VARCHAR2    := 'JUNK_CHARS',
255  p_project_name       IN    VARCHAR2    := 'JUNK_CHARS',
256  p_project_type       IN    VARCHAR2    := 'JUNK_CHARS',
257  p_organization_id  IN    NUMBER      := -9999,
258  p_organization_name    IN    VARCHAR2    := 'JUNK_CHARS',
259  p_effective_from_date  IN    DATE        := TO_DATE( '01-01-1000', 'DD-MM-YYYY' ),
260  p_effective_to_date    IN    DATE        := TO_DATE( '01-01-1000', 'DD-MM-YYYY' ),
261  p_description        IN    VARCHAR2    := 'JUNK_CHARS',
262  p_security_level     IN    NUMBER := 0,
263 -- anlee
264 -- Project Long Name changes
265  p_long_name          IN    VARCHAR2  DEFAULT NULL,
266 -- End of changes
267  p_record_version_number IN   NUMBER,
268  x_return_status          OUT   NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
269  x_msg_count          OUT   NOCOPY NUMBER, --File.Sql.39 bug 4440895
270  x_msg_data             OUT     NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
271 ) IS
272    l_api_name                      CONSTANT VARCHAR(30) := 'Update_Project_Template';
273    l_api_version                   CONSTANT NUMBER      := 1.0;
274 
275    l_return_status                 VARCHAR2(1);
276    l_msg_count                     NUMBER;
277    l_msg_data                      VARCHAR2(250);
278    l_data                          VARCHAR2(250);
279    l_msg_index_out                 NUMBER;
280    l_error_msg_code                VARCHAR2(250);
281 
282    l_organization_id               NUMBER;
283    -- added for Bug: 4537865
284    l_new_organization_id	   NUMBER;
285     -- added for Bug: 4537865
286    l_organization_name             hr_all_organization_units_tl.name%TYPE; --Bug 2931569
287 
288    l_dummy_char                    VARCHAR2(1);
289 BEGIN
290     pa_debug.init_err_stack ('PA_PROJ_TEMPLATE_SETUP_PUB.Update_Project_Template');
291 
292     IF (p_debug_mode = 'Y') THEN
293       pa_debug.debug('PA_PROJ_TEMPLATE_SETUP_PUB.Update_Project_Template begin');
294     END IF;
295 
296     IF (p_commit = FND_API.G_TRUE) THEN
297       savepoint Update_Project_Template;
298     END IF;
299 
300     IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version, p_api_version, l_api_name, g_pkg_name) then
301       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
305     IF FND_API.TO_BOOLEAN(nvl(p_init_msg_list,FND_API.G_FALSE)) THEN
302     END IF;
303 
304 
306       FND_MSG_PUB.initialize;
307     END IF;
308 
309     IF (p_calling_module = 'SELF_SERVICE') OR (p_calling_module = 'EXCHANGE') THEN
310       --Check Carrying out organization name and Carrying out organization Id
311       IF ((p_organization_name <> 'JUNK_CHARS' ) AND
312           (p_organization_name IS NOT NULL)) OR
313          ((p_organization_id <> -9999 ) AND
314           (p_organization_id IS NOT NULL)) THEN
315         --dbms_output.put_line( 'Before Check_OrgName_Or_Id' );
316 
317         IF p_organization_id = -9999
321            l_organization_id := p_organization_id;
318         THEN
319            l_organization_id := FND_API.G_MISS_NUM;
320         ELSE
322         END IF;
323 
324         IF p_organization_name = 'JUNK_CHARS'
325         THEN
326            l_organization_name := FND_API.G_MISS_CHAR;
327         ELSE
328            l_organization_name := p_organization_name;
329         END IF;
330 
331         pa_hr_org_utils.Check_OrgName_Or_Id
332             (p_organization_id      => l_organization_id
333              ,p_organization_name   => l_organization_name
334              ,p_check_id_flag       => 'Y'
335            --,x_organization_id     => l_organization_id		* commented for Bug fix: 4537865
336              ,x_organization_id     => l_new_organization_id		-- added for Bug fix: 4537865
337              ,x_return_status       => l_return_status
338              ,x_error_msg_code      => l_error_msg_code);
339          -- added for Bug fix: 4537865
340 		 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
341 		 l_organization_id := l_new_organization_id;
342 		 END IF;
343           -- added for Bug fix: 4537865
344         IF l_return_status = FND_API.G_RET_STS_ERROR THEN
345               PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
346                                    p_msg_name       => l_error_msg_code);
347         END IF;
348 
349       END IF; --End Name-Id Conversion
350     END IF;
351 
352     IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
353       x_msg_count := FND_MSG_PUB.count_msg;
354       IF x_msg_count = 1 then
355          pa_interface_utils_pub.get_messages
356          (p_encoded        => FND_API.G_TRUE,
357           p_msg_index      => 1,
358           p_msg_count      => l_msg_count,
359           p_msg_data       => l_msg_data,
360           p_data           => l_data,
361           p_msg_index_out  => l_msg_index_out);
362          x_msg_data := l_data;
363       END IF;
364       raise FND_API.G_EXC_ERROR;
365     END IF;
366 
367     IF p_validate_only <> FND_API.G_TRUE
368     THEN
369         BEGIN
370            SELECT 'x' INTO l_dummy_char
371            FROM  pa_projects_all
372            WHERE project_id             = p_project_id
373            AND record_version_number  = p_record_version_number
374            FOR UPDATE OF record_version_number NOWAIT;
375         EXCEPTION
376            WHEN TIMEOUT_ON_RESOURCE THEN
377                PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
378                                     p_msg_name       => 'PA_XC_ROW_ALREADY_LOCKED');
379                x_msg_data := 'PA_XC_ROW_ALREADY_LOCKED';
380                x_return_status := 'E' ;
381            WHEN NO_DATA_FOUND THEN
382                if p_calling_module = 'FORM' then
383                   PA_UTILS.ADD_MESSAGE(p_app_short_name => 'FND',
384                                        p_msg_name       => 'FORM_RECORD_CHANGED');
385                   x_msg_data := 'FORM_RECORD_CHANGED';
386                else
387                   PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
388                                        p_msg_name       => 'PA_XC_RECORD_CHANGED');
389                   x_msg_data := 'PA_XC_RECORD_CHANGED';
390                end if;
391                x_return_status := 'E' ;
392             WHEN OTHERS THEN
393                IF SQLCODE = -54 THEN
394                   PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
395                                        p_msg_name       => 'PA_XC_ROW_ALREADY_LOCKED');
396                   x_msg_data := 'PA_XC_ROW_ALREADY_LOCKED';
397                   x_return_status := 'E' ;
398                ELSE
399                   raise;
400                END IF;
401         END;
402       ELSE
403          BEGIN
404            SELECT 'x' INTO l_dummy_char
405            FROM  pa_projects_all
406            WHERE project_id             = p_project_id
407            AND record_version_number  = p_record_version_number;
408           EXCEPTION
409             WHEN NO_DATA_FOUND THEN
410                if p_calling_module = 'FORM' then
411                   PA_UTILS.ADD_MESSAGE(p_app_short_name => 'FND',
412                                        p_msg_name       => 'FORM_RECORD_CHANGED');
413                   x_msg_data := 'FORM_RECORD_CHANGED';
414                else
415                   PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
416                                        p_msg_name       => 'PA_XC_RECORD_CHANGED');
417                   x_msg_data := 'PA_XC_RECORD_CHANGED';
418                end if;
419                x_return_status := 'E' ;
420             WHEN OTHERS THEN
421               IF SQLCODE = -54 THEN
422                  PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
423                                       p_msg_name       => 'PA_XC_ROW_ALREADY_LOCKED');
424                  x_msg_data := 'PA_XC_ROW_ALREADY_LOCKED';
425                  x_return_status := 'E' ;
426               END IF;
427           END;
428       end if;
429       l_msg_count := FND_MSG_PUB.count_msg;
430 
431       IF l_msg_count > 0 THEN
432          x_msg_count := l_msg_count;
433          x_return_status := 'E';
434          RAISE  FND_API.G_EXC_ERROR;
435       END IF;
436 
437     --dbms_output.put_line( 'Before calling PA_PROJ_TEMPLATE_SETUP_PVT.Update_Project_Template ' );
438 
439     PA_PROJ_TEMPLATE_SETUP_PVT.Update_Project_Template(
440          p_api_version         => p_api_version
441         ,p_init_msg_list     => p_init_msg_list
442         ,p_commit                => p_commit
443         ,p_validate_only     => p_validate_only
444         ,p_validation_level  => p_validation_level
448         ,p_project_id          => p_project_id
445         ,p_calling_module    => p_calling_module
446         ,p_debug_mode          => p_debug_mode
447         ,p_max_msg_count     => p_max_msg_count
449         ,p_project_number      => p_project_number
450         ,p_project_name        => p_project_name
451         ,p_project_type        => p_project_type
452         ,p_organization_id   => l_organization_id
453         ,p_effective_from_date => p_effective_from_date
454         ,p_effective_to_date     => p_effective_to_date
455         ,p_description         => p_description
456         ,p_security_level      => p_security_level
457 -- anlee
458 -- Project Long Name changes
459         ,p_long_name             => p_long_name
460 -- End of changes
461         ,p_record_version_number => p_record_version_number
462         ,x_return_status     => l_return_status
463         ,x_msg_count           => l_msg_count
464         ,x_msg_data        => l_msg_data );
465 
466     IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
467       x_msg_count := FND_MSG_PUB.count_msg;
468       IF x_msg_count = 1 then
469          pa_interface_utils_pub.get_messages
470          (p_encoded        => FND_API.G_TRUE,
471           p_msg_index      => 1,
472           p_msg_count      => l_msg_count,
473           p_msg_data       => l_msg_data,
474           p_data           => l_data,
475           p_msg_index_out  => l_msg_index_out);
476          x_msg_data := l_data;
477       END IF;
478       raise FND_API.G_EXC_ERROR;
479     END IF;
480 
481     x_return_status := FND_API.G_RET_STS_SUCCESS;
482 
483     IF (p_commit = FND_API.G_TRUE) THEN
484       COMMIT;
485     END IF;
486 
487     IF (p_debug_mode = 'Y') THEN
488       pa_debug.debug('PA_PROJ_TEMPLATE_SETUP_PUB.Update_Project_Template END');
489     END IF;
490 EXCEPTION
491     when FND_API.G_EXC_ERROR then
492       if p_commit = FND_API.G_TRUE then
493          rollback to Update_Project_Template;
494       end if;
495       x_return_status := FND_API.G_RET_STS_ERROR;
496     when FND_API.G_EXC_UNEXPECTED_ERROR then
497       if p_commit = FND_API.G_TRUE then
498          rollback to Update_Project_Template;
499       end if;
500       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
501       fnd_msg_pub.add_exc_msg(p_pkg_name       => 'PA_PROJ_TEMPLATE_SETUP_PUB',
502                               p_procedure_name => 'Update_Project_Template',
503                               p_error_text     => SUBSTRB(SQLERRM,1,240));
504     when OTHERS then
508       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
505       if p_commit = FND_API.G_TRUE then
506          rollback to Update_Project_Template;
507       end if;
509       fnd_msg_pub.add_exc_msg(p_pkg_name       => 'PA_PROJ_TEMPLATE_SETUP_PUB',
510                               p_procedure_name => 'Update_Project_Template',
511                               p_error_text     => SUBSTRB(SQLERRM,1,240));
512       raise;
513 END Update_Project_Template;
514 
515 -- API name                      : Delete_Project_Template
516 -- Type                          : Public API
517 -- Pre-reqs                      : None
518 -- Return Value                  :
519 --
520 -- Parameters
521 -- p_project_id           IN    NUMBER,
522 --
523 --  History
524 --
525 --  15-FEB-02   Majid Ansari             -Created
526 --
527 --
528 
529 PROCEDURE Delete_Project_Template(
530  p_api_version        IN    NUMBER  :=1.0,
531  p_init_msg_list          IN    VARCHAR2    :=FND_API.G_TRUE,
532  p_commit               IN  VARCHAR2    :=FND_API.G_FALSE,
533  p_validate_only          IN    VARCHAR2    :=FND_API.G_TRUE,
534  p_validation_level IN  NUMBER  :=FND_API.G_VALID_LEVEL_FULL,
535  p_calling_module         IN    VARCHAR2    :='SELF_SERVICE',
536  p_debug_mode         IN    VARCHAR2    :='N',
537  p_max_msg_count          IN    NUMBER  :=PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
538  p_project_id           IN    NUMBER,
539  p_record_version_number IN   NUMBER,
540  x_return_status          OUT   NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
541  x_msg_count          OUT   NOCOPY NUMBER, --File.Sql.39 bug 4440895
542  x_msg_data             OUT     NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
543 ) IS
544    l_api_name                      CONSTANT VARCHAR(30) := 'Delete_Project_Template';
545    l_api_version                   CONSTANT NUMBER      := 1.0;
546 
547    l_return_status                 VARCHAR2(1);
548    l_msg_count                     NUMBER;
549    l_msg_data                      VARCHAR2(250);
550    l_data                          VARCHAR2(250);
551    l_msg_index_out                 NUMBER;
552    l_error_msg_code                VARCHAR2(250);
553 
554    l_organization_id               NUMBER;
555    l_dummy_char                    VARCHAR2(1);
556 BEGIN
557     pa_debug.init_err_stack ('PA_PROJ_TEMPLATE_SETUP_PUB.Delete_Project_Template');
558 
559     IF (p_debug_mode = 'Y') THEN
560       pa_debug.debug('PA_PROJ_TEMPLATE_SETUP_PUB.Delete_Project_Template begin');
561     END IF;
562 
563     IF (p_commit = FND_API.G_TRUE) THEN
564       savepoint Delete_Project_Template;
565     END IF;
566 
567     IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version, p_api_version, l_api_name, g_pkg_name) then
568       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
569     END IF;
570 
571 
572     IF FND_API.TO_BOOLEAN(nvl(p_init_msg_list,FND_API.G_FALSE)) THEN
573       FND_MSG_PUB.initialize;
574     END IF;
575 
576     IF p_validate_only <> FND_API.G_TRUE
577     THEN
578         BEGIN
579            SELECT 'x' INTO l_dummy_char
580            FROM  pa_projects_all
581            WHERE project_id             = p_project_id
582            AND record_version_number  = p_record_version_number
583            FOR UPDATE OF record_version_number NOWAIT;
584         EXCEPTION
585            WHEN TIMEOUT_ON_RESOURCE THEN
586                PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
587                                     p_msg_name       => 'PA_XC_ROW_ALREADY_LOCKED');
588                x_msg_data := 'PA_XC_ROW_ALREADY_LOCKED';
589                x_return_status := 'E' ;
590            WHEN NO_DATA_FOUND THEN
591                if p_calling_module = 'FORM' then
592                   PA_UTILS.ADD_MESSAGE(p_app_short_name => 'FND',
593                                        p_msg_name       => 'FORM_RECORD_CHANGED');
594                   x_msg_data := 'FORM_RECORD_CHANGED';
595                else
596                   PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
597                                        p_msg_name       => 'PA_XC_RECORD_CHANGED');
598                   x_msg_data := 'PA_XC_RECORD_CHANGED';
599                end if;
600                x_return_status := 'E' ;
601             WHEN OTHERS THEN
602                IF SQLCODE = -54 THEN
603                   PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
604                                        p_msg_name       => 'PA_XC_ROW_ALREADY_LOCKED');
605                   x_msg_data := 'PA_XC_ROW_ALREADY_LOCKED';
606                   x_return_status := 'E' ;
607                ELSE
608                   raise;
609                END IF;
610         END;
611       ELSE
612          BEGIN
613            SELECT 'x' INTO l_dummy_char
614            FROM  pa_projects_all
615            WHERE project_id             = p_project_id
616            AND record_version_number  = p_record_version_number;
617           EXCEPTION
618             WHEN NO_DATA_FOUND THEN
619                if p_calling_module = 'FORM' then
620                   PA_UTILS.ADD_MESSAGE(p_app_short_name => 'FND',
621                                        p_msg_name       => 'FORM_RECORD_CHANGED');
622                   x_msg_data := 'FORM_RECORD_CHANGED';
623                else
624                   PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
625                                        p_msg_name       => 'PA_XC_RECORD_CHANGED');
626                   x_msg_data := 'PA_XC_RECORD_CHANGED';
627                end if;
628                x_return_status := 'E' ;
629             WHEN OTHERS THEN
630               IF SQLCODE = -54 THEN
631                  PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
635               END IF;
632                                       p_msg_name       => 'PA_XC_ROW_ALREADY_LOCKED');
633                  x_msg_data := 'PA_XC_ROW_ALREADY_LOCKED';
634                  x_return_status := 'E' ;
636           END;
637       end if;
638       l_msg_count := FND_MSG_PUB.count_msg;
639 
640       IF l_msg_count > 0 THEN
641          x_msg_count := l_msg_count;
642          x_return_status := 'E';
643          RAISE  FND_API.G_EXC_ERROR;
644       END IF;
645 
646     PA_PROJ_TEMPLATE_SETUP_PVT.Delete_Project_Template(
647          p_api_version         => p_api_version
648         ,p_init_msg_list     => p_init_msg_list
649         ,p_commit                => p_commit
650         ,p_validate_only     => p_validate_only
651         ,p_validation_level  => p_validation_level
652         ,p_calling_module    => p_calling_module
653         ,p_debug_mode          => p_debug_mode
654         ,p_max_msg_count     => p_max_msg_count
655         ,p_project_id          => p_project_id
656         ,p_record_version_number => p_record_version_number
657         ,x_return_status     => l_return_status
658         ,x_msg_count           => l_msg_count
659         ,x_msg_data        => l_msg_data );
660 
661     IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
662       x_msg_count := FND_MSG_PUB.count_msg;
663       IF x_msg_count = 1 then
664          pa_interface_utils_pub.get_messages
665          (p_encoded        => FND_API.G_TRUE,
666           p_msg_index      => 1,
667           p_msg_count      => l_msg_count,
668           p_msg_data       => l_msg_data,
669           p_data           => l_data,
670           p_msg_index_out  => l_msg_index_out);
671          x_msg_data := l_data;
672       END IF;
673       raise FND_API.G_EXC_ERROR;
674     END IF;
675 
676     x_return_status := FND_API.G_RET_STS_SUCCESS;
677 
678     IF (p_commit = FND_API.G_TRUE) THEN
679       COMMIT;
680     END IF;
681 
682     IF (p_debug_mode = 'Y') THEN
683       pa_debug.debug('PA_PROJ_TEMPLATE_SETUP_PUB.Delete_Project_Template END');
684     END IF;
685 EXCEPTION
686     when FND_API.G_EXC_ERROR then
687       if p_commit = FND_API.G_TRUE then
688          rollback to Delete_Project_Template;
689       end if;
690       x_return_status := FND_API.G_RET_STS_ERROR;
691     when FND_API.G_EXC_UNEXPECTED_ERROR then
692       if p_commit = FND_API.G_TRUE then
693          rollback to Delete_Project_Template;
694       end if;
695       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
696       fnd_msg_pub.add_exc_msg(p_pkg_name       => 'PA_PROJ_TEMPLATE_SETUP_PUB',
697                               p_procedure_name => 'Delete_Project_Template',
698                               p_error_text     => SUBSTRB(SQLERRM,1,240));
699     when OTHERS then
700       if p_commit = FND_API.G_TRUE then
701          rollback to Delete_Project_Template;
702       end if;
703       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
704       fnd_msg_pub.add_exc_msg(p_pkg_name       => 'PA_PROJ_TEMPLATE_SETUP_PUB',
705                               p_procedure_name => 'Delete_Project_Template',
706                               p_error_text     => SUBSTRB(SQLERRM,1,240));
707       raise;
708 END Delete_Project_Template;
709 
710 
711 -- API name                      : Add_Project_Options
712 -- Type                          : Public API
713 -- Pre-reqs                      : None
714 -- Return Value                  :
715 --
716 -- Parameters
717 -- p_project_id           IN    NUMBER,
718 -- p_option_code          IN    VARCHAR
719 --
720 --  History
721 --
722 --  15-FEB-02   Majid Ansari             -Created
723 --
724 --
725 PROCEDURE Add_Project_Options(
726  p_api_version        IN    NUMBER  :=1.0,
727  p_init_msg_list          IN    VARCHAR2    :=FND_API.G_TRUE,
728  p_commit               IN  VARCHAR2    :=FND_API.G_FALSE,
729  p_validate_only          IN    VARCHAR2    :=FND_API.G_TRUE,
730  p_validation_level IN  NUMBER  :=FND_API.G_VALID_LEVEL_FULL,
731  p_calling_module         IN    VARCHAR2    :='SELF_SERVICE',
732  p_debug_mode         IN    VARCHAR2    :='N',
733  p_max_msg_count          IN    NUMBER  :=PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
734  p_project_id           IN    NUMBER,
735  p_option_code          IN    VARCHAR2,
736  p_action               IN    VARCHAR2 := 'ENABLE',
737  x_return_status          OUT   NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
738  x_msg_count          OUT   NOCOPY NUMBER, --File.Sql.39 bug 4440895
739  x_msg_data             OUT     NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
740 ) IS
741    l_api_name                      CONSTANT VARCHAR(30) := 'Add_Project_Options';
742    l_api_version                   CONSTANT NUMBER      := 1.0;
743 
744    l_return_status                 VARCHAR2(1);
745    l_msg_count                     NUMBER;
746    l_msg_data                      VARCHAR2(250);
747    l_data                          VARCHAR2(250);
748    l_msg_index_out                 NUMBER;
749    l_error_msg_code                VARCHAR2(250);
750 
751    l_organization_id               NUMBER;
752 BEGIN
753     pa_debug.init_err_stack ('PA_PROJ_TEMPLATE_SETUP_PUB.Add_Project_Options');
754 
755     IF (p_debug_mode = 'Y') THEN
756       pa_debug.debug('PA_PROJ_TEMPLATE_SETUP_PUB.Add_Project_Options');
757     END IF;
758 
759     IF (p_commit = FND_API.G_TRUE) THEN
760       savepoint Add_Project_Options;
761     END IF;
765     END IF;
762 
763     IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version, p_api_version, l_api_name, g_pkg_name) then
764       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
766 
767 
768     IF FND_API.TO_BOOLEAN(nvl(p_init_msg_list,FND_API.G_FALSE)) THEN
769       FND_MSG_PUB.initialize;
770     END IF;
771 
772     PA_PROJ_TEMPLATE_SETUP_PVT.Add_Project_Options(
773          p_api_version         => p_api_version
774         ,p_init_msg_list     => p_init_msg_list
775         ,p_commit                => p_commit
776         ,p_validate_only     => p_validate_only
777         ,p_validation_level  => p_validation_level
778         ,p_calling_module    => p_calling_module
779         ,p_debug_mode          => p_debug_mode
780         ,p_max_msg_count     => p_max_msg_count
781         ,p_project_id          => p_project_id
782         ,p_option_code         => p_option_code
783         ,p_action              => p_action
784         ,x_return_status     => l_return_status
785         ,x_msg_count           => l_msg_count
786         ,x_msg_data        => l_msg_data );
787 
788     IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
789       x_msg_count := FND_MSG_PUB.count_msg;
790       IF x_msg_count = 1 then
791          pa_interface_utils_pub.get_messages
792          (p_encoded        => FND_API.G_TRUE,
793           p_msg_index      => 1,
794           p_msg_count      => l_msg_count,
795           p_msg_data       => l_msg_data,
796           p_data           => l_data,
797           p_msg_index_out  => l_msg_index_out);
798          x_msg_data := l_data;
799       END IF;
800       raise FND_API.G_EXC_ERROR;
801     END IF;
802 
803     x_return_status := FND_API.G_RET_STS_SUCCESS;
804 
805     IF (p_commit = FND_API.G_TRUE) THEN
806       COMMIT;
807     END IF;
808 
809     IF (p_debug_mode = 'Y') THEN
810       pa_debug.debug('PA_PROJ_TEMPLATE_SETUP_PUB.Add_Project_Options END');
811     END IF;
812 EXCEPTION
813     when FND_API.G_EXC_ERROR then
814       if p_commit = FND_API.G_TRUE then
815          rollback to Add_Project_Options;
816       end if;
817       x_return_status := FND_API.G_RET_STS_ERROR;
818     when FND_API.G_EXC_UNEXPECTED_ERROR then
819       if p_commit = FND_API.G_TRUE then
820          rollback to Add_Project_Options;
821       end if;
822       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
823       fnd_msg_pub.add_exc_msg(p_pkg_name       => 'PA_PROJ_TEMPLATE_SETUP_PUB',
824                               p_procedure_name => 'Add_Project_Options',
825                               p_error_text     => SUBSTRB(SQLERRM,1,240));
826     when OTHERS then
827       if p_commit = FND_API.G_TRUE then
828          rollback to Add_Project_Options;
829       end if;
830       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
831       fnd_msg_pub.add_exc_msg(p_pkg_name       => 'PA_PROJ_TEMPLATE_SETUP_PUB',
832                               p_procedure_name => 'Add_Project_Options',
833                               p_error_text     => SUBSTRB(SQLERRM,1,240));
834       raise;
835 END Add_Project_Options;
836 
837 
838 -- API name                      : Delete_Project_Options
839 -- Type                          : Public API
840 -- Pre-reqs                      : None
841 -- Return Value                  :
842 --
843 -- Parameters
844 -- p_project_id           IN    NUMBER,
845 -- p_option_code          IN    VARCHAR2,
846 -- p_record_version_number IN   NUMBER,
847 --
848 --  History
849 --
850 --  15-FEB-02   Majid Ansari             -Created
851 --
852 --
853 
854 PROCEDURE Delete_Project_Options(
855  p_api_version        IN    NUMBER  :=1.0,
856  p_init_msg_list          IN    VARCHAR2    :=FND_API.G_TRUE,
857  p_commit               IN  VARCHAR2    :=FND_API.G_FALSE,
858  p_validate_only          IN    VARCHAR2    :=FND_API.G_TRUE,
859  p_validation_level IN  NUMBER  :=FND_API.G_VALID_LEVEL_FULL,
860  p_calling_module         IN    VARCHAR2    :='SELF_SERVICE',
861  p_debug_mode         IN    VARCHAR2    :='N',
862  p_max_msg_count          IN    NUMBER  :=PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
863  p_project_id           IN    NUMBER,
864  p_option_code          IN    VARCHAR2,
865  x_return_status          OUT   NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
866  x_msg_count          OUT   NOCOPY NUMBER, --File.Sql.39 bug 4440895
867  x_msg_data             OUT     NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
868 ) IS
869    l_api_name                      CONSTANT VARCHAR(30) := 'Delete_Project_Options';
870    l_api_version                   CONSTANT NUMBER      := 1.0;
871 
872    l_return_status                 VARCHAR2(1);
873    l_msg_count                     NUMBER;
874    l_msg_data                      VARCHAR2(250);
875    l_data                          VARCHAR2(250);
876    l_msg_index_out                 NUMBER;
877    l_error_msg_code                VARCHAR2(250);
878 
879    l_organization_id               NUMBER;
880 BEGIN
881     pa_debug.init_err_stack ('PA_PROJ_TEMPLATE_SETUP_PUB.Delete_Project_Options');
882 
883     IF (p_debug_mode = 'Y') THEN
884       pa_debug.debug('PA_PROJ_TEMPLATE_SETUP_PUB.Delete_Project_Options');
885     END IF;
886 
887     IF (p_commit = FND_API.G_TRUE) THEN
888       savepoint Delete_Project_Options;
889     END IF;
890 
891     IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version, p_api_version, l_api_name, g_pkg_name) then
892       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
893     END IF;
897       FND_MSG_PUB.initialize;
894 
895 
896     IF FND_API.TO_BOOLEAN(nvl(p_init_msg_list,FND_API.G_FALSE)) THEN
898     END IF;
899 
900     PA_PROJ_TEMPLATE_SETUP_PVT.Delete_Project_Options(
901          p_api_version         => p_api_version
902         ,p_init_msg_list     => p_init_msg_list
903         ,p_commit                => p_commit
904         ,p_validate_only     => p_validate_only
905         ,p_validation_level  => p_validation_level
906         ,p_calling_module    => p_calling_module
907         ,p_debug_mode          => p_debug_mode
908         ,p_max_msg_count     => p_max_msg_count
909         ,p_project_id          => p_project_id
910         ,p_option_code         => p_option_code
911         ,x_return_status     => l_return_status
912         ,x_msg_count           => l_msg_count
913         ,x_msg_data        => l_msg_data );
914 
915     IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
916       x_msg_count := FND_MSG_PUB.count_msg;
917       IF x_msg_count = 1 then
918          pa_interface_utils_pub.get_messages
919          (p_encoded        => FND_API.G_TRUE,
920           p_msg_index      => 1,
921           p_msg_count      => l_msg_count,
922           p_msg_data       => l_msg_data,
923           p_data           => l_data,
924           p_msg_index_out  => l_msg_index_out);
925          x_msg_data := l_data;
926       END IF;
927       raise FND_API.G_EXC_ERROR;
928     END IF;
929 
930     x_return_status := FND_API.G_RET_STS_SUCCESS;
931 
932     IF (p_commit = FND_API.G_TRUE) THEN
933       COMMIT;
934     END IF;
935 
936     IF (p_debug_mode = 'Y') THEN
937       pa_debug.debug('PA_PROJ_TEMPLATE_SETUP_PUB.Delete_Project_Options END');
938     END IF;
939 EXCEPTION
940     when FND_API.G_EXC_ERROR then
941       if p_commit = FND_API.G_TRUE then
942          rollback to Delete_Project_Options;
943       end if;
944       x_return_status := FND_API.G_RET_STS_ERROR;
945     when FND_API.G_EXC_UNEXPECTED_ERROR then
946       if p_commit = FND_API.G_TRUE then
947          rollback to Delete_Project_Options;
948       end if;
949       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
950       fnd_msg_pub.add_exc_msg(p_pkg_name       => 'PA_PROJ_TEMPLATE_SETUP_PUB',
951                               p_procedure_name => 'Delete_Project_Options',
952                               p_error_text     => SUBSTRB(SQLERRM,1,240));
953     when OTHERS then
954       if p_commit = FND_API.G_TRUE then
955          rollback to Delete_Project_Options;
956       end if;
957       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
958       fnd_msg_pub.add_exc_msg(p_pkg_name       => 'PA_PROJ_TEMPLATE_SETUP_PUB',
959                               p_procedure_name => 'Delete_Project_Options',
960                               p_error_text     => SUBSTRB(SQLERRM,1,240));
961       raise;
962 END Delete_Project_Options;
963 
964 -- API name                      : Add_Quick_Entry_Field
965 -- Type                          : Public API
966 -- Pre-reqs                      : None
967 -- Return Value                  :
968 --
969 -- Parameters
970 -- p_project_id           IN    NUMBER,
971 -- p_option_code          IN    VARCHAR2,
972 -- p_record_version_number IN   NUMBER,
973 --
974 --  History
975 --
976 --  15-FEB-02   Majid Ansari             -Created
977 --
978 --
979 
980 PROCEDURE Add_Quick_Entry_Field(
981  p_api_version        IN    NUMBER  :=1.0,
982  p_init_msg_list          IN    VARCHAR2    :=FND_API.G_TRUE,
983  p_commit               IN  VARCHAR2    :=FND_API.G_FALSE,
984  p_validate_only          IN    VARCHAR2    :=FND_API.G_TRUE,
985  p_validation_level IN  NUMBER  :=FND_API.G_VALID_LEVEL_FULL,
986  p_calling_module         IN    VARCHAR2    :='SELF_SERVICE',
987  p_debug_mode         IN    VARCHAR2    :='N',
988  p_max_msg_count          IN    NUMBER  :=PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
989  p_project_id         IN    NUMBER  ,
990  p_sort_order         IN    NUMBER  ,
991  p_field_name         IN    VARCHAR2    := 'JUNK_CHARS',
992  p_field_meaning          IN    VARCHAR2    := 'JUNK_CHARS',
993  p_specification          IN    VARCHAR2    := 'JUNK_CHARS',
994  p_limiting_value         IN    VARCHAR2    := 'JUNK_CHARS',
995  p_prompt               IN  VARCHAR2    ,
996  p_required_flag          IN    VARCHAR2    := 'N',
997  x_return_status          OUT   NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
998  x_msg_count          OUT   NOCOPY NUMBER, --File.Sql.39 bug 4440895
999  x_msg_data             OUT     NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
1000 ) IS
1001    l_api_name                      CONSTANT VARCHAR(30) := 'Add_Quick_Entry_Field';
1002    l_api_version                   CONSTANT NUMBER      := 1.0;
1003 
1004    l_return_status                 VARCHAR2(1);
1005    l_msg_count                     NUMBER;
1006    l_msg_data                      VARCHAR2(250);
1007    l_data                          VARCHAR2(250);
1008    l_msg_index_out                 NUMBER;
1009    l_error_msg_code                VARCHAR2(250);
1010 
1011    l_organization_id               NUMBER;
1012    l_field_name                    VARCHAR2(80);
1013    l_limiting_value                VARCHAR2(80);
1014 BEGIN
1015     x_return_status := FND_API.G_RET_STS_SUCCESS;
1016 
1017     pa_debug.init_err_stack ('PA_PROJ_TEMPLATE_SETUP_PUB.Add_Quick_Entry_Field');
1018 
1019     IF (p_debug_mode = 'Y') THEN
1020       pa_debug.debug('PA_PROJ_TEMPLATE_SETUP_PUB.Add_Quick_Entry_Field');
1021     END IF;
1022 
1023     IF (p_commit = FND_API.G_TRUE) THEN
1024       savepoint Add_Quick_Entry_Field;
1025     END IF;
1026 
1030 
1027     IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version, p_api_version, l_api_name, g_pkg_name) then
1028       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1029     END IF;
1031     IF FND_API.TO_BOOLEAN(nvl(p_init_msg_list,FND_API.G_FALSE)) THEN
1032       FND_MSG_PUB.initialize;
1033     END IF;
1034 
1035     IF p_sort_order IS NULL
1036     THEN
1037         PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
1038                              p_msg_name       => 'PA_SETUP_ORDER_REQ' );
1039         x_msg_data := 'PA_SETUP_ORDER_REQ';
1040         x_return_status := 'E';
1041         RAISE  FND_API.G_EXC_ERROR;
1042     END IF;
1043 
1044     IF (  p_field_name IS NOT NULL AND p_field_name <> 'JUNK_CHARS' )
1045     THEN
1046         l_field_name := p_field_name;
1047     ELSIF (  p_field_meaning IS NOT NULL AND p_field_meaning <> 'JUNK_CHARS' )
1048     THEN
1049         PA_PROJ_TEMPLATE_SETUP_UTILS.Get_Field_name(
1050                         p_field_name_meaning     => p_field_meaning
1051                        ,x_field_name             => l_field_name
1052                        ,x_return_status        => l_return_status
1053                        ,x_error_msg_code         => l_error_msg_code
1054                     );
1055         IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1056               PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
1057                                    p_msg_name       => l_error_msg_code);
1058         END IF;
1059     ELSE
1060         PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
1061                              p_msg_name       => 'PA_SETUP_FIELD_NAME_REQ' );
1062         x_msg_data := 'PA_SETUP_FIELD_NAME_REQ';
1063         x_return_status := 'E';
1064         RAISE  FND_API.G_EXC_ERROR;
1065     END IF;
1066 
1067     IF p_prompt IS NULL
1068     THEN
1069         PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
1073         RAISE  FND_API.G_EXC_ERROR;
1070                              p_msg_name       => 'PA_SETUP_PROMPT_REQ' );
1071         x_msg_data := 'PA_SETUP_PROMPT_REQ';
1072         x_return_status := 'E';
1074     END IF;
1075 
1076     IF ( p_limiting_value IS NOT NULL AND p_limiting_value <> 'JUNK_CHARS' )
1077     THEN
1078         l_limiting_value := p_limiting_value;
1079     ELSIF (  p_specification IS NOT NULL AND p_specification <> 'JUNK_CHARS' )
1080     THEN
1081         PA_PROJ_TEMPLATE_SETUP_UTILS.Get_limiting_value(
1082                         p_field_name             => l_field_name
1083                        ,p_specification          => p_specification
1084                        ,x_limiting_value         => l_limiting_value
1085                        ,x_return_status        => l_return_status
1086                        ,x_error_msg_code         => l_error_msg_code
1087                     );
1088         IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1089               PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
1090                                    p_msg_name       => l_error_msg_code);
1091         END IF;
1092     ELSE
1093        l_limiting_value := null;
1094     END IF;
1095 
1096     IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1097       x_msg_count := FND_MSG_PUB.count_msg;
1098       IF x_msg_count = 1 then
1099          pa_interface_utils_pub.get_messages
1100          (p_encoded        => FND_API.G_TRUE,
1101           p_msg_index      => 1,
1102           p_msg_count      => l_msg_count,
1103           p_msg_data       => l_msg_data,
1104           p_data           => l_data,
1105           p_msg_index_out  => l_msg_index_out);
1106          x_msg_data := l_data;
1107       END IF;
1108       raise FND_API.G_EXC_ERROR;
1109     END IF;
1110 
1111     PA_PROJ_TEMPLATE_SETUP_PVT.Add_Quick_Entry_Field(
1112          p_api_version         => p_api_version
1113         ,p_init_msg_list     => p_init_msg_list
1114         ,p_commit                => p_commit
1115         ,p_validate_only     => p_validate_only
1116         ,p_validation_level  => p_validation_level
1117         ,p_calling_module    => p_calling_module
1118         ,p_debug_mode          => p_debug_mode
1119         ,p_max_msg_count     => p_max_msg_count
1120         ,p_project_id          => p_project_id
1121         ,p_sort_order          => p_sort_order
1122         ,p_field_name          => l_field_name
1123         ,p_limiting_value    => l_limiting_value
1124         ,p_prompt                => p_prompt
1128         ,x_msg_data        => l_msg_data );
1125         ,p_required_flag     => p_required_flag
1126         ,x_return_status     => l_return_status
1127         ,x_msg_count           => l_msg_count
1129 
1130     IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1131       x_msg_count := FND_MSG_PUB.count_msg;
1132       IF x_msg_count = 1 then
1133          pa_interface_utils_pub.get_messages
1134          (p_encoded        => FND_API.G_TRUE,
1135           p_msg_index      => 1,
1136           p_msg_count      => l_msg_count,
1137           p_msg_data       => l_msg_data,
1138           p_data           => l_data,
1139           p_msg_index_out  => l_msg_index_out);
1140          x_msg_data := l_data;
1141       END IF;
1142       raise FND_API.G_EXC_ERROR;
1143     END IF;
1144 
1145     x_return_status := FND_API.G_RET_STS_SUCCESS;
1146 
1147     IF (p_commit = FND_API.G_TRUE) THEN
1148       COMMIT;
1149     END IF;
1150 
1151     IF (p_debug_mode = 'Y') THEN
1152       pa_debug.debug('PA_PROJ_TEMPLATE_SETUP_PUB.Add_Quick_Entry_Field END');
1153     END IF;
1154 EXCEPTION
1155     when FND_API.G_EXC_ERROR then
1156       if p_commit = FND_API.G_TRUE then
1157          rollback to Add_Quick_Entry_Field;
1158       end if;
1159       x_return_status := FND_API.G_RET_STS_ERROR;
1160     when FND_API.G_EXC_UNEXPECTED_ERROR then
1161       if p_commit = FND_API.G_TRUE then
1162          rollback to Add_Quick_Entry_Field;
1163       end if;
1164       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1165       fnd_msg_pub.add_exc_msg(p_pkg_name       => 'PA_PROJ_TEMPLATE_SETUP_PUB',
1166                               p_procedure_name => 'Add_Quick_Entry_Field',
1167                               p_error_text     => SUBSTRB(SQLERRM,1,240));
1168     when OTHERS then
1169       if p_commit = FND_API.G_TRUE then
1170          rollback to Add_Quick_Entry_Field;
1171       end if;
1172       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1173       fnd_msg_pub.add_exc_msg(p_pkg_name       => 'PA_PROJ_TEMPLATE_SETUP_PUB',
1174                               p_procedure_name => 'Add_Quick_Entry_Field',
1175                               p_error_text     => SUBSTRB(SQLERRM,1,240));
1176       raise;
1177 END Add_Quick_Entry_Field;
1178 
1179 -- API name                      : Update_Quick_Entry_Field
1180 -- Type                          : Public API
1181 -- Pre-reqs                      : None
1182 -- Return Value                  :
1183 --
1184 -- Parameters
1185 -- p_project_id           IN    NUMBER,
1186 -- p_option_code          IN    VARCHAR2,
1187 -- p_record_version_number IN   NUMBER,
1188 --
1189 --  History
1190 --
1191 --  15-FEB-02   Majid Ansari             -Created
1192 --
1193 --
1194 
1195 PROCEDURE Update_Quick_Entry_Field(
1196  p_api_version        IN    NUMBER  :=1.0,
1197  p_init_msg_list          IN    VARCHAR2    :=FND_API.G_TRUE,
1198  p_commit               IN  VARCHAR2    :=FND_API.G_FALSE,
1199  p_validate_only          IN    VARCHAR2    :=FND_API.G_TRUE,
1200  p_validation_level IN  NUMBER  :=FND_API.G_VALID_LEVEL_FULL,
1201  p_calling_module         IN    VARCHAR2    :='SELF_SERVICE',
1202  p_debug_mode         IN    VARCHAR2    :='N',
1203  p_max_msg_count          IN    NUMBER  :=PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
1204  p_project_id         IN    NUMBER  ,
1205  p_row_id               IN    VARCHAR2    ,
1206  p_sort_order         IN    NUMBER  ,
1207  p_field_name         IN    VARCHAR2    := 'JUNK_CHARS',
1208  p_field_meaning          IN    VARCHAR2    := 'JUNK_CHARS',
1209  p_specification          IN    VARCHAR2    := 'JUNK_CHARS',
1210  p_limiting_value         IN    VARCHAR2    := 'JUNK_CHARS',
1211  p_prompt               IN  VARCHAR2    ,
1212  p_required_flag          IN    VARCHAR2    := 'N',
1213  p_record_version_number IN   NUMBER,
1214  x_return_status          OUT   NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
1215  x_msg_count          OUT   NOCOPY NUMBER, --File.Sql.39 bug 4440895
1216  x_msg_data             OUT     NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
1217 ) IS
1218    l_api_name                      CONSTANT VARCHAR(30) := 'Update_Quick_Entry_Field';
1222    l_msg_count                     NUMBER;
1219    l_api_version                   CONSTANT NUMBER      := 1.0;
1220 
1221    l_return_status                 VARCHAR2(1);
1223    l_msg_data                      VARCHAR2(250);
1224    l_data                          VARCHAR2(250);
1225    l_msg_index_out                 NUMBER;
1226    l_error_msg_code                VARCHAR2(250);
1227 
1228    l_organization_id               NUMBER;
1229 
1230    l_field_name                    VARCHAR2(80);
1231    l_field_name2                   VARCHAR2(80);
1235    CURSOR cur_pa_overrides
1232    l_limiting_value                VARCHAR2(80);
1233    l_dummy_char                    VARCHAR2(1);
1234 
1236    IS
1237      SELECT field_name
1238        FROM pa_project_copy_overrides
1239       WHERE rowid = p_row_id;
1240 BEGIN
1241     x_return_status := FND_API.G_RET_STS_SUCCESS;
1242 
1243     pa_debug.init_err_stack ('PA_PROJ_TEMPLATE_SETUP_PUB.Update_Quick_Entry_Field');
1244 
1245     IF (p_debug_mode = 'Y') THEN
1246       pa_debug.debug('PA_PROJ_TEMPLATE_SETUP_PUB.Update_Quick_Entry_Field');
1247     END IF;
1248 
1249     IF (p_commit = FND_API.G_TRUE) THEN
1250       savepoint Update_Quick_Entry_Field;
1251     END IF;
1252 
1253     IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version, p_api_version, l_api_name, g_pkg_name) then
1254       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1255     END IF;
1256 
1257 
1258     IF FND_API.TO_BOOLEAN(nvl(p_init_msg_list,FND_API.G_FALSE)) THEN
1259       FND_MSG_PUB.initialize;
1260     END IF;
1261 
1262     IF p_sort_order IS NULL
1263     THEN
1264         PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
1265                              p_msg_name       => 'PA_SETUP_ORDER_REQ' );
1266         x_msg_data := 'PA_SETUP_ORDER_REQ';
1267         x_return_status := 'E';
1268         RAISE  FND_API.G_EXC_ERROR;
1269     END IF;
1270 
1271     IF (  p_field_name IS NOT NULL AND p_field_name <> 'JUNK_CHARS' )
1272     THEN
1273         l_field_name := p_field_name;
1274     ELSIF (  p_field_meaning IS NOT NULL AND p_field_meaning <> 'JUNK_CHARS' )
1275     THEN
1276         PA_PROJ_TEMPLATE_SETUP_UTILS.Get_Field_name(
1277                         p_field_name_meaning     => p_field_meaning
1278                        ,x_field_name             => l_field_name
1279                        ,x_return_status        => l_return_status
1280                        ,x_error_msg_code         => l_error_msg_code
1281                     );
1282         IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1283               PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
1284                                    p_msg_name       => l_error_msg_code);
1285         END IF;
1286     ELSE
1287         PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
1288                              p_msg_name       => 'PA_SETUP_FIELD_NAME_REQ' );
1289         x_msg_data := 'PA_SETUP_FIELD_NAME_REQ';
1290         x_return_status := 'E';
1291         RAISE  FND_API.G_EXC_ERROR;
1292     END IF;
1293 
1294     OPEN cur_pa_overrides;
1295     FETCH cur_pa_overrides INTO l_field_name2;
1296     CLOSE cur_pa_overrides;
1297 
1298     IF (l_field_name2 = 'SEGMENT1' OR l_field_name2 = 'NAME') AND
1299         l_field_name <> l_field_name2
1300     THEN
1301         PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
1302                              p_msg_name       => 'PA_SETUP_CANT_MODFY_OVER' );
1303         x_msg_data := 'PA_SETUP_CANT_MODFY_OVER';
1304         x_return_status := 'E';
1305         RAISE  FND_API.G_EXC_ERROR;
1306     END IF;
1307 
1308     IF p_prompt IS NULL
1309     THEN
1310         PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
1311                              p_msg_name       => 'PA_SETUP_PROMPT_REQ' );
1312         x_msg_data := 'PA_SETUP_PROMPT_REQ';
1313         x_return_status := 'E';
1314         RAISE  FND_API.G_EXC_ERROR;
1315     END IF;
1316 
1317     IF ( p_limiting_value IS NOT NULL AND p_limiting_value <> 'JUNK_CHARS' )
1318     THEN
1319         l_limiting_value := p_limiting_value;
1320     ELSIF (  p_specification IS NOT NULL AND p_specification <> 'JUNK_CHARS' )
1321     THEN
1322         PA_PROJ_TEMPLATE_SETUP_UTILS.Get_limiting_value(
1323                         p_field_name             => l_field_name
1324                        ,p_specification          => p_specification
1325                        ,x_limiting_value         => l_limiting_value
1326                        ,x_return_status        => l_return_status
1327                        ,x_error_msg_code         => l_error_msg_code
1328                     );
1329         IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1330               PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
1331                                    p_msg_name       => l_error_msg_code);
1332         END IF;
1333     ELSE
1334        l_limiting_value := null;
1335     END IF;
1336 
1337     IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1338       x_msg_count := FND_MSG_PUB.count_msg;
1339       IF x_msg_count = 1 then
1340          pa_interface_utils_pub.get_messages
1341          (p_encoded        => FND_API.G_TRUE,
1342           p_msg_index      => 1,
1343           p_msg_count      => l_msg_count,
1344           p_msg_data       => l_msg_data,
1345           p_data           => l_data,
1346           p_msg_index_out  => l_msg_index_out);
1347          x_msg_data := l_data;
1348       END IF;
1349       raise FND_API.G_EXC_ERROR;
1350     END IF;
1351 
1352     IF p_validate_only <> FND_API.G_TRUE
1353     THEN
1354         BEGIN
1355            SELECT 'x' INTO l_dummy_char
1356            FROM  pa_project_copy_overrides
1357            WHERE project_id             = p_project_id
1358            AND record_version_number  = p_record_version_number
1359            AND rowid = p_row_id
1360            FOR UPDATE OF record_version_number NOWAIT;
1361         EXCEPTION
1362            WHEN TIMEOUT_ON_RESOURCE THEN
1363                PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
1367            WHEN NO_DATA_FOUND THEN
1364                                     p_msg_name       => 'PA_XC_ROW_ALREADY_LOCKED');
1365                x_msg_data := 'PA_XC_ROW_ALREADY_LOCKED';
1366                x_return_status := 'E' ;
1368                if p_calling_module = 'FORM' then
1369                   PA_UTILS.ADD_MESSAGE(p_app_short_name => 'FND',
1370                                        p_msg_name       => 'FORM_RECORD_CHANGED');
1371                   x_msg_data := 'FORM_RECORD_CHANGED';
1372                else
1373                   PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
1374                                        p_msg_name       => 'PA_XC_RECORD_CHANGED');
1375                   x_msg_data := 'PA_XC_RECORD_CHANGED';
1376                end if;
1377                x_return_status := 'E' ;
1378             WHEN OTHERS THEN
1379                IF SQLCODE = -54 THEN
1380                   PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
1381                                        p_msg_name       => 'PA_XC_ROW_ALREADY_LOCKED');
1382                   x_msg_data := 'PA_XC_ROW_ALREADY_LOCKED';
1383                   x_return_status := 'E' ;
1384                ELSE
1385                   raise;
1386                END IF;
1387         END;
1388       ELSE
1389          BEGIN
1390            SELECT 'x' INTO l_dummy_char
1391            FROM  pa_project_copy_overrides
1392            WHERE project_id             = p_project_id
1393            AND rowid = p_row_id
1394            AND record_version_number  = p_record_version_number;
1395           EXCEPTION
1396             WHEN NO_DATA_FOUND THEN
1397                if p_calling_module = 'FORM' then
1398                   PA_UTILS.ADD_MESSAGE(p_app_short_name => 'FND',
1399                                        p_msg_name       => 'FORM_RECORD_CHANGED');
1400                   x_msg_data := 'FORM_RECORD_CHANGED';
1401                else
1402                   PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
1403                                        p_msg_name       => 'PA_XC_RECORD_CHANGED');
1404                   x_msg_data := 'PA_XC_RECORD_CHANGED';
1405                end if;
1406                x_return_status := 'E' ;
1407             WHEN OTHERS THEN
1408               IF SQLCODE = -54 THEN
1409                  PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
1410                                       p_msg_name       => 'PA_XC_ROW_ALREADY_LOCKED');
1411                  x_msg_data := 'PA_XC_ROW_ALREADY_LOCKED';
1412                  x_return_status := 'E' ;
1413               END IF;
1414           END;
1415       end if;
1416       l_msg_count := FND_MSG_PUB.count_msg;
1417 
1418       IF l_msg_count > 0 THEN
1419          x_msg_count := l_msg_count;
1420          x_return_status := 'E';
1421          RAISE  FND_API.G_EXC_ERROR;
1422       END IF;
1423 
1424     PA_PROJ_TEMPLATE_SETUP_PVT.Update_Quick_Entry_Field(
1425          p_api_version         => p_api_version
1426         ,p_init_msg_list     => p_init_msg_list
1427         ,p_commit                => p_commit
1428         ,p_validate_only     => p_validate_only
1429         ,p_validation_level  => p_validation_level
1430         ,p_calling_module    => p_calling_module
1431         ,p_debug_mode          => p_debug_mode
1432         ,p_max_msg_count     => p_max_msg_count
1433         ,p_project_id          => p_project_id
1434         ,p_row_id              => p_row_id
1435         ,p_sort_order          => p_sort_order
1436         ,p_field_name          => l_field_name
1437         ,p_limiting_value    => l_limiting_value
1438         ,p_prompt                => p_prompt
1439         ,p_required_flag     => p_required_flag
1440         ,p_record_version_number => p_record_version_number
1441         ,x_return_status     => l_return_status
1442         ,x_msg_count           => l_msg_count
1443         ,x_msg_data        => l_msg_data );
1444 
1445     IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1446       x_msg_count := FND_MSG_PUB.count_msg;
1447       IF x_msg_count = 1 then
1448          pa_interface_utils_pub.get_messages
1449          (p_encoded        => FND_API.G_TRUE,
1450           p_msg_index      => 1,
1451           p_msg_count      => l_msg_count,
1452           p_msg_data       => l_msg_data,
1453           p_data           => l_data,
1454           p_msg_index_out  => l_msg_index_out);
1455          x_msg_data := l_data;
1456       END IF;
1457       raise FND_API.G_EXC_ERROR;
1458     END IF;
1459 
1460     x_return_status := FND_API.G_RET_STS_SUCCESS;
1461 
1462     IF (p_commit = FND_API.G_TRUE) THEN
1463       COMMIT;
1464     END IF;
1465 
1466     IF (p_debug_mode = 'Y') THEN
1467       pa_debug.debug('PA_PROJ_TEMPLATE_SETUP_PUB.Update_Quick_Entry_Field END');
1468     END IF;
1469 EXCEPTION
1470     when FND_API.G_EXC_ERROR then
1471       if p_commit = FND_API.G_TRUE then
1472          rollback to Update_Quick_Entry_Field;
1473       end if;
1474       x_return_status := FND_API.G_RET_STS_ERROR;
1475     when FND_API.G_EXC_UNEXPECTED_ERROR then
1476       if p_commit = FND_API.G_TRUE then
1477          rollback to Update_Quick_Entry_Field;
1478       end if;
1479       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1480       fnd_msg_pub.add_exc_msg(p_pkg_name       => 'PA_PROJ_TEMPLATE_SETUP_PUB',
1481                               p_procedure_name => 'Update_Quick_Entry_Field',
1482                               p_error_text     => SUBSTRB(SQLERRM,1,240));
1483     when OTHERS then
1484       if p_commit = FND_API.G_TRUE then
1485          rollback to Update_Quick_Entry_Field;
1486       end if;
1487       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1488       fnd_msg_pub.add_exc_msg(p_pkg_name       => 'PA_PROJ_TEMPLATE_SETUP_PUB',
1492 END Update_Quick_Entry_Field;
1489                               p_procedure_name => 'Update_Quick_Entry_Field',
1490                               p_error_text     => SUBSTRB(SQLERRM,1,240));
1491       raise;
1493 
1494 
1495 -- API name                      : Delete_Quick_Entry_Field
1496 -- Type                          : Public API
1497 -- Pre-reqs                      : None
1498 -- Return Value                  :
1499 --
1500 -- Parameters
1501 --p_project_id  IN  NUMBER  No  Not Null
1502 --p_field_name  IN  VARCHAR2    No      FND_API.G_MISS_CHAR
1503 --p_record_version_number   IN  NUMBER  No  not null
1504 --
1505 --  History
1506 --
1507 --  15-FEB-02   Majid Ansari             -Created
1508 --
1509 --
1510 
1511 PROCEDURE Delete_Quick_Entry_Field(
1512  p_api_version        IN    NUMBER  :=1.0,
1513  p_init_msg_list          IN    VARCHAR2    :=FND_API.G_TRUE,
1514  p_commit               IN  VARCHAR2    :=FND_API.G_FALSE,
1515  p_validate_only          IN    VARCHAR2    :=FND_API.G_TRUE,
1516  p_validation_level IN  NUMBER  :=FND_API.G_VALID_LEVEL_FULL,
1517  p_calling_module         IN    VARCHAR2    :='SELF_SERVICE',
1518  p_debug_mode         IN    VARCHAR2    :='N',
1519  p_max_msg_count          IN    NUMBER  :=PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM,
1520  p_project_id         IN    NUMBER,
1521  p_row_id               IN    VARCHAR2,
1522  p_record_version_number IN NUMBER,
1523  x_return_status          OUT   NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
1524  x_msg_count          OUT   NOCOPY NUMBER, --File.Sql.39 bug 4440895
1525  x_msg_data             OUT     NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
1526 ) IS
1530    l_return_status                 VARCHAR2(1);
1527    l_api_name                      CONSTANT VARCHAR(30) := 'Delete_Quick_Entry_Field';
1528    l_api_version                   CONSTANT NUMBER      := 1.0;
1529 
1531    l_msg_count                     NUMBER;
1532    l_msg_data                      VARCHAR2(250);
1533    l_data                          VARCHAR2(250);
1534    l_msg_index_out                 NUMBER;
1535    l_error_msg_code                VARCHAR2(250);
1536 
1537    l_organization_id               NUMBER;
1538    l_dummy_char                    VARCHAR2(1);
1539 BEGIN
1540     pa_debug.init_err_stack ('PA_PROJ_TEMPLATE_SETUP_PUB.Delete_Quick_Entry_Field');
1541 
1542     IF (p_debug_mode = 'Y') THEN
1543       pa_debug.debug('PA_PROJ_TEMPLATE_SETUP_PUB.Delete_Quick_Entry_Field');
1544     END IF;
1545 
1546     IF (p_commit = FND_API.G_TRUE) THEN
1547       savepoint Delete_Quick_Entry_Field;
1548     END IF;
1549 
1550     IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version, p_api_version, l_api_name, g_pkg_name) then
1551       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1552     END IF;
1553 
1554 
1555     IF FND_API.TO_BOOLEAN(nvl(p_init_msg_list,FND_API.G_FALSE)) THEN
1556       FND_MSG_PUB.initialize;
1557     END IF;
1558 
1559     IF p_validate_only <> FND_API.G_TRUE
1560     THEN
1561         BEGIN
1562            SELECT 'x' INTO l_dummy_char
1563            FROM  pa_project_copy_overrides
1564            WHERE project_id             = p_project_id
1565            AND record_version_number  = p_record_version_number
1566            AND rowid = p_row_id
1567            FOR UPDATE OF record_version_number NOWAIT;
1568         EXCEPTION
1569            WHEN TIMEOUT_ON_RESOURCE THEN
1570                PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
1571                                     p_msg_name       => 'PA_XC_ROW_ALREADY_LOCKED');
1572                x_msg_data := 'PA_XC_ROW_ALREADY_LOCKED';
1573                x_return_status := 'E' ;
1574            WHEN NO_DATA_FOUND THEN
1575                if p_calling_module = 'FORM' then
1576                   PA_UTILS.ADD_MESSAGE(p_app_short_name => 'FND',
1577                                        p_msg_name       => 'FORM_RECORD_CHANGED');
1578                   x_msg_data := 'FORM_RECORD_CHANGED';
1579                else
1580                   PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
1581                                        p_msg_name       => 'PA_XC_RECORD_CHANGED');
1582                   x_msg_data := 'PA_XC_RECORD_CHANGED';
1583                end if;
1584                x_return_status := 'E' ;
1585             WHEN OTHERS THEN
1586                IF SQLCODE = -54 THEN
1587                   PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
1588                                        p_msg_name       => 'PA_XC_ROW_ALREADY_LOCKED');
1589                   x_msg_data := 'PA_XC_ROW_ALREADY_LOCKED';
1590                   x_return_status := 'E' ;
1594         END;
1591                ELSE
1592                   raise;
1593                END IF;
1595       ELSE
1596          BEGIN
1597            SELECT 'x' INTO l_dummy_char
1598            FROM  pa_project_copy_overrides
1599            WHERE project_id             = p_project_id
1600            AND rowid = p_row_id
1601            AND record_version_number  = p_record_version_number;
1602           EXCEPTION
1603             WHEN NO_DATA_FOUND THEN
1604                if p_calling_module = 'FORM' then
1605                   PA_UTILS.ADD_MESSAGE(p_app_short_name => 'FND',
1606                                        p_msg_name       => 'FORM_RECORD_CHANGED');
1607                   x_msg_data := 'FORM_RECORD_CHANGED';
1608                else
1609                   PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
1610                                        p_msg_name       => 'PA_XC_RECORD_CHANGED');
1611                   x_msg_data := 'PA_XC_RECORD_CHANGED';
1612                end if;
1613                x_return_status := 'E' ;
1614             WHEN OTHERS THEN
1615               IF SQLCODE = -54 THEN
1616                  PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
1617                                       p_msg_name       => 'PA_XC_ROW_ALREADY_LOCKED');
1618                  x_msg_data := 'PA_XC_ROW_ALREADY_LOCKED';
1619                  x_return_status := 'E' ;
1620               END IF;
1621           END;
1622       end if;
1623       l_msg_count := FND_MSG_PUB.count_msg;
1624 
1625       IF l_msg_count > 0 THEN
1626          x_msg_count := l_msg_count;
1627          x_return_status := 'E';
1628          RAISE  FND_API.G_EXC_ERROR;
1629       END IF;
1630 
1631     PA_PROJ_TEMPLATE_SETUP_PVT.Delete_Quick_Entry_Field(
1632          p_api_version         => p_api_version
1633         ,p_init_msg_list     => p_init_msg_list
1634         ,p_commit                => p_commit
1635         ,p_validate_only     => p_validate_only
1636         ,p_validation_level  => p_validation_level
1637         ,p_calling_module    => p_calling_module
1638         ,p_debug_mode          => p_debug_mode
1639         ,p_max_msg_count     => p_max_msg_count
1640         ,p_project_id          => p_project_id
1641         ,p_row_id              => p_row_id
1642         ,p_record_version_number => p_record_version_number
1643         ,x_return_status     => l_return_status
1644         ,x_msg_count           => l_msg_count
1645         ,x_msg_data        => l_msg_data );
1646 
1647     IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1648       x_msg_count := FND_MSG_PUB.count_msg;
1649       IF x_msg_count = 1 then
1650          pa_interface_utils_pub.get_messages
1651          (p_encoded        => FND_API.G_TRUE,
1652           p_msg_index      => 1,
1653           p_msg_count      => l_msg_count,
1654           p_msg_data       => l_msg_data,
1655           p_data           => l_data,
1656           p_msg_index_out  => l_msg_index_out);
1657          x_msg_data := l_data;
1658       END IF;
1659       raise FND_API.G_EXC_ERROR;
1660     END IF;
1661 
1662     x_return_status := FND_API.G_RET_STS_SUCCESS;
1663 
1664     IF (p_commit = FND_API.G_TRUE) THEN
1665       COMMIT;
1666     END IF;
1667 
1668     IF (p_debug_mode = 'Y') THEN
1669       pa_debug.debug('PA_PROJ_TEMPLATE_SETUP_PUB.Delete_Quick_Entry_Field END');
1670     END IF;
1671 EXCEPTION
1672     when FND_API.G_EXC_ERROR then
1673       if p_commit = FND_API.G_TRUE then
1674          rollback to Delete_Quick_Entry_Field;
1675       end if;
1676       x_return_status := FND_API.G_RET_STS_ERROR;
1677     when FND_API.G_EXC_UNEXPECTED_ERROR then
1678       if p_commit = FND_API.G_TRUE then
1679          rollback to Delete_Quick_Entry_Field;
1680       end if;
1684                               p_error_text     => SUBSTRB(SQLERRM,1,240));
1681       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1682       fnd_msg_pub.add_exc_msg(p_pkg_name       => 'PA_PROJ_TEMPLATE_SETUP_PUB',
1683                               p_procedure_name => 'Delete_Quick_Entry_Field',
1685     when OTHERS then
1686       if p_commit = FND_API.G_TRUE then
1687          rollback to Delete_Quick_Entry_Field;
1688       end if;
1689       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1690       fnd_msg_pub.add_exc_msg(p_pkg_name       => 'PA_PROJ_TEMPLATE_SETUP_PUB',
1691                               p_procedure_name => 'Delete_Quick_Entry_Field',
1695 
1692                               p_error_text     => SUBSTRB(SQLERRM,1,240));
1693       raise;
1694 END Delete_Quick_Entry_Field;
1696 
1697 END PA_PROJ_TEMPLATE_SETUP_PUB;