DBA Data[Home] [Help]

PACKAGE BODY: APPS.PAY_MX_CURRENCY_CONVERSION

Source


1 PACKAGE BODY pay_mx_currency_conversion AS
2 /* $Header: paymxcurrconv.pkb 120.1 2005/11/20 22:20:58 vmehta noship $ */
3 --
4 /*
5    ******************************************************************
6    *                                                                *
7    *  Copyright (C) 1996 Oracle Corporation.                        *
8    *  All rights reserved.                                          *
9    *                                                                *
10    *  This material has been provided pursuant to an agreement      *
11    *  containing restrictions on its use.  The material is also     *
12    *  protected by copyright law.  No part of this material may     *
13    *  be copied or distributed, transmitted or transcribed, in      *
14    *  any form or by any means, electronic, mechanical, magnetic,   *
15    *  manual, or otherwise, or disclosed to third parties without   *
16    *  the express written permission of Oracle Corporation,         *
17    *  500 Oracle Parkway, Redwood City, CA, 94065.                  *
18    *                                                                *
19    ******************************************************************
20 
21     Name        : pay_mx_currency_conversion
22 
23     Description : Package to change currency code for Mexico
24                   ( MXP to MXN )
25 
26     Change List
27     -----------
28      Date        Name      Vers    Bug No    Description
29      ----        ----      ------  -------   -----------
30      19-Aug-2005 vpandya   115.0             Created
31      20-Nov-2005 vmehta    115.1             ota_activity_version does not have
32                                              business_group_id in older version
33                                              of the table.
34 
35 */
36 
37   PROCEDURE currency_mxp_to_mxn
38              (errbuf               OUT NOCOPY VARCHAR2
39              ,retcode              OUT NOCOPY NUMBER
40              ,p_business_group_id  IN  NUMBER
41              ,p_conv_curr_code     IN  VARCHAR2
42              ) IS
43 
44   CURSOR get_all_bgs( cp_old_currency VARCHAR2 ) IS
45     SELECT hoi.organization_id, hou.name
46       FROM hr_organization_units hou,
47            hr_organization_information hoi,
48            hr_organization_information hoi1
49      WHERE hoi.org_information_context  = 'Business Group Information'
50        AND hoi.org_information9         = 'MX'
51        AND hoi.org_information10        = cp_old_currency
52        AND hou.organization_id          = hoi.organization_id
53        AND hou.organization_id          = hoi1.organization_id
54        AND hoi1.org_information_context = 'CLASS'
55        AND hoi1.org_information1        = 'HR_BG'
56        AND hoi1.org_information2        = 'Y'
57        AND NOT EXISTS ( SELECT 1
58                           FROM pay_patch_status pps
59                          WHERE pps.patch_number = to_char(hoi.organization_id)
60                            AND pps.patch_name = 'Currency_Conversion_for_Mexico'
61                            AND pps.legislation_code = 'MX'
62                            AND pps.status = 'C' );
63 
64   CURSOR c_pay_gl_interface ( cp_business_group_id NUMBER ) IS
65     SELECT pgi.assignment_action_id
66       FROM pay_gl_interface pgi
67           ,pay_payroll_actions ppa
68      WHERE ppa.business_group_id     = cp_business_group_id
69        AND pgi.run_payroll_action_id = ppa.payroll_action_id;
70 
71   CURSOR c_legi_ele_tmplt IS
72     SELECT template_id
73       FROM pay_element_templates
74      WHERE legislation_code = 'MX';
75 
76   CURSOR c_bg_ele_tmplt( cp_business_group_id NUMBER ) IS
77     SELECT template_id
78       FROM pay_element_templates
79      WHERE business_group_id = cp_business_group_id;
80 
81   CURSOR c_ben_chc_popl( cp_business_group_id NUMBER ) IS
82     SELECT rowid
83       FROM ben_pil_elctbl_chc_popl
84      WHERE business_group_id = cp_business_group_id;
85 
86   CURSOR c_ben_elig_per( cp_business_group_id NUMBER ) IS
87     SELECT rowid
88       FROM ben_elig_per_f
89      WHERE business_group_id = cp_business_group_id;
90 
91     ln_business_group_id       NUMBER;
92     lv_business_group_name     VARCHAR2(400);
93 
94     ln_legislation_done        NUMBER;
95     ln_commit_cnt              NUMBER;
96     lv_old_currency            VARCHAR2(10);
97     lv_new_currency            VARCHAR2(10);
98     ln_ota_act_ver_count       NUMBER;
99 
100   BEGIN
101 
102     ln_legislation_done := 0;
103     lv_old_currency     := 'MXP';
104     lv_new_currency     := 'MXN';
105 
106     OPEN  get_all_bgs( lv_old_currency );
107     LOOP
108       FETCH get_all_bgs INTO ln_business_group_id
109                             ,lv_business_group_name;
110       EXIT WHEN get_all_bgs%NOTFOUND;
111 
112       IF ln_legislation_done = 0 THEN
113 
114          UPDATE pay_balance_types
115             SET currency_code    = lv_new_currency
116           WHERE legislation_code = 'MX'
117             AND currency_code    = lv_old_currency;
118 
119          UPDATE pay_element_types_f
120             SET input_currency_code    = decode(input_currency_code,
121                                                 lv_old_currency,
122                                                 lv_new_currency,
123                                                 input_currency_code )
124                ,output_currency_code   = decode(output_currency_code,
125                                                 lv_old_currency,
126                                                 lv_new_currency,
127                                                 output_currency_code )
128           WHERE legislation_code       = 'MX'
129             AND ( input_currency_code  = lv_old_currency OR
130                   output_currency_code = lv_old_currency );
131 
132          UPDATE pay_legislation_rules
133             SET rule_mode        = lv_new_currency
134           WHERE legislation_code = 'MX'
135             AND rule_type        = 'DC'
136             AND rule_mode        = lv_old_currency;
137 
138          UPDATE pay_leg_setup_defaults
139             SET currency_code    = lv_new_currency
140           WHERE legislation_code = 'MX'
141             AND currency_code    = lv_old_currency;
142 
143          UPDATE pay_monetary_units
144             SET currency_code    = lv_new_currency
145           WHERE legislation_code = 'MX'
146             AND currency_code    = lv_old_currency;
147 
148          UPDATE pay_payment_types
149             SET currency_code  = lv_new_currency
150           WHERE territory_code = 'MX'
151             AND currency_code  = lv_old_currency;
152 
153          UPDATE pay_pss_transaction_steps
154             SET currency_code  = lv_new_currency
155           WHERE territory_code = 'MX'
156             AND currency_code  = lv_old_currency;
157 
158          UPDATE pqp_exception_reports
159             SET currency_code    = lv_new_currency
160           WHERE legislation_code = 'MX'
161             AND currency_code    = lv_old_currency;
162 
163          FOR tmplt IN c_legi_ele_tmplt
164          LOOP
165 
166            UPDATE pay_shadow_balance_types
167               SET currency_code = lv_new_currency
168             WHERE template_id   = tmplt.template_id
169               AND currency_code = lv_old_currency;
170 
171            UPDATE pay_shadow_element_types
172               SET input_currency_code    = decode(input_currency_code,
173                                                   lv_old_currency,
174                                                   lv_new_currency,
175                                                   input_currency_code )
176                  ,output_currency_code   = decode(output_currency_code,
177                                                   lv_old_currency,
178                                                   lv_new_currency,
179                                                   output_currency_code )
180             WHERE template_id   = tmplt.template_id
181               AND ( input_currency_code  = lv_old_currency OR
182                     output_currency_code = lv_old_currency );
183 
184          END LOOP;
185 
186          ln_legislation_done := 1;
187 
188       END IF;
189 
190       /* PAY_BALANCE_TYPES */
191 
192       UPDATE pay_balance_types
193          SET currency_code     = lv_new_currency
194        WHERE business_group_id = ln_business_group_id
195          AND currency_code     = lv_old_currency;
196 
197       /* PAY_ELEMENT_TYPES_F */
198 
199       UPDATE pay_element_types_f
200          SET input_currency_code    = decode(input_currency_code,
201                                              lv_old_currency,
202                                              lv_new_currency,
203                                              input_currency_code )
204             ,output_currency_code   = decode(output_currency_code,
205                                              lv_old_currency,
206                                              lv_new_currency,
207                                              output_currency_code )
208        WHERE business_group_id      = ln_business_group_id
209          AND ( input_currency_code  = lv_old_currency OR
210                output_currency_code = lv_old_currency );
211 
212       /* PAY_MONETARY_UNITS  */
213 
214       UPDATE pay_monetary_units
215          SET currency_code     = lv_new_currency
216        WHERE business_group_id = ln_business_group_id
217          AND currency_code     = lv_old_currency;
218 
219       /* PAY_ORG_PAYMENT_METHODS_F */
220 
221       UPDATE pay_org_payment_methods_f
222          SET currency_code     = lv_new_currency
223        WHERE business_group_id = ln_business_group_id
224          AND currency_code     = lv_old_currency;
225 
226       /* PER_QUALIFICATIONS  */
227 
228       UPDATE per_qualifications
229          SET fee_currency      = lv_new_currency
230        WHERE business_group_id = ln_business_group_id
231          AND fee_currency      = lv_old_currency;
232 
233       /* PER_RECRUITMENT_ACTIVITIES */
234 
235       UPDATE per_recruitment_activities
236          SET currency_code     = lv_new_currency
237        WHERE business_group_id = ln_business_group_id
238          AND currency_code     = lv_old_currency;
239 
240       /* PER_WORK_INCIDENTS */
241 
242       UPDATE per_work_incidents pwi
243          SET compensation_currency = lv_new_currency
244        WHERE compensation_currency = lv_old_currency
245          AND EXISTS ( SELECT 1
246                         FROM per_all_people_f ppf
247                        WHERE ppf.person_id = pwi.person_id
248                          AND ppf.business_group_id = ln_business_group_id );
249 
250       /* PER_SALARY_SURVEY_LINES */
251 
252       UPDATE per_salary_survey_lines
253          SET currency_code     = lv_new_currency
254        WHERE currency_code     = lv_old_currency;
255 
256       /* PQH_ACCOMMODATIONS_F */
257 
258       UPDATE pqh_accommodations_f
259          SET rental_value_currency = lv_new_currency
260        WHERE business_group_id     = ln_business_group_id
261          AND rental_value_currency = lv_old_currency;
262 
263       /* PQH_ASSIGN_ACCOMMODATIONS_F */
264 
265       UPDATE pqh_assign_accommodations_f
266          SET indemnity_currency = lv_new_currency
267        WHERE business_group_id  = ln_business_group_id
268          AND indemnity_currency = lv_old_currency;
269 
270       /* PQH_FR_VALIDATIONS */
271 
272       UPDATE pqh_fr_validations
273          SET deduction_currency_code = decode( deduction_currency_code,
274                                                lv_old_currency,
275                                                lv_new_currency,
276                                                deduction_currency_code )
277             ,employee_currency_code  = decode( employee_currency_code,
278                                                lv_old_currency,
279                                                lv_new_currency,
280                                                employee_currency_code )
281             ,employer_currency_code  = decode( employer_currency_code,
282                                                lv_old_currency,
283                                                lv_new_currency,
284                                                employer_currency_code )
285        WHERE business_group_id = ln_business_group_id
286          AND (  deduction_currency_code = lv_old_currency OR
287                 employee_currency_code  = lv_old_currency OR
288                 employer_currency_code  = lv_old_currency );
289 
290       /* PQH_BUDGETS */
291 
292       UPDATE pqh_budgets
293          SET currency_code     = lv_new_currency
294        WHERE business_group_id = ln_business_group_id
295          AND currency_code     = lv_old_currency;
296 
297       /* PQP_EXCEPTION_REPORTS */
298 
299       UPDATE pqp_exception_reports
300          SET currency_code     = lv_new_currency
301        WHERE business_group_id = ln_business_group_id
302          AND currency_code     = lv_old_currency;
303 
304       /* PQP_VEHICLE_REPOSITORY_F */
305 
306       UPDATE pqp_vehicle_repository_f
307          SET currency_code     = lv_new_currency
308        WHERE business_group_id = ln_business_group_id
309          AND currency_code     = lv_old_currency;
310 
311       /* PQP_VEHICLE_DETAILS */
312 
313       UPDATE pqp_vehicle_details
314          SET currency_code     = lv_new_currency
315        WHERE business_group_id = ln_business_group_id
316          AND currency_code     = lv_old_currency;
317 
318       /* PSP_ADJUSTMENT_CONTROL_TABLE */
319 
320       UPDATE psp_adjustment_control_table
321          SET currency_code     = lv_new_currency
322        WHERE business_group_id = ln_business_group_id
323          AND currency_code     = lv_old_currency;
324 
325       /* PSP_DISTRIBUTION_INTERFACE */
326 
327       UPDATE psp_distribution_interface
328          SET currency_code     = lv_new_currency
329        WHERE business_group_id = ln_business_group_id
330          AND currency_code     = lv_old_currency;
331 
332       /* PSP_PAYROLL_CONTROLS */
333 
334       UPDATE psp_payroll_controls
335          SET currency_code     = lv_new_currency
336        WHERE business_group_id = ln_business_group_id
337          AND currency_code     = lv_old_currency;
338 
339       /* PSP_PAYROLL_INTERFACE */
340 
341       UPDATE psp_payroll_interface
342          SET currency_code     = lv_new_currency
343        WHERE business_group_id = ln_business_group_id
344          AND currency_code     = lv_old_currency;
345 
346       /* BEN_ACTL_PREM_F */
347 
348       UPDATE ben_actl_prem_f
349          SET uom         = decode( uom, lv_old_currency, lv_new_currency, uom )
350             ,cr_lkbk_uom = decode( cr_lkbk_uom, lv_old_currency,
351                                                 lv_new_currency, cr_lkbk_uom )
352        WHERE business_group_id = ln_business_group_id
353          AND ( uom = lv_old_currency OR cr_lkbk_uom = lv_old_currency );
354 
355       /* BEN_BNFTS_BAL_F */
356 
357       UPDATE ben_bnfts_bal_f
358          SET uom               = lv_new_currency
359        WHERE business_group_id = ln_business_group_id
360          AND uom               = lv_old_currency;
361 
362       /* BEN_CNTNG_PRTN_ELIG_PRFL_F */
363 
364       UPDATE ben_cntng_prtn_elig_prfl_f
365          SET pymt_must_be_rcvd_uom = lv_new_currency
366        WHERE business_group_id     = ln_business_group_id
367          AND pymt_must_be_rcvd_uom = lv_old_currency;
368 
369       /* BEN_CNTNG_PRTN_PRFL_RT_F */
370 
371       UPDATE ben_cntng_prtn_prfl_rt_f
372          SET pymt_must_be_rcvd_uom = lv_new_currency
373        WHERE business_group_id     = ln_business_group_id
374          AND pymt_must_be_rcvd_uom = lv_old_currency;
375 
376       /* BEN_DRVBL_FCTR_UOM */
377 
378       UPDATE ben_drvbl_fctr_uom
379          SET uom_cd            = lv_new_currency
380        WHERE business_group_id = ln_business_group_id
381          AND uom_cd            = lv_old_currency;
382 
383       /* BEN_ENRT_PREM_RBV */
384 
385       UPDATE ben_enrt_prem_rbv
386          SET uom               = lv_new_currency
387        WHERE business_group_id = ln_business_group_id
388          AND uom               = lv_old_currency;
389 
390       /* BEN_PGM_F */
391 
392       UPDATE ben_pgm_f
393          SET pgm_uom           = lv_new_currency
394        WHERE business_group_id = ln_business_group_id
395          AND pgm_uom           = lv_old_currency;
396 
397       /* BEN_PIL_EPE_POPL_RBV */
398 
399       UPDATE ben_pil_epe_popl_rbv
400          SET uom               = lv_new_currency
401        WHERE business_group_id = ln_business_group_id
402          AND uom               = lv_old_currency;
403 
404       /* BEN_PL_FRFS_VAL_F */
405 
406       UPDATE ben_pl_frfs_val_f
407          SET uom               = lv_new_currency
408        WHERE business_group_id = ln_business_group_id
409          AND uom               = lv_old_currency;
410 
411       /* BEN_PRTT_ENRT_RSLT_F_RBV */
412 
413       UPDATE ben_prtt_enrt_rslt_f_rbv
414          SET uom               = lv_new_currency
415        WHERE business_group_id = ln_business_group_id
416          AND uom               = lv_old_currency;
417 
418       /* BEN_PRTT_PREM_F */
419 
420       UPDATE ben_prtt_prem_f
421          SET std_prem_uom      = lv_new_currency
422        WHERE business_group_id = ln_business_group_id
423          AND std_prem_uom      = lv_old_currency;
424 
425       /* BEN_PRTT_REIMBMT_RQST_F */
426 
427       UPDATE ben_prtt_reimbmt_rqst_f
428          SET rqst_amt_uom      = lv_new_currency
429        WHERE business_group_id = ln_business_group_id
430          AND rqst_amt_uom      = lv_old_currency;
431 
432       /* BEN_PRTT_PREM_BY_MO_F */
433 
434       UPDATE ben_prtt_prem_by_mo_f
435          SET antcpd_prtt_cntr_uom = lv_new_currency
436        WHERE business_group_id    = ln_business_group_id
437          AND antcpd_prtt_cntr_uom = lv_old_currency;
438 
439       /* BEN_COMP_LVL_FCTR */
440 
441       UPDATE ben_comp_lvl_fctr
442          SET comp_lvl_uom      = lv_new_currency
443        WHERE business_group_id = ln_business_group_id
444          AND comp_lvl_uom      = lv_old_currency;
445 
446       /* BEN_PL_R_OIPL_PREM_BY_MO_F */
447 
448       UPDATE ben_pl_r_oipl_prem_by_mo_f
449          SET uom               = lv_new_currency
450        WHERE business_group_id = ln_business_group_id
451          AND uom               = lv_old_currency;
452 
453       /* BEN_PL_F */
454 
455       UPDATE BEN_PL_F
456          SET nip_pl_uom        = lv_new_currency
457        WHERE business_group_id = ln_business_group_id
458          AND nip_pl_uom        = lv_old_currency;
459 
460       /* BEN_PL_BNF_F */
461 
462       UPDATE ben_pl_bnf_f
463          SET amt_dsgd_uom      = lv_new_currency
464        WHERE business_group_id = ln_business_group_id
465          AND amt_dsgd_uom      = lv_old_currency;
466 
467       /* BEN_PL_R_OIPL_ASSET_F */
468 
469       UPDATE ben_pl_r_oipl_asset_f
470          SET mkt_val_uom       = lv_new_currency
471        WHERE business_group_id = ln_business_group_id
472          AND mkt_val_uom       = lv_old_currency;
473 
474       /* BEN_CRT_ORDR */
475 
476       UPDATE ben_crt_ordr
477          SET uom               = lv_new_currency
478        WHERE business_group_id = ln_business_group_id
479          AND uom               = lv_old_currency;
480 
481       /* BEN_ENRT_PREM */
482 
483       UPDATE ben_enrt_prem
484          SET uom               = lv_new_currency
485        WHERE business_group_id = ln_business_group_id
486          AND uom               = lv_old_currency;
487 
488       /* IRC_ALL_RECRUITING_SITES */
489 
490       UPDATE irc_all_recruiting_sites
491          SET posting_cost_currency = lv_new_currency
492        WHERE posting_cost_currency = lv_old_currency;
493 
494       /* IRC_SEARCH_CRITERIA */
495 
496       UPDATE irc_search_criteria
497          SET salary_currency = lv_new_currency
498        WHERE salary_currency = lv_old_currency;
499 
500       /* OTA_ACTIVITY_VERSIONS */
501 
502       SELECT count(*)
503         INTO ln_ota_act_ver_count
504         FROM ota_activity_versions
505        WHERE budget_currency_code = lv_old_currency;
506       IF ln_ota_act_ver_count > 0
507       THEN
508          UPDATE ota_activity_versions
509             SET budget_currency_code = lv_new_currency
510           WHERE budget_currency_code = lv_old_currency;
511       END IF;
512 
513       /* OTA_EVENTS */
514 
515       UPDATE ota_events
516          SET budget_currency_code = decode( budget_currency_code,
517                                             lv_old_currency,
518                                             lv_new_currency,
519                                             budget_currency_code)
520             ,currency_code        = decode( currency_code,
521                                             lv_old_currency,
522                                             lv_new_currency,
523                                             currency_code)
524        WHERE business_group_id    = ln_business_group_id
525          AND ( budget_currency_code = lv_old_currency OR
526                currency_code        = lv_old_currency );
527 
528       /* OTA_PRICE_LISTS */
529 
530       UPDATE ota_price_lists
531          SET currency_code     = lv_new_currency
532        WHERE business_group_id = ln_business_group_id
533          AND currency_code     = lv_old_currency;
534 
535       /* OTA_SUPPLIABLE_RESOURCES */
536 
537       UPDATE ota_suppliable_resources
538          SET currency_code     = lv_new_currency
539        WHERE business_group_id = ln_business_group_id
540          AND currency_code     = lv_old_currency;
541 
542       /* OTA_TRAINING_PLANS */
543 
544       UPDATE ota_training_plans
545          SET budget_currency   = lv_new_currency
546        WHERE business_group_id = ln_business_group_id
547          AND budget_currency   = lv_old_currency;
548 
549       /* OTA_TRAINING_PLAN_COSTS */
550 
551       UPDATE ota_training_plan_costs
552          SET currency_code     = lv_new_currency
553        WHERE business_group_id = ln_business_group_id
554          AND currency_code     = lv_old_currency;
555 
556       /* PAY_GL_INTERFACE */
557 
558       ln_commit_cnt := 0;
559 
560       FOR paygl IN c_pay_gl_interface( ln_business_group_id )
561       LOOP
562 
563         UPDATE pay_gl_interface
564            SET currency_code        = lv_new_currency
565          WHERE assignment_action_id = paygl.assignment_action_id
566            AND currency_code        = lv_old_currency;
567 
568         ln_commit_cnt := ln_commit_cnt + 1;
569 
570         IF ln_commit_cnt >= 100 THEN
571            commit;
572            ln_commit_cnt := 0;
573         END IF;
574 
575       END LOOP;
576 
577       /* PAY SHADOW SCHEMA */
578 
579       FOR ele_tmplt IN c_bg_ele_tmplt( ln_business_group_id )
580       LOOP
581 
582         UPDATE pay_shadow_balance_types
583            SET currency_code = lv_new_currency
584          WHERE template_id   = ele_tmplt.template_id
585            AND currency_code = lv_old_currency;
586 
587         UPDATE pay_shadow_element_types
588            SET input_currency_code    = decode(input_currency_code,
589                                                lv_old_currency,
590                                                lv_new_currency,
591                                                input_currency_code )
592               ,output_currency_code   = decode(output_currency_code,
593                                                lv_old_currency,
594                                                lv_new_currency,
595                                                output_currency_code )
596          WHERE template_id   = ele_tmplt.template_id
597            AND ( input_currency_code  = lv_old_currency OR
598                  output_currency_code = lv_old_currency );
599 
600       END LOOP;
601 
602       /* BEN_PIL_ELCTBL_CHC_POPL */
603 
604       ln_commit_cnt := 0;
605 
606       FOR chc IN c_ben_chc_popl( ln_business_group_id )
607       LOOP
608 
609         UPDATE ben_pil_elctbl_chc_popl
610            SET uom   = lv_new_currency
611          WHERE rowid = chc.rowid
612            AND uom   = lv_old_currency;
613 
614         ln_commit_cnt := ln_commit_cnt + 1;
615 
616         IF ln_commit_cnt >= 100 THEN
617            commit;
618            ln_commit_cnt := 0;
619         END IF;
620 
621       END LOOP;
622 
623       /* BEN_ELIG_PER_F */
624 
625       ln_commit_cnt := 0;
626 
627       FOR elig IN c_ben_elig_per( ln_business_group_id )
628       LOOP
629 
630         UPDATE ben_elig_per_f
631            SET rt_comp_ref_uom = lv_new_currency
632          WHERE rowid           = elig.rowid
633            AND rt_comp_ref_uom = lv_old_currency;
634 
635         ln_commit_cnt := ln_commit_cnt + 1;
636 
637         IF ln_commit_cnt >= 100 THEN
638            commit;
639            ln_commit_cnt := 0;
640         END IF;
641 
642       END LOOP;
643 
644       /* HR_ORGANIZATION_INFORMATION */
645 
646       UPDATE hr_organization_information
647          SET org_information10       = lv_new_currency
648        WHERE organization_id         = ln_business_group_id
649          AND org_information_context = 'Business Group Information'
650          AND org_information10       = lv_old_currency;
651 
652       INSERT INTO pay_patch_status
653                   (id, patch_number, patch_name, applied_date, status,
654                    description, update_date, legislation_code)
655       VALUES      (pay_patch_status_s.nextval, to_char(ln_business_group_id),
656                    'Currency_Conversion_for_Mexico', sysdate, 'C',
657                    lv_business_group_name,  sysdate, 'MX');
658 
659     END LOOP;
660 
661     CLOSE get_all_bgs;
662 
663     --COMMIT;
664 
665     EXCEPTION
666     WHEN others THEN
667          raise;
668 
669   END currency_mxp_to_mxn;
670 
671   FUNCTION get_converted_curr_code ( p_business_group_id NUMBER )
672     RETURN VARCHAR2 IS
673 
674     ln_conv_curr_cnt  NUMBER;
675     lv_conv_curr_code VARCHAR2(80);
676 
677   BEGIN
678 
679     SELECT count(*)
680       INTO ln_conv_curr_cnt
681       FROM hr_organization_units hou,
682            hr_organization_information hoi,
683            hr_organization_information hoi1
684      WHERE hoi.org_information_context  = 'Business Group Information'
685        AND hoi.org_information9         = 'MX'
686        AND hoi.org_information10        = 'MXP'
687        AND hou.organization_id          = hoi.organization_id
688        AND hou.organization_id          = hoi1.organization_id
689        AND hoi1.org_information_context = 'CLASS'
690        AND hoi1.org_information1        = 'HR_BG'
691        AND hoi1.org_information2        = 'Y';
692 
693     IF ln_conv_curr_cnt = 0 THEN
694 
695        lv_conv_curr_code := 'CONVERTED';
696 
697     ELSE
698 
699        lv_conv_curr_code := 'CONVERTING';
700 
701     END IF;
702 
703     RETURN lv_conv_curr_code;
704 
705   END get_converted_curr_code;
706 
707 end pay_mx_currency_conversion;