[Home] [Help]
PACKAGE BODY: APPS.ZX_REG_REL_PUB
Source
1 PACKAGE BODY ZX_REG_REL_PUB AS
2 /* $Header: zxcregrelpubb.pls 120.19 2006/03/16 07:48:14 hdudeja ship $ */
3
4 /* ==================================================================================================*
5 | PROCEDURE insert_rel : Inserts records in the Tax Regime relations table and builds the hierarchy |
6 | Initially for the given child and parent a record is inserted with level 0 |
7 | Further a hierarchy is created for the child based on the parents hierarchy.|
8 * ==================================================================================================*/
9 PROCEDURE insert_rel
10 (
11 x_return_status OUT NOCOPY VARCHAR2,
12 p_child IN VARCHAR2,
13 p_parent IN VARCHAR2,
14 X_CREATED_BY in NUMBER,
15 X_CREATION_DATE in DATE,
16 X_LAST_UPDATED_BY in NUMBER,
17 X_LAST_UPDATE_DATE in DATE,
18 X_LAST_UPDATE_LOGIN in NUMBER,
19 X_REQUEST_ID in NUMBER,
20 X_PROGRAM_ID in NUMBER,
21 X_PROGRAM_LOGIN_ID in NUMBER,
22 X_PROGRAM_APPLICATION_ID in NUMBER
23 )
24 IS
25 CURSOR C1 is
26 SELECT
27 PARENT_REGIME_CODE,
28 PARENT_REG_LEVEL+1 as lev
29 from zx_regime_relations
30 WHERE REGIME_CODE = p_parent;
31 R1 C1%rowtype;
32 l_level Number := 0;
33 BEGIN
34 -- Initialize API return status to success
35 x_return_status := FND_API.G_RET_STS_SUCCESS;
36 -- Insert a record with level zero
37 insert into zx_regime_relations (regime_rel_id,
38 regime_code,
39 parent_regime_code,
40 parent_reg_level,
41 CREATED_BY,
42 CREATION_DATE,
43 LAST_UPDATED_BY,
44 LAST_UPDATE_DATE,
45 LAST_UPDATE_LOGIN,
46 REQUEST_ID,
47 PROGRAM_ID,
48 PROGRAM_LOGIN_ID,
49 PROGRAM_APPLICATION_ID)
50 values (zx_regime_relations_s.NEXTVAL,
51 p_child,
52 p_parent,
53 l_level,
54 X_CREATED_BY,
55 X_CREATION_DATE,
56 X_LAST_UPDATED_BY,
57 X_LAST_UPDATE_DATE,
58 X_LAST_UPDATE_LOGIN,
59 X_REQUEST_ID,
60 X_PROGRAM_ID,
61 X_PROGRAM_LOGIN_ID,
62 X_PROGRAM_APPLICATION_ID);
63
64 OPEN C1;
65 LOOP
66 FETCH C1 INTO R1;
67 IF C1%NOTFOUND THEN
68 exit;
69 END IF;
70 -- Generating the hierarchy for the child based on the parent hierarchy
71 insert into zx_regime_relations (regime_rel_id, regime_code,
72 parent_regime_code,
73 parent_reg_level,
74 CREATED_BY,
75 CREATION_DATE,
76 LAST_UPDATED_BY,
77 LAST_UPDATE_DATE,
78 LAST_UPDATE_LOGIN,
79 REQUEST_ID,
80 PROGRAM_ID,
81 PROGRAM_LOGIN_ID,
82 PROGRAM_APPLICATION_ID)
83 values (zx_regime_relations_s.NEXTVAL,
84 p_child,
85 R1.PARENT_REGIME_CODE,
86 R1.LEV,
87 X_CREATED_BY,
88 X_CREATION_DATE,
89 X_LAST_UPDATED_BY,
90 X_LAST_UPDATE_DATE,
91 X_LAST_UPDATE_LOGIN,
92 X_REQUEST_ID,
93 X_PROGRAM_ID,
94 X_PROGRAM_LOGIN_ID,
95 X_PROGRAM_APPLICATION_ID);
96
97 END LOOP;
98 close c1;
99 EXCEPTION
100 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
101 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
102 WHEN OTHERS THEN
103 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
104 END insert_rel;
105
106 /* ================================================================================================*
107 | PROCEDURE update_rel : Updates records in Tax Regime relations table and rebuilds the hierarchy |
108 | Initially for the given child, all records are deleted. The hierarchy is |
109 | rebuild for the child. This process is repeated recursively for all the |
110 | children of the given child. |
111 | |
112 * ===============================================================================================*/
113
114 PROCEDURE update_rel
115 (
116 x_return_status OUT NOCOPY VARCHAR2,
117 p_child IN VARCHAR2,
118 p_parent IN VARCHAR2 default null,
119 X_LAST_UPDATED_BY in NUMBER,
120 X_LAST_UPDATE_DATE in DATE,
121 X_LAST_UPDATE_LOGIN in NUMBER,
122 X_REQUEST_ID in NUMBER,
123 X_PROGRAM_ID in NUMBER,
124 X_PROGRAM_LOGIN_ID in NUMBER,
125 X_PROGRAM_APPLICATION_ID in NUMBER
126 )
127 IS
128 CURSOR C1 is
129 SELECT
130 REGIME_CODE ,
131 PARENT_REGIME_CODE
132 FROM zx_regime_relations
133 WHERE PARENT_REGIME_CODE = p_child AND
134 PARENT_REG_LEVEL = 0;
135 R1 C1%rowtype;
136 l_err_status VARCHAR2(1) ;
137 BEGIN
138 -- Initialize API return status to success
139 x_return_status := FND_API.G_RET_STS_SUCCESS;
140 -- Delete all the current records of the child
141 Delete
142 from zx_regime_relations
143 where regime_code = p_child;
144 -- Regenerate the child hierarchy with the new parent if the p_parent is not null
145 IF p_parent iS NOT NULL THEN
146 insert_rel(l_err_status,p_child,p_parent,
147 -- for created by and created date use the same update by and update date
148 X_LAST_UPDATED_BY, X_LAST_UPDATE_DATE,
149 X_LAST_UPDATED_BY, X_LAST_UPDATE_DATE,
150 X_LAST_UPDATE_LOGIN, X_REQUEST_ID, X_PROGRAM_ID,
151 X_PROGRAM_LOGIN_ID, X_PROGRAM_APPLICATION_ID);
152 END IF;
153 -- Repeat the update process for all the children of the regime p_child
154 OPEN C1;
155 LOOP
156 FETCH C1 INTO R1;
157 IF C1%NOTFOUND THEN
158 exit;
159 END IF;
160 update_rel(l_err_status,R1.REGIME_CODE,R1.PARENT_REGIME_CODE,
161 X_LAST_UPDATED_BY, X_LAST_UPDATE_DATE,
162 X_LAST_UPDATE_LOGIN, X_REQUEST_ID, X_PROGRAM_ID,
163 X_PROGRAM_LOGIN_ID, X_PROGRAM_APPLICATION_ID);
164
165 END LOOP;
166 close c1;
167 EXCEPTION
168 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
169 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
170 WHEN OTHERS THEN
171 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
172 END;
173
174 /* ================================================================================================*
175 | PROCEDURE update_taxes : Updates records in Taxes table if the reporting tax authority or the |
176 | collecting tax authority is updated in the tax regimes table and not |
177 | overriddenin the taxes table. |
178 * =================================================================================================*/
179
180 PROCEDURE update_taxes
181 (
182 x_return_status OUT NOCOPY VARCHAR2,
183 p_regime_code IN VARCHAR2,
184 p_old_rep_tax_auth_id IN NUMBER,
185 p_old_coll_tax_auth_id IN NUMBER,
186 p_new_rep_tax_auth_id IN NUMBER,
187 p_new_coll_tax_auth_id IN NUMBER
188 )
189 IS
190 CURSOR C1 is
191 SELECT
192 ATTRIBUTE13,
193 ATTRIBUTE14,
194 ATTRIBUTE15,
195 ATTRIBUTE_CATEGORY,
196 ATTRIBUTE8,
197 ATTRIBUTE9,
198 ATTRIBUTE10,
199 ATTRIBUTE11,
200 ATTRIBUTE12,
201 Has_Tax_Point_Date_Rule_Flag,
202 Print_On_Invoice_Flag,
203 Use_Legal_Msg_Flag,
204 Calc_Only_Flag,
205 PRIMARY_RECOVERY_TYPE_CODE,
206 Primary_Rec_Type_Rule_Flag,
207 SECONDARY_RECOVERY_TYPE_CODE,
208 Secondary_Rec_Type_Rule_Flag,
209 Primary_Rec_Rate_Det_Rule_Flag,
210 Sec_Rec_Rate_Det_Rule_Flag,
211 Offset_Tax_Flag,
212 REQUEST_ID,
213 PROGRAM_APPLICATION_ID,
214 PROGRAM_ID,
215 Program_Login_Id,
216 Record_Type_Code,
217 Allow_Rounding_Override_Flag,
218 ATTRIBUTE1,
219 ATTRIBUTE2,
220 ATTRIBUTE3,
221 ATTRIBUTE4,
222 ATTRIBUTE5,
223 ATTRIBUTE6,
224 ATTRIBUTE7,
225 Has_Exch_Rate_Date_Rule_Flag,
226 Recovery_Rate_Override_Flag,
227 TAX,
228 TAX_ID,
229 EFFECTIVE_FROM,
230 EFFECTIVE_TO,
231 TAX_REGIME_CODE,
232 TAX_TYPE_CODE,
233 Allow_Manual_Entry_Flag,
234 Allow_Tax_Override_Flag,
235 MIN_TXBL_BSIS_THRSHLD,
236 MAX_TXBL_BSIS_THRSHLD,
237 MIN_TAX_RATE_THRSHLD,
238 MAX_TAX_RATE_THRSHLD,
239 MIN_TAX_AMT_THRSHLD,
240 MAX_TAX_AMT_THRSHLD,
241 COMPOUNDING_PRECEDENCE,
242 PERIOD_SET_NAME,
243 EXCHANGE_RATE_TYPE,
244 TAX_CURRENCY_CODE,
245 REP_TAX_AUTHORITY_ID,
246 COLL_TAX_AUTHORITY_ID,
247 TAX_PRECISION,
248 MINIMUM_ACCOUNTABLE_UNIT,
249 Rounding_Rule_Code,
250 Tax_Status_Rule_Flag,
251 Tax_Rate_Rule_Flag,
252 Def_Place_Of_Supply_Type_Code,
253 Place_Of_Supply_Rule_Flag,
254 Applicability_Rule_Flag,
255 Tax_Calc_Rule_Flag,
256 Txbl_Bsis_Thrshld_Flag,
257 Tax_Rate_Thrshld_Flag,
258 Tax_Amt_Thrshld_Flag,
259 Taxable_Basis_Rule_Flag,
260 Def_Inclusive_Tax_Flag,
261 Thrshld_Grouping_Lvl_Code,
262 Thrshld_Chk_Tmplt_Code,
263 Has_Other_Jurisdictions_Flag,
264 Allow_Exemptions_Flag,
265 Allow_Exceptions_Flag,
266 Allow_Recoverability_Flag,
267 DEF_TAX_CALC_FORMULA,
268 Tax_Inclusive_Override_Flag,
269 DEF_TAXABLE_BASIS_FORMULA,
270 Def_Registr_Party_Type_Code,
271 Registration_Type_Rule_Flag,
272 Reporting_Only_Flag,
273 Auto_Prvn_Flag,
274 Live_For_Processing_Flag,
275 Has_Detail_Tb_Thrshld_Flag,
276 Has_Tax_Det_Date_Rule_Flag,
277 Regn_Num_Same_As_Le_Flag,
278 ZONE_GEOGRAPHY_TYPE,
279 Def_Rec_Settlement_Option_Code,
280 Direct_Rate_Rule_Flag,
281 CONTENT_OWNER_ID ,
282 APPLIED_AMT_HANDLING_FLAG ,
283 PARENT_GEOGRAPHY_TYPE,
284 PARENT_GEOGRAPHY_ID,
285 ALLOW_MASS_CREATE_FLAG,
286 TAX_FULL_NAME ,
287 LAST_UPDATE_DATE ,
288 LAST_UPDATED_BY ,
289 LAST_UPDATE_LOGIN,
290 SOURCE_TAX_FLAG,
291 SPECIAL_INCLUSIVE_TAX_FLAG,
292 DEF_PRIMARY_REC_RATE_CODE,
293 DEF_SECONDARY_REC_RATE_CODE,
294 ALLOW_DUP_REGN_NUM_FLAG,
295 TAX_ACCOUNT_SOURCE_TAX,
296 TAX_ACCOUNT_CREATE_METHOD_CODE,
297 OVERRIDE_GEOGRAPHY_TYPE,
298 TAX_EXMPT_SOURCE_TAX,
299 TAX_EXMPT_CR_METHOD_CODE,
300 OBJECT_VERSION_NUMBER,
301 LIVE_FOR_APPLICABILITY_FLAG,
302 APPLICABLE_BY_DEFAULT_FLAG,
303 LEGAL_REPORTING_STATUS_DEF_VAL
304 FROM ZX_SCO_TAXES
305 WHERE TAX_REGIME_CODE = p_regime_code;
306 R1 C1%rowtype;
307 update_flg BOOLEAN := FALSE;
308 l_rep_tax_auth_id NUMBER;
309 l_coll_tax_auth_id NUMBER;
310 BEGIN
311 -- Initialize API return status to success
312 x_return_status := FND_API.G_RET_STS_SUCCESS;
313 -- Check if update of reporting tax authority id or collecting tax authority has occurred..
314 OPEN C1;
315 LOOP
316 FETCH C1 INTO R1;
317 EXIT WHEN C1%NOTFOUND ;
318 if (nvl(p_old_rep_tax_auth_id,-9999) = nvl(R1.REP_TAX_AUTHORITY_ID,-9999)) THEN
319 update_flg := TRUE;
320 l_rep_tax_auth_id := p_new_rep_tax_auth_id;
321 ELSE
322 l_rep_tax_auth_id := R1.REP_TAX_AUTHORITY_ID;
323 END IF;
324 if (nvl(p_old_coll_tax_auth_id,-9999) = nvl(R1.COLL_TAX_AUTHORITY_ID,-9999)) THEN
325 update_flg := TRUE;
326 l_coll_tax_auth_id := p_new_coll_tax_auth_id;
327 ELSE
328 l_coll_tax_auth_id := R1.COLL_TAX_AUTHORITY_ID;
329 END IF;
330 IF(update_flg) THEN
331 ZX_TAXES_PKG.UPDATE_ROW
335 R1.ATTRIBUTE13 ,
332 (
333 R1.TAX_ID ,
334 R1.Recovery_Rate_Override_Flag ,
336 R1.ATTRIBUTE14 ,
337 R1.ATTRIBUTE15 ,
338 R1.ATTRIBUTE_CATEGORY ,
339 R1.ATTRIBUTE8 ,
340 R1.ATTRIBUTE9 ,
341 R1.ATTRIBUTE10 ,
342 R1.ATTRIBUTE11 ,
343 R1.ATTRIBUTE12 ,
344 R1.Has_Tax_Point_Date_Rule_Flag ,
345 R1.Print_On_Invoice_Flag ,
346 R1.Use_Legal_Msg_Flag ,
347 R1.Calc_Only_Flag ,
348 R1.PRIMARY_RECOVERY_TYPE_CODE ,
349 R1.Primary_Rec_Type_Rule_Flag ,
350 R1.SECONDARY_RECOVERY_TYPE_CODE ,
351 R1.Secondary_Rec_Type_Rule_Flag ,
352 R1.Primary_Rec_Rate_Det_Rule_Flag ,
353 R1.Sec_Rec_Rate_Det_Rule_Flag ,
354 R1.Offset_Tax_Flag ,
355 R1.REQUEST_ID ,
356 R1.PROGRAM_APPLICATION_ID ,
357 R1.PROGRAM_ID ,
358 R1.Program_Login_Id ,
359 R1.Record_Type_Code ,
360 R1.Allow_Rounding_Override_Flag ,
361 R1.ATTRIBUTE1 ,
362 R1.ATTRIBUTE2 ,
363 R1.ATTRIBUTE3 ,
364 R1.ATTRIBUTE4 ,
365 R1.ATTRIBUTE5 ,
366 R1.ATTRIBUTE6 ,
367 R1.ATTRIBUTE7 ,
368 R1.Has_Exch_Rate_Date_Rule_Flag ,
369 R1.TAX ,
370 R1.EFFECTIVE_FROM ,
371 R1.EFFECTIVE_TO ,
372 R1.TAX_REGIME_CODE ,
373 R1.TAX_TYPE_CODE ,
374 R1.Allow_Manual_Entry_Flag ,
375 R1.Allow_Tax_Override_Flag ,
376 R1.MIN_TXBL_BSIS_THRSHLD ,
377 R1.MAX_TXBL_BSIS_THRSHLD ,
378 R1.MIN_TAX_RATE_THRSHLD ,
379 R1.MAX_TAX_RATE_THRSHLD ,
380 R1.MIN_TAX_AMT_THRSHLD ,
381 R1.MAX_TAX_AMT_THRSHLD ,
382 R1.COMPOUNDING_PRECEDENCE ,
383 R1.PERIOD_SET_NAME ,
384 R1.EXCHANGE_RATE_TYPE ,
385 R1.TAX_CURRENCY_CODE ,
386 l_rep_tax_auth_id,
387 l_coll_tax_auth_id ,
388 R1.TAX_PRECISION ,
389 R1.MINIMUM_ACCOUNTABLE_UNIT ,
390 R1.Rounding_Rule_Code ,
391 R1.Tax_Status_Rule_Flag ,
392 R1.Tax_Rate_Rule_Flag ,
393 R1.Def_Place_Of_Supply_Type_Code ,
394 R1.Place_Of_Supply_Rule_Flag ,
395 R1.Applicability_Rule_Flag ,
396 R1.Tax_Calc_Rule_Flag ,
397 R1.Txbl_Bsis_Thrshld_Flag ,
398 R1.Tax_Rate_Thrshld_Flag ,
399 R1.Tax_Amt_Thrshld_Flag ,
400 R1.Taxable_Basis_Rule_Flag ,
401 R1.Def_Inclusive_Tax_Flag ,
402 R1.Thrshld_Grouping_Lvl_Code ,
403 R1.Thrshld_Chk_Tmplt_Code ,
404 R1.Has_Other_Jurisdictions_Flag ,
405 R1.Allow_Exemptions_Flag ,
406 R1.Allow_Exceptions_Flag ,
407 R1.Allow_Recoverability_Flag ,
408 R1.DEF_TAX_CALC_FORMULA ,
409 R1.Tax_Inclusive_Override_Flag ,
410 R1.DEF_TAXABLE_BASIS_FORMULA ,
411 R1.Def_Registr_Party_Type_Code ,
412 R1.Registration_Type_Rule_Flag ,
413 R1.Reporting_Only_Flag ,
414 R1.Auto_Prvn_Flag ,
415 R1.Live_For_Processing_Flag ,
416 R1.Has_Detail_Tb_Thrshld_Flag ,
417 R1.Has_Tax_Det_Date_Rule_Flag ,
418 R1.TAX_FULL_NAME ,
419 R1.ZONE_GEOGRAPHY_TYPE ,
420 R1.Def_Rec_Settlement_Option_Code ,
421 SYSDATE,
422 fnd_global.user_id,
423 FND_GLOBAL.CONC_LOGIN_ID,
424 R1.Regn_Num_Same_As_Le_Flag ,
425 R1.Direct_Rate_Rule_Flag,
426 R1.CONTENT_OWNER_ID ,
427 R1.APPLIED_AMT_HANDLING_FLAG,
428 R1.PARENT_GEOGRAPHY_TYPE,
429 R1.PARENT_GEOGRAPHY_ID,
430 R1.ALLOW_MASS_CREATE_FLAG,
431 R1.SOURCE_TAX_FLAG,
432 R1.SPECIAL_INCLUSIVE_TAX_FLAG,
433 R1.DEF_PRIMARY_REC_RATE_CODE,
434 R1.DEF_SECONDARY_REC_RATE_CODE,
435 R1.ALLOW_DUP_REGN_NUM_FLAG,
436 R1.TAX_ACCOUNT_SOURCE_TAX,
437 R1.TAX_ACCOUNT_CREATE_METHOD_CODE,
438 R1.OVERRIDE_GEOGRAPHY_TYPE,
439 R1.TAX_EXMPT_SOURCE_TAX,
440 R1.TAX_EXMPT_CR_METHOD_CODE,
441 R1.OBJECT_VERSION_NUMBER,
442 R1.LIVE_FOR_APPLICABILITY_FLAG,
443 R1.APPLICABLE_BY_DEFAULT_FLAG,
444 R1.LEGAL_REPORTING_STATUS_DEF_VAL
445 );
446 END IF;
447 END LOOP;
448 close c1;
449 EXCEPTION
450 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
451 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
452 WHEN OTHERS THEN
453 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
454 end;
455
456 /* ===================================================================================================*
457 | PROCEDURE get_regime_details: Obtains the regime details based on the country code or tax regime code|
458 | |
459 * ===================================================================================================*/
460
461 PROCEDURE get_regime_details
462 (
463 x_return_status OUT NOCOPY VARCHAR2,
464 p_country_code IN VARCHAR2 default null,
465 p_tax_regime_code IN VARCHAR2 default null,
466 x_regime_rec OUT NOCOPY regime_rec_arr_type
467 )
468 IS
469 CURSOR C1 is
470 SELECT
471 TAX_REGIME_CODE,
472 TAX_REGIME_NAME
473 from zx_REGIMES_VL
474 WHERE TAX_REGIME_CODE = p_tax_regime_code;
475 R1 C1%rowtype;
476 CURSOR C2 is
477 SELECT
478 TAX_REGIME_CODE,
479 TAX_REGIME_NAME
480 from zx_REGIMES_VL
481 WHERE COUNTRY_CODE = p_country_code;
482 R2 C2%rowtype;
486 x_return_status := FND_API.G_RET_STS_SUCCESS;
483 l_num NUMBER := 1;
484 BEGIN
485 -- Initialize API return status to success
487 --
488 IF (p_country_code is null AND p_tax_regime_code is not null) THEN
489 OPEN C1;
490 LOOP
491 FETCH C1 INTo R1;
492 EXIT WHEN C1%NOTFOUND;
493 x_regime_rec(l_num).regime_code := R1.tax_regime_code;
494 x_regime_rec(l_num).regime_name := R1.tax_regime_name;
495 l_num := l_num + 1;
496 END LOOP;
497 CLOSE C1;
498 ELSIF (p_country_code is not null AND p_tax_regime_code is null) THEN
499 OPEN C2;
500 LOOP
501 FETCH C2 INTo R2;
502 EXIT WHEN C2%NOTFOUND;
503 x_regime_rec(l_num).regime_code := R2.tax_regime_code;
504 x_regime_rec(l_num).regime_name := R2.tax_regime_name;
505 l_num := l_num + 1;
506 END LOOP;
507 CLOSE C2;
508 ELSE
509 x_return_status := 'WRONG INPUT PARAMETERS';
510 END IF;
511 EXCEPTION
512 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
513 WHEN OTHERS THEN
514 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
515 END get_regime_details;
516 /* ===============================================================================================*
517 | PROCEDURE get_regime_hierarchy: Obtains the regime relations based on the tax regime code |
518 * ==============================================================================================*/
519
520 PROCEDURE get_regime_hierarchy
521 (
522 x_return_status OUT NOCOPY VARCHAR2,
523 p_tax_regime_code IN VARCHAR2 default null,
524 x_regime_level_rec OUT NOCOPY regime_rec_level_arr_type
525 )
526 IS
527 CURSOR C1 is
528 SELECT
529 REGIME_CODE,
530 PARENT_REGIME_CODE,
531 PARENT_REG_LEVEL
532 from zx_REGIME_RELATIONS
533 WHERE REGIME_CODE = p_tax_regime_code;
534 R1 C1%rowtype;
535 l_num NUMBER := 1;
536 BEGIN
537 -- Initialize API return status to success
538 x_return_status := FND_API.G_RET_STS_SUCCESS;
539 -- Insert a record with level zero
540 IF (p_tax_regime_code is not null) THEN
541 OPEN C1;
542 LOOP
543 FETCH C1 into R1;
544 EXIT WHEN C1%NOTFOUND;
545 x_regime_level_rec(l_num).regime_code := R1.regime_code;
546 x_regime_level_rec(l_num).parent_regime_code := R1.parent_regime_code;
547 x_regime_level_rec(l_num).level := R1.parent_reg_level;
548 l_num := l_num + 1;
549 END LOOP;
550 CLOSE C1;
551 ELSE
552 x_return_status := 'WRONG INPUT PARAMETERS';
553 END IF;
554 EXCEPTION
555 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
556 WHEN OTHERS THEN x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
557 END get_regime_hierarchy;
558 END;