DBA Data[Home] [Help]

PACKAGE BODY: APPS.JA_TH_AR_TAX_INVOICE

Source


1 PACKAGE BODY ja_th_ar_tax_invoice AS
2 /* $Header: jathrtib.pls 120.4 2006/01/06 19:30:08 ykonishi ship $ */
3 
4   FUNCTION insert_interface_errors(
5     p_customer_trx_id IN NUMBER,
6     p_message_text IN VARCHAR2,
7     p_invalid_value IN VARCHAR2,
8     p_validation_name IN VARCHAR2
9   )
10   RETURN BOOLEAN IS
11     CURSOR interface_line IS
12       SELECT interface_line_id
13       FROM ra_interface_lines_gt
14       WHERE customer_trx_id = p_customer_trx_id;
15 
16     cannot_insert_error EXCEPTION;
17 
18   BEGIN
19 
20     FOR l IN interface_line
21     LOOP
22       IF NOT jg_zz_auto_invoice.put_error_message(
23                l.interface_line_id,
24                p_message_text,
25                p_invalid_value) THEN
26 
27         raise cannot_insert_error;
28 
29       END IF;
30     END LOOP;
31 
32     return(TRUE);
33 
34   EXCEPTION
35     WHEN cannot_insert_error THEN
36       arp_standard.debug('-- Found exception in ja_th_ar_tax_invoice.' ||
37                          p_validation_name);
38       arp_standard.debug('-- Cannot insert the error record into ' ||
39                          'ra_interface_errors.');
40       return(FALSE);
41 
42     WHEN others THEN
43       arp_standard.debug('-- Found exception in ' ||
44                          'ja_th_ar_tax_invoice.insert_interface_errors.');
45       arp_standard.debug('-- ' || SQLERRM);
46 
47       return(FALSE);
48 
49   END insert_interface_errors;
50 
51 
52   FUNCTION validate_trx_date(
53     p_customer_trx_id  IN NUMBER,
54     p_trx_date         IN DATE,
55     p_last_issued_date IN DATE,
56     p_advance_days     IN NUMBER,
57     p_created_from     IN VARCHAR2
58   )
59   RETURN NUMBER IS
60 
61   BEGIN
62 
63     IF p_last_issued_date is NULL THEN
64       return(1);
65     ELSIF p_trx_date BETWEEN p_last_issued_date AND
66                           (sysdate + nvl(p_advance_days,0)) THEN
67       return(1);
68     ELSE
69       IF p_created_from = 'RAXTRX' THEN
70         fnd_message.set_name('JA','JA_TH_AR_INVALID_TRX_DATE');
71         fnd_message.set_token(
72           'LAST_ISSUED_DATE',
73           fnd_date.date_to_chardate(p_last_issued_date));
74         fnd_message.set_token(
75           'ADVANCED_DATE',
76           fnd_date.date_to_chardate(sysdate+nvl(p_advance_days,0)));
77 
78         IF insert_interface_errors(
79              p_customer_trx_id,
80              fnd_message.get,
81              fnd_date.date_to_chardate(p_trx_date),
82              'validate_trx_date') THEN
83           return(0);
84         ELSE
85           return(-1);
86         END IF;
87       ELSIF p_created_from = 'ARXTWMAI' THEN
88         return(0);
89       END IF;
90     END IF;
91 
92   EXCEPTION
93 
94     WHEN OTHERS THEN
95       IF p_created_from = 'RAXTRX' THEN
96         arp_standard.debug('-- Found exception in ' ||
97                            'ja_th_ar_tax_invoice.validate_trx_date.');
98         arp_standard.debug('-- ' || SQLERRM);
99         return(-1);
100       ELSIF p_created_from = 'ARXTWMAI' THEN
101         return(0);
102       END IF;
103 
104   END validate_trx_date;
105 
106 
107   FUNCTION validate_tax_code(
108     p_customer_trx_id IN NUMBER,
109     p_created_from IN VARCHAR2
110   )
111   RETURN NUMBER IS
112 
113     n NUMBER;
114 
115   BEGIN
116   /*
117   ** Bug 4756219
118   **
119   ** Stub out logic due to the reference with ar vat tax
120   ** and Thai localization is obsolete in R12.
121   **
122   **
123   **
124   **
125   */
126   NULL;
127   END validate_tax_code;
128 
129 
130   FUNCTION update_last_issued_date(
131     p_customer_trx_id  IN NUMBER,
132     p_cust_trx_type_id IN NUMBER,
133     p_trx_date         IN DATE,
134     p_created_from     IN VARCHAR2
135   )
136   RETURN NUMBER IS
137 
138     CURSOR last_issued_date IS
139       SELECT global_attribute2
140       FROM ra_cust_trx_types
141       WHERE cust_trx_type_id = p_cust_trx_type_id
142       FOR UPDATE OF global_attribute2 NOWAIT;
143 
144     cannot_lock EXCEPTION;
145     PRAGMA EXCEPTION_INIT(cannot_lock, -54);
146 
147     dummy VARCHAR2(150);
148     trx_type_name VARCHAR2(20);
149 
150   BEGIN
151 
152     BEGIN
153       OPEN last_issued_date;
154 
155       FETCH last_issued_date INTO dummy;
156 
157       UPDATE ra_cust_trx_types
158       SET global_attribute2 = fnd_date.date_to_canonical(p_trx_date)
159       WHERE CURRENT OF last_issued_date;
160 
161       CLOSE last_issued_date;
162 
163     EXCEPTION
164       WHEN cannot_lock THEN
165 
166         IF p_created_from = 'RAXTRX' THEN
167 
168           BEGIN
169             SELECT name
170             INTO trx_type_name
171             FROM ra_cust_trx_types
172             WHERE cust_trx_type_id = p_cust_trx_type_id;
173           EXCEPTION
174             WHEN others THEN
175               raise;
176           END;
177 
178           fnd_message.set_name('JA','JA_TH_AR_LAST_ISSD_DT_LOCKED');
179 
180           IF insert_interface_errors(
181                p_customer_trx_id,
182                fnd_message.get,
183                fnd_date.date_to_chardate(p_trx_date),
184                'update_last_issued_date') THEN
185             return(0);
186           ELSE
187             return(-1);
188           END IF;
189         ELSIF p_created_from = 'ARXTWMAI' THEN
190           return(0);
191         END IF;
192 
193         raise;
194 
195     END;
196 
197     return(1);
198 
199   EXCEPTION
200 
201     WHEN others THEN
202       IF p_created_from = 'RAXTRX' THEN
203         arp_standard.debug('-- Found exception in ' ||
204                            'ja_th_ar_tax_invoice.update_last_issued_date.');
205         arp_standard.debug('-- ' || SQLERRM);
206         return(-1);
207       ELSIF p_created_from = 'ARXTWMAI' THEN
208         return(0);
209       END IF;
210 
211   END update_last_issued_date;
212 
213 END ja_th_ar_tax_invoice;