0% found this document useful (0 votes)
19 views9 pages

Pmic PF Program

Uploaded by

abbasijawad1995
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views9 pages

Pmic PF Program

Uploaded by

abbasijawad1995
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 9

TABLES: PA9405.

DATA : "PERNR LIKE PERNR-PERNR,


EMP_CONT LIKE P9405-JUN05,
COM_CONT LIKE P9405-JUN05,
TOT_CONT LIKE P9405-JUN05,
ZBASIC TYPE BETRG,
zbegda TYPE char8,
zendda TYPE char8,
zmonth TYPE char2,
zyear TYPE char4 ,
zyr TYPE numc4,
zbegda1 TYPE dats,
zendda1 TYPE dats,
zded TYPE betrg,
zpr_tot TYPE betrg.

DATA: IT9405 LIKE STANDARD TABLE OF PA9405 WITH HEADER LINE.

READ TABLE rt INTO rt WITH KEY lgart = '2008'.

IF SY-SUBRC = 0.

* LOOP AT RT WHERE lgart = '6505'.


* zded = rt-betrg * -1.
* zpr_tot = zded + zded.
*ENDLOOP.

zded = rt-betrg * -1.

if zded = 1. "code added

zpr_tot = zded." + zded.

CLEAR RT.

LOOP AT RT WHERE LGART EQ '0001'. " loop to add 2 basic salaires in zbasic
ZBASIC = ZBASIC + RT-BETRG.
ENDLOOP.

EMP_CONT = ( ZBASIC / 100 ) * 7.


COM_CONT = EMP_CONT.
TOT_CONT = EMP_CONT + COM_CONT.

LOOP AT RT WHERE LGART EQ '/560' OR LGART EQ '/559' OR LGART = '/557'. "


amount adjustment in rt
RT-BETRG = RT-BETRG + ZPR_TOT.
RT-BETRG = RT-BETRG - EMP_CONT.
MODIFY RT.
ENDLOOP.
CLEAR RT.
*
*
*
LOOP AT RT WHERE LGART EQ '/110'. " loop to xclude old efp amount from rt and
add new amount of epf.
RT-BETRG = RT-BETRG * -1.
RT-BETRG = RT-BETRG - ZPR_TOT.
RT-BETRG = RT-BETRG + EMP_CONT.
RT-BETRG = RT-BETRG * -1.
MODIFY RT.
ENDLOOP.
CLEAR RT.

LOOP AT RT WHERE LGART EQ '2008' OR LGART EQ '2009'. "AUTO CALCULATE VALUE OF


PF IN RT
RT-BETRG = RT-BETRG * EMP_CONT.
MODIFY RT.
ENDLOOP.

CLEAR RT.

""code added

else.

EMP_CONT = zded.
COM_CONT = EMP_CONT.
TOT_CONT = EMP_CONT + COM_CONT.

endif. "code added

zbegda1 = pn-begda.
zendda1 = pn-endda.

zmonth = zbegda1+4(2).

IF zmonth >= '06'.


zyear = zbegda1+0(4).
CONCATENATE zyear '0701' INTO zbegda.
zendda1+0(4) = zendda1+0(4) + 1.

zyear = zendda1+0(4).
CONCATENATE zyear '0630' INTO zendda.

ELSE.

zbegda1+0(4) = zbegda1+0(4) - 1.
zyear = zbegda1+0(4).
CONCATENATE zyear '0701' INTO zbegda.
zyear = pn-begda+0(4).
CONCATENATE zyear '0630' INTO zendda.
ENDIF.

SELECT SINGLE * INTO CORRESPONDING FIELDS OF IT9405 FROM PA9405 WHERE PERNR =
PERNR-PERNR AND
begda = zbegda AND endda = zendda.
* ENDDA = '99991231'.
APPEND IT9405.

CASE PN-BEGDA+4(2).
WHEN '07'.

PERFORM JULY_M
USING PERNR-PERNR EMP_CONT COM_CONT TOT_CONT
CHANGING IT9405.

WHEN '08'.
PERFORM AUGUST_M
USING PERNR-PERNR EMP_CONT COM_CONT TOT_CONT
CHANGING IT9405.

WHEN '09'.
PERFORM SEPTEMBER_M
USING PERNR-PERNR EMP_CONT COM_CONT TOT_CONT
CHANGING IT9405.

WHEN '10'.
PERFORM OCTOBER_M
USING PERNR-PERNR EMP_CONT COM_CONT TOT_CONT
CHANGING IT9405.

WHEN '11'.
PERFORM NOVEMBER_M
USING PERNR-PERNR EMP_CONT COM_CONT TOT_CONT
CHANGING IT9405.

