Esempio n. 1
0
 public DeclarationSocialValue(Byte statement, WorkSocialTerms summarize, TAmountDec totalBase, Byte foreigner) : base((ResultCode)ArticleResultCode.RESULT_VALUE_DECLARATION_SOCIAL)
 {
     this.StatementType = statement;
     this.SummarizeType = summarize;
     this.ForeignerType = foreigner;
     this.SocialAnnuity = totalBase;
 }
Esempio n. 2
0
        public TAmountDec CutDownPartialAdvanceSocial(Period evalPeriod, TAmountDec generalIncome, TAmountDec annuityIncome)
        {
            TAmountDec annuityBaseLimit = InternalGuides.MaxSocialAnnualBasisAdvance();
            TAmountDec cutdownBaseAbove = OperationsDec.MaxDecAccumAbove(generalIncome, annuityIncome, annuityBaseLimit);

            return(cutdownBaseAbove);
        }
Esempio n. 3
0
        public TAmountDec TaxableIncomesAdvanceTaxingMode(Period evalPeriod,
                                                          TAmountDec generalIncome, TAmountDec excludeIncome,
                                                          TAmountDec lolevelIncome, TAmountDec agrtaskIncome, TAmountDec partnerIncome)
        {
            TAmountDec totalIncome = decimal.Zero;

            totalIncome = decimal.Add(totalIncome, generalIncome);
            if (InternalGuides.TaxLoLevelIncomeWithhold() == false)
            {
                totalIncome = decimal.Add(totalIncome, lolevelIncome);
            }
            else if (InternalGuides.MaxLoLevelIncomeWithhold() > lolevelIncome)
            {
                totalIncome = decimal.Add(totalIncome, lolevelIncome);
            }
            if (InternalGuides.TaxTaskAgrIncomeWithhold() == false)
            {
                totalIncome = decimal.Add(totalIncome, agrtaskIncome);
            }
            else if (InternalGuides.MaxTaskAgrIncomeWithhold() > agrtaskIncome)
            {
                totalIncome = decimal.Add(totalIncome, agrtaskIncome);
            }
            return(totalIncome);
        }
        public static IEnumerable <ResultPack> EvaluateConcept(ConfigBase evalConfig, Period evalPeriod, IPeriodProfile evalProfile,
                                                               Result <MasterItem.EvaluateSource, string> prepValues)
        {
            ITaxingProfile conceptProfile = evalProfile.Taxing();

            if (conceptProfile == null)
            {
                return(EvaluateUtils.DecoratedError(CONCEPT_DESCRIPTION_ERROR_FORMAT, CONCEPT_PROFILE_NULL_TEXT));
            }

            MasterItem.EvaluateSource conceptValues = prepValues.Value;
            // EVALUATION
            TAmountDec basisSourced = conceptProfile.TaxableBaseAdvanceTaxingMode(evalPeriod,
                                                                                  conceptValues.IncomeAdvance);
            TAmountDec basisRounded = conceptProfile.TaxableBaseAdvanceTaxingMode(evalPeriod,
                                                                                  conceptValues.IncomeAdvance);
            TAmountDec basisFinally = conceptProfile.TaxableBaseAdvanceTaxingMode(evalPeriod,
                                                                                  conceptValues.IncomeAdvance);
            // EVALUATION

            IArticleResult conceptResult = new ArticleGeneralResult(evalConfig);

            // SET RESULT VALUES
            conceptResult.AddMoneyTaxingBasisValue(basisSourced, basisRounded, basisFinally);
            // SET RESULT VALUES

            return(EvaluateUtils.Results(conceptResult));
        }
