DBA Data[Home] [Help]

PACKAGE BODY: APPS.CN_LEDGER_BAL_TYPES_ALL_PKG

Source


1 package body CN_LEDGER_BAL_TYPES_ALL_PKG as
2 /* $Header: cnmllbtb.pls 115.9 2001/10/29 17:08:28 pkm ship    $ */
3 procedure INSERT_ROW (
4   X_ROWID in out VARCHAR2,
5   X_BALANCE_ID in NUMBER,
6 --  X_CREDIT_TYPE_ID in NUMBER,
7 --  X_INCENTIVE_TYPE_ID in NUMBER,
8   X_STATISTICAL_TYPE in VARCHAR2,
9   X_PAYMENT_TYPE in VARCHAR2,
10   X_COLUMN_NAME in VARCHAR2,
11   X_BALANCE_TYPE in VARCHAR2,
12   X_SCREEN_SEQUENCE in NUMBER,
13   X_BALANCE_NAME in VARCHAR2,
14   X_CREATION_DATE in DATE,
15   X_CREATED_BY in NUMBER,
16   X_LAST_UPDATE_DATE in DATE,
17   X_LAST_UPDATED_BY in NUMBER,
18   X_LAST_UPDATE_LOGIN in NUMBER
19 ) is
20   cursor C is select ROWID from CN_LEDGER_BAL_TYPES_ALL_B
21     where BALANCE_ID = X_BALANCE_ID
22     ;
23 begin
24   insert into CN_LEDGER_BAL_TYPES_ALL_B (
25 --    CREDIT_TYPE_ID,
26 --    INCENTIVE_TYPE_ID,
27     STATISTICAL_TYPE,
28     PAYMENT_TYPE,
29     BALANCE_ID,
30     COLUMN_NAME,
31     BALANCE_TYPE,
32     SCREEN_SEQUENCE,
33     CREATION_DATE,
34     CREATED_BY,
35     LAST_UPDATE_DATE,
36     LAST_UPDATED_BY,
37     LAST_UPDATE_LOGIN
38   ) values (
39 --    X_CREDIT_TYPE_ID,
40 --    X_INCENTIVE_TYPE_ID,
41     X_STATISTICAL_TYPE,
42     X_PAYMENT_TYPE,
43     X_BALANCE_ID,
44     X_COLUMN_NAME,
45     X_BALANCE_TYPE,
46     X_SCREEN_SEQUENCE,
47     X_CREATION_DATE,
48     X_CREATED_BY,
49     X_LAST_UPDATE_DATE,
50     X_LAST_UPDATED_BY,
51     X_LAST_UPDATE_LOGIN
52   );
53 
54   insert into CN_LEDGER_BAL_TYPES_ALL_TL (
55     BALANCE_ID,
56     BALANCE_NAME,
57     LAST_UPDATE_DATE,
58     LAST_UPDATED_BY,
59     LAST_UPDATE_LOGIN,
60     CREATION_DATE,
61     CREATED_BY,
62     LANGUAGE,
63     SOURCE_LANG
64   ) select
65     X_BALANCE_ID,
66     X_BALANCE_NAME,
67     X_LAST_UPDATE_DATE,
68     X_LAST_UPDATED_BY,
69     X_LAST_UPDATE_LOGIN,
70     X_CREATION_DATE,
71     X_CREATED_BY,
72     L.LANGUAGE_CODE,
73     userenv('LANG')
74   from FND_LANGUAGES L
75   where L.INSTALLED_FLAG in ('I', 'B')
76   and not exists
77     (select NULL
78     from CN_LEDGER_BAL_TYPES_ALL_TL T
79     where T.BALANCE_ID = X_BALANCE_ID
80     and T.LANGUAGE = L.language_code AND
81      NVL(ORG_ID,NVL(TO_NUMBER(DECODE(SUBSTRB(USERENV('CLIENT_INFO'),1,1), ' ', NULL, SUBSTRB(USERENV('CLIENT_INFO'),1,10))),-99)) = NVL(TO_NUMBER(DECODE(SUBSTRB(USERENV('CLIENT_INFO'),1,1), ' ', NULL, SUBSTRB(USERENV('CLIENT_INFO'),1,10))),-99));
82 
83   open c;
84   fetch c into X_ROWID;
85   if (c%notfound) then
86     close c;
87     raise no_data_found;
88   end if;
89   close c;
90 
91 end INSERT_ROW;
92 
93 procedure LOCK_ROW (
94   X_BALANCE_ID in NUMBER,
95 --  X_CREDIT_TYPE_ID in NUMBER,
96 --  X_INCENTIVE_TYPE_ID in NUMBER,
97   X_STATISTICAL_TYPE in VARCHAR2,
98   X_PAYMENT_TYPE in VARCHAR2,
99   X_COLUMN_NAME in VARCHAR2,
100   X_BALANCE_TYPE in VARCHAR2,
101   X_SCREEN_SEQUENCE in NUMBER,
102   X_BALANCE_NAME in VARCHAR2
103 ) is
104   cursor c is select
105 --      CREDIT_TYPE_ID,
106 --      INCENTIVE_TYPE_ID,
107       STATISTICAL_TYPE,
108       PAYMENT_TYPE,
109       COLUMN_NAME,
110       BALANCE_TYPE,
111       SCREEN_SEQUENCE
112     from CN_LEDGER_BAL_TYPES_ALL_B
113     where BALANCE_ID = x_balance_id AND
114      NVL(ORG_ID,NVL(TO_NUMBER(DECODE(SUBSTRB(USERENV('CLIENT_INFO'),1,1), ' ', NULL, SUBSTRB(USERENV('CLIENT_INFO'),1,10))),-99)) = NVL(TO_NUMBER(DECODE(SUBSTRB(USERENV('CLIENT_INFO'),1,1), ' ', NULL, SUBSTRB(USERENV('CLIENT_INFO'),1,10))),-99)
115     for update of BALANCE_ID nowait;
116   recinfo c%rowtype;
117 
118   cursor c1 is select
119       BALANCE_NAME,
120       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
121     from CN_LEDGER_BAL_TYPES_ALL_TL
122     where BALANCE_ID = X_BALANCE_ID
123     and userenv('LANG') in (LANGUAGE, SOURCE_LANG) AND
124      NVL(ORG_ID,NVL(TO_NUMBER(DECODE(SUBSTRB(USERENV('CLIENT_INFO'),1,1), ' ', NULL, SUBSTRB(USERENV('CLIENT_INFO'),1,10))),-99)) = NVL(TO_NUMBER(DECODE(SUBSTRB(USERENV('CLIENT_INFO'),1,1), ' ', NULL, SUBSTRB(USERENV('CLIENT_INFO'),1,10))),-99)
125     for update of BALANCE_ID nowait;
126 begin
127   open c;
128   fetch c into recinfo;
129   if (c%notfound) then
130     close c;
131     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
132     app_exception.raise_exception;
133   end if;
134   close c;
135   if (
136 --      ((recinfo.CREDIT_TYPE_ID = X_CREDIT_TYPE_ID)
137 --           OR ((recinfo.CREDIT_TYPE_ID is null) AND (X_CREDIT_TYPE_ID is null)))
138 --      AND
139 --      ((recinfo.INCETNIVE_TYPE_ID = X_INCENTIVE_TYPE_ID)
140 --           OR ((recinfo.INCENTIVE_TYPE_ID is null) AND (X_INCENTIVE_TYPE_ID is null)))
141 --      AND
142       ((recinfo.STATISTICAL_TYPE = X_STATISTICAL_TYPE)
143            OR ((recinfo.STATISTICAL_TYPE is null) AND (X_STATISTICAL_TYPE is null)))
144       AND ((recinfo.PAYMENT_TYPE = X_PAYMENT_TYPE)
145            OR ((recinfo.PAYMENT_TYPE is null) AND (X_PAYMENT_TYPE is null)))
146       AND (recinfo.COLUMN_NAME = X_COLUMN_NAME)
147       AND (recinfo.BALANCE_TYPE = X_BALANCE_TYPE)
148       AND (recinfo.SCREEN_SEQUENCE = X_SCREEN_SEQUENCE)
149   ) then
150     null;
151   else
152     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
153     app_exception.raise_exception;
154   end if;
155 
156   for tlinfo in c1 loop
157     if (tlinfo.BASELANG = 'Y') then
158       if (    (tlinfo.BALANCE_NAME = X_BALANCE_NAME)
159       ) then
160         null;
161       else
162         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
163         app_exception.raise_exception;
164       end if;
165     end if;
166   end loop;
167   return;
168 end LOCK_ROW;
169 
170 procedure UPDATE_ROW (
171   X_BALANCE_ID in NUMBER,
172 --  X_CREDIT_TYPE_ID in NUMBER,
173 --  X_INCENTIVE_TYPE_ID in NUMBER,
174   X_STATISTICAL_TYPE in VARCHAR2,
175   X_PAYMENT_TYPE in VARCHAR2,
176   X_COLUMN_NAME in VARCHAR2,
177   X_BALANCE_TYPE in VARCHAR2,
178   X_SCREEN_SEQUENCE in NUMBER,
179   X_BALANCE_NAME in VARCHAR2,
180   X_LAST_UPDATE_DATE in DATE,
181   X_LAST_UPDATED_BY in NUMBER,
182   X_LAST_UPDATE_LOGIN in NUMBER
183 ) is
184 begin
185   update CN_LEDGER_BAL_TYPES_ALL_B set
186 --    CREDIT_TYPE_ID = X_CREDIT_TYPE_ID,
187 --    INCENTIVE_TYPE_ID = X_INCENTIVE_TYPE_ID,
188     STATISTICAL_TYPE = X_STATISTICAL_TYPE,
189     PAYMENT_TYPE = X_PAYMENT_TYPE,
190     COLUMN_NAME = X_COLUMN_NAME,
191     BALANCE_TYPE = X_BALANCE_TYPE,
192     SCREEN_SEQUENCE = X_SCREEN_SEQUENCE,
193     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
194     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
195     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
196   where BALANCE_ID = X_BALANCE_ID AND
197      NVL(ORG_ID,NVL(TO_NUMBER(DECODE(SUBSTRB(USERENV('CLIENT_INFO'),1,1), ' ', NULL, SUBSTRB(USERENV('CLIENT_INFO'),1,10))),-99)) = NVL(TO_NUMBER(DECODE(SUBSTRB(USERENV('CLIENT_INFO'),1,1), ' ', NULL, SUBSTRB(USERENV('CLIENT_INFO'),1,10))),-99);
198 
199   if (sql%notfound) then
200     raise no_data_found;
201   end if;
202 
203   update CN_LEDGER_BAL_TYPES_ALL_TL set
204     BALANCE_NAME = X_BALANCE_NAME,
205     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
206     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
207     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
208     SOURCE_LANG = userenv('LANG')
209   where BALANCE_ID = X_BALANCE_ID
210   and userenv('LANG') in (LANGUAGE, SOURCE_LANG) AND
211      NVL(ORG_ID,NVL(TO_NUMBER(DECODE(SUBSTRB(USERENV('CLIENT_INFO'),1,1), ' ', NULL, SUBSTRB(USERENV('CLIENT_INFO'),1,10))),-99)) = NVL(TO_NUMBER(DECODE(SUBSTRB(USERENV('CLIENT_INFO'),1,1), ' ', NULL, SUBSTRB(USERENV('CLIENT_INFO'),1,10))),-99);
212 
213   if (sql%notfound) then
214     raise no_data_found;
215   end if;
216 end UPDATE_ROW;
217 
218 procedure DELETE_ROW (
219   X_BALANCE_ID in NUMBER
220 ) is
221 begin
222   delete from CN_LEDGER_BAL_TYPES_ALL_TL
223   where BALANCE_ID = X_BALANCE_ID AND
224      NVL(ORG_ID,NVL(TO_NUMBER(DECODE(SUBSTRB(USERENV('CLIENT_INFO'),1,1), ' ', NULL, SUBSTRB(USERENV('CLIENT_INFO'),1,10))),-99)) = NVL(TO_NUMBER(DECODE(SUBSTRB(USERENV('CLIENT_INFO'),1,1), ' ', NULL, SUBSTRB(USERENV('CLIENT_INFO'),1,10))),-99);
225 
226   if (sql%notfound) then
227     raise no_data_found;
228   end if;
229 
230   delete from CN_LEDGER_BAL_TYPES_ALL_B
231   where BALANCE_ID = X_BALANCE_ID AND
232      NVL(ORG_ID,NVL(TO_NUMBER(DECODE(SUBSTRB(USERENV('CLIENT_INFO'),1,1), ' ', NULL, SUBSTRB(USERENV('CLIENT_INFO'),1,10))),-99)) = NVL(TO_NUMBER(DECODE(SUBSTRB(USERENV('CLIENT_INFO'),1,1), ' ', NULL, SUBSTRB(USERENV('CLIENT_INFO'),1,10))),-99);
233 
234   if (sql%notfound) then
235     raise no_data_found;
236   end if;
237 end DELETE_ROW;
238 
239 procedure ADD_LANGUAGE
240 is
241 begin
242   delete from CN_LEDGER_BAL_TYPES_ALL_TL T
243   where not exists
244     (select NULL
245     from CN_LEDGER_BAL_TYPES_ALL_B B
246     where B.BALANCE_ID = T.balance_id
247     and   NVL(B.ORG_ID,NVL(TO_NUMBER(DECODE( SUBSTRB(USERENV('CLIENT_INFO'),1,1),' ',
248           NULL, SUBSTRB(USERENV('CLIENT_INFO'),1,10))),-99)) =
249           NVL(T.ORG_ID, NVL(TO_NUMBER(DECODE( SUBSTRB(USERENV('CLIENT_INFO'),1,1),' ',
250           NULL, SUBSTRB(USERENV('CLIENT_INFO'),1,10))),-99))
251     );
252 
253   update CN_LEDGER_BAL_TYPES_ALL_TL T set (
254       BALANCE_NAME
255     ) = (select
256       B.BALANCE_NAME
257     from CN_LEDGER_BAL_TYPES_ALL_TL B
258     where B.BALANCE_ID = T.BALANCE_ID
259     and B.LANGUAGE = T.source_lang
260     and   NVL(B.ORG_ID,NVL(TO_NUMBER(DECODE( SUBSTRB(USERENV('CLIENT_INFO'),1,1),' ',
261           NULL, SUBSTRB(USERENV('CLIENT_INFO'),1,10))),-99)) =
262           NVL(T.ORG_ID, NVL(TO_NUMBER(DECODE( SUBSTRB(USERENV('CLIENT_INFO'),1,1),' ',
263           NULL, SUBSTRB(USERENV('CLIENT_INFO'),1,10))),-99))	 )
264   where (
265       T.BALANCE_ID,
266       T.LANGUAGE
267   ) in (select
268       SUBT.BALANCE_ID,
269       SUBT.LANGUAGE
270     from CN_LEDGER_BAL_TYPES_ALL_TL SUBB, CN_LEDGER_BAL_TYPES_ALL_TL SUBT
271     where SUBB.BALANCE_ID = SUBT.BALANCE_ID
272     and SUBB.LANGUAGE = SUBT.source_lang
273     and   NVL(SUBB.ORG_ID,NVL(TO_NUMBER(DECODE( SUBSTRB(USERENV('CLIENT_INFO'),1,1),' ',
274           NULL, SUBSTRB(USERENV('CLIENT_INFO'),1,10))),-99)) =
275           NVL(SUBT.ORG_ID, NVL(TO_NUMBER(DECODE( SUBSTRB(USERENV('CLIENT_INFO'),1,1),' ',
276           NULL, SUBSTRB(USERENV('CLIENT_INFO'),1,10))),-99))
277     and (SUBB.BALANCE_NAME <> SUBT.BALANCE_NAME
278       or (SUBB.BALANCE_NAME is null and SUBT.BALANCE_NAME is not null)
279       or (SUBB.BALANCE_NAME is not null and SUBT.BALANCE_NAME is null)
280 	 ));
281 
282   insert into CN_LEDGER_BAL_TYPES_ALL_TL (
283     ORG_ID,
284     BALANCE_ID,
285     BALANCE_NAME,
286     LAST_UPDATE_DATE,
287     LAST_UPDATED_BY,
288     LAST_UPDATE_LOGIN,
289     CREATION_DATE,
290     CREATED_BY,
291     LANGUAGE,
292     SOURCE_LANG
293   ) select
294     B.ORG_ID,
295     B.BALANCE_ID,
296     B.BALANCE_NAME,
297     B.LAST_UPDATE_DATE,
298     B.LAST_UPDATED_BY,
299     B.LAST_UPDATE_LOGIN,
300     B.CREATION_DATE,
301     B.CREATED_BY,
302     L.LANGUAGE_CODE,
303     B.SOURCE_LANG
304   from CN_LEDGER_BAL_TYPES_ALL_TL B, FND_LANGUAGES L
305   where L.INSTALLED_FLAG in ('I', 'B')
306   and B.LANGUAGE = userenv('LANG')
307   and not exists
308     (select NULL
309     from CN_LEDGER_BAL_TYPES_ALL_TL T
310     where T.BALANCE_ID = B.BALANCE_ID
311     and T.LANGUAGE = L.language_code
312     and   NVL(T.ORG_ID,NVL(TO_NUMBER(DECODE( SUBSTRB(USERENV('CLIENT_INFO'),1,1),' ',
313           NULL, SUBSTRB(USERENV('CLIENT_INFO'),1,10))),-99)) =
314           NVL(B.ORG_ID, NVL(TO_NUMBER(DECODE( SUBSTRB(USERENV('CLIENT_INFO'),1,1),' ',
315           NULL, SUBSTRB(USERENV('CLIENT_INFO'),1,10))),-99))     );
316 end ADD_LANGUAGE;
317 
318 -- --------------------------------------------------------------------+
319 -- Procedure : LOAD_ROW
320 -- Description : Called by FNDLOAD to upload seed datas, this procedure
321 --    only handle seed datas. ORG_ID = -3113
322 -- --------------------------------------------------------------------+
323 
324 PROCEDURE LOAD_ROW
325   (x_balance_id IN NUMBER,
326    x_balance_name IN VARCHAR2,
327    x_balance_type IN VARCHAR2,
328    x_statistical_type IN VARCHAR2,
329    x_payment_type IN VARCHAR2,
330    x_column_name IN VARCHAR2,
331    x_screen_sequence IN NUMBER,
332    x_owner IN VARCHAR2) IS
333        user_id NUMBER;
334 
335 BEGIN
336    -- Validate input data
337    IF (x_balance_id IS NULL)
338      OR  (x_balance_name IS NULL) OR (x_balance_type  IS NULL)
339        OR (x_column_name IS NULL) OR (x_screen_sequence IS NULL) THEN
340       GOTO end_load_row;
341    END IF;
342 
343    IF (x_owner IS NOT NULL) AND (x_owner = 'SEED') THEN
344       user_id := 1;
345     ELSE
346       user_id := 0;
347    END IF;
348    -- Load The record to _B table
349    UPDATE cn_ledger_bal_types_all_b SET
350 --    CREDIT_TYPE_ID = X_CREDIT_TYPE_ID,
351 --    INCENTIVE_TYPE_ID = X_INCENTIVE_TYPE_ID,
352      STATISTICAL_TYPE = X_STATISTICAL_TYPE,
353      PAYMENT_TYPE = X_PAYMENT_TYPE,
357      LAST_UPDATE_DATE = sysdate,
354      COLUMN_NAME = X_COLUMN_NAME,
355      BALANCE_TYPE = X_BALANCE_TYPE,
356      SCREEN_SEQUENCE = X_SCREEN_SEQUENCE,
358      LAST_UPDATED_BY = user_id,
359      LAST_UPDATE_LOGIN = 0
360      WHERE BALANCE_ID = X_BALANCE_ID;
361    IF (SQL%NOTFOUND) THEN
362       -- Insert new record to _B table
363       INSERT INTO cn_ledger_bal_types_all_b
364 	(--    CREDIT_TYPE_ID,
365 	 --    INCENTIVE_TYPE_ID,
366 	 BALANCE_ID,
367 	 STATISTICAL_TYPE,
368 	 PAYMENT_TYPE,
369 	 COLUMN_NAME,
370 	 BALANCE_TYPE,
371 	 SCREEN_SEQUENCE,
372 	 CREATION_DATE,
373 	 CREATED_BY,
374 	 LAST_UPDATE_DATE,
375 	 LAST_UPDATED_BY,
376 	 LAST_UPDATE_LOGIN
377 	 ) values
378 	(--    X_CREDIT_TYPE_ID,
379 	 --    X_INCENTIVE_TYPE_ID,
380 	 X_BALANCE_ID,
381 	 X_STATISTICAL_TYPE,
382 	 X_PAYMENT_TYPE,
383 	 X_COLUMN_NAME,
384 	 X_BALANCE_TYPE,
385 	 X_SCREEN_SEQUENCE,
386 	 sysdate,
387 	 user_id,
388 	 sysdate,
389 	 user_id,
390 	 0
391 	 );
392    END IF;
393    -- Load The record to _TL table
394    UPDATE cn_ledger_bal_types_all_tl SET
395      BALANCE_NAME = X_BALANCE_NAME,
396      LAST_UPDATE_DATE = sysdate,
397      LAST_UPDATED_BY = user_id,
398      LAST_UPDATE_LOGIN = 0,
399      SOURCE_LANG = userenv('LANG')
400      WHERE BALANCE_ID = X_BALANCE_ID
401      AND   userenv('LANG') IN (LANGUAGE, SOURCE_LANG);
402    IF (SQL%NOTFOUND) THEN
403       -- Insert new record to _TL table
404       INSERT INTO cn_ledger_bal_types_all_tl
405 	(BALANCE_ID,
406 	 BALANCE_NAME,
407 	 LAST_UPDATE_DATE,
408 	 LAST_UPDATED_BY,
409 	 LAST_UPDATE_LOGIN,
410 	 CREATION_DATE,
411 	 CREATED_BY,
412 	 LANGUAGE,
413 	 SOURCE_LANG
414 	 ) SELECT
415 	X_BALANCE_ID,
416 	X_BALANCE_NAME,
417 	sysdate,
418 	user_id,
419 	0,
420 	sysdate,
421 	user_id,
422 	L.LANGUAGE_CODE,
423 	userenv('LANG')
424 	FROM FND_LANGUAGES L
425 	WHERE L.INSTALLED_FLAG IN ('I', 'B')
426 	AND NOT EXISTS
427 	(SELECT NULL
428 	 FROM CN_LEDGER_BAL_TYPES_ALL_TL T
429 	 WHERE T.BALANCE_ID = X_BALANCE_ID
430 	 AND T.LANGUAGE = L.LANGUAGE_CODE);
431    END IF;
432    << end_load_row >>
433      NULL;
434 END  LOAD_ROW ;
435 
436 
437 -- --------------------------------------------------------------------+
438 -- Procedure : TRANSLATE_ROW
439 -- Description : Called by FNDLOAD to translate seed datas, this procedure
440 --    only handle seed datas. ORG_ID = -3113
441 -- --------------------------------------------------------------------+
442   PROCEDURE TRANSLATE_ROW
443   ( x_balance_id IN NUMBER,
444     x_balance_name IN VARCHAR2,
445     x_owner IN VARCHAR2) IS
446        user_id NUMBER;
447 BEGIN
448    -- Validate input data
449    IF (x_balance_id IS NULL) OR  (x_balance_name IS NULL)  THEN
450       GOTO end_translate_row;
451    END IF;
452 
453    IF (x_owner IS NOT NULL) AND (x_owner = 'SEED') THEN
454       user_id := 1;
455     ELSE
456       user_id := 0;
457    END IF;
458    -- Update the translation
459    UPDATE cn_ledger_bal_types_all_tl SET
460      balance_name = x_balance_name,
461      last_update_date = sysdate,
462      last_updated_by = user_id,
463      last_update_login = 0,
464      source_lang = userenv('LANG')
465      WHERE balance_id = x_balance_id
466      AND userenv('LANG') IN (LANGUAGE, SOURCE_LANG);
467 
468    << end_translate_row >>
469      NULL;
470 END TRANSLATE_ROW ;
471 
472 
473 end CN_LEDGER_BAL_TYPES_ALL_PKG;