[{TableOfContents }] \\ Generation of batches of pay transactions is done for: * a specified payroll; * a set of employees within the payroll that match the report parameters; * a specified pay period or a date range within the specified pay period; * or a specified pay category. The Generate Pay Transactions ([UPTG]) form is used to create pay transactions for a selected number of employees based on their work rule definition. The Enter Pay Transactions ([IPTR]) form is used to modify transactions already generated and to add new transactions with a minimum of data entry. The Process Pay Transactions ([UPTR]) form is used to create batches, pay headers, and pay lines from transactions generated or entered though [IPTR]. All transaction generation is based on work rules previously set up. All HR changes that will affect the current payroll MUST be made prior to [UPTG]. Generated pay transactions may be batched by department, department batch code, authorization area, location, or payroll (all in a single batch). Generation is not done for “completed” or “cancelled” assignments. Pay Type must be identified as “Salary” or “Hourly” - no generation is done for “Commission”. ---- !!Daily Time Generation *If the [Time Generation Rule|TIME_GENERATION_RULE] is “By Day with Time” or “By Day w/o Time” the generation of time is done by day. This is referred to as the “qualifying time frame”. The days that will be generated will be: **within the pay period **within the from/to date range specified, **within the assignment start and end dates, **within the employment hire and termination dates. *Under normal circumstances, transactions are not created if they already exist. Duplicates can be created with the Allow Duplicates option in the Duplication field. *If there is no work rule on the assignment, no time generation is done. *If specified on the Work Rule ([IDWR]) form, the work calendar and holiday calendar are used to determine the rules for each day. *If there is no work calendar, the program assumes a normal work week - Mon.-Fri workdays, Sat and Sun off. *Generate each day within the qualifying time frame as follows: **If a time transaction already exists for the day, nothing is generated and a message is given. **If the day is a “day off”, nothing is generated. **Otherwise, if for the work rule, the Generate Holidays toggle is ON ([IDWR] - Status Rules tab), a holiday calendar has been specified ([IDWR] - Details tab) and the day is a identified as a holiday with the Generate Time toggle ON ([IDHC]), the system: ***Uses the Leave Time Code holiday calendar ***If [Hours Per Day|HOURS_PER_DAY] is specified ([IDHC] for that holiday), uses those hours. Otherwise, derives the hours per day from the [standard hours|STD_HOURS_PER_DAY] on [IDWR] or from the Work Calendar. ***If the employee’s FTE < 1, the hours per day will not exceed the employee’s hours per day. **Otherwise, if there are leave lines/planned leaves ([IAAL]) for the day: ***Uses the leave line details Time Code ***Prorates the Overall Time ([IAAL]) by the work days between the leave start and end dates (respects the employee’s schedule and standard hours). ***If the employee’s FTE < 1, the hours per day will not exceed the employee’s hours per day. **Otherwise, if the Employment Status type is “not active” (as defined by the Status Type on the Employment Status ([IDES])): ***Uses the Regular Time Code work rule (from the Status Rules tab), for the employment status that matches that of the employee. The status rules may be defined by employment status, allowing different time codes to be generated for employees on different types of leave. ***Derives the hours per day from the Std Hours for MON to FRI ***If the employee’s FTE < 1, the hours per day will not exceed the employees hours per day **Otherwise, if the Employment Status type is “active”: ***Uses the Work Calendar time code or the Work Rule Regular time code ***Derives the hours per day from the Work Calendar hours or the Std Hours ***If the employee’s FTE < 1, the hours per day will not exceed the employees hours per day ***If the [Time Generation Rule|TIME_GENERATION_RULE] is “without time”, the time code will be generated, but the hours will be NULL ---- !!Weekly/Period Time Generation If the [Time Generation Rule|TIME_GENERATION_RULE] is “By Week with Time”, “By Week w/o Time”, “By Period with Time” or “By Period w/o Time”, summary pay transactions will be created by week or pay period with the following exceptions: * If assignment details have been split during the period, will cause more than one transaction to be generated, so that the proper wage rate, position, distribution and status information can be stored on the pay transaction records. * If a fiscal accounting cutoff date exists in the period, all dollar amounts arising from the time transactions will be posted to the appropriate accounting period. ---- !!Salary Generation If a [Salary $ Time Code|DTC_ID_SALARY] is specified, salary earnings will be generated on the last day of the qualifying time frame with the following exceptions: * If assignment details have been split during the period, will cause more than one transaction to be generated, so that the proper wage rate, position, distribution and status information can be stored on the pay transaction records. * If a fiscal accounting cutoff date exists in the period, all dollar amounts arising from the time transactions will be posted to the appropriate accounting period. * If [FLSA|FLSA] (Fair Labor Standard Act – USA only) rules have been defined for the group, a salary dollar amount will be generated to coincide with [FLSA|FLSA] periods, and will fall on the last day of the [FLSA|FLSA] period, or the last day of the week/pay period, whichever is the greater date. * If the Group ([IDGR])[Pay Type|PAY_TYPE] is “Hourly”, no salary dollar amount will be generated since the wages will be derived entirely from the time generated (based on Pay Component Pay Details). * If the Group ([IDGR]) [Contract Type|CONTRACT_TYPE] is “$ Paid as Earned”, no salary dollar amount will be generated since the wages will be derived entirely from the time generated (based on Pay Component Pay Details) *If the [Pay Type|PAY_TYPE] is “Salary” and the [Contract Type|CONTRACT_TYPE] is “Null”, counts the # eligible days in the qualifying period, excluding “off” days, generated holidays, leave days. \\''Salary $ = Pay Period Wage x (# eligible days / # normal working days in the qualifying period)'' *If the [Contract Type|CONTRACT_TYPE] is “$ Prorated Over Term”, count the # eligible days in the qualifying period, excluding “off” days, generated holidays, leave days. * If # Eligible Days >= # Contract Days Remaining, \\''Salary $ = Contract Limit - CT $ Paid'' \\Otherwise, \\''Salary $ = (Contract Limit - CT $ Paid) x (# Eligible Days / # Days Remaining)'' * If the [Contract Type|CONTRACT_TYPE] is “n Fixed Payments” and if “n” payments have not yet been made \\''Salary $ = Contract Limit - CT $ Paid) / # Periods Remaining'' * If the [Contract Type|CONTRACT_TYPE] is “n Payments With Bank” and if “n” payments have not yet been made, if the Assignment End Date has been passed or the “nth” payment is being made, \\''Salary $ = (Contract Bank) / # Periods Remaining'' \\Otherwise, \\''Salary $ = (Contract Limit - CT $ Paid) / # Periods Remaining'' ---- !!Rate and Shift Premium Generation The rate on each pay transaction defaults to the rate defined on the assignment detail that is effective on the transaction date. ---- !!Leave Bank Balance Checking After all transactions for the qualifying time frame have been generated, a second pass is done to handle leaves that are governed by leave policies. The system checks if the employee is able to take time with the time code, by checking the Leave Schedule ([IALS]). If a schedule exists that matches the employee’s person code, group, unit, or entity, the system will ensure that employees have enough time available in their bank, taking into consideration all leaves taken to date. Leave bank balance checking is done in accordance with the leave policies. If there is not enough time left in the bank and if leave cascade records exist on [IALP], the cascade banks are checked and additional time codes are generated as appropriate to cover the time. If there is still not enough time and the Time Warn Rule field on [IALP] indicates “Error, don’t allow”, the leave time is generated using the “LWOP Time Code” specified on the policy. Exception messages are generated for all leave bank excesses.