public static decimal PaymentFromAmount(decimal amountMonthly, Int32 timesheetHours, Int32 workingHours, Int32 absenceHours)
        {
            Int32 totalHours = TotalHoursForPayment(timesheetHours, workingHours, absenceHours);

            decimal payment = DecOperations.MultiplyAndDivide(totalHours, amountMonthly, timesheetHours);

            return(payment);
        }
        public static Int32 NearRoundDown(decimal valueDec, Int32 nearest = 100)
        {
            decimal dividRet = DecOperations.Divide(valueDec, nearest);

            decimal multiRet = DecOperations.Multiply(RoundDown(dividRet), nearest);

            return(RoundToInt(multiRet));
        }
 public static decimal LimitToMinMax(decimal valueToMinMax, decimal minLimitTo, decimal maxLimitTo)
 {
     if (minLimitTo > valueToMinMax)
     {
         return(0m);
     }
     return(DecOperations.MaxDecValue(valueToMinMax, maxLimitTo));
 }
        private Int32 EmployeeContributionWithFactor(decimal generalBasis, decimal mandatoryEmpee, decimal compoundFactor)
        {
            decimal decimalResult1 = HealthOperations.DecFactorResult(mandatoryEmpee, compoundFactor);

            decimal decimalResult2 = HealthOperations.DecFactorResult(generalBasis, compoundFactor);

            decimal decimalResult3 = DecOperations.Divide(decimalResult2, 3);

            Int32 resultPaymentValue = HealthOperations.IntRoundUp(decimal.Add(decimalResult1, decimalResult3));

            return(resultPaymentValue);
        }
        private Int32 HealthIncreaseWithFactor(decimal taxableIncome, decimal compoundFactor)
        {
            decimal compoundPaymentValue = HealthCompoundIncreaseWithFactor(taxableIncome, compoundFactor);

            decimal employeePaymentValue = DecOperations.Divide(compoundPaymentValue, 3);

            Int32 resultCompoundValue = TaxingOperations.IntRoundUp(compoundPaymentValue);

            Int32 resultEmployeeValue = TaxingOperations.IntRoundUp(employeePaymentValue);

            Int32 resultPaymentValue = (resultCompoundValue - resultEmployeeValue);

            return(resultPaymentValue);
        }
        public static decimal FactorizeAmount(decimal amount, decimal factor)
        {
            decimal result = DecOperations.Multiply(amount, factor);

            return(result);
        }
 public static decimal DecFactorResult(decimal valueDec, decimal factor)
 {
     return(DecOperations.MultiplyAndDivide(valueDec, factor, 100m));
 }
 public static decimal MinMaxValue(decimal valueToMinMax, decimal accumulValue, decimal minLimitTo, decimal maxLimitTo)
 {
     return(DecOperations.MinIncMaxDecValue(valueToMinMax, accumulValue, minLimitTo, maxLimitTo));
 }
 public static decimal MaxValueAlign(decimal valueToMax, decimal accumulValue, decimal maxLimitTo)
 {
     return(DecOperations.MaxDecAccumValue(valueToMax, accumulValue, maxLimitTo));
 }
 public static decimal MinValueAlign(decimal valueToMin, decimal minLimitTo)
 {
     return(DecOperations.MinIncValue(valueToMin, minLimitTo));
 }