DBA Data[Home] [Help]

PACKAGE BODY: APPS.PA_PAGE_TYPE_REGION_PUB

Source


1 package body PA_PAGE_TYPE_REGION_PUB as
2 /* $Header: PAPLPTPB.pls 120.1 2005/08/19 16:41:35 mwasowic noship $ */
3 
4 PROCEDURE Create_Page_Type_Region
5 (
6  p_api_version                 IN     NUMBER :=  1.0,
7  p_init_msg_list               IN     VARCHAR2 := 'T',
8  p_commit                      IN     VARCHAR2 := 'F',
9  p_validate_only               IN     VARCHAR2 := 'T',
10  p_max_msg_count               IN     NUMBER := 1.7E20,
11 
12  P_PAGE_TYPE_CODE in VARCHAR2,
13  P_REGION_SOURCE_TYPE in VARCHAR2,
14  P_REGION_SOURCE_CODE in VARCHAR2 := null,
15  P_REGION_SOURCE_NAME in VARCHAR2 := null,
16 
17  P_VIEW_REGION_CODE in VARCHAR2 := null,
18  P_EDIT_REGION_CODE in VARCHAR2 := null,
19  P_VIEW_REGION_NAME in VARCHAR2 := null,
20  P_EDIT_REGION_NAME in VARCHAR2 := null,
21  P_REGION_STYLE in VARCHAR2 := null,
22  P_DISPLAY_ORDER in NUMBER := null,
23  P_MANDATORY_FLAG in VARCHAR2 := null,
24  P_DEFAULT_REGION_POSITION in VARCHAR2 := null,
25  P_PLACEHOLDER_REGION_FLAG in VARCHAR2:=null,
26  P_START_DATE_ACTIVE in DATE,
27  P_END_DATE_ACTIVE in DATE,
28 
29  P_DOCUMENT_SOURCE in VARCHAR2 := null,
30  P_PAGE_FUNCTION_NAME in VARCHAR2 := null,
31  P_SECURITY_FUNCTION_NAME in VARCHAR2 := null,
32 
33  x_return_status               OUT    NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
34  x_msg_count                   OUT    NOCOPY NUMBER, --File.Sql.39 bug 4440895
35  x_msg_data                    OUT    NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
36  ) IS
37 
38       l_msg_index_out        NUMBER;
39       l_page_type            VARCHAR2(30);
40       l_region_source_code VARCHAR2(250);
41       l_view_region_code VARCHAR2(250);
42       l_edit_region_code VARCHAR2(250);
43       l_dummy varchar2(1) := 'N';
44 
45       cursor check_region_source_unique is
46       select 'Y' from dual
47       where exists
48       (select * from pa_page_type_regions
49       where page_type_code = p_page_type_code
50       and region_source_type = p_region_source_type
51        and region_source_code = l_region_source_code);
52 
53 BEGIN
54 
55   -- Initialize the Error Stack
56   PA_DEBUG.init_err_stack('PA_PAGE_TYPE_REGION_PUB.Create_Page_Type_Region');
57 
58   -- Initialize the return status to success
59   x_return_status := FND_API.G_RET_STS_SUCCESS;
60 
61   --Clear the global PL/SQL message table
62   IF FND_API.TO_BOOLEAN( p_init_msg_list ) THEN
63     FND_MSG_PUB.initialize;
64   END IF;
65 
66   IF p_page_type_code IS null THEN
67      l_page_type := 'PPR';
68    ELSE
69      l_page_type := p_page_type_code;
70   END IF;
71 
72   IF p_region_source_code IS NULL THEN
73       l_region_source_code := pa_page_layout_utils.get_region_source_code(p_region_source_name, P_REGION_SOURCE_TYPE, 275, 'PA_STATUS_REPORT_DESC_FLEX');
74 
75      IF  l_region_source_code IS NULL THEN
76 	 PA_UTILS.Add_Message( p_app_short_name => 'PA'
77                            ,p_msg_name       => 'PA_UDS_SETUP_NAME_INV');
78 
79 
80 	x_return_status := FND_API.G_RET_STS_ERROR;
81      END IF;
82 
83       -- check if the region_source_code is used already
84      open check_region_source_unique;
85      fetch check_region_source_unique into l_dummy;
86      if check_region_source_unique%found then
87 	 PA_UTILS.Add_Message( p_app_short_name => 'PA'
88                            ,p_msg_name       => 'PA_UDS_SETUP_NAME_NOT_UNIQUE');
89 
90 
91 	x_return_status := FND_API.G_RET_STS_ERROR;
92 
93      end if;
94 
95      close check_region_source_unique;
96    ELSE
97      l_region_source_code := p_region_source_code;
98 
99         -- check if the region_source_code is used already
100      open check_region_source_unique;
101      fetch check_region_source_unique into l_dummy;
102      if check_region_source_unique%found then
103 	 PA_UTILS.Add_Message( p_app_short_name => 'PA'
104                            ,p_msg_name       => 'PA_UDS_SETUP_NAME_NOT_UNIQUE');
105 
106 
107 	x_return_status := FND_API.G_RET_STS_ERROR;
108 
109      end if;
110 
111      close check_region_source_unique;
112 
113   END IF;
114 
115   IF (p_view_region_code IS NULL AND x_return_status = FND_API.g_ret_sts_success  )THEN
116      l_view_region_code := pa_page_layout_utils.get_ak_region_code(p_view_region_name, 275);
117 
118      IF l_view_region_code IS NULL THEN
119 	 PA_UTILS.Add_Message( p_app_short_name => 'PA'
120                            ,p_msg_name       => 'PA_UDS_SETUP_STYLE_INV'
121                           );
122 
123 	x_return_status := FND_API.G_RET_STS_ERROR;
124      END IF;
125 
126    ELSE
127      l_view_region_code := p_view_region_code;
128   END IF;
129 
130    IF (p_edit_region_code IS NULL  AND x_return_status = FND_API.g_ret_sts_success )THEN
131      l_edit_region_code := pa_page_layout_utils.get_ak_region_code(p_edit_region_name, 275);
132 
133      IF l_edit_region_code IS NULL THEN
134 	 PA_UTILS.Add_Message( p_app_short_name => 'PA'
135                            ,p_msg_name       => 'PA_UDS_SETUP_STYLE_INV'
136                            );
137 
138 	x_return_status := FND_API.G_RET_STS_ERROR;
139      END IF;
140 
141    ELSE
142      l_edit_region_code := p_edit_region_code;
143   END IF;
144 
145   IF (x_return_status = FND_API.g_ret_sts_success ) THEN
146 
147   pa_page_type_region_pvt.Create_Page_Type_Region
148   (
149    p_api_version             => p_api_version,
150    p_init_msg_list           => p_init_msg_list,
151    p_commit                  => p_commit,
152    p_validate_only           => p_validate_only,
153    p_max_msg_count           => p_max_msg_count,
154 
155     p_page_type_code => l_page_type,
156    P_REGION_SOURCE_TYPE => p_region_source_type,
157    P_REGION_SOURCE_CODE => l_region_source_code,
158 
159    P_VIEW_REGION_CODE => l_view_region_code,
160    P_EDIT_REGION_CODE => l_edit_region_code,
161    P_REGION_STYLE => p_region_style,
162    P_DISPLAY_ORDER => p_display_order,
163    P_MANDATORY_FLAG => p_mandatory_flag,
164    P_DEFAULT_REGION_POSITION => p_default_region_position,
165    P_PLACEHOLDER_REGION_FLAG => p_placeholder_region_flag,
166    P_START_DATE_ACTIVE => P_START_DATE_ACTIVE,
167    P_END_DATE_ACTIVE => P_END_DATE_ACTIVE,
168    p_document_source =>  p_document_source,
169    P_PAGE_FUNCTION_NAME => p_page_function_name,
170    P_SECURITY_FUNCTION_NAME  => p_security_function_name,
171    x_return_status           => x_return_status,
172    x_msg_count               => x_msg_count,
173    x_msg_data                => x_msg_data
174      );
175   END IF;
176 
177   --
178   -- IF the number of messaages is 1 then fetch the message code from the stack
179   -- and return its text
180   --
181 
182   x_msg_count :=  FND_MSG_PUB.Count_Msg;
183   IF x_msg_count = 1 THEN
184     pa_interface_utils_pub.get_messages ( p_encoded       => FND_API.G_TRUE
185                                          ,p_msg_index     => 1
186                                          ,p_data          => x_msg_data
187                                          ,p_msg_index_out => l_msg_index_out
188                                         );
189   END IF;
190 
191   -- Reset the error stack when returning to the calling program
192   PA_DEBUG.Reset_Err_Stack;
193 
194   --commit;
195 
196 -- Put any message text from message stack into the Message ARRAY
197 EXCEPTION
198    WHEN OTHERS THEN
199        rollback;
200 
201        -- Set the excetption Message and the stack
202        FND_MSG_PUB.add_exc_msg ( p_pkg_name => 'PA_PAGE_TYPE_REGION_PUB.Create_Page_Type_Region'
203                                 ,p_procedure_name => PA_DEBUG.G_Err_Stack );
204        --
205        x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
206        RAISE;  -- This is optional depending on the needs
207 
208 END create_page_type_region;
209 
210 
211 
212 PROCEDURE Update_Page_Type_Region
213 (
214  p_api_version                 IN     NUMBER :=  1.0,
215  p_init_msg_list               IN     VARCHAR2 := 'T',
216  p_commit                      IN     VARCHAR2 := 'F',
217  p_validate_only               IN     VARCHAR2 := 'T',
218  p_max_msg_count               IN     NUMBER := 1.7E20,
219 
220  P_PAGE_TYPE_CODE in VARCHAR2,
221  P_REGION_SOURCE_TYPE in VARCHAR2,
222  P_REGION_SOURCE_CODE in VARCHAR2 := null,
223  P_REGION_SOURCE_NAME in VARCHAR2 := null,
224 
225  P_VIEW_REGION_CODE in VARCHAR2 := null,
226  P_EDIT_REGION_CODE in VARCHAR2 := null,
227  P_VIEW_REGION_NAME in VARCHAR2 := null,
228  P_EDIT_REGION_NAME in VARCHAR2 := null,
229  P_REGION_STYLE in VARCHAR2 := '^',
230  P_DISPLAY_ORDER in NUMBER := 1.7E20,
231  P_MANDATORY_FLAG in VARCHAR2 := '^',
232  P_DEFAULT_REGION_POSITION in VARCHAR2 := '^',
233  P_PLACEHOLDER_REGION_FLAG in VARCHAR2 := '^',
234  P_START_DATE_ACTIVE in DATE,
235  P_END_DATE_ACTIVE in DATE,
236 
237  P_DOCUMENT_SOURCE in VARCHAR2 := null,
238  P_PAGE_FUNCTION_NAME in VARCHAR2 := null,
239  P_SECURITY_FUNCTION_NAME in VARCHAR2 := null,
240 
241  x_return_status               OUT    NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
242  x_msg_count                   OUT    NOCOPY NUMBER, --File.Sql.39 bug 4440895
243  x_msg_data                    OUT    NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
244   ) IS
245 
246      l_msg_index_out        NUMBER;
247       l_region_source_code VARCHAR2(250);
248       l_view_region_code VARCHAR2(250);
249       l_edit_region_code VARCHAR2(250);
250 BEGIN
251 
252  -- Initialize the Error Stack
253   PA_DEBUG.init_err_stack('PA_PAGE_TYPE_REGION_PUB.Update_Page_Type_Region');
254 
255   -- Initialize the return status to success
256   x_return_status := FND_API.G_RET_STS_SUCCESS;
257 
258   --Clear the global PL/SQL message table
259   IF FND_API.TO_BOOLEAN( p_init_msg_list ) THEN
260     FND_MSG_PUB.initialize;
261   END IF;
262 
263  IF (p_region_source_code IS NULL AND x_return_status = FND_API.g_ret_sts_success )THEN
264       l_region_source_code := pa_page_layout_utils.get_region_source_code(p_region_source_name, P_REGION_SOURCE_TYPE, 275, 'PA_STATUS_REPORT_DESC_FLEX');
265 
266      IF  l_region_source_code IS NULL THEN
267 	 PA_UTILS.Add_Message( p_app_short_name => 'PA'
268                            ,p_msg_name       => 'PA_UDS_SETUP_NAME_INV'
269                           );
270 
271 	x_return_status := FND_API.G_RET_STS_ERROR;
272      END IF;
273    ELSE
274      l_region_source_code := p_region_source_code;
275   END IF;
276 
277   IF (p_view_region_code IS NULL AND x_return_status = FND_API.g_ret_sts_success )THEN
278      l_view_region_code := pa_page_layout_utils.get_ak_region_code(p_view_region_name, 275);
279 
280      IF l_view_region_code IS NULL THEN
281 	 PA_UTILS.Add_Message( p_app_short_name => 'PA'
282                            ,p_msg_name       => 'PA_UDS_SETUP_STYLE_INV'
283                            );
284 
285 	x_return_status := FND_API.G_RET_STS_ERROR;
286      END IF;
287 
288    ELSE
289      l_view_region_code := p_view_region_code;
290   END IF;
291 
292    IF (p_edit_region_code IS NULL AND x_return_status = FND_API.g_ret_sts_success )THEN
293      l_edit_region_code := pa_page_layout_utils.get_ak_region_code(p_edit_region_name, 275);
294 
295      IF l_edit_region_code IS NULL THEN
296 	 PA_UTILS.Add_Message( p_app_short_name => 'PA'
297                            ,p_msg_name       => 'PA_UDS_SETUP_STYLE_INV'
298 			       );
299 
300 	x_return_status := FND_API.G_RET_STS_ERROR;
301      END IF;
302 
303    ELSE
304      l_edit_region_code := p_edit_region_code;
305   END IF;
306 
307   IF (x_return_status = FND_API.g_ret_sts_success ) THEN
308 
309   pa_page_type_region_pvt.Update_Page_Type_Region
310 	(
311 	 p_api_version             => p_api_version,
312 	 p_init_msg_list           => p_init_msg_list,
313 	 p_commit                  => p_commit,
314 	 p_validate_only           => p_validate_only,
315 	 p_max_msg_count           => p_max_msg_count,
316 
317 	 p_page_type_code => p_page_type_code,
318 	 P_REGION_SOURCE_TYPE => p_region_source_type,
319 	 P_REGION_SOURCE_CODE => p_region_source_code,
320 
321 	 P_VIEW_REGION_CODE => p_view_region_code,
322 	 P_EDIT_REGION_CODE => p_edit_region_code,
323 	 P_REGION_STYLE => p_region_style,
324 	 P_DISPLAY_ORDER => p_display_order,
325 	 P_MANDATORY_FLAG => p_mandatory_flag,
326 	 P_DEFAULT_REGION_POSITION => p_default_region_position,
327 	 P_PLACEHOLDER_REGION_FLAG => p_placeholder_region_flag,
328 	 P_START_DATE_ACTIVE => P_START_DATE_ACTIVE,
329 	 P_END_DATE_ACTIVE => P_END_DATE_ACTIVE,
330 
331 	 P_DOCUMENT_SOURCE =>  p_document_source,
332          P_PAGE_FUNCTION_NAME => p_page_function_name,
333          P_SECURITY_FUNCTION_NAME => p_security_function_name,
334 
335 	 x_return_status           => x_return_status,
336 	 x_msg_count               => x_msg_count,
337 	 x_msg_data                => x_msg_data
338 	 );
339 
340   END IF;
341 
342 
343   --
344   -- IF the number of messaages is 1 then fetch the message code from the
345   -- stack and return its text
346   --
347   x_msg_count :=  FND_MSG_PUB.Count_Msg;
348   IF x_msg_count = 1 THEN
349     pa_interface_utils_pub.get_messages ( p_encoded       => FND_API.G_TRUE
350                                          ,p_msg_index     => 1
351                                          ,p_data          => x_msg_data
352                                          ,p_msg_index_out => l_msg_index_out
353                                         );
354   END IF;
355 
356 
357   -- Reset the error stack when returning to the calling program
358   PA_DEBUG.Reset_Err_Stack;
359 
360 
361   -- Put any message text from message stack into the Message ARRAY
362   EXCEPTION
363    WHEN OTHERS THEN
364 
365       -- Set the exception Message and the stack
366       FND_MSG_PUB.add_exc_msg ( p_pkg_name       => 'PA_PAGE_TYPE_REGION_PUB.Update_Page_Type_Region'
367                                ,p_procedure_name => PA_DEBUG.G_Err_Stack );
368        --
369        x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
370        RAISE;  -- This is optional depending on the needs
371        --
372 
373 END update_page_type_region;
374 
375 
376 
377 PROCEDURE Delete_Page_Type_Region
378 (
379  p_api_version                 IN     NUMBER :=  1.0,
380  p_init_msg_list               IN     VARCHAR2 := fnd_api.g_true,
381  p_commit                      IN     VARCHAR2 := FND_API.g_false,
382  p_validate_only               IN     VARCHAR2 := FND_API.g_true,
383  p_max_msg_count               IN     NUMBER := FND_API.g_miss_num,
384 
385  p_rowid                       IN     VARCHAR2 := NULL,
386  P_PAGE_TYPE_CODE in VARCHAR2 := NULL,
387  P_REGION_SOURCE_TYPE in VARCHAR2 := NULL,
388  P_REGION_SOURCE_CODE in VARCHAR2 := NULL,
389 
390  x_return_status               OUT    NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
391  x_msg_count                   OUT    NOCOPY NUMBER, --File.Sql.39 bug 4440895
392  x_msg_data                    OUT    NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
393  ) IS
394 
395     l_msg_index_out NUMBER;
396 
397 BEGIN
398 
399   -- Initialize the Error Stack
400   PA_DEBUG.init_err_stack('PA_PAGE_TYPE_REGION_PUB.Delete_Page_Type_Region');
401 
402   x_return_status := FND_API.G_RET_STS_SUCCESS;
403 
404   --Clear the global PL/SQL message table
405   IF FND_API.TO_BOOLEAN( p_init_msg_list ) THEN
406     FND_MSG_PUB.initialize;
407   END IF;
408 
409 
410   -- Call the private API
411   PA_PAGE_TYPE_REGION_PVT.Delete_Page_Type_Region
412      (
413       p_api_version            => p_api_version
414       ,p_init_msg_list         => p_init_msg_list
415       ,p_commit                => p_commit
416       ,p_validate_only         => p_validate_only
417       ,p_max_msg_count         => p_max_msg_count
418 
419       ,p_page_type_code => p_page_type_code
420       ,P_REGION_SOURCE_TYPE => p_region_source_type
421       ,P_REGION_SOURCE_CODE => p_region_source_code
422 
423       ,x_return_status         => x_return_status
424       ,x_msg_count             => x_msg_count
425       ,x_msg_data              => x_msg_data
426       );
427 
428  --
429   -- IF the number of messaages is 1 then fetch the message code from the
430   -- stack and return its text
431   --
432   x_msg_count :=  FND_MSG_PUB.Count_Msg;
433   IF x_msg_count = 1 THEN
434     pa_interface_utils_pub.get_messages ( p_encoded       => FND_API.G_TRUE
435                                          ,p_msg_index     => 1
436                                          ,p_data          => x_msg_data
437                                          ,p_msg_index_out => l_msg_index_out
438                                         );
439   END IF;
440 
441 
442   -- Reset the error stack when returning to the calling program
443   PA_DEBUG.Reset_Err_Stack;
444 
445 
446  EXCEPTION
447    WHEN OTHERS THEN
448 
449          rollback;
450 
451          -- Set the excetption Message and the stack
452          FND_MSG_PUB.add_exc_msg( p_pkg_name       => 'PA_PAGE_TYPE_REGION_PUB.Delete_Page_Type_Region'
453                                  ,p_procedure_name => PA_DEBUG.G_Err_Stack );
454          --
455          x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
456          RAISE;  -- This is optional depending on the needs
457 
458 END delete_page_type_region;
459 
460 END  PA_PAGE_TYPE_REGION_PUB;