[Home] [Help]
PACKAGE BODY: APPS.ZX_TAXWARE_TAX_SERVICE_PKG
Source
1 PACKAGE BODY ZX_TAXWARE_TAX_SERVICE_PKG as
2 /*$Header: zxtxwsrvcpkgb.pls 120.49.12020000.6 2012/12/22 00:09:37 ssanka ship $*/
3
4 /* ======================================================================*
5 | FND Logging infrastructure |
9 G_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
6 * ======================================================================*/
7 G_PKG_NAME CONSTANT VARCHAR2(30) := 'ZX_TAXWARE_TAX_SERVICE_PKG';
8 G_CURRENT_RUNTIME_LEVEL CONSTANT NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
10 G_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
11 G_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
12 G_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
13 G_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
14 G_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
15 G_MODULE_NAME CONSTANT VARCHAR2(80) := 'ZX.PLSQL.ZX_TAXWARE_TAX_SERVICE_PKG.';
16
17 -- Service Indicator
18 SERVIND CHAR;
19 NOSERV_IND CONSTANT SERVIND%TYPE := ' ';
20 SERVICE_IND CONSTANT SERVIND%TYPE := 'S';
21 RENTAL_IND CONSTANT SERVIND%TYPE := 'R';
22 G_tax_selection ZX_TAX_TAXWARE_GEN.SELPARMTYP%TYPE;
23 G_STRING VARCHAR2(200);
24 g_docment_type_id number;
25 g_trasaction_id number;
26 g_tax_regime_code varchar2(80);
27 g_transaction_line_id number;
28 g_trx_level_type varchar2(20);
29 l_trx_line_context_changed BOOLEAN;
30 g_StTaxAmt number;
31 g_CoTaxAmt number;
32 g_CiTaxAmt number;
33 g_TotalTaxAmt NUMBER;
34 cache_index number :=0;
35 l_state_tax_cnt NUMBER;
36 l_county_tax_cnt NUMBER;
37 l_city_tax_cnt NUMBER;
38 l_state_cert_no varchar2(150);
39 l_county_cert_no varchar2(150);
40 l_city_cert_no varchar2(150);
41
42 Type cache_record_type is record(
43 internal_organization_id number,
44 document_type_id number,
45 transaction_id number,
46 transaction_line_id number
47 );
48
49 type cache_tab is table of cache_record_type index by binary_integer;
50 cache_table cache_tab;
51
52 TYPE NUMBER_tbl_type IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
53 TYPE VARCHAR2_1_tbl_type IS TABLE OF VARCHAR2(1) INDEX BY BINARY_INTEGER;
54 TYPE VARCHAR2_2_tbl_type IS TABLE OF VARCHAR2(2) INDEX BY BINARY_INTEGER;
55 TYPE VARCHAR2_15_tbl_type IS TABLE OF VARCHAR2(15) INDEX BY BINARY_INTEGER;
56 TYPE VARCHAR2_30_tbl_type IS TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER;
57 TYPE VARCHAR2_80_tbl_type IS TABLE OF VARCHAR2(80) INDEX BY BINARY_INTEGER;
58 TYPE VARCHAR2_50_tbl_type IS TABLE OF VARCHAR2(50) INDEX BY BINARY_INTEGER;
59 TYPE VARCHAR2_240_tbl_type IS TABLE OF VARCHAR2(240) INDEX BY BINARY_INTEGER;
60 TYPE DATE_tbl_type IS TABLE OF DATE INDEX BY BINARY_INTEGER;
61
62
63 TYPE SYNC_TAX_LINES_TBL IS RECORD(
64 document_type_id NUMBER_tbl_type,
65 transaction_id NUMBER_tbl_type,
66 transaction_line_id NUMBER_tbl_type,
67 trx_level_type VARCHAR2_30_tbl_type,
68 country_code VARCHAR2_30_tbl_type,
69 tax VARCHAR2_30_tbl_type,
70 situs VARCHAR2_30_tbl_type,
71 tax_jurisdiction VARCHAR2_30_tbl_type,
72 tax_currency_code VARCHAR2_15_tbl_type,
73 tax_curr_tax_amount NUMBER_tbl_type,
74 tax_amount NUMBER_tbl_type,
75 tax_rate_percentage NUMBER_tbl_type,
76 taxable_amount NUMBER_tbl_type,
77 exempt_rate_modifier NUMBER_tbl_type,
78 exempt_reason VARCHAR2_240_tbl_type,
79 tax_only_line_flag VARCHAR2_1_tbl_type,
80 inclusive_tax_line_flag VARCHAR2_1_tbl_type,
81 use_tax_flag VARCHAR2_1_tbl_type,
82 ebiz_override_flag VARCHAR2_1_tbl_type,
83 user_override_flag VARCHAR2_1_tbl_type,
84 last_manual_entry VARCHAR2_30_tbl_type,
85 manually_entered_flag VARCHAR2_1_tbl_type,
86 cancel_flag VARCHAR2_1_tbl_type,
87 delete_flag VARCHAR2_1_tbl_type
88 );
89
90 /*-----------------------------------------------------------------------*/
91 /* Taxware error messages - based on Completion code */
92 /*-----------------------------------------------------------------------*/
93 --
94 -- Generic Tax Calculation error messages
95 --
96 TGMSG_SUCCESS CONSTANT VARCHAR2(80) :=
97 'Tax calculation processing completed successfully.';
98 TGMSG_EMPTY CONSTANT VARCHAR2(80) := ' ';
99 TGMSG_INVALIDZIP CONSTANT VARCHAR2(80) := 'Zip code is not numeric.';
100 TGMSG_INVALIDST CONSTANT VARCHAR2(80) := 'Invalid state code.';
101 TGMSG_INVALIDGRS CONSTANT VARCHAR2(80) :=
102 'CalcType = G and supplied gross amount is zero.';
103 TGMSG_INVALIDTAXAMT CONSTANT VARCHAR2(80) :=
104 'CalcType = T and supplied tax amount is zero.';
105 TGMSG_GENINVZIPST CONSTANT VARCHAR2(80) :=
106 'Invalid zip code - zip code is not in range for state.';
107 TGMSG_INVALIDLINK CONSTANT VARCHAR2(80) :=
108 'Linkage parameters are invalid (possibly missing ENDLINK).';
109 TGMSG_TAXACCESSERR CONSTANT VARCHAR2(80) := 'Error accessing Tax Master File.';
110 TGMSG_TAXNOTOPEN CONSTANT VARCHAR2(80) := 'Tax file is not open.';
111 TGMSG_INVCALCTYP CONSTANT VARCHAR2(80) :=
112 'Calculation type is not G, T, or space.';
113 TGMSG_PRDACCESSERR CONSTANT VARCHAR2(80) := 'Error accessing product file.';
114 TGMSG_RUNTIMEOPENERR CONSTANT VARCHAR2(80) :=
115 'Error accessing TAX010 runtime files.';
116 TGMSG_RATEISZERO CONSTANT VARCHAR2(80) := 'Total rate determined by TAX010 is zero. Gross amount cannot be determined.';
117 TGMSG_NEGFIELDS CONSTANT VARCHAR2(80) := 'Negative field passed to TAX010.';
118 TGMSG_INVALIDDTE CONSTANT VARCHAR2(80) :=
119 'Invalid date passed - defaulted to system date.';
120 TGMSG_APOFPO CONSTANT VARCHAR2(80) :=
121 'No taxes calculated for APO/FPO zip code.';
122 TGMSG_AUDACCESSERR CONSTANT VARCHAR2(80) := 'Error accessing audit file.';
123 TGMSG_INVCALCERR CONSTANT VARCHAR2(80) :=
124 'Calculation error file requested but not defined in TAXSET.H';
125 TGMSG_CERRACCESSERR CONSTANT VARCHAR2(80) :=
126 'Error accessing calculation error file.';
127 TGMSG_JERRACCESSERR CONSTANT VARCHAR2(80) :=
128 'Error accessing jurisdiction error file.';
129 TGMSG_INVJURERR CONSTANT VARCHAR2(80) :=
130 'Error accessing jurisdiction error file.';
131 TGMSG_INVJURPROC CONSTANT VARCHAR2(80) :=
132 'Jurisdiction processing requested but not defined in TAXSET.H';
133 TGMSG_INVSELPARM CONSTANT VARCHAR2(80) :=
134 'Tax selection parameter was not 1, 2, 3, or space.';
135 TGMSG_JURISERROR CONSTANT VARCHAR2(80) := 'A jurisdiction error has occurred. Tax calculation will not be performed.';
136 TGMSG_UNKNOWN CONSTANT VARCHAR2(80) :=
137 'Unrecognized Tax Calculation general completion code: ';
138 TGMSG_STEPNOTOPENERR CONSTANT VARCHAR2(80) :=
139 'Error accessing STEP90 runtime files.';
140 TGMSG_STEPNOCUSTERR CONSTANT VARCHAR2(80) :=
141 'STEP processing requested but customer number was blank.';
142 TGMSG_NOSTEPPROC CONSTANT VARCHAR2(200) := 'Either a Tax Certificate was present or CalcType = T or the transcation was a credit, NO STEP processing.';
143 TGMSG_STEPFILEOPENERR CONSTANT VARCHAR2(80) :=
144 'STEP OPEN was successful but the subsequent call to STEP failed.';
145 TGMSG_STEPPARAMERR CONSTANT VARCHAR2(80) :=
146 'One or more of STEP parameters were invalid.';
147 TGMSG_STEPMISCERR CONSTANT VARCHAR2(80) :=
148 'Unknown STEP Error Occurred. No further processing occurs.';
149 TGMSG_PRDINVALID4CU CONSTANT VARCHAR2(80) := 'The product code passed is invalid for a Consumer Use or service transaction.';
150 TGMSG_NEXMERCHACCESSERR CONSTANT VARCHAR2(80) :=
151 'Company profile indexed file could not be accessed.';
152 TGMSG_NEXNOMERCHRECERR CONSTANT VARCHAR2(80) :=
153 'No company profile record found for Company ID passed to TAX010.';
154 TGMSG_NEXSTATEACCESSERR CONSTANT VARCHAR2(80) :=
155 'State nexus indexed file could not be accessed.';
156 TGMSG_NEXLOCALACCESSERR CONSTANT VARCHAR2(80) :=
157 'Local nexus indexed file could not be accessed.';
158 TGMSG_NOCOMPIDERROR CONSTANT VARCHAR2(80) := 'No Company ID was passed.';
159 TGMSG_NEXPRONOTOPENERR CONSTANT VARCHAR2(80) :=
160 'Nexus data files could not be opened.';
161 TGMSG_NOSTATENEXRECERR CONSTANT VARCHAR2(80) := 'No state nexus record found.';
162 TGMSG_NEXPRONOTCLOSEERR CONSTANT VARCHAR2(80) :=
163 'Nexus data files could not be closed.';
164 TGMSG_CONUSEFILEERR CONSTANT VARCHAR2(80) :=
165 'Consumer use file could not be accessed.';
166 TGMSG_PRDINVALID4SERV CONSTANT VARCHAR2(80) :=
167 'Product code invalid for service.';
168 TGMSG_CALC_E_ERROR CONSTANT VARCHAR2(80) :=
169 'Error in calculation type E processing.';
170 TGMSG_EXEMPTLGRGROSS CONSTANT VARCHAR2(80) :=
171 'Exempt amount larger than gross plus exempt.' ;
172 TGMSG_AMOUNTOVERFLOW CONSTANT VARCHAR2(80) := 'Amount passed exceeds the maximum value that can be stored in the audit file.';
173 TGMSG_PRODCONVNOTOPEN CONSTANT VARCHAR2(80) :=
174 'Product conversion files could not be opened.';
175 TGMSG_PRODCDCONVNOTFOUND CONSTANT VARCHAR2(80) :=
176 'Product conversion files could not be found.';
177 TGMSG_PRODCONVCLOSEERR CONSTANT VARCHAR2(80) :=
178 'Error while closing product conversion files.';
179
180 --
181 -- Location Specific Tax Calculation error messages
182 -- Note: Since all these completion codes indicate warning, These
183 -- completion codes are not trapped. Future use.
184 --
185 TMSG_INVTAXIND CONSTANT VARCHAR2(80) :=
186 'Sales/use tax indicator not valid, defaulted to sales tax.';
187 TMSG_OVRRDERATE CONSTANT VARCHAR2(80) :=
188 'Used override rate for calculation.';
189 TMSG_OVRRDEAMT CONSTANT VARCHAR2(80) :=
190 'Used override amount for calculation.';
191 TMSG_NOTAXIND CONSTANT VARCHAR2(80) :=
192 'Used no tax indicator for calculation.';
193 TMSG_PRODRATE CONSTANT VARCHAR2(80) :=
194 'Used product code rate to calculate taxes.';
195 TMSG_PRODMAXUSE CONSTANT VARCHAR2(80) := 'The product file rates used to calculate taxes were adjusted per max tax.';
196 TMSG_PRODMAXINV CONSTANT VARCHAR2(80) :=
197 'Product file rates were used to calculate taxes.';
198 TMSG_MAXADJUST CONSTANT VARCHAR2(80) :=
199 'Taxes adjusted per product maximum tax laws.';
200 TMSG_NITEM_INCOMPAT_MAX CONSTANT VARCHAR2(80) :=
201 'Number of items is not compatible with maximum tax laws.';
202 TMSG_DEFAULT_CURRENT CONSTANT VARCHAR2(80) :=
203 'Invoice date is before prior date on file - used current rate.';
204 TMSG_NO_TAXES CONSTANT VARCHAR2(80) := 'Administration code is 2 - taxes not calculated for this location type.';
205 TMSG_STATE_TAX_ONLY CONSTANT VARCHAR2(80) := 'State administration is 3 - taxes not calculated for this location type.';
206 TMSG_STATE_FED_USE_ONLY CONSTANT VARCHAR2(80) := 'Administration code is 4 - use taxes not calculated for this location type';
207 TMSG_STATE_FED_SALES_ONLY CONSTANT VARCHAR2(80) := 'Administration code is 5 - sales taxes not calculated for this location type';
208 TMSG_CITY_DEFAULT CONSTANT VARCHAR2(80) := 'Used county code/defaulted to most likely city.';
209 TMSG_CNLO_NO_TAXES CONSTANT VARCHAR2(80) := 'Administration code is 2 - taxes not calculated.';
210 TMSG_CNLO_USE_ONLY CONSTANT VARCHAR2(80) := 'Administration code is 3 - use taxes not calculated.';
211 TMSG_CNLO_SALES_ONLY CONSTANT VARCHAR2(80) := 'Administration code is 4 - sales taxes not calculated.';
212 TMSG_CNLO_NOTAXFORZP CONSTANT VARCHAR2(80) := 'This state has city/town taxes but not for this zip. no taxes calculated';
213 TMSG_UNKNOWN CONSTANT VARCHAR2(80) := 'Unrecognized location completion code: ';
214 --
215 -- Generic Jurisdiction error messages
216 --
217 JGMSG_JURSUCCESS CONSTANT VARCHAR2(80) := 'Jurisdiction processing completed successfully.';
218 JGMSG_JURINVPOT CONSTANT VARCHAR2(80) := 'Invalid POT (Not O or D).';
219 JGMSG_JURINVSRVIN CONSTANT VARCHAR2(80) := 'Invalid service indicator (not S, R, or space).';
220 JGMSG_JURERROR CONSTANT VARCHAR2(80) := 'Jurisdiction error.';
221 --
222 -- Location Specific Jurisdiction error messages
223 --
224 JMSG_LOCCNTYDEF CONSTANT VARCHAR2(80) := 'Defaulted to system county code.';
225 JMSG_LOCINVSTATE CONSTANT VARCHAR2(80) := 'Invalid state code.';
226 JMSG_LOCNOZIP CONSTANT VARCHAR2(80) := 'Zip code was not supplied.';
227 JMSG_LOCINVZIP CONSTANT VARCHAR2(80) := 'Invalid zip code.';
228 JMSG_LOCNOGEO CONSTANT VARCHAR2(80) := 'The city or geo code was not supplied.';
229 JMSG_LOCINVCITY CONSTANT VARCHAR2(80) := 'City code is spaces or not numeric.';
230 JMSG_UNKNOWN CONSTANT VARCHAR2(80) := 'Unrecognized Jurisdiction location completion code: ';
231
232 /*------------------------------------------------
233 | Global Variables |
234 ------------------------------------------------*/
235 C_LINES_PER_COMMIT CONSTANT NUMBER := 1000;
236 I Number; --Index Variable.
237 g_line_level_action varchar2(20);
238 l_document_type zx_lines_det_factors.event_class_code%type;
239 -- PG_DEBUG varchar2(1);
240 -- x_return_status varchar2(20);
241
242 /* ======================================================================*
243 | Data Type Definitions |
244 * ======================================================================*/
245
246 type char_tab is table of char index by binary_integer;
247 type num_tab is table of number(15) index by binary_integer;
248 type num1_tab is table of number index by binary_integer;
249 type date_tab is table of date index by binary_integer;
250 type var1_tab is table of varchar2(1) index by binary_integer;
251 type var2_tab is table of varchar2(80) index by binary_integer;
252 type var3_tab is table of varchar2(2000) index by binary_integer;
253 type var4_tab is table of varchar2(150) index by binary_integer;
254 type var5_tab is table of varchar2(240) index by binary_integer;
255
256
257 /*Private Procedures*/
258 PROCEDURE PERFORM_VALIDATE(X_RETURN_STATUS OUT NOCOPY VARCHAR2);
259 PROCEDURE PERFORM_LINE_CREATION(p_tax_lines_tbl OUT NOCOPY ZX_TAX_PARTNER_PKG.tax_lines_tbl_type,
260 p_currency_tab IN OUT NOCOPY ZX_TAX_PARTNER_PKG.tax_currencies_tbl_type,
261 X_RETURN_STATUS OUT NOCOPY VARCHAR2);
262 PROCEDURE PERFORM_LINE_DELETION (X_RETURN_STATUS OUT NOCOPY VARCHAR2);
263 PROCEDURE PERFORM_UPDATE (p_tax_lines_tbl OUT NOCOPY ZX_TAX_PARTNER_PKG.tax_lines_tbl_type,
264 p_currency_tab IN OUT NOCOPY ZX_TAX_PARTNER_PKG.tax_currencies_tbl_type,
265 X_RETURN_STATUS OUT NOCOPY VARCHAR2);
266 FUNCTION SET_PARAMETERS(
267 l_Tax_Link IN OUT NOCOPY zx_tax_taxware_GEN.TaxParm,
268 l_JurLink IN OUT NOCOPY zx_tax_taxware_GEN.JurParm,
269 l_OraLink IN OUT NOCOPY zx_tax_taxware_GEN.t_OraParm) RETURN BOOLEAN;
270 FUNCTION CALCULATE_TAX(
271 l_TaxLink IN OUT NOCOPY zx_tax_taxware_GEN.TaxParm,
272 l_JurLink IN OUT NOCOPY zx_tax_taxware_GEN.JurParm,
273 l_OraLink IN OUT NOCOPY zx_tax_taxware_GEN.t_OraParm) RETURN BOOLEAN;
274 PROCEDURE TAX_RESULTS_PROCESSING(
275 p_tax_lines_tbl OUT NOCOPY ZX_TAX_PARTNER_PKG.tax_lines_tbl_type,
276 p_currency_tab IN OUT NOCOPY ZX_TAX_PARTNER_PKG.tax_currencies_tbl_type,
277 l_TaxLink IN OUT NOCOPY zx_tax_taxware_GEN.TaxParm,
278 l_JurLink IN OUT NOCOPY zx_tax_taxware_GEN.JurParm,
279 l_OraLink IN OUT NOCOPY zx_tax_taxware_GEN.t_OraParm,
280 X_RETURN_STATUS OUT NOCOPY VARCHAR2);
281
282 PROCEDURE SET_DOCUMENT_TYPE( P_DOCUMENT_TYPE IN OUT NOCOPY VARCHAR2,
283 P_ADJ_DOC_TRX_ID IN NUMBER,
284 P_LINE_AMOUNT IN NUMBER,
285 X_RETURN_STATUS OUT NOCOPY VARCHAR2);
286
287 PROCEDURE ERROR_EXCEPTION_HANDLE(P_ERROR_STRING VARCHAR2);
288 PROCEDURE INITIALIZE;
289 PROCEDURE STACK_ERROR
290 (p_msgname IN VARCHAR2,
291 p_token1 IN VARCHAR2 ,
292 p_value1 IN VARCHAR2 ,
293 p_token2 IN VARCHAR2 ,
294 p_value2 IN VARCHAR2 );
295 PROCEDURE GET_VENDOR_ERROR(
296 tax_selection IN ZX_TAX_TAXWARE_GEN.SELPARMTYP%TYPE,
297 errTaxParm IN ZX_TAX_TAXWARE_GEN.TaxParm,
298 errJurParm IN ZX_TAX_TAXWARE_GEN.JurParm );
299
300 PROCEDURE dump_vendor_rec ( dmpTaxLink IN ZX_TAX_TAXWARE_GEN.TaxParm,
301 dmpJurLink IN ZX_TAX_TAXWARE_GEN.JurParm,
302 dmpOraLink IN ZX_TAX_TAXWARE_GEN.t_OraParm,
303 input_param_flag IN BOOLEAN ) ;
304
305
306 /*Structure to hold the transaction information*/
307
308 pg_internal_org_id_tab num1_tab;
309 pg_doc_type_id_tab num1_tab;
310 pg_trx_id_tab num1_tab;
311 pg_appli_code_tab var2_tab;
312 pg_doc_level_action_tab var2_tab;
313 pg_trx_date_tab date_tab;
317 */
314 pg_trx_curr_code_tab var2_tab;
315 /* Bug 5090593:
316 pg_quote_flag_tab var1_tab;
318 pg_legal_entity_num_tab var2_tab;
319 pg_esta_name_tab var3_tab;
320 pg_Trx_number_tab var4_tab;
321 pg_Trx_desc_tab var3_tab;
322 pg_doc_sequence_value_tab var3_tab;
323 pg_Trx_due_date_tab date_tab;
324 /* Bug 5090593:
325 pg_Trx_Sol_Ori_tab var2_tab;
326 */
327 pg_Allow_Tax_Calc_tab var1_tab;
328 pg_trx_line_id_tab num1_tab;
329 pg_trx_level_type_tab var2_tab;
330 pg_line_level_action_tab var2_tab;
331 pg_line_class_tab var2_tab;
332 pg_trx_shipping_date_tab date_tab;
333 pg_trx_receipt_date_tab date_tab;
334 pg_trx_line_type_tab var2_tab;
335 pg_trx_line_date_tab date_tab;
336 pg_trx_business_cat_tab var3_tab;
337 pg_line_intended_use_tab var3_tab;
338 pg_line_amt_incl_tax_flag_tab var1_tab;
339 pg_line_amount_tab num1_tab;
340 pg_other_incl_tax_amt_tab num1_tab;
341 pg_trx_line_qty_tab num1_tab;
342 pg_unit_price_tab num1_tab;
343 pg_cash_discount_tab num1_tab;
344 pg_volume_discount_tab num1_tab;
345 pg_trading_discount_tab num1_tab;
346 pg_trans_charge_tab num1_tab;
347 pg_ins_charge_tab num1_tab;
348 pg_other_charge_tab num1_tab;
349 pg_prod_id_tab num1_tab;
350 pg_uom_code_tab var2_tab;
351 pg_prod_type_tab var3_tab;
352 pg_prod_code_tab var2_tab;
353 pg_fob_point_tab var2_tab;
354 pg_ship_to_pty_numr_tab var2_tab;
355 pg_ship_to_pty_name_tab var3_tab;
356 pg_ship_from_pty_num_tab var2_tab;
357 pg_ship_from_pty_name_tab var3_tab;
358 pg_ship_to_loc_id_tab num1_tab; -- Bug 5090593
359 Pg_ship_to_grphy_type1_tab var5_tab;
360 pg_ship_to_grphy_value1_tab var5_tab;
361 pg_ship_to_grphy_type2_tab var5_tab;
362 pg_ship_to_grphy_value2_tab var5_tab;
363 pg_ship_to_grphy_type3_tab var5_tab;
364 pg_ship_to_grphy_value3_tab var5_tab;
365 pg_ship_to_grphy_type4_tab var5_tab;
366 pg_ship_to_grphy_value4_tab var5_tab;
367 pg_ship_to_grphy_type5_tab var5_tab;
368 pg_ship_to_grphy_value5_tab var5_tab;
369 pg_ship_to_grphy_type6_tab var5_tab;
370 pg_ship_to_grphy_value6_tab var5_tab;
371 pg_ship_to_grphy_type7_tab var5_tab;
372 pg_ship_to_grphy_value7_tab var5_tab;
373 pg_ship_to_grphy_type8_tab var5_tab;
374 pg_ship_to_grphy_value8_tab var5_tab;
375 pg_ship_to_grphy_type9_tab var5_tab;
376 pg_ship_to_grphy_value9_tab var5_tab;
377 pg_ship_to_grphy_type10_tab var5_tab;
378 pg_ship_to_grphy_value10_tab var5_tab;
379 pg_ship_fr_loc_id_tab num1_tab; -- Bug 5090593
380 pg_ship_fr_grphy_type1_tab var5_tab;
381 pg_ship_fr_grphy_value1_tab var5_tab;
382 pg_ship_fr_grphy_type2_tab var5_tab;
383 pg_ship_fr_grphy_value2_tab var5_tab;
384 pg_ship_fr_grphy_type3_tab var5_tab;
385 pg_ship_fr_grphy_value3_tab var5_tab;
386 pg_ship_fr_grphy_type4_tab var5_tab;
387 pg_ship_fr_grphy_value4_tab var5_tab;
388 pg_ship_fr_grphy_type5_tab var5_tab;
389 pg_ship_fr_grphy_value5_tab var5_tab;
390 pg_ship_fr_grphy_type6_tab var5_tab;
391 pg_ship_fr_grphy_value6_tab var5_tab;
392 pg_ship_fr_grphy_type7_tab var5_tab;
393 pg_ship_fr_grphy_value7_tab var5_tab;
394 pg_ship_fr_grphy_type8_tab var5_tab;
395 pg_ship_fr_grphy_value8_tab var5_tab;
396 pg_ship_fr_grphy_type9_tab var5_tab;
397 pg_ship_fr_grphy_value9_tab var5_tab;
398 pg_ship_fr_grphy_type10_tab var5_tab;
399 pg_ship_fr_grphy_value10_tab var5_tab;
400 pg_poa_loc_id_tab num1_tab; -- Bug 5090593
401 pg_poa_grphy_type1_tab var5_tab;
402 pg_poa_grphy_value1_tab var5_tab;
403 pg_poa_grphy_type2_tab var5_tab;
404 pg_poa_grphy_value2_tab var5_tab;
405 pg_poa_grphy_type3_tab var5_tab;
406 pg_poa_grphy_value3_tab var5_tab;
407 pg_poa_grphy_type4_tab var5_tab;
408 pg_poa_grphy_value4_tab var5_tab;
409 pg_poa_grphy_type5_tab var5_tab;
410 pg_poa_grphy_value5_tab var5_tab;
411 pg_poa_grphy_type6_tab var5_tab;
412 pg_poa_grphy_value6_tab var5_tab;
413 pg_poa_grphy_type7_tab var5_tab;
414 pg_poa_grphy_value7_tab var5_tab;
415 pg_poa_grphy_type8_tab var5_tab;
416 pg_poa_grphy_value8_tab var5_tab;
417 pg_poa_grphy_type9_tab var5_tab;
418 pg_poa_grphy_value9_tab var5_tab;
419 pg_poa_grphy_type10_tab var5_tab;
420 pg_poa_grphy_value10_tab var5_tab;
421 pg_poo_loc_id_tab num1_tab; -- Bug 5090593
422 pg_poo_grphy_type1_tab var5_tab;
423 pg_poo_grphy_value1_tab var5_tab;
424 pg_poo_grphy_type2_tab var5_tab;
425 pg_poo_grphy_value2_tab var5_tab;
426 pg_poo_grphy_type3_tab var5_tab;
427 pg_poo_grphy_value3_tab var5_tab;
428 pg_poo_grphy_type4_tab var5_tab;
429 pg_poo_grphy_value4_tab var5_tab;
430 pg_poo_grphy_type5_tab var5_tab;
431 pg_poo_grphy_value5_tab var5_tab;
432 pg_poo_grphy_type6_tab var5_tab;
433 pg_poo_grphy_value6_tab var5_tab;
434 pg_poo_grphy_type7_tab var5_tab;
435 pg_poo_grphy_value7_tab var5_tab;
436 pg_poo_grphy_type8_tab var5_tab;
437 pg_poo_grphy_value8_tab var5_tab;
438 pg_poo_grphy_type9_tab var5_tab;
439 pg_poo_grphy_value9_tab var5_tab;
440 pg_poo_grphy_type10_tab var5_tab;
441 pg_poo_grphy_value10_tab var5_tab;
442 pg_bill_to_pty_num_tab var2_tab;
443 pg_bill_to_pty_name_tab var3_tab;
444 pg_bill_from_pty_num_tab var2_tab;
445 pg_bill_from_pty_name_tab var3_tab;
446 pg_bill_to_loc_id_tab num1_tab; -- Bug 5090593
447 pg_bill_to_grphy_type1_tab var5_tab;
448 pg_bill_to_grphy_value1_tab var5_tab;
449 pg_bill_to_grphy_type2_tab var5_tab;
450 pg_bill_to_grphy_value2_tab var5_tab;
451 pg_bill_to_grphy_type3_tab var5_tab;
452 pg_bill_to_grphy_value3_tab var5_tab;
453 pg_bill_to_grphy_type4_tab var5_tab;
454 pg_bill_to_grphy_value4_tab var5_tab;
455 pg_bill_to_grphy_type5_tab var5_tab;
456 pg_bill_to_grphy_value5_tab var5_tab;
457 pg_bill_to_grphy_type6_tab var5_tab;
458 pg_bill_to_grphy_value6_tab var5_tab;
459 pg_bill_to_grphy_type7_tab var5_tab;
460 pg_bill_to_grphy_value7_tab var5_tab;
461 pg_bill_to_grphy_type8_tab var5_tab;
462 pg_bill_to_grphy_value8_tab var5_tab;
463 pg_bill_to_grphy_type9_tab var5_tab;
464 pg_bill_to_grphy_value9_tab var5_tab;
465 pg_bill_to_grphy_type10_tab var5_tab;
466 pg_bill_to_grphy_value10_tab var5_tab;
467 pg_bill_fr_loc_id_tab num1_tab; -- Bug 5090593
468 pg_bill_fr_grphy_type1_tab var5_tab;
469 pg_bill_fr_grphy_value1_tab var5_tab;
470 pg_bill_fr_grphy_type2_tab var5_tab;
471 pg_bill_fr_grphy_value2_tab var5_tab;
472 pg_bill_fr_grphy_type3_tab var5_tab;
473 pg_bill_fr_grphy_value3_tab var5_tab;
474 pg_bill_fr_grphy_type4_tab var5_tab;
475 pg_bill_fr_grphy_value4_tab var5_tab;
476 pg_bill_fr_grphy_type5_tab var5_tab;
477 pg_bill_fr_grphy_value5_tab var5_tab;
478 pg_bill_fr_grphy_type6_tab var5_tab;
479 pg_bill_fr_grphy_value6_tab var5_tab;
480 pg_bill_fr_grphy_type7_tab var5_tab;
481 pg_bill_fr_grphy_value7_tab var5_tab;
482 pg_bill_fr_grphy_type8_tab var5_tab;
483 pg_bill_fr_grphy_value8_tab var5_tab;
484 pg_bill_fr_grphy_type9_tab var5_tab;
485 pg_bill_fr_grphy_value9_tab var5_tab;
486 pg_bill_fr_grphy_type10_tab var5_tab;
487 pg_bill_fr_grphy_value10_tab var5_tab;
488 pg_account_ccid_tab num1_tab;
489 pg_appl_fr_doc_type_id_tab num1_tab;
490 pg_appl_from_trx_id_tab num1_tab;
491 pg_appl_from_line_id_tab num1_tab;
492 pg_appl_fr_trx_lev_type_tab var2_tab;
493 pg_appl_from_doc_num_tab var2_tab;
494 pg_adj_doc_doc_type_id_tab num1_tab;
495 pg_adj_doc_trx_id_tab num1_tab;
496 pg_adj_doc_line_id_tab num1_tab;
497 pg_adj_doc_number_tab var2_tab;
498 pg_ADJ_doc_trx_lev_type_tab var2_tab;
499 pg_adj_doc_date_tab date_tab;
500 pg_assess_value_tab num1_tab;
501 pg_trx_line_number_tab num1_tab;
502 pg_trx_line_desc_tab var3_tab;
503 pg_prod_desc_tab var3_tab;
504 pg_header_char1_tab var4_tab;
505 pg_header_char2_tab var4_tab;
506 pg_header_char3_tab var4_tab;
507 pg_header_char4_tab var4_tab;
508 pg_header_char5_tab var4_tab;
509 pg_header_char6_tab var4_tab;
510 pg_header_char7_tab var4_tab;
511 pg_header_char8_tab var4_tab;
512 pg_header_char9_tab var4_tab;
513 pg_header_char10_tab var4_tab;
514 pg_header_char11_tab var4_tab;
515 pg_header_char12_tab var4_tab;
516 pg_header_char13_tab var4_tab;
517 pg_header_char14_tab var4_tab;
518 pg_header_char15_tab var4_tab;
519 pg_header_numeric1_tab num1_tab;
520 pg_header_numeric2_tab num1_tab;
521 pg_header_numeric3_tab num1_tab;
522 pg_header_numeric4_tab num1_tab;
523 pg_header_numeric5_tab num1_tab;
524 pg_header_numeric6_tab num1_tab;
525 pg_header_numeric7_tab num1_tab;
526 pg_header_numeric8_tab num1_tab;
527 pg_header_numeric9_tab num1_tab;
528 pg_header_numeric10_tab num1_tab;
529 pg_header_date1_tab date_tab;
530 pg_header_date2_tab date_tab;
531 pg_header_date3_tab date_tab;
532 pg_header_date4_tab date_tab;
533 pg_header_date5_tab date_tab;
534 pg_line_char1_tab var4_tab;
535 pg_line_char2_tab var4_tab;
536 pg_line_char3_tab var4_tab;
537 pg_line_char4_tab var4_tab;
538 pg_line_char5_tab var4_tab;
539 pg_line_char6_tab var4_tab;
540 pg_line_char7_tab var4_tab;
541 pg_line_char8_tab var4_tab;
542 pg_line_char9_tab var4_tab;
543 pg_line_char10_tab var4_tab;
544 pg_line_char11_tab var4_tab;
545 pg_line_char12_tab var4_tab;
546 pg_line_char13_tab var4_tab;
547 pg_line_char14_tab var4_tab;
548 pg_line_char15_tab var4_tab;
549 pg_line_char16_tab var4_tab;
550 pg_line_char17_tab var4_tab;
551 pg_line_char18_tab var4_tab;
552 pg_line_char19_tab var4_tab;
553 pg_line_char20_tab var4_tab;
554 pg_line_char21_tab var4_tab;
555 pg_line_char22_tab var4_tab;
556 pg_line_char23_tab var4_tab;
557 pg_line_char24_tab var4_tab;
558 pg_line_char25_tab var4_tab;
559 pg_line_char26_tab var4_tab;
560 pg_line_char27_tab var4_tab;
561 pg_line_char28_tab var4_tab;
562 pg_line_char29_tab var4_tab;
563 pg_line_char30_tab var4_tab;
564 pg_line_numeric1_tab num1_tab;
565 pg_line_numeric2_tab num1_tab;
566 pg_line_numeric3_tab num1_tab;
567 pg_line_numeric4_tab num1_tab;
568 pg_line_numeric5_tab num1_tab;
569 pg_line_numeric6_tab num1_tab;
570 pg_line_numeric7_tab num1_tab;
571 pg_line_numeric8_tab num1_tab;
572 pg_line_numeric9_tab num1_tab;
573 pg_line_numeric10_tab num1_tab;
574 pg_line_date1_tab date_tab;
575 pg_line_date2_tab date_tab;
576 pg_line_date3_tab date_tab;
577 pg_line_date4_tab date_tab;
578 pg_line_date5_tab date_tab;
579 pg_exempt_certi_numb_tab var2_tab;
580 pg_exempt_reason_tab var3_tab;
581 pg_exempt_cont_flag_tab var2_tab;
582 pg_ugraded_inv_flag_tab var1_tab;
583
584
585 PROCEDURE CALCULATE_TAX_API
586 (p_currency_tab IN OUT NOCOPY ZX_TAX_PARTNER_PKG.tax_currencies_tbl_type,
587 x_tax_lines_tbl OUT NOCOPY ZX_TAX_PARTNER_PKG.tax_lines_tbl_type,
588 x_error_status OUT NOCOPY VARCHAR2,
589 x_messages_tbl OUT NOCOPY ZX_TAX_PARTNER_PKG.messages_tbl_type) is
590 l_rel_ret_code Varchar2(20);
591 Cursor item_lines_to_be_processed is
592 select
593 internal_organization_id ,
594 document_type_id ,
595 transaction_id ,
596 application_code ,
597 document_level_action ,
598 trx_date ,
599 trx_currency_code ,
600 /* Bug 5090593:
601 quote_flag ,
602 */
603 legal_entity_number ,
604 establishment_number ,
605 transaction_number ,
606 transaction_description ,
607 document_sequence_value ,
608 transaction_due_date ,
609 /* Bug 5090593:
610 transaction_solution_origin ,
611 */
612 allow_tax_calculation ,
613 transaction_line_id ,
614 trx_level_type ,
615 line_level_action ,
616 line_class ,
617 transaction_shipping_date ,
618 transaction_receipt_date ,
619 transaction_line_type ,
620 transaction_line_date ,
621 trx_business_category ,
622 line_intended_use ,
623 line_amt_includes_tax_flag ,
624 line_amount ,
625 other_inclusive_tax_amount ,
626 transaction_line_quantity ,
627 unit_price ,
628 cash_discount ,
629 volume_discount ,
630 trading_discount ,
631 transportation_charge ,
632 insurance_charge ,
633 other_charge ,
634 product_id ,
635 uom_code ,
636 product_type ,
637 product_code ,
638 fob_point ,
639 ship_to_party_number ,
640 ship_to_party_name ,
641 ship_from_party_number ,
642 ship_from_party_name ,
643 ship_to_loc_id , -- Bug 5090593
644 ship_to_geography_type1 ,
645 ship_to_geography_value1 ,
646 ship_to_geography_type2 ,
647 ship_to_geography_value2 ,
648 ship_to_geography_type3 ,
649 ship_to_geography_value3 ,
650 ship_to_geography_type4 ,
651 ship_to_geography_value4 ,
652 ship_to_geography_type5 ,
653 ship_to_geography_value5 ,
654 ship_to_geography_type6 ,
655 ship_to_geography_value6 ,
656 ship_to_geography_type7 ,
657 ship_to_geography_value7 ,
658 ship_to_geography_type8 ,
659 ship_to_geography_value8 ,
660 ship_to_geography_type9 ,
661 ship_to_geography_value9 ,
662 ship_to_geography_type10 ,
663 ship_to_geography_value10 ,
664 ship_from_loc_id , -- Bug 5090593
665 ship_from_geography_type1 ,
666 ship_from_geography_value1 ,
667 ship_from_geography_type2 ,
668 ship_from_geography_value2 ,
669 ship_from_geography_type3 ,
670 ship_from_geography_value3 ,
671 ship_from_geography_type4 ,
672 ship_from_geography_value4 ,
673 ship_from_geography_type5 ,
674 ship_from_geography_value5 ,
675 ship_from_geography_type6 ,
676 ship_from_geography_value6 ,
677 ship_from_geography_type7 ,
678 ship_from_geography_value7 ,
679 ship_from_geography_type8 ,
680 ship_from_geography_value8 ,
681 ship_from_geography_type9 ,
682 ship_from_geography_value9 ,
683 ship_from_geography_type10 ,
684 ship_from_geography_value10 ,
685 poa_loc_id , -- Bug 5090593
686 poa_geography_type1 ,
687 poa_geography_value1 ,
688 poa_geography_type2 ,
689 poa_geography_value2 ,
690 poa_geography_type3 ,
691 poa_geography_value3 ,
692 poa_geography_type4 ,
693 poa_geography_value4 ,
694 poa_geography_type5 ,
695 poa_geography_value5 ,
696 poa_geography_type6 ,
697 poa_geography_value6 ,
698 poa_geography_type7 ,
699 poa_geography_value7 ,
700 poa_geography_type8 ,
701 poa_geography_value8 ,
702 poa_geography_type9 ,
703 poa_geography_value9 ,
704 poa_geography_type10 ,
705 poa_geography_value10 ,
706 poo_loc_id , -- Bug 5090593
707 poo_geography_type1 ,
708 poo_geography_value1 ,
709 poo_geography_type2 ,
710 poo_geography_value2 ,
711 poo_geography_type3 ,
712 poo_geography_value3 ,
713 poo_geography_type4 ,
714 poo_geography_value4 ,
715 poo_geography_type5 ,
716 poo_geography_value5 ,
717 poo_geography_type6 ,
718 poo_geography_value6 ,
719 poo_geography_type7 ,
720 poo_geography_value7 ,
721 poo_geography_type8 ,
722 poo_geography_value8 ,
723 poo_geography_type9 ,
724 poo_geography_value9 ,
725 poo_geography_type10 ,
726 poo_geography_value10 ,
727 bill_to_party_number ,
728 bill_to_party_name ,
729 bill_from_party_number ,
730 bill_from_party_name ,
731 bill_to_loc_id , -- Bug 5090593
732 bill_to_geography_type1 ,
733 bill_to_geography_value1 ,
734 bill_to_geography_type2 ,
735 bill_to_geography_value2 ,
736 bill_to_geography_type3 ,
737 bill_to_geography_value3 ,
738 bill_to_geography_type4 ,
739 bill_to_geography_value4 ,
740 bill_to_geography_type5 ,
741 bill_to_geography_value5 ,
742 bill_to_geography_type6 ,
743 bill_to_geography_value6 ,
744 bill_to_geography_type7 ,
745 bill_to_geography_value7 ,
746 bill_to_geography_type8 ,
747 bill_to_geography_value8 ,
748 bill_to_geography_type9 ,
749 bill_to_geography_value9 ,
750 bill_to_geography_type10 ,
751 bill_to_geography_value10 ,
752 bill_from_loc_id , -- Bug 5090593
753 bill_from_geography_type1 ,
754 bill_from_geography_value1 ,
755 bill_from_geography_type2 ,
756 bill_from_geography_value2 ,
757 bill_from_geography_type3 ,
758 bill_from_geography_value3 ,
759 bill_from_geography_type4 ,
760 bill_from_geography_value4 ,
761 bill_from_geography_type5 ,
762 bill_from_geography_value5 ,
763 bill_from_geography_type6 ,
764 bill_from_geography_value6 ,
765 bill_from_geography_type7 ,
766 bill_from_geography_value7 ,
767 bill_from_geography_type8 ,
768 bill_from_geography_value8 ,
769 bill_from_geography_type9 ,
770 bill_from_geography_value9 ,
771 bill_from_geography_type10 ,
772 bill_from_geography_value10 ,
773 account_ccid ,
774 applied_from_document_type_id ,
775 applied_from_transaction_id ,
776 applied_from_line_id ,
777 applied_from_trx_level_type,
778 applied_from_doc_number ,
779 adjusted_doc_document_type_id ,
780 adjusted_doc_transaction_id ,
781 adjusted_doc_line_id ,
782 adjusted_doc_number ,
783 adjusted_doc_trx_level_type,
784 adjusted_doc_date ,
785 assessable_value ,
786 trx_line_number ,
787 trx_line_description ,
788 product_description ,
789 header_char1 ,
790 header_char2 ,
791 header_char3 ,
792 header_char4 ,
793 header_char5 ,
794 header_char6 ,
795 header_char7 ,
796 header_char8 ,
797 header_char9 ,
798 header_char10 ,
799 header_char11 ,
800 header_char12 ,
801 header_char13 ,
802 header_char14 ,
803 header_char15 ,
804 header_numeric1 ,
805 header_numeric2 ,
806 header_numeric3 ,
807 header_numeric4 ,
808 header_numeric5 ,
809 header_numeric6 ,
810 header_numeric7 ,
811 header_numeric8 ,
812 header_numeric9 ,
813 header_numeric10 ,
814 header_date1 ,
815 header_date2 ,
816 header_date3 ,
817 header_date4 ,
818 header_date5 ,
819 line_char1 ,
820 line_char2 ,
821 line_char3 ,
822 line_char4 ,
823 line_char5 ,
824 line_char6 ,
825 line_char7 ,
826 line_char8 ,
827 line_char9 ,
828 line_char10 ,
829 line_char11 ,
830 line_char12 ,
831 line_char13 ,
832 line_char14 ,
833 line_char15 ,
834 line_char16 ,
835 line_char17 ,
836 line_char18 ,
837 line_char19 ,
838 line_char20 ,
839 line_char21 ,
840 line_char22 ,
841 line_char23 ,
842 line_char24 ,
843 line_char25 ,
844 line_char26 ,
845 line_char27 ,
846 line_char28 ,
847 line_char29 ,
848 line_char30 ,
849 line_numeric1 ,
850 line_numeric2 ,
851 line_numeric3 ,
852 line_numeric4 ,
853 line_numeric5 ,
854 line_numeric6 ,
855 line_numeric7 ,
856 line_numeric8 ,
857 line_numeric9 ,
858 line_numeric10 ,
859 line_date1 ,
860 line_date2 ,
861 line_date3 ,
862 line_date4 ,
863 line_date5 ,
864 exempt_certificate_number ,
865 exempt_reason ,
866 exemption_control_flag
867 From ZX_O2C_CALC_TXN_INPUT_V;
868
869 l_api_name CONSTANT VARCHAR2(30) := 'CALCULATE_TAX_API';
870 l_return_status varchar2(30);
871 ptr number;
872 cnt_end NUMBER;
873 cnt NUMBER := 1;
874 l_index NUMBER;
875 l_tax_lines_tbl ZX_TAX_PARTNER_PKG.tax_lines_tbl_type;
876 l_doc_amount NUMBER;
877 l_doc_trx_id NUMBER;
878
879 Begin
880 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
881 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
882 END IF;
883
884 l_doc_trx_id := NULL;
885
886 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
887 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
888 ' zx_tax_partner_pkg.G_BUSINESS_FLOW = ' || zx_tax_partner_pkg.G_BUSINESS_FLOW);
889 END IF;
890 IF zx_tax_partner_pkg.G_BUSINESS_FLOW = 'O2C' THEN
891 -- Verify the integration with the version of Taxware product is certified.
892 Begin
893 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
894 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
895 'Calling ZX_TAX_TAXWARE_REV.GET_RELEASE Verify the integration
896 with the version of Taxware product is certified' );
897 END IF;
898 l_rel_ret_code := ZX_TAX_TAXWARE_REV.GET_RELEASE;
899 if l_rel_ret_code = ZX_TAXWARE_TAX_SERVICE_PKG.NOT_VALID_VERSION then
900 Raise VERSION_ERROR;
901 end if;
902 Exception
903 When VERSION_ERROR then
904 IF (g_level_exception >= g_current_runtime_level ) THEN
905 FND_LOG.STRING(g_level_exception,
906 G_PKG_NAME||'.'||l_api_name,'Current Taxware version is imcompaitable with Oracle Apps');
907 END IF;
908 x_error_status := FND_API.G_RET_STS_UNEXP_ERROR;
909 g_string :='Call to ZX_TAX_TAXWARE_REV.GET_RELEASE failed with exception';
910 error_exception_handle(g_string);
911 x_messages_tbl:=g_messages_tbl;
912 return;
913 End;
914
915 ELSE
916 --Release 12 Old tax partner integration does not support P2P products;
917 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
918 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
919 'Release 12 Old tax partner integration does not support P2P products' );
920 END IF;
921 x_error_status := FND_API.G_RET_STS_ERROR;
922 FND_MESSAGE.SET_NAME('ZX', 'ZX_FLOW_NOT_SUPPORTED_4_PTNR');
923 FND_MESSAGE.SET_TOKEN('BUSINESS_FLOW',zx_tax_partner_pkg.G_BUSINESS_FLOW);
924 FND_MESSAGE.SET_TOKEN('SERVICE_PROVIDER','TAXWARE');
925 Raise WRONG_BUSINESS_FLOW;
926 END IF;
927
928 open item_lines_to_be_processed;
929 Loop
930 fetch item_lines_to_be_processed
931 bulk collect into
932 pg_internal_org_id_tab ,
933 pg_doc_type_id_tab ,
934 pg_trx_id_tab ,
935 pg_appli_code_tab ,
936 pg_doc_level_action_tab ,
937 pg_trx_date_tab ,
938 pg_trx_curr_code_tab ,
939 /* Bug 5090593:
940 pg_quote_flag_tab ,
941 */
942 pg_legal_entity_num_tab ,
943 pg_esta_name_tab ,
944 pg_trx_number_tab ,
945 pg_trx_desc_tab ,
946 pg_doc_sequence_value_tab ,
947 pg_trx_due_date_tab ,
948 /* Bug 5090593:
949 pg_trx_sol_ori_tab ,
950 */
951 pg_allow_tax_calc_tab ,
952 pg_trx_line_id_tab ,
953 pg_trx_level_type_tab ,
954 pg_line_level_action_tab ,
955 pg_line_class_tab ,
956 pg_trx_shipping_date_tab ,
957 pg_trx_receipt_date_tab ,
958 pg_trx_line_type_tab ,
959 pg_trx_line_date_tab ,
960 pg_trx_business_cat_tab ,
961 pg_line_intended_use_tab ,
962 pg_line_amt_incl_tax_flag_tab ,
963 pg_line_amount_tab ,
964 pg_other_incl_tax_amt_tab ,
965 pg_trx_line_qty_tab ,
966 pg_unit_price_tab ,
967 pg_cash_discount_tab ,
968 pg_volume_discount_tab ,
969 pg_trading_discount_tab ,
970 pg_trans_charge_tab ,
971 pg_ins_charge_tab ,
972 pg_other_charge_tab ,
973 pg_prod_id_tab ,
974 pg_uom_code_tab ,
975 pg_prod_type_tab ,
976 pg_prod_code_tab ,
977 pg_fob_point_tab ,
978 pg_ship_to_pty_numr_tab ,
979 pg_ship_to_pty_name_tab ,
980 pg_ship_from_pty_num_tab ,
981 pg_ship_from_pty_name_tab ,
982 pg_ship_to_loc_id_tab , -- Bug 5090593
983 pg_ship_to_grphy_type1_tab ,
984 pg_ship_to_grphy_value1_tab ,
985 pg_ship_to_grphy_type2_tab ,
986 pg_ship_to_grphy_value2_tab ,
987 pg_ship_to_grphy_type3_tab ,
988 pg_ship_to_grphy_value3_tab ,
989 pg_ship_to_grphy_type4_tab ,
990 pg_ship_to_grphy_value4_tab ,
991 pg_ship_to_grphy_type5_tab ,
992 pg_ship_to_grphy_value5_tab ,
993 pg_ship_to_grphy_type6_tab ,
994 pg_ship_to_grphy_value6_tab ,
995 pg_ship_to_grphy_type7_tab ,
996 pg_ship_to_grphy_value7_tab ,
997 pg_ship_to_grphy_type8_tab ,
998 pg_ship_to_grphy_value8_tab ,
999 pg_ship_to_grphy_type9_tab ,
1000 pg_ship_to_grphy_value9_tab ,
1001 pg_ship_to_grphy_type10_tab ,
1002 pg_ship_to_grphy_value10_tab ,
1003 pg_ship_fr_loc_id_tab , -- Bug 5090593
1004 pg_ship_fr_grphy_type1_tab ,
1005 pg_ship_fr_grphy_value1_tab ,
1006 pg_ship_fr_grphy_type2_tab ,
1007 pg_ship_fr_grphy_value2_tab ,
1008 pg_ship_fr_grphy_type3_tab ,
1009 pg_ship_fr_grphy_value3_tab ,
1010 pg_ship_fr_grphy_type4_tab ,
1011 pg_ship_fr_grphy_value4_tab ,
1012 pg_ship_fr_grphy_type5_tab ,
1013 pg_ship_fr_grphy_value5_tab ,
1014 pg_ship_fr_grphy_type6_tab ,
1015 pg_ship_fr_grphy_value6_tab ,
1016 pg_ship_fr_grphy_type7_tab ,
1017 pg_ship_fr_grphy_value7_tab ,
1018 pg_ship_fr_grphy_type8_tab ,
1019 pg_ship_fr_grphy_value8_tab ,
1020 pg_ship_fr_grphy_type9_tab ,
1021 pg_ship_fr_grphy_value9_tab ,
1022 pg_ship_fr_grphy_type10_tab ,
1023 pg_ship_fr_grphy_value10_tab ,
1024 pg_poa_loc_id_tab , -- Bug 5090593
1025 pg_poa_grphy_type1_tab ,
1026 pg_poa_grphy_value1_tab ,
1027 pg_poa_grphy_type2_tab ,
1028 pg_poa_grphy_value2_tab ,
1029 pg_poa_grphy_type3_tab ,
1030 pg_poa_grphy_value3_tab ,
1031 pg_poa_grphy_type4_tab ,
1032 pg_poa_grphy_value4_tab ,
1033 pg_poa_grphy_type5_tab ,
1034 pg_poa_grphy_value5_tab ,
1035 pg_poa_grphy_type6_tab ,
1036 pg_poa_grphy_value6_tab ,
1037 pg_poa_grphy_type7_tab ,
1038 pg_poa_grphy_value7_tab ,
1039 pg_poa_grphy_type8_tab ,
1040 pg_poa_grphy_value8_tab ,
1041 pg_poa_grphy_type9_tab ,
1042 pg_poa_grphy_value9_tab ,
1043 pg_poa_grphy_type10_tab ,
1044 pg_poa_grphy_value10_tab ,
1045 pg_poo_loc_id_tab , -- Bug 5090593
1046 pg_poo_grphy_type1_tab ,
1047 pg_poo_grphy_value1_tab ,
1048 pg_poo_grphy_type2_tab ,
1049 pg_poo_grphy_value2_tab ,
1050 pg_poo_grphy_type3_tab ,
1051 pg_poo_grphy_value3_tab ,
1052 pg_poo_grphy_type4_tab ,
1053 pg_poo_grphy_value4_tab ,
1054 pg_poo_grphy_type5_tab ,
1055 pg_poo_grphy_value5_tab ,
1056 pg_poo_grphy_type6_tab ,
1057 pg_poo_grphy_value6_tab ,
1058 pg_poo_grphy_type7_tab ,
1059 pg_poo_grphy_value7_tab ,
1060 pg_poo_grphy_type8_tab ,
1061 pg_poo_grphy_value8_tab ,
1062 pg_poo_grphy_type9_tab ,
1063 pg_poo_grphy_value9_tab ,
1064 pg_poo_grphy_type10_tab ,
1065 pg_poo_grphy_value10_tab ,
1066 pg_bill_to_pty_num_tab ,
1067 pg_bill_to_pty_name_tab ,
1068 pg_bill_from_pty_num_tab ,
1069 pg_bill_from_pty_name_tab ,
1070 pg_bill_to_loc_id_tab , -- Bug 5090593
1071 pg_bill_to_grphy_type1_tab ,
1072 pg_bill_to_grphy_value1_tab ,
1073 pg_bill_to_grphy_type2_tab ,
1074 pg_bill_to_grphy_value2_tab ,
1075 pg_bill_to_grphy_type3_tab ,
1076 pg_bill_to_grphy_value3_tab ,
1077 pg_bill_to_grphy_type4_tab ,
1078 pg_bill_to_grphy_value4_tab ,
1079 pg_bill_to_grphy_type5_tab ,
1080 pg_bill_to_grphy_value5_tab ,
1081 pg_bill_to_grphy_type6_tab ,
1082 pg_bill_to_grphy_value6_tab ,
1083 pg_bill_to_grphy_type7_tab ,
1084 pg_bill_to_grphy_value7_tab ,
1085 pg_bill_to_grphy_type8_tab ,
1086 pg_bill_to_grphy_value8_tab ,
1087 pg_bill_to_grphy_type9_tab ,
1088 pg_bill_to_grphy_value9_tab ,
1089 pg_bill_to_grphy_type10_tab ,
1090 pg_bill_to_grphy_value10_tab ,
1091 pg_bill_fr_loc_id_tab , -- Bug 5090593
1092 pg_bill_fr_grphy_type1_tab ,
1093 pg_bill_fr_grphy_value1_tab ,
1094 pg_bill_fr_grphy_type2_tab ,
1095 pg_bill_fr_grphy_value2_tab ,
1096 pg_bill_fr_grphy_type3_tab ,
1097 pg_bill_fr_grphy_value3_tab ,
1098 pg_bill_fr_grphy_type4_tab ,
1099 pg_bill_fr_grphy_value4_tab ,
1100 pg_bill_fr_grphy_type5_tab ,
1101 pg_bill_fr_grphy_value5_tab ,
1102 pg_bill_fr_grphy_type6_tab ,
1103 pg_bill_fr_grphy_value6_tab ,
1104 pg_bill_fr_grphy_type7_tab ,
1105 pg_bill_fr_grphy_value7_tab ,
1106 pg_bill_fr_grphy_type8_tab ,
1107 pg_bill_fr_grphy_value8_tab ,
1108 pg_bill_fr_grphy_type9_tab ,
1109 pg_bill_fr_grphy_value9_tab ,
1110 pg_bill_fr_grphy_type10_tab ,
1111 pg_bill_fr_grphy_value10_tab ,
1112 pg_account_ccid_tab ,
1113 pg_appl_fr_doc_type_id_tab ,
1114 pg_appl_from_trx_id_tab ,
1115 pg_appl_from_line_id_tab ,
1116 pg_appl_fr_trx_lev_type_tab ,
1117 pg_appl_from_doc_num_tab ,
1118 pg_adj_doc_doc_type_id_tab ,
1119 pg_adj_doc_trx_id_tab ,
1120 pg_adj_doc_line_id_tab ,
1121 pg_adj_doc_number_tab ,
1122 pg_adj_doc_trx_lev_type_tab ,
1123 pg_adj_doc_date_tab ,
1124 pg_assess_value_tab ,
1125 pg_trx_line_number_tab ,
1126 pg_trx_line_desc_tab ,
1127 pg_prod_desc_tab ,
1128 pg_header_char1_tab ,
1129 pg_header_char2_tab ,
1130 pg_header_char3_tab ,
1131 pg_header_char4_tab ,
1132 pg_header_char5_tab ,
1133 pg_header_char6_tab ,
1134 pg_header_char7_tab ,
1135 pg_header_char8_tab ,
1136 pg_header_char9_tab ,
1137 pg_header_char10_tab ,
1138 pg_header_char11_tab ,
1139 pg_header_char12_tab ,
1140 pg_header_char13_tab ,
1141 pg_header_char14_tab ,
1142 pg_header_char15_tab ,
1143 pg_header_numeric1_tab ,
1144 pg_header_numeric2_tab ,
1145 pg_header_numeric3_tab ,
1146 pg_header_numeric4_tab ,
1147 pg_header_numeric5_tab ,
1148 pg_header_numeric6_tab ,
1149 pg_header_numeric7_tab ,
1150 pg_header_numeric8_tab ,
1151 pg_header_numeric9_tab ,
1152 pg_header_numeric10_tab ,
1153 pg_header_date1_tab ,
1154 pg_header_date2_tab ,
1155 pg_header_date3_tab ,
1156 pg_header_date4_tab ,
1157 pg_header_date5_tab ,
1158 pg_line_char1_tab ,
1159 pg_line_char2_tab ,
1160 pg_line_char3_tab ,
1161 pg_line_char4_tab ,
1162 pg_line_char5_tab ,
1163 pg_line_char6_tab ,
1164 pg_line_char7_tab ,
1165 pg_line_char8_tab ,
1166 pg_line_char9_tab ,
1167 pg_line_char10_tab ,
1168 pg_line_char11_tab ,
1169 pg_line_char12_tab ,
1170 pg_line_char13_tab ,
1171 pg_line_char14_tab ,
1172 pg_line_char15_tab ,
1173 pg_line_char16_tab ,
1174 pg_line_char17_tab ,
1175 pg_line_char18_tab ,
1176 pg_line_char19_tab ,
1177 pg_line_char20_tab ,
1178 pg_line_char21_tab ,
1179 pg_line_char22_tab ,
1180 pg_line_char23_tab ,
1181 pg_line_char24_tab ,
1182 pg_line_char25_tab ,
1183 pg_line_char26_tab ,
1184 pg_line_char27_tab ,
1185 pg_line_char28_tab ,
1186 pg_line_char29_tab ,
1187 pg_line_char30_tab ,
1188 pg_line_numeric1_tab ,
1189 pg_line_numeric2_tab ,
1190 pg_line_numeric3_tab ,
1191 pg_line_numeric4_tab ,
1192 pg_line_numeric5_tab ,
1193 pg_line_numeric6_tab ,
1194 pg_line_numeric7_tab ,
1195 pg_line_numeric8_tab ,
1196 pg_line_numeric9_tab ,
1197 pg_line_numeric10_tab ,
1198 pg_line_date1_tab ,
1199 pg_line_date2_tab ,
1200 pg_line_date3_tab ,
1201 pg_line_date4_tab ,
1202 pg_line_date5_tab ,
1203 pg_exempt_certi_numb_tab ,
1204 pg_exempt_reason_tab ,
1205 pg_exempt_cont_flag_tab
1206 limit C_LINES_PER_COMMIT;/*Need to limit the fetch*/
1207
1208 delete from zx_jurisdictions_gt;
1209 l_index := 0;
1213 'No item lines exist to whom tax lines need to be created' );
1210 IF (nvl(pg_trx_id_tab.last,0) = 0) Then
1211 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1212 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1214 END IF;
1215 --x_error_status := FND_API.G_RET_STS_UNEXP_ERROR;
1216 --g_string :='No item lines exist to whom tax lines need to be created';
1217 --error_exception_handle(g_string);
1218 --x_messages_tbl:=g_messages_tbl;
1219 RETURN;
1220 ELSE /*there are Some lines for processing*/
1221 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1222 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1223 ' Item lines exist to whom tax lines need to be created');
1224 END IF;
1225 For ptr in 1..nvl(pg_trx_id_tab.last, 0) loop
1226
1227 I:=ptr;
1228 g_transaction_line_id := pg_trx_line_id_tab(i);
1229 g_trx_level_type := pg_trx_level_type_tab(i);
1230 g_docment_type_id := pg_doc_type_id_tab(i);
1231 g_trasaction_id := pg_trx_id_tab(i);
1232 g_tax_regime_code := zx_tax_partner_pkg.g_tax_regime_code;
1233 pg_ugraded_inv_flag_tab(I) := 'N';
1234
1235 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1236 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1237 ' Value of Variable I is :'||I);
1238 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1239 ' Performing validation of passed document level,line level actions BY PERFORM_VALIDATE' );
1240 END IF;
1241
1242 Perform_validate(l_return_status);
1243
1244 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1245 IF (g_level_exception >= g_current_runtime_level ) THEN
1246 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1247 END IF;
1248 x_error_status := FND_API.G_RET_STS_UNEXP_ERROR;
1249 g_string :='Header ,line level actions are incompaitable';
1250 error_exception_handle(g_string);
1251 x_messages_tbl:=g_messages_tbl;
1252 RETURN;
1253 END IF;
1254
1255 IF(pg_doc_type_id_tab(i)<>0) then
1256 IF l_doc_trx_id IS NULL or l_doc_trx_id <> pg_trx_id_tab(i) THEN
1257
1258 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1259 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1260 ' Selecting document type for event_class_mapping id '||pg_doc_type_id_tab(i));
1261 END IF;
1262
1263 Begin
1264 select event_class_code
1265 into l_document_type
1266 from zx_evnt_cls_mappings
1267 where event_class_mapping_id = pg_doc_type_id_tab(i);
1268 Exception
1269 When no_data_found then
1270 IF (g_level_exception >= g_current_runtime_level ) THEN
1271 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1272 End if;
1273 x_error_status := FND_API.G_RET_STS_UNEXP_ERROR;
1274 g_string :='No document type exist for provided event_class_mapping_id ';
1275 error_exception_handle(g_string);
1276 x_messages_tbl:=g_messages_tbl;
1277 return;
1278 End;
1279 END IF;
1280 ELSE /*"Sales Transaction Quote*/
1281 l_document_type := 'SALES_QUOTE';
1282 END IF;
1283
1284 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1285 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1286 ' DOCUMENT_TYPE '||l_document_type);
1287 END IF;
1288
1289 IF l_doc_trx_id IS NULL or l_doc_trx_id <> pg_trx_id_tab(I) THEN
1290 l_doc_trx_id := pg_trx_id_tab(I);
1291
1292 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1293 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1294 ' Setting up Document type' );
1295 END IF;
1296
1297 SELECT SUM(ABS(line_amount))
1298 INTO l_doc_amount
1299 FROM ZX_O2C_CALC_TXN_INPUT_V
1300 WHERE transaction_id = l_doc_trx_id;
1301
1302 SET_DOCUMENT_TYPE(l_document_type,pg_adj_doc_trx_id_tab(I),l_doc_amount,l_return_status);
1303
1304 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1305 IF (g_level_exception >= g_current_runtime_level ) THEN
1306 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1307 END IF;
1308 x_error_status := FND_API.G_RET_STS_UNEXP_ERROR;
1309 g_string :='Failed in setting up document type';
1310 error_exception_handle(g_string);
1311 x_messages_tbl:=g_messages_tbl;
1312 RETURN;
1313 END IF;
1314 END IF;
1315
1316 IF(pg_doc_level_action_tab(i) in ('CREATE', 'QUOTE')) then
1317 IF(l_document_type in ('TAX_ONLY_CREDIT_MEMO', 'TAX_ONLY_ADJUSTMENT')) then
1318 Return;
1319 ELSE
1320 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1321 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1322 ' Calling LINE_CREATION procedure to create entry in TAXWARE' );
1323 END IF;
1324
1325 Perform_line_creation(l_tax_lines_tbl,p_currency_tab,l_return_status);
1326
1327 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1328 IF (g_level_exception >= g_current_runtime_level ) THEN
1329 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1330 END IF;
1331 x_error_status := FND_API.G_RET_STS_UNEXP_ERROR;
1332 g_string :='Failed in creating tax line';
1333 error_exception_handle(g_string);
1334 x_messages_tbl:=g_messages_tbl;
1335 return;
1336 END IF;
1337 END IF;
1338 ELSIF(pg_doc_level_action_tab(i) = 'UPDATE') then
1339 IF l_document_type in ('TAX_ONLY_CREDIT_MEMO', 'TAX_ONLY_ADJUSTMENT') then
1340 Return;
1341 ELSE
1342 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1343 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1344 ' Calling PERFORM_UPDATE procedure to update an entry in TAXWARE' );
1345 END IF;
1346
1347 Perform_update(l_tax_lines_tbl,p_currency_tab,l_return_status);
1348
1349 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1350 IF (g_level_exception >= g_current_runtime_level ) THEN
1351 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1352 END IF;
1353 x_error_status := FND_API.G_RET_STS_UNEXP_ERROR;
1354 g_string :='Failed in performing the update';
1355 error_exception_handle(g_string);
1356 x_messages_tbl:=g_messages_tbl;
1357 RETURN;
1358 END IF;
1359
1360 Begin
1361 Delete from zx_ptnr_neg_line_gt
1362 WHERE event_class_mapping_id = pg_doc_type_id_tab(I)
1363 and trx_id = pg_trx_id_tab(I)
1364 and trx_line_id = pg_trx_line_id_tab(I)
1365 and trx_level_type = pg_trx_level_type_tab(I);
1366 Exception
1367 When no_data_found then null;
1368 End;
1369 END IF;
1370 ELSE
1371 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1372 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1373 ' Unknown header level action' );
1374 END IF;
1375
1376 x_error_status := FND_API.G_RET_STS_UNEXP_ERROR;
1377 g_string :=' Unknown header level action';
1378 error_exception_handle(g_string);
1379 x_messages_tbl:=g_messages_tbl;
1380 RETURN;
1381 END IF;
1382
1383 cnt_end := cnt + l_tax_lines_tbl.transaction_line_id.COUNT - 1;
1384
1385 FOR inner IN cnt .. cnt_end LOOP
1386 l_index := l_index + 1;
1387 x_tax_lines_tbl.DOCUMENT_TYPE_ID(inner) := l_tax_lines_tbl.DOCUMENT_TYPE_ID(l_index);
1388 x_tax_lines_tbl.TRANSACTION_ID(inner) := l_tax_lines_tbl.TRANSACTION_ID(l_index);
1389 x_tax_lines_tbl.TRANSACTION_LINE_ID(inner) := l_tax_lines_tbl.TRANSACTION_LINE_ID(l_index);
1390 x_tax_lines_tbl.TRX_LEVEL_TYPE(inner) := l_tax_lines_tbl.TRX_LEVEL_TYPE(l_index);
1391 x_tax_lines_tbl.COUNTRY_CODE(inner) := l_tax_lines_tbl.COUNTRY_CODE(l_index);
1392 x_tax_lines_tbl.TAX(inner) := l_tax_lines_tbl.TAX(l_index);
1393 x_tax_lines_tbl.SITUS(inner) := l_tax_lines_tbl.SITUS(l_index);
1394 x_tax_lines_tbl.TAX_JURISDICTION(inner) := l_tax_lines_tbl.TAX_JURISDICTION(l_index);
1395 x_tax_lines_tbl.TAX_CURRENCY_CODE(inner) := l_tax_lines_tbl.TAX_CURRENCY_CODE(l_index);
1396 x_tax_lines_tbl.TAX_AMOUNT(inner) := l_tax_lines_tbl.TAX_AMOUNT(l_index);
1397 x_tax_lines_tbl.UNROUNDED_TAX_AMOUNT(inner) := l_tax_lines_tbl.UNROUNDED_TAX_AMOUNT(l_index);
1398 x_tax_lines_tbl.TAX_CURR_TAX_AMOUNT(inner) := l_tax_lines_tbl.TAX_CURR_TAX_AMOUNT(l_index);
1399 x_tax_lines_tbl.TAX_RATE_PERCENTAGE(inner) := l_tax_lines_tbl.TAX_RATE_PERCENTAGE(l_index);
1400 x_tax_lines_tbl.TAXABLE_AMOUNT(inner) := l_tax_lines_tbl.TAXABLE_AMOUNT(l_index);
1401 x_tax_lines_tbl.EXEMPT_CERTIFICATE_NUMBER(inner) := l_tax_lines_tbl.EXEMPT_CERTIFICATE_NUMBER(l_index);
1402 x_tax_lines_tbl.EXEMPT_RATE_MODIFIER(inner) := l_tax_lines_tbl.EXEMPT_RATE_MODIFIER(l_index);
1403 x_tax_lines_tbl.EXEMPT_REASON(inner) := l_tax_lines_tbl.EXEMPT_REASON(l_index);
1404 x_tax_lines_tbl.TAX_ONLY_LINE_FLAG(inner) := l_tax_lines_tbl.TAX_ONLY_LINE_FLAG(l_index);
1405 x_tax_lines_tbl.INCLUSIVE_TAX_LINE_FLAG(inner) := l_tax_lines_tbl.INCLUSIVE_TAX_LINE_FLAG(l_index);
1406 x_tax_lines_tbl.LINE_AMT_INCLUDES_TAX_FLAG(inner) := l_tax_lines_tbl.LINE_AMT_INCLUDES_TAX_FLAG(l_index);
1407 x_tax_lines_tbl.USE_TAX_FLAG(inner) := l_tax_lines_tbl.USE_TAX_FLAG(l_index);
1408 x_tax_lines_tbl.USER_OVERRIDE_FLAG(inner) := l_tax_lines_tbl.USER_OVERRIDE_FLAG(l_index);
1409 x_tax_lines_tbl.LAST_MANUAL_ENTRY(inner) := l_tax_lines_tbl.LAST_MANUAL_ENTRY(l_index);
1410 x_tax_lines_tbl.MANUALLY_ENTERED_FLAG(inner) := l_tax_lines_tbl.MANUALLY_ENTERED_FLAG(l_index);
1411 x_tax_lines_tbl.REGISTRATION_PARTY_TYPE(inner) := l_tax_lines_tbl.REGISTRATION_PARTY_TYPE(l_index);
1412 x_tax_lines_tbl.PARTY_TAX_REG_NUMBER(inner) := l_tax_lines_tbl.PARTY_TAX_REG_NUMBER(l_index);
1413 x_tax_lines_tbl.THIRD_PARTY_TAX_REG_NUMBER(inner) := l_tax_lines_tbl.THIRD_PARTY_TAX_REG_NUMBER(l_index);
1414 x_tax_lines_tbl.THRESHOLD_INDICATOR_FLAG(inner) := l_tax_lines_tbl.THRESHOLD_INDICATOR_FLAG(l_index);
1415 x_tax_lines_tbl.STATE(inner) := l_tax_lines_tbl.STATE(l_index);
1416 x_tax_lines_tbl.COUNTY(inner) := l_tax_lines_tbl.COUNTY(l_index);
1417 x_tax_lines_tbl.CITY(inner) := l_tax_lines_tbl.CITY(l_index);
1418 --bug7140895
1419 x_tax_lines_tbl.global_attribute_category(inner) := l_tax_lines_tbl.global_attribute_category(l_index);
1420 x_tax_lines_tbl.global_attribute2(inner) := l_tax_lines_tbl.global_attribute2(l_index);
1421 x_tax_lines_tbl.global_attribute4(inner) := l_tax_lines_tbl.global_attribute4(l_index);
1422 x_tax_lines_tbl.global_attribute6(inner) := l_tax_lines_tbl.global_attribute6(l_index);
1423 END LOOP;
1424 cnt := cnt + l_tax_lines_tbl.transaction_line_id.COUNT;
1425 END LOOP;
1426 END IF;
1427 EXIT WHEN item_lines_to_be_processed%NOTFOUND;
1428 END LOOP;
1429 CLOSE item_lines_to_be_processed;
1430
1431 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1432 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'()-');
1433 END IF;
1434
1435 Exception
1436 WHEN WRONG_BUSINESS_FLOW then
1437 IF (g_level_exception >= g_current_runtime_level ) THEN
1438 FND_LOG.STRING(g_level_exception,G_PKG_NAME||': '||l_api_name,
1439 'Failed in calculate_tax_api procedure');
1440 END IF;
1441 g_string :='Release 12 Old tax partner integration does not support P2P products';
1442 error_exception_handle(g_string);
1443 x_messages_tbl:=g_messages_tbl;
1444 CLOSE item_lines_to_be_processed;
1445 RAISE;
1446
1447 END CALCULATE_TAX_API;
1448
1449 PROCEDURE SET_DOCUMENT_TYPE( P_DOCUMENT_TYPE IN OUT NOCOPY VARCHAR2,
1450 P_ADJ_DOC_TRX_ID IN NUMBER,
1451 P_LINE_AMOUNT IN NUMBER,
1452 x_return_status OUT NOCOPY VARCHAR2)IS
1453 l_api_name CONSTANT VARCHAR2(30) := 'SET_DOCUMENT_TYPE';
1454
1455 Begin
1456 x_return_status := FND_API.G_RET_STS_SUCCESS;
1457
1458 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1459 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
1460 END IF;
1461
1462 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1463 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'P_DOCUMENT_TYPE : '||P_DOCUMENT_TYPE );
1464 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'P_ADJ_DOC_TRX_ID : '||P_ADJ_DOC_TRX_ID );
1465 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'P_LINE_AMOUNT : '||P_LINE_AMOUNT );
1466 END IF;
1467 IF (p_document_type = 'CREDIT_MEMO') THEN
1468 IF (p_adj_doc_trx_id is not null) THEN
1469 IF (p_line_amount = 0) THEN
1470 p_document_type :='TAX_ONLY_CREDIT_MEMO';
1471 ELSIF pg_line_level_action_tab(I) = 'RECORD_WITH_NO_TAX' THEN
1472 --ELSIF (pg_allow_tax_calc_tab(I) ='N') THEN
1473 p_document_type :='LINE_ONLY_CREDIT_MEMO';
1474 ELSE
1475 p_document_type :='APPLIED_CREDIT_MEMO';
1476 END IF; /*LINE_AMOUNT*/
1477 ELSE
1478 p_document_type :='ON_ACCT_CREDIT_MEMO';
1479 END IF; /*ADJ_DOC_TRX_ID*/
1480 END IF; /*'CREDIT_MEMO*/
1481
1482 IF (p_document_type = 'INVOICE') THEN
1483 IF (p_line_amount = 0) THEN
1484 p_document_type :='TAX_ONLY_INVOICE';
1485 END IF;
1486 END IF;/*INVOICE*/
1487
1488 IF (p_document_type = 'INVOICE_ADJUSTMENT') THEN
1489 IF (p_line_amount = 0) THEN
1490 p_document_type := 'TAX_ONLY_ADJUSTMENT';
1491 END IF;
1492 END IF;
1493 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1494 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'()-');
1495 END IF;
1496 End;
1497
1498
1499 PROCEDURE PERFORM_VALIDATE(x_return_status OUT NOCOPY varchar2) is
1500 l_api_name CONSTANT VARCHAR2(30) := 'PERFORM_VALIDATE';
1501 Begin
1502
1503 x_return_status := FND_API.G_RET_STS_SUCCESS;
1504
1505 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1506 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
1507 END IF;
1508
1509 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1510 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'PG_DOC_LEVEL_ACTION_TAB(i) : '||pg_doc_level_action_tab(i));
1511 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'PG_LINE_LEVEL_ACTION_TAB(i) : '||pg_line_level_action_tab(i));
1512 END IF;
1513 if(pg_doc_level_action_tab(i) = 'CREATE') Then
1514 if(pg_line_level_action_tab(i) NOT IN ('CREATE', 'QUOTE','SYNCHRONIZE','RECORD_WITH_NO_TAX')) Then
1515 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1516 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Unknown line level action');
1517 END IF;
1518 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1519 end if;
1520 elsif(pg_doc_level_action_tab(i) = 'QUOTE') Then
1521 if(pg_line_level_action_tab(i) NOT IN ('QUOTE')) Then
1522 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1523 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Unknown line level action');
1524 END IF;
1525 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1526 end if;
1527 elsif(pg_doc_level_action_tab(i) = 'UPDATE') Then
1528 if(pg_line_level_action_tab(i) NOT IN ('CREATE', 'UPDATE', 'QUOTE', 'CANCEL', 'DELETE', 'SYNCHRONIZE','RECORD_WITH_NO_TAX')) Then
1529 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1530 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Unknown line level action');
1531 END IF;
1532 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1533 end if;
1534 else
1535 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1536 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Unknown header level action');
1537 END IF;
1538 null;
1539 end if;
1540 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1541 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'()-');
1542 END IF;
1543 End perform_validate;
1544
1545
1546 PROCEDURE PERFORM_LINE_CREATION(p_tax_lines_tbl OUT NOCOPY ZX_TAX_PARTNER_PKG.tax_lines_tbl_type,
1547 p_currency_tab IN OUT NOCOPY ZX_TAX_PARTNER_PKG.tax_currencies_tbl_type,
1548 x_return_status OUT NOCOPY VARCHAR2)is
1549 l_TaxLink ZX_TAX_TAXWARE_GEN.TaxParm;
1550 l_JurLink ZX_TAX_TAXWARE_GEN.JurParm;
1551 l_OraLink ZX_TAX_TAXWARE_GEN.t_OraParm;
1552 return_code boolean;
1553 l_api_name CONSTANT VARCHAR2(30) := 'PERFORM_LINE_CREATION';
1554 l_return_status VARCHAR2(30);
1555 input_param_flag boolean;
1556 Begin
1557
1558 x_return_status := FND_API.G_RET_STS_SUCCESS;
1559
1560 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1561 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
1562 END IF;
1563
1564 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1565 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Calling SET_PARAMETERS procedure' );
1566 END IF;
1567
1568 g_line_level_action:='CREATE';
1569 return_code := Set_Parameters(l_TaxLink, l_JurLink, l_OraLink);
1570 input_param_flag := TRUE;
1571 dump_vendor_rec(l_TaxLink, l_JurLink, l_OraLink,input_param_flag);
1572
1573 if(return_code = TRUE) then
1574 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1575 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Calling CALCULATE_TAX procedure' );
1576 END IF;
1577
1578 return_code := calculate_tax(l_TaxLink, l_JurLink, l_OraLink);
1579 input_param_flag := FALSE;
1580 dump_vendor_rec(l_TaxLink, l_JurLink, l_OraLink,input_param_flag);
1581 IF (return_code = FALSE) then
1582 x_return_status := FND_API.G_RET_STS_ERROR; --13533328
1583 g_string :='Failed in CALCULATE_TAX procedure';
1584 error_exception_handle(g_string);
1585 return;
1586 END IF;
1587 else
1588 x_return_status := FND_API.G_RET_STS_ERROR;
1589 g_string :='Failed in SET_PRAMETERS procedure';
1590 error_exception_handle(g_string);
1591 return;
1592 end if;
1593 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1594 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Calling TAX_RESULTS_PROCESSING procedure' );
1595 END IF;
1596
1597 tax_results_processing(p_tax_lines_tbl,p_currency_tab,l_TaxLink, l_JurLink, l_OraLink,l_return_status);
1598 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1599 IF (g_level_exception >= g_current_runtime_level ) THEN
1600 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1601 END IF;
1602 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1603 g_string :='Failed in call to the TAX_RESULTS_PROCESSING';
1604 error_exception_handle(g_string);
1605 RETURN;
1606 END IF;
1607
1608 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1609 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'()-');
1610 END IF;
1611 Exception
1612 When Others then
1613 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1614 IF (g_level_exception >= g_current_runtime_level ) THEN
1615 FND_LOG.STRING(g_level_exception,G_PKG_NAME||'.'||l_api_name,
1616 'Failed in Line creation procedure');
1617 END IF;
1618 End;
1619
1620 PROCEDURE PERFORM_LINE_DELETION(x_return_status OUT NOCOPY VARCHAR2) is
1621 l_TaxLink ZX_TAX_TAXWARE_GEN.TaxParm;
1622 l_JurLink ZX_TAX_TAXWARE_GEN.JurParm;
1623 l_OraLink ZX_TAX_TAXWARE_GEN.t_OraParm;
1624 l_api_name CONSTANT VARCHAR2(30) := 'PERFORM_LINE_DELETION';
1625 return_code boolean;
1626 input_param_flag boolean;
1627 Begin
1628 x_return_status := FND_API.G_RET_STS_SUCCESS;
1629 /*ZX_TAXWARE_USER_PKG.g_line_negation := TRUE;
1630 ZX_TAXWARE_USER_PKG.g_trx_line_id := pg_trx_line_id_tab(I);
1631 ZX_TAXWARE_USER_PKG.Derive_Hdr_Ext_Attr;
1632 ZX_TAXWARE_USER_PKG.Derive_Line_Ext_Attr;*/
1633 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1634 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
1635 END IF;
1636 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1637 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Calling SET_PARAMETERS procedure' );
1638 END IF;
1639 --Bug 8576319
1640 g_line_level_action:='DELETE';
1641 return_code := Set_Parameters(l_TaxLink, l_JurLink, l_OraLink);
1642 if(return_code = TRUE) then
1643 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1644 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Calling CALCULATE_TAX procedure' );
1645 END IF;
1646
1647 input_param_flag := TRUE;
1648 dump_vendor_rec(l_TaxLink, l_JurLink, l_OraLink,input_param_flag);
1649
1650 return_code := calculate_tax(l_TaxLink, l_JurLink, l_OraLink);
1651 input_param_flag := FALSE;
1652 dump_vendor_rec(l_TaxLink, l_JurLink, l_OraLink,input_param_flag);
1653 IF (return_code = FALSE) then
1654 x_return_status := FND_API.G_RET_STS_ERROR; --13533328
1655 g_string :='Failed in CALCULATE_TAX procedure';
1656 error_exception_handle(g_string);
1657 return;
1658 END IF;
1659 else
1660 x_return_status := FND_API.G_RET_STS_ERROR;
1661 end if;
1662 /*end of line deletion process.*/
1663 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1664 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'()+');
1665 END IF;
1666 Exception
1667 When Others then
1668 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1669 IF (g_level_exception >= g_current_runtime_level ) THEN
1670 FND_LOG.STRING(g_level_exception,G_PKG_NAME||'.'||l_api_name,
1671 'Failed in Line deletion procedure');
1672 END IF;
1673
1674 End;
1675
1676 PROCEDURE PERFORM_UPDATE (p_tax_lines_tbl OUT NOCOPY ZX_TAX_PARTNER_PKG.tax_lines_tbl_type,
1677 p_currency_tab IN OUT NOCOPY ZX_TAX_PARTNER_PKG.tax_currencies_tbl_type,
1678 x_return_status OUT NOCOPY VARCHAR2) is
1679 l_api_name CONSTANT VARCHAR2(30) := 'PERFORM_UPDATE';
1680 l_return_status varchar2(30);
1681 l_ret_code boolean;
1682 Begin
1683
1684 x_return_status := FND_API.G_RET_STS_SUCCESS;
1685
1686 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1687 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
1688 END IF;
1689
1690 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1691 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'PG_LINE_LEVEL_ACTION_TAB(i)'||pg_line_level_action_tab(i) );
1692 END IF;
1693 if (pg_line_level_action_tab(i) in ('CREATE','QUOTE')) Then
1694
1695 g_line_level_action := 'CREATE';
1696
1697 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1698 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Calling PERFORM_LINE_CREATION procedure' );
1699 END IF;
1700
1701 Perform_line_creation(p_tax_lines_tbl,p_currency_tab,l_return_status);
1702 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1703 IF (g_level_exception >= g_current_runtime_level ) THEN
1704 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1705 END IF;
1706 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1707 g_string :='Not compaitable to TAXWARE Release';
1708 error_exception_handle(g_string);
1709 return;
1710 END IF;
1711
1712 elsif(pg_line_level_action_tab(i) in ('UPDATE')) Then
1713 /*First make contra entry*/
1714 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1715 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Calling PERFORM_LINE_DELETION procedure' );
1716 END IF;
1717 --Bug 8576319
1718 g_line_level_action := 'DELETE';
1719 perform_line_deletion(l_return_status);
1720
1721 /*For new line*/
1722 -- g_line_level_action := 'CREATE';
1723 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1724 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Calling PERFORM_LINE_CREATION procedure' );
1725 END IF;
1726
1727 perform_line_creation(p_tax_lines_tbl,p_currency_tab,l_return_status);
1728 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1729 IF (g_level_exception >= g_current_runtime_level ) THEN
1730 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1731 END IF;
1732 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1733 g_string :='Not compaitable to TAXWARE Release';
1734 error_exception_handle(g_string);
1735 return;
1736 END IF;
1737 elsif(pg_line_level_action_tab(i) in ('DELETE','CANCEL')) Then
1738 -- g_line_level_action := pg_line_level_action_tab(i);
1739 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1740 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Calling PERFORM_LINE_DELETION procedure' );
1741 END IF;
1742 --Bug 8576319
1743 g_line_level_action := 'CREATE';
1744 perform_line_deletion(l_return_status);
1745
1746 else
1747 Null;/*Need to add for SYNCHRONIZE */
1748 end if;/*Line level operation*/
1749
1750
1751 End PERFORM_UPDATE;
1752
1753 PROCEDURE GET_TAX_JUR_CODE(p_location_id IN NUMBER,
1754 p_situs IN VARCHAR2,
1755 p_tax IN VARCHAR2,
1756 p_regime_code IN VARCHAR2,
1757 p_inv_date IN DATE,
1758 x_tax_jurisdiction_code OUT NOCOPY VARCHAR2,
1759 x_return_status OUT NOCOPY VARCHAR2) IS
1760
1761 l_api_name CONSTANT VARCHAR2(30) := 'GET_TAX_JUR_CODE';
1762 x_tax_jurisdiction_rec ZX_TCM_GEO_JUR_PKG.tax_jurisdiction_rec_type;
1763 x_jurisdictions_found VARCHAR2(20);
1764 l_return_status VARCHAR2(30);
1765
1766 BEGIN
1767 x_return_status := FND_API.G_RET_STS_SUCCESS;
1768
1769 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1770 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
1771 END IF;
1772
1773 ZX_TCM_GEO_JUR_PKG.get_tax_jurisdictions
1774 (p_location_id ,
1775 p_situs ,
1776 p_tax ,
1777 p_regime_code ,
1778 p_inv_date ,
1779 x_tax_jurisdiction_rec ,
1780 x_jurisdictions_found ,
1781 x_return_status
1782 );
1783 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1784 IF (g_level_exception >= g_current_runtime_level ) THEN
1785 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1786 END IF;
1787 -- x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1788 g_string :='Not able to find Jurisdiction';
1789 error_exception_handle(g_string);
1790 RETURN;
1791 END IF;
1792
1793 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1794 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1795 'x_jurisdictions_found :'||x_jurisdictions_found);
1796 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1797 'x_tax_jurisdiction_rec.tax_jurisdiction_code :'||x_tax_jurisdiction_rec.tax_jurisdiction_code);
1798 END IF;
1799
1800 IF x_jurisdictions_found = 'Y' THEN
1801 IF x_tax_jurisdiction_rec.tax_jurisdiction_code IS NOT NULL THEN
1802 x_tax_jurisdiction_code := x_tax_jurisdiction_rec.tax_jurisdiction_code;
1803 ELSE
1804 BEGIN
1805 SELECT tax_jurisdiction_code
1806 INTO x_tax_jurisdiction_code
1807 FROM
1808 (SELECT tax_jurisdiction_code
1809 FROM zx_jurisdictions_gt
1810 WHERE tax_regime_code = p_regime_code
1811 AND tax = p_tax
1812 AND precedence_level = (SELECT max(precedence_level)
1813 FROM zx_jurisdictions_gt
1814 WHERE tax_regime_code = p_regime_code
1815 AND tax = p_tax)
1816 ORDER BY tax_jurisdiction_code)
1817 WHERE ROWNUM = 1;
1818 END;
1819 END IF;
1820 END IF;
1821
1822 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1823 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'(-)');
1824 END IF;
1825
1826 END GET_TAX_JUR_CODE;
1827
1828 FUNCTION SET_PARAMETERS(
1829 l_Tax_Link IN OUT NOCOPY zx_tax_taxware_GEN.TaxParm,
1830 l_JurLink IN OUT NOCOPY zx_tax_taxware_GEN.JurParm,
1831 l_OraLink IN OUT NOCOPY zx_tax_taxware_GEN.t_OraParm) RETURN BOOLEAN is
1832
1833 /*Following variables used during line deletion process.*/
1834 arp_line_amount ZX_PTNR_NEG_LINE_GT.line_amt%type;
1835 arp_quantity ZX_PTNR_NEG_LINE_GT.trx_line_quantity%type;
1836 arp_trx_id ZX_PTNR_NEG_LINE_GT.trx_id%type;
1837 arp_trx_number ZX_PTNR_NEG_LINE_GT.trx_number%type;
1838 /*Not needed for TAXWARE
1839 arp_ship_to_grphy_type1 varchar2(240);
1840 arp_ship_to_grphy_value1 varchar2(240);
1841 arp_ship_to_grphy_type2 varchar2(240);
1842 arp_ship_to_grphy_value2 varchar2(240);
1843 arp_ship_to_grphy_type3 varchar2(240);
1844 arp_ship_to_grphy_value3 varchar2(240);
1845 arp_ship_to_grphy_type4 varchar2(240);
1846 arp_ship_to_grphy_value4 varchar2(240);
1847 arp_ship_to_grphy_type5 varchar2(240);
1848 arp_ship_to_grphy_value5 varchar2(240);
1849 arp_ship_to_grphy_type6 varchar2(240);
1850 arp_ship_to_grphy_value6 varchar2(240);
1851 arp_ship_to_grphy_type7 varchar2(240);
1852 arp_ship_to_grphy_value7 varchar2(240);
1853 arp_ship_to_grphy_type8 varchar2(240);
1854 arp_ship_to_grphy_value8 varchar2(240);
1855 arp_ship_to_grphy_type9 varchar2(240);
1856 arp_ship_to_grphy_value9 varchar2(240);
1857 arp_ship_to_grphy_type10 varchar2(240);
1858 arp_ship_to_grphy_value10 varchar2(240);
1859 arp_ship_from_grphy_type1 varchar2(240);
1860 arp_ship_from_grphy_value1 varchar2(240);
1861 arp_ship_from_grphy_type2 varchar2(240);
1862 arp_ship_from_grphy_value2 varchar2(240);
1863 arp_ship_from_grphy_type3 varchar2(240);
1864 arp_ship_from_grphy_value3 varchar2(240);
1865 arp_ship_from_grphy_type4 varchar2(240);
1866 arp_ship_from_grphy_value4 varchar2(240);
1867 arp_ship_from_grphy_type5 varchar2(240);
1868 arp_ship_from_grphy_value5 varchar2(240);
1869 arp_ship_from_grphy_type6 varchar2(240);
1870 arp_ship_from_grphy_value6 varchar2(240);
1871 arp_ship_from_grphy_type7 varchar2(240);
1872 arp_ship_from_grphy_value7 varchar2(240);
1873 arp_ship_from_grphy_type8 varchar2(240);
1874 arp_ship_from_grphy_value8 varchar2(240);
1875 arp_ship_from_grphy_type9 varchar2(240);
1876 arp_ship_from_grphy_value9 varchar2(240);
1877 arp_ship_from_grphy_type10 varchar2(240);
1878 arp_ship_from_grphy_value10 varchar2(240);
1879 arp_poa_grphy_type1 varchar2(240);
1880 arp_poa_grphy_value1 varchar2(240);
1881 arp_poa_grphy_type2 varchar2(240);
1882 arp_poa_grphy_value2 varchar2(240);
1883 arp_poa_grphy_type3 varchar2(240);
1884 arp_poa_grphy_value3 varchar2(240);
1885 arp_poa_grphy_type4 varchar2(240);
1886 arp_poa_grphy_value4 varchar2(240);
1887 arp_poa_grphy_type5 varchar2(240);
1888 arp_poa_grphy_value5 varchar2(240);
1889 arp_poa_grphy_type6 varchar2(240);
1890 arp_poa_grphy_value6 varchar2(240);
1891 arp_poa_grphy_type7 varchar2(240);
1892 arp_poa_grphy_value7 varchar2(240);
1893 arp_poa_grphy_type8 varchar2(240);
1894 arp_poa_grphy_value8 varchar2(240);
1895 arp_poa_grphy_type9 varchar2(240);
1896 arp_poa_grphy_value9 varchar2(240);
1897 arp_poa_grphy_type10 varchar2(240);
1898 arp_poa_grphy_value10 varchar2(240);
1899 arp_poo_grphy_type1 varchar2(240);
1900 arp_poo_grphy_value1 varchar2(240);
1901 arp_poo_grphy_type2 varchar2(240);
1902 arp_poo_grphy_value2 varchar2(240);
1903 arp_poo_grphy_type3 varchar2(240);
1904 arp_poo_grphy_value3 varchar2(240);
1905 arp_poo_grphy_type4 varchar2(240);
1906 arp_poo_grphy_value4 varchar2(240);
1907 arp_poo_grphy_type5 varchar2(240);
1908 arp_poo_grphy_value5 varchar2(240);
1909 arp_poo_grphy_type6 varchar2(240);
1910 arp_poo_grphy_value6 varchar2(240);
1911 arp_poo_grphy_type7 varchar2(240);
1912 arp_poo_grphy_value7 varchar2(240);
1913 arp_poo_grphy_type8 varchar2(240);
1914 arp_poo_grphy_type9 varchar2(240);
1915 arp_poo_grphy_value9 varchar2(240);
1916 arp_poo_grphy_type10 varchar2(240);
1917 arp_poo_grphy_value10 varchar2(240);
1918 arp_bill_to_grphy_type1 varchar2(240);
1919 arp_bill_to_grphy_value1 varchar2(240);
1920 arp_bill_to_grphy_type2 varchar2(240);
1921 arp_bill_to_grphy_value2 varchar2(240);
1922 arp_bill_to_grphy_type3 varchar2(240);
1923 arp_bill_to_grphy_value3 varchar2(240);
1924 arp_bill_to_grphy_type4 varchar2(240);
1925 arp_bill_to_grphy_value4 varchar2(240);
1926 arp_bill_to_grphy_type5 varchar2(240);
1927 arp_bill_to_grphy_value5 varchar2(240);
1928 arp_bill_to_grphy_type6 varchar2(240);
1929 arp_bill_to_grphy_value6 varchar2(240);
1930 arp_bill_to_grphy_type7 varchar2(240);
1931 arp_bill_to_grphy_value7 varchar2(240);
1932 arp_bill_to_grphy_type8 varchar2(240);
1933 arp_bill_to_grphy_value8 varchar2(240);
1934 arp_bill_to_grphy_type9 varchar2(240);
1935 arp_bill_to_grphy_value9 varchar2(240);
1936 arp_bill_to_grphy_type10 varchar2(240);
1937 arp_bill_to_grphy_value10 varchar2(240);
1938 arp_bill_from_grphy_type1 varchar2(240);
1939 arp_bill_from_grphy_value1 varchar2(240);
1940 arp_bill_from_grphy_type2 varchar2(240);
1941 arp_bill_from_grphy_value2 varchar2(240);
1942 arp_bill_from_grphy_type3 varchar2(240);
1943 arp_bill_from_grphy_value3 varchar2(240);
1944 arp_bill_from_grphy_type4 varchar2(240);
1945 arp_bill_from_grphy_value4 varchar2(240);
1946 arp_bill_from_grphy_type5 varchar2(240);
1947 arp_bill_from_grphy_value5 varchar2(240);
1948 arp_bill_from_grphy_type6 varchar2(240);
1949 arp_bill_from_grphy_value6 varchar2(240);
1950 arp_bill_from_grphy_type7 varchar2(240);
1951 arp_bill_from_grphy_value7 varchar2(240);
1952 arp_bill_from_grphy_type8 varchar2(240);
1953 arp_bill_from_grphy_value8 varchar2(240);
1954 arp_bill_from_grphy_type9 varchar2(240);
1955 arp_bill_from_grphy_value9 varchar2(240);
1956 arp_bill_from_grphy_type10 varchar2(240);
1957 arp_bill_from_grphy_value10 varchar2(240); Not Required for TAXWARE*/
1958 arp_tax_type varchar2(150);
1959 arp_product_code ZX_LINES_DET_FACTORS.PRODUCT_CODE%TYPE;
1960 use_step varchar2(30);
1961 arp_state_exempt_reason varchar2(240);
1962 arp_county_exempt_reason varchar2(240);
1963 arp_city_exempt_reason varchar2(240);
1964 step_proc_flag varchar2(30);
1965 arp_audit_flag varchar2(30);
1966 arp_ship_to_add varchar2(240);
1967 arp_ship_from_add varchar2(240);
1968 arp_poa_add_code varchar2(240);
1969 arp_poo_add_code varchar2(240);
1970 arp_customer_code varchar2(150);
1971 arp_customer_name varchar2(360);
1972 arp_company_code varchar2(150);
1973 arp_division_code varchar2(150);
1974 arp_vnd_ctrl_exmpt varchar2(150);
1975 arp_use_nexpro varchar2(30);
1976 arp_service_ind varchar2(150);
1977 crit_flag varchar2(30);
1978 calculation_flag varchar2(30);
1979 state_cert_no varchar2(150);
1980 county_cert_no varchar2(150);
1981 city_cert_no varchar2(150);
1982 arp_state_exempt_percent number;
1983 arp_county_exempt_pct number;
1984 arp_city_exempt_pct number;
1985 sec_county_exempt_pct number;
1986 sec_city_exempt_pct number;
1987 arp_tax_sel_param number;
1988 arp_transaction_date date;
1989 arp_adj_doc_date date;
1990 arp_trx_date date;
1991 arp_fob_point varchar2(80);
1992 arp_exempt_control_flag varchar2(1);
1993
1994 /*Following variables defined for local use*/
1995 l_tax_sel_param number;
1996 l_tax_type_param varchar2(150);
1997 l_tax_type varchar2(150);
1998 l_calculation_flag varchar2(150);
1999 l_poo_code varchar2(150);
2000 l_poa_code varchar2(150);
2001 l_ship_from_code varchar2(150);
2002 l_ship_to_code varchar2(150);
2003 l_service_indicator varchar2(150);
2004 l_state_exempt_reason varchar2(150);
2005 l_county_exempt_reason varchar2(150);
2006 l_city_exempt_reason varchar2(150);
2007 l_sec_county_exempt_reason varchar2(150);
2008 l_sec_city_exempt_reason varchar2(150);
2009 l_state_exempt_percent number;
2010 l_county_exempt_percent number;
2011 l_city_exempt_percent number;
2012 l_sec_county_exempt_percent number;
2013 l_sec_city_exempt_percent number;
2014 /*st_tax_amt number;
2015 co_tax_amt number;
2016 ci_tax_amt number; */
2017 l_use_step varchar2(20);
2018 l_step_proc_flag varchar2(20);
2019 l_job_no varchar2(20);
2020 l_criterion_flag varchar2(20);
2021 l_prod_ind varchar2(20);
2022 l_fob_point varchar2(80);
2023 l_api_name CONSTANT VARCHAR2(30) := 'SET_PARAMETERS';
2024
2025 Begin
2026
2027 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2028 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
2029 END IF;
2030
2031 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2032 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'G_LINE_LEVEL_ACTION :'||g_line_level_action);
2033 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Value of I is :'||I);
2034 END IF;
2035
2036 if(g_line_level_action='CREATE') then
2037 l_OraLink.oracleid := pg_Trx_id_tab(I);
2038 else /*Line level action is delete*/
2039 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2040 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2041 'Selecting data from ZX_PTNR_NEG_LINE_GT');
2042 END IF;
2043
2044 select
2045 line_amt,
2046 trx_line_quantity,
2047 trx_id,
2048 trx_number,
2049 adjusted_doc_date,
2050 trx_date,
2051 exemption_control_flag,
2052 fob_point,
2053 line_ext_varchar_attribute1 ,
2054 line_ext_varchar_attribute2 ,
2055 line_ext_varchar_attribute3 ,
2056 line_ext_varchar_attribute4 ,
2057 line_ext_varchar_attribute5 ,
2058 line_ext_varchar_attribute6 ,
2059 line_ext_varchar_attribute7 ,
2060 line_ext_varchar_attribute8 ,
2061 line_ext_varchar_attribute9 ,
2062 line_ext_varchar_attribute10 ,
2063 line_ext_varchar_attribute11 ,
2064 line_ext_varchar_attribute12 ,
2065 line_ext_varchar_attribute13 ,
2066 line_ext_varchar_attribute14 ,
2067 line_ext_varchar_attribute15 ,
2068 line_ext_varchar_attribute16 ,
2069 line_ext_varchar_attribute17 ,
2070 line_ext_varchar_attribute18 ,
2071 line_ext_varchar_attribute19 ,
2072 line_ext_varchar_attribute20 ,
2073 line_ext_varchar_attribute21 ,
2074 line_ext_varchar_attribute22 ,
2075 line_ext_varchar_attribute23 ,
2076 line_ext_varchar_attribute24 ,
2077 line_ext_number_attribute1 ,
2078 line_ext_number_attribute2 ,
2079 line_ext_number_attribute3 ,
2080 line_ext_number_attribute4 ,
2081 line_ext_number_attribute5 ,
2082 line_ext_number_attribute6 ,
2083 line_ext_date_attribute1
2084 Into arp_line_amount,
2085 arp_quantity,
2086 arp_trx_id,
2087 arp_trx_number,
2088 arp_adj_doc_date,
2089 arp_trx_date,
2090 arp_exempt_control_flag,
2091 arp_fob_point,
2092 arp_tax_type ,
2093 arp_product_code ,
2094 use_step ,
2095 arp_state_exempt_reason ,
2096 arp_county_exempt_reason ,
2097 arp_city_exempt_reason ,
2098 step_proc_flag ,
2099 arp_audit_flag ,
2100 arp_ship_to_add ,
2101 arp_ship_from_add ,
2102 arp_poa_add_code ,
2103 arp_customer_code ,
2104 arp_customer_name ,
2105 arp_company_code ,
2106 arp_division_code ,
2107 arp_vnd_ctrl_exmpt ,
2108 arp_use_nexpro ,
2109 arp_service_ind ,
2110 crit_flag ,
2111 arp_poo_add_code ,
2112 calculation_flag ,
2113 state_cert_no ,
2114 county_cert_no ,
2115 city_cert_no ,
2116 arp_state_exempt_percent ,
2117 arp_county_exempt_pct ,
2118 arp_city_exempt_pct ,
2119 sec_county_exempt_pct ,
2120 sec_city_exempt_pct ,
2121 arp_tax_sel_param ,
2122 arp_transaction_date
2123 from ZX_PTNR_NEG_LINE_GT
2124 WHERE trx_line_id= pg_trx_line_id_tab(I);
2125
2126 l_OraLink.oracleid := arp_Trx_id;
2127 end if;
2128
2129 l_OraLink.oracle_msg_text := null;
2130 l_OraLink.oracle_msg_label := null;
2131 l_OraLink.taxware_msg_text := null;
2132 l_OraLink.reserved_text_1 := null;
2133 l_OraLink.reserved_text_2 := null;
2134 l_OraLink.reserved_text_3 := null;
2135 l_OraLink.reserved_bool_1 := null;
2136 l_OraLink.reserved_bool_2 := null;
2137 l_OraLink.reserved_bool_3 := null;
2138 l_OraLink.reserved_char_1 := null;
2139 l_OraLink.reserved_char_2 := null;
2140 l_OraLink.reserved_char_3 := null;
2141 l_OraLink.reserved_num_1 := null;
2142 l_OraLink.reserved_num_2 := null;
2143 l_OraLink.reserved_bignum_1 := null;
2144 l_OraLink.reserved_date_1 := null;
2145
2146 /*-------------------------------------------------------------+
2147 | Validate Taxware attributes passed |
2148 +-----------------------------------------------------------*/
2149
2150 /*Here we are assigning to the variables..In subsequent changes
2151 we may directly use these values*/
2152
2153
2154 if(g_line_level_action = 'CREATE') then
2155 l_tax_sel_param := pg_line_numeric6_tab(i);
2156 l_tax_type_param := pg_line_char1_tab(i);
2157 l_calculation_flag := pg_line_char21_tab(I);
2158 l_poo_code := pg_line_char20_tab(i); /*assigned*/
2159 l_poa_code := pg_line_char11_tab(i);
2160 l_ship_from_code := pg_line_char10_tab(i);
2161 l_ship_to_code := pg_line_char9_tab(i);
2162 l_service_indicator := pg_line_char18_tab(i);
2163 l_state_exempt_reason := pg_line_char4_tab(i);
2164 l_county_exempt_reason := pg_line_char5_tab(i);
2165 l_city_exempt_reason := pg_line_char6_tab(i);
2166 l_sec_county_exempt_reason := pg_line_char5_tab(i);
2167 l_sec_city_exempt_reason := pg_line_char6_tab(i);
2168 l_state_cert_no := pg_line_char22_tab(i);
2169 l_county_cert_no := pg_line_char23_tab(i);
2170 l_city_cert_no := pg_line_char24_tab(i);
2171 l_state_exempt_percent := pg_line_numeric1_tab(i);
2172 l_county_exempt_percent := pg_line_numeric2_tab(i);
2173 l_city_exempt_percent := pg_line_numeric3_tab(i);
2174 l_sec_county_exempt_percent := pg_line_numeric4_tab(i);
2175 l_sec_city_exempt_percent := pg_line_numeric5_tab(i);
2176 else
2177 l_tax_sel_param := arp_tax_sel_param;
2178 l_tax_type_param := arp_tax_type;
2179 l_calculation_flag := calculation_flag;
2183 l_ship_to_code := arp_ship_to_add;
2180 l_poo_code := arp_poo_add_code;
2181 l_poa_code := arp_poa_add_code;
2182 l_ship_from_code := arp_ship_from_add;
2184 l_service_indicator := arp_service_ind;
2185 l_state_exempt_reason := arp_state_exempt_reason;
2186 l_county_exempt_reason := arp_county_exempt_reason;
2187 l_city_exempt_reason := arp_city_exempt_reason;
2188 l_sec_county_exempt_reason := arp_county_exempt_reason;
2189 l_sec_city_exempt_reason := arp_city_exempt_reason;
2190 l_state_exempt_percent := arp_state_exempt_percent;
2191 l_county_exempt_percent := arp_county_exempt_pct;
2192 l_city_exempt_percent := arp_city_exempt_pct ;
2193 l_sec_county_exempt_percent := sec_county_exempt_pct;
2194 l_sec_city_exempt_percent := sec_city_exempt_pct;
2195 end if;
2196
2197 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2198 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2199 'Value of l_tax_sel_param is :'||to_char(l_tax_sel_param));
2200 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2201 'Value of l_tax_type_param is :'||l_tax_type_param);
2202 END IF;
2203
2204
2205 IF l_tax_sel_param is NULL then
2206 g_tax_SELECTION := ZX_TAX_TAXWARE_GEN.SELPRM_TAX_JUR;
2207 ELSIF l_tax_sel_param = 1 THEN
2208 g_tax_SELECTION := ZX_TAX_TAXWARE_GEN.SELPRM_JUR_ONLY;
2209 ELSIF l_tax_sel_param = 2 THEN
2210 g_tax_SELECTION := ZX_TAX_TAXWARE_GEN.SELPRM_TAXES_ONLY;
2211 ELSE
2212 g_tax_SELECTION := ZX_TAX_TAXWARE_GEN.SELPRM_TAX_JUR;
2213 END IF;
2214
2215 IF l_tax_type_param = '1' THEN
2216 l_tax_type := ZX_TAX_TAXWARE_GEN.IND_SALES;
2217 ELSIF l_tax_type_param = '2' THEN
2218 l_tax_type := ZX_TAX_TAXWARE_GEN.IND_USE;
2219 ELSIF l_tax_type_param = '3' THEN
2220 l_tax_type := ZX_TAX_TAXWARE_GEN.IND_RENTAL;
2221 ELSE
2222 l_tax_type := ZX_TAX_TAXWARE_GEN.IND_SALES;
2223 END IF;
2224 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2225 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2226 'Value of l_poo_code is :'||l_poo_code);
2227 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2228 'Value of l_poa_code is :'||l_poa_code);
2229 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2230 'Value of l_ship_from_code is :'||l_ship_from_code);
2231 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2232 'Value of l_ship_to_code is :'||l_ship_to_code);
2233 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2234 'Value of l_calculation_flag is :'||l_calculation_flag);
2235
2236 END IF;
2237 -- Validate POO, POA and SHIP-FROM if tax selection specifies use of
2238 -- Jurisdictions.
2239 IF (g_tax_SELECTION IN
2240 (ZX_TAX_TAXWARE_GEN.SELPRM_JUR_ONLY, ZX_TAX_TAXWARE_GEN.SELPRM_TAX_JUR) ) THEN
2241 -- POO Code
2242 IF ( l_poo_code IS NULL ) THEN
2243 stack_error('GENERIC_MESSAGE', 'GENERIC_TEXT',
2244 'Taxware Error: Point Of Order Origin(POO) Information is not passed.',null,null);
2245 END IF;
2246
2247 -- POA Code
2248 IF ( l_poa_code IS NULL ) THEN
2249 stack_error('GENERIC_MESSAGE', 'GENERIC_TEXT',
2250 'Taxware Error: Point Of Order Acceptance(POA) Information is not passed.',null,null);
2251 Return FALSE;
2252 END IF;
2253
2254 -- Ship From Address
2255 IF ( l_ship_from_code IS NULL ) THEN
2256 stack_error('GENERIC_MESSAGE', 'GENERIC_TEXT',
2257 'Taxware Error: Ship From Address Information is not passed.',null,null);
2258 RETURN FALSE;
2259 END IF;
2260
2261 END IF; -- Tax selection uses Jurisdictions?
2262
2263 -- Ship To Address
2264 IF ( l_ship_to_code IS NULL ) THEN
2265 stack_error('GENERIC_MESSAGE', 'GENERIC_TEXT',
2266 'Taxware Error: Ship To Address Information is not passed.',null,null);
2267 RETURN FALSE;
2268 END IF;
2269
2270 /*----------------------------------------------------------------------+
2271 | Users could customize the tax views to totally exempt tax at any of |
2272 | the jurisdiction levels using No Tax Indicators. |
2273 | No Tax Indicators for all the levels are passed in thru |
2274 | calculation_flag as State||County||City||Sec County||Sec City. |
2275 +----------------------------------------------------------------------*/
2276
2277
2278
2279 -- No State Tax Indicator
2280 IF ( nvl(substrb(l_calculation_flag,1,1), '0') NOT IN ('0','1'))
2281 THEN
2282 stack_error('GENERIC_MESSAGE', 'GENERIC_TEXT',
2283 'Taxware Error: Invalid No State Tax Indicator. Must be 1 or 0.',null,null);
2284 RETURN FALSE;
2285 END IF;
2286
2287 -- No County Tax Indicator
2288 IF ( nvl(substrb(l_calculation_flag,2,1), '0') NOT IN ('0','1'))
2289 THEN
2290 stack_error('GENERIC_MESSAGE', 'GENERIC_TEXT',
2291 'Taxware Error: Invalid No County Tax Indicator. Must be 1 or 0.',null,null);
2292 RETURN FALSE;
2293 END IF;
2294
2295 -- No City/Town Tax Indicator
2296 IF ( nvl(substrb(l_calculation_flag,3,1), '0') NOT IN ('0','1'))
2297 THEN
2298 stack_error('GENERIC_MESSAGE', 'GENERIC_TEXT',
2299 'Taxware Error: Invalid No City/Town Tax Indicator. Must be 1 or 0.',null,null);
2300 RETURN FALSE;
2301 END IF;
2302
2303 -- No Secondary County Tax Indicator
2304 IF ( nvl(substrb(l_calculation_flag,4,1), '0') NOT IN ('0','1'))
2305 THEN
2306 stack_error('GENERIC_MESSAGE', 'GENERIC_TEXT',
2307 'Taxware Error: Invalid No Secondary County Tax Indicator. Must be 1 or 0.',null,null);
2308 RETURN FALSE;
2309 END IF;
2310
2311 -- No Secondary City/Town Tax Indicator
2312 IF ( nvl(substrb(l_calculation_flag,5,1), '0') NOT IN ('0','1'))
2313 THEN
2314 stack_error('GENERIC_MESSAGE', 'GENERIC_TEXT',
2315 'Taxware Error: Invalid No Secondary City/Town Tax Indicator. Must be 1 or 0.',null,null);
2316 RETURN FALSE;
2317 END IF;
2318
2319 /*-------------------------------------------------------------+
2320 | Validation Complete. |
2321 +-------------------------------------------------------------*/
2322
2323
2324 if(g_line_level_action = 'CREATE') then
2325 l_Tax_link.CustNo :=pg_line_char12_tab(I);
2326 l_Tax_link.CustName :=substrb(pg_line_char13_tab(I),1,20);
2327 l_Tax_link.InvoiceNo :=pg_trx_number_tab(I);
2328 l_Tax_link.FiscalDate :=pg_line_date1_tab(I);
2329 l_Tax_link.ProdCode :=substrb(pg_line_char2_tab(I),1,25);
2330 l_Tax_link.NumItems :=abs(nvl(pg_trx_line_qty_tab(I),1));
2331 l_Tax_link.NoTaxInd :=FALSE;
2332 l_Tax_link.ReptInd :=nvl(pg_line_char8_tab(I),'N') = 'Y';/*Need to check whether QUOTE to be also added*/
2333 l_Tax_link.DivCode :=pg_line_char15_tab(I);
2334 l_Tax_link.CompanyID :=pg_line_char14_tab(I);
2335
2336 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2337 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2338 'Value of pg_line_amount_tab is :'||to_char(pg_line_amount_tab(I)));
2339 END IF;
2340 if(pg_line_amount_tab(I)<0) then
2341 l_tax_link.CreditInd :=TRUE;
2342 else
2343 l_tax_link.CreditInd :=FALSE;
2344 end if;
2345
2346 --Bug 8576319
2347 --Setting the credit indicator if line_level_action = DELETE
2348 IF pg_line_level_action_tab(i) = 'DELETE' THEN
2349 l_tax_link.CreditInd := NOT l_tax_link.CreditInd;
2350 END IF;
2351 else
2352 l_Tax_link.CustNo :=arp_customer_code;
2353 l_Tax_link.CustName :=substrb(arp_customer_name,1,20);
2354 l_Tax_link.InvoiceNo :=arp_trx_number;
2355 l_Tax_link.FiscalDate :=arp_transaction_date;
2356 l_Tax_link.ProdCode :=substrb(arp_product_code,1,25);
2357 l_Tax_link.NumItems :=abs(nvl(arp_quantity,1));
2358 l_Tax_link.NoTaxInd :=FALSE; /*This need to be checked*/
2359 l_Tax_link.ReptInd :=TRUE;
2360 l_Tax_link.DivCode :=arp_division_code;
2361 l_Tax_link.CompanyID :=arp_company_code;
2362
2363 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2364 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2365 'Value of arp_line_amount is :'||to_char(arp_line_amount));
2366 END IF;
2367 if(arp_line_amount >0) then
2368 l_tax_link.CreditInd :=TRUE;
2369 else
2370 l_tax_link.CreditInd :=FALSE;
2371 end if;
2372 end if;
2373 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2374 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2375 'Value of l_document_type is :'||l_document_type);
2376 END IF;
2377 if(l_document_type in ('INVOICE', 'DEBIT_MEMO', 'ON_ACCT_CREDIT_MEMO'))then
2378 if(g_line_level_action ='CREATE') then
2379 l_Tax_link.GrossAmt := abs(pg_line_amount_tab(I));
2380 l_Tax_link.InvoiceDate := pg_trx_date_tab(I);
2381 l_Tax_link.CalcType := 'G';
2382 elsif(g_line_level_action ='DELETE') then
2383 l_Tax_link.GrossAmt := abs(arp_line_amount);
2384 l_Tax_link.InvoiceDate := arp_trx_date;
2385 l_Tax_link.CalcType := 'G';
2386 end if;
2387
2388 elsif(l_document_type in ('APPLIED_CREDIT_MEMO'))then
2389
2393 FROM ZX_LINES_DET_FACTORS zd
2390 BEGIN
2391 SELECT nvl(zd.partner_migrated_flag, 'N') -- Bug 5007293
2392 INTO pg_ugraded_inv_flag_tab(I)
2394 WHERE zd.event_class_mapping_id = pg_adj_doc_doc_type_id_tab(i)
2395 AND zd.trx_id = pg_adj_doc_trx_id_tab(i)
2396 AND zd.trx_line_id = pg_adj_doc_line_id_tab(i)
2397 AND zd.trx_level_type = pg_adj_doc_trx_lev_type_tab(i)
2398 AND EXISTS (SELECT 'Y'
2399 FROM ZX_LINES zl
2400 WHERE zl.application_id = zd.application_id
2401 AND zl.entity_code = zd.entity_code
2402 AND zl.event_class_code = zd.event_class_code
2403 AND zl.trx_id = pg_adj_doc_trx_id_tab(i)
2404 AND zl.trx_line_id = pg_adj_doc_line_id_tab(i)
2405 AND zl.trx_level_type = pg_adj_doc_trx_lev_type_tab(i)
2406 AND zl.tax = 'LOCATION');
2407 EXCEPTION
2408 WHEN OTHERS THEN
2409 pg_ugraded_inv_flag_tab(I) := 'N';
2410 END;
2411
2412 if(g_line_level_action ='CREATE') then
2413 l_Tax_link.GrossAmt := abs(pg_line_amount_tab(I));
2414 l_Tax_link.InvoiceDate := pg_adj_doc_date_tab(I);
2415 l_Tax_link.CalcType := 'G';
2416 elsif(g_line_level_action ='DELETE') then
2417 l_Tax_link.GrossAmt := abs(arp_line_amount);
2418 l_Tax_link.InvoiceDate := arp_adj_doc_date;
2419 l_Tax_link.CalcType := 'G';
2420 end if;
2421 elsif(l_document_type in ('TAX_ONLY_CREDIT_MEMO'))then
2422 if(g_line_level_action ='CREATE') then
2423 l_Tax_link.GrossAmt := 0;
2424 l_Tax_link.InvoiceDate := pg_adj_doc_date_tab(I);
2425 l_Tax_link.TaxAmt := abs(g_StTaxAmt+g_CoTaxAmt+g_CiTaxAmt);
2426 l_Tax_link.StOvAmt := abs(g_StTaxAmt);
2427 l_Tax_link.CnOvAmt := abs(g_CoTaxAmt);
2428 l_Tax_link.LoOvAmt := abs(g_CiTaxAmt);
2429 IF (g_StTaxAmt+g_CoTaxAmt+g_CiTaxAmt>0) THEN
2430 l_tax_link.CreditInd :=FALSE;
2431 l_Tax_link.CalcType := 'T';
2432 ELSIF (g_StTaxAmt+g_CoTaxAmt+g_CiTaxAmt = 0) THEN
2433 l_tax_link.CreditInd :=FALSE;
2434 l_Tax_link.CalcType := 'G';
2435 ELSE
2436 l_tax_link.CreditInd :=TRUE;
2437 l_Tax_link.CalcType := 'E';
2438 END IF;
2439
2440 elsif(g_line_level_action ='DELETE') then
2441 l_Tax_link.GrossAmt := 0;
2442 l_Tax_link.InvoiceDate := arp_adj_doc_date;
2443 l_Tax_link.TaxAmt := abs(g_StTaxAmt+g_CoTaxAmt+g_CiTaxAmt);
2444 l_Tax_link.StOvAmt := abs(g_StTaxAmt);
2445 l_Tax_link.CnOvAmt := abs(g_CoTaxAmt);
2446 l_Tax_link.LoOvAmt := abs(g_CiTaxAmt);
2447 IF (g_StTaxAmt+g_CoTaxAmt+g_CiTaxAmt>0) THEN
2448 l_tax_link.CreditInd :=FALSE;
2449 l_Tax_link.CalcType := 'T';
2450 ELSIF (g_StTaxAmt+g_CoTaxAmt+g_CiTaxAmt = 0) THEN
2451 l_tax_link.CreditInd :=FALSE;
2452 l_Tax_link.CalcType := 'G';
2453 ELSE
2454 l_tax_link.CreditInd :=TRUE;
2455 l_Tax_link.CalcType := 'E';
2456 END IF;
2457
2458 end if;
2459 elsif (l_document_type in ('ADJUSTMENT'))then
2460 if(g_line_level_action ='CREATE') then
2461 l_Tax_link.GrossAmt := 0;
2462 l_Tax_link.InvoiceDate := pg_adj_doc_date_tab(I);
2463 l_Tax_link.CalcType := 'T';
2464 l_Tax_link.TaxAmt := abs(g_StTaxAmt+g_CoTaxAmt+g_CiTaxAmt);
2465 l_Tax_link.StOvAmt := abs(g_StTaxAmt);
2466 l_Tax_link.CnOvAmt := abs(g_CoTaxAmt);
2467 l_Tax_link.LoOvAmt := abs(g_CiTaxAmt);
2468 IF(g_StTaxAmt+g_CoTaxAmt+g_CiTaxAmt<0) then
2469 l_tax_link.CreditInd :=TRUE;
2470 else
2471 l_tax_link.CreditInd :=FALSE;
2472 end if;
2473 elsif(g_line_level_action ='DELETE') then
2474 l_Tax_link.GrossAmt := 0;
2475 l_Tax_link.InvoiceDate := arp_adj_doc_date;
2476 l_Tax_link.CalcType := 'T';
2477 l_Tax_link.TaxAmt := abs(g_StTaxAmt+g_CoTaxAmt+g_CiTaxAmt);
2478 l_Tax_link.StOvAmt := abs(g_StTaxAmt);
2479 l_Tax_link.CnOvAmt := abs(g_CoTaxAmt);
2480 l_Tax_link.LoOvAmt := abs(g_CiTaxAmt);
2481 IF(g_StTaxAmt+g_CoTaxAmt+g_CiTaxAmt>0) then
2482 l_tax_link.CreditInd :=TRUE;
2483 else
2484 l_tax_link.CreditInd :=FALSE;
2485 end if;
2486 end if;
2487 elsif(l_document_type in ('TAX_ONLY_ADJUSTMENT'))then
2488 if(g_line_level_action ='CREATE') then
2489 l_Tax_link.GrossAmt := 0;
2490 l_Tax_link.InvoiceDate := pg_adj_doc_date_tab(I);
2491 l_Tax_link.TaxAmt := abs(g_StTaxAmt+g_CoTaxAmt+g_CiTaxAmt);
2492 l_Tax_link.StOvAmt := abs(g_StTaxAmt);
2493 l_Tax_link.CnOvAmt := abs(g_CoTaxAmt);
2494 l_Tax_link.LoOvAmt := abs(g_CiTaxAmt);
2495 IF (g_StTaxAmt+g_CoTaxAmt+g_CiTaxAmt>0) THEN
2496 l_tax_link.CreditInd :=FALSE;
2497 l_Tax_link.CalcType := 'T';
2498 ELSIF (g_StTaxAmt+g_CoTaxAmt+g_CiTaxAmt = 0) THEN
2499 l_tax_link.CreditInd :=FALSE;
2500 l_Tax_link.CalcType := 'G';
2501 ELSE
2502 l_tax_link.CreditInd :=TRUE;
2503 l_Tax_link.CalcType := 'E';
2504 END IF;
2505
2506 elsif(g_line_level_action ='DELETE') then
2507 l_Tax_link.GrossAmt := 0;
2508 l_Tax_link.InvoiceDate := arp_adj_doc_date;
2509 l_Tax_link.TaxAmt := abs(g_StTaxAmt+g_CoTaxAmt+g_CiTaxAmt);
2510 l_Tax_link.StOvAmt := abs(g_StTaxAmt);
2511 l_Tax_link.CnOvAmt := abs(g_CoTaxAmt);
2512 l_Tax_link.LoOvAmt := abs(g_CiTaxAmt);
2513 IF (g_StTaxAmt+g_CoTaxAmt+g_CiTaxAmt>0) THEN
2514 l_tax_link.CreditInd :=FALSE;
2515 l_Tax_link.CalcType := 'T';
2516 ELSIF (g_StTaxAmt+g_CoTaxAmt+g_CiTaxAmt = 0) THEN
2520 l_tax_link.CreditInd :=TRUE;
2517 l_tax_link.CreditInd :=FALSE;
2518 l_Tax_link.CalcType := 'G';
2519 ELSE
2521 l_Tax_link.CalcType := 'E';
2522 END IF;
2523 end if;
2524 elsif (l_document_type in ('SALES_QUOTE'))then --Bug5927656
2525 if(g_line_level_action ='CREATE') then
2526 l_Tax_link.GrossAmt := abs(pg_line_amount_tab(I));
2527 l_Tax_link.InvoiceDate := pg_trx_date_tab(I);
2528 l_Tax_link.CalcType := 'G';
2529 end if;
2530 end if;
2531
2532 IF (g_tax_SELECTION = ZX_TAX_TAXWARE_GEN.SELPRM_TAXES_ONLY ) THEN
2533 -- Only (primary)Ship To information is required.
2534 l_Tax_link.StateCode := substrb(l_ship_to_code,2,2);
2535 l_Tax_link.PriZip := substrb(l_ship_to_code,4,5);
2536 l_Tax_link.PriGeo := substrb(l_ship_to_code,9,2);
2537 l_Tax_link.InOutCityLimits := NULL; -- future use
2538 ELSE
2539 -- Jurisdiction information including Ship To, Ship From, POO and POA.
2540 -- Use Ship To for Ship From and Ship From for POO and POA if not passed!
2541
2542 l_JurLink.ShipTo.State := substrb(l_ship_to_code,2,2);
2543 l_JurLink.ShipTo.Zip := substrb(l_ship_to_code,4,5);
2544 l_JurLink.ShipTo.Geo := substrb(l_ship_to_code,9,2);
2545 l_JurLink.InOutCiLimShTo := NULL; -- future use
2546
2547 IF (l_ship_from_code =
2548 arp_tax_view_taxware.USE_SHIP_TO ) THEN
2549 l_JurLink.ShipFr.State := substrb(l_ship_to_code,2,2);
2550 l_JurLink.ShipFr.Zip := substrb(l_ship_to_code,4,5);
2551 l_JurLink.ShipFr.Geo := substrb(l_ship_to_code,9,2);
2552 l_JurLink.InOutCiLimShFr := NULL; -- future use
2553 ELSE
2554 l_JurLink.ShipFr.State := substrb(l_ship_from_code,2,2);
2555 l_JurLink.ShipFr.Zip := substrb(l_ship_from_code,4,5);
2556 l_JurLink.ShipFr.Geo := substrb(l_ship_from_code,9,2);
2557 l_JurLink.InOutCiLimShFr := NULL; -- future use
2558 END IF;
2559
2560 IF (l_poo_code =
2561 arp_tax_view_taxware.USE_SHIP_TO) THEN
2562 l_JurLink.POO.State := l_JurLink.ShipFr.State;
2563 l_JurLink.POO.Zip := l_JurLink.ShipFr.Zip;
2564 l_JurLink.POO.Geo := l_JurLink.ShipFr.Geo;
2565 l_JurLink.InOutCiLimPOO := NULL; -- future use
2566 ELSE
2567 l_JurLink.POO.State := substrb(l_poo_code,2,2);
2568 l_JurLink.POO.Zip := substrb(l_poo_code,4,5);
2569 l_JurLink.POO.Geo := substrb(l_poo_code,9,2);
2570 l_JurLink.InOutCiLimPOO := NULL; -- future use
2571 END IF;
2572
2573 IF ( l_poa_code =
2574 arp_tax_view_taxware.USE_SHIP_TO ) THEN
2575 l_JurLink.POA.State := l_JurLink.ShipFr.State;
2576 l_JurLink.POA.Zip := l_JurLink.ShipFr.Zip;
2577 l_JurLink.POA.Geo := l_JurLink.ShipFr.Geo;
2578 l_JurLink.InOutCiLimPOA := NULL; -- future use
2579 ELSE
2580 l_JurLink.POA.State := substrb(l_poa_code,2,2);
2581 l_JurLink.POA.Zip := substrb(l_poa_code,4,5);
2582 l_JurLink.POA.Geo := substrb(l_poa_code,9,2);
2583 l_JurLink.InOutCiLimPOA := NULL; -- future use
2584 END IF;
2585
2586 -- Set Service Indicator , Default to 3(Non Service)
2587 IF l_service_indicator = 1 THEN
2588 l_JurLink.ServInd := SERVICE_IND;
2589 ELSIF l_service_indicator = 2 THEN
2590 l_JurLink.ServInd := RENTAL_IND;
2591 ELSIF l_service_indicator = 3 THEN
2592 l_JurLink.ServInd := NOSERV_IND;
2593 ELSE
2594 l_JurLink.ServInd := NOSERV_IND;
2595 END IF;
2596
2597 --
2598 -- If FOB Point is Destination, Then the Point of Title passage(POT)
2599 -- will be set to POT_DEST. All other values will be set to POT_ORIG.
2600 --
2601
2602 If(g_line_level_action = 'CREATE') then
2603 l_fob_point :=pg_fob_point_tab(I);
2604 else
2605 l_fob_point :=arp_fob_point;
2606 end if;
2607
2608 IF ( substrb(l_fob_point,1,1) = 'D' ) THEN
2609 l_JurLink.POT := ZX_TAX_TAXWARE_GEN.POT_DEST;
2610 ELSE
2611 l_JurLink.POT := ZX_TAX_TAXWARE_GEN.POT_ORIG;
2612 END IF;
2613
2614 END IF;
2615
2616 if(g_line_level_action='CREATE') then
2617 l_use_step :=pg_line_char3_tab(i);
2618 l_step_proc_flag :=pg_line_char7_tab(i);
2619 l_job_no :=pg_line_char16_tab(i);
2620 l_criterion_flag :=pg_line_char19_tab(i);
2621 l_prod_ind :=pg_line_char17_tab(i);
2622 else
2623 l_use_step := use_step;
2624 l_step_proc_flag := step_proc_flag;
2625 l_job_no := arp_vnd_ctrl_exmpt;
2626 l_criterion_flag := crit_flag;
2627 l_prod_ind := arp_use_nexpro;
2628 end if;
2629
2630
2631 If(g_line_level_action='CREATE') then
2632 if(pg_exempt_cont_flag_tab(I)='R') then
2633 l_use_step:='N';
2634 end if;
2635 Else
2636 if(arp_exempt_control_flag='R') then
2637 l_use_step:='N';
2638 end if;
2639 End if;
2640 l_Tax_link.UseStep := l_use_step;
2641 l_Tax_link.StepProcFlg := l_step_proc_flag;
2642 l_Tax_link.JobNo := substrb(l_job_no, 1, 10);
2643 l_Tax_link.CritFlg := l_criterion_flag;
2644 l_Tax_link.UseNexproInd := l_prod_ind;
2645
2646
2647 -- Exempt using No Tax Indicators?
2648 IF ( nvl(substrb(l_calculation_flag,1,1),'0') = '0' AND
2649 nvl(substrb(l_calculation_flag,2,1),'0') = '0' AND
2650 nvl(substrb(l_calculation_flag,3,1),'0') = '0' AND
2651 nvl(substrb(l_calculation_flag,4,1),'0') = '0' AND
2652 nvl(substrb(l_calculation_flag,5,1),'0') = '0' )
2653 THEN
2654
2655 -- Do not exempt at the jurisdiction level
2656 l_Tax_link.StaExempt := FALSE;
2657 l_Tax_link.CnExempt := FALSE;
2661 ELSE
2658 l_Tax_link.LoExempt := FALSE;
2659 l_Tax_link.SecCnExempt := FALSE;
2660 l_Tax_link.SecLoExempt := FALSE;
2662 -- Exempt 100% at the appropriate level
2663 l_Tax_link.NoStaTax :=
2664 nvl(substrb(l_calculation_flag,1,1),'0') = '1';
2665 l_Tax_link.StaExempt :=
2666 nvl(substrb(l_calculation_flag,1,1),'0') = '1';
2667 l_Tax_link.NoCnTax :=
2668 nvl(substrb(l_calculation_flag,2,1),'0') = '1';
2669 l_Tax_link.CnExempt :=
2670 nvl(substrb(l_calculation_flag,2,1),'0') = '1';
2671 l_Tax_link.NoLoTax :=
2672 nvl(substrb(l_calculation_flag,3,1),'0') = '1';
2673 l_Tax_link.LoExempt :=
2674 nvl(substrb(l_calculation_flag,3,1),'0') = '1';
2675 l_Tax_link.NoSecCnTax :=
2676 nvl(substrb(l_calculation_flag,4,1),'0') = '1';
2677 l_Tax_link.SecCnExempt :=
2678 nvl(substrb(l_calculation_flag,4,1),'0') = '1';
2679 l_Tax_link.NoSecLoTax :=
2680 nvl(substrb(l_calculation_flag,5,1),'0') = '1';
2681 l_Tax_link.SecLoExempt :=
2682 nvl(substrb(l_calculation_flag,5,1),'0') = '1';
2683 END IF;
2684
2685 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2686 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2687 'Value of l_state_exempt_reason is :'||l_state_exempt_reason);
2688 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2689 'Value of l_county_exempt_reason is :'||l_county_exempt_reason);
2690 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2691 'Value of l_city_exempt_reason is :'||l_city_exempt_reason);
2692 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2693 'Value of l_sec_county_exempt_reason is :'||l_sec_county_exempt_reason);
2694 END IF;
2695
2696 -- Oracle State level Exemption exists?
2697 IF ( l_state_exempt_reason IS NOT NULL ) THEN
2698
2699 -- Pass Oracle Exemptions info to Taxware
2700 l_Tax_link.StReasonCode := substrb(l_state_exempt_reason,1,2);
2701
2702 /**********************************************************
2703 * commented out, otherwise taxware treats as 100% exempt *
2704 **********************************************************/
2705 --l_Tax_link.StTaxCertNo := substrb(l_state_cert_no, 1, 25);
2706 l_Tax_link.StTaxCertNo := NULL;
2707
2708 IF ( l_state_exempt_percent IS NOT NULL ) THEN
2709
2710 IF ( l_Tax_link.StaExempt = TRUE ) THEN
2711 l_Tax_link.StExemptAmt := 0; -- Use State No Tax Indicator
2712 ELSE
2713 l_Tax_link.StaExempt := TRUE;
2714
2715 IF ( l_state_exempt_percent = 100 ) THEN
2716 l_Tax_link.StExemptAmt := l_Tax_link.GrossAmt;
2717 ELSE
2718 l_Tax_link.StExemptAmt :=
2719 abs(l_Tax_link.GrossAmt*
2720 (l_state_exempt_percent/100)) ;
2721 END IF; -- 100% exemption?
2722
2723 END IF; -- l_Tax_link.Exempt = TRUE, Exempt using No Tax indicator?
2724 END IF; -- % Exemption specified?
2725 END IF; -- Exemption reason specified?
2726
2727
2728 -- Oracle County level Exemption exists?
2729 IF ( l_county_exempt_reason IS NOT NULL ) THEN
2730
2731 -- Pass Oracle Exemptions info to Taxware
2732 l_Tax_link.CntyReasonCode := substrb(l_county_exempt_reason,1,2);
2733
2734 /**********************************************************
2735 * commented out, otherwise taxware treats as 100% exempt *
2736 **********************************************************/
2737 --l_Tax_link.CnTaxCertNo := substrb(l_county_cert_no, 1, 25);
2738 l_Tax_link.CnTaxCertNo := NULL;
2739
2740 IF ( l_county_exempt_percent IS NOT NULL ) THEN
2741
2742 IF ( l_Tax_link.CnExempt = TRUE ) THEN
2743 l_Tax_link.CntyExemptAmt := 0; -- Use County No Tax Indicator
2744 ELSE
2745 l_Tax_link.CnExempt := TRUE;
2746
2747 IF ( l_county_exempt_percent = 100 ) THEN
2748 l_Tax_link.CntyExemptAmt := l_Tax_link.GrossAmt;
2749 ELSE
2750 l_Tax_link.CntyExemptAmt :=
2751 abs(l_Tax_link.GrossAmt *
2752 (l_county_exempt_percent/100));
2753 END IF; -- 100% exemption?
2754
2755 END IF; -- l_Tax_link.Exempt = TRUE, Exempt using No Tax indicator?
2756 END IF; -- % Exemption specified?
2757 END IF; -- Exemption reason specified?
2758
2759 -- Oracle City level Exemption exists?
2760 IF ( l_city_exempt_reason IS NOT NULL ) THEN
2761
2762 -- Pass Oracle Exemptions info to Taxware
2763 l_Tax_link.CityReasonCode := substrb(l_city_exempt_reason,1,2);
2764
2765 /**********************************************************
2766 * commented out, otherwise taxware treats as 100% exempt *
2767 **********************************************************/
2768 --l_Tax_link.LoTaxCertNo := substrb(l_city_cert_no, 1, 25);
2769 l_Tax_link.LoTaxCertNo := NULL;
2770
2771 IF ( l_city_exempt_percent IS NOT NULL ) THEN
2772
2773 IF ( l_Tax_link.LoExempt = TRUE ) THEN
2774 l_Tax_link.CityExemptAmt := 0; -- Use County No Tax Indicator
2775 ELSE
2776 l_Tax_link.LoExempt := TRUE;
2777
2778 IF ( l_city_exempt_percent = 100 ) THEN
2779 l_Tax_link.CityExemptAmt := l_Tax_link.GrossAmt;
2780 ELSE
2781 l_Tax_link.CityExemptAmt :=
2782 abs(l_Tax_link.GrossAmt *
2783 (l_city_exempt_percent/100));
2784 END IF; -- 100% exemption?
2785
2786 END IF; -- l_Tax_link.Exempt = TRUE, Exempt using No Tax indicator?
2790 -- Oracle Secondary County level Exemption exists?
2787 END IF; -- % Exemption specified?
2788 END IF; -- Exemption reason specified?
2789
2791 -- Secondary County exemptions do not require Reason Code and Certificate
2792 IF ( l_sec_county_exempt_reason IS NOT NULL OR
2793 l_Tax_link.SecCnExempt ) THEN
2794
2795 IF ( l_sec_county_exempt_percent IS NOT NULL ) THEN
2796
2797 IF ( l_Tax_link.SecCnExempt = TRUE ) THEN
2798 l_Tax_link.SecCnExemptAmt := 0; -- Use Sec County No Tax Indicator
2799 ELSE
2800 l_Tax_link.SecCnExempt := TRUE;
2801
2802 IF ( l_sec_county_exempt_percent = 100 ) THEN
2803 l_Tax_link.SecCnExemptAmt := l_Tax_link.GrossAmt;
2804 ELSE
2805 l_Tax_link.SecCnExemptAmt :=
2806 abs(l_Tax_link.GrossAmt *
2807 (l_sec_county_exempt_percent/100));
2808 END IF; -- 100% exemption?
2809
2810 END IF; -- l_Tax_link.Exempt = TRUE, Exempt using No Tax indicator?
2811 END IF; -- % Exemption specified?
2812 END IF; -- Exemption reason specified?
2813
2814 -- Oracle Secondary City level Exemption exists?
2815 -- Secondary City exemptions do not require Reason Code and Certificate
2816 IF ( l_sec_city_exempt_reason IS NOT NULL OR
2817 l_Tax_link.SecLoExempt ) THEN
2818
2819 IF ( l_sec_city_exempt_percent IS NOT NULL ) THEN
2820
2821 IF ( l_Tax_link.SecLoExempt = TRUE ) THEN
2822 l_Tax_link.SecLoExemptAmt := 0; -- Use Sec City No Tax Indicator
2823 ELSE
2824 l_Tax_link.SecLoExempt := TRUE;
2825
2826 IF ( l_sec_city_exempt_percent = 100 ) THEN
2827 l_Tax_link.SecLoExemptAmt := l_Tax_link.GrossAmt;
2828 ELSE
2829 l_Tax_link.SecLoExemptAmt :=
2830 abs(l_Tax_link.GrossAmt *
2831 (l_sec_city_exempt_percent/100));
2832 END IF; -- 100% exemption?
2833
2834 END IF; -- l_Tax_link.Exempt = TRUE, Exempt using No Tax indicator?
2835 END IF; -- % Exemption specified?
2836 END IF; -- Exemption reason specified?
2837 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2838 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
2839 END IF;
2840 Return TRUE;
2841 EXCEPTION
2842 When OTHERS then
2843 IF (g_level_exception >= g_current_runtime_level ) THEN
2844 FND_LOG.STRING(g_level_exception,G_PKG_NAME||'.'||l_api_name,
2845 'Failed in setting the parameters');
2846 FND_LOG.STRING(g_level_exception,G_PKG_NAME||'.'||l_api_name,
2847 'Error is :'||sqlcode || sqlerrm);
2848 END IF;
2849 Return FALSE;
2850 END ;--SET_PARMETERS;
2851
2852 Function CALCULATE_TAX (
2853 l_TaxLink IN OUT NOCOPY zx_tax_taxware_GEN.TaxParm,
2854 l_JurLink IN OUT NOCOPY zx_tax_taxware_GEN.JurParm,
2855 l_OraLink IN OUT NOCOPY zx_tax_taxware_GEN.t_OraParm ) return boolean is
2856
2857 Tax_Success BOOLEAN;
2858 Valid_Err BOOLEAN;
2859 return_code boolean;
2860
2861 l_api_name CONSTANT VARCHAR2(30) := 'CALCULATE_TAX';
2862 BEGIN
2863 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2864 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
2865 END IF;
2866 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2867 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2868 'Calling Taxware ZX_TAX_TAXWARE_010.Taxfn_Tax010');
2869 END IF;
2870
2871 BEGIN
2872
2873 Tax_Success := ZX_TAX_TAXWARE_010.Taxfn_Tax010(l_OraLink,
2874 l_TaxLink,
2875 g_tax_selection,
2876 l_JurLink);
2877 EXCEPTION
2878 WHEN OTHERS THEN
2879 IF (g_level_exception >= g_current_runtime_level ) THEN
2880 FND_LOG.STRING(g_level_exception,G_PKG_NAME||'.'||l_api_name,
2881 'Taxware raised unexpected error:'||sqlerrm);
2882 END IF;
2883 stack_error('GENERIC_MESSAGE', 'GENERIC_TEXT',
2884 'Taxware raised unexpected error: '||
2885 sqlcode||':'||sqlerrm,null,null);
2886 RETURN FALSE;
2887 END;
2888 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2889 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2890 '-- calculate()... after ZX_TAX_TAXWARE_010.Taxfn_Tax010() '||to_char(sysdate, 'DD-MON-RR HH24:MI:SS'));
2891 END IF;
2892
2893 /*-------------------------------------------------------------+
2894 | If Tax Calculated in error, Handle error. |
2895 +-------------------------------------------------------------*/
2896 IF NOT Tax_Success THEN
2897 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2898 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2899 '-- calculate()... Tax vendor error.');
2900 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2901 '-- calculate()... before ZX_TAX_TAXWARE_010.Taxfn910_ValidErr()');
2902 END IF;
2903 BEGIN
2904 Valid_Err := ZX_TAX_TAXWARE_010.Taxfn910_ValidErr(l_TaxLink.GenCmplCd);
2905 EXCEPTION
2906 WHEN OTHERS THEN
2907 IF (g_level_exception >= g_current_runtime_level ) THEN
2908 FND_LOG.STRING(g_level_exception,G_PKG_NAME||'.'||l_api_name,
2909 'Taxware raised unexpected error during error checking:'||sqlerrm);
2910 END IF;
2911 stack_error('GENERIC_MESSAGE', 'GENERIC_TEXT',
2912 'Taxware raised unexpected error during error checking: '||
2913 sqlcode||':'||sqlerrm,null,null);
2914 RETURN FALSE;
2915 END;
2916 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2917 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2918 'Calling Get_Vendor_Error');
2919 END IF;
2920
2921 Get_Vendor_Error(g_tax_selection,
2922 l_TaxLink,
2923 l_JurLink);
2924 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2925 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2926 'After Calling Get_Vendor_Error');
2927 END IF;
2928
2929 return_code := False;
2930
2931 ELSE
2932 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2933 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2934 '-- calculate()... Tax vendor success.');
2935 END IF;
2936
2937 return_code := TRUE;
2938 END IF;
2939
2940 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2941 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'()+');
2942 END IF;
2943
2944 RETURN ( return_code );
2945
2946 End;
2947
2948 PROCEDURE TAX_RESULTS_PROCESSING(
2949 p_tax_lines_tbl OUT NOCOPY ZX_TAX_PARTNER_PKG.tax_lines_tbl_type,
2950 p_currency_tab IN OUT NOCOPY ZX_TAX_PARTNER_PKG.tax_currencies_tbl_type,
2951 l_TaxLink IN OUT NOCOPY zx_tax_taxware_GEN.TaxParm,
2952 l_JurLink IN OUT NOCOPY zx_tax_taxware_GEN.JurParm,
2953 l_OraLink IN OUT NOCOPY zx_tax_taxware_GEN.t_OraParm,
2954 x_return_status OUT NOCOPY VARCHAR2) IS
2955 J number;
2956 x_tax_jurisdiction_code ZX_JURISDICTIONS_B.tax_jurisdiction_code%type;
2957 p_location_id NUMBER;
2958 l_regime_code ZX_REGIMES_B.tax_regime_code%type;
2959 state_tax_rate NUMBER; -- state tax rate in %
2960 state_tax_amount NUMBER; -- state tax amount
2961 county_tax_rate NUMBER; -- county tax rate in %
2962 county_tax_amount NUMBER; -- county tax amount
2963 city_tax_rate NUMBER; -- city tax rate in %
2964 city_tax_amount NUMBER; -- city tax amount
2965 dist_tax_rate NUMBER; -- district tax rate in %
2966 dist_tax_amount NUMBER; -- district tax amounts
2967 sec_state_tax_rate NUMBER; -- secondary state tax rate in %
2968 sec_state_tax_amount NUMBER; -- secondary state tax amount
2969 sec_county_tax_rate NUMBER; -- secondary county tax rate
2970 sec_county_tax_amount NUMBER; -- secondary county tax amount
2971 sec_city_tax_rate NUMBER; -- secondary city tax rate
2972 sec_city_tax_amount NUMBER; -- secondary city tax amount
2973 l_situs VARCHAR2(20);
2974 sign_flag number;
2975 l_api_name CONSTANT VARCHAR2(30) := 'TAX_RESULTS_PROCESSING';
2976 l_return_status VARCHAR2(30);
2977 ind NUMBER;
2978 Begin
2979
2980 x_return_status := FND_API.G_RET_STS_SUCCESS;
2981
2982 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2983 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
2984 END IF;
2985
2986 l_regime_code := zx_tax_partner_pkg.g_tax_regime_code;
2987
2988 IF l_JurLink.JurLocType = 'T' THEN
2989 l_situs := 'SHIP_TO';
2990 ELSIF l_JurLink.JurLocType = 'F' AND pg_line_char10_tab(i) <> arp_tax_view_taxware.USE_SHIP_TO THEN
2991 l_situs := 'SHIP_FROM';
2992 ELSIF l_JurLink.JurLocType = 'A' THEN
2993 IF pg_line_char11_tab(i) <> arp_tax_view_taxware.USE_SHIP_TO THEN
2994 l_situs := 'POA';
2995 ELSIF pg_line_char10_tab(i) <> arp_tax_view_taxware.USE_SHIP_TO THEN
2996 l_situs := 'SHIP_FROM';
2997 ELSE
2998 l_situs := 'SHIP_TO';
2999 END IF;
3000 ELSIF l_JurLink.JurLocType = 'O' THEN
3001 IF pg_line_char20_tab(i) <> arp_tax_view_taxware.USE_SHIP_TO THEN
3002 l_situs := 'POO';
3003 ELSIF pg_line_char10_tab(i) <> arp_tax_view_taxware.USE_SHIP_TO THEN
3004 l_situs := 'SHIP_FROM';
3005 ELSE
3006 l_situs := 'SHIP_TO';
3007 END IF;
3008 ELSIF l_JurLink.JurLocType = 'B' THEN
3009 l_situs := 'BILL_TO';
3010 ELSE
3011 l_situs := 'SHIP_TO';
3012 END IF;
3013
3014 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3015 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME,'Situs: '||l_situs);
3016 END IF;
3017
3018 IF l_situs = 'SHIP_TO' THEN
3019 /* Bug 5090593: Making use of the location ids passed thru view.
3020 select nvl(ship_to_location_id, bill_to_location_id)
3021 INTO p_location_id
3022 From zx_lines_det_factors
3023 WHERE
3024 event_class_mapping_id = pg_doc_type_id_tab(I) and
3025 trx_id = pg_trx_id_tab(I) and
3026 trx_line_id = pg_trx_line_id_tab(I) and
3027 trx_level_type = pg_trx_level_type_tab(I);
3028 */
3029 p_location_id := nvl(pg_ship_to_loc_id_tab(I), pg_bill_to_loc_id_tab(I));
3030 ELSIF l_situs = 'SHIP_FROM' THEN
3031 /* Bug 5090593: Making use of the location ids passed thru view.
3032 select nvl(ship_from_location_id, bill_from_location_id)
3033 INTO p_location_id
3034 From zx_lines_det_factors
3035 WHERE
3036 event_class_mapping_id = pg_doc_type_id_tab(I) and
3037 trx_id = pg_trx_id_tab(I) and
3038 trx_line_id = pg_trx_line_id_tab(I) and
3039 trx_level_type = pg_trx_level_type_tab(I);
3040 */
3041 p_location_id := nvl(pg_ship_fr_loc_id_tab(I), pg_bill_fr_loc_id_tab(I));
3042 ELSIF l_situs = 'POA' THEN
3043 p_location_id := pg_poa_loc_id_tab(I);
3044 ELSIF l_situs = 'POO' THEN
3045 p_location_id := pg_poo_loc_id_tab(I);
3046 ELSIF l_situs = 'BILL_TO' THEN
3047 p_location_id := nvl(pg_bill_to_loc_id_tab(I), pg_ship_to_loc_id_tab(I));
3048 END IF;
3049
3050 IF ( l_TaxLink.CreditInd ) THEN
3051 sign_flag:=-1;
3052 Else sign_flag:=1;
3053 End if;
3054
3055 p_currency_tab(1).tax_currency_precision := 2; -- Bug 5288518
3056 /*-----------------------------------------------------------
3057 | Populate Tax Amounts and Rates |
3058 -----------------------------------------------------------*/
3059 /* State tax rate */
3060 state_tax_rate := l_TaxLink.StaTxRate * 100;
3061 /* State tax amount */
3062 state_tax_amount := sign_flag*l_TaxLink.StaTxAmt;
3063 /* County tax rate */
3064 county_tax_rate := l_TaxLink.CnTxRate * 100;
3065 /* County tax amount */
3066 county_tax_amount := sign_flag*l_TaxLink.CnTxAmt;
3067 /* City tax Rate */
3068 city_tax_rate := l_TaxLink.LoTxRate * 100;
3069 /* City tax amount */
3070 city_tax_amount := sign_flag*l_TaxLink.LoTxAmt;
3071 /* Secondary State tax rate */
3072 sec_state_tax_rate := l_TaxLink.ScStTxRate * 100;
3073 /* secondary state tax amount */
3074 sec_state_tax_amount := sign_flag*l_TaxLink.ScStTxAmt;
3075 /* Secondary county Rate */
3076 sec_county_tax_rate := l_TaxLink.ScCnTxRate * 100;
3077 /* Secondary County tax amount */
3078 sec_county_tax_amount := sign_flag*l_TaxLink.ScCnTxAmt;
3079 /* Secondary City tax Rate */
3080 sec_city_tax_rate := l_TaxLink.ScLoTxRate * 100;
3081 /* secondary City tax amount */
3082 sec_city_tax_amount := sign_flag*l_TaxLink.ScLoTxAmt;
3083
3084
3085 IF pg_ugraded_inv_flag_tab(I) = 'Y' THEN
3086 p_tax_lines_tbl.document_type_id(i) := pg_doc_type_id_tab(I);
3087 p_tax_lines_tbl.transaction_id(i) := pg_trx_id_tab(I);
3088 p_tax_lines_tbl.transaction_line_id(i) := pg_trx_line_id_tab(I);
3089 p_tax_lines_tbl.trx_level_type(i) := pg_trx_level_type_tab(I);
3090 p_tax_lines_tbl.country_code(i) := l_regime_code ;
3091 p_tax_lines_tbl.situs(i) := l_situs;
3092 p_tax_lines_tbl.tax_currency_code(i) := p_currency_tab(1).tax_currency_code;
3093 p_tax_lines_tbl.Inclusive_tax_line_flag(i) := 'N';
3094 p_tax_lines_tbl.Line_amt_includes_tax_flag(i) := 'N';
3095 p_tax_lines_tbl.use_tax_flag(i) := 'N';
3096 p_tax_lines_tbl.User_override_flag(i) := 'N'; -- Need to see if different for override_tax
3097 p_tax_lines_tbl.last_manual_entry(i) := NULL;
3098 p_tax_lines_tbl.manually_entered_flag(i) := 'N'; -- Need to see if different for override_tax
3102 p_tax_lines_tbl.threshold_indicator_flag(i) := Null;
3099 p_tax_lines_tbl.registration_party_type(i) := NULL; -- Bug 5288518
3100 p_tax_lines_tbl.party_tax_reg_number(i) := NULL; -- Bug 5288518
3101 p_tax_lines_tbl.third_party_tax_reg_number(i) := NULL;
3103 p_tax_lines_tbl.State(i) := l_JurLink.JurState;
3104 p_tax_lines_tbl.County(i) := NULL;
3105 p_tax_lines_tbl.City(i) := l_JurLink.JurCity;
3106 p_tax_lines_tbl.tax_only_line_flag(i) := 'N';
3107 p_tax_lines_tbl.Tax(i) := 'LOCATION';
3108 p_tax_lines_tbl.tax_amount(i) := (state_tax_amount+sec_state_tax_amount)
3109 + (county_tax_amount +sec_county_tax_amount)
3110 + (city_tax_amount +sec_city_tax_amount);
3111 --added them
3112 p_tax_lines_tbl.unrounded_tax_amount(i) := (state_tax_amount+sec_state_tax_amount)
3113 + (county_tax_amount +sec_county_tax_amount)
3114 + (city_tax_amount +sec_city_tax_amount);
3115 p_tax_lines_tbl.tax_curr_tax_amount(i) := p_tax_lines_tbl.tax_amount(i) * p_currency_tab(1).exchange_rate;
3116 p_tax_lines_tbl.tax_rate_percentage(i) := (state_tax_rate+sec_state_tax_rate)
3117 + (county_tax_rate +sec_county_tax_rate)
3118 + (city_tax_rate +sec_city_tax_rate);
3119
3120 p_tax_lines_tbl.taxable_amount(i) := sign_flag * l_TaxLink.StBasisAmt;
3121
3122 p_tax_lines_tbl.tax_jurisdiction(i) := NULL;
3123 -- Can alternatively call GET_TAX_JUR_CODE for tax = 'CITY' (lowest level jurisdiction)
3124
3125 p_tax_lines_tbl.global_attribute_category(i) := 'TAXWARE';
3126 p_tax_lines_tbl.global_attribute2(i) := to_char((state_tax_amount+sec_state_tax_amount));
3127 p_tax_lines_tbl.global_attribute4(i) := to_char((county_tax_amount +sec_county_tax_amount));
3128 p_tax_lines_tbl.global_attribute6(i) := to_char((city_tax_amount +sec_city_tax_amount));
3129
3130
3131 p_tax_lines_tbl.exempt_reason(i) :=l_TaxLink.StReasonCode;
3132
3133 IF (NVL(l_TaxLink.StExemptAmt, 0) + NVL(l_TaxLink.CntyExemptAmt, 0)
3134 + NVL(l_TaxLink.CityExemptAmt, 0)) <> 0 THEN
3135 IF (l_TaxLink.GrossAmt <> 0) then
3136 p_tax_lines_tbl.exempt_rate_modifier(i) := (l_TaxLink.StExemptAmt +
3137 l_TaxLink.CntyExemptAmt +
3138 l_TaxLink.CityExemptAmt)/
3139 l_TaxLink.GrossAmt;
3140 p_tax_lines_tbl.exempt_certificate_number(i) := NVL(l_state_cert_no,NVL(l_TaxLink.StTaxCertNo,
3141 NVL(l_TaxLink.CnTaxCertNo,l_TaxLink.LoTaxCertNo)));
3142 ELSE
3143 p_tax_lines_tbl.exempt_rate_modifier(i) := 0;
3144 p_tax_lines_tbl.exempt_certificate_number(i) := NULL;
3145 END IF;
3146 ELSE
3147 p_tax_lines_tbl.exempt_rate_modifier(i) := 0;
3148 p_tax_lines_tbl.exempt_certificate_number(i) := NULL;
3149 END IF;
3150
3151 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3152 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'tax line output ');
3153 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.document_type_id('||ind||') = '|| to_char(p_tax_lines_tbl.document_type_id(ind)));
3154 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.transaction_id('||ind||') = '|| to_char(p_tax_lines_tbl.transaction_id(ind)));
3155 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.transaction_line_id('||ind||') = '||
3156 to_char(p_tax_lines_tbl.transaction_line_id(ind)));
3157 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.trx_level_type('||ind||') = '||
3158 p_tax_lines_tbl.trx_level_type(ind));
3159 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.country_code('||ind||') = '|| p_tax_lines_tbl.country_code(ind));
3160 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.Tax('||ind||') = '|| p_tax_lines_tbl.Tax(ind));
3161 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.situs('||ind||') = '|| p_tax_lines_tbl.situs(ind));
3162 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' p_tax_lines_tbl.tax_jurisdiction('||ind||') = '||
3163 p_tax_lines_tbl.tax_jurisdiction(ind));
3164 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.tax_currency_code('||ind||') = '|| p_tax_lines_tbl.tax_currency_code(ind));
3165 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' p_tax_lines_tbl.TAX_CURR_TAX_AMOUNT('||ind||') = '||
3166 to_char(p_tax_lines_tbl.TAX_CURR_TAX_AMOUNT(ind)));
3167 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' p_tax_lines_tbl.tax_amount('||ind||') = '|| to_char(p_tax_lines_tbl.tax_amount(ind)));
3168 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' p_tax_lines_tbl.tax_rate_percentage('||ind||') = '||
3169 to_char(p_tax_lines_tbl.tax_rate_percentage(ind)));
3170 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' p_tax_lines_tbl.taxable_amount('||ind||') = '||
3171 to_char(p_tax_lines_tbl.taxable_amount(ind)));
3172 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.State('||ind||') = '|| p_tax_lines_tbl.State(ind));
3173 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.County('||ind||') = '|| p_tax_lines_tbl.County(ind));
3174 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.City('||ind||') = '|| p_tax_lines_tbl.City(ind));
3175 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' p_tax_lines_tbl.unrounded_tax_amount('||ind||') = '||
3176 to_char(p_tax_lines_tbl.unrounded_tax_amount(ind)));
3177 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' p_tax_lines_tbl.exempt_certificate_number('||ind||') = '||
3178 p_tax_lines_tbl.exempt_certificate_number(ind));
3179 --bug7140895
3180 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.global_attribute_category('||ind||') = '|| p_tax_lines_tbl.global_attribute_category(ind));
3181 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.global_attribute2('||ind||') = '|| p_tax_lines_tbl.global_attribute2(ind));
3182 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.global_attribute4('||ind||') = '|| p_tax_lines_tbl.global_attribute4(ind));
3183 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.global_attribute6('||ind||') = '|| p_tax_lines_tbl.global_attribute6(ind));
3184 END IF;
3185
3186 ELSE
3187 For J in 1..3
3188 loop
3189 ind:=j+(3*i-3);
3190 p_tax_lines_tbl.document_type_id(ind) := pg_doc_type_id_tab(I);
3191 p_tax_lines_tbl.transaction_id(ind) := pg_trx_id_tab(I);
3192 p_tax_lines_tbl.transaction_line_id(ind) := pg_trx_line_id_tab(I);
3193 p_tax_lines_tbl.trx_level_type(ind) := pg_trx_level_type_tab(I);
3194 p_tax_lines_tbl.country_code(ind) := l_regime_code;
3195 p_tax_lines_tbl.tax_currency_code(ind) := p_currency_tab(1).tax_currency_code;
3196 p_tax_lines_tbl.situs(ind) := l_situs;
3197 p_tax_lines_tbl.State(ind) := l_JurLink.JurState;
3198 p_tax_lines_tbl.County(ind) := null; /*Need to check what should be the value for this*/
3199 p_tax_lines_tbl.City(ind) := l_JurLink.JurCity ;
3200 p_tax_lines_tbl.Inclusive_tax_line_flag(ind) := 'N';
3201 p_tax_lines_tbl.Line_amt_includes_tax_flag(ind) := 'N';
3202 p_tax_lines_tbl.use_tax_flag(ind) := 'N';
3203 p_tax_lines_tbl.User_override_flag(ind) := 'N'; -- Need to see if different for override_tax
3204 p_tax_lines_tbl.last_manual_entry(ind) := NULL;
3205 p_tax_lines_tbl.manually_entered_flag(ind) := 'N'; -- Need to see if different for override_tax
3206 p_tax_lines_tbl.registration_party_type(ind) := Null; -- Bug 5288518
3207 p_tax_lines_tbl.party_tax_reg_number(ind) := Null; -- Bug 5288518
3208 p_tax_lines_tbl.Third_party_tax_reg_number(ind) := Null;
3209 p_tax_lines_tbl.threshold_indicator_flag(ind) := Null;
3210 p_tax_lines_tbl.tax_only_line_flag(ind) := 'N';
3211 --bug7140895
3212 p_tax_lines_tbl.global_attribute_category(ind) := 'TAXWARE';
3213 p_tax_lines_tbl.global_attribute2(ind) := null;
3214 p_tax_lines_tbl.global_attribute4(ind) := null;
3215 p_tax_lines_tbl.global_attribute6(ind) := null;
3216
3217 IF J=1 then /*Case for State*/
3218 p_tax_lines_tbl.Tax(ind) := 'STATE';
3219 p_tax_lines_tbl.tax_amount(ind) := state_tax_amount+sec_state_tax_amount;
3220 p_tax_lines_tbl.unrounded_tax_amount(ind) := state_tax_amount+sec_state_tax_amount;
3221 p_tax_lines_tbl.TAX_CURR_TAX_AMOUNT(ind) := p_tax_lines_tbl.tax_amount(ind)*p_currency_tab(1).exchange_rate;
3222 p_tax_lines_tbl.tax_rate_percentage(ind) := state_tax_rate+sec_state_tax_rate;
3223 p_tax_lines_tbl.taxable_amount(ind) := sign_flag * l_TaxLink.StBasisAmt;
3224 IF (l_TaxLink.StExemptAmt<>0) THEN
3225 if (l_TaxLink.GrossAmt<>0) then
3226 p_tax_lines_tbl.exempt_rate_modifier(ind) := l_TaxLink.StExemptAmt/l_TaxLink.GrossAmt;
3227 p_tax_lines_tbl.exempt_certificate_number(ind) := NVL(l_state_cert_no,l_TaxLink.StTaxCertNo);
3228 else
3229 p_tax_lines_tbl.exempt_rate_modifier(ind) := 0;
3230 p_tax_lines_tbl.exempt_certificate_number(ind) := NULL;
3231 end if;
3232 ELSE
3233 p_tax_lines_tbl.exempt_rate_modifier(ind) := 0;
3234 p_tax_lines_tbl.exempt_certificate_number(ind) := NULL;
3235 END IF;
3236 p_tax_lines_tbl.exempt_reason(ind) :=l_TaxLink.StReasonCode;
3237 ELSIF J=2 then
3238 p_tax_lines_tbl.Tax(ind) := 'COUNTY';
3239 p_tax_lines_tbl.tax_amount(ind) :=county_tax_amount +sec_county_tax_amount;
3240 p_tax_lines_tbl.unrounded_tax_amount(ind) := county_tax_amount +sec_county_tax_amount;
3241 p_tax_lines_tbl.TAX_CURR_TAX_AMOUNT(ind) := p_tax_lines_tbl.tax_amount(ind) *p_currency_tab(1).exchange_rate;
3242 p_tax_lines_tbl.tax_rate_percentage(ind) := county_tax_rate +sec_county_tax_rate ;
3243 p_tax_lines_tbl.taxable_amount(ind) := sign_flag * l_TaxLink.CntyBasisAmt;
3244 IF (l_TaxLink.CntyExemptAmt<>0) THEN
3245 if (l_TaxLink.GrossAmt<>0) then
3246 p_tax_lines_tbl.exempt_rate_modifier(ind) := l_TaxLink.CntyExemptAmt/l_TaxLink.GrossAmt;
3247 p_tax_lines_tbl.exempt_certificate_number(ind) := NVL(l_county_cert_no,l_TaxLink.CnTaxCertNo);
3248 else
3249 p_tax_lines_tbl.exempt_rate_modifier(ind) := 0;
3250 p_tax_lines_tbl.exempt_certificate_number(ind) := NULL;
3251 end if;
3252 ELSE
3253 p_tax_lines_tbl.exempt_rate_modifier(ind) := 0;
3254 p_tax_lines_tbl.exempt_certificate_number(ind) := NULL;
3255 END IF;
3256 p_tax_lines_tbl.exempt_reason(ind) :=l_TaxLink.CntyReasonCode;
3257 ELSIF J=3 then
3258
3259 p_tax_lines_tbl.Tax(ind) := 'CITY';
3260 p_tax_lines_tbl.tax_amount(ind) := (city_tax_amount +sec_city_tax_amount);
3261 p_tax_lines_tbl.unrounded_tax_amount(ind) := city_tax_amount +sec_city_tax_amount ;
3262 p_tax_lines_tbl.tax_curr_tax_amount(ind) := p_tax_lines_tbl.unrounded_tax_amount(ind)*p_currency_tab(1).exchange_rate;
3263 p_tax_lines_tbl.tax_rate_percentage(ind) := city_tax_rate +sec_city_tax_rate;
3264 p_tax_lines_tbl.taxable_amount(ind) := sign_flag * l_TaxLink.CityBasisAmt;
3265 IF (l_TaxLink.CityExemptAmt<>0) THEN
3266 if (l_TaxLink.GrossAmt<>0) then
3267 p_tax_lines_tbl.exempt_rate_modifier(ind) := l_TaxLink.CityExemptAmt/l_TaxLink.GrossAmt;
3268 p_tax_lines_tbl.exempt_certificate_number(ind) := NVL(l_city_cert_no,l_TaxLink.LoTaxCertNo);
3269 else
3270 p_tax_lines_tbl.exempt_rate_modifier(ind) := 0;
3271 p_tax_lines_tbl.exempt_certificate_number(ind) := NULL;
3272 end if;
3273 ELSE
3274 p_tax_lines_tbl.exempt_rate_modifier(ind) := 0;
3275 p_tax_lines_tbl.exempt_certificate_number(ind) := NULL;
3276 END IF;
3277 p_tax_lines_tbl.exempt_reason(ind) :=l_TaxLink.CityReasonCode;
3278 else null;
3279 END IF;
3280 GET_TAX_JUR_CODE (p_location_id ,
3281 p_tax_lines_tbl.Situs(ind) ,
3282 p_tax_lines_tbl.Tax(ind) ,
3283 l_regime_code ,
3284 pg_trx_date_tab(I) ,
3285 x_tax_jurisdiction_code ,
3286 l_return_status
3287 );
3288
3289 p_tax_lines_tbl.tax_jurisdiction(ind) := x_tax_jurisdiction_code;
3290 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3291 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'tax line output ');
3292 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.document_type_id('||ind||') = '|| to_char(p_tax_lines_tbl.document_type_id(ind)));
3293 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.transaction_id('||ind||') = '|| to_char(p_tax_lines_tbl.transaction_id(ind)));
3294 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.transaction_line_id('||ind||') = '||
3295 to_char(p_tax_lines_tbl.transaction_line_id(ind)));
3296 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.trx_level_type('||ind||') = '||
3297 p_tax_lines_tbl.trx_level_type(ind));
3298 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.country_code('||ind||') = '|| p_tax_lines_tbl.country_code(ind));
3299 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.Tax('||ind||') = '|| p_tax_lines_tbl.Tax(ind));
3300 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.situs('||ind||') = '|| p_tax_lines_tbl.situs(ind));
3301 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' p_tax_lines_tbl.tax_jurisdiction('||ind||') = '||
3302 p_tax_lines_tbl.tax_jurisdiction(ind));
3303 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.tax_currency_code('||ind||') = '|| p_tax_lines_tbl.tax_currency_code(ind));
3304 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' p_tax_lines_tbl.TAX_CURR_TAX_AMOUNT('||ind||') = '||
3305 to_char(p_tax_lines_tbl.TAX_CURR_TAX_AMOUNT(ind)));
3306 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' p_tax_lines_tbl.tax_amount('||ind||') = '|| to_char(p_tax_lines_tbl.tax_amount(ind)));
3307 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' p_tax_lines_tbl.tax_rate_percentage('||ind||') = '||
3308 to_char(p_tax_lines_tbl.tax_rate_percentage(ind)));
3309 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' p_tax_lines_tbl.taxable_amount('||ind||') = '||
3310 to_char(p_tax_lines_tbl.taxable_amount(ind)));
3311 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.State('||ind||') = '|| p_tax_lines_tbl.State(ind));
3312 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.County('||ind||') = '|| p_tax_lines_tbl.County(ind));
3313 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.City('||ind||') = '|| p_tax_lines_tbl.City(ind));
3314 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' p_tax_lines_tbl.unrounded_tax_amount('||ind||') = '||
3315 to_char(p_tax_lines_tbl.unrounded_tax_amount(ind)));
3316 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' p_tax_lines_tbl.exempt_certificate_number('||ind||') = '||
3317 p_tax_lines_tbl.exempt_certificate_number(ind));
3318 --bug7140895
3319 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.global_attribute_category('||ind||') = '|| p_tax_lines_tbl.global_attribute_category(ind));
3320 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.global_attribute2('||ind||') = '|| p_tax_lines_tbl.global_attribute2(ind));
3321 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.global_attribute4('||ind||') = '|| p_tax_lines_tbl.global_attribute4(ind));
3322 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.global_attribute6('||ind||') = '|| p_tax_lines_tbl.global_attribute6(ind));
3323 END IF;
3324 END LOOP;
3325 END IF;
3326
3327 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3328 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'()+');
3329 END IF;
3330 end;
3331
3332 PROCEDURE stack_error (
3333 p_msgname IN VARCHAR2,
3334 p_token1 IN VARCHAR2 ,
3335 p_value1 IN VARCHAR2 ,
3336 p_token2 IN VARCHAR2 ,
3337 p_value2 IN VARCHAR2 ) IS
3338 l_api_name CONSTANT VARCHAR2(100) := 'STACK_ERROR';
3339
3340 BEGIN
3341 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3342 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
3343 END IF;
3344 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3345 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
3346 '-- P_MSGNAME = '||p_msgname);
3347 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
3348 '-- P_TOKEN1 = '||p_token1);
3349 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
3350 '-- P_VALUE1 = '||p_value1);
3351 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
3352 '-- P_TOKEN2 = '||p_token2);
3353 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
3354 '-- P_VALUE2 = '||p_value2);
3355 END IF;
3356
3357 error_exception_handle(p_value1||p_value2);
3358
3359
3360 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3361 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'()-');
3362 END IF;
3363
3364 END stack_error;
3365
3366 PROCEDURE Get_Vendor_Error (
3367 tax_selection IN ZX_TAX_TAXWARE_GEN.SELPARMTYP%TYPE,
3368 errTaxParm IN ZX_TAX_TAXWARE_GEN.TaxParm,
3369 errJurParm IN ZX_TAX_TAXWARE_GEN.JurParm ) IS
3370
3371 error_location VARCHAR2(30);
3372 error_mesg VARCHAR2(200);
3373 vdr_return_code char(2);
3374
3375 Jur_error BOOLEAN := FALSE;
3376 Calc_error BOOLEAN := FALSE;
3377 l_api_name CONSTANT VARCHAR2(100) := 'GET_VENDOR_ERROR';
3378 BEGIN
3379 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3380 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
3381 END IF;
3382 IF ( tax_selection IN
3383 (zx_tax_taxware_GEN.SELPRM_JUR_ONLY, zx_tax_taxware_GEN.SELPRM_TAX_JUR) ) THEN
3384
3385 -- Check for Jurisdiction errors
3386 IF ( errJurParm.ReturnCode <> zx_tax_taxware_GEN.JURSUCCESS ) THEN
3387
3388 Jur_Error := TRUE;
3389
3390 IF errJurParm.ReturnCode = zx_tax_taxware_GEN.JURINVPOT THEN
3391 error_mesg := JGMSG_JURINVPOT;
3392 ELSIF errJurParm.ReturnCode = zx_tax_taxware_GEN.JURINVSRVIN THEN
3393 error_mesg := JGMSG_JURINVSRVIN;
3394 ELSIF errJurParm.ReturnCode = zx_tax_taxware_GEN.JURERROR THEN
3395
3396 -- Determine Jurisdiction Error Location
3397 IF errJurParm.POOJurRC <> to_char(0) THEN
3398 vdr_return_code := errJurParm.POOJurRC;
3399 error_location := 'POO';
3400 ELSIF errJurParm.POAJurRC <> to_char(0) THEN
3401 vdr_return_code := errJurParm.POAJurRC;
3402 error_location := 'POA';
3403 ELSIF errJurParm.ShpToJurRC <> to_char(0) THEN
3404 vdr_return_code := errJurParm.ShpToJurRC;
3405 error_location := 'SHIP-TO';
3406 ELSIF errJurParm.ShpFrJurRC <> to_char(0) THEN
3407 vdr_return_code := errJurParm.ShpFrJurRC;
3408 error_location := 'SHIP-FROM';
3409 ELSE
3410 error_mesg := JGMSG_JURERROR;
3411 END IF;
3412
3413 -- Determine type of Jurisdiction error for Location
3414 IF vdr_return_code IS NOT NULL THEN
3415
3416 -- Check vdr_return_code
3417 IF vdr_return_code = to_char(zx_tax_taxware_GEN.LOCCNTYDEF) THEN
3418 error_mesg := error_location||' : '||JMSG_LOCCNTYDEF;
3419 ELSIF vdr_return_code = to_char(zx_tax_taxware_GEN.LOCINVSTATE) THEN
3420 error_mesg := error_location||' : '||JMSG_LOCINVSTATE;
3421 ELSIF vdr_return_code = to_char(zx_tax_taxware_GEN.LOCNOZIP) THEN
3422 error_mesg := error_location||' : '||JMSG_LOCNOZIP;
3423 ELSIF vdr_return_code = to_char(zx_tax_taxware_GEN.LOCINVZIP) THEN
3424 error_mesg := error_location||' : '||JMSG_LOCINVZIP;
3425 ELSIF vdr_return_code = to_char(zx_tax_taxware_GEN.LOCNOGEO) THEN
3426 -- Same as LOCNOCITY
3427 error_mesg := error_location||' : '||JMSG_LOCNOGEO;
3428 ELSIF vdr_return_code = to_char(zx_tax_taxware_GEN.LOCINVCITY) THEN
3429 error_mesg := error_location||' : '||JMSG_LOCINVCITY;
3430 ELSE
3431 error_mesg := JMSG_UNKNOWN;
3432 END IF; -- check vdr_return_code
3433
3434 END IF; -- vdr_return_code NOT NULL?
3435
3436 END IF; -- zx_tax_taxware_GEN.JURERROR?
3437
3438 END IF; -- Not JURSUCCESS?
3439
3440 ELSIF ( NOT Jur_Error AND
3441 tax_selection IN
3442 (zx_tax_taxware_GEN.SELPRM_TAXES_ONLY, zx_tax_taxware_GEN.SELPRM_TAX_JUR) ) THEN
3443
3444 -- Check for Calculation errors
3445 IF ( nvl(errTaxParm.GenCmplCd,0) <> zx_tax_taxware_GEN.SUCCESSCC ) THEN
3446
3447 Calc_Error := TRUE;
3448
3449 IF errTaxParm.GenCmplCd = zx_tax_taxware_GEN.INVALIDZIP THEN
3450 error_mesg := TGMSG_INVALIDZIP;
3451 ELSIF errTaxParm.GenCmplCd = zx_tax_taxware_GEN.INVALIDST THEN
3452 error_mesg := TGMSG_INVALIDST;
3453 ELSIF errTaxParm.GenCmplCd = zx_tax_taxware_GEN.INVALIDGRS THEN
3454 error_mesg := TGMSG_INVALIDGRS;
3455 ELSIF errTaxParm.GenCmplCd = zx_tax_taxware_GEN.INVALIDTAXAMT THEN
3456 error_mesg := TGMSG_INVALIDTAXAMT;
3457 ELSIF errTaxParm.GenCmplCd = zx_tax_taxware_GEN.GENINVZIPST THEN
3458 error_mesg := TGMSG_GENINVZIPST;
3459 ELSIF errTaxParm.GenCmplCd = zx_tax_taxware_GEN.INVCALCTYP THEN
3460 error_mesg := TGMSG_INVCALCTYP;
3461 ELSIF errTaxParm.GenCmplCd = zx_tax_taxware_GEN.PRDACCESSERR THEN
3462 error_mesg := TGMSG_PRDACCESSERR;
3463 ELSIF errTaxParm.GenCmplCd = zx_tax_taxware_GEN.RATEISZERO THEN
3464 error_mesg := TGMSG_RATEISZERO;
3465 ELSIF errTaxParm.GenCmplCd = zx_tax_taxware_GEN.NEGFIELDS THEN
3466 error_mesg := TGMSG_NEGFIELDS;
3467 ELSIF errTaxParm.GenCmplCd = zx_tax_taxware_GEN.AUDACCESSERR THEN
3468 error_mesg := TGMSG_AUDACCESSERR;
3469 ELSIF errTaxParm.GenCmplCd = zx_tax_taxware_GEN.INVCALCERR THEN
3470 error_mesg := TGMSG_INVCALCERR;
3471 ELSIF errTaxParm.GenCmplCd = zx_tax_taxware_GEN.STEPNOCUSTERR THEN
3472 error_mesg := TGMSG_STEPNOCUSTERR;
3473 ELSIF errTaxParm.GenCmplCd = zx_tax_taxware_GEN.NOSTEPPROC THEN
3474 error_mesg := TGMSG_NOSTEPPROC;
3475 ELSIF errTaxParm.GenCmplCd = zx_tax_taxware_GEN.STEPPARAMERR THEN
3476 error_mesg := TGMSG_STEPPARAMERR;
3477 ELSIF errTaxParm.GenCmplCd = zx_tax_taxware_GEN.STEPMISCERR THEN
3478 error_mesg := TGMSG_STEPMISCERR;
3479 ELSIF errTaxParm.GenCmplCd = zx_tax_taxware_GEN.CERRACCESSERR THEN
3480 error_mesg := TGMSG_CERRACCESSERR;
3481 ELSIF errTaxParm.GenCmplCd = zx_tax_taxware_GEN.JERRACCESSERR THEN
3482 error_mesg := TGMSG_JERRACCESSERR;
3483 ELSIF errTaxParm.GenCmplCd = zx_tax_taxware_GEN.INVJURERR THEN
3484 error_mesg := TGMSG_INVJURERR;
3485 ELSIF errTaxParm.GenCmplCd = zx_tax_taxware_GEN.INVJURERR THEN
3486 error_mesg := TGMSG_INVJURERR;
3487 ELSIF errTaxParm.GenCmplCd = zx_tax_taxware_GEN.INVJURPROC THEN
3488 error_mesg := TGMSG_INVJURPROC;
3489 ELSIF errTaxParm.GenCmplCd = zx_tax_taxware_GEN.INVSELPARM THEN
3490 error_mesg := TGMSG_INVSELPARM;
3491 ELSIF errTaxParm.GenCmplCd = zx_tax_taxware_GEN.JURISERROR THEN
3492 error_mesg := TGMSG_JURISERROR;
3493 ELSIF errTaxParm.GenCmplCd = zx_tax_taxware_GEN.PRDINVALID4CU THEN
3494 error_mesg := TGMSG_PRDINVALID4CU;
3495 ELSIF errTaxParm.GenCmplCd = zx_tax_taxware_GEN.CONUSEFILEERR THEN
3496 error_mesg := TGMSG_CONUSEFILEERR;
3497 ELSIF errTaxParm.GenCmplCd = zx_tax_taxware_GEN.CALC_E_ERROR THEN
3498 error_mesg := TGMSG_CALC_E_ERROR;
3499 ELSIF errTaxParm.GenCmplCd = zx_tax_taxware_GEN.EXEMPTLGRGROSS THEN
3500 error_mesg := TGMSG_EXEMPTLGRGROSS;
3501 ELSIF errTaxParm.GenCmplCd = zx_tax_taxware_GEN.AMOUNTOVERFLOW THEN
3502 error_mesg := TGMSG_AMOUNTOVERFLOW;
3503 ELSIF errTaxParm.GenCmplCd = zx_tax_taxware_GEN.PRODCDCONVNOTFOUND THEN
3504 error_mesg := TGMSG_PRODCDCONVNOTFOUND;
3505 ELSE
3506 error_mesg := TGMSG_UNKNOWN||' Return Code = '||errTaxParm.GenCmplCd;
3507 END IF;
3508
3509 END IF; -- GenCmplCd <> SUCESSSCC?
3510
3511 END IF; -- Tax Selection type
3512
3513 IF ( Jur_Error OR Calc_Error ) THEN
3514 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3515 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
3516 '-- ERROR MESSAGE = '||error_mesg);
3517 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
3518 'CALLING STACK_ERROR');
3519 END IF;
3520
3521 stack_error('GENERIC_MESSAGE', 'GENERIC_TEXT',
3522 'Taxware Error : '||error_mesg,null,null);
3523 ELSE
3524 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3525 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
3526 'CALLING STACK_ERROR');
3527 END IF;
3528 stack_error('GENERIC_MESSAGE', 'GENERIC_TEXT',
3529 'Taxware Errror: Taxfn_Tax010 returned FALSE and GenCmplCd = '||
3530 errTaxParm.GenCmplCd,null,null);
3531 END IF;
3532
3533 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3534 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'()+');
3535 END IF;
3536 END Get_Vendor_Error;
3537
3538
3539 PROCEDURE ERROR_EXCEPTION_HANDLE(P_ERROR_STRING varchar2) is
3540
3541 cursor error_exception_cursor is
3542 select EVNT_CLS_MAPPING_ID,
3543 TRX_ID,
3544 TAX_REGIME_CODE
3545 from ZX_TRX_PRE_PROC_OPTIONS_GT;
3546
3547 Begin
3548 If (g_docment_type_id is null) then
3549 open error_exception_cursor;
3550 fetch error_exception_cursor
3551 into g_docment_type_id,
3552 g_trasaction_id,
3553 g_tax_regime_code;
3554
3555 close error_exception_cursor;
3556
3557 end if;
3558
3559
3560 G_MESSAGES_TBL.DOCUMENT_TYPE_ID(err_count) := g_docment_type_id;
3561 G_MESSAGES_TBL.TRANSACTION_ID(err_count) := g_trasaction_id;
3562 G_MESSAGES_TBL.COUNTRY_CODE(err_count) := g_tax_regime_code;
3563 G_MESSAGES_TBL.TRANSACTION_LINE_ID(err_count) := g_transaction_line_id;
3564 G_MESSAGES_TBL.TRX_LEVEL_TYPE(err_count) := g_trx_level_type;
3565 G_MESSAGES_TBL.ERROR_MESSAGE_TYPE(err_count) := 'ERROR';
3566 G_MESSAGES_TBL.ERROR_MESSAGE_STRING(err_count) := p_error_string;
3567
3568 err_count :=err_count+1;
3569
3570 End ERROR_EXCEPTION_HANDLE;
3571
3572 PROCEDURE initialize IS
3573 l_synonym_name user_synonyms.synonym_name%TYPE;
3574 l_table_owner varchar2(20);
3575 l_table_name varchar2(20);
3576 l_column_name varchar2(20);
3577 l_column_position number;
3578 l_no_index boolean;
3579
3580 CURSOR taxware_index(p_table_name in VARCHAR2, p_table_owner in VARCHAR2) is
3581 select column_name, column_position
3582 from all_ind_columns
3583 where table_name = p_table_name and table_owner = p_table_owner;
3584
3585 l_api_name CONSTANT VARCHAR2(100) := 'INITIALIZE';
3586 BEGIN
3587
3588
3589 l_synonym_name := 'ZX_TAX_TAXWARE_AUDIT_HEADER';
3590
3591
3592 BEGIN
3593 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3594 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
3595 END IF;
3596 SELECT table_owner, table_name into l_table_owner, l_table_name
3597 FROM user_synonyms
3598 WHERE synonym_name = l_synonym_name;
3599 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3600 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
3601 'table_owner :'|| l_table_owner);
3602 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
3603 'table_name :'|| l_table_name);
3604 END IF;
3605
3606 open taxware_index(l_table_name, l_table_owner);
3607 LOOP
3608 fetch taxware_index into l_column_name, l_column_position;
3609
3610 if taxware_index%notfound then
3611 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3612 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
3613 'No index on ZX_TAX_TAXWARE_AUDIT_HEADER.ORACLEID.');
3614 END IF;
3615 l_no_index := TRUE;
3616 exit;
3617 end if;
3618
3619 if upper(l_column_name) = 'ORACLEID' and nvl(l_column_position, 1) = 1 then
3620 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3621 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
3622 'Indexed on ZX_TAX_TAXWARE_AUDIT_HEADER.ORACLEID.');
3623 END IF;
3624 l_no_index := FALSE;
3625 exit;
3626 end if;
3627 END LOOP;
3628 close taxware_index;
3629
3630 EXCEPTION
3631 WHEN NO_DATA_FOUND then
3632 IF (g_level_exception >= g_current_runtime_level ) THEN
3633 FND_LOG.STRING(g_level_exception,G_PKG_NAME||'.'||l_api_name,
3634 'ZX_TAX_TAXWARE.INITIALIZE: NO_DATA_FOUND');
3635 END IF;
3636 l_no_index := TRUE;
3637
3638 WHEN OTHERS then
3639 IF (g_level_exception >= g_current_runtime_level ) THEN
3640 FND_LOG.STRING(g_level_exception,G_PKG_NAME||'.'||l_api_name,
3641 'ZX_TAX_TAXWARE.INITIALIZE: OTHERS');
3642 END IF;
3643
3644 l_no_index := TRUE;
3645 END;
3646
3647
3648 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3649 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'()+');
3650 END IF;
3651
3652 EXCEPTION
3653 when OTHERS then
3654 IF (g_level_exception >= g_current_runtime_level ) THEN
3655 FND_LOG.STRING(g_level_exception,G_PKG_NAME||'.'||l_api_name,
3656 'EXCEPTION(OTHERS): ZX_TAX_TAXWARE.initialize()');
3657 END IF;
3658 RAISE;
3659 END initialize;
3660
3661 PROCEDURE CREATE_TAX_LINE(
3662 p_tax in varchar2,
3663 p_amount in number,
3664 x_return_status OUT NOCOPY VARCHAR2) IS
3665
3666 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_TAX_LINE';
3667 l_return_Status VARCHAR2(30);
3668 return_code boolean;
3669 l_TaxLink ZX_TAX_TAXWARE_GEN.TaxParm;
3670 l_JurLink ZX_TAX_TAXWARE_GEN.JurParm;
3671 l_OraLink ZX_TAX_TAXWARE_GEN.t_OraParm;
3672 input_param_flag boolean;
3673 l_precision number;
3674 l_mau number;
3675 l_rounding_rule varchar2(30);
3676 l_error_buffer varchar2(200);
3677 BEGIN
3678 x_return_status := FND_API.G_RET_STS_SUCCESS;
3679
3680 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3681 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
3682 END IF;
3683
3684 /* For Tax only Credit Memo and Tax only adjustment, user does not enter the
3685 tax lines manually. Instead, the tax lines are calculated/prorated by eBTax.
3686 The number of tax lines for the trx line can be known.
3687 Hence, we can consoliate all the tax lines and make 1 call to Vertex engine.
3688 The ELSE clause of this IF statement handles the manually entered tax lines.
3689 */
3690 IF l_document_type in ('TAX_ONLY_CREDIT_MEMO'
3691 ,'TAX_ONLY_ADJUSTMENT') THEN
3692
3693 g_line_level_action:='CREATE';
3694
3695 IF (p_tax='STATE') THEN
3696 g_StTaxAmt := p_amount;
3697 ELSIF (p_tax='COUNTY') THEN
3698 g_CoTaxAmt := p_amount;
3699 ELSIF (p_tax='CITY') THEN
3700 g_CiTaxAmt := p_amount;
3701 ELSIF (p_tax='LOCATION') THEN
3702 BEGIN
3703 SELECT global_attribute2, global_attribute4, global_attribute6, tax_amt,
3704 precision, minimum_accountable_unit, rounding_rule_code
3705 INTO g_StTaxAmt, g_CoTaxAmt, g_CiTaxAmt, g_TotalTaxAmt,
3706 l_precision, l_mau, l_rounding_rule
3707 FROM zx_lines
3708 WHERE application_id = NVL2(pg_adj_doc_doc_type_id_tab(I),222, NULL)
3709 AND entity_code = NVL2(pg_adj_doc_doc_type_id_tab(I),'TRANSACTIONS',NULL)
3710 AND event_class_code = decode(pg_adj_doc_doc_type_id_tab(I), 4, 'INVOICE',
3711 5, 'DEBIT_MEMO',
3712 6, 'CREDIT_MEMO', null)
3713 AND trx_id = NVL2(pg_adj_doc_doc_type_id_tab(I),pg_adj_doc_trx_id_tab(I), NULL)
3714 AND trx_line_id = NVL2(pg_adj_doc_doc_type_id_tab(I),pg_adj_doc_line_id_tab(I), NULL)
3715 AND trx_level_type = NVL2(pg_adj_doc_doc_type_id_tab(I),pg_adj_doc_trx_lev_type_tab(I), NULL);
3716 EXCEPTION
3717 WHEN OTHERS THEN
3718 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
3719 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,
3720 'Error occured while fetching amounts from Adjusted Doc. '||SQLERRM);
3721 END IF;
3722 g_StTaxAmt := 0;
3723 g_CoTaxAmt := 0;
3724 g_CiTaxAmt := 0;
3725 END;
3726
3727 IF g_TotalTaxAmt = 0 THEN
3728 g_StTaxAmt := 0;
3729 g_CoTaxAmt := 0;
3730 g_CiTaxAmt := 0;
3731 ELSE
3732 g_StTaxAmt := g_StTaxAmt * (p_amount/ g_TotalTaxAmt);
3733 g_CoTaxAmt := g_CoTaxAmt * (p_amount/ g_TotalTaxAmt);
3734 g_CiTaxAmt := g_CiTaxAmt * (p_amount/ g_TotalTaxAmt);
3735 g_TotalTaxAmt := p_amount;
3736 END IF;
3737
3738 g_StTaxAmt := ZX_TDS_TAX_ROUNDING_PKG.round_tax(g_StTaxAmt,
3739 l_rounding_rule,
3740 l_mau,
3741 l_precision,
3742 x_return_status,
3743 l_error_buffer
3744 );
3745 g_CoTaxAmt := ZX_TDS_TAX_ROUNDING_PKG.round_tax(g_CoTaxAmt,
3746 l_rounding_rule,
3747 l_mau,
3748 l_precision,
3749 x_return_status,
3750 l_error_buffer
3751 );
3752 g_CiTaxAmt := p_amount - (g_StTaxAmt + g_CoTaxAmt);
3753 END IF;
3754
3755 IF NOT l_trx_line_context_changed THEN
3756 RETURN;
3757 END IF;
3758
3759 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3760 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
3761 'Encountered the last tax line for the trx line.');
3762 END IF;
3763
3764 ELSE
3765
3766 IF l_document_type IN ('TAX_ONLY_INVOICE') THEN
3767 g_line_level_action:='CREATE';
3768 ELSE
3769 g_line_level_action:='DELETE';
3770 l_document_type := 'TAX_LINE_SYNC';
3771 END IF;
3772
3773 IF (p_tax='STATE') THEN
3774 g_TotalTaxAmt := p_amount;
3775 g_StTaxAmt := p_amount;
3776 g_CoTaxAmt := 0;
3777 g_CiTaxAmt := 0;
3778 ELSIF (p_tax='COUNTY') THEN
3779 g_TotalTaxAmt := p_amount;
3780 g_StTaxAmt := 0;
3781 g_CoTaxAmt := p_amount;
3782 g_CiTaxAmt := 0;
3783 ELSIF (p_tax='CITY') THEN
3784 g_TotalTaxAmt := p_amount;
3785 g_StTaxAmt := 0;
3786 g_CoTaxAmt := 0;
3787 g_CiTaxAmt := p_amount;
3788 ELSIF (p_tax='LOCATION') THEN
3789 g_TotalTaxAmt := p_amount;
3790 g_StTaxAmt := 0;
3791 g_CoTaxAmt := 0;
3792 g_CiTaxAmt := 0;
3793 /* Ideally, we should implement g_StTaxAmt := p_amount * GA_2 / (GA_2 + GA_4 + GA_6)
3794 g_CoTaxAmt := p_amount * GA_4 / (GA_2 + GA_4 + GA_6)
3795 g_CiTaxAmt := p_amount * GA_6 / (GA_2 + GA_4 + GA_6)
3796 With above implementation we are relying on Vertex to distribute amounts */
3797 END IF;
3798
3799 END IF;
3800
3801 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3802 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax : '||p_tax );
3803 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_amount : '||p_amount);
3804 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'g_StTaxAmt : '||g_StTaxAmt);
3805 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'g_CoTaxAmt : '||g_CoTaxAmt);
3806 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'g_CiTaxAmt : '||g_CiTaxAmt);
3807 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'g_TotalTaxAmt : '||g_TotalTaxAmt);
3808 END IF;
3809
3810
3811 return_code := Set_Parameters(l_TaxLink, l_JurLink, l_OraLink);
3812 input_param_flag := TRUE;
3813 dump_vendor_rec(l_TaxLink, l_JurLink, l_OraLink,input_param_flag);
3814 if(return_code = TRUE) then
3815 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3816 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Calling CALCULATE_TAX procedure' );
3817 END IF;
3818
3819 return_code := calculate_tax(l_TaxLink, l_JurLink, l_OraLink);
3820 input_param_flag := FALSE;
3821 dump_vendor_rec(l_TaxLink, l_JurLink, l_OraLink,input_param_flag);
3822 IF (return_code = FALSE) then
3823 x_return_status := FND_API.G_RET_STS_ERROR; --13533328
3824 g_string :='Failed in CALCULATE_TAX procedure';
3825 error_exception_handle(g_string);
3826 return;
3827 END IF;
3828 else
3829 x_return_status := FND_API.G_RET_STS_ERROR;
3830 g_string :='Failed in SET_PRAMETERS procedure';
3831 error_exception_handle(g_string);
3832 return;
3833 end if;
3834
3835
3836 g_StTaxAmt:= 0;
3837 g_CoTaxAmt:= 0;
3838 g_CiTaxAmt:= 0;
3839 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3840 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'(-)');
3841 END IF;
3842
3843 EXCEPTION
3844 WHEN OTHERS THEN
3845 l_error_buffer := SUBSTRB(SQLERRM,1,200);
3846 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
3847 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name||'.ERROR',l_error_buffer);
3848 END IF;
3849 RAISE;
3850 END CREATE_TAX_LINE;
3851
3852 Procedure get_doc_and_ext_att_info(p_evnt_cls_mapping_id IN ZX_EVNT_CLS_MAPPINGS.event_class_mapping_id%type,
3853 p_transaction_id IN ZX_LINES.trx_id%type,
3854 p_transaction_line_id IN ZX_LINES.trx_line_id%type,
3855 p_trx_level_type IN ZX_LINES.trx_level_type%type,
3856 p_regime_code IN ZX_LINES.tax_regime_code%type,
3857 p_tax_provider_id IN ZX_LINES.tax_provider_id%type,
3858 x_return_status OUT NOCOPY VARCHAR2 ) is
3859
3860 trx_line_dist_tbl ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl%type;
3861 event_class_rec ZX_API_PUB.event_class_rec_type;
3862 l_return_status varchar2(30);
3863 l_APPLICATION_ID number;
3864 l_ENTITY_CODE varchar2(20);
3865 l_EVENT_CLASS_CODE varchar2(20);
3866 l_TRX_ID number;
3867 l_TRX_LINE_ID number;
3868 l_TRX_LEVEL_TYPE varchar2(20);
3869
3870 l_api_name CONSTANT VARCHAR2(30) := 'GET_DOC_AND_EXT_ATT_INFO';
3871 Begin
3872 x_return_status := FND_API.G_RET_STS_SUCCESS;
3873
3874 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3875 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
3876 END IF;
3877
3878 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3879 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_transaction_id : '||p_transaction_id );
3880 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_transaction_line_id : '||p_transaction_line_id);
3881 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_regime_code : '||p_regime_code);
3882 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_provider_id : '||p_tax_provider_id);
3883 END IF;
3884
3885 Begin
3886 select
3887 APPLICATION_ID,
3888 ENTITY_CODE ,
3889 EVENT_CLASS_CODE,
3890 TRX_ID ,
3891 TRX_LINE_ID,
3892 TRX_LEVEL_TYPE
3893 into
3894 l_APPLICATION_ID,
3895 l_ENTITY_CODE ,
3896 l_EVENT_CLASS_CODE,
3897 l_TRX_ID ,
3898 l_TRX_LINE_ID,
3899 l_TRX_LEVEL_TYPE
3900 From zx_lines_det_factors
3901 where
3902 event_class_mapping_id = p_evnt_cls_mapping_id
3903 AND trx_id = p_transaction_id
3904 AND trx_line_id = p_transaction_line_id
3905 AND trx_level_type = p_trx_level_type;
3906
3907 Exception
3908 When no_data_found then
3909 IF (g_level_exception >= g_current_runtime_level ) THEN
3910 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
3911 End if;
3912 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3913 g_string :='No data found in zx_lines_det_factors ';
3914 error_exception_handle(g_string);
3915 return;
3916 End;
3917
3918
3919 trx_line_dist_tbl.application_id(1) :=l_APPLICATION_ID;
3920 trx_line_dist_tbl.TRX_LINE_ID(1) :=l_TRX_LINE_ID;
3921 trx_line_dist_tbl.TRX_LEVEL_TYPE(1) :=l_TRX_LEVEL_TYPE;
3922
3923 event_class_rec.APPLICATION_ID :=l_APPLICATION_ID;
3924 event_class_rec.ENTITY_CODE :=l_ENTITY_CODE;
3925 event_class_rec.EVENT_CLASS_CODE :=l_EVENT_CLASS_CODE;
3926 event_class_rec.TRX_ID :=l_TRX_ID;
3927 --event_class_rec.TRX_LINE_ID :=l_TRX_LINE_ID;
3928
3929
3930 zx_r11i_tax_partner_pkg.copy_trx_line_for_ptnr_bef_upd
3931 (p_trx_line_dist_tbl => trx_line_dist_tbl,
3932 p_event_class_rec => event_class_rec,
3933 p_update_index => 1,
3934 p_trx_copy_for_tax_update => 'N' ,
3935 p_regime_code => p_regime_code,
3936 p_tax_provider_id => p_tax_provider_id,
3937 x_return_status => l_return_status);
3938
3939 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3940 IF (g_level_exception >= g_current_runtime_level ) THEN
3941 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
3942 END IF;
3943 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3944 g_string :='Not able to copy the line information :Failed with an exception';
3945 error_exception_handle(g_string);
3946 return;
3947 END IF;
3948 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3949 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'(-)');
3950 END IF;
3951
3952 END get_doc_and_ext_att_info;
3953
3954 Function CHECK_IN_CACHE(p_internal_organization_id number,
3955 P_document_type_id number,
3956 p_transaction_id number,
3957 p_transaction_line_id number) return boolean is
3958
3959 l_index number;
3960 l_api_name CONSTANT VARCHAR2(30) := 'CHECK_IN_CACHE';
3961 Begin
3962
3963 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3964 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
3965 END IF;
3966
3967 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3968 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'P_INTERNAL_ORGANIZATION_ID : ' || p_internal_organization_id );
3969 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'P_DOCUMENT_TYPE_ID : '|| P_document_type_id);
3970 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'P_TRANSACTION_ID : '|| p_transaction_id);
3971 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'P_TRANSACTION_LINE_ID : '|| p_transaction_line_id);
3972 END IF;
3973
3974 For l_index in 1 .. cache_index loop
3975 if(cache_table(l_index).internal_organization_id = p_internal_organization_id and
3976 cache_table(l_index).document_type_id = P_document_type_id and
3977 cache_table(l_index).transaction_id = p_transaction_id and
3978 cache_table(l_index).transaction_line_id = p_transaction_line_id) then
3979
3980 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3981 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Found in the Cache' );
3982 END IF;
3983
3984 Return TRUE;
3985 end if;
3986 end loop;
3987 cache_index :=cache_index+1;
3988 cache_table(cache_index).internal_organization_id := p_internal_organization_id;
3992
3989 cache_table(cache_index).document_type_id := P_document_type_id;
3990 cache_table(cache_index).transaction_id := p_transaction_id;
3991 cache_table(cache_index).transaction_line_id := p_transaction_line_id;
3993 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3994 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Not Found in the Cache' );
3995 END IF;
3996
3997 return FALSE;
3998
3999 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4000 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'(-)');
4001 END IF;
4002 End Check_in_cache;
4003
4004 PROCEDURE POPULATE_SYNC_TAX_AMTS(p_sync_tax_cnt IN NUMBER
4005 , p_tax IN zx_lines.tax%type
4006 , x_output_sync_tax_lines OUT NOCOPY zx_tax_partner_pkg.output_sync_tax_lines_tbl_type
4007 , x_return_status OUT NOCOPY VARCHAR2) IS
4008
4009 l_api_name CONSTANT VARCHAR2(30) := 'POPULATE_SYNC_TAX_AMTS';
4010
4011 BEGIN
4012 x_return_status := FND_API.G_RET_STS_SUCCESS;
4013
4014 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4015 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
4016 END IF;
4017
4018 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4019 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_sync_tax_cnt : '||p_sync_tax_cnt);
4020 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax : '||p_tax);
4021 END IF;
4022
4023 /* For Tax only Credit Memo and Tax only adjustment, we consoliate all the tax lines and make 1 call to Vertex engine.
4024 The output is available at the end of the processing of the last tax line.
4025 l_trx_line_context_changed indicates that the tax line being processed is the last tax line for the trx line.
4026 */
4027 IF l_document_type in ('TAX_ONLY_CREDIT_MEMO'
4028 ,'TAX_ONLY_ADJUSTMENT') THEN
4029 IF (p_tax = 'STATE') THEN
4030 l_state_tax_cnt := p_sync_tax_cnt;
4031 ELSIF(p_tax = 'COUNTY') THEN
4032 l_county_tax_cnt := p_sync_tax_cnt;
4033 ELSIF(p_tax = 'CITY') THEN
4034 l_city_tax_cnt := p_sync_tax_cnt;
4035 END IF;
4036 IF l_trx_line_context_changed THEN
4037 IF l_state_tax_cnt IS NOT NULL THEN
4038 -- x_output_sync_tax_lines(l_state_tax_cnt).TAX_RATE_PERCENTAGE := l_TaxLink.StaTxRate*100;
4039 -- x_output_sync_tax_lines(l_state_tax_cnt).TAXABLE_AMOUNT := l_TaxLink.StBasisAmt;
4040 null;
4041 END IF;
4042 IF l_county_tax_cnt IS NOT NULL THEN
4043 -- x_output_sync_tax_lines(l_county_tax_cnt).TAX_RATE_PERCENTAGE := l_TaxLink.CnTxRate *100;
4044 -- x_output_sync_tax_lines(l_county_tax_cnt).TAXABLE_AMOUNT := l_TaxLink.CntyBasisAmt;
4045 null;
4046 END IF;
4047 IF l_city_tax_cnt IS NOT NULL THEN
4048 -- x_output_sync_tax_lines(l_city_tax_cnt).TAX_RATE_PERCENTAGE := l_TaxLink.LoTxRate*100;
4049 -- x_output_sync_tax_lines(l_city_tax_cnt).TAXABLE_AMOUNT := l_TaxLink.CityBasisAmt;
4050 null;
4051 END IF;
4052 l_state_tax_cnt := null;
4053 l_county_tax_cnt := null;
4054 l_city_tax_cnt := null;
4055 ELSE
4056 RETURN;
4057 END IF;
4058 ELSE
4059 IF (p_tax = 'STATE') THEN
4060 -- x_output_sync_tax_lines(p_sync_tax_cnt).TAX_RATE_PERCENTAGE := l_TaxLink.StaTxRate*100;
4061 --x_output_sync_tax_lines(p_sync_tax_cnt).TAXABLE_AMOUNT := l_TaxLink.StBasisAmt;
4062 null;
4063 ELSIF(p_tax = 'COUNTY') THEN
4064 -- x_output_sync_tax_lines(p_sync_tax_cnt).TAX_RATE_PERCENTAGE := l_TaxLink.CnTxRate *100;
4065 -- x_output_sync_tax_lines(p_sync_tax_cnt).TAXABLE_AMOUNT := l_TaxLink.CntyBasisAmt;
4066 null;
4067 ELSIF(p_tax = 'CITY') THEN
4068 -- x_output_sync_tax_lines(p_sync_tax_cnt).TAX_RATE_PERCENTAGE := l_TaxLink.LoTxRate*100;
4069 -- x_output_sync_tax_lines(p_sync_tax_cnt).TAXABLE_AMOUNT := l_TaxLink.CityBasisAmt;
4070 null;
4071 END IF;
4072 END IF;
4073
4074 END POPULATE_SYNC_TAX_AMTS;
4075
4076
4077 Procedure SYNCHRONIZE_TAXWARE_REPOSITORY
4078 (x_output_sync_tax_lines OUT NOCOPY zx_tax_partner_pkg.output_sync_tax_lines_tbl_type,
4079 x_return_status OUT NOCOPY varchar2,
4080 x_messages_tbl OUT NOCOPY ZX_TAX_PARTNER_PKG.messages_tbl_type) is
4081 l_api_name CONSTANT VARCHAR2(100) := 'SYNCHRONIZE_TAXWARE_REPOSITORY';
4082 CURSOR TAX_LINES_TO_BE_PROCESSED is
4083 SELECT
4084 DOCUMENT_TYPE_ID ,
4085 TRANSACTION_ID ,
4086 TRANSACTION_LINE_ID ,
4087 TRX_LEVEL_TYPE ,
4088 COUNTRY_CODE ,
4089 TAX ,
4090 SITUS ,
4091 TAX_JURISDICTION ,
4092 TAX_CURRENCY_CODE ,
4093 TAX_AMOUNT ,
4094 TAX_CURR_TAX_AMT ,
4095 TAX_RATE_PERCENTAGE ,
4096 TAXABLE_AMOUNT ,
4097 EXEMPT_RATE_MODIFIER ,
4098 EXEMPT_REASON ,
4099 TAX_ONLY_LINE_FLAG ,
4100 INCLUSIVE_TAX_LINE_FLAG ,
4101 USE_TAX_FLAG ,
4102 EBIZ_OVERRIDE_FLAG ,
4103 USER_OVERRIDE_FLAG ,
4104 LAST_MANUAL_ENTRY ,
4105 MANUALLY_ENTERED_FLAG ,
4106 CANCEL_FLAG ,
4107 DELETE_FLAG
4108 FROM ZX_SYNC_TAX_LINES_INPUT_V
4109 ORDER BY DOCUMENT_TYPE_ID,
4110 TRANSACTION_ID,
4111 TRANSACTION_LINE_ID,
4112 TRX_LEVEL_TYPE;
4113
4114
4115 SYNC_TAX_LINES SYNC_TAX_LINES_TBL;
4116 l_internal_organization_id ZX_SYNC_HDR_INPUT_V.internal_organization_id%type;
4117 l_document_type_id ZX_SYNC_HDR_INPUT_V.document_type_id%type;
4118 l_transaction_id ZX_SYNC_HDR_INPUT_V.transaction_id%type;
4119 l_legal_entity_number ZX_SYNC_HDR_INPUT_V.legal_entity_number%type;
4120 l_establishment_number ZX_SYNC_HDR_INPUT_V.establishment_number%type; -- Bug 5139731
4121 l_transaction_line_id ZX_SYNC_TAX_LINES_INPUT_V.transaction_line_id%type;
4122 --l_count number;
4123 l_event_type varchar2(20);
4124 l_write_record boolean;
4125 l_event_class_code varchar2(20);
4126 l_application_id number;
4127 l_entity_code varchar2(20);
4128 l_trx_level_type varchar2(20);
4129 l_regime_code ZX_REGIMES_B.tax_regime_code%type;
4130 l_amount number;
4131 l_found boolean;
4132 l_return_status varchar2(30);
4133 ctrx_id NUMBER;
4134 l_trx_number VARCHAR2(150);
4135 l_statements VARCHAR2(2000);
4136
4137
4138 l_neg_tax_line_count NUMBER; -- Added for Bug#12544630
4139 l_neg_trx_line_count NUMBER; -- Added for Bug#12544630
4140 l_update_mode BOOLEAN; -- Added for Bug#12544630
4141
4142
4143 BEGIN
4144 x_return_status := FND_API.G_RET_STS_SUCCESS;
4145
4146 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4147 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
4148 END IF;
4149
4150 IF ZX_API_PUB.G_PUB_SRVC <> 'SYNCHRONIZE_TAX_REPOSITORY' THEN
4151
4152 BEGIN
4153 SELECT internal_organization_id,
4154 document_type_id,
4155 transaction_id,
4156 legal_entity_number,
4157 establishment_number
4158 INTO l_internal_organization_id,
4159 l_document_type_id,
4160 l_transaction_id,
4161 l_legal_entity_number,
4162 l_establishment_number -- Bug 5139731
4163 FROM ZX_SYNC_HDR_INPUT_V;
4164 EXCEPTION
4165 WHEN TOO_MANY_ROWS THEN
4166 IF (g_level_exception >= g_current_runtime_level ) THEN
4167 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
4168 End if;
4169 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4170 g_string :='More than one row exist at header level';
4171 error_exception_handle(g_string);
4172 RETURN;
4173 END;
4174
4175 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4176 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4177 'Transaction_id = ' || l_transaction_id);
4178 END IF;
4179
4180 OPEN tax_lines_to_be_processed;
4181
4182 FETCH tax_lines_to_be_processed BULK COLLECT INTO
4183 SYNC_TAX_LINES.document_type_id ,
4184 SYNC_TAX_LINES.transaction_id ,
4185 SYNC_TAX_LINES.transaction_line_id ,
4186 SYNC_TAX_LINES.trx_level_type ,
4187 SYNC_TAX_LINES.country_code ,
4188 SYNC_TAX_LINES.tax ,
4189 SYNC_TAX_LINES.situs ,
4190 SYNC_TAX_LINES.tax_jurisdiction ,
4191 SYNC_TAX_LINES.tax_currency_code ,
4192 SYNC_TAX_LINES.tax_curr_tax_amount ,
4193 SYNC_TAX_LINES.tax_amount ,
4194 SYNC_TAX_LINES.tax_rate_percentage ,
4195 SYNC_TAX_LINES.taxable_amount ,
4196 SYNC_TAX_LINES.exempt_rate_modifier ,
4197 SYNC_TAX_LINES.exempt_reason ,
4198 SYNC_TAX_LINES.tax_only_line_flag ,
4199 SYNC_TAX_LINES.inclusive_tax_line_flag ,
4200 SYNC_TAX_LINES.use_tax_flag ,
4201 SYNC_TAX_LINES.ebiz_override_flag ,
4202 SYNC_TAX_LINES.user_override_flag ,
4203 SYNC_TAX_LINES.last_manual_entry ,
4204 SYNC_TAX_LINES.manually_entered_flag ,
4205 SYNC_TAX_LINES.cancel_flag ,
4206 SYNC_TAX_LINES.delete_flag;
4207
4208 I := 0;
4209 BEGIN
4210 SELECT event_class_code
4211 , application_id
4212 , entity_code
4213 INTO l_event_class_code
4214 , l_application_id
4215 , l_entity_code
4216 FROM zx_evnt_cls_mappings
4217 WHERE EVENT_CLASS_MAPPING_ID = SYNC_TAX_LINES.document_type_id(1);
4218 EXCEPTION
4219 WHEN OTHERS THEN
4220 l_event_class_code := NULL;
4221 l_application_id := NULL;
4222 l_entity_code := NULL;
4223
4224 END;
4225
4226 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4227 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4228 'Document_Type : ' || l_document_type);
4229 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4230 'Opening tax line processing loop first time');
4231 END IF;
4232
4233
4234 FOR sync_tax_cnt IN 1..sync_tax_lines.document_type_id.last LOOP
4235
4236 /* Maintain the trx line counter. The tax lines are fetched together for a transaction_line_id.
4237 For Tax only documents, we need to know the last tax line being fetch so that all the tax lines can be consolidated and passed as one record */
4238
4239 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4240 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4241 ' SYNC_TAX_LINES.transaction_line_id(' || sync_tax_cnt || ') = ' || SYNC_TAX_LINES.transaction_line_id(sync_tax_cnt));
4242 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4243 ' SYNC_TAX_LINES.tax(' || sync_tax_cnt || ') = ' || SYNC_TAX_LINES.tax(sync_tax_cnt));
4244 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4248 END IF;
4245 ' SYNC_TAX_LINES.tax_amount(' || sync_tax_cnt || ') = ' || SYNC_TAX_LINES.tax_amount(sync_tax_cnt));
4246 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4247 'SYNC_TAX_LINES.document_type_id(' || sync_tax_cnt || ') = ' || SYNC_TAX_LINES.document_type_id(sync_tax_cnt));
4249
4250 IF nvl(l_transaction_line_id, -999) <> SYNC_TAX_LINES.transaction_line_id(sync_tax_cnt) THEN
4251 I := I+1;
4252 l_transaction_line_id := SYNC_TAX_LINES.transaction_line_id(sync_tax_cnt);
4253 END IF;
4254 IF sync_tax_cnt = sync_tax_lines.document_type_id.last THEN
4255 l_trx_line_context_changed := TRUE;
4256 ELSE
4257 IF l_transaction_line_id = SYNC_TAX_LINES.transaction_line_id(sync_tax_cnt+1) THEN
4258 l_trx_line_context_changed := FALSE;
4259 ELSE
4260 l_trx_line_context_changed := TRUE;
4261 END IF;
4262 END IF;
4263
4264 l_neg_tax_line_count := 0;
4265 l_neg_trx_line_count := 0;
4266
4267 -- Start : Identify Tax event type --
4268 BEGIN
4269 SELECT count(*)
4270 INTO l_neg_tax_line_count
4271 FROM ZX_PTNR_NEG_TAX_LINE_GT
4272 WHERE document_type_id = SYNC_TAX_LINES.document_type_id(sync_tax_cnt)
4273 AND trx_id = SYNC_TAX_LINES.transaction_id(sync_tax_cnt)
4274 AND trx_line_id = SYNC_TAX_LINES.transaction_line_id(sync_tax_cnt)
4275 AND country_code = SYNC_TAX_LINES.country_code(sync_tax_cnt)
4276 AND tax = SYNC_TAX_LINES.tax(sync_tax_cnt)
4277 AND situs = SYNC_TAX_LINES.situs(sync_tax_cnt);
4278 EXCEPTION
4279 WHEN OTHERS THEN
4280 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4281 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4282 ' Error while accessing ZX_PTNR_NEG_TAX_LINE_GT');
4283 END IF;
4284 END;
4285
4286 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4287 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4288 ' No of records in ZX_PTNR_NEG_TAX_LINE_GT = ' || l_neg_tax_line_count);
4289 END IF;
4290
4291 -- Added the code to get the count from ZX_PTNR_NEG_LINE_GT to handle
4292 -- UPDATE event. Code changed for Bug#12544630
4293 -- Start --
4294 BEGIN
4295 SELECT COUNT(*)
4296 INTO l_neg_trx_line_count
4297 FROM ZX_PTNR_NEG_LINE_GT
4298 WHERE event_class_mapping_id = SYNC_TAX_LINES.document_type_id(sync_tax_cnt)
4299 AND trx_id = SYNC_TAX_LINES.transaction_id(sync_tax_cnt)
4300 AND trx_line_id = SYNC_TAX_LINES.transaction_line_id(sync_tax_cnt);
4301 EXCEPTION
4302 WHEN OTHERS THEN
4303 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4304 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4305 ' Error while accessing ZX_PTNR_NEG_LINE_GT');
4306 END IF;
4307 END;
4308
4309 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4310 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4311 ' No of records in ZX_PTNR_NEG_LINE_GT = ' || l_neg_trx_line_count);
4312 END IF;
4313 -- End --
4314
4315 -- Check if the Line is present in ZX_PTNR_NEG_TAX_LINE_GT table.
4316 -- Deleted line is passed thru zx_sync_tax_lines_input_v and there is
4317 -- no corresponding line in ZX_PTNR_NEG_TAX_LINE_GT
4318
4319 -- Changed logic to set the event type
4320 -- Code changed for Bug#12544630
4321 -- Start --
4322
4323 IF (l_neg_tax_line_count = 1 OR l_neg_trx_line_count = 1) THEN -- Line is present. Hence, it is an UPDATE action --
4324 l_event_type := 'TAX_LINE_UPDATE';
4325 l_update_mode := TRUE;
4326 ELSIF (l_neg_tax_line_count = 0 AND l_neg_trx_line_count = 0) THEN
4327 IF (SYNC_TAX_LINES.delete_flag(sync_tax_cnt) ='Y') THEN -- Delete action --
4328 l_event_type := 'TAX_LINE_DELETE';
4329 ELSE
4330 l_event_type := 'TAX_LINE_CREATE';
4331 END IF;
4332 ELSE
4333 x_return_status :=FND_API.G_RET_STS_ERROR;
4334 g_string := 'There were more than one tax/trx lines';
4335
4336 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
4337 FND_LOG.STRING(G_LEVEL_EXCEPTION,
4338 G_MODULE_NAME||l_api_name,
4339 g_string);
4340 END IF;
4341 --error_exception_handle(g_string);
4342 RETURN;
4343 END IF;
4344 -- End --
4345
4346
4347 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4348 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4349 ' l_event_type ' || l_event_type);
4350 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4351 ' pg_trx_id_tab(I) ' || pg_trx_id_tab(I));
4352 END IF;
4353 get_doc_and_ext_att_info(SYNC_TAX_LINES.document_type_id(sync_tax_cnt),
4354 SYNC_TAX_LINES.transaction_id(sync_tax_cnt),
4355 SYNC_TAX_LINES.transaction_line_id(sync_tax_cnt),
4356 SYNC_TAX_LINES.trx_level_type(sync_tax_cnt),
4357 SYNC_TAX_LINES.country_code(sync_tax_cnt),
4358 1,l_return_status);
4359 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4360 IF (g_level_exception >= g_current_runtime_level ) THEN
4364 g_string :='Failed in GET_DOC_AND_EXT_ATT_INFO procedure';
4361 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
4362 END IF;
4363 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4365 error_exception_handle(g_string);
4366 RETURN;
4367 END IF;
4368 --END IF;
4369
4370 IF (l_event_type='TAX_LINE_UPDATE') THEN
4371 /*Taxware does not have this feature*/
4372 --x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4373 --g_string :='Unable to perform with Taxware';
4374 --error_exception_handle(g_string);
4375
4376 IF l_neg_tax_line_count = 1 THEN
4377 BEGIN
4378 SELECT tax_amount
4379 INTO l_amount
4380 FROM ZX_PTNR_NEG_TAX_LINE_GT
4381 WHERE document_type_id = SYNC_TAX_LINES.document_type_id(sync_tax_cnt)
4382 AND trx_id = SYNC_TAX_LINES.transaction_id(sync_tax_cnt)
4383 AND trx_line_id = SYNC_TAX_LINES.transaction_line_id(sync_tax_cnt)
4384 AND country_code = SYNC_TAX_LINES.country_code(sync_tax_cnt)
4385 AND tax = SYNC_TAX_LINES.tax(sync_tax_cnt)
4386 AND situs = SYNC_TAX_LINES.situs(sync_tax_cnt);
4387 END;
4388 ELSIF l_neg_trx_line_count = 1 THEN
4389 l_amount := SYNC_TAX_LINES.tax_amount(sync_tax_cnt);
4390 END IF;
4391
4392 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4393 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4394 'l_amount : ' || l_amount);
4395 END IF;
4396
4397 create_tax_line(SYNC_TAX_LINES.tax(sync_tax_cnt),-1*l_amount,l_return_status);
4398 -- Commented the following call and moved out of this loop
4399 -- and will be processed in separate loop. Code changed for Bug#12544630
4400 -- create_tax_line(SYNC_TAX_LINES.tax(sync_tax_cnt),SYNC_TAX_LINES.tax_amount(sync_tax_cnt),l_return_status);
4401 l_write_record:=TRUE;
4402 ELSIF(l_event_type='TAX_LINE_DELETE')then
4403 select tax_amount
4404 into l_amount
4405 from ZX_PTNR_NEG_TAX_LINE_GT
4406 where trx_id = SYNC_TAX_LINES.transaction_id(sync_tax_cnt) and
4407 trx_line_id = SYNC_TAX_LINES.transaction_line_id(sync_tax_cnt);
4408
4409 create_tax_line(SYNC_TAX_LINES.tax(sync_tax_cnt),-1*l_amount,l_return_status);
4410 l_write_record:=false;
4411
4412 ELSIF (l_event_type='TAX_LINE_CREATE') THEN
4413 create_tax_line(SYNC_TAX_LINES.tax(sync_tax_cnt),SYNC_TAX_LINES.tax_amount(sync_tax_cnt),l_return_status);
4414 l_write_record:=true;
4415 END IF;
4416
4417 IF (l_write_record and l_trx_line_context_changed) THEN
4418 x_output_sync_tax_lines(sync_tax_cnt).INTERNAL_ORGANIZATION_ID := l_internal_organization_id;
4419 x_output_sync_tax_lines(sync_tax_cnt).LEGAL_ENTITY_NUMBER := l_legal_entity_number;
4420 x_output_sync_tax_lines(sync_tax_cnt).ESTABLISHMENT_NUMBER := l_establishment_number; -- Bug 5139731
4421 x_output_sync_tax_lines(sync_tax_cnt).DOCUMENT_TYPE_ID := SYNC_TAX_LINES.document_type_id(sync_tax_cnt);
4422 x_output_sync_tax_lines(sync_tax_cnt).APPLICATION_ID := l_application_id;
4423 x_output_sync_tax_lines(sync_tax_cnt).ENTITY_CODE := l_entity_code;
4424 x_output_sync_tax_lines(sync_tax_cnt).EVENT_CLASS_CODE := l_event_class_code;
4425 x_output_sync_tax_lines(sync_tax_cnt).TRANSACTION_ID := sync_tax_lines.transaction_id(sync_tax_cnt);
4426 x_output_sync_tax_lines(sync_tax_cnt).TRANSACTION_LINE_ID := sync_tax_lines.transaction_line_id(sync_tax_cnt);
4427 x_output_sync_tax_lines(sync_tax_cnt).TRX_LEVEL_TYPE := sync_tax_lines.trx_level_type(sync_tax_cnt);
4428 x_output_sync_tax_lines(sync_tax_cnt).COUNTRY_CODE := sync_tax_lines.country_code(sync_tax_cnt);
4429 x_output_sync_tax_lines(sync_tax_cnt).TAX := sync_tax_lines.tax(sync_tax_cnt);
4430 x_output_sync_tax_lines(sync_tax_cnt).SITUS := sync_tax_lines.situs(sync_tax_cnt);
4431
4432 populate_sync_tax_amts(sync_tax_cnt
4433 , sync_tax_lines.tax(sync_tax_cnt)
4434 , x_output_sync_tax_lines
4435 , x_return_status);
4436 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4437 IF (g_level_exception >= g_current_runtime_level ) THEN
4438 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
4439 END IF;
4440 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4441 g_string :='Failed in populate_sync_tax_amts procedure';
4442 error_exception_handle(g_string);
4443 RETURN;
4444 END IF;
4445 l_write_record := FALSE;
4446 END IF;
4447
4448 END LOOP;
4449
4450
4451 -- Start : Code Added for Bug#12544630
4452 -- Insert the line with original tax amount in case of Update Mode
4453 IF (l_update_mode) THEN
4454 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4455 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4456 'Opening tax line processing loop second time.' );
4457 END IF;
4458
4459 l_transaction_line_id := NULL;
4460 I := 0;
4461 l_neg_tax_line_count := 0;
4462 l_neg_trx_line_count := 0;
4463 l_event_type := NULL;
4464 l_write_record := FALSE;
4465
4466 FOR sync_tax_cnt1 IN 1..sync_tax_lines.document_type_id.last LOOP
4467
4468 -- Opening the Tax Lines processing loop again for Update event
4469 -- to create tax lines with original amount
4470
4471 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4472 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4473 'SYNC_TAX_LINES.transaction_line_id(' || sync_tax_cnt1 || ') = ' || SYNC_TAX_LINES.transaction_line_id(sync_tax_cnt1));
4474 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4475 'SYNC_TAX_LINES.tax(' || sync_tax_cnt1 || ') = ' || SYNC_TAX_LINES.tax(sync_tax_cnt1));
4476 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4477 'SYNC_TAX_LINES.tax_amount(' || sync_tax_cnt1 || ') = ' || SYNC_TAX_LINES.tax_amount(sync_tax_cnt1));
4478 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4479 'SYNC_TAX_LINES.document_type_id(' || sync_tax_cnt1 || ') = ' || SYNC_TAX_LINES.document_type_id(sync_tax_cnt1));
4480 END IF;
4481
4482 IF nvl(l_transaction_line_id, -999) <> SYNC_TAX_LINES.transaction_line_id(sync_tax_cnt1) THEN
4483 I := I+1;
4484 l_transaction_line_id := SYNC_TAX_LINES.transaction_line_id(sync_tax_cnt1);
4485 END IF;
4486
4487 IF sync_tax_cnt1 = sync_tax_lines.document_type_id.LAST THEN
4488 l_trx_line_context_changed := TRUE;
4489 ELSE
4490 IF l_transaction_line_id = SYNC_TAX_LINES.transaction_line_id(sync_tax_cnt1+1) THEN
4491 l_trx_line_context_changed := FALSE;
4492 ELSE
4493 l_trx_line_context_changed := TRUE;
4494 END IF;
4495 END IF;
4496
4497 l_neg_tax_line_count := 0;
4498 l_neg_trx_line_count := 0;
4499
4500 BEGIN
4501 SELECT COUNT(*)
4502 INTO l_neg_tax_line_count
4503 FROM ZX_PTNR_NEG_TAX_LINE_GT
4504 WHERE document_type_id = SYNC_TAX_LINES.document_type_id(sync_tax_cnt1)
4505 AND trx_id = SYNC_TAX_LINES.transaction_id(sync_tax_cnt1)
4506 AND trx_line_id = SYNC_TAX_LINES.transaction_line_id(sync_tax_cnt1)
4507 AND country_code = SYNC_TAX_LINES.country_code(sync_tax_cnt1)
4508 AND tax = SYNC_TAX_LINES.tax(sync_tax_cnt1)
4509 AND situs = SYNC_TAX_LINES.situs(sync_tax_cnt1);
4510 EXCEPTION
4511 WHEN OTHERS THEN
4512 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4513 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4514 'Error while accessing ZX_PTNR_NEG_TAX_LINE_GT');
4515 END IF;
4516 END;
4517
4518 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4519 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4520 'No of records in ZX_PTNR_NEG_TAX_LINE_GT = ' || l_neg_tax_line_count);
4521 END IF;
4522
4523 BEGIN
4524 SELECT COUNT(*)
4525 INTO l_neg_trx_line_count
4526 FROM ZX_PTNR_NEG_LINE_GT
4527 WHERE event_class_mapping_id = SYNC_TAX_LINES.document_type_id(sync_tax_cnt1)
4528 AND trx_id = SYNC_TAX_LINES.transaction_id(sync_tax_cnt1)
4529 AND trx_line_id = SYNC_TAX_LINES.transaction_line_id(sync_tax_cnt1);
4530 EXCEPTION
4531 WHEN OTHERS THEN
4532 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4533 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4534 ' Error while accessing ZX_PTNR_NEG_LINE_GT');
4535 END IF;
4536 END;
4537
4538 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4539 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4540 ' No of records in ZX_PTNR_NEG_LINE_GT = ' || l_neg_trx_line_count);
4541 END IF;
4542
4543 IF (l_neg_tax_line_count = 1 OR l_neg_trx_line_count = 1) THEN -- Line is present. Hence, it is an UPDATE action --
4544 l_event_type := 'TAX_LINE_UPDATE';
4545 ELSIF (l_neg_tax_line_count = 0 AND l_neg_trx_line_count = 0) THEN
4546 IF (SYNC_TAX_LINES.delete_flag(sync_tax_cnt1) ='Y') THEN -- Delete action --
4547 l_event_type := 'TAX_LINE_DELETE';
4548 ELSE
4549 l_event_type := 'TAX_LINE_CREATE';
4550 END IF;
4551 ELSE
4552 x_return_status :=FND_API.G_RET_STS_UNEXP_ERROR;
4553 g_string := 'There were more than one tax/trx lines';
4554 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
4555 FND_LOG.STRING(G_LEVEL_EXCEPTION,
4556 G_MODULE_NAME||l_api_name,
4557 g_string);
4558 END IF;
4559 RETURN;
4560 END IF;
4561
4562 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4563 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4564 'l_event_type : ' || l_event_type);
4565 END IF;
4566
4567 IF (l_event_type='TAX_LINE_UPDATE') THEN
4568 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4569 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4570 'SYNC_TAX_LINES.tax_amount(' || sync_tax_cnt1 || ') = ' || SYNC_TAX_LINES.tax_amount(sync_tax_cnt1));
4571 END IF;
4572 create_tax_line(SYNC_TAX_LINES.tax(sync_tax_cnt1),SYNC_TAX_LINES.tax_amount(sync_tax_cnt1),l_return_status);
4573 l_write_record:=TRUE;
4574 END IF;
4575
4576 IF (l_write_record) THEN
4577 x_output_sync_tax_lines(sync_tax_cnt1).INTERNAL_ORGANIZATION_ID := l_internal_organization_id;
4578 x_output_sync_tax_lines(sync_tax_cnt1).LEGAL_ENTITY_NUMBER := l_legal_entity_number;
4579 x_output_sync_tax_lines(sync_tax_cnt1).ESTABLISHMENT_NUMBER := l_establishment_number; -- Bug 5139731
4580 x_output_sync_tax_lines(sync_tax_cnt1).DOCUMENT_TYPE_ID := SYNC_TAX_LINES.document_type_id(sync_tax_cnt1);
4581 x_output_sync_tax_lines(sync_tax_cnt1).APPLICATION_ID := l_application_id;
4582 x_output_sync_tax_lines(sync_tax_cnt1).ENTITY_CODE := l_entity_code;
4583 x_output_sync_tax_lines(sync_tax_cnt1).EVENT_CLASS_CODE := l_event_class_code;
4584 x_output_sync_tax_lines(sync_tax_cnt1).TRANSACTION_ID := sync_tax_lines.transaction_id(sync_tax_cnt1);
4585 x_output_sync_tax_lines(sync_tax_cnt1).TRANSACTION_LINE_ID := sync_tax_lines.transaction_line_id(sync_tax_cnt1);
4586 x_output_sync_tax_lines(sync_tax_cnt1).TRX_LEVEL_TYPE := sync_tax_lines.trx_level_type(sync_tax_cnt1);
4587 x_output_sync_tax_lines(sync_tax_cnt1).COUNTRY_CODE := sync_tax_lines.country_code(sync_tax_cnt1);
4588 x_output_sync_tax_lines(sync_tax_cnt1).TAX := sync_tax_lines.tax(sync_tax_cnt1);
4589 x_output_sync_tax_lines(sync_tax_cnt1).SITUS := sync_tax_lines.situs(sync_tax_cnt1);
4590
4591 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4592 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4593 'x_output_sync_tax_lines(sync_tax_cnt1).internal_organization_id = ' || x_output_sync_tax_lines(sync_tax_cnt1).internal_organization_id);
4594 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4595 'x_output_sync_tax_lines(sync_tax_cnt1).transaction_line_id = ' || x_output_sync_tax_lines(sync_tax_cnt1).transaction_line_id);
4596 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4597 'x_output_sync_tax_lines(sync_tax_cnt1).trx_level_type = ' || x_output_sync_tax_lines(sync_tax_cnt1).trx_level_type);
4598 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4599 'x_output_sync_tax_lines(sync_tax_cnt1).tax = ' || x_output_sync_tax_lines(sync_tax_cnt1).tax);
4600 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4601 'x_output_sync_tax_lines(sync_tax_cnt1).SITUS = ' || x_output_sync_tax_lines(sync_tax_cnt1).SITUS);
4602 END IF;
4603
4604 populate_sync_tax_amts(sync_tax_cnt1
4605 , sync_tax_lines.tax(sync_tax_cnt1)
4606 , x_output_sync_tax_lines
4607 , x_return_status);
4608 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4609 IF (g_level_exception >= g_current_runtime_level ) THEN
4610 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
4611 END IF;
4612 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4613 g_string :='Failed in populate_sync_tax_amts procedure';
4614 error_exception_handle(g_string);
4615 RETURN;
4616 END IF;
4617
4618 l_write_record := FALSE;
4619 END IF; -- IF l_write_record
4620
4621 END LOOP;
4622 END IF;
4623 -- End : Code Added for Bug#12544630
4624
4625
4626 ELSE
4627 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4628 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, ' in the update part ');
4629 END IF;
4630
4631 BEGIN
4632 SELECT TRANSACTION_NUMBER, TRANSACTION_ID
4633 INTO l_trx_number, ctrx_id
4634 FROM ZX_SYNC_HDR_INPUT_V;
4635 EXCEPTION
4636 WHEN TOO_MANY_ROWS THEN
4637 IF (g_level_exception >= g_current_runtime_level ) THEN
4638 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
4639 End if;
4640 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4641 g_string :='More than one row exist at header level';
4642 error_exception_handle(g_string);
4643 RETURN;
4644 WHEN OTHERS THEN
4645 NULL;
4646 END;
4647 l_statements := 'UPDATE ZX_TAX_TAXWARE_AUDIT_HEADER '||
4648 'SET INVNUM = :1' ||
4649 ' WHERE ORACLEID = :2 ';
4650
4651 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4652 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'l_statements ==' || l_statements);
4653 END IF;
4654 EXECUTE IMMEDIATE l_statements using l_trx_number,ctrx_id ;
4655 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4656 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Updated Rows in taxware table == ' || to_char(SQL%ROWCOUNT));
4657 END IF;
4658
4659 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4660 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'ZX_TAX_TAXWARE_AUDIT_HEADER is updated');
4661 END IF;
4662
4663 END IF;
4664
4665
4666 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4667 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'(-)');
4668 END IF;
4669
4670
4671 End SYNCHRONIZE_TAXWARE_REPOSITORY;
4672
4673 Procedure GLOBAL_DOCUMENT_UPDATE
4674 (x_transaction_rec IN zx_tax_partner_pkg.trx_rec_type,
4675 x_return_status OUT NOCOPY varchar2,
4676 x_messages_tbl OUT NOCOPY ZX_TAX_PARTNER_PKG.messages_tbl_type) is
4677 l_cnt_of_options_gt NUMBER;
4678 l_cnt_of_hdr_extns_gt NUMBER;
4679 l_cnt_of_line_extns_gt NUMBER;
4680 l_cnt_of_loc_info_gt NUMBER;
4681 l_cnt_of_neg_line_gt NUMBER;
4682 l_cnt_of_det_factors NUMBER;
4683 l_cnt_of_trx_hdr_gt NUMBER;
4684 l_statements VARCHAR2(2000);
4685 l_return_status VARCHAR2(30);
4686 l_api_name CONSTANT VARCHAR2(100) := 'GLOBAL_DOCUMENT_UPDATE';
4687 --Bug 8576319
4688 l_doc_amount NUMBER;
4689 BEGIN
4690 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4691 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
4692 END IF;
4693
4694 x_return_status := FND_API.G_RET_STS_SUCCESS;
4695
4696 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4697 BEGIN
4698 SELECT count(*)
4699 INTO l_cnt_of_det_factors
4700 FROM ZX_LINES_DET_FACTORS
4701 WHERE event_class_mapping_id = x_transaction_rec.document_type_id
4702 AND trx_id = x_transaction_rec.transaction_id;
4703 EXCEPTION WHEN OTHERS THEN
4704 l_cnt_of_det_factors := 0;
4705 END;
4706 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4707 'l_cnt_of_det_factors = '||l_cnt_of_det_factors);
4708 BEGIN
4709 SELECT count(*)
4710 INTO l_cnt_of_options_gt
4711 FROM ZX_TRX_PRE_PROC_OPTIONS_GT;
4712 EXCEPTION WHEN OTHERS THEN
4713 l_cnt_of_options_gt := 0;
4714 END;
4715 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4716 'l_cnt_of_options_gt = '||l_cnt_of_options_gt);
4717 BEGIN
4718 SELECT count(*)
4719 INTO l_cnt_of_hdr_extns_gt
4720 FROM ZX_PRVDR_HDR_EXTNS_GT;
4721 EXCEPTION WHEN OTHERS THEN
4722 l_cnt_of_hdr_extns_gt := 0;
4723 END;
4724 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4725 'l_cnt_of_hdr_extns_gt = '||l_cnt_of_hdr_extns_gt);
4726 BEGIN
4727 SELECT count(*)
4728 INTO l_cnt_of_line_extns_gt
4729 FROM ZX_PRVDR_HDR_EXTNS_GT;
4730 EXCEPTION WHEN OTHERS THEN
4731 l_cnt_of_line_extns_gt := 0;
4732 END;
4733 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4734 'l_cnt_of_line_extns_gt = '||l_cnt_of_line_extns_gt);
4735 BEGIN
4736 SELECT count(*)
4737 INTO l_cnt_of_loc_info_gt
4738 FROM ZX_PTNR_LOCATION_INFO_GT;
4739 EXCEPTION WHEN OTHERS THEN
4740 l_cnt_of_loc_info_gt := 0;
4741 END;
4742 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4743 'l_cnt_of_loc_info_gt = '||l_cnt_of_loc_info_gt);
4744 BEGIN
4745 SELECT count(*)
4746 INTO l_cnt_of_neg_line_gt
4747 FROM ZX_PTNR_NEG_LINE_GT;
4748 EXCEPTION WHEN OTHERS THEN
4749 l_cnt_of_neg_line_gt := 0;
4750 END;
4751 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4752 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4753 'l_cnt_of_neg_line_gt = '||l_cnt_of_neg_line_gt);
4754 END IF;
4755 END IF;
4756
4757 BEGIN
4758 select count(*)
4759 into l_cnt_of_trx_hdr_gt
4760 from ZX_TRX_HEADERS_GT
4761 where trx_id = x_transaction_rec.transaction_id;
4762 EXCEPTION WHEN OTHERS THEN
4763 l_cnt_of_trx_hdr_gt := 0;
4764 END;
4765
4766 IF l_cnt_of_trx_hdr_gt > 0 THEN
4767 BEGIN
4768 l_statements := 'DELETE FROM ZX_TAX_TAXWARE_AUDIT_DETAIL WHERE HEADERNO in (select HEADERNO from ZX_TAX_TAXWARE_AUDIT_HEADER where ORACLEID = :1 ) ';
4769 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4770 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'l_statements ==' || l_statements);
4771 END IF;
4772 EXECUTE IMMEDIATE l_statements using to_char(x_transaction_rec.transaction_id) ;
4773 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4774 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Deleted Rows in Audit Detail table == ' || to_char(SQL%ROWCOUNT));
4775 END IF;
4776
4777 l_statements := 'DELETE FROM ZX_TAX_TAXWARE_AUDIT_TAX WHERE HEADERNO in (select HEADERNO from ZX_TAX_TAXWARE_AUDIT_HEADER where ORACLEID = :1 ) ';
4778 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4779 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'l_statements ==' || l_statements);
4780 END IF;
4781 EXECUTE IMMEDIATE l_statements using to_char(x_transaction_rec.transaction_id) ;
4782 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4783 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Deleted Rows in Audit Tax table == ' || to_char(SQL%ROWCOUNT));
4784 END IF;
4785
4786 l_statements := 'DELETE FROM ZX_TAX_TAXWARE_AUDIT_JURIS WHERE HEADERNO in (select HEADERNO from ZX_TAX_TAXWARE_AUDIT_HEADER where ORACLEID = :1 ) ';
4787 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4788 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'l_statements ==' || l_statements);
4789 END IF;
4790 EXECUTE IMMEDIATE l_statements using to_char(x_transaction_rec.transaction_id) ;
4791 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4792 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Deleted Rows in Audot Juris table == ' || to_char(SQL%ROWCOUNT));
4793 END IF;
4794
4795 l_statements := 'DELETE FROM ZX_TAX_TAXWARE_AUDIT_HEADER where ORACLEID = :1 ';
4796 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4797 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'l_statements ==' || l_statements);
4798 END IF;
4799 EXECUTE IMMEDIATE l_statements using to_char(x_transaction_rec.transaction_id) ;
4800 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4801 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Deleted Rows in Audit Header table == ' || to_char(SQL%ROWCOUNT));
4802 END IF;
4803
4804 EXCEPTION
4805 WHEN OTHERS THEN
4806 IF (g_level_exception >= g_current_runtime_level ) THEN
4807 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Exception in Deleting data from TAXAUDIT_* tables'||SQLERRM);
4808 End if;
4809 END;
4810 RETURN;
4811 END IF;
4812
4813 BEGIN
4814 SELECT trx_line_id,
4815 decode(adjusted_doc_application_id,
4816 222,decode(adjusted_doc_event_class_code,
4817 'INVOICE', 4,
4818 'DEBIT_MEMO', 5,
4819 'CREDIT_MEMO', 6,
4820 NULL
4821 )
4822 ,NULL) adjusted_doc_document_type_id,
4823 adjusted_doc_trx_id,
4824 adjusted_doc_line_id,
4825 adjusted_doc_trx_level_type,
4826 line_level_action
4827 BULK COLLECT
4828 INTO pg_trx_line_id_tab,
4829 pg_adj_doc_doc_type_id_tab,
4830 pg_adj_doc_trx_id_tab,
4831 pg_adj_doc_line_id_tab,
4832 pg_adj_doc_trx_lev_type_tab,
4833 pg_line_level_action_tab
4834 FROM ZX_PTNR_NEG_LINE_GT
4835 WHERE event_class_mapping_id = x_transaction_rec.document_type_id
4836 AND trx_id = x_transaction_rec.transaction_id;
4837 EXCEPTION
4838 WHEN no_data_found THEN
4839 IF (g_level_exception >= g_current_runtime_level ) THEN
4840 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
4841 End if;
4842 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4843 g_string := 'No document type exist for provided event_class_mapping_id ';
4844 error_exception_handle(g_string);
4845 x_messages_tbl := g_messages_tbl;
4846 RETURN;
4847 END;
4848
4849 BEGIN
4850 SELECT event_class_code
4851 INTO l_document_type
4852 FROM zx_evnt_cls_mappings
4853 WHERE event_class_mapping_id = x_transaction_rec.document_type_id;
4854 EXCEPTION
4855 WHEN no_data_found THEN
4856 IF (g_level_exception >= g_current_runtime_level ) THEN
4857 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
4858 End if;
4859 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4860 g_string := 'No document type exist for provided event_class_mapping_id ';
4861 error_exception_handle(g_string);
4862 x_messages_tbl := g_messages_tbl;
4863 RETURN;
4864 END;
4865 --Bug 8576319
4866 --Call Set Document Type
4867
4868 SELECT SUM(ABS(line_amt))
4869 INTO l_doc_amount
4870 FROM ZX_PTNR_NEG_LINE_GT
4871 WHERE event_class_mapping_id = x_transaction_rec.document_type_id
4872 AND trx_id = x_transaction_rec.transaction_id;
4873
4874 I := 1;
4875
4876 SET_DOCUMENT_TYPE(l_document_type,
4877 x_transaction_rec.transaction_id,
4878 l_doc_amount,
4879 l_return_status);
4880
4881 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4882 IF (g_level_exception >= g_current_runtime_level ) THEN
4883 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
4884 END IF;
4885 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4886 g_string :='Failed in setting up document type';
4887 error_exception_handle(g_string);
4888 x_messages_tbl:=g_messages_tbl;
4889 return;
4890 END IF;
4891 -- End Bug 8576319
4892 FOR cnt IN 1..nvl(pg_trx_line_id_tab.last, 0)
4893 LOOP
4894 I := cnt;
4895 perform_line_deletion(l_return_status);
4896 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4897 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4898 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,SQLERRM);
4899 END IF;
4900 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4901 g_string :='Failed in PERFORM_LINE_DELETION procedure';
4902 error_exception_handle(g_string);
4903 RETURN;
4904 END IF;
4905 END LOOP;
4906
4907
4908 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4909 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'()+');
4910 END IF;
4911
4912 End GLOBAL_DOCUMENT_UPDATE;
4913
4914 PROCEDURE dump_vendor_rec ( dmpTaxLink ZX_TAX_TAXWARE_GEN.TaxParm,
4915 dmpJurLink ZX_TAX_TAXWARE_GEN.JurParm,
4916 dmpOraLink ZX_TAX_TAXWARE_GEN.t_OraParm,
4917 input_param_flag BOOLEAN ) IS
4918
4919 l_temp_reserved_bool VARCHAR2(10) := null;
4920 l_api_name CONSTANT VARCHAR2(30) := 'DUMP_VENDOR_REC';
4921 BEGIN
4922
4923 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4924 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
4925 END IF;
4926
4927 IF input_param_flag THEN
4928 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4929 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'====================================');
4930 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'----- OraLink Input Parameters -----');
4931 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'====================================');
4932 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'OracleId = ['||dmpOraLink.OracleId||']');
4933 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Oracle_Msg_Text = ['||dmpOraLink.oracle_msg_text||']');
4934 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Oracle_Msg_Label = ['||dmpOraLink.oracle_msg_label||']');
4935 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Taxware_Msg_Text = ['||dmpOraLink.taxware_msg_text||']');
4936 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Reserved_Text_1 = ['||dmpOraLink.reserved_text_1||']');
4937 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Reserved_Text_2 = ['||dmpOraLink.reserved_text_2||']');
4938 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Reserved_Text_3 = ['||dmpOraLink.reserved_text_3||']');
4939 END IF;
4940 if dmpOraLink.reserved_bool_1 is null then
4941 l_temp_reserved_bool := '';
4942 elsif dmpOraLink.reserved_bool_1 then
4943 l_temp_reserved_bool := 'TRUE';
4944 else
4945 l_temp_reserved_bool := 'FALSE';
4946 end if;
4947 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4948 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Reserved_BOOL_1 = ['||l_temp_reserved_bool||']');
4949 END IF;
4950 if dmpOraLink.reserved_bool_2 is null then
4951 l_temp_reserved_bool := '';
4952 elsif dmpOraLink.reserved_bool_2 then
4953 l_temp_reserved_bool := 'TRUE';
4954 else
4955 l_temp_reserved_bool := 'FALSE';
4956 end if;
4957 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4958 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Reserved_BOOL_2 = ['||l_temp_reserved_bool||']');
4959 END IF;
4960 if dmpOraLink.reserved_bool_3 is null then
4961 l_temp_reserved_bool := '';
4962 elsif dmpOraLink.reserved_bool_3 then
4963 l_temp_reserved_bool := 'TRUE';
4964 else
4965 l_temp_reserved_bool := 'FALSE';
4966 end if;
4967 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4968 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Reserved_BOOL_3 = ['||l_temp_reserved_bool||']');
4969 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Reserved_CHAR_1 = ['||dmpOraLink.reserved_char_1||']');
4970 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Reserved_CHAR_2 = ['||dmpOraLink.reserved_char_2||']');
4971 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Reserved_CHAR_3 = ['||dmpOraLink.reserved_char_3||']');
4972 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Reserved_NUM_1 = ['||to_char(dmpOraLink.reserved_num_1)||']');
4973 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Reserved_NUM_2 = ['||to_char(dmpOraLink.reserved_num_2)||']');
4974 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Reserved_BIGNUM_1 = ['||to_char(dmpOraLink.reserved_bignum_1)||']');
4975
4976 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Reserved_DATE_1 = ['||to_char(dmpOraLink.reserved_date_1,'DD-MON-RR')||']');
4977 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'====================================');
4978 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'----- TaxLink Input Parameters -----');
4979 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'====================================');
4980 --FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'vendor_param.tax_selection = ['||vendor_param.tax_selection||']');
4981 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.CalcType = ['||dmpTaxLink.CalcType||']');
4982 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.CnSlsUse = ['||dmpTaxLink.CnSlsUse||']');
4983 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.CustNo = ['||dmpTaxLink.CustNo||']');
4984 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.CustName = ['||dmpTaxLink.CustName||']');
4985 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.CompanyID = ['||dmpTaxLink.CompanyID||']');
4986 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.DivCode = ['||dmpTaxLink.DivCode||']');
4987 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.GrossAmt = ['||to_char(dmpTaxLink.GrossAmt)||']');
4988 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.TaxAmt = ['||to_char(dmpTaxLink.TaxAmt)||']');
4989 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.CreditInd = ['||
4990 arp_trx_util.boolean_to_varchar2(dmpTaxLink.CreditInd)||']');
4991 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.InvoiceDate = ['||to_char(dmpTaxLink.InvoiceDate)||']');
4992 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.InvoiceNo = ['||dmpTaxLink.InvoiceNo||']');
4993 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.LoSlsUse = ['||dmpTaxLink.LoSlsUse||']');
4994 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.NoCnTax = ['||
4995 arp_trx_util.boolean_to_varchar2(dmpTaxLink.NoCnTax)||']');
4996 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.NoLoTax = ['||
4997 arp_trx_util.boolean_to_varchar2(dmpTaxLink.NoLoTax)||']');
4998 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.NoSecCnTax = ['||
4999 arp_trx_util.boolean_to_varchar2(dmpTaxLink.NoSecCnTax)||']');
5000 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.NoSecLoTax = ['||
5004 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.NoTaxInd = ['||
5001 arp_trx_util.boolean_to_varchar2(dmpTaxLink.NoSecLoTax)||']');
5002 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.NoStaTax = ['||
5003 arp_trx_util.boolean_to_varchar2(dmpTaxLink.NoStaTax)||']');
5005 arp_trx_util.boolean_to_varchar2(dmpTaxLink.NoTaxInd)||']');
5006 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.NumItems = ['||to_char(dmpTaxLink.NumItems)||']');
5007 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.PriGeo = ['||dmpTaxLink.PriGeo||']');
5008 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.PriZip = ['||dmpTaxLink.PriZip||']');
5009 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.InOutCityLimits = ['||dmpTaxLink.InOutCityLimits||']');
5010 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.ProdCode = ['||dmpTaxLink.ProdCode||']');
5011 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.ReptInd = ['||
5012 arp_trx_util.boolean_to_varchar2(dmpTaxLink.ReptInd)||']');
5013 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.SecStSlsUse = ['||dmpTaxLink.SecStSlsUse||']');
5014 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.StaSlsUse = ['||dmpTaxLink.StaSlsUse||']');
5015 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.StateCode = ['||dmpTaxLink.StateCode||']');
5016 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.StaExempt = ['||
5017 arp_trx_util.boolean_to_varchar2(dmpTaxLink.StaExempt)||']');
5018 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.StExemptAmt = ['||to_char(dmpTaxLink.StExemptAmt)||']');
5019 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.StReasonCode = ['||dmpTaxLink.StReasonCode||']');
5020 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.StTaxCertNo = ['||dmpTaxLink.StTaxCertNo||']');
5021 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.CnExempt = ['||
5022 arp_trx_util.boolean_to_varchar2(dmpTaxLink.CnExempt)||']');
5023 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.CntyExemptAmt = ['||to_char(dmpTaxLink.CntyExemptAmt)||']');
5024 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.CntyReasonCode = ['||dmpTaxLink.CntyReasonCode||']');
5025 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.CnTaxCertNo = ['||dmpTaxLink.CnTaxCertNo||']');
5026 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.LoExempt = ['||
5027 arp_trx_util.boolean_to_varchar2(dmpTaxLink.LoExempt)||']');
5028 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.CityExemptAmt = ['||to_char(dmpTaxLink.CityExemptAmt)||']');
5029 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.CityReasonCode = ['||dmpTaxLink.CityReasonCode||']');
5030 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.LoTaxCertNo = ['||dmpTaxLink.LoTaxCertNo||']');
5031 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.SecCnExempt = ['||
5032 arp_trx_util.boolean_to_varchar2(dmpTaxLink.SecCnExempt)||']');
5033 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.SecCnExemptAmt = ['||to_char(dmpTaxLink.SecCnExemptAmt)||']');
5034 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.SecLoExempt = ['||
5035 arp_trx_util.boolean_to_varchar2(dmpTaxLink.SecLoExempt)||']');
5036 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.SecLoExemptAmt = ['||to_char(dmpTaxLink.SecLoExemptAmt)||']');
5037 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'');
5038 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'----- STEP/NEXPRO Input Parameters -----');
5039 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'');
5040 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.UseStep = ['||dmpTaxLink.UseStep||']');
5041 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.StepProcFlg = ['||dmpTaxLink.StepProcFlg||']');
5042 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.JobNo = ['||dmpTaxLink.JobNo||']');
5043 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.CritFlg = ['||dmpTaxLink.CritFlg||']');
5044 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.UseNexproInd = ['||dmpTaxLink.UseNexproInd||']');
5045
5046 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'3232492 StOvAmt =='|| dmpTaxLink.StOvAmt);
5047 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'3232492 CnOvAmt =='|| dmpTaxLink.CnOvAmt);
5048 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'3232492 LoOvAmt =='|| dmpTaxLink.LoOvAmt);
5049 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'3232492 ScStOvAmt =='|| dmpTaxLink.ScStOvAmt);
5050 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'3232492 ScCnOvAmt =='|| dmpTaxLink.ScCnOvAmt);
5051 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'3232492 ScLoOvAmt =='|| dmpTaxLink.ScLoOvAmt);
5052 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'3232492 DistOvAmt =='|| dmpTaxLink.DistOvAmt);
5053 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'3232492 FedOvAmt =='|| dmpTaxLink.FedOvAmt);
5054
5055 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'====================================');
5056 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'----- JurLink Input Parameters -----');
5057 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'====================================');
5058 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.POA.Geo = ['||dmpJurLink.POA.Geo||']');
5059 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.POA.State = ['||dmpJurLink.POA.State||']');
5060 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.POA.Zip = ['||dmpJurLink.POA.Zip||']');
5061 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.InOutCiLimPOA = ['||dmpJurLink.InOutCiLimPOA||']');
5062 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.POO.Geo = ['||dmpJurLink.POO.Geo||']');
5063 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.POO.State = ['||dmpJurLink.POO.State||']');
5064 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.POO.Zip = ['||dmpJurLink.POO.Zip||']');
5065 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.InOutCiLimPOO = ['||dmpJurLink.InOutCiLimPOO||']');
5066 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.ShipFr.Geo = ['||dmpJurLink.ShipFr.Geo||']');
5067 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.ShipFr.State = ['||dmpJurLink.ShipFr.State||']');
5068 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.ShipFr.Zip = ['||dmpJurLink.ShipFr.Zip||']');
5069 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.InOutCiLimShFr = ['||dmpJurLink.InOutCiLimShFr||']');
5070 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.ShipTo.Geo = ['||dmpJurLink.ShipTo.Geo||']');
5071 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.ShipTo.State = ['||dmpJurLink.ShipTo.State||']');
5072 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.ShipTo.Zip = ['||dmpJurLink.ShipTo.Zip||']');
5073 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.InOutCiLimShTo = ['||dmpJurLink.InOutCiLimShTo||']');
5074 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.POT = ['||dmpJurLink.POT||']');
5075 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.ServInd = ['||dmpJurLink.ServInd||']');
5076 END IF;
5077
5078 ELSE
5079 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5080 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'====================================');
5081 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'----- OraLink Output Parameters ----');
5082 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'====================================');
5083 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'OracleId = ['||dmpOraLink.OracleId||']');
5084 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Oracle_Msg_Text = ['||dmpOraLink.oracle_msg_text||']');
5085 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Oracle_Msg_Label = ['||dmpOraLink.oracle_msg_label||']');
5086 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Taxware_Msg_Text = ['||dmpOraLink.taxware_msg_text||']');
5087 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Reserved_Text_1 = ['||dmpOraLink.reserved_text_1||']');
5088 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Reserved_Text_2 = ['||dmpOraLink.reserved_text_2||']');
5089 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Reserved_Text_3 = ['||dmpOraLink.reserved_text_3||']');
5090 END IF;
5091 if dmpOraLink.reserved_bool_1 is null then
5092 l_temp_reserved_bool := '';
5093 elsif dmpOraLink.reserved_bool_1 then
5094 l_temp_reserved_bool := 'TRUE';
5095 else
5096 l_temp_reserved_bool := 'FALSE';
5097 end if;
5098 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5099 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Reserved_BOOL_1 = ['||l_temp_reserved_bool||']');
5100 END IF;
5101 if dmpOraLink.reserved_bool_2 is null then
5102 l_temp_reserved_bool := '';
5103 elsif dmpOraLink.reserved_bool_2 then
5104 l_temp_reserved_bool := 'TRUE';
5105 else
5106 l_temp_reserved_bool := 'FALSE';
5107 end if;
5108 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5109 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Reserved_BOOL_2 = ['||l_temp_reserved_bool||']');
5110 END IF;
5111 if dmpOraLink.reserved_bool_3 is null then
5112 l_temp_reserved_bool := '';
5113 elsif dmpOraLink.reserved_bool_3 then
5114 l_temp_reserved_bool := 'TRUE';
5115 else
5116 l_temp_reserved_bool := 'FALSE';
5117 end if;
5118 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5119 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Reserved_BOOL_3 = ['||l_temp_reserved_bool||']');
5120 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Reserved_CHAR_1 = ['||dmpOraLink.reserved_char_1||']');
5121 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Reserved_CHAR_2 = ['||dmpOraLink.reserved_char_2||']');
5122 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Reserved_CHAR_3 = ['||dmpOraLink.reserved_char_3||']');
5123 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Reserved_NUM_1 = ['||to_char(dmpOraLink.reserved_num_1)||']');
5124 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Reserved_NUM_2 = ['||to_char(dmpOraLink.reserved_num_2)||']');
5125 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Reserved_BIGNUM_1 = ['||to_char(dmpOraLink.reserved_bignum_1)||']');
5126 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Reserved_DATE_1 = ['||to_char(dmpOraLink.reserved_date_1,'DD-MON-RR')||']');
5127 END IF;
5128
5129 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5130 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'====================================');
5131 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'----- TaxLink Output Parameters ----');
5132 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'====================================');
5133 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.GenCmplCd = ['||dmpTaxLink.GenCmplCd||']');
5134 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.StaCmplCd = ['||dmpTaxLink.StaCmplCd||']');
5135 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.CnCmplCd = ['||dmpTaxLink.CnCmplCd||']');
5136 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.LoCmplCd = ['||dmpTaxLink.LoCmplCd||']');
5137 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.CreditInd = ['||
5138 arp_trx_util.boolean_to_varchar2(dmpTaxLink.CreditInd)||']');
5139 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.ScCnCmplCd = ['||dmpTaxLink.ScCnCmplCd||']');
5140 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.ScLoCmplCd = ['||dmpTaxLink.ScLoCmplCd||']');
5141 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.DistCmplCd = ['||dmpTaxLink.DistCmplCd||']');
5142 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.GrossAmt = ['||to_char(dmpTaxLink.GrossAmt)||']');
5143 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.TaxAmt = ['||to_char(dmpTaxLink.TaxAmt)||']');
5144
5145 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.StaTxRate = ['||
5146 to_char(dmpTaxLink.StaTxRate*100)||']');
5147 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.CnTxRate = ['||
5148 to_char(dmpTaxLink.CnTxRate*100)||']');
5149 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.LoTxRate = ['||
5150 to_char(dmpTaxLink.LoTxRate*100)||']');
5151 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.ScCnTxRate = ['||
5152 to_char(dmpTaxLink.ScCnTxRate*100)||']');
5153 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.ScLoTxRate = ['||
5154 to_char(dmpTaxLink.ScLoTxRate*100)||']');
5155 END IF;
5156 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5157 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.StaTxAmt = ['||to_char(dmpTaxLink.StaTxAmt)||']');
5158 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.CnTxAmt = ['||to_char(dmpTaxLink.CnTxAmt)||']');
5159 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.LoTxAmt = ['||to_char(dmpTaxLink.LoTxAmt)||']');
5160 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.ScCnTxAmt = ['||to_char(dmpTaxLink.ScCnTxAmt)||']');
5161 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.ScLoTxAmt = ['||to_char(dmpTaxLink.ScLoTxAmt)||']');
5162 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.FedBasisAmt = ['||to_char(dmpTaxLink.FedBasisAmt)||']');
5163 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.StBasisAmt = ['||to_char(dmpTaxLink.StBasisAmt)||']');
5164 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.CntyBasisAmt = ['||to_char(dmpTaxLink.CntyBasisAmt)||']');
5165 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.CityBasisAmt = ['||to_char(dmpTaxLink.CityBasisAmt)||']');
5166 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.ScStBasisAmt = ['||to_char(dmpTaxLink.ScStBasisAmt)||']');
5167 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.ScCntyBasisAmt = ['||to_char(dmpTaxLink.ScCntyBasisAmt)||']');
5168 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.ScCityBasisAmt = ['||to_char(dmpTaxLink.ScCityBasisAmt)||']');
5169 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.DistBasisAmt = ['||to_char(dmpTaxLink.DistBasisAmt)||']');
5170 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'');
5171 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'----- STEP/NEXPRO Output Parameters -----');
5172 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'');
5173 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.StaStatus = ['||dmpTaxLink.StaStatus||']');
5174 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.CnStatus = ['||dmpTaxLink.CnStatus||']');
5175 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.LoStatus = ['||dmpTaxLink.LoStatus||']');
5176 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.StComment = ['||dmpTaxLink.StComment||']');
5177 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.CnComment = ['||dmpTaxLink.CnComment||']');
5178 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.LoComment = ['||dmpTaxLink.LoComment||']');
5179 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.StExemptAmt = ['||to_char(dmpTaxLink.StExemptAmt)||']');
5180 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.CntyExemptAmt = ['||to_char(dmpTaxLink.CntyExemptAmt)||']');
5181 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.CityExemptAmt = ['||to_char(dmpTaxLink.CityExemptAmt)||']');
5182 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.SecCnExemptAmt = ['||to_char(dmpTaxLink.SecCnExemptAmt)||']');
5183 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.SecLoExemptAmt = ['||to_char(dmpTaxLink.SecLoExemptAmt)||']');
5184 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.StReasonCode = ['||dmpTaxLink.StReasonCode||']');
5185 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.CntyReasonCode = ['||dmpTaxLink.CntyReasonCode||']');
5186 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.CityReasonCode = ['||dmpTaxLink.CityReasonCode||']');
5187 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.StTaxCertNo = ['||dmpTaxLink.StTaxCertNo||']');
5188 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.CnTaxCertNo = ['||dmpTaxLink.CnTaxCertNo||']');
5189 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'TaxLink.LoTaxCertNo = ['||dmpTaxLink.LoTaxCertNo||']');
5190 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'====================================');
5191 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'----- JurLink Output Parameters ----');
5192 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'====================================');
5193 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.ReturnCode = ['||dmpJurLink.ReturnCode||']');
5194 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.POOJurRC = ['||dmpJurLink.POOJurRC||']');
5195 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.POAJurRC = ['||dmpJurLink.POAJurRC||']');
5196 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.ShpToJurRC = ['||dmpJurLink.ShpToJurRC||']');
5197 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.ShpFrJurRC = ['||dmpJurLink.ShpFrJurRC||']');
5198 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.JurLocType = ['||dmpJurLink.JurLocType||']');
5199 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.JurState = ['||dmpJurLink.JurState||']');
5200 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.JurCity = ['||dmpJurLink.JurCity||']');
5201 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.JurZip = ['||dmpJurLink.JurZip||']');
5202 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.JurGeo = ['||dmpJurLink.JurGeo||']');
5203 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.TypState = ['||dmpJurLink.TypState||']');
5204 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.TypCnty = ['||dmpJurLink.TypCnty||']');
5205 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.TypCity = ['||dmpJurLink.TypCity||']');
5206 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.TypSecState = ['||dmpJurLink.TypSecState||']');
5207 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.TypSecCnty = ['||dmpJurLink.TypSecCnty||']');
5208 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'JurLink.TypSecCity = ['||dmpJurLink.TypSecCity||']');
5209 /*Bug 3257088
5210 arp_tax.tax_info_rec.global_attribute16 := dmpJurLink.JurLocType ;*/
5211 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'3257078:JurLink.JurLocType = ['||dmpJurLink.JurLocType||']');
5212 END IF;
5213 END IF; -- input_param_flag?
5214
5215 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5216 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()-');
5217 END IF;
5218
5219 END dump_vendor_rec;
5220
5221 Begin /*Constructor*/
5222 initialize;
5223 END ZX_TAXWARE_TAX_SERVICE_PKG;