detail

Document Sample
detail Powered By Docstoc
					 Design for Temporary "Fair Share" Process
Table of Contents
   ·   Overview

   ·   Data Base Changes

   ·   Gross-to-Net Table Additions

   ·   Scheduling

   ·   Temporary Program PPP761

           ·   Input

           ·   Output

           ·   Process

                  ·     Initialization

                  ·     Main Processing Loop

                  ·     End of Job Processing

Overview
The purpose of the temporary "fair share" process is to enable the University's Payroll/Personnel
System (PPS) to comply with the Fair Share measure passed by the Legislature and signed into
law by the Governor in September, 1999. This law becomes effective January 1, 2000, and
presents a set of complex requirements for which the University cannot produce a long-term
solution in the limited time available. Therefore, a short-term process will be put in place that
will enable compliance until such time as a thoroughgoing set of functional requirements can be
produced, analysed and satisfied.
The essential rationale of the "fair share" requirement is that those organizations which act as
exclusive bargaining agents for collective bargaining units have administrative burdens with
respect to all members of those units, not just those members who are members of the
organization. Therefore, it is reasonable that those employees who are members of a bargaining
unit but who are not members of the union which represents that unit should pay some share
of the costs of the activities in which the union engages on behalf of covered employees within
the unit.
Data Base Changes
A new table will be added to the Control Table File database. The table will be named PPPBUF.
The table structure will be as follows (primary key columns shown in blue ):

 Column Data Externa
                                                         Description
  Name Type l Length

BUF_BU Char                  Unit Code for an exclusively represented bargaining unit which has
                         2
C      acter                 demanded "fair share" deductions.

BUF_UD Char                  GTN Number used in assessing union dues from members of the
                         3
UE_GTN acter                 bargaining unit in question.

BUF_FAI                    GTN Number used in assessing "fair share" from members of the
        Char
R_SHR_                   3 bargaining unit in question.
        acter
GTN

BUF_FAI                    The value to be stored in on an employee's PPPDBL table as the "fair
        Deci
R_SHR_                 9,2 share" 'G' balance value.
        mal
VALUE

BUF_CH                     GTN number of one agreed charity which may substitute for the "fair
       Char
ARITY_                   3 share" for employees who object to unions on a religious basis.
       acter
GTN1

BUF_CH                     GTN number of one agreed charity which may substitute for the "fair
       Char
ARITY_                   3 share" for employees who object to unions on a religious basis.
       acter
GTN2

BUF_CH                     GTN number of one agreed charity which may substitute for the "fair
       Char
ARITY_                   3 share" for employees who object to unions on a religious basis.
       acter
GTN3

       The column BUF_BUC is the foreign key, referencing PPPBUT, on delete restrict.

Gross-to-Net (GTN) Table Additions
Two new sets of GTN Numbers will be added. For each bargaining unit for which "fair share"
deductions are to be taken:
   1. one "fair share" GTN Number with a GTN_SET_INDICATOR of '3' will be added, and
   2. up to three "charity" GTNs with a GTN_SET_INDICATOR of 'C' will be added.

Scheduling
The design of this temporary solution calls for the program described below to be run
immediately prior to any payroll computation process.

