Calculate Periodic Salary

Calculate the periodic salary of an employee based on the Salary Basis frequency. This frequency manages the salary of an employee and frequency of the payroll to which the employee is mapped.

You can find the periodic salary and pay frequency of the employee in Salary Details record.

  • The application converts only the amount that you have specified as salary while managing salary using salary basis to the periodic value.

  • If the salary structure in an organization has more than one salary component, the salary basis amount and periodic salary amount may not represent the complete salary.

  • Consider the frequency of the salary basis amount as the frequency of the salary basis used. For example, if annual salary basis is used, the salary basis amount will carry the annual value. If an hourly salary basis is used, the salary basis amount will carry the hourly value.

Do these steps to calculate the periodic salary as a frequency converted value of the salary basis amount:

  1. On the Home page, click the Fast Formulas quick action under the My Client Groups tab.

  2. Create a fast formula with these details:

    • Formula Name: Payroll Interface Periodic Salary Calculator

    • Formula Type: Extract Rule

    • Description: Formula to convert salary basis amount into periodic amount

    • Legislative Data Group: Leave this blank

  3. Click Continue.

  4. Here's a sample formula text to do conversions based on commonly used salary basis and pay frequencies. You can provide conversion logic in the fast formula according to your implementation requirements.

    inputs are l_salary(text),
    l_PaymentFrequency(text),
    l_payroll_freq(text)
    
    if(l_payroll_freq= 'Annually' or l_payroll_freq= 'Year') then
    (
      if(l_PaymentFrequency ='ANNUAL' ) then
      (
        l_periodic_amount = to_number(l_salary)
      )
      else if(l_PaymentFrequency ='HOURLY') then
      (
        l_periodic_amount = to_number(l_salary)*365*8
      )
      else if(l_PaymentFrequency ='HOURLY2') then
      (
        l_periodic_amount = to_number(l_salary)*365
      )
      else if(l_PaymentFrequency ='PERIOD') then
      (
        l_periodic_amount = to_number(l_salary)
      )
      else if(l_PaymentFrequency ='WEEK') then
      (
        l_periodic_amount = to_number(l_salary)*52
      )
      else if(l_PaymentFrequency ='SEMI_MONTH') then
      (
        l_periodic_amount = to_number(l_salary)*24
      )
      else if(l_PaymentFrequency ='BIWEEKLY') then
      (
        l_periodic_amount = to_number(l_salary)*26
       )
      else if(l_PaymentFrequency ='MONTHLY') then
      (
        l_periodic_amount = to_number(l_salary)*12
       )
      else
      (
        l_periodic_amount = to_number(l_salary)
      )
    )
    else 
    if(l_payroll_freq= 'Monthly Calendar' or l_payroll_freq= 'Calendar Month') then
    (
     if(l_PaymentFrequency ='ANNUAL') then
      (
        l_periodic_amount = (to_number(l_salary))/12
       )
     else if(l_PaymentFrequency ='HOURLY') then
      (
        l_periodic_amount = (to_number(l_salary)*365*8)/12
       )
     else if(l_PaymentFrequency ='HOURLY2') then
      (
        l_periodic_amount = (to_number(l_salary)*365)/12
      )
     else if(l_PaymentFrequency ='PERIOD') then
      (
        l_periodic_amount = to_number(l_salary)
       )
     else if(l_PaymentFrequency ='WEEK') then
      (
        l_periodic_amount = ((to_number(l_salary)*52))/12
      )
     else if(l_PaymentFrequency ='SEMI_MONTH') then
      (
        l_periodic_amount = ((to_number(l_salary)*24))/12)
     else if(l_PaymentFrequency ='BIWEEKLY') then
      (
        l_periodic_amount = ((to_number(l_salary)*26))/12
      )
     else if(l_PaymentFrequency ='MONTHLY') then
      (
        l_periodic_amount = (to_number(l_salary)*12)/12
      )
     else
      (
        l_periodic_amount = to_number(l_salary)
      )
    )else
    if(l_payroll_freq= 'Semimonthly' or l_payroll_freq= 'Semi-Month') then
    (
     if(l_PaymentFrequency ='ANNUAL') then
      (
        l_periodic_amount = to_number(l_salary)/24
       )
     else if(l_PaymentFrequency ='HOURLY') then
      (
        l_periodic_amount = (to_number(l_salary)*365*8)/24
       )
     else if(l_PaymentFrequency ='HOURLY2') then
      (
        l_periodic_amount = (to_number(l_salary)*365)/24
      )
     else if(l_PaymentFrequency ='PERIOD') then
      (
        l_periodic_amount = to_number(l_salary)
       )
     else if(l_PaymentFrequency ='WEEK') then
      (
        l_periodic_amount = ((to_number(l_salary)*52))/24
      )
     else if(l_PaymentFrequency ='SEMI_MONTH') then
      (
        l_periodic_amount = ((to_number(l_salary)*24))/24
      )
     else if(l_PaymentFrequency ='BIWEEKLY') then
      (
        l_periodic_amount = ((to_number(l_salary)*26))/24
      )
     else if(l_PaymentFrequency ='MONTHLY') then
      (
        l_periodic_amount = (to_number(l_salary)*12)/24
      )
     else
      (
        l_periodic_amount = to_number(l_salary)
      )
    )
    else
    if( l_payroll_freq= 'Biweekly' or l_payroll_freq='Bi-Week') then
    (
     if(l_PaymentFrequency ='ANNUAL') then
      (
        l_periodic_amount = to_number(l_salary)/26
      )
     else  if(l_PaymentFrequency ='HOURLY') then
      (
        l_periodic_amount = (to_number(l_salary)*365*8)/26
      )
     else if(l_PaymentFrequency ='HOURLY2') then
      (
        l_periodic_amount = (to_number(l_salary)*365)/26
      )
     else if(l_PaymentFrequency ='PERIOD') then
      (
        l_periodic_amount = to_number(l_salary)
       )
     else if(l_PaymentFrequency ='WEEK') then
      (
        l_periodic_amount = ((to_number(l_salary)*52))/26
      )
     else if(l_PaymentFrequency ='SEMI_MONTH') then
      (
       l_periodic_amount = ((to_number(l_salary)*24))/26
      )
     else if(l_PaymentFrequency ='BIWEEKLY') then
      (
        l_periodic_amount = ((to_number(l_salary)*26))/26
       )
     else if(l_PaymentFrequency ='MONTHLY') then
      (
       l_periodic_amount = (to_number(l_salary)*12)/26
      )
     else
      (
        l_periodic_amount = to_number(l_salary)
      )
    )
    else
    if(l_payroll_freq= 'Weekly' or l_payroll_freq= 'Week') then
    (
     if(l_PaymentFrequency ='ANNUAL') then
      (
        l_periodic_amount = to_number(l_salary)/52
      )
     else if(l_PaymentFrequency ='HOURLY') then
      (
        l_periodic_amount = (to_number(l_salary)*365*8)/52
      )
     else if(l_PaymentFrequency ='HOURLY2') then
      (
        l_periodic_amount = (to_number(l_salary)*365)/52
      )
     else if(l_PaymentFrequency ='PERIOD') then
      (
        l_periodic_amount = to_number(l_salary)
      )
     else if(l_PaymentFrequency ='WEEK') then
      (
        l_periodic_amount = ((to_number(l_salary)*52))/52
      )
     else if(l_PaymentFrequency ='SEMI_MONTH') then
      (
        l_periodic_amount = ((to_number(l_salary)*24))/52
      )
     else if(l_PaymentFrequency ='BIWEEKLY') then
      (
        l_periodic_amount = ((to_number(l_salary)*26))/52
       )
     else if(l_PaymentFrequency ='MONTHLY') then
      (
        l_periodic_amount = (to_number(l_salary)*12)/52
      )
     else
      (
        l_periodic_amount = to_number(l_salary)
       )
    )
    else
    (
     if(l_PaymentFrequency ='ANNUAL') then
      (
        l_periodic_amount = to_number(l_salary)/12
      )
     else if(l_PaymentFrequency ='HOURLY') then
      (
        l_periodic_amount = (to_number(l_salary)*365*8)/12
      )
     else if(l_PaymentFrequency ='HOURLY2') then
      (
        l_periodic_amount = (to_number(l_salary)*365)/12
      )
     else if(l_PaymentFrequency ='PERIOD') then
      (
        l_periodic_amount = (to_number(l_salary))/12
      )
     else if(l_PaymentFrequency ='WEEK') then
      (
        l_periodic_amount = ((to_number(l_salary)*52))/12
      )
     else if(l_PaymentFrequency ='SEMI_MONTH') then
      (
        l_periodic_amount = ((to_number(l_salary)*24))/12
      )
     else if(l_PaymentFrequency ='BIWEEKLY') then
      (
        l_periodic_amount = ((to_number(l_salary)*26))/12
      )
     else if(l_PaymentFrequency ='MONTHLY') then
      (
        l_periodic_amount = (to_number(l_salary)*12)/12
      )
     else
      (
        l_periodic_amount = to_number(l_salary)
      )
    )
    return l_periodic_amount
  5. Submit the changes and compile the formula.

  6. After the mentioned formula is compiled successfully, search for and recompile these formulas. Recompile these formulas even if they're already in a compiled status.

    • ORA_EXT_ORA_HRY_GPY_V2_ASG_SALARY_DETAILS

    • ORA_EXT_GPY_PERIODIC_SALARY_CALCULATOR