Previous  Next          Contents  Index  Navigation  Glossary  Library

Implementing Overtime Charged to a Project on Which You Have Worked (Case Study)

The section demonstrates how to design client extensions that solve the business problem of charging and billing overtime premium transactions to projects on which the overtime is worked.

Business Rule

The first step in the design process is to determine the business rule that you want to solve using client extensions.

Business Rule: Create overtime premium transactions charged to the contract project on which the overtime was worked.

You charge overtime premium costs to the project and task on which the overtime is worked. You also bill the overtime premium costs at cost, and bill all straight time hours based on the billing methods defined for the project and task.

Employees identify the overtime hours worked on their timecard with one of the following expenditure types:

The appropriate overtime premium multipliers are defined based on the type of overtime work, as identified by the overtime expenditure types.

Note: This is a different method of accounting for overtime premium costs than charging overtime premium to a indirect project as supported by the Overtime Calculation extension provided by Oracle Projects

Suggestion: If you determine that you need to use both the Labor Transaction Extension and the Overtime Calculation extension to process overtime for your employees, you need to ensure that you have defined conditions in each of these functions so that each transaction is processed by only one of these functions, based on your company policies.

The following chart displays an example of the transactions that may exist on a project for which overtime is charged according to this business rule.

Source Expenditure Type Class Quantity Cost Rate Raw Cost Bill Rate Billable Status Bill Amount
Professional Straight Time 8 $40 $320 $140 Yes $1,120
Time and Half (Source Transaction) Straight Time 2 $40 $80 $140 Yes $280
Time and Half Premium Overtime 0 20 (40 X .5) $40 (A) N/A Yes $40 (B)
(A) Raw Cost = Raw Cost Amount X Time and Half Premium Multiplier: $80 X .5
(B) Bill Amount = Raw Cost Amount of Overtime Premium Transaction: (A) = (B)

List Business Requirements

After you define the business rule you want to solve using client extensions, list the business requirements behind the business problem. This will help ensure that you are acknowledging all of the aspects of the business problem during the design stage.

Required Extensions

To implement charging and billing overtime to a contract project, you use two extensions:

Suggestion: Review the PL/SQL code that corresponds to the implementation of this case study in the files PAXCCETB.pls and PAXICTMB.pls located in the Oracle Projects admin/sql directory.

Additional Implementation Data

Before you start charging overtime to a contract project, you need to create the appropriate implementation data to implement this business requirement.

First, you define expenditure types classified with the Straight Time expenditure type class; these expenditure types are used by employees to identify overtime worked when recording their timecards.

Next, you define expenditure types classified with the Overtime expenditure type class, which is used to identify the overtime premium transactions. These expenditure types are named using the corresponding expenditure type that identifies the overtime worked along with the word Premium concatenated to the end of it. For example, the Double Time Premium expenditure type holds the overtime premium costs for the overtime worked identified by the expenditure type of Double Time.

Expenditure Type Expenditure Type Class
Double Time Straight Time
Time and Half Straight Time
Double Time Premium Overtime
Time and Half Premium Overtime

Finally, you define the appropriate overtime premium multipliers using the labor cost multipliers functionality in Oracle Projects. You define the labor cost multiplier name to match the expenditure type name for which the labor cost multiplier is used. For example, an overtime multiplier for double time is recorded in a labor cost multiplier with a name of Double Time and a multiplier value of 1.

Related Item Expenditure Type Labor Cost Multiplier
Double Time Premium 1
Time and Half Premium .5

With this implementation data, you can easily add more types of overtime, without having to change your labor transaction extension to calculate the overtime premium costs. For example, if you want to add Time and Quarter in which the overtime premium costs are calculating using a multiplier of .25, you define two new expenditure types of Time and Quarter and Time and Quarter Premium. You then define a new labor cost multiplier with the name of Time and Quarter, and a multiplier value of .25. After defining this data, you have completed the implementation of a new type of overtime which can be processed in the labor transaction extension that you defined to create overtime premium transactions using this implementation data.

Attributes of Straight Time Transactions

You do not need to use a client extension to create the straight time transactions; they are created within the standard processing of Oracle Projects when you enter timecard items. However, you may wish to review some of the attributes of the straight time transactions to help you determine what additional information you need for the related transactions for overtime premium costs.

