/// <summary> /// Deduction total = amortized_amount * amortization /// </summary> public static Deduction CreateAmortized(Salary salary, int amortization, MonetaryValue amortized_amount, Date dt_granted = null, DeductionMode mode = DeductionMode.TEMPORARY) { return(Deduction.Create(salary , amortization , amortized_amount.multipliedBy(amortization) , dt_granted)); }
/// <summary> /// Given deduction total /// </summary> public static Deduction Create(Salary salary, int amortization, MonetaryValue total, Date dt_granted = null, DeductionMode mode = DeductionMode.TEMPORARY) { var record = new Deduction { _salary = salary , Employee = salary.GetEmployee() , Total = total , _amortization = amortization , DateGranted = dt_granted ?? Date.TryParse(DateTime.Now.ToLongDateString()) , Mode = mode }; EventBroker.getInstance().Emit(new EventSalaryDeductionCreated(record, salary)); return(record); }