Temporary Program PPP761
Input
Program PPP761 will receive input from the following sources:

   ·    A run specification file. This file will contain one record for each bargaining unit for
        which "fair share" deductions are to be taken. Each record will contain the information
        required to load the PPPBUF table. See the discussion on that table, in the section on
        Data Base Changes above, for details. A new form, UPAYnnn, is provided for processing
        these run specification records. A draft image of the form is available for viewing in
        Attachment 1 to this document.

   ·    The PPPCCR table of the CTL, to obtain the campus name for use in report headers.

   ·    The PPPSCR table of the EDB, to obtain SCR_CURRENT_DATE to control EDB
        record selection and to obtain other data needed to build the initial Employee Change File
        record.

   ·    EDB records for subject covered employees, obtained through a cursor. The text of the
        cursor declaration is specified in Attachment 2 to this document.
        In addition to the tables/columns which are specified in the cursor, the PPPPER and
        PPPDBL tables will be accessed in order to determine what processing is required for a
        given employee.

   ·    EDB records for subject uncovered employees, obtained through a cursor. The text of the
        cursor declaration is specified in Attachment 3 to this document.
        In addition to the tables/columns which are specified in the cursor, the PPPPER table will
        be accessed in order to determine what processing is required for a given employee.

   ·    Home Department Table records will be accessed to enable display of Home Department
        Names in audit reports.

   ·    Gross-to-Net Table records for "fair share" deductions and "charity" deductions will be
        accessed to validate the input from the run specification. This access will be
        accomplished through a call to PPSETUTL, which will load the two deductions sets to
        working storage.

   ·    Bargaining Unit Table records will be accessed to validate bargainging unit codes and
        union dues Gross-to-Net Numbers supplied on the input run specification.

Output
Program PPP761 will produce the following output:
   ·   Updates to the PPPDBL table of the EDB

   ·   An Employee Change File containing a record for every data element changed during the
       process

   ·   A control/total report which will display the following facts:

           ·     Number of employee records accessed

           ·     Number of employee records modified

           ·     Number of "fair share" deductions established

           ·     Number of "fair share" deductions removed

           ·     Number of "charity" deductions removed

           ·     Number of bargaining units processed
       A format for this report has not yet been specified by any functional office.

   ·   An error report, if needed

   ·   Two audit reports: one to display detail about actions taken on covered employees and
       one to display detail about actions taken on uncovered employees.

Process
Initialization

Initialization processing will perform the following tasks:

   ·   Retrieve the current date from the system using XDC3-GET-CURRENT-DATE and
       build:

           ·     WS-TIMESTAMP for use in Employee Change File records

           ·     the display run date for the control/total and error reports

   ·   Call PPSETUTL to load "fair share" GTN information from the GTN Table

   ·   Call PPSETUTL to load "charity" GTN information from the GTN Table

   ·   Open for input:

           ·     the run specification file

   ·   Open for output:

           ·     a Total/Control Report,

           ·     the Audit Report File for covered employees
       ·   an Error Report and

       ·   Employee Change File

·   Initialize various accumulators.

·   Delete all rows from the PPPBUF table.

·   Read the first record from the run specification file. If the program identifier on the
    record is not 'PPP761-SPEC', issue a message and stop processing.
    If the first run specification record contains the character 'F' in column 12 the program
    will set a flag indicating that the run is the first of the month. This flag will control
    processing of uncovered employees who have previously been enrolled for fair share or
    charity deductions.

·   Read, edit and process the remaining run specification records:

       ·   Read a record from the run specification file

       ·   Verify that the input union dues GTN Number has a group code of 'U' on the
           GTN Table

       ·   Call PPBUTUT2 to validate the input bargaining unit code and that the union
           dues GTN is valid for that bargaining unit

       ·   Verify that the input "fair share" GTN Number is among those loaded in the "fair
           share" set

       ·   Verify that each input "charity" GTN Number is among those loaded in the
           "charity" set

       ·   Build a PPPBUF table row from the input specification record and insert it into
           the PPPBUF table

       ·   Store the values for the PPPBUF table in the internal BUF array

·   Close the run specification input file

·   Access the PPPCCR table to obtain Campus Control Record information.

·   Access the PPPSCR table to obtain SCR_CURRENT_DATE and other data to be used in
    building the initial Employee Change File record

·   Format and write the initial Employee Change File record.

·   Format WS-MONTH-BEGIN and WS-MONTH-END dates from
    SCR_CURRENT_DATE for use in the EDB cursor.

·   Open the EDB cursor for covered employees.
   ·   Move spaces to SAVE-EMPLOYEE-ID and SAVE-BUC.
Main Processing Loop for Covered Employees

