DBA Data[Home] [Help]

PACKAGE BODY: APPS.WSH_CC_PARAMETER_SETUPS_PKG

Source


1 package body WSH_CC_PARAMETER_SETUPS_PKG as
2 /* $Header: WSHCCTHB.pls 115.2 2002/06/03 12:30:23 pkm ship       $ */
3   --  Global constant holding the package name
4   G_PKG_NAME      CONSTANT VARCHAR2(30) := 'WSH_CC_PARAMETER_SETUPS_PKG';
5 
6  /*----------------------------------------------------------*/
7  /* Insert_Row Procedure                                     */
8  /*----------------------------------------------------------*/
9  /*  --
10    -- Purpose
11    --  Insert a row into WSH_CC_PARAMETER_SETUPS_B entity
12    --  Insert a row into WSH_CC_PARAMETER_SETUPS_TL entity
13    -- Input Parameters
14    --   p_api_version
15    --      API version number (current version is 1.0)
16    --   p_init_msg_list (optional, default FND_API.G_FALSE)
17    --          Valid values: FND_API.G_FALSE or FND_API.G_TRUE.
18    --                           if set to FND_API.G_TRUE
19    --                                   initialize error message list
20    --                           if set to FND_API.G_FALSE - not initialize error
21    --                                   message list
22    --   p_commit (optional, default FND_API.G_FALSE)
23    --           whether or not to commit the changes to database
24    --
25    -- Input parameters for clear cross parameter setups information
26    -- P_PARAMETER_ID 		Unique sequence generated parameter ID
27    -- P_PARAMETER_NAME 		Parameter Name (Internally identified)
28    -- P_VALUE 			User Defined Value for the Parameter.
29    -- P_DEFAULT_VALUE 		System defined Seeded Value for the Parameter.
30    -- P_USER_SETTABLE 		User can Override the default.
31    -- P_USER_PARAMETER_NAME 	User Parameter name
32    -- P_DESCRIPTION 		Brief Description of the Parameter.
33    --
34    -- Output Parameters
35    --   x_return_status
36    --       if the process succeeds, the value is
37    --           fnd_api.g_ret_sts_success;
38    --       if there is an expected error, the value is
39    --           fnd_api.g_ret_sts_error;
40    --       if there is an unexpected error, the value is
41    --           fnd_api.g_ret_sts_unexp_error;
42    --   x_msg_count
43    --       if there is one or more errors, the number of error messages
44    --           in the buffer
45    --   x_msg_data
46    --       if there is one and only one error, the error message
47    --   (See fnd_api package for more details about the above output parameters)
48    --   p_PARAMETER_ID  - Clear Cross Parameter Id ( PK)
49    --*/
50 
51 
52 procedure INSERT_ROW (
53    p_api_version        	IN    NUMBER                       	,
54    p_init_msg_list      	IN    VARCHAR2 := fnd_api.g_false  	,
55    p_commit             	IN    VARCHAR2 := fnd_api.g_false  	,
56    x_return_status      	OUT   VARCHAR2                     	,
57    x_msg_count          	OUT   NUMBER                       	,
58    x_msg_data           	OUT   VARCHAR2                     	,
59    P_PARAMETER_ID       	OUT 	NUMBER				,
60    P_PARAMETER_NAME 		IN 	VARCHAR2			,
61    P_VALUE 			IN 	VARCHAR2			,
62    P_DEFAULT_VALUE 		IN 	VARCHAR2			,
63    P_USER_SETTABLE 		IN 	VARCHAR2			,
64    P_USER_PARAMETER_NAME 	IN 	VARCHAR2			,
65    P_DESCRIPTION 		IN 	VARCHAR2
66 ) is
67 
68     	l_parameter_id 	NUMBER;
69    	l_api_name        CONSTANT VARCHAR2(30)      := 'Insert_Row';
70    	l_api_version     number := 1.0;
71 
72 begin
73 
74 --dbms_output.put_line('begin api');
75   -- Standard Start of API savepoint
76   SAVEPOINT  WSH_CC_PARAMETER_SETUPS_PKG;
77   -- Standard call to check for call compatibility.
78   IF NOT FND_API.Compatible_API_Call ( l_api_version   ,
79                                        p_api_version   ,
80 							    l_api_name      ,
81 							    G_PKG_NAME )
82   THEN
83      FND_MESSAGE.SET_NAME('WSH', 'WSH_INCOMPATIBLE_API_CALL');
84      FND_MSG_PUB.ADD;
85      RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
86   END IF;
87   -- Initialize message list if p_init_msg_list is set to TRUE.
88   IF FND_API.to_Boolean( p_init_msg_list ) THEN
89     FND_MSG_PUB.initialize;
90   END IF;
91    -- Initialize API return status to success
92   x_return_status := FND_API.G_RET_STS_SUCCESS;
93 --dbms_output.put_line('begin api-2');
94 
95   SELECT WSH_CC_PARAMETER_SETUPS_S.NEXTVAL into l_parameter_id FROM dual;
96 
97   insert into WSH_CC_PARAMETER_SETUPS_B (
98     PARAMETER_ID,
99     PARAMETER_NAME,
100     VALUE,
101     DEFAULT_VALUE,
102     USER_SETTABLE,
103     CREATION_DATE,
104     CREATED_BY,
105     LAST_UPDATE_DATE,
106     LAST_UPDATED_BY,
107     LAST_UPDATE_LOGIN
108   )
109 values (
110     l_PARAMETER_ID,
111     P_PARAMETER_NAME,
112     P_VALUE,
113     P_DEFAULT_VALUE,
114     P_USER_SETTABLE,
115     sysdate,
116     FND_GLOBAL.user_id,
117     sysdate,
118     FND_GLOBAL.user_id,
119     FND_GLOBAL.login_id
120   );
121 
122   IF SQL%NOTFOUND THEN
123      FND_MESSAGE.SET_NAME('WSH', 'WSH_INSERT_FAILED');
124      FND_MSG_PUB.ADD;
125      x_return_status := FND_API.G_RET_STS_ERROR;
126      RAISE FND_API.G_EXC_ERROR ;
127   END IF;
128 --dbms_output.put_line('Seq Id got it '||l_parameter_ID||'success');
129   x_return_status := fnd_api.g_ret_sts_success;
130   p_parameter_id := l_parameter_id;
131   -- End of API body
132   -- Standard check of p_commit.
133   IF FND_API.To_Boolean( p_commit ) THEN
134      COMMIT WORK;
135   END IF;
136   -- Standard call to get message count and if count is 1,
137   -- get message info.
138   FND_MSG_PUB.Count_And_Get
139   (  p_count         =>      x_msg_count,
140      p_data          =>      x_msg_data
141    );
142 
143 
144   insert into WSH_CC_PARAMETER_SETUPS_TL (
145     PARAMETER_ID,
146     USER_PARAMETER_NAME,
147     DESCRIPTION,
148     LAST_UPDATE_DATE,
149     LAST_UPDATED_BY,
150     CREATION_DATE,
151     CREATED_BY,
152     LAST_UPDATE_LOGIN,
153     LANGUAGE,
154     SOURCE_LANG
155   ) select
156     l_PARAMETER_ID,
157     P_USER_PARAMETER_NAME,
158     P_DESCRIPTION,
159     sysdate,
160     FND_GLOBAL.user_id,
161     sysdate,
162     FND_GLOBAL.user_id,
163     FND_GLOBAL.login_id,
164     L.LANGUAGE_CODE,
165     userenv('LANG')
166   from FND_LANGUAGES L
167   where L.INSTALLED_FLAG in ('I', 'B')
168   and not exists
169     (select NULL
170     from WSH_CC_PARAMETER_SETUPS_TL T
171     where T.PARAMETER_ID = l_PARAMETER_ID
172     and T.LANGUAGE = L.LANGUAGE_CODE);
173 
174   IF SQL%NOTFOUND THEN
175      FND_MESSAGE.SET_NAME('WSH', 'WSH_INSERT_FAILED');
176      FND_MSG_PUB.ADD;
177      x_return_status := FND_API.G_RET_STS_ERROR;
178      RAISE FND_API.G_EXC_ERROR ;
179   END IF;
180 --dbms_output.put_line('Seq Id got it '||l_parameter_ID||'success');
181   x_return_status := fnd_api.g_ret_sts_success;
182   p_parameter_id := l_parameter_id;
183   -- End of API body
184   -- Standard check of p_commit.
185   IF FND_API.To_Boolean( p_commit ) THEN
186      COMMIT WORK;
187   END IF;
188   -- Standard call to get message count and if count is 1,
189   -- get message info.
190   FND_MSG_PUB.Count_And_Get
191   (  p_count         =>      x_msg_count,
192      p_data          =>      x_msg_data
193    );
194 
195 EXCEPTION
196    WHEN FND_API.G_EXC_ERROR THEN
197      ROLLBACK TO WSH_CC_PARAMETER_SETUPS_PKG;
198 	x_return_status := FND_API.G_RET_STS_ERROR;
199 	FND_MSG_PUB.Count_And_Get
200        (       p_count         =>      x_msg_count,
201 	          p_data          =>      x_msg_data
202 	   );
203    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
204      ROLLBACK TO WSH_CC_PARAMETER_SETUPS_PKG;
205      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
206      FND_MSG_PUB.Count_And_Get
207         (       p_count         =>      x_msg_count,
208 	           p_data          =>      x_msg_data
209         );
210    WHEN OTHERS THEN
211      ROLLBACK TO WSH_CC_PARAMETER_SETUPS_PKG;
212      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
213      IF   FND_MSG_PUB.Check_Msg_Level
214         (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
215      THEN
216        FND_MSG_PUB.Add_Exc_Msg
217 	  (    G_PKG_NAME      ,
218 	       l_api_name
219         );
220 	END IF;
221 	FND_MSG_PUB.Count_And_Get
222 	(       p_count         =>      x_msg_count,
223 	        p_data          =>      x_msg_data
224  	 );
225 
226 end INSERT_ROW;
227 
228  /*----------------------------------------------------------*/
229  /* Lock_Row Procedure                                       */
230  /*----------------------------------------------------------*/
231  /*  --
232    -- Purpose
233    --  Check Lock a row of WSH_CC_PARAMETER_SETUPS entity
234    --  for the given parameter id
235    --
236    -- Input Parameters
237    --   p_api_version
238    --      API version number (current version is 1.0)
239    --   p_init_msg_list (optional, default FND_API.G_FALSE)
240    --          Valid values: FND_API.G_FALSE or FND_API.G_TRUE.
241    --                           if set to FND_API.G_TRUE
242    --                                   initialize error message list
243    --                           if set to FND_API.G_FALSE - not initialize error
244    --                                   message list
245    --   p_commit (optional, default FND_API.G_FALSE)
246    --           whether or not to commit the changes to database
247    --
248    -- Input parameters for clear cross parameter setups information
249    -- P_PARAMETER_ID 		Unique sequence generated parameter ID
250    -- P_PARAMETER_NAME 		Parameter Name (Internally identified)
251    -- P_VALUE 			User Defined Value for the Parameter.
252    -- P_DEFAULT_VALUE 		System defined Seeded Value for the Parameter.
253    -- P_USER_SETTABLE 		User can Override the default.
254    -- P_USER_PARAMETER_NAME 	User Parameter name
255    -- P_DESCRIPTION 		Brief Description of the Parameter.
256    -- Output Parameters
257    --   x_return_status
258    --       if the process succeeds, the value is
259    --           fnd_api.g_ret_sts_success;
260    --       if there is an expected error, the value is
261    --           fnd_api.g_ret_sts_error;
262    --       if there is an unexpected error, the value is
263    --           fnd_api.g_ret_sts_unexp_error;
264    --   x_msg_count
265    --       if there is one or more errors, the number of error messages
266    --           in the buffer
267    --   x_msg_data
268    --       if there is one and only one error, the error message
269    --   (See fnd_api package for more details about the above output parameters)
270 
271    --*/
272 procedure LOCK_ROW (
273   p_api_version         IN      NUMBER                      ,
274   p_init_msg_list       IN      VARCHAR2 := fnd_api.g_false ,
275   p_commit              IN      VARCHAR2 := fnd_api.g_false ,
276   x_return_status       OUT     VARCHAR2                    ,
277   x_msg_count           OUT     NUMBER                      ,
278   x_msg_data            OUT     VARCHAR2                    ,
279   P_PARAMETER_ID    	IN      NUMBER			    ,
280   P_PARAMETER_NAME 	IN      VARCHAR2		    ,
281   P_VALUE 		IN      VARCHAR2		    ,
282   P_DEFAULT_VALUE 	IN      VARCHAR2		    ,
283   P_USER_SETTABLE 	IN      VARCHAR2		    ,
284   P_USER_PARAMETER_NAME IN      VARCHAR2		    ,
285   P_DESCRIPTION 	IN      VARCHAR2
286 ) is
287 
288   cursor c is select
289       PARAMETER_NAME,
290       VALUE,
291       DEFAULT_VALUE,
292       USER_SETTABLE
293     from WSH_CC_PARAMETER_SETUPS_B
294     where PARAMETER_ID = P_PARAMETER_ID
295     for update of PARAMETER_ID nowait;
296   recinfo c%rowtype;
297 
298    l_api_name        CONSTANT VARCHAR2(30) := 'Lock_Row'  ;
299    l_api_version     number := 1.0;
300 
301 
302   cursor c1 is select
303       USER_PARAMETER_NAME,
304       DESCRIPTION,
305       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
306     from WSH_CC_PARAMETER_SETUPS_TL
307     where PARAMETER_ID = P_PARAMETER_ID
308     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
309     for update of PARAMETER_ID nowait;
310 
311 begin
312 
313 --dbms_output.put_line('begin');
314   -- Standard Start of API savepoint
315   SAVEPOINT  WSH_CC_PARAMETER_SETUPS_PKG;
316   -- Standard call to check for call compatibility.
317   IF NOT FND_API.Compatible_API_Call ( l_api_version   ,
318                                        p_api_version   ,
319 				       l_api_name      ,
320 				       G_PKG_NAME )
321   THEN
322      FND_MESSAGE.SET_NAME('WSH', 'WSH_INCOMPATIBLE_API_CALL');
323      FND_MSG_PUB.ADD;
324      RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
325   END IF;
326   -- Initialize message list if p_init_msg_list is set to TRUE.
327   IF FND_API.to_Boolean( p_init_msg_list ) THEN
328     FND_MSG_PUB.initialize;
329   END IF;
330    -- Initialize API return status to success
331   x_return_status := FND_API.G_RET_STS_SUCCESS;
332 
333   -- Check Lock a row of wsh_cc_parameter_setups
334 
335   open c;
336   fetch c into recinfo;
337   if (c%notfound) then
338     close c;
339     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
340     app_exception.raise_exception;
341   end if;
342   close c;
343   if (    ((recinfo.PARAMETER_NAME = p_PARAMETER_NAME)
344            OR ((recinfo.PARAMETER_NAME is null) AND (p_PARAMETER_NAME is null)))
345       AND ((recinfo.VALUE = p_VALUE)
346            OR ((recinfo.VALUE is null) AND (p_VALUE is null)))
347       AND ((recinfo.DEFAULT_VALUE = p_DEFAULT_VALUE)
348            OR ((recinfo.DEFAULT_VALUE is null) AND (p_DEFAULT_VALUE is null)))
349       AND ((recinfo.USER_SETTABLE = p_USER_SETTABLE)
350            OR ((recinfo.USER_SETTABLE is null) AND (p_USER_SETTABLE is null)))
351   ) then
352 	x_return_status := FND_API.G_RET_STS_SUCCESS;
353   else
354     x_return_status := FND_API.G_RET_STS_ERROR;
355     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
356     app_exception.raise_exception;
357   end if;
358 
359   for tlinfo in c1 loop
360     if (tlinfo.BASELANG = 'Y') then
361       if (    ((tlinfo.USER_PARAMETER_NAME = p_USER_PARAMETER_NAME)
362                OR ((tlinfo.USER_PARAMETER_NAME is null) AND (p_USER_PARAMETER_NAME is null)))
363           AND ((tlinfo.DESCRIPTION = p_DESCRIPTION)
364                OR ((tlinfo.DESCRIPTION is null) AND (p_DESCRIPTION is null)))
365       ) then
366 	x_return_status := FND_API.G_RET_STS_SUCCESS;
367       else
368     x_return_status := FND_API.G_RET_STS_ERROR;
369         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
370         app_exception.raise_exception;
371       end if;
372     end if;
373   end loop;
374  EXCEPTION
375  WHEN others THEN
376      IF (c%ISOPEN) then
377          close c;
378 	End if;
379      IF (c1%ISOPEN) then
380          close c1;
381 	End if;
382 end LOCK_ROW;
383 
384  /*----------------------------------------------------------*/
385  /* Update_Row Procedure                                     */
386  /*----------------------------------------------------------*/
387  /*  --
388    -- Purpose
389    --  Update a row into WSH_CC_parameter_setups_b entity
390    --  Update a row into WSH_CC_parameter_setups_tl entity
391    --  for the given parameter id
392    --
393    -- Input Parameters
394    --   p_api_version
395    --      API version number (current version is 1.0)
396    --   p_init_msg_list (optional, default FND_API.G_FALSE)
397    --          Valid values: FND_API.G_FALSE or FND_API.G_TRUE.
398    --                           if set to FND_API.G_TRUE
399    --                                   initialize error message list
400    --                           if set to FND_API.G_FALSE - not initialize error
401    --                                   message list
402    --   p_commit (optional, default FND_API.G_FALSE)
406    -- P_PARAMETER_ID 		Unique sequence generated parameter ID
403    --           whether or not to commit the changes to database
404    --
405    -- Input parameters for clear cross parameter setups informations
407    -- P_PARAMETER_NAME 		Parameter Name (Internally identified)
408    -- P_VALUE 			User Defined Value for the Parameter.
409    -- P_DEFAULT_VALUE 		System defined Seeded Value for the Parameter.
410    -- P_USER_SETTABLE 		User can Override the default.
411    -- P_USER_PARAMETER_NAME 	User Parameter name
412    -- P_DESCRIPTION 		Brief Description of the Parameter.
413    --
414    -- Output Parameters
415    --   x_return_status
416    --       if the process succeeds, the value is
417    --           fnd_api.g_ret_sts_success;
418    --       if there is an expected error, the value is
419    --           fnd_api.g_ret_sts_error;
420    --       if there is an unexpected error, the value is
421    --           fnd_api.g_ret_sts_unexp_error;
422    --   x_msg_count
423    --       if there is one or more errors, the number of error messages
424    --           in the buffer
425    --   x_msg_data
426    --       if there is one and only one error, the error message
427    --   (See fnd_api package for more details about the above output parameters)
428 
429    --*/
430 
431 procedure UPDATE_ROW (
432   p_api_version        IN      NUMBER                       ,
433   p_init_msg_list      IN      VARCHAR2 := fnd_api.g_false  ,
434   p_commit             IN      VARCHAR2 := fnd_api.g_false  ,
435   x_return_status      OUT     VARCHAR2                     ,
436   x_msg_count          OUT     NUMBER                       ,
437   x_msg_data           OUT     VARCHAR2                     ,
438   P_PARAMETER_ID 	IN 	NUMBER			    ,
439   P_PARAMETER_NAME 	IN 	VARCHAR2		    ,
440   P_VALUE 		IN 	VARCHAR2		    ,
441   P_DEFAULT_VALUE 	IN 	VARCHAR2		    ,
442   P_USER_SETTABLE 	IN 	VARCHAR2		    ,
443   P_USER_PARAMETER_NAME IN 	VARCHAR2		    ,
444   P_DESCRIPTION 	IN 	VARCHAR2
445 ) is
446 
447    l_api_name        CONSTANT VARCHAR2(30) := 'Update_Row'  ;
448    l_api_version     number := 1.0;
449 
450 begin
451 
452 --dbms_output.put_line('begin');
453   -- Standard Start of API savepoint
454   SAVEPOINT  WSH_CC_PARAMETER_SETUPS_PKG;
455   -- Standard call to check for call compatibility.
456   IF NOT FND_API.Compatible_API_Call ( l_api_version   ,
457                                        p_api_version   ,
458 				       l_api_name      ,
459 				       G_PKG_NAME )
460   THEN
461      FND_MESSAGE.SET_NAME('WSH', 'WSH_INCOMPATIBLE_API_CALL');
462      FND_MSG_PUB.ADD;
463      RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
464   END IF;
465   -- Initialize message list if p_init_msg_list is set to TRUE.
466   IF FND_API.to_Boolean( p_init_msg_list ) THEN
467     FND_MSG_PUB.initialize;
468   END IF;
469    -- Initialize API return status to success
470   x_return_status := FND_API.G_RET_STS_SUCCESS;
471 
472   -- Update a row into wsh_cc_parameter_setups entity with all detail information
473   -- for the given parameter id
474 
475   update WSH_CC_PARAMETER_SETUPS_B set
476     PARAMETER_NAME = P_PARAMETER_NAME,
477     VALUE = P_VALUE,
478     DEFAULT_VALUE = P_DEFAULT_VALUE,
479     USER_SETTABLE = P_USER_SETTABLE,
480     LAST_UPDATE_DATE = sysdate,
481     LAST_UPDATED_BY = FND_GLOBAL.user_id,
482     LAST_UPDATE_LOGIN = FND_GLOBAL.login_id
483   where PARAMETER_ID = P_PARAMETER_ID;
484 
485   IF SQL%NOTFOUND THEN
486      FND_MESSAGE.SET_NAME('WSH', 'WSH_UPDATE_FAILED');
487      FND_MSG_PUB.ADD;
488      x_return_status := FND_API.G_RET_STS_ERROR;
489      RAISE FND_API.G_EXC_ERROR ;
490   END IF;
491 --dbms_output.put_line('begin-5');
492   x_return_status := fnd_api.g_ret_sts_success;
493 
494   -- End of API body
495   -- Standard check of p_commit.
496   IF FND_API.To_Boolean( p_commit ) THEN
497      COMMIT WORK;
498   END IF;
499   -- Standard call to get message count and if count is 1,
500   -- get message info.
501   FND_MSG_PUB.Count_And_Get
502   (  p_count         =>      x_msg_count,
503      p_data          =>      x_msg_data
504    );
505 
506   update WSH_CC_PARAMETER_SETUPS_TL set
507     USER_PARAMETER_NAME 	= P_USER_PARAMETER_NAME,
508     DESCRIPTION 			= P_DESCRIPTION,
509     SOURCE_LANG 			= userenv('LANG')
510   where PARAMETER_ID = P_PARAMETER_ID
511   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
512 
513   IF SQL%NOTFOUND THEN
514      FND_MESSAGE.SET_NAME('WSH', 'WSH_UPDATE_FAILED');
515      FND_MSG_PUB.ADD;
516      x_return_status := FND_API.G_RET_STS_ERROR;
517      RAISE FND_API.G_EXC_ERROR ;
518   END IF;
519 --dbms_output.put_line('begin-5');
520   x_return_status := fnd_api.g_ret_sts_success;
521 
522   -- End of API body
523   -- Standard check of p_commit.
524   IF FND_API.To_Boolean( p_commit ) THEN
525      COMMIT WORK;
526   END IF;
527   -- Standard call to get message count and if count is 1,
528   -- get message info.
529   FND_MSG_PUB.Count_And_Get
530   (  p_count         =>      x_msg_count,
531      p_data          =>      x_msg_data
532    );
533 
534 EXCEPTION
535    WHEN FND_API.G_EXC_ERROR THEN
536 --dbms_output.put_line(sqlerrm);
537      ROLLBACK TO WSH_CC_PARAMETER_SETUPS_PKG;
538 	x_return_status := FND_API.G_RET_STS_ERROR;
542 	   );
539 	FND_MSG_PUB.Count_And_Get
540        (       p_count         =>      x_msg_count,
541 	          p_data          =>      x_msg_data
543    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
544 --dbms_output.put_line(sqlerrm);
545      ROLLBACK TO WSH_CC_PARAMETER_SETUPS_PKG;
546      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
547      FND_MSG_PUB.Count_And_Get
548         (       p_count         =>      x_msg_count,
549 	           p_data          =>      x_msg_data
550         );
551    WHEN OTHERS THEN
552 --dbms_output.put_line(sqlerrm);
553      ROLLBACK TO WSH_CC_PARAMETER_SETUPS_PKG;
554      x_return_status := 'W';
555      IF   FND_MSG_PUB.Check_Msg_Level
556         (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
557      THEN
558        FND_MSG_PUB.Add_Exc_Msg
559 	  (    G_PKG_NAME      ,
560 	       l_api_name
561         );
562 	END IF;
563 	FND_MSG_PUB.Count_And_Get
564 	(       p_count         =>      x_msg_count,
565 	        p_data          =>      x_msg_data
566  	 );
567 
568 end UPDATE_ROW;
569 
570  /*----------------------------------------------------------*/
571  /* Delete_Row Procedure                                     */
572  /*----------------------------------------------------------*/
573  /*  --
574    -- Purpose
575    --  Delete a row from WSH_CC_PARAMETER_SETUPS_B entity
576    --  Delete a row from WSH_CC_PARAMETER_SETUPS_TL entity
577    --  for the given  parameter id
578    --
579    -- Input Parameters
580    --   p_api_version
581    --      API version number (current version is 1.0)
582    --   p_init_msg_list (optional, default FND_API.G_FALSE)
583    --          Valid values: FND_API.G_FALSE or FND_API.G_TRUE.
584    --                           if set to FND_API.G_TRUE
585    --                                   initialize error message list
586    --                           if set to FND_API.G_FALSE - not initialize error
587    --                                   message list
588    --   p_commit (optional, default FND_API.G_FALSE)
589    --           whether or not to commit the changes to database
590    --
591    -- Input parameters for clear cross parameters informations
592    --     p_PARAMETER_ID  -- parameter id
593    --
594    --
595    -- Output Parameters
596    --   x_return_status
597    --       if the process succeeds, the value is
598    --           fnd_api.g_ret_sts_success;
599    --       if there is an expected error, the value is
600    --           fnd_api.g_ret_sts_error;
601    --       if there is an unexpected error, the value is
602    --           fnd_api.g_ret_sts_unexp_error;
603    --   x_msg_count
604    --       if there is one or more errors, the number of error messages
605    --           in the buffer
606    --   x_msg_data
607    --       if there is one and only one error, the error message
608    --   (See fnd_api package for more details about the above output parameters)
609 
610    --*/
611 procedure DELETE_ROW (
612    p_api_version        IN      NUMBER                          ,
613    p_init_msg_list      IN      VARCHAR2 := fnd_api.g_false     ,
614    p_commit             IN      VARCHAR2 := fnd_api.g_false     ,
615    x_return_status      OUT     VARCHAR2                        ,
616    x_msg_count          OUT     NUMBER                          ,
617    x_msg_data           OUT     VARCHAR2                        ,
618    P_PARAMETER_ID 	IN      NUMBER
619 ) is
620 
621    l_api_name        CONSTANT VARCHAR2(30) := 'Delete_Row'  ;
622    l_api_version     number := 1.0;
623 
624 begin
625 
626 --dbms_output.put_line('begin');
627   -- Standard Start of API savepoint
628   SAVEPOINT  WSH_CC_PARAMETER_SETUPS_PKG;
629   -- Standard call to check for call compatibility.
630   IF NOT FND_API.Compatible_API_Call ( l_api_version   ,
631                                        p_api_version   ,
632 				       l_api_name      ,
633 				       G_PKG_NAME )
634   THEN
635      FND_MESSAGE.SET_NAME('WSH', 'WSH_INCOMPATIBLE_API_CALL');
636      FND_MSG_PUB.ADD;
637      RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
638   END IF;
639   -- Initialize message list if p_init_msg_list is set to TRUE.
640   IF FND_API.to_Boolean( p_init_msg_list ) THEN
641     FND_MSG_PUB.initialize;
642   END IF;
643    -- Initialize API return status to success
644   x_return_status := FND_API.G_RET_STS_SUCCESS;
645 
646   -- Delete a row from wsh_cc_parameter_setups entity
647   -- for the given parameter id
648 
649 
650   delete from WSH_CC_PARAMETER_SETUPS_TL
651   where PARAMETER_ID = P_PARAMETER_ID;
652 
653   IF SQL%NOTFOUND THEN
654      FND_MESSAGE.SET_NAME('WSH', 'WSH_DELETE_FAILED');
655      FND_MSG_PUB.ADD;
656      x_return_status := FND_API.G_RET_STS_ERROR;
657      RAISE FND_API.G_EXC_ERROR ;
658   END IF;
659 --dbms_output.put_line('begin-5');
660   x_return_status := fnd_api.g_ret_sts_success;
661 
662   -- End of API body
663   -- Standard check of p_commit.
664   IF FND_API.To_Boolean( p_commit ) THEN
665      COMMIT WORK;
666   END IF;
667   -- Standard call to get message count and if count is 1,
668   -- get message info.
669   FND_MSG_PUB.Count_And_Get
670   (  p_count         =>      x_msg_count,
671      p_data          =>      x_msg_data
672    );
673 
674   delete from WSH_CC_PARAMETER_SETUPS_B
678      FND_MESSAGE.SET_NAME('WSH', 'WSH_DELETE_FAILED');
675   where PARAMETER_ID = p_PARAMETER_ID;
676 
677   IF SQL%NOTFOUND THEN
679      FND_MSG_PUB.ADD;
680      x_return_status := FND_API.G_RET_STS_ERROR;
681      RAISE FND_API.G_EXC_ERROR ;
682   END IF;
683 --dbms_output.put_line('begin-5');
684   x_return_status := fnd_api.g_ret_sts_success;
685 
686   -- End of API body
687   -- Standard check of p_commit.
688   IF FND_API.To_Boolean( p_commit ) THEN
689      COMMIT WORK;
690   END IF;
691   -- Standard call to get message count and if count is 1,
692   -- get message info.
693   FND_MSG_PUB.Count_And_Get
694   (  p_count         =>      x_msg_count,
695      p_data          =>      x_msg_data
696    );
697 
698 EXCEPTION
699    WHEN FND_API.G_EXC_ERROR THEN
700 --dbms_output.put_line(sqlerrm);
701      ROLLBACK TO WSH_CC_PARAMETER_SETUPS_PKG;
702 	x_return_status := FND_API.G_RET_STS_ERROR;
703 	FND_MSG_PUB.Count_And_Get
704        (       p_count         =>      x_msg_count,
705 	          p_data          =>      x_msg_data
706 	   );
707    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
708 --dbms_output.put_line(sqlerrm);
709      ROLLBACK TO WSH_CC_PARAMETER_SETUPS_PKG;
710      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
711      FND_MSG_PUB.Count_And_Get
712         (       p_count         =>      x_msg_count,
713 	           p_data          =>      x_msg_data
714         );
715    WHEN OTHERS THEN
716 --dbms_output.put_line(sqlerrm);
717      ROLLBACK TO WSH_CC_PARAMETER_SETUPS_PKG;
718      x_return_status := 'W';
719      IF   FND_MSG_PUB.Check_Msg_Level
720         (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
721      THEN
722        FND_MSG_PUB.Add_Exc_Msg
723 	  (    G_PKG_NAME      ,
724 	       l_api_name
725         );
726 	END IF;
727 	FND_MSG_PUB.Count_And_Get
728 	(       p_count         =>      x_msg_count,
729 	        p_data          =>      x_msg_data
730  	 );
731 
732 end DELETE_ROW;
733 
734  /*----------------------------------------------------------*/
735  /* Add_Language Procedure                                     */
736  /*----------------------------------------------------------*/
737 procedure ADD_LANGUAGE
738 is
739 begin
740   delete from WSH_CC_PARAMETER_SETUPS_TL T
741   where not exists
742     (select NULL
743     from WSH_CC_PARAMETER_SETUPS_B B
744     where B.PARAMETER_ID = T.PARAMETER_ID
745     );
746 
747   update WSH_CC_PARAMETER_SETUPS_TL T set (
748       USER_PARAMETER_NAME,
749       DESCRIPTION
750     ) = (select
751       B.USER_PARAMETER_NAME,
752       B.DESCRIPTION
753     from WSH_CC_PARAMETER_SETUPS_TL B
754     where B.PARAMETER_ID = T.PARAMETER_ID
755     and B.LANGUAGE = T.SOURCE_LANG)
756   where (
757       T.PARAMETER_ID,
758       T.LANGUAGE
759   ) in (select
760       SUBT.PARAMETER_ID,
761       SUBT.LANGUAGE
762     from WSH_CC_PARAMETER_SETUPS_TL SUBB, WSH_CC_PARAMETER_SETUPS_TL SUBT
763     where SUBB.PARAMETER_ID = SUBT.PARAMETER_ID
764     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
765     and (SUBB.USER_PARAMETER_NAME <> SUBT.USER_PARAMETER_NAME
766       or (SUBB.USER_PARAMETER_NAME is null and SUBT.USER_PARAMETER_NAME is not null)
767       or (SUBB.USER_PARAMETER_NAME is not null and SUBT.USER_PARAMETER_NAME is null)
768       or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
769       or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
770       or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
771   ));
772 
773   insert into WSH_CC_PARAMETER_SETUPS_TL (
774     PARAMETER_ID,
775     USER_PARAMETER_NAME,
776     DESCRIPTION,
777     LAST_UPDATE_DATE,
778     LAST_UPDATED_BY,
779     CREATION_DATE,
780     CREATED_BY,
781     LAST_UPDATE_LOGIN,
782     LANGUAGE,
783     SOURCE_LANG
784   ) select
785     B.PARAMETER_ID,
786     B.USER_PARAMETER_NAME,
787     B.DESCRIPTION,
788     B.LAST_UPDATE_DATE,
789     B.LAST_UPDATED_BY,
790     B.CREATION_DATE,
791     B.CREATED_BY,
792     B.LAST_UPDATE_LOGIN,
793     L.LANGUAGE_CODE,
794     B.SOURCE_LANG
795   from WSH_CC_PARAMETER_SETUPS_TL B, FND_LANGUAGES L
796   where L.INSTALLED_FLAG in ('I', 'B')
797   and B.LANGUAGE = userenv('LANG')
798   and not exists
799     (select NULL
800     from WSH_CC_PARAMETER_SETUPS_TL T
801     where T.PARAMETER_ID = B.PARAMETER_ID
802     and T.LANGUAGE = L.LANGUAGE_CODE);
803 end ADD_LANGUAGE;
804 
805  /*----------------------------------------------------------*/
806  /* Translate_Row Procedure                                     */
807  /*----------------------------------------------------------*/
808 PROCEDURE translate_row
809   (
810    x_parameter_id           		IN  VARCHAR2 ,
811    x_owner                    	IN  VARCHAR2 ,
812    x_user_parameter_name       	IN  VARCHAR2 ,
813    x_description        		IN  VARCHAR2
814    ) IS
815 BEGIN
816    UPDATE wsh_cc_parameter_setups_tl SET
817      user_parameter_name        = x_user_parameter_name,
818      description 		= x_description,
819      last_update_date  		= sysdate,
820      last_updated_by   		= Decode(x_owner, 'SEED', 1, 0),
821      last_update_login 		= 0,
822      source_lang       		= userenv('LANG')
823      WHERE parameter_id 	= fnd_number.canonical_to_number(x_parameter_id)
824      AND userenv('LANG') IN (language, source_lang);
828  /* Load_Row Procedure                                     */
825 END translate_row;
826 
827  /*----------------------------------------------------------*/
829  /*----------------------------------------------------------*/
830 PROCEDURE load_row
831   (
832    x_parameter_id             IN  VARCHAR2 ,
833    x_owner                    IN  VARCHAR2 ,
834    x_parameter_name           IN  VARCHAR2 ,
835    x_user_parameter_name      IN  VARCHAR2 ,
836    x_value		      IN  VARCHAR2 ,
837    x_user_settable            IN  VARCHAR2 ,
838    x_default_value            IN  VARCHAR2 ,
839    x_description              IN  VARCHAR2
840   ) IS
841 
842 BEGIN
843    DECLARE
844       l_parameter_id           	 NUMBER;
845       l_user_id                  NUMBER := 0;
846       l_row_id                   VARCHAR2(64);
847       l_sysdate                  DATE;
848    BEGIN
849       IF (x_owner = 'SEED') THEN
850          l_user_id := 1;
851       END IF;
852       --
853       SELECT Sysdate INTO l_sysdate FROM dual;
854       l_parameter_id  := fnd_number.canonical_to_number(x_parameter_id);
855 
856 
857 	  update WSH_CC_PARAMETER_SETUPS_B set
858 	    PARAMETER_NAME = x_PARAMETER_NAME,
859 	    VALUE = x_VALUE,
860 	    DEFAULT_VALUE = x_DEFAULT_VALUE,
861 	    USER_SETTABLE = x_USER_SETTABLE,
862 	    LAST_UPDATE_DATE = l_sysdate,
863 	    LAST_UPDATED_BY = l_user_id,
864 	    LAST_UPDATE_LOGIN = 0
865 	  where PARAMETER_ID = l_PARAMETER_ID;
866 
867 	  update WSH_CC_PARAMETER_SETUPS_TL set
868 	    USER_PARAMETER_NAME 	= x_USER_PARAMETER_NAME,
869 	    DESCRIPTION 		= x_DESCRIPTION,
870 	    SOURCE_LANG 		= userenv('LANG')
871 	  where PARAMETER_ID  		= l_PARAMETER_ID
872 	  and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
873 
874  IF SQL%NOTFOUND THEN
875 
876 insert into WSH_CC_PARAMETER_SETUPS_B (
877     PARAMETER_ID,
878     PARAMETER_NAME,
879     VALUE,
880     DEFAULT_VALUE,
881     USER_SETTABLE,
882     CREATION_DATE,
883     CREATED_BY,
884     LAST_UPDATE_DATE,
885     LAST_UPDATED_BY,
886     LAST_UPDATE_LOGIN
887   )
888 values (
889     l_PARAMETER_ID,
890     x_PARAMETER_NAME,
891     x_VALUE,
892     x_DEFAULT_VALUE,
893     x_USER_SETTABLE,
894     l_sysdate,
895     l_user_id,
896     l_sysdate,
897     l_user_id,
898     0
899   );
900 
901   insert into WSH_CC_PARAMETER_SETUPS_TL (
902     PARAMETER_ID,
903     USER_PARAMETER_NAME,
904     DESCRIPTION,
905     LAST_UPDATE_DATE,
906     LAST_UPDATED_BY,
907     CREATION_DATE,
908     CREATED_BY,
909     LAST_UPDATE_LOGIN,
910     LANGUAGE,
911     SOURCE_LANG
912   ) select
913     l_PARAMETER_ID,
914     x_USER_PARAMETER_NAME,
915     x_DESCRIPTION,
916     l_sysdate,
917     l_user_id,
918     l_sysdate,
919     l_user_id,
920     0,
921     L.LANGUAGE_CODE,
922     userenv('LANG')
923   from FND_LANGUAGES L
924   where L.INSTALLED_FLAG in ('I', 'B')
925   and not exists
926     (select NULL
927     from WSH_CC_PARAMETER_SETUPS_TL T
928     where T.PARAMETER_ID = l_PARAMETER_ID
929     and T.LANGUAGE = L.LANGUAGE_CODE);
930 
931 END IF;
932 END;
933 commit;
934 END load_row;
935 
936 end WSH_CC_PARAMETER_SETUPS_PKG;