Esempio n. 5
0
        public TAmountDec TaxablePartialAdvanceHealth(Period evalPeriod, TAmountDec generalIncome, TAmountDec annuityIncome)
        {
            TAmountDec annuityBaseLimit = InternalGuides.MaxHealthAnnualBasisAdvance();
            TAmountDec cutdownBaseValue = OperationsDec.MaxDecAccumValue(generalIncome, annuityIncome, annuityBaseLimit);

            return(cutdownBaseValue);
        }
        public static IEnumerable <ResultPack> EvaluateConcept(ConfigBase evalConfig, Period evalPeriod, IPeriodProfile evalProfile,
                                                               Result <MasterItem.EvaluateSource, string> prepValues)
        {
            ISocialProfile conceptProfile = evalProfile.Social();

            if (conceptProfile == null)
            {
                return(EvaluateUtils.DecoratedError(CONCEPT_DESCRIPTION_ERROR_FORMAT, CONCEPT_PROFILE_NULL_TEXT));
            }

            MasterItem.EvaluateSource conceptValues = prepValues.Value;
            // EVALUATION
            TAmountDec incomeTotalsGeneral = conceptProfile.IncludeGeneralIncomes(evalPeriod,
                                                                                  conceptValues.SummarizeType, conceptValues.IncludeIncome, conceptValues.ExcludeIncome);
            TAmountDec incomeTotalsExclude = conceptProfile.ExcludeGeneralIncomes(evalPeriod,
                                                                                  conceptValues.SummarizeType, conceptValues.IncludeIncome, conceptValues.ExcludeIncome);
            // EVALUATION

            IArticleResult conceptResult = new ArticleGeneralResult(evalConfig);

            // SET RESULT VALUES
            conceptResult.AddIncomeInsSocialValue(conceptValues.SummarizeType, incomeTotalsGeneral, incomeTotalsExclude);
            // SET RESULT VALUES

            return(EvaluateUtils.Results(conceptResult));
        }
        public static IEnumerable <ResultPack> EvaluateConcept(ConfigBase evalConfig, Period evalPeriod, IPeriodProfile evalProfile,
                                                               Result <MasterItem.EvaluateSource, string> prepValues)
        {
            ITaxingProfile conceptProfile = evalProfile.Taxing();

            if (conceptProfile == null)
            {
                return(EvaluateUtils.DecoratedError(CONCEPT_DESCRIPTION_ERROR_FORMAT, CONCEPT_PROFILE_NULL_TEXT));
            }

            MasterItem.EvaluateSource conceptValues = prepValues.Value;
            // EVALUATION
            TAmountDec employerPart = TAmountDec.Add(conceptValues.HealthsPartAmount, conceptValues.SocialsPartAmount);
            TAmountDec partialsBase = TAmountDec.Add(conceptValues.GeneralBaseAmount, employerPart);
            TAmountDec definiteBase = conceptProfile.DecRoundUp(partialsBase);
            // EVALUATION

            IArticleResult conceptResult = new ArticleGeneralResult(evalConfig);

            // SET RESULT VALUES
            conceptResult.AddTaxPartialBaseValue(definiteBase);
            // SET RESULT VALUES

            return(EvaluateUtils.Results(conceptResult));
        }
        public static IEnumerable <ResultPack> EvaluateConcept(ConfigBase evalConfig, Period evalPeriod, IPeriodProfile evalProfile,
                                                               Result <MasterItem.EvaluateSource, string> prepValues)
        {
            IEmployProfile conceptProfile = evalProfile.Employ();

            if (conceptProfile == null)
            {
                return(EvaluateUtils.DecoratedError(CONCEPT_DESCRIPTION_ERROR_FORMAT, CONCEPT_PROFILE_NULL_TEXT));
            }

            MasterItem.EvaluateSource conceptValues = prepValues.Value;
            // EVALUATION
            TAmountDec salaryPaymentValue = conceptProfile.SalaryAmountScheduleWork(evalPeriod,
                                                                                    conceptValues.MonthlyAmount,
                                                                                    conceptValues.HoursLiable,
                                                                                    conceptValues.HoursWorked);
            // EVALUATION

            IArticleResult conceptResult = new ArticleGeneralResult(evalConfig);

            // SET RESULT VALUES
            conceptResult.AddMoneyPaymentValue(salaryPaymentValue);
            // SET RESULT VALUES

            return(EvaluateUtils.Results(conceptResult));
        }
Esempio n. 9
0
 public DeclarationHealthValue(Byte statement, WorkHealthTerms summarize, TAmountDec totalBase, Byte foreigner) : base((ResultCode)ArticleResultCode.RESULT_VALUE_DECLARATION_HEALTH)
 {
     this.StatementType = statement;
     this.SummarizeType = summarize;
     this.ForeignerType = foreigner;
     this.HealthAnnuity = totalBase;
 }
Esempio n. 10
0
        public TAmountDec TaxableLolevelIncomes(Period evalPeriod, WorkTaxingTerms summarize,
                                                Byte statement, Byte declaracy, Byte residency,
                                                TAmountDec taxableIncome, TAmountDec partnerIncome, TAmountDec excludeIncome)
        {
            TAmountDec totalIncome = decimal.Zero;

            if (statement == TaxStatement.TAXABLE)
            {
                if (declaracy == TaxDeclaracy.NONSIGNED)
                {
                    switch (summarize)
                    {
                    case WorkTaxingTerms.TAXING_TERM_EMPLOYMENT_POLICY:
                        totalIncome = decimal.Add(totalIncome, taxableIncome);
                        break;

                    case WorkTaxingTerms.TAXING_TERM_FOR_TASK_AGREEMENT:
                        break;

                    case WorkTaxingTerms.TAXING_TERM_STATUTORY_PARTNER:
                        break;
                    }
                }
            }
            return(totalIncome);
        }
