Imagine this scenario….
This is an Employee Leave Management Applciation.
We have a BO called LeaveType. Samples are Annual Leave, Rest & Recreation Leave, Winter Leave etc etc etc.
Attributes:
LeaveType.LeaveTypeName
The rate at which each type of leave accrues can change at some point in time in the future as company policy changes.
Hence we have a Child BO called LeaveTypeDetail.
Attributes:
LeaveTypeDetail .EffectiveDate DATE (This is the date after which this accrual rate applies)
LeaveTypeDetail .AccrualRate NUMBER (2.4) (days accrued per day)
LeaveTypeDetail .LeaveType LeaveType
Now we have an Employee (RegularUser) and each Employee has any number of LeaveType assigned in a BO called EmpLeaveTypeAssignment
Attributes:
EmpLeaveTypeAssignment .LeaveType LeaveType
EmpLeaveTypeAssignment .StartDate Date
EmpLeaveTypeAssignment .EndDate Date
Now, if we only ever had one LeaveType and the Employee was assigned that LeaveType and the EndDate on the assignment was UNDEFINED then the calculation is simple as whatever the AccrualRate was for that LeaveTypeDetail would be always applicable.
However, as you can imagine, there could be many LeaveTypes and many various assignment date ranges for each employee. Hence we need to build a BO that breaks all this into date range records that have the appropriate Accrual Rate.
This BO called EmployeeLeaveComponents
Attributes
Employee RegularUser
LeaveType LeavType
StartDate Date
EndDate Date
ApplicableDays Number (calculated EndDate-StartDate+1)
AccrualRate Number
AccruedDays Number (calculated ApplicableDays X Accrual Rate)
I need to build a process builds this table for a number of cases…
- For a Single Employee as at the CURRENT_DATE
- For a Single Employee as at an Enquiry_Date
- For All Employees as at the CURRENT_DATE
- For All Employees as at an EnquiryDate
Once this is built then it is simple to use the results in a report or to display on a Status page such that for each employee, how much of each different type of leave have been accrued and ultimately how much leave has been used.
As a relative newcomer to Aware, my head starts to hurt when trying to think about how I would build this process.
However, I am happy to pay someone to do it assuming the price is reasonable but need it done pretty quickly.
If anyone wants to send me a quote and or ask question to be clear on scope, please email me privately.
Cheers,
Mark