Raw Cost Calculation. Cost straight time items according to the standard processing of Oracle Projects (hours X employee hourly cost rate).

Burdening. Burden straight time cost based on project and task setup using the standard cost plus processing of Oracle Projects.

Billable Status. All straight time transactions are billable, as determined by the project and task setup.

Bill Amount. Bill straight time labor as determined by the billing setup for projects and tasks using standard billing methods.

Accounting. Account for all straight time costs and revenue to contract projects according to your AutoAccounting rules.

Creating Overtime Premium Transactions. To create the overtime premium transactions for each overtime transaction recorded on a timecard, use the Labor Transactions Extension. See: Labor Transactions Extensions.

Suggestion: Review the file PAXCCETB.pls to see the PL/SQL code that creates the overtime premium transactions.

Identifying Overtime Transactions. You can identify the overtime transactions for which to create overtime premium transactions based on the implementation data defined for this business requirement. You create overtime premium transactions for all overtime transactions classified with an expenditure type name that also exists as a labor cost multiplier name. This functionality is illustrated in the example in the template files for the labor transaction extension.

You could also have identified these transactions by explicitly listing the appropriate expenditure type values in your labor transaction extension. However, with this method, any time you wanted to implement a new overtime type, you would have had to change the explicit list of overtime expenditure types in your labor transaction extension.

Note: There are many ways to implement a solution to a business requirement using client extensions. However, as illustrated by these two methods just described, you can see that one way may be superior to any other method to reduce maintenance of the extension. This type of implementation requires creative design skills along with an understanding of the client extensions, the PL/SQL language, and the Oracle Projects data structures.

Assigning Expenditure Types. Create overtime premium related transactions for source labor transactions charged with specific expenditure types.

For example, for any expenditure item with an expenditure type of Double Time or Time and Half, you want to create a related transaction to record the overtime premium costs. You create the related transaction with the associated overtime premium expenditure type. Based on your implementation data, you know that the overtime premium expenditure types uses the same name as the overtime expenditure type with the word Premium concatenated to the end of it. These overtime expenditure types and their corresponding overtime premium expenditure types are listed below.

Source Expenditure Type Related Transaction Expenditure Type Related Transaction Expenditure Type Class
Double Time Double Time Premium Overtime
Time and Half Time and Half Premium Overtime

Charging to a Project and Task. Charge the related transaction to the same project and task as the source transaction, since the business requirements specify that all overtime premium transactions are charged to the same project as the overtime worked.

In this case, you do not need to explicitly specify the project and task values when you call the CreateRelatedItem procedure in your labor transaction extension. If you do not specify these values, the CreateRelatedItem procedure automatically charges the related transaction to the same project and task as the source transaction.

Calculating Raw Cost. Cost overtime premium items according to the following formula:

Source transaction raw cost amount X appropriate labor cost multiplier

You have defined labor cost multipliers with names that match the expenditure types which identify the overtime hours worked. Use the appropriate labor cost multiplier to calculate the overtime premium transaction raw cost.

For example, if the expenditure type of the related transaction is Time and Half Premium, calculate the raw cost of the related transaction according to the raw cost amount of the source transaction times the labor cost multiplier of .5.

Billing Overtime Premium Transactions

To establish the bill amount of the related transactions for overtime premium, you use the Labor Billing Extension. See: Labor Billing Extensions.

Suggestion: Review the file PAXICTMB.pls to see the PL/SQL code that calculates the bill amount of the overtime premium transactions.

Identifying Overtime Premium Transactions

Identify all billable transactions classified with the Overtime expenditure type class.

Oracle Projects passes only billable transactions to the labor billing extension, so you only need to include logic based on the expenditure type class to identify the appropriate transactions.

Note: This assumes that all expenditure types classified with the Overtime expenditure type class are to be billed in this way. If this is not true in your case, you can explicitly list the expenditure types to which this rule applies.

Calculating Bill Amount

According to the business requirements, bill overtime premium transactions based on the raw cost of the overtime premium transaction.

For all transactions that you identified with the Overtime expenditure type class, you set the bill amount equal to the raw cost.

For all other labor transactions, you do not set the bill amount in the labor billing extension. Oracle Projects then uses the standard billing methods to calculate the bill amounts for these transactions.


         Previous  Next          Contents  Index  Navigation  Glossary  Library