Esempio n. 11
0
        public static IEnumerable <ResultPack> EvaluateConcept(ConfigBase evalConfig, Period evalPeriod, IPeriodProfile evalProfile,
                                                               Result <MasterItem.EvaluateSource, string> prepValues)
        {
            ITaxingProfile conceptProfile = evalProfile.Taxing();

            if (conceptProfile == null)
            {
                return(EvaluateUtils.DecoratedError(CONCEPT_DESCRIPTION_ERROR_FORMAT, CONCEPT_PROFILE_NULL_TEXT));
            }

            MasterItem.EvaluateSource conceptValues = prepValues.Value;
            // EVALUATION
            TAmountDec incomeAdvance = conceptProfile.TaxableIncomesWithholdLolevelMode(evalPeriod,
                                                                                        conceptValues.GeneralIncome, conceptValues.ExcludeIncome,
                                                                                        conceptValues.LolevelIncome, conceptValues.TaskAgrIncome, conceptValues.PartnerIncome);
            // EVALUATION

            IArticleResult conceptResult = new ArticleGeneralResult(evalConfig);

            // SET RESULT VALUES
            conceptResult.AddMoneyTransferIncomeValue(incomeAdvance);
            // SET RESULT VALUES

            return(EvaluateUtils.Results(conceptResult));
        }
Esempio n. 12
0
        private TAmountInt EmployerPartialWithSocialFactor(decimal employerBasis, decimal employerFactor)
        {
            TAmountDec decimalResult = DecFactorResult(employerBasis, employerFactor);

            TAmountInt roundedResult = IntRoundUp(decimalResult);

            return(roundedResult);
        }
Esempio n. 13
0
        private TAmountInt CompoundPartialWithHealthFactor(decimal compoundBasis, decimal compoundFactor)
        {
            TAmountDec decimalResult = DecFactorResult(compoundBasis, compoundFactor);

            TAmountInt roundedResult = IntRoundUp(decimalResult);

            return(roundedResult);
        }
 public TaxableIncomeSum(TAmountDec general, TAmountDec exclude, TAmountDec lolevel, TAmountDec agrtask, TAmountDec partner)
 {
     this.InternalIncomeGeneral = general;
     this.InternalIncomeExclude = exclude;
     this.InternalIncomeLolevel = lolevel;
     this.InternalIncomeTaskAgr = agrtask;
     this.InternalIncomePartner = partner;
 }
 public TaxableIncomeSum()
 {
     this.InternalIncomeGeneral = TAmountDec.Zero;
     this.InternalIncomeExclude = TAmountDec.Zero;
     this.InternalIncomeLolevel = TAmountDec.Zero;
     this.InternalIncomeTaskAgr = TAmountDec.Zero;
     this.InternalIncomePartner = TAmountDec.Zero;
 }
Esempio n. 16
0
 public MoneyInsuranceBasisValue(ResultCode code, TAmountDec basisRawly, TAmountDec basisRound, TAmountDec basisCuter, TAmountDec aboveCuter, TAmountDec basisFinal) : base(code)
 {
     this.BasisRawNumb = basisRawly;
     this.BasisRounded = basisRound;
     this.BasisCutdown = basisCuter;
     this.AboveCutdown = aboveCuter;
     this.BasisFinNumb = basisFinal;
 }
Esempio n. 17
0
        public TAmountDec BasisSolidaryRounded(TAmountDec generalIncome)
        {
            decimal solidaryLimit = InternalGuides.MinValidIncomeOfSolidary();

            decimal solidaryBasis = Math.Max(0, generalIncome - solidaryLimit);

            return(solidaryBasis);
        }
        public IArticleResult AddMoneyTaxingBasisValue(TAmountDec basisRawly, TAmountDec basisRound, TAmountDec basisFinal)
        {
            IArticleResultValues value = new MoneyTaxingBasisValue((ResultCode)ArticleResultCode.RESULT_VALUE_TAXING_BASIS_MONEY, basisRawly, basisRound, basisFinal);

            ResultValues = ResultValues.Concat(value);

            return(this);
        }
