DBA Data[Home] [Help]

PACKAGE: APPS.ZX_TDS_CALC_SERVICES_PUB_PKG

Source


1 PACKAGE ZX_TDS_CALC_SERVICES_PUB_PKG AUTHID CURRENT_USER AS
2 /* $Header: zxdwtxcalsrvpubs.pls 120.52 2011/05/30 06:45:55 ssanka ship $ */
3 
4 
5  /* ======================================================================*
6   | Memory Structures                                                     |
7   * ======================================================================*/
8 
9  TYPE transaction_rec_type IS RECORD
10      (SUBSCRIBER_PARTY_ID                NUMBER,
11       APPLICATION_ID                     NUMBER,
12       ENTITY_CODE                        VARCHAR2(30),
13       EVENT_CLASS_CODE                   VARCHAR2(30),
14       EVENT_TYPE_CODE                    VARCHAR2(30),
15       TRANSACTION_ID			 NUMBER,
16       TAX_EVENT_CLASS_CODE               VARCHAR2(30),
17       TAX_EVENT_TYPE_CODE                VARCHAR2(30),
18       SUB_PARTY_TAX_PROF_ID              NUMBER
19      );
20 
21  TYPE event_class_rec_type IS RECORD
22      (SUB_PARTY_TAX_PROF_ID             NUMBER,
23       APPLICATION_ID                    NUMBER,
24       ENTITY_CODE                       VARCHAR2(30),
25       EVENT_CLASS_CODE                  VARCHAR2(30),
26       TAX_EVENT_CLASS_CODE              VARCHAR2(30),
27       Det_Factor_Templ_Code		VARCHAR2(80),
28       TAX_LINES_SUM_TEMPLATE		VARCHAR2(80),
29       REC_TAX_LINES_SUM_TEMPLATE	VARCHAR2(80),
30       NON_REC_TAX_LINES_SUM_TEMPLATE	VARCHAR2(80),
31       Rounding_Level_Code			VARCHAR2(30),
32       ROUNDING_LEVEL_HIER1		VARCHAR2(30),
33       ROUNDING_LEVEL_HIER2		VARCHAR2(30),
34       ROUNDING_LEVEL_HIER3		VARCHAR2(30),
35       ROUNDING_LEVEL_HIER4		VARCHAR2(30),
36       ROUNDING_LEVEL_HIER5		VARCHAR2(30),
37       Allow_Manual_Lin_Recalc_Flag		VARCHAR2(30),
38       Allow_Manual_Lines_Flag		VARCHAR2(30),
39       Allow_Override_Flag			VARCHAR2(30),
40       SHIP_TO_PARTY_SOURCE               VARCHAR2(80),
41       SHIP_FROM_PARTY_SOURCE             VARCHAR2(80),
42       POA_PARTY_SOURCE                   VARCHAR2(80),
43       POO_PARTY_SOURCE                   VARCHAR2(80),
44       PAYING_PARTY_SOURCE                VARCHAR2(80),
45       OWN_HQ_PARTY_SOURCE                VARCHAR2(80),
46       TRAD_HQ_PARTY_SOURCE               VARCHAR2(80),
47       POI_PARTY_SOURCE                   VARCHAR2(80),
48       POD_PARTY_SOURCE                   VARCHAR2(80),
49       BILL_TO_PARTY_SOURCE               VARCHAR2(80),
50       BILL_FROM_PARTY_SOURCE             VARCHAR2(80),
51       TTL_TRNS_PARTY_SOURCE              VARCHAR2(80),
52       RECORD_FLAG                        VARCHAR2(1),
53       UPDATE_FLAG                        VARCHAR2(1),
54       CREATE_FLAG                        VARCHAR2(1),
55       CANCEL_DELETE_FLAG                 VARCHAR2(1),
56       OVERRIDE_LEVEL                     VARCHAR2(30)
57      );
58 
59  TYPE detail_tax_lines_tbl_type IS TABLE OF zx_detail_tax_lines_gt%ROWTYPE
60    INDEX BY BINARY_INTEGER;
61 
62  TYPE sum_tax_line_tbl_type IS TABLE OF zx_lines_summary%ROWTYPE
63    INDEX BY BINARY_INTEGER;
64 
65  TYPE tax_regime_rec_type IS RECORD
66      (TAX_REGIME_PRECEDENCE		NUMBER,
67       TAX_REGIME_ID			NUMBER,
68       TAX_PROVIDER_ID 		        NUMBER,
69       PARENT_REGIME_ID                  NUMBER
70      );
71 
72   TYPE tax_regime_tbl_type IS TABLE OF tax_regime_rec_type
73     INDEX BY BINARY_INTEGER;
74 
75 
76   TYPE detail_tax_regime_rec_type IS RECORD
77      (TRX_LINE_INDEX                    BINARY_INTEGER,
78       TAX_REGIME_PRECEDENCE		NUMBER,
79       TAX_REGIME_ID			NUMBER
80      );
81 
82   TYPE detail_tax_regime_tbl_type IS TABLE OF detail_tax_regime_rec_type
83     INDEX BY BINARY_INTEGER;
84 
85   TYPE subscriber_rec_type IS RECORD
86      (SUB_PARTY_TAX_PROF_ID              NUMBER,
87        TAX_REGIME_ID			 NUMBER,
88       OWN_SUB_PARTY_TAX_PROF_ID          NUMBER,
89       SUBSCRIPTION_LEVEL                 NUMBER
90      );
91 
92  TYPE subscriber_tbl_type IS TABLE OF subscriber_rec_type
93    INDEX BY BINARY_INTEGER;
94 
95 
96  /* ======================================================================*
97   |  Structures for caching                                               |
98   * ======================================================================*/
99 
100 
101  -- Tax lines Cache
102 
103  TYPE trx_tax_info_rec IS RECORD (
104  tax_info		ZX_LINES%ROWTYPE
105   );
106 
107  TYPE trx_tax_info_rec_tbl IS TABLE OF trx_tax_info_rec
108    INDEX BY BINARY_INTEGER;
109 
110  -- Template evaluation cache
111  TYPE trx_line_cond_grp_eval_rec IS RECORD(
112 	det_factor_templ_code  zx_det_factor_templ_b.det_factor_templ_code%TYPE,
113         trx_line_index         BINARY_INTEGER,
114         application_id         zx_lines.application_id%TYPE,
115         tax_event_class_code   zx_lines.tax_event_class_code%TYPE,
116 	condition_group_code   zx_condition_groups_b.condition_group_code%TYPE,
117         result                 boolean);
118 
119  TYPE trx_line_cond_grp_eval_tbl IS TABLE OF trx_line_cond_grp_eval_rec
120    INDEX BY BINARY_INTEGER;
121 
122  -- Jurisdiction information cache
123  TYPE zx_jurisdiction_info_rec IS RECORD (
124 	location_id	hz_locations.location_id%TYPE,
125 	location_type	varchar2(100),
126 	application_id	number,
127 	event_class	varchar2(30),
128 	tax		zx_taxes_b.tax%TYPE,
129 	tax_regime_code	zx_regimes_b.tax_regime_code%TYPE,
130 	jurisdiction_id	zx_jurisdictions_b.tax_jurisdiction_id%TYPE);
131 
132  TYPE zx_jurisdiction_info_cache IS TABLE OF zx_jurisdiction_info_rec
133    INDEX BY BINARY_INTEGER;
134 
135  -- Fiscal classification info cache
136  --TYPE classification_rec IS TABLE OF VARCHAR2(30);
137 
138  -- Tax Regime information cache
139  TYPE zx_regime_info_cache IS TABLE OF zx_regimes_b%ROWTYPE
140    INDEX BY BINARY_INTEGER;
141 
142  -- TSRM numeric parameter cache
143  TYPE tsrm_num_value_tbl IS TABLE OF zx_conditions.numeric_value%TYPE
144    INDEX BY BINARY_INTEGER;
145 
146  -- TSRM  alphanumeric parameter and trx alphanumeric value cache
147  TYPE tsrm_alphanum_value_tbl IS TABLE OF zx_conditions.alphanumeric_value%TYPE
148    INDEX BY BINARY_INTEGER;
149 
150  -- Reporting code info Cache for Legal Message Columns
151  TYPE zx_rep_code_info_rec IS RECORD (
152     result_id ZX_PROCESS_RESULTS.RESULT_ID%TYPE,
153     reporting_code_id ZX_REPORTING_CODES_B.REPORTING_CODE_ID%TYPE
154   );
155 
156  TYPE zx_rep_code_tbl IS TABLE OF zx_rep_code_info_rec
157    INDEX BY BINARY_INTEGER;
158 
159  /* ======================================================================*
160   |  Global Structures                                                    |
161   * ======================================================================*/
162 
163  g_detail_tax_lines_tbl		      detail_tax_lines_tbl_type;
164  g_check_cond_grp_tbl		        trx_line_cond_grp_eval_tbl;
165  g_fsc_tbl			                ZX_TCM_CONTROL_PKG.zx_fsc_class_info_cache;
166  g_tsrm_num_value_tbl		        tsrm_num_value_tbl;
167  g_tsrm_alphanum_value_tbl	    tsrm_alphanum_value_tbl;
168  g_trx_alphanum_value_tbl       tsrm_alphanum_value_tbl;
169  g_msg_context_info_rec         ZX_API_PUB.CONTEXT_INFO_REC_TYPE;
170  g_zx_rep_code_tbl              zx_rep_code_tbl;
171 /* ======================================================================*
172  |  Global Constants                                                     |
173  * ======================================================================*/
174 
175  g_lines_per_commit            CONSTANT NUMBER       :=  1000;
176 
177  -- Tax Hold Code and Tax Hold Release Code
178  g_tax_variance_hold           CONSTANT VARCHAR2(30) := 'TAX VARIANCE';
179  g_tax_amt_range_hold          CONSTANT VARCHAR2(30) := 'TAX AMOUNT RANGE';
180  g_tax_variance_corrected      CONSTANT VARCHAR2(30) := 'TAX VARIANCE CORRECTED';
181  g_tax_amt_range_corrected     CONSTANT VARCHAR2(30) := 'TAX AMOUNT RANGE CORRECTED';
182 
183  -- numeric value for the tax hold_code
184  g_tax_variance_hold_val           CONSTANT  NUMBER := 1;
185  g_tax_amt_range_hold_val          CONSTANT  NUMBER := 2;
186  g_tax_variance_corrected_val      CONSTANT NUMBER := 1;
187  g_tax_amt_range_corrected_val     CONSTANT  NUMBER := 2;
188 
189 
190 /* ======================================================================*
191   |  Global Variable                                                     |
192   * =====================================================================*/
193 
194  g_max_tax_line_number		zx_lines.tax_line_number%TYPE;
195  g_trx_lines_counter		NUMBER;
196 
197  g_rounding_level		ZX_PARTY_TAX_PROFILE.ROUNDING_LEVEL_CODE%TYPE;
198  g_rounding_rule                ZX_PARTY_TAX_PROFILE.ROUNDING_RULE_CODE%TYPE;
199  g_rnd_lvl_party_tax_prof_id	ZX_PARTY_TAX_PROFILE.PARTY_TAX_PROFILE_ID%TYPE;
200  g_rounding_lvl_party_type      ZX_LINES.ROUNDING_LVL_PARTY_TYPE%TYPE;
201  g_ln_action_cancel_exist_flg   VARCHAR2(1);
202  g_ln_action_discard_exist_flg  VARCHAR2(1);
203  g_ln_action_nochange_exist_flg  VARCHAR2(1);
204  --Bug 8736358
205  g_ln_action_update_exist_flg  VARCHAR2(1);
206  g_process_copy_and_create_flg  VARCHAR2(1);
207  g_process_for_appl_flg         ZX_PARTY_TAX_PROFILE.PROCESS_FOR_APPLICABILITY_FLAG%TYPE;
208  g_tax_inclusive_flg            ZX_PARTY_TAX_PROFILE.INCLUSIVE_TAX_FLAG%TYPE;
209  g_reference_doc_exist_flg      VARCHAR2(1);
210 
211  -- added for bug fix 5417887
212  g_ctrl_total_line_tx_amt_flg   VARCHAR2(1);
213  g_ctrl_total_hdr_tx_amt_flg    VARCHAR2(1);
214 
215  -- added for bug 5684123
216  g_overridden_tax_ln_exist_flg  VARCHAR2(1);
217 
218 /* ======================================================================*
219   |  Public Procedures                                                   |
220   * =====================================================================*/
221 PROCEDURE  get_tax_regimes (
222   p_trx_line_index	    IN		    BINARY_INTEGER,
223   p_event_class_rec	    IN  OUT NOCOPY  zx_api_pub.event_class_rec_type,
224   x_return_status	    OUT NOCOPY      VARCHAR2);
225 
226 PROCEDURE  calculate_tax (
227   p_trx_line_index	    IN	            BINARY_INTEGER,
228   p_event_class_rec	    IN  OUT NOCOPY  zx_api_pub.event_class_rec_type,
229   x_return_status           OUT NOCOPY      VARCHAR2);
230 
231 PROCEDURE  override_detail_tax_lines (
232   p_trx_line_index	     IN	    	     BINARY_INTEGER,
233   p_event_class_rec	     IN  OUT NOCOPY  zx_api_pub.event_class_rec_type,
234   x_return_status            OUT NOCOPY      VARCHAR2);
235 
236 PROCEDURE  tax_line_determination (
237   p_event_class_rec	     IN  OUT NOCOPY  zx_api_pub.event_class_rec_type,
238   x_return_status            OUT NOCOPY      VARCHAR2);
239 
240 PROCEDURE  override_summary_tax_lines (
241   p_trx_line_index	     IN		     BINARY_INTEGER,
242   p_event_class_rec	     IN  OUT NOCOPY  zx_api_pub.event_class_rec_type,
243   x_return_status            OUT NOCOPY      VARCHAR2 );
244 
245 PROCEDURE prorate_imported_sum_tax_lines (
246  p_event_class_rec        IN 	       zx_api_pub.event_class_rec_type,
247  x_return_status          OUT NOCOPY   VARCHAR2);
248 
249 PROCEDURE  calculate_tax_for_import (
250  p_trx_line_index	  IN	       BINARY_INTEGER,
251  p_event_class_rec	  IN           zx_api_pub.event_class_rec_type,
252  x_return_status          OUT NOCOPY   VARCHAR2);
253 
254 PROCEDURE validate_document_for_tax (
255   x_return_status	     OUT NOCOPY	    VARCHAR2);
256 
257 PROCEDURE reverse_document (
258   p_event_class_rec  IN         ZX_API_PUB.EVENT_CLASS_REC_TYPE,
259   x_return_status    OUT NOCOPY VARCHAR2 );
260 
261 PROCEDURE dump_detail_tax_lines_into_gt (
262  p_detail_tax_lines_tbl	  IN OUT NOCOPY		detail_tax_lines_tbl_type,
263  x_return_status	     OUT NOCOPY		VARCHAR2);
264 
265 PROCEDURE dump_detail_tax_lines_into_gt (
266  x_return_status	     OUT NOCOPY		VARCHAR2);
267 
268 PROCEDURE update_exchange_rate (
269   p_event_class_rec      	IN          ZX_API_PUB.EVENT_CLASS_REC_TYPE,
270   p_ledger_id			IN          NUMBER,
271   p_currency_conversion_rate    IN          NUMBER,
272   p_currency_conversion_type    IN          VARCHAR2,
273   p_currency_conversion_date    IN          DATE,
274   x_return_status        	OUT NOCOPY  VARCHAR2 );
275 
276 PROCEDURE initialize (
277   p_event_class_rec        IN ZX_API_PUB.event_class_rec_type,
278   p_init_level             IN VARCHAR2,
279   x_return_status          OUT NOCOPY    VARCHAR2 );
280 
281 PROCEDURE initialize;
282 
283 PROCEDURE get_process_for_appl_flg (
284   p_tax_prof_id   IN         NUMBER,
285   x_return_status OUT NOCOPY VARCHAR2 );
286 
287 FUNCTION get_rep_code_id(
288   p_result_id            IN ZX_PROCESS_RESULTS.RESULT_ID%TYPE,
289   p_date                 IN ZX_LINES.TRX_DATE%TYPE
290 ) RETURN ZX_REPORTING_CODES_B.REPORTING_CODE_ID%TYPE;
291 
292 FUNCTION round_tax_curr_xml_inv (
293   p_amt                   IN      NUMBER,
294   p_ledger_id             IN      NUMBER,
295   p_tax_id                IN      ZX_TAXES_B.TAX_ID%TYPE,
296   p_tax_curr_code         IN      ZX_TAXES_B.TAX_CURRENCY_CODE%TYPE,
297   p_Rounding_Rule_Code    IN      ZX_TAXES_B.Rounding_Rule_Code%TYPE,
298   p_conv_type             IN      VARCHAR2,
299   p_precision             IN      ZX_TAXES_B.TAX_PRECISION%TYPE,
300   p_mau                   IN      ZX_TAXES_B.MINIMUM_ACCOUNTABLE_UNIT%TYPE
301   ) RETURN NUMBER;
302 
303 END  ZX_TDS_CALC_SERVICES_PUB_PKG;
304