public override PayrollResult Evaluate(PayrollPeriod period, PayTagGateway tagConfig, IDictionary <TagRefer, PayrollResult> results)
        {
            TimesheetResult resultTimesheet = (TimesheetResult)GetResultBy(results, TAG_TIMESHEET_WORK);

            int resultHours = resultTimesheet.Hours() + Hours;

            var resultValues = new Dictionary <string, object>()
            {
                { "hours", resultHours }
            };

            return(new TermHoursResult(TagCode, Code, this, resultValues));
        }
        private decimal ComputeResultValue(PayTagGateway tagConfig, IDictionary <TagRefer, PayrollResult> results)
        {
            TimesheetResult resultTimesheet = (TimesheetResult)GetResultBy(results, TAG_TIMESHEET_PERIOD);
            TermHoursResult resultWorking   = (TermHoursResult)GetResultBy(results, TAG_HOURS_WORKING);
            TermHoursResult resultAbsence   = (TermHoursResult)GetResultBy(results, TAG_HOURS_ABSENCE);

            decimal scheduleFactor = 1.0m;

            int timesheetHours = resultTimesheet.Hours();
            int workingHours   = resultWorking.Hours;
            int absenceHours   = resultAbsence.Hours;

            decimal paymentValue = ComputeResultPayment(AmountMonthly, scheduleFactor, timesheetHours, workingHours, absenceHours);

            return(paymentValue);
        }
Example #3
0
        public override PayrollResult Evaluate(PayrollPeriod period, PayTagGateway tagConfig, IDictionary <TagRefer, PayrollResult> results)
        {
            TermEffectResult scheduleTermResult    = (TermEffectResult)GetResultBy(results, TAG_SCHEDULE_TERM);
            TimesheetResult  timesheetPeriodResult = (TimesheetResult)GetResultBy(results, TAG_TIMESHEET_PERIOD);

            uint dayOrdFrom = scheduleTermResult.DayOrdFrom;
            uint dayOrgEnd  = scheduleTermResult.DayOrdEnd;

            int[] timesheetPeriod = timesheetPeriodResult.MonthSchedule;
            int[] hoursCalendar   = ComputeResultValue(timesheetPeriod, dayOrdFrom, dayOrgEnd);

            var resultValues = new Dictionary <string, object>()
            {
                { "month_schedule", hoursCalendar }
            };

            return(new TimesheetResult(TagCode, Code, this, resultValues));
        }