WHEN '12'.
PERFORM DECEMBER_M
USING PERNR-PERNR EMP_CONT COM_CONT TOT_CONT
CHANGING IT9405.

WHEN '01'.
PERFORM JANUARY_M
USING PERNR-PERNR EMP_CONT COM_CONT TOT_CONT
CHANGING IT9405.

WHEN '02'.
PERFORM FEBRUARY_M
USING PERNR-PERNR EMP_CONT COM_CONT TOT_CONT
CHANGING IT9405.

WHEN '03'.
PERFORM MARCH_M
USING PERNR-PERNR EMP_CONT COM_CONT TOT_CONT
CHANGING IT9405.

WHEN '04'.
PERFORM APRIL_M
USING PERNR-PERNR EMP_CONT COM_CONT TOT_CONT
CHANGING IT9405.

WHEN '05'.
PERFORM MAY_M
USING PERNR-PERNR EMP_CONT COM_CONT TOT_CONT
CHANGING IT9405.

WHEN '06'.
PERFORM JUNE_M
USING PERNR-PERNR EMP_CONT COM_CONT TOT_CONT
CHANGING IT9405.

ENDCASE.
*
PERFORM CALCULATE_TOTALS_9405_M CHANGING IT9405.

* IF TST_ON <> 'X'.

IF IT9405-PERNR NE ''.

MODIFY PA9405 FROM IT9405.


COMMIT WORK.
ENDIF.

* ENDIF.

ENDIF.

ENDFORM.

*&---------------------------------------------------------------------*
*& Form JULY_M
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> PERNR_PERNR
*& --> EMP_CONT
*& --> COM_CONT
*& <-- IT9405
*&---------------------------------------------------------------------*
FORM july_m USING p_pernr_pernr
p_emp_cont
p_com_cont
P_TOT_CONT
CHANGING p_it9405 LIKE PA9405..

P_IT9405-JUL01 = P_EMP_CONT.
P_IT9405-JUL02 = P_COM_CONT.
P_IT9405-JUL05 = P_TOT_CONT.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form AUGUST_M
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> PERNR_PERNR
*& --> EMP_CONT
*& --> COM_CONT
*& --> TOT_CONT
*& <-- IT9405
*&---------------------------------------------------------------------*
FORM august_m USING p_pernr_pernr
p_emp_cont
p_com_cont
p_tot_cont
CHANGING p_it9405 LIKE PA9405.

P_IT9405-AUG01 = P_EMP_CONT.
P_IT9405-AUG02 = P_COM_CONT.
P_IT9405-AUG05 = P_TOT_CONT.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form SEPTEMBER_M
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> PERNR_PERNR
*& --> EMP_CONT
*& --> COM_CONT
*& --> TOT_CONT
*& <-- IT9405
*&---------------------------------------------------------------------*
FORM september_m USING p_pernr_pernr
p_emp_cont
p_com_cont
p_tot_cont
CHANGING p_it9405 LIKE PA9405.

P_IT9405-SEP01 = P_EMP_CONT.
P_IT9405-SEP02 = P_COM_CONT.
P_IT9405-SEP05 = P_TOT_CONT.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form OCTOBER_M
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> PERNR_PERNR
*& --> EMP_CONT
*& --> COM_CONT
*& --> TOT_CONT
*& <-- IT9405
*&---------------------------------------------------------------------*
FORM october_m USING p_pernr_pernr
p_emp_cont
p_com_cont
p_tot_cont
CHANGING p_it9405 LIKE PA9405.

P_IT9405-OCT01 = P_EMP_CONT.
P_IT9405-OCT02 = P_COM_CONT.
P_IT9405-OCT05 = P_TOT_CONT.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form NOVEMBER_M
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> PERNR_PERNR
*& --> EMP_CONT
*& --> COM_CONT
*& --> TOT_CONT
*& <-- IT9405
*&---------------------------------------------------------------------*
FORM november_m USING p_pernr_pernr
p_emp_cont
p_com_cont
p_tot_cont
CHANGING p_it9405 LIKE PA9405.

P_IT9405-NOV01 = P_EMP_CONT.
P_IT9405-NOV02 = P_COM_CONT.
P_IT9405-NOV05 = P_TOT_CONT.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form DECEMBER_M
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> PERNR_PERNR
*& --> EMP_CONT
*& --> COM_CONT
*& --> TOT_CONT
*& <-- IT9405
*&---------------------------------------------------------------------*
FORM december_m USING p_pernr_pernr
p_emp_cont
p_com_cont
p_tot_cont
CHANGING p_it9405 LIKE PA9405.