The main processing loop will execute every time the program is run. It processing loop will
execute as follows for each cursor row fetched and will continue until the execution of the
FETCH statement returns a SQLCODE of +100:

   ·   A pair of SQL SELECT statements will be executed against the PPPDBL table to
       determine whether the employee's record satisfies the conditions which require action.
       The first SELECT will determine whether the employee is signed up for union dues
       deduction: EXEC SQL SELECT GTN_AMT INTO :UDUE-GTN-AMT FROM
       PPPVZDBL_DBL WHERE EMPLOYEE_ID = :WS-EMPLOYEE-ID AND
       GTN_NUMBER = :WS-UDUE-GTN AND GTN_IND = :WS-G-IND END-EXEC.
       The second SELECT will determine whether the employee is signed up for "fair share"
       deduction: EXEC SQL SELECT GTN_AMT INTO :UDUE-GTN-AMT FROM
       PPPVZDBL_DBL WHERE EMPLOYEE_ID = :WS-EMPLOYEE-ID AND
       GTN_NUMBER = :WS-FAIR-SHR-GTN AND GTN_IND = :WS-G-IND END-EXEC.
       If this SELECT yields an SQLCODE of +100, then the following SELECT will be
       executed:
       EXEC SQL SELECT GTN_AMT INTO :UDUE-GTN-AMT FROM PPPVZDBL_DBL
       WHERE EMPLOYEE_ID = :WS-EMPLOYEE-ID AND (GTN_NUMBER = :WS-
       CHARITY-GTN1 OR GTN_NUMBER = :WS-CHARITY-GTN2 OR GTN_NUMBER
       = :WS-CHARITY-GTN3) AND GTN_IND = :WS-G-IND END-EXEC.
       The information provided by these SELECT statements will form the basis of the
       following evaluation:

           ·   If the employee is enrolled in nothing, i.e., no union dues, no Fair Share and no
               charities, a Fair Share deduction will be established.

           ·   If the employee is enrolled in union dues only, no action will be taken.

           ·   If the employee is enrolled in Fair Share only, no action will be taken.

           ·   If the employee is enrolled in charity only, no action will be taken.

           ·   If the employee is enrolled in union dues and Fair Share, the Fair Share deduction
               will be removed.

           ·   If the employee is enrolled in union dues and charity, the union dues deduction
               will be removed.

           ·   If the employee is enrolled in Fair Share and charity, the Fair Share deduction will
               be removed.

           ·   If the employee is enrolled in union dues, Fair Share and charity, the union dues
               and the Fair Share will be removed.
       The program logic which implements this decision tree can be see in Attachment 4 to this
       document.
       If either of the prescibed actions is taken, the program will write appropriate Employee
       Change File records. Otherwise, the program will fetch another cursor row and loop
       again.

   ·   If some action has been taken and the Employee ID Number in process is not equal
       to the last audited Employee ID Number, the PPPPER table will be accessed to
       retrieved the employee's name for reporting purposes. Audit report records will be
       constructed and written.

   ·   Another cursor row will be fetched and the process loop will repeat.
Processing for Uncovered Employees

This process will execute only when the program is run in "first run of month" mode. This mode
is triggered my the presence of the character 'F' in column 12 on the first input run specification
record. This routine will open a second EDB cursor which selects data for those employees
whose EDB records meet the following criteria:

   ·   The Employee Relations Code (EDB 0160) does not contain the value 'E', the value 'H' or
       a space.

   ·   The employee does have a PPPDBL entry which is for one of the fair share or charity
       GTNs.
For each such row the process will:

   ·   Delete the PPPDBL row

   ·   Write appropriate ECF records

   ·   Write record to an audit report
When the cursor FETCH returns an SQLCODE of +100 the cursor and the audit report will be
closed and control will be returned to the program's mainline section.
End of Job Processing
The EDB cursor will be closed.
The control/total report will be formatted and written.
All open files will be closed:

   ·   Employee Change File

   ·   Control/Total Report
·   Error Report

·   Audit Reports

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:18
posted:1/24/2012
language:
pages:8