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;