public override EvaluateSource GetNewValues(EvaluateSource initValues)
                {
                    ConfigCode declaracyCode = (ConfigCode)ArticleCodeCz.FACT_INS_DECLARATION_SOCIAL;

                    Result <DeclarationSocialValue, string> declaracyResult = InternalValues
                                                                              .FindResultValue <ArticleGeneralResult, DeclarationSocialValue>(
                        TargetFilters.TargetCodePlusHeadAndNullPartFunc(declaracyCode, InternalTarget.Head()),
                        (x) => (x.IsDeclarationSocialValue()));

                    Result <MoneyPaymentSum, string> includeIncome = GetIncludeIncome(InternalValues, InternalTarget);
                    Result <MoneyPaymentSum, string> excludeIncome = GetExcludeIncome(InternalValues, InternalTarget);

                    if (ResultMonadUtils.HaveAnyResultFailed(declaracyResult, includeIncome, excludeIncome))
                    {
                        return(ReturnFailureAndError(initValues,
                                                     ResultMonadUtils.FirstFailedResultError(declaracyResult, includeIncome, excludeIncome)));
                    }

                    DeclarationSocialValue declaracyValues = declaracyResult.Value;

                    MoneyPaymentSum includeValues = includeIncome.Value;
                    MoneyPaymentSum excludeValues = excludeIncome.Value;

                    return(new EvaluateSource
                    {
                        // PROPERTIES SET
                        SummarizeType = declaracyValues.SummarizeType,
                        IncludeIncome = includeValues.Balance(),
                        ExcludeIncome = excludeValues.Balance(),
                        // PROPERTIES SET
                    });
                }
        public static Result <MoneyPaymentSum, string> GetSumMoneyPayment(IEnumerable <ResultPair> results, Func <TargetItem, bool> filterTargetFunc, Func <ResultItem, bool> filterValuesFunc)
        {
            MoneyPaymentSum initialResult = new MoneyPaymentSum(decimal.Zero);

            Result <MoneyPaymentSum, string> summaryResult = results
                                                             .GetResultValuesInAggrAndError <ResultItem, MoneyPaymentValue, MoneyPaymentSum>(
                initialResult, filterTargetFunc, filterValuesFunc, ResultFilters.PaymentMoneyFunc,
                GetSumResultUtils.GetSumMoneyPayment);

            return(summaryResult);
        }
Beispiel #3
0
                public override EvaluateSource GetNewValues(EvaluateSource initValues)
                {
                    ConfigCode declaracyCode = (ConfigCode)ArticleCodeCz.FACT_TAX_DECLARATION;
                    ConfigCode participyCode = (ConfigCode)ArticleCodeCz.FACT_INS_DECLARATION_HEALTH;

                    Result <DeclarationTaxingValue, string> declaracyResult = InternalValues
                                                                              .FindResultValue <ArticleGeneralResult, DeclarationTaxingValue>(
                        TargetFilters.TargetCodePlusHeadAndNullPartFunc(declaracyCode, InternalTarget.Head()),
                        (x) => (x.IsDeclarationTaxingValue()));

                    Result <DeclarationHealthValue, string> participyResult = InternalValues
                                                                              .FindResultValue <ArticleGeneralResult, DeclarationHealthValue>(
                        TargetFilters.TargetCodePlusHeadAndNullPartFunc(participyCode, InternalTarget.Head()),
                        (x) => (x.IsDeclarationHealthValue()));

                    Result <MoneyPaymentSum, string> taxableIncome = GetTaxableIncome(InternalValues, InternalTarget);
                    Result <MoneyPaymentSum, string> partnerIncome = GetPartnerIncome(InternalValues, InternalTarget);
                    Result <MoneyPaymentSum, string> excludeIncome = GetExcludeIncome(InternalValues, InternalTarget);

                    if (ResultMonadUtils.HaveAnyResultFailed(declaracyResult, participyResult, taxableIncome, partnerIncome))
                    {
                        return(ReturnFailureAndError(initValues,
                                                     ResultMonadUtils.FirstFailedResultError(declaracyResult, participyResult, taxableIncome, partnerIncome)));
                    }

                    DeclarationTaxingValue declaracyValues = declaracyResult.Value;
                    DeclarationHealthValue participyValues = participyResult.Value;

                    MoneyPaymentSum taxableValues = taxableIncome.Value;
                    MoneyPaymentSum partnerValues = partnerIncome.Value;
                    MoneyPaymentSum excludeValues = excludeIncome.Value;

                    return(new EvaluateSource
                    {
                        // PROPERTIES SET
                        SummarizeType = declaracyValues.SummarizeType,
                        StatementType = declaracyValues.StatementType,
                        DeclaracyType = declaracyValues.DeclaracyType,
                        ResidencyType = declaracyValues.ResidencyType,
                        TaxableIncome = taxableValues.Balance(),
                        PartnerIncome = partnerValues.Balance(),
                        ExcludeIncome = excludeValues.Balance(),
                        // PROPERTIES SET
                    });
                }
 private Result <MoneyPaymentSum, string> GetSumPayments(MoneyPaymentSum agr, TargetItem resultTarget, MoneyPaymentValue resultValue)
 {
     return(Result.Ok <MoneyPaymentSum, string>(agr.Aggregate(resultValue.Payment)));
 }