cancel
Showing results for 
Search instead for 
Did you mean: 

Proration of Basic Pay for a New Joiner with shift patern and IT0008 splits

Former Member
0 Kudos

Hi,

Problem:

While prorating /801 with the 2 or 3 splits in WPBP how can I make sure that the Incomplete month salary is not exceeding 'full month salary'.

Scenario:

Incomplete months salary =    Basic Pay                                            x      Total active working days in that month

                                                   Total working days in that month

For a Part-Time New Joiner shift employee the pro-rated Basic Pay is based on calendar days and has to be changed to working days. I am using a custom operation to prorate WT /801 because the 'Total working days in the month' is required to get from IT0008-Pay Scale Group.

Example:

PXYZ where Y is the weekly working days which will be multiplied by 4 weeks

P334 = 3*4 = 12 Total working days in the month.

For this PT New Joiner shift employee(e.g. with pay scale group P334) sometimes first 2 weeks in the company is 'Non-Shift' shift pattern (i.e. 5 weekly working days) which would end up with more 'Total active working days in that month' than 'Total working days in that month'. In this case the prorated 'Incomplete month salary' would be more that the 'full month salary' and thus the decision is 'full month salary' should be paid. The shift pattern will be changed to 'Shift' after first 2 weeks. This change in shift pattern leads to 2 split in WPBP and also if there is a change in Basic Pay then there would be 3 splits in WPBP.

Example:

2 Splits:

a. PT Shift Employee joined the company with Pas Scale Group 'P334' on 03.04.2012 as shift pattern 'Non-Shift' (i.e. 5 weekly work days) from 03.04.2012 to 15.04.2012 which ends up with 9 working days excluding Off days and Rest days (i.e. Saturdays and Sundays).

b. Shift pattern changed to 'Shift' on 16.04.2012 i.e. 16.04.2012 to 31.12.9999 and thus with 3 weekly workdays(P334) from 16.04.2012 to 30.04.2012 it would be 7 working days.

Thus;

a + b = 16 Total active working days in that month

Whereas;

Total working days in that month = 12 days (3 weekly workdays x 4 weeks)

3 Splits:

c. There is a change in Basic Pay(WT 1000) i.e. from 03.04.2012 to 12.04.2012 it is $540 and from 13.04.2012 to 30.04.2012 it is $640. In this case there will be 3 splits in WPBP i.e. a, b and c. In this case the incomplete months salary is exceeding $640 and thus $640 should be paid.

WPBP Splits and /801 calculation

Split 1 - 03.04.2012 to 12.04.2012 = 8 working days = (100000 * 😎 12 = 66666.67 = (540 * 66.67) = $360

Split 2 - 13.04.2012 to 15.04.2012 = 1 working day   = (100000 * 1) 12 =   8333.34 = (540 * 8.34)   = $45

Spit 3 - 16.04.2012  to 30.04.2012 = 7 working days = (100000 * 7) 12 = 58333.34 = (640 * 58.34) = $373.37

Thus, by cumulating the 3 splits the 'Incomplete month salary' = $778.37 but maximum to be paid should be 'full months salary' $640.

Please kindly help to solve this problem and let me know if need clarification on the explanation above.

Thanks and Regards,

Nimit.

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi Experts,

Please help me on this issue.

Thanks and Regard,

Nimit.

sikindar_a
Active Contributor
0 Kudos

what is the PCR you have written for /801 ? it means the system is taking full days into consideration even though employee was not active in the system ? Can you give another example

Former Member
0 Kudos

Hi Sikandar,

The requirement is to prorate Basic Pay for a New Joiner and thus the Total working days in that month for a Part-Time employee is derived by PSGrp (i.e.P334) where 3 x 4 weeks = 12 will be Total days, But some times the Total active working days in that month would be more than 12 days and thus the Basic pay would become more than IT0008 Basic Pay.

Incomplete months salary =    Basic Pay               x  Total active working days in that month

                                               Total working days in that month


Example: Refer to the example given earlier for dates and days.

Last IT0008 Basic Pay = $640

Incomplete month Salary =     $540 (for first 9 days) + $640 (7days) x     16 active days (9+7)

                                            12 days

Thus, Incomplete month Salary = $778.37 (which is more than $640).



PCR for /801

Operation Z_WRK

 

FORM opz_wrk.

DATA : lv_subrc    TYPE sy-subrc,
lv_4weeks  
TYPE i VALUE '4',
lv_ft_5days
TYPE i VALUE '5'.

DATA : lt_p9007  TYPE TABLE OF p9007,
lwa_p9007
TYPE p9007,
lwa_ot   
TYPE pc207.

IF  wpbp-stat2 <> '3'. "Active
CLEAR : ot-betpe, ot-apznr.
ot
-apznr = wpbp-apznr.
ENDIF.

CHECK wpbp-stat2 = '3'. "Active

CLEAR : day1, days.
CASE op-modif.     "date source
WHEN '1'.

* Get Shift Indicator i.e. ‘Shift – 01’ or ‘Non Shift – 02’
REFRESH : lt_p9007.
CLEAR   : lwa_p9007.
CALL FUNCTION 'HR_READ_INFOTYPE'
EXPORTING
tclas          
= 'A'
pernr          
= pernr-pernr
infty          
= '9007'
begda          
= sy-datum
endda          
= sy-datum
IMPORTING
subrc          
= lv_subrc
TABLES
infty_tab      
= lt_p9007
EXCEPTIONS
infty_not_found
= 1
OTHERS          = 2.
IF lv_subrc = 0.
READ TABLE lt_p9007 INTO lwa_p9007 INDEX 1.
IF sy-subrc = 0.
"Do Nothing.
ENDIF.
ENDIF.

      IF    wpbp-massn        = 'H1' AND ”hiring action

lv_subrc = 0             AND
lwa_p9007-zshift <> '02' .
"Shift Employee

*To caluculate Actual Working Days in the month
LOOP AT psp
WHERE datum GE aper-begda AND
datum
LE aper-pendd AND
stdaz
GT 0.

IF psp-datum >= wpbp-begda AND
psp
-datum <= wpbp-endda.
day1
= day1 + 1. "Working Days in the month
ENDIF.
ENDLOOP.

IF wpbp-persk = 'PT'.

days
= lv_4weeks * wpbp-trfgr+2(1). “Example P334
ELSE. "If Employee Subgroup <> Part Time.

days
= lv_4weeks * lv_ft_5days.
ENDIF.

temp_amt
= ( day1 * it-betpe ) / days.

ELSE."Computation For a Non-Shift/Shift Departing Employee And Non-Shift New Joiner Employee

LOOP AT psp
WHERE datum GE aper-pbegd AND
datum
LE aper-pendd AND
stdaz
GT 0.
days
= days + 1. "Total Working Days in the month

IF psp-datum >= wpbp-begda AND
psp
-datum <= wpbp-endda.

day1
= day1 + 1. "Working Days in the month
ENDIF.
ENDLOOP.

temp_amt
= ( day1 * it-betpe ) / days.
ENDIF.

CLEAR : ot-betpe, ot-apznr.
ot
-apznr = wpbp-apznr.
ot
-betpe = temp_amt.
CLEAR : temp_amt.
ENDCASE.

ENDFORM.                    "opz_wrk

Former Member
0 Kudos

Hi Sikandar,

PCR /801

Thanks,

Nimit.