Esempio n. 19
0
 public PositionMonthlyAmountSource(TAmountDec monthlyAmount, Int16 shiftLiable, Int16 shiftWorked, Int16 hoursLiable, Int16 hoursWorked)
 {
     MonthlyAmount = monthlyAmount;
     ShiftLiable   = shiftLiable;
     ShiftWorked   = shiftWorked;
     HoursLiable   = hoursLiable;
     HoursWorked   = hoursWorked;
 }
        public IArticleResult AddIncomeInsSocialValue(WorkSocialTerms summarize, TAmountDec related, TAmountDec exclude)
        {
            IArticleResultValues value = new IncomeInsSocialValue(summarize, related, exclude);

            ResultValues = ResultValues.Concat(value);

            return(this);
        }
        public IArticleResult AddTaxSolidaryBaseValue(TAmountDec solidaryBase)
        {
            IArticleResultValues value = new MoneyTaxingBasisValue((ResultCode)ArticleResultCode.RESULT_VALUE_TAXING_BASIS_MONEY, solidaryBase);

            ResultValues = ResultValues.Concat(value);

            return(this);
        }
        public IArticleResult AddMoneyTransferIncomeValue(TAmountDec incomeAmount)
        {
            IArticleResultValues value = new MoneyTransferIncomeValue((ResultCode)ArticleResultCode.RESULT_VALUE_TRANSFER_INCOME_MONEY, incomeAmount);

            ResultValues = ResultValues.Concat(value);

            return(this);
        }
        public IArticleResult AddMoneyInsuranceBasisValue(TAmountDec basisRawly, TAmountDec basisRound, TAmountDec basisCuter, TAmountDec aboveCuter, TAmountDec basisFinal)
        {
            IArticleResultValues value = new MoneyInsuranceBasisValue((ResultCode)ArticleResultCode.RESULT_VALUE_INSURANCE_BASIS_MONEY, basisRawly, basisRound, basisCuter, aboveCuter, basisFinal);

            ResultValues = ResultValues.Concat(value);

            return(this);
        }
        public IArticleResult AddMoneyPaymentValue(TAmountDec paymentAmount)
        {
            IArticleResultValues value = new MoneyPaymentValue((ResultCode)ArticleResultCode.RESULT_VALUE_PAYMENT_MONEY, paymentAmount);

            ResultValues = ResultValues.Concat(value);

            return(this);
        }
Esempio n. 25
0
 public TaxDeclarationSource()
 {
     StatementType = 0;
     SummarizeType = WorkTaxingTerms.TAXING_TERM_EMPLOYMENT_POLICY;
     DeclaracyType = 0;
     ResidencyType = 0;
     HealthAnnuity = TAmountDec.Zero;
     SocialAnnuity = TAmountDec.Zero;
 }
        public IArticleResult AddIncomeTaxGeneralValue(WorkTaxingTerms summarize, Byte statement, Byte residency,
                                                       TAmountDec general, TAmountDec lolevel, TAmountDec agrtask, TAmountDec partner, TAmountDec exclude)
        {
            IArticleResultValues value = new IncomeTaxGeneralValue(summarize, statement, residency, general, lolevel, agrtask, partner, exclude);

            ResultValues = ResultValues.Concat(value);

            return(this);
        }
Esempio n. 27
0
 public TaxDeclarationSource(Byte statementType, WorkTaxingTerms summarizeType, Byte declaracyType, Byte residencyType, TAmountDec healthAnnuity, TAmountDec socialAnnuity)
 {
     StatementType = statementType;
     SummarizeType = summarizeType;
     DeclaracyType = declaracyType;
     ResidencyType = residencyType;
     HealthAnnuity = healthAnnuity;
     SocialAnnuity = socialAnnuity;
 }
 public DeclarationTaxingValue(Byte statement, WorkTaxingTerms summarize, Byte declaracy, Byte residency, TAmountDec healthSum, TAmountDec socialSum) : base((ResultCode)ArticleResultCode.RESULT_VALUE_DECLARATION_TAXING)
 {
     this.StatementType = statement;
     this.SummarizeType = summarize;
     this.DeclaracyType = declaracy;
     this.ResidencyType = residency;
     this.HealthAnnuity = healthSum;
     this.SocialAnnuity = socialSum;
 }
Esempio n. 29
0
        public TAmountDec EployerPartialAdvanceHealth(Period evalPeriod, TAmountDec generalIncome, TAmountDec compoundFactor)
        {
            Int32 compoundPartialValue = CompoundPartialWithHealthFactor(generalIncome, compoundFactor);

            Int32 employeePartialValue = EmployeePartialWithHealthFactor(generalIncome, compoundFactor);

            Int32 employerPartialValue = (compoundPartialValue - employeePartialValue);

            return(employerPartialValue);
        }
Esempio n. 30
0
        public TAmountInt RebateResult(TAmountDec rebateBasis, TAmountDec rebateApply, TAmountDec rebateClaim)
        {
            TAmountDec afterApply = TAmountDec.Subtract(rebateBasis, rebateApply);

            TAmountDec afterClaim = Math.Max(0m, TAmountDec.Subtract(rebateClaim, afterApply));

            TAmountDec rebateResult = TAmountDec.Subtract(rebateClaim, afterClaim);

            return(RoundingInt.RoundToInt(rebateResult));
        }