1 Reply Latest reply on Aug 22, 2012 2:13 PM by 600711

    Functional Setup : Cycle to work Scheme

    954635
      Hi All,

      Has anybody setup a cycle to work scheme functionally in UK payroll?

      We have to setup a cycle to work scheme where employees would be paid for the cycle and the money would be deducted over 12 months.


      a) Any functional setup help would be much appreciated (elements and fast formula setup )

      b) Where do I record the employee has opted for the cycle scheme and how do I record his monthly payments?

      C) How do I make 12 equal installments  deductions?

      Thanks.
        • 1. Re: Functional Setup : Cycle to work Scheme
          600711
          Hi,

          There is quite a bit of work involved here.

          First create a deduction element which will run each month:
          Cycle2Work Scheme (earnings classification) and include monthly amount and pay value as input values.

          Secondly create an element to hold the loan amount:
          Cycle2Work Scheme Loan Payment (information classification) and include amount as input value.

          Then create 2 balance feeds:

          1: Cycle2Work Scheme which has an element feed of Cycle2Work Scheme (add, not subtract).

          2: Cycle2Work Scheme Remainder which has an element feed of Cycle2Work Scheme (add, not subtract) and Cycle2Work Scheme Loan Payment (add, not subtract).

          Go back to your elements which you created and under the loan one add Cycle2Work Scheme Loan Payment only in the balance feed (should already be there).

          In Cycle2Work Scheme element ensure the usual balance feeds are there and then include Cycle2Work Scheme and Cycle2Work Scheme Remainder. (should already be there).

          Then create the usual element links.

          Example of fast formula to use:


          /*============================= DETAILS BEGIN ====================================

          FORMULA NAME : XXCPP_CYCLE2WORK_SCHEME
          FORMULA TYPE : Oracle Payroll
          AUTHOR :
          CREATED :
          VERSION :
          DESCRIPTION
          -----------

          Formula is used to calculate Cycle2Work Scheme

          VERSION CONTROL
          ---------------

          DATE | Author | VERSION | DETAILS
          -----------|------------------|---------|-----------------------

          =============================== DETAILS END ====================================*/

          /*============================= DEFAULT BEGIN =====================*/

          DEFAULT FOR EMP_TERM_DATE IS '31-DEC-4712' (date)
          DEFAULT FOR PAY_PROC_PERIOD_START_DATE IS '01-JAN-1951' (date)
          DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '31-DEC-4712' (date)
          DEFAULT FOR NET_PAY_ASG_PROC_PTD IS 0
          DEFAULT FOR monthly_amount IS 0

          /*============================= DEFAULT END ======================*/

          /*============================= INPUT VALUES BEGIN =============================*/

          INPUTS ARE monthly_amount

          /*============================= INPUT VALUES END ===============================*/

          /*============================= FORMULA BEGIN =================================*/

          l_outstanding_balance = CYCLE2WORK_SCHEME_REMAINDER_ASG_ITD


          /* For Leavers */
          IF EMP_TERM_DATE <= PAY_PROC_PERIOD_END_DATE AND
          EMP_TERM_DATE >= PAY_PROC_PERIOD_START_DATE THEN
          (
          l_pay_value_temp = l_outstanding_balance
          l_stop = 'Y'
          t_message = 'Cycle2Work Scheme processed for leaver'
          l_pay_value = l_pay_value_temp * -1
          RETURN l_pay_value,
               l_stop,
          t_message
          )

          monthly_amount_t = monthly_amount * -1
          /*monthly amount is entered as -ve*/
          IF (monthly_amount_t >= 0 AND l_outstanding_balance >= 0 AND
          monthly_amount_t >= l_outstanding_balance) OR
          (monthly_amount_t < 0 AND l_outstanding_balance < 0 AND
          monthly_amount_t < l_outstanding_balance) THEN
          (
          l_pay_value = l_outstanding_balance
          IF l_pay_value > NET_PAY_ASG_PROC_PTD THEN
          (
          l_pay_value = NET_PAY_ASG_PROC_PTD

          IF NET_PAY_ASG_PROC_PTD =< 0 THEN
          (
          l_pay_value = 0     
          )

          t_message = 'Cycle2Work Scheme: Insufficient net pay to'
               + 'make Cycle2Work Scheme Payment'
               + 'Amount paid is '
               + TO_CHAR(l_pay_value)
          l_pay_value = l_pay_value * -1
          RETURN l_pay_value,t_message
          )
          l_stop = 'Y'
          t_message = 'Cycle2Work Scheme complete'
          l_pay_value = l_pay_value * -1

          RETURN l_pay_value,
          l_stop,
          t_message
          )
          ELSE
          (
          l_pay_value_temp = monthly_amount * -1

          IF l_pay_value_temp > NET_PAY_ASG_PROC_PTD THEN
          (
          l_pay_value = NET_PAY_ASG_PROC_PTD * -1
          IF NET_PAY_ASG_PROC_PTD =< 0 THEN
          (
          l_pay_value = 0     
          )

          t_message = 'Cycle2Work Scheme: Insufficient net pay to make Cycle2Work Scheme'
               + 'Amount paid is ' + TO_CHAR(l_pay_value)
          RETURN l_pay_value,t_message
          )
          l_pay_value = l_pay_value_temp * -1

          RETURN l_pay_value
          )

          /*============================= FORMULA END =====================================*/


          Once you’ve created your formula create the results for the element Cycle2Work Scheme:

          Select the name of your formula and in the results add:

          L_PAY_VALUE (direct result)
          L_STOP (stop)
          T_MESSAGE (message)

          Its been a while since i've done this, so have a play around with the above until you get it working.

          For 12 monthly amounts you just add the total amount in the balance element and 1/12th of the amount in the monthly element.

          Thanks

          Edited by: SteveCPP on Aug 22, 2012 3:12 PM