DBA Data[Home] [Help]

PACKAGE BODY: APPS.ZX_TAX_DEFAULT_PKG

Source


1 package body ZX_TAX_DEFAULT_PKG as
2 /* $Header: zxdidefhierpvtb.pls 120.14.12010000.1 2008/07/28 13:30:31 appldev ship $ */
3 
4   g_current_runtime_level      NUMBER;
5   g_level_procedure          CONSTANT  NUMBER   := FND_LOG.LEVEL_PROCEDURE;
6   g_level_statement            CONSTANT NUMBER   := FND_LOG.LEVEL_STATEMENT;
7   g_level_unexpected           CONSTANT NUMBER   := FND_LOG.LEVEL_UNEXPECTED;
8 
9 ---------------------------------------------------------------------------
10 --  PUBLIC PROCEDURE
11 --  get_default_tax_classification
12 --
13 --  DESCRIPTION
14 --  This procedure is the wrapper to call the defaulting tax classification
15 --  code API in AR, AP or PA  depending on the application id
16 --  passed in
17 --
18 
19 PROCEDURE get_default_tax_classification (
20     p_definfo               IN OUT NOCOPY  ZX_API_PUB.def_tax_cls_code_info_rec_type,
21     p_return_status            OUT NOCOPY  VARCHAR2,
22     p_error_buffer             OUT NOCOPY  VARCHAR2) IS
23 
24  l_appl_short_name             VARCHAR2(10);
25  l_memo_line_id                NUMBER;
26  l_customer_id                 NUMBER;
27  l_tax_calculation_flag        VARCHAR(1);
28 
29  CURSOR get_tax_calc_flag IS
30  SELECT tax_calculation_flag
31  FROM RA_CUST_TRX_TYPES_ALL
32  WHERE org_id = p_definfo.internal_organization_id
33  AND cust_trx_type_id = p_definfo.receivables_trx_type_id;
34 
35 BEGIN
36 
37   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
38 
39   IF (g_level_procedure >= g_current_runtime_level ) THEN
40     FND_LOG.STRING(g_level_procedure,
41            'ZX.PLSQL.ZX_TAX_DEFAULT_PKG.get_default_tax_classification.BEGIN',
42            'ZX_TAX_DEFAULT_PKG: get_default_tax_classification(+)');
43   END IF;
44 
45   -- init error buffer and return status
46   --
47   p_return_status  := FND_API.G_RET_STS_SUCCESS;
48   p_error_buffer   := NULL;
49 
50   -- bug 4395918 : Add conditions for 'PURCHASE_TRANSACTION_TAX_QUOTE' and
51   --               'SALES_TRANSACTION_TAX_QUOTE'
52   --
53   IF p_definfo.event_class_code = 'PURCHASE_TRANSACTION_TAX_QUOTE' OR
54      (p_definfo.application_id IN (200, 201, 230, 401) AND
55       p_definfo.event_class_code <> 'SALES_TRANSACTION_TAX_QUOTE')
56   THEN
57     --
58     -- determine application short name for P2P products
59     --
60     IF p_definfo.application_id = 200 THEN
61       l_appl_short_name := 'SQLAP';
62     ELSE
63       l_appl_short_name := 'PO';
64     END IF;
65 
66     ZX_AP_TAX_CLASSIFICATN_DEF_PKG.get_default_tax_classification (
67           p_ref_doc_application_id        => p_definfo.ref_doc_application_id,
68           p_ref_doc_entity_code           => p_definfo.ref_doc_entity_code,
69           p_ref_doc_event_class_code      => p_definfo.ref_doc_event_class_code,
70           p_ref_doc_trx_id                => p_definfo.ref_doc_trx_id,
71           p_ref_doc_line_id               => p_definfo.ref_doc_line_id,
72           p_ref_doc_trx_level_type        => p_definfo.ref_doc_trx_level_type,
73           p_vendor_id                     => p_definfo.ship_third_pty_acct_id,
74           p_vendor_site_id                => p_definfo.ship_third_pty_acct_site_id,
75           p_code_combination_id           => p_definfo.account_ccid,
76           p_concatenated_segments         => p_definfo.account_string,
77           p_templ_tax_classification_cd   => p_definfo.defaulting_attribute3,
78           p_ship_to_location_id           => p_definfo.ship_to_location_id,
79           p_ship_to_loc_org_id            => p_definfo.defaulting_attribute1,
80           p_inventory_item_id             => p_definfo.product_id,
81           p_item_org_id                   => p_definfo.product_org_id,
82           p_tax_classification_code       => p_definfo.input_tax_classification_code,
83           p_allow_tax_code_override_flag  => p_definfo.x_allow_tax_code_override_flag,
84           p_tax_user_override_flag        => p_definfo.tax_user_override_flag,
85           p_user_tax_name                 => p_definfo.overridden_tax_cls_code,
86           p_legal_entity_id               => p_definfo.legal_entity_id,
87           APPL_SHORT_NAME                 => l_appl_short_name,
88           FUNC_SHORT_NAME                 => p_definfo.defaulting_attribute2,
89           p_calling_sequence              => 'ZX_TAX_DEFAULT_PKG.GET_DEFAULT_TAX_CLASSIFICATION',
90           p_event_class_code              => p_definfo.event_class_code,
91           p_entity_code                   => p_definfo.entity_code,
92           p_application_id                => p_definfo.application_id,
93           p_internal_organization_id      => p_definfo.internal_organization_id);
94 
95     p_definfo.x_tax_classification_code := p_definfo.input_tax_classification_code;
96 
97 
98   ELSIF p_definfo.event_class_code = 'SALES_TRANSACTION_TAX_QUOTE' OR
99         p_definfo.application_id IN (222, 300, 660, 697)
100   THEN
101     -- determine application short name for O2C products
102     --
103     IF  p_definfo.application_id = 222 THEN
104       -- detrmining the tax calculation flag value for calling defaulting
105       OPEN get_tax_calc_flag;
106       FETCH get_tax_calc_flag INTO l_tax_calculation_flag;
107       CLOSE get_tax_calc_flag;
108       l_appl_short_name := 'AR';
109     ELSE
110       l_appl_short_name := NULL;
111     END IF;
112 
113     -- bug 4382316
114     IF (p_definfo.product_id IS NOT NULL AND
115         p_definfo.product_org_id IS NULL) THEN
116       l_memo_line_id  := p_definfo.product_id;
117     END IF;
118 
119     l_customer_id :=
120       NVL(p_definfo.ship_third_pty_acct_id, p_definfo.bill_third_pty_acct_id);
121 
122     IF p_definfo.application_id <> 222 OR (p_definfo.application_id = 222 AND
123                                        l_tax_calculation_flag = 'Y') THEN
124       ZX_AR_TAX_CLASSIFICATN_DEF_PKG.get_default_tax_classification (
125           p_ship_to_site_use_id      => p_definfo.ship_to_cust_acct_site_use_id,
126           p_bill_to_site_use_id      => p_definfo.bill_to_cust_acct_site_use_id,
127           p_inventory_item_id        => p_definfo.product_id,
128           p_organization_id          => p_definfo.product_org_id,
129           p_set_of_books_id          => p_definfo.ledger_id,
130           p_trx_date                 => p_definfo.trx_date,
131           p_trx_type_id              => p_definfo.receivables_trx_type_id,
132           p_tax_classification_code  => p_definfo.output_tax_classification_code,
133           p_cust_trx_id              => p_definfo.trx_id,
134           p_cust_trx_line_id         => p_definfo.trx_line_id,
135           p_customer_id              => l_customer_id,
136           p_memo_line_id             => l_memo_line_id,
137           APPL_SHORT_NAME            => l_appl_short_name ,
138           FUNC_SHORT_NAME            => p_definfo.defaulting_attribute3,
139           p_party_flag               => p_definfo.defaulting_attribute1,
140           p_party_location_id        => p_definfo.defaulting_attribute2,
141           p_entity_code              => p_definfo.entity_code,
142           p_event_class_code         => p_definfo.event_class_code,
143           p_application_id           => p_definfo.application_id,
144           p_internal_organization_id => p_definfo.internal_organization_id,
145           p_ccid                     => p_definfo.account_ccid);
146     END IF;
147 
148     p_definfo.x_tax_classification_code := p_definfo.output_tax_classification_code;
149 
150 
151   ELSIF p_definfo.application_id = 275 THEN
152 
153     l_appl_short_name := 'PA';
154     --
155     -- PA product
156     --
157 
158     ZX_AR_TAX_CLASSIFICATN_DEF_PKG.get_pa_default_classification (
159           p_project_id               => p_definfo.defaulting_attribute1,
160           p_project_customer_id      => p_definfo.defaulting_attribute2,
161           p_ship_to_site_use_id      => p_definfo.ship_to_cust_acct_site_use_id,
162           p_bill_to_site_use_id      => p_definfo.bill_to_cust_acct_site_use_id,
163           p_set_of_books_id          => p_definfo.ledger_id,
164           p_event_id                 => p_definfo.defaulting_attribute3,
165           p_expenditure_item_id      => p_definfo.defaulting_attribute4,
166           p_line_type                => p_definfo.defaulting_attribute5,
167           p_request_id               => p_definfo.defaulting_attribute6,
168           p_user_id                  => p_definfo.defaulting_attribute7,
169           p_trx_date                 => p_definfo.trx_date,
170           p_tax_classification_code  => p_definfo.output_tax_classification_code,
171           p_ship_to_customer_id      => p_definfo.ship_third_pty_acct_id,
172           p_bill_to_customer_id      => p_definfo.bill_third_pty_acct_id,
173           p_application_id           => p_definfo.application_id,
174           p_internal_organization_id => p_definfo.internal_organization_id);
175 
176     p_definfo.x_tax_classification_code := p_definfo.output_tax_classification_code;
177 
178   ELSE
179     --
180     -- unknown application id
181     --
182     IF (g_level_statement >= g_current_runtime_level ) THEN
183         FND_LOG.STRING(g_level_statement,
184                'ZX.PLSQL.ZX_TAX_DEFAULT_PKG.get_default_tax_classification',
185                'Invalid application_id to fetch default Tax Classification Code : '
186                || TO_CHAR(p_definfo.application_id));
187     END IF;
188 
189   END IF;
190 
191   IF (g_level_procedure >= g_current_runtime_level ) THEN
192     FND_LOG.STRING(g_level_procedure,
193            'ZX.PLSQL.ZX_TAX_DEFAULT_PKG.get_default_tax_classification.END',
194            'ZX_TAX_DEFAULT_PKG: get_default_tax_classification(-)'||
195            ' tax class code: '||p_definfo.x_tax_classification_code);
196   END IF;
197 
198   EXCEPTION
199     WHEN OTHERS THEN
200     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
201     p_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
202 
203     FND_MESSAGE.SET_NAME('ZX','ZX_UNEXPECTED_ERROR');
204     FND_MSG_PUB.Add;
205 
206     IF (g_level_unexpected >= g_current_runtime_level ) THEN
207         FND_LOG.STRING(g_level_unexpected,
208                'ZX.PLSQL.ZX_TAX_DEFAULT_PKG.get_default_tax_classification',
209                 p_error_buffer);
210     END IF;
211 
212 END get_default_tax_classification;
213 
214 ---------------------------------------------------------------------------
215 --  PUBLIC PROCEDURE
216 --  map_parm_for_def_tax_classif
217 --
218 --  DESCRIPTION
219 --  This procedure maps products specific parameters to the columns
220 --  defined in default tax classification info record
221 
222 -- Bug#4868489- This procedure is no longer used but keep
223 -- it here just for the mapping reference
224 --
225 --PROCEDURE map_parm_for_def_tax_classif(
226 --    p_definfo                IN OUT NOCOPY  DEFINFO%TYPE,
227 --    p_defaulting_attribute1  IN             VARCHAR2,
228 --    p_defaulting_attribute2  IN             VARCHAR2,
229 --    p_defaulting_attribute3  IN             VARCHAR2,
230 --    p_defaulting_attribute4  IN             VARCHAR2,
231 --    p_defaulting_attribute5  IN             VARCHAR2,
232 --    p_defaulting_attribute6  IN             VARCHAR2,
233 --    p_defaulting_attribute7  IN             VARCHAR2,
234 --    p_defaulting_attribute8  IN             VARCHAR2,
235 --    p_defaulting_attribute9  IN             VARCHAR2,
236 --    p_defaulting_attribute10 IN             VARCHAR2,
237 --    p_return_status             OUT NOCOPY  VARCHAR2,
238 --    p_error_buffer              OUT NOCOPY  VARCHAR2)
239 --IS
240 --BEGIN
241 --
242 --  g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
243 --
244 --  IF (g_level_statement >= g_current_runtime_level ) THEN
245 --    FND_LOG.STRING(g_level_statement,
246 --                   'ZX.PLSQL.ZX_TAX_DEFAULT_PKG.map_parm_for_def_tax_classif.BEGIN',
247 --                   'ZX_TAX_DEFAULT_PKG: map_parm_for_def_tax_classif(+)');
248 --  END IF;
249 --
250 --  --
251 --  -- init error buffer and return status
252 --  --
253 --  p_return_status  := FND_API.G_RET_STS_SUCCESS;
254 --  p_error_buffer   := NULL;
255 --
256 --  --
257 --  -- map parameters for each product
258 --  --
259 --  IF p_definfo.application_id IN (200, 201, 230, 401) THEN
260 --    --
261 --    -- P2P
262 --    --
263 --    p_definfo.ship_to_loc_org_id            := p_defaulting_attribute1;
264 --    p_definfo.func_short_name               := p_defaulting_attribute2;
265 --    p_definfo.templ_tax_classification_code := p_defaulting_attribute3;
266 --
267 --  ELSIF p_definfo.application_id IN (222, 300, 660, 697) THEN
268 --    --
269 --    -- O2C
270 --    --
271 --    p_definfo.party_flag        := p_defaulting_attribute1;
272 --    p_definfo.party_location_id := p_defaulting_attribute2;
273 --    p_definfo.func_short_name   := p_defaulting_attribute3;
274 --
275 --  ELSIF p_definfo.application_id = 275 THEN
276 --    --
277 --    -- PA
278 --    --
279 --    p_definfo.project_id          := p_defaulting_attribute1;
280 --    p_definfo.project_customer_id := p_defaulting_attribute2;
281 --    p_definfo.event_id            := p_defaulting_attribute3;
282 --    p_definfo.expenditure_item_id := p_defaulting_attribute4;
283 --    p_definfo.line_type           := p_defaulting_attribute5;
284 --    p_definfo.request_id          := p_defaulting_attribute6;
285 --    p_definfo.user_id             := p_defaulting_attribute7;
286 --  END IF;
287 --
288 --  IF (g_level_statement >= g_current_runtime_level ) THEN
289 --    FND_LOG.STRING(g_level_statement,
290 --                   'ZX.PLSQL.ZX_TAX_DEFAULT_PKG.map_parm_for_def_tax_classif.END',
291 --                   'ZX_TAX_DEFAULT_PKG: map_parm_for_def_tax_classif(-)');
292 --  END IF;
293 --
294 --  EXCEPTION
295 --    WHEN OTHERS THEN
296 --    p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
297 --    p_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
298 --
299 --    FND_MESSAGE.SET_NAME('ZX','ZX_UNEXPECTED_ERROR');
300 --    FND_MSG_PUB.Add;
301 --
302 --    IF (g_level_unexpected >= g_current_runtime_level ) THEN
303 --        FND_LOG.STRING(g_level_unexpected,
304 --                      'ZX.PLSQL.ZX_TAX_DEFAULT_PKG.map_parm_for_def_tax_classif',
305 --                      p_error_buffer);
306 --    END IF;
307 --END map_parm_for_def_tax_classif;
308 
309 END ZX_TAX_DEFAULT_PKG;