DBA Data[Home] [Help]

PACKAGE BODY: APPS.JL_ZZ_AR_TX_LIB_PKG

Source


1 PACKAGE BODY JL_ZZ_AR_TX_LIB_PKG AS
2 /* $Header: jlzzxlib.pls 120.11 2006/02/06 22:51:28 appradha ship $ */
3 
4 FUNCTION get_tax_category_id(p_vat_tax_id IN NUMBER) RETURN NUMBER IS
5 
6   l_tax_category_id NUMBER;
7 BEGIN
8   l_tax_category_id := NULL;
9   BEGIN
10     SELECT global_attribute1
11     INTO   l_tax_category_id
12     FROM   ar_vat_tax
13     WHERE  vat_tax_id = p_vat_tax_id;
14   EXCEPTION
15     WHEN OTHERS THEN
16          l_tax_category_id := NULL;
17   END;
18   RETURN l_tax_category_id;
19 END get_tax_category_id;
20 
21 FUNCTION get_tax_inclusive_flag(p_tax_category_id IN NUMBER) RETURN VARCHAR2 IS
22 
23   l_tax_inclusive_flag VARCHAR2(1);
24 BEGIN
25   l_tax_inclusive_flag := NULL;
26   BEGIN
27      SELECT tax_inclusive
28      INTO   l_tax_inclusive_flag
29      FROM   jl_zz_ar_tx_categry
30      WHERE  tax_category_id = p_tax_category_id;
31   EXCEPTION
32     WHEN OTHERS THEN
33          l_tax_inclusive_flag := NULL;
34   END;
35   RETURN l_tax_inclusive_flag;
36 END get_tax_inclusive_flag;
37 
38 -- Bug 3610797
39 PROCEDURE get_item_fsc_txn_nat_code(p_inv_item_id   IN NUMBER,
40                                     p_item_org      IN OUT NOCOPY VARCHAR2,
41                                     p_item_fsc_type IN OUT NOCOPY VARCHAR2,
42                                     p_fed_trib      IN OUT NOCOPY VARCHAR2,
43                                     p_state_trib    IN OUT NOCOPY VARCHAR2) IS
44 
45   l_item_org      varchar2(150);
46   l_item_ft       varchar2(150);
47   l_fed_trib      varchar2(150);
48   l_sta_trib      varchar2(150);
49   l_org_id        NUMBER;
50 
51 BEGIN
52   l_item_org := NULL;
53   l_item_ft  := NULL;
54   l_fed_trib := NULL;
55   l_sta_trib := NULL;
56 
57   BEGIN
58 
59     l_org_id := mo_global.get_current_org_id;
60 
61     SELECT mtl.global_attribute3,
62            mtl.global_attribute4,
63            mtl.global_attribute5,
64            mtl.global_attribute6
65     INTO   l_item_org,
66            l_item_ft,
67            l_fed_trib,
68            l_sta_trib
69     FROM   mtl_system_items mtl
70     WHERE  mtl.organization_id = oe_sys_parameters.value('MASTER_ORGANIZATION_ID',l_org_id)
71     AND    mtl.inventory_item_id = p_inv_item_id;
72   EXCEPTION
73     WHEN OTHERS THEN
74          l_item_org := NULL;
75          l_item_ft  := NULL;
76          l_fed_trib := NULL;
77          l_sta_trib := NULL;
78   END;
79 
80   p_item_org      := l_item_org;
81   p_item_fsc_type := l_item_ft;
82   p_fed_trib      := l_fed_trib;
83   p_state_trib    := l_sta_trib;
84 END get_item_fsc_txn_nat_code;
85 
86 -- Bug 3610797
87 PROCEDURE get_memo_fsc_txn_nat_code(p_memo_line_id  IN NUMBER,
88                                     p_item_org      IN OUT NOCOPY VARCHAR2,
89                                     p_item_fsc_type IN OUT NOCOPY VARCHAR2,
90                                     p_fed_trib      IN OUT NOCOPY VARCHAR2,
91                                     p_state_trib    IN OUT NOCOPY VARCHAR2) IS
92 
93   l_item_org      varchar2(150);
94   l_item_ft       varchar2(150);
95   l_fed_trib      varchar2(150);
96   l_sta_trib      varchar2(150);
97 
98 BEGIN
99   l_item_org := NULL;
100   l_item_ft  := NULL;
101   l_fed_trib := NULL;
102   l_sta_trib := NULL;
103 
104   BEGIN
105 
106     SELECT aml.global_attribute3,
107            aml.global_attribute4,
108            aml.global_attribute5,
109            aml.global_attribute6
110     INTO   l_item_org,
111            l_item_ft,
112            l_fed_trib,
113            l_sta_trib
114     FROM   ar_memo_lines aml,
115            fnd_lookups tn
116     WHERE  aml.memo_line_id = p_memo_line_id;
117   EXCEPTION
118     WHEN OTHERS THEN
119          l_item_org := NULL;
120          l_item_ft  := NULL;
121          l_fed_trib := NULL;
122          l_sta_trib := NULL;
123   END;
124   p_item_org      := l_item_org;
125   p_item_fsc_type := l_item_ft;
126   p_fed_trib      := l_fed_trib;
127   p_state_trib    := l_sta_trib;
128 END get_memo_fsc_txn_nat_code;
129 
130 PROCEDURE get_tax_base_rate_amount
131      (p_cust_trx_line_id IN NUMBER,
132       p_tax_base_rate    IN OUT NOCOPY NUMBER,
133       p_tax_base_amount  IN OUT NOCOPY NUMBER,
134       p_org_id           IN     NUMBER) IS    --Bugfix 2367111
135 
136   l_base_rate   NUMBER;
137   l_base_amount NUMBER;
138   l_org_id      NUMBER;
139 
140 BEGIN
141   l_base_rate   := NULL;
142   l_base_amount := NULL;
143 
144   IF p_org_id IS NULL THEN
145     -- l_org_id := to_number(fnd_profile.value('ORG_ID'));
146        l_org_id := mo_global.get_current_org_id;
147   ELSE
148        l_org_id := p_org_id;
149   END IF;
150 
151   BEGIN
152     SELECT global_attribute11,
153 	   global_attribute12
154     INTO   l_base_amount,
155            l_base_rate
156     FROM ra_customer_trx_lines_all               --Bugfix 2367111
157     WHERE customer_trx_line_id = p_cust_trx_line_id
158     AND nvl(org_id,-99) = nvl(l_org_id,-99);     --Bugfix 2367111
159   EXCEPTION
160     WHEN OTHERS THEN
161          l_base_rate   := NULL;
162          l_base_amount := NULL;
163   END;
164   p_tax_base_rate := l_base_rate;
165   p_tax_base_amount := l_base_amount;
166 END get_tax_base_rate_amount;
167 
168 -- Bug 3610797
169 FUNCTION get_tax_method
170      (p_org_id           IN     NUMBER) RETURN VARCHAR2 IS --Bugfix 2367111
171 
172   l_tax_method zx_product_options.tax_method_code%type;
173   l_org_id  NUMBER;
174 
175   CURSOR get_tax_method_csr
176     ( c_org_id             NUMBER)
177   IS
178    SELECT prod.tax_method_code
179     FROM zx_product_options prod,
180          ar_system_parameters_all sys            --Bugfix 2367111
181    WHERE prod.application_id = 222
182    AND sys.org_id = prod.org_id
183    AND nvl(sys.org_id,-99) = nvl(c_org_id,-99);  --Bugfix 2367111;
184 
185 BEGIN
186 
187   IF p_org_id IS NULL THEN
188     -- l_org_id := to_number(fnd_profile.value('ORG_ID'));
189        l_org_id := mo_global.get_current_org_id;
190   ELSE
191     l_org_id := p_org_id;
192   END IF;
193 
194   OPEN get_tax_method_csr(l_org_id);
195   FETCH get_tax_method_csr INTO l_tax_method;
196   IF get_tax_method_csr%NOTFOUND THEN
197     --
198     -- Bug#4544623- return default value to avoid
199     -- ORA-06503: PL/SQL: Function returned without value
200     --
201     l_tax_method := 'XXX';
202   END IF;
203 
204   CLOSE get_tax_method_csr;
205 
206   RETURN l_tax_method;
207 
208   EXCEPTION
209     WHEN OTHERS THEN
210          l_tax_method := NULL;
211 END get_tax_method;
212 
213 FUNCTION contributor_class_exists(p_address_id             IN NUMBER,
214                                   p_contributor_class_code IN VARCHAR2)
215 RETURN BOOLEAN IS
216 
217   l_contributor_class_code VARCHAR2(150);
218   l_cls_exists             BOOLEAN;
219 
220 BEGIN
221   l_contributor_class_code := NULL;
222 
223   BEGIN
224     SELECT global_attribute8
225     INTO   l_contributor_class_code
226     FROM   hz_cust_acct_sites
227     WHERE  cust_acct_site_id = p_address_id;
228 
229     IF substr(p_contributor_class_code,1,30) <>
230                                       substr(l_contributor_class_code,1,30) THEN
231        l_cls_exists := TRUE;
232     ELSE
233        l_cls_exists := FALSE;
234     END IF;
235 
236   EXCEPTION
237     WHEN OTHERS THEN
238          l_cls_exists := FALSE;
239   END;
240   RETURN l_cls_exists;
241 
242 END contributor_class_exists;
243 
244 /* This Function replaces the above Function
245    contributor_class_exists in JL library*/
246 
247 FUNCTION contributor_class_check(p_address_id             IN NUMBER,
248                                   p_contributor_class_code IN VARCHAR2)
249 RETURN BOOLEAN IS
250 
251   l_cls_exists             BOOLEAN;
252   l_cnt                    NUMBER :=0;
253 BEGIN
254 
255   BEGIN
256     SELECT count(*)
257     INTO   l_cnt
258     FROM   jl_zz_ar_tx_cus_cls
259     WHERE  address_id = p_address_id
260       AND  tax_attr_class_code = p_contributor_class_code;
261 
262   IF l_cnt > 0 THEN
263      l_cls_exists := TRUE;
264   ELSE
265      l_cls_exists := FALSE;
266   END IF;
267 
268   EXCEPTION
269     WHEN OTHERS THEN
270          l_cls_exists := FALSE;
271   END;
272   RETURN l_cls_exists;
273 
274 END contributor_class_check;
275 
276 PROCEDURE populate_cus_cls_details(p_address_id             IN NUMBER,
277                                    p_contributor_class_code IN VARCHAR2) IS
278 
279   l_dummy NUMBER(15);
280 
281 BEGIN
282 
283 -- Bugfix 1783986. Customer Site Profile values (JL_ZZ_AR_TX_CUS_CLS) should not
284 -- be populated with values from JL_ZZ_AR_TX_ATT_CLS due to functional change in
285 -- populating such records. Only changed records of Contributor Class Code will
286 -- be stored in Customer Site Profile (JL_ZZ_AR_TX_CUS_CLS)
287 --
288 -- A data cleanup script (JLZZUCAC) is provided to match existing records of
289 -- JL_ZZ_AR_TX_ATT_CLS and JL_ZZ_AR_TX_CUS_CLS for Contributor Class code and
290 -- will update HZ_CUST_ACCT_SITES.GLOBAL_ATTRIBUTE9 with 'Y' if there are
291 -- differences and will update with 'N' if there are NO differences where
292 -- HZ_CUST_ACCT_SITES.GLOBAL_ATTRIBUTE8 is NOT NULL.
293 --
294 -- For records whose GLOBAL_ATTRIBUTE8 is NOT NULL, Tax Engine would look
295 -- JL_ZZ_AR_TX_CUS_CLS if value of HZ_CUST_ACCT_SITES.GLOBAL_ATTRIBUTE9='Y' and
296 -- JL_ZZ_AR_TX_ATT_CLS if value of HZ_CUST_ACCT_SITES.GLOBAL_ATTRIBUTE9='N'
297 -- NULL value of GLOBAL_ATTRIBUTE9 will be interpreted as 'Y'
298 
299 return;
300 
301 /*
302   l_dummy := 0;
303 
304   BEGIN
305     SELECT count(*)
306     INTO   l_dummy
307     FROM   jl_zz_ar_tx_cus_cls
308     WHERE  address_id = p_address_id
309     AND    tax_attr_class_code = p_contributor_class_code;
310   EXCEPTION
311     WHEN OTHERS THEN
312          l_dummy := 0;
313   END;
314 
315   IF l_dummy = 0 THEN
316      JL_ZZ_AR_TX_CUS_CLS_PKG.Populate_Cus_Cls_Rows(
317                  X_address_id      => p_address_id,
318                  X_class_code      => p_contributor_class_code);
319 
320   END IF;
321 
322 */
323 
324 END populate_cus_cls_details;
325 
326 
327 FUNCTION get_lookup_meaning(p_lookup_code IN VARCHAR2,
328                             p_lookup_type IN VARCHAR2) RETURN VARCHAR2 IS
329 
330 l_meaning VARCHAR2(80);
331 
332 BEGIN
333 
334   l_meaning := NULL;
335 
336   IF p_lookup_code IS NOT NULL THEN
337     BEGIN
338       SELECT meaning
339       INTO  l_meaning
340       FROM  fnd_lookups
341       WHERE lookup_code = p_lookup_code
342       AND   lookup_type = p_lookup_type
343       AND   enabled_flag = 'Y'
344       AND   SYSDATE BETWEEN NVL(start_date_active,SYSDATE)
345                     AND     NVL(end_date_active,SYSDATE);
346     EXCEPTION
347       WHEN OTHERS THEN
348            l_meaning := NULL;
349     END;
350   ELSE
351     l_meaning := NULL;
352   END IF;
353 
354   RETURN l_meaning;
355 
356 END get_lookup_meaning;
357 
358 PROCEDURE set_mo_org_id(p_org_id number) AS
359 BEGIN
360    jl_zz_ar_tx_lib_pkg.mo_org_id := p_org_id;
361 END;
362 
363 FUNCTION get_mo_org_id RETURN NUMBER IS
364 BEGIN
365    return jl_zz_ar_tx_lib_pkg.mo_org_id ;
366 END;
367 
368 END JL_ZZ_AR_TX_LIB_PKG;