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