public static IndividualUsnDTaxAggregate Calculate( TaxCalculationBase @base, IndividualUsnDTaxParameters @params) { var chargedTax = CalculateUsnDChargedTax(@params); var feeDeduction = @params.CustomerTaxParameters.Salary > RurMoney.Zero ? RurMoney.Min(@base.TotalFee, 0.5M * chargedTax) // есть сотрудники : @base.TotalFee; var usnTotalTax = chargedTax - feeDeduction; var(total, burgen) = CalculateTotal(usnTotalTax + @base.EmployeeNdfl, @base.TotalFee, @params); return(new IndividualUsnDTaxAggregate( chargedTax, feeDeduction, @base.TotalFee, usnTotalTax, @params.SelfInsuranceFee, @base.EmployeeFee, @base.AdditionalFee, @base.EmployeeNdfl, total, burgen )); }
public static OrgUsnD_RTaxAggregate Calculate( TaxCalculationBase @base, OrganizationUsnD_RTaxParameters @params) { var totalExpenses = @base.EmployeeFee.Total + @base.EmployeeNdfl + @params.CustomerTaxParameters.Expense + @params.CustomerTaxParameters.Salary; var chargedTax = CalculateUsnDRChargedTax(@params, totalExpenses); var sts = RurMoney.Max(chargedTax, @params.MinTaxRate.Value * @params.CustomerTaxParameters.Income); var(total, burgen) = CalculateTotal(sts + @base.EmployeeNdfl, @base.TotalFee, @params); return(new OrgUsnD_RTaxAggregate( totalExpenses, sts, @base.EmployeeFee, @base.EmployeeNdfl, @base.TotalFee, total, burgen )); }
public static OrgUsnDTaxAggregate Calculate( TaxCalculationBase @base, OrganizationUsnDTaxParameters @params) { var usnChargedTax = CalculateUsnDChargedTax(@params); var feeDeduction = @params.CustomerTaxParameters.Salary > RurMoney.Zero ? RurMoney.Min(0.5M * usnChargedTax, @base.TotalFee) : @base.TotalFee; var taxTotal = usnChargedTax - feeDeduction; var(total, burgen) = CalculateTotal(taxTotal + @base.EmployeeNdfl, @base.TotalFee, @params); return(new OrgUsnDTaxAggregate( usnChargedTax, taxTotal, @base.EmployeeFee, feeDeduction, @base.TotalFee, @base.EmployeeNdfl, total, burgen )); }
public static IndividualUsnD_RTaxAggregate Calculate( TaxCalculationBase @base, IndividualUsnD_RTaxParameters @params) { var totalExpenses = @params.SelfInsuranceFee.Total + @base.EmployeeFee.Total + @base.EmployeeNdfl + @params.CustomerTaxParameters.Expense + @params.CustomerTaxParameters.Salary; var chargedTax = CalculateUsnDRChargedTax(@params, totalExpenses); var taxTotal = RurMoney.Max(chargedTax, @params.MinTaxRate.Value * @params.CustomerTaxParameters.Income); var(total, burgen) = CalculateTotal(taxTotal + @base.EmployeeNdfl, @base.TotalFee, @params); return(new IndividualUsnD_RTaxAggregate( totalExpenses, taxTotal, @params.SelfInsuranceFee, @base.EmployeeFee, @base.AdditionalFee, @base.EmployeeNdfl, @base.TotalFee, total, burgen )); }
public static IndividualOsnTaxAggregate Calculate( TaxCalculationBase @base, IndividualOsnTaxParameters @params) { var(salesNds, buyNds, totalNds) = CalculateNds(@params); var individualNdfl = CalculateIndividualNdfl(); var(total, burgen) = CalculateTotal(individualNdfl + totalNds, @base.TotalFee, @params); return(new IndividualOsnTaxAggregate( individualNdfl, totalNds, @params.SelfInsuranceFee, @base.AdditionalFee, @base.TotalFee, @base.EmployeeFee, @base.EmployeeNdfl, total, burgen )); RurMoney CalculateIndividualNdfl() { var expense = @params.CustomerTaxParameters.Expense - buyNds + @params.SelfInsuranceFee.Total; var totalExpense = expense + @base.EmployeeFee.Total + @base.EmployeeNdfl + @params.CustomerTaxParameters.Salary; var profit = @params.CustomerTaxParameters.Income - salesNds - totalExpense; return(RurMoney.Round(@params.NdflRate.Value * profit)); } }
public static OrgOsnTaxAggregate Calculate( TaxCalculationBase @base, OrganizationOsnTaxParameters @params) { var(salesNds, buyNds, totalNds) = CalculateNds(@params); var profitTax = CalculateProfitTax(); var totalTax = profitTax + totalNds + @base.EmployeeNdfl; var(total, burgen) = CalculateTotal(totalTax, @base.TotalFee, @params); return(new OrgOsnTaxAggregate( profitTax, totalNds, @base.TotalFee, @base.EmployeeFee, @base.EmployeeNdfl, total, burgen )); RurMoney CalculateProfitTax() { var taxIncome = @params.CustomerTaxParameters.Income - salesNds; var taxExpense = @params.CustomerTaxParameters.Expense - buyNds; var totalTaxExpense = taxExpense + @base.EmployeeFee.Total + @base.EmployeeNdfl + @params.CustomerTaxParameters.Salary; return(@params.ProfitTaxRate.Value * (taxIncome - totalTaxExpense)); } }