Follow this link -> http://scn.sap.com/thread/1830478 but it's for Canada Payroll
i'v modified for indonesia payroll below.
1. Include in main program
*&---------------------------------------------------------------------* *& Report HIDCHCR0 *& *&---------------------------------------------------------------------* *& Indonesia BPJS Health Care Report *&---------------------------------------------------------------------* REPORT ZHIDCHCR0 MESSAGE-ID 3D. INCLUDE zhidchcr0_top. "Data Declaration * dicky 20150225 INCLUDE zpy_simulation. "Payroll Simulation INCLUDE zhr_gen_excel_ver1. "Excel function INCLUDE zhidcbmr0_alv. "Popup ALV * dicky 20150225 INCLUDE zhidchcr0_sel. "Selection Screen INCLUDE zhidchcr0_f01. "Main Functions INCLUDE zhidchcr0_f02. "Other Functions INCLUDE zhidchcr0_mai. "Main Include
2. Module for Read Simulation Payroll
*----------------------------------------------------------------------*
* INCLUDE ZPY_SIMULATION *
*----------------------------------------------------------------------*
*---------------------------------------------------------------------*
* FORM zpy_payroll_simulation *
*---------------------------------------------------------------------*
TYPE-POOLS: hrpay.
TABLES: pcl1, "IMPORT/EXPORT
pcl2. "IMPORT/EXPORT
INCLUDE hidpaymacro.
INCLUDE rpc2cd09.
INCLUDE rpppxd10.
INCLUDE rpc2rx29.
INCLUDE rpc2ps00.
INCLUDE rpc2pt00.
INCLUDE pc2rxid0.
INCLUDE rpc2rx02.
INCLUDE rpc2rx39.
INCLUDE rpppxd00.
INCLUDE rpppxm00.
*---------------------------------------------------------------------*
* FORM zpy_payroll_simulation *
*---------------------------------------------------------------------*
FORM zpy_payroll_simulation
TABLES p_rgdir STRUCTURE rgdir
* p_rt STRUCTURE rt
USING p_abkrs zperiod zyear p_pernr.
DATA: molga(2) TYPE c.
DATA: buffer TYPE hrpay_buffer.
* DATA: rgdir_line LIKE pc261.
DATA: trgdir LIKE rgdir OCCURS 0 WITH HEADER LINE.
DATA: p_var(14) TYPE c VALUE ''.
DATA: p_prog TYPE trdir-name VALUE 'ZHIDCALC0'.
DATA: sim_pernr LIKE pay_sim_pernr OCCURS 0 WITH HEADER LINE.
DATA: p_period TYPE t549q-pabrp, p_year TYPE t549q-pabrj.
DATA: p_fpper TYPE faper.
p_period = zperiod.
p_year = zyear.
CONCATENATE p_year p_period INTO p_fpper.
sim_pernr-pernr = p_pernr.
APPEND sim_pernr.
CALL FUNCTION 'HR_PAYROLL'
EXPORTING
payroll_area = p_abkrs
payroll_period = p_period
payroll_year = p_year
selection_variant = p_var
program_name = p_prog
* TST_ON = 'X'
TABLES
employee_numbers = sim_pernr
buffer = tbuff
buffer_directory = buffer_dir
delete_pclx = del_pclx_tab
EXCEPTIONS
program_not_exist = 1
variant_not_exist = 2
missing_parameter = 3
wrong_parameter = 4
wrong_country_group = 5
OTHERS = 6
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
buffer-tbuff[] = tbuff[].
buffer-buffer_dir[] = buffer_dir[].
buffer-del_pclx_tab[] = del_pclx_tab[].
CALL FUNCTION 'CU_READ_RGDIR'
EXPORTING
persnr = sim_pernr-pernr
buffer = buffer
IMPORTING
molga = molga
TABLES
in_rgdir = trgdir
EXCEPTIONS
no_record_found = 1
OTHERS = 2.
* CALL FUNCTION 'CD_READ_LAST_RESULT_IN_RGDIR'
* IMPORTING
* ptx_rgdir_nv = rgdir_line
* TABLES
* pt_rgdir = rgdir.
CALL FUNCTION 'CD_EVALUATION_PERIODS'
EXPORTING
inper_modif = '01'
inper = p_fpper
TABLES
rgdir = trgdir
evpdir = rgdir
EXCEPTIONS
no_record_found = 1
OTHERS = 2.
* rx-key-pernr = sim_pernr-pernr.
* read table rgdir index 1.
* rx-key-seqno = rgdir-seqnr.
* rp-imp-c2-is.
* IF rp-imp-is-subrc = 0.
p_rgdir[] = rgdir[].
* p_rt[] = rt[].
* READ TABLE rgdir INDEX 1.
* WRITE: / 'fpper:', rgdir-fpper, 'inper:', rgdir-inper, 'srtza:',
*rgdir-srtza.
* WRITE: /.
* LOOP AT rt.
* WRITE: / rt-lgart, rt-betpe, rt-anzhl, rt-betrg.
* ENDLOOP.
* ENDIF.
ENDFORM.
3. How to use it.
PERFORM zpy_payroll_simulation
TABLES zrgdir
USING gv_abkrs gv_fpper+4(2) gv_fpper(4) p_pernr.
ENDIF.
* ambil yang current period saja
* tidak perlu di loop ( kasus late hiring )
CALL FUNCTION 'CD_READ_LAST_RESULT_IN_RGDIR'
IMPORTING
ptx_rgdir_nv = rgdir_line
TABLES
pt_rgdir = zrgdir.
* LOOP AT zrgdir.
REFRESH rt.
rx-key-pernr = p_pernr.
* rx-key-seqno = zrgdir-seqnr.
rx-key-seqno = rgdir_line-seqnr.
rp-imp-c2-is.
loop at rt.
write rt.
endloop.
No comments:
Post a Comment