P_IT9405-DEC01 = P_EMP_CONT.
P_IT9405-DEC02 = P_COM_CONT.
P_IT9405-DEC05 = P_TOT_CONT.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form JANUARY_M
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> PERNR_PERNR
*& --> EMP_CONT
*& --> COM_CONT
*& --> TOT_CONT
*& <-- IT9405
*&---------------------------------------------------------------------*
FORM january_m USING p_pernr_pernr
p_emp_cont
p_com_cont
p_tot_cont
CHANGING p_it9405 LIKE PA9405.

P_IT9405-JAN01 = P_EMP_CONT.
P_IT9405-JAN02 = P_COM_CONT.
P_IT9405-JAN05 = P_TOT_CONT.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form FEBRUARY_M
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> PERNR_PERNR
*& --> EMP_CONT
*& --> COM_CONT
*& --> TOT_CONT
*& <-- IT9405
*&---------------------------------------------------------------------*
FORM february_m USING p_pernr_pernr
p_emp_cont
p_com_cont
p_tot_cont
CHANGING p_it9405 LIKE PA9405.

P_IT9405-FEB01 = P_EMP_CONT.
P_IT9405-FEB02 = P_COM_CONT.
P_IT9405-FEB05 = P_TOT_CONT.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form MARCH_M
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> PERNR_PERNR
*& --> EMP_CONT
*& --> COM_CONT
*& --> TOT_CONT
*& <-- IT9405
*&---------------------------------------------------------------------*
FORM march_m USING p_pernr_pernr
p_emp_cont
p_com_cont
p_tot_cont
CHANGING p_it9405 LIKE PA9405.

P_IT9405-MAR01 = P_EMP_CONT.
P_IT9405-MAR02 = P_COM_CONT.
P_IT9405-MAR05 = P_TOT_CONT.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form APRIL_M
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> PERNR_PERNR
*& --> EMP_CONT
*& --> COM_CONT
*& --> TOT_CONT
*& <-- IT9405
*&---------------------------------------------------------------------*
FORM april_m USING p_pernr_pernr
p_emp_cont
p_com_cont
p_tot_cont
CHANGING p_it9405 LIKE PA9405.

P_IT9405-APR01 = P_EMP_CONT.
P_IT9405-APR02 = P_COM_CONT.
P_IT9405-APR05 = P_TOT_CONT.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form MAY_M
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> PERNR_PERNR
*& --> EMP_CONT
*& --> COM_CONT
*& --> TOT_CONT
*& <-- IT9405
*&---------------------------------------------------------------------*
FORM may_m USING p_pernr_pernr
p_emp_cont
p_com_cont
p_tot_cont
CHANGING p_it9405 LIKE PA9405.

P_IT9405-MAY01 = P_EMP_CONT.
P_IT9405-MAY02 = P_COM_CONT.
P_IT9405-MAY05 = P_TOT_CONT.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form JUNE_M
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> PERNR_PERNR
*& --> EMP_CONT
*& --> COM_CONT
*& --> TOT_CONT
*& <-- IT9405
*&---------------------------------------------------------------------*
FORM june_m USING p_pernr_pernr
p_emp_cont
p_com_cont
p_tot_cont
CHANGING p_it9405 LIKE PA9405.

P_IT9405-JUN01 = P_EMP_CONT.
P_IT9405-JUN02 = P_COM_CONT.
P_IT9405-JUN05 = P_TOT_CONT.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form CALCULATE_TOTALS_9405_M
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& <-- IT9405
*&---------------------------------------------------------------------*
FORM calculate_totals_9405_m CHANGING p_it9405 LIKE PA9405.

P_IT9405-TOT01 = P_IT9405-JUL01 + P_IT9405-AUG01 + P_IT9405-SEP01 +


P_IT9405-OCT01 + P_IT9405-NOV01 + P_IT9405-DEC01 +
P_IT9405-JAN01 + P_IT9405-FEB01 + P_IT9405-MAR01 +
P_IT9405-APR01 + P_IT9405-MAY01 + P_IT9405-JUN01.

P_IT9405-TOT02 = P_IT9405-JUL02 + P_IT9405-AUG02 + P_IT9405-SEP02 +


P_IT9405-OCT02 + P_IT9405-NOV02 + P_IT9405-DEC02 +
P_IT9405-JAN02 + P_IT9405-FEB02 + P_IT9405-MAR02 +
P_IT9405-APR02 + P_IT9405-MAY02 + P_IT9405-JUN02.

P_IT9405-TOT05 = P_IT9405-JUL05 + P_IT9405-AUG05 + P_IT9405-SEP05 +


P_IT9405-OCT05 + P_IT9405-NOV05 + P_IT9405-DEC05 +
P_IT9405-JAN05 + P_IT9405-FEB05 + P_IT9405-MAR05 +
P_IT9405-APR05 + P_IT9405-MAY05 + P_IT9405-JUN05.

ENDFORM.

You might also like