Exemple #1
0
                public override EvaluateSource GetNewValues(EvaluateSource initValues)
                {
                    ConfigCode workCode = (ConfigCode)ArticleCodeCz.FACT_POSITION_SCHEDULE;

                    Result <MonthScheduleValue, string> workFindResult = InternalValues
                                                                         .FindResultValue <ArticleGeneralResult, MonthScheduleValue>(
                        TargetFilters.TargetCodePlusPartFunc(workCode, InternalTarget.Head(), InternalTarget.Part()),
                        (x) => (x.IsRealMonthValue()));
                    MonthScheduleValue workValuesPrep = workFindResult.Value;

                    ConfigCode termCode = (ConfigCode)ArticleCodeCz.FACT_POSITION_TERM;

                    Result <MonthFromStopValue, string> termFindResult = InternalValues
                                                                         .FindResultValue <ArticleGeneralResult, MonthFromStopValue>(
                        TargetFilters.TargetCodePlusHeadAndSeedFunc(termCode, InternalTarget.Head(), InternalTarget.Part()),
                        (x) => (x.IsMonthFromStopValue()));

                    if (ResultMonadUtils.HaveAnyResultFailed(workFindResult, workFindResult))
                    {
                        return(ReturnFailureAndError(initValues,
                                                     ResultMonadUtils.FirstFailedResultError(workFindResult, workFindResult)));
                    }

                    MonthFromStopValue termValuesPrep = termFindResult.Value;

                    return(new EvaluateSource
                    {
                        // PROPERTIES SET
                        DayTermFrom = termValuesPrep.PeriodDayFrom,
                        DayTermStop = termValuesPrep.PeriodDayStop,
                        RealMonthHours = workValuesPrep.HoursMonth,
                        // PROPERTIES SET
                    });
                }
                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
                    });
                }
Exemple #3
0
        public static Result <IEnumerable <PositionScheduleEvalDetail>, string> GetPositionValues(IEnumerable <ResultPair> results, ConfigCode termCode, ConfigCode dataCode, TargetHead headCode)
        {
            Result <IEnumerable <ResultPair>, string> termList = results
                                                                 .GetTypedResultsInListAndError <ArticleGeneralResult>(
                TargetFilters.TargetCodePlusHeadFunc(termCode, headCode));
            Result <IEnumerable <ResultPair>, string> dataList = results
                                                                 .GetTypedResultsInListAndError <ArticleGeneralResult>(
                TargetFilters.TargetCodePlusHeadFunc(dataCode, headCode));

            if (ResultMonadUtils.HaveAnyResultFailed(termList, dataList))
            {
                return(Result.Fail <IEnumerable <PositionScheduleEvalDetail>, string>(
                           ResultMonadUtils.FirstFailedResultError(termList, dataList)));
            }

            var zipsList = GetZip2Position(termList.Value, dataList.Value);

            if (zipsList.IsFailure)
            {
                return(Result.Fail <IEnumerable <PositionScheduleEvalDetail>, string>(zipsList.Error));
            }
            var valsList = zipsList.Value.Select((tp) => (BuildItem(tp.Key, tp.Value.Item1, tp.Value.Item2))).ToList();

            return(valsList.ToResultWithValueListAndError((tp) => (tp)));
        }
                public override EvaluateSource GetNewValues(EvaluateSource initValues)
                {
                    ConfigCode termCode = (ConfigCode)ArticleCodeCz.FACT_CONTRACT_TERM;

                    Result <MonthFromStopValue, string> termFindResult = InternalValues
                                                                         .FindResultValue <ArticleGeneralResult, MonthFromStopValue>(
                        TargetFilters.TargetCodePlusSeedFunc(termCode, InternalTarget.Head()),
                        (x) => (x.IsMonthFromStopValue()));

                    if (termFindResult.IsFailure)
                    {
                        return(ReturnFailureAndError(initValues, termFindResult.Error));
                    }

                    MonthFromStopValue termPrepValues = termFindResult.Value;

                    return(new EvaluateSource
                    {
                        // PROPERTIES SET
                        DateTermFrom = initValues.DateTermFrom,
                        DateTermStop = initValues.DateTermStop,
                        PositionType = initValues.PositionType,
                        DayContractFrom = termPrepValues.PeriodDayFrom,
                        DayContractStop = termPrepValues.PeriodDayStop,
                        // PROPERTIES SET
                    });
                }
                private Result <IEnumerable <PositionEvaluateSource>, string> GetPositionValues()
                {
                    ConfigCode positionCode = (ConfigCode)ArticleCodeCz.FACT_POSITION_TERM;
                    ConfigCode scheduleCode = (ConfigCode)ArticleCodeCz.FACT_POSITION_TIMESHEET;

                    Result <IEnumerable <ResultPair>, string> positionList = InternalValues
                                                                             .GetTypedResultsInListAndError <ArticleGeneralResult>(
                        TargetFilters.TargetCodePlusHeadFunc(positionCode, InternalTarget.Head()));
                    Result <IEnumerable <ResultPair>, string> scheduleList = InternalValues
                                                                             .GetTypedResultsInListAndError <ArticleGeneralResult>(
                        TargetFilters.TargetCodePlusHeadFunc(scheduleCode, InternalTarget.Head()));

                    if (ResultMonadUtils.HaveAnyResultFailed(positionList, scheduleList))
                    {
                        return(Result.Fail <IEnumerable <PositionEvaluateSource>, string>(
                                   ResultMonadUtils.FirstFailedResultError(positionList, scheduleList)));
                    }

                    var positionZips = GetZip2Position(positionList.Value, scheduleList.Value);

                    if (positionZips.IsFailure)
                    {
                        return(Result.Fail <IEnumerable <PositionEvaluateSource>, string>(positionZips.Error));
                    }
                    var positionStream = positionZips.Value.Select((tp) => (BuildItem(tp.Key, tp.Value.Item1, tp.Value.Item2))).ToList();

                    return(positionStream.ToResultWithValueListAndError((tp) => (tp)));
                }
                public override EvaluateSource GetNewValues(EvaluateSource initValues)
                {
                    ConfigCode termCode = (ConfigCode)ArticleCodeCz.FACT_POSITION_TERM;

                    Result <MonthFromStopValue, string> termFindResult = InternalValues
                                                                         .FindResultValue <ArticleGeneralResult, MonthFromStopValue>(
                        TargetFilters.TargetCodePlusHeadAndSeedFunc(termCode, InternalTarget.Head(), InternalTarget.Part()),
                        (x) => (x.IsMonthFromStopValue()));

                    if (termFindResult.IsFailure)
                    {
                        return(ReturnFailureAndError(initValues, termFindResult.Error));
                    }

                    MonthFromStopValue termPrepValues = termFindResult.Value;

                    var absenceValues = GetAbsenceValues();

                    if (absenceValues.IsFailure)
                    {
                        return(ReturnFailureAndError(initValues, absenceValues.Error));
                    }

                    var completeSorted = absenceValues.Value.OrderBy((p) => (p), new CompareAbsenceTerms());

                    return(new EvaluateSource
                    {
                        // PROPERTIES SET
                        DayPositionFrom = termPrepValues.PeriodDayFrom,
                        DayPositionStop = termPrepValues.PeriodDayStop,
                        AbsenceList = completeSorted.ToList(),
                        // PROPERTIES SET
                    });
                }
                public override EvaluateSource GetNewValues(EvaluateSource initValues)
                {
                    ConfigCode scheduleCode = (ConfigCode)ArticleCodeCz.FACT_POSITION_TIMESHEET;
                    ConfigCode absencesCode = (ConfigCode)ArticleCodeCz.FACT_POSITION_ABSENCE;

                    Result <MonthScheduleValue, string> scheduleResult = InternalValues
                                                                         .FindResultValue <ArticleGeneralResult, MonthScheduleValue>(
                        TargetFilters.TargetCodePlusPartFunc(scheduleCode, InternalTarget.Head(), InternalTarget.Part()),
                        (x) => (x.IsTermMonthValue()));

                    Result <MonthScheduleValue, string> absencesResult = InternalValues
                                                                         .FindResultValue <ArticleGeneralResult, MonthScheduleValue>(
                        TargetFilters.TargetCodePlusPartFunc(absencesCode, InternalTarget.Head(), InternalTarget.Part()),
                        (x) => (x.IsTermMonthValue()));

                    if (ResultMonadUtils.HaveAnyResultFailed(scheduleResult, absencesResult))
                    {
                        return(ReturnFailureAndError(initValues,
                                                     ResultMonadUtils.FirstFailedResultError(scheduleResult, absencesResult)));
                    }

                    MonthScheduleValue scheduleValues = scheduleResult.Value;
                    MonthScheduleValue absencesValues = absencesResult.Value;

                    return(new EvaluateSource
                    {
                        // PROPERTIES SET
                        ScheduleMonth = scheduleValues.HoursMonth,
                        AbsencesMonth = absencesValues.HoursMonth,
                        // PROPERTIES SET
                    });
                }
                public override EvaluateSource GetNewValues(EvaluateSource initValues)
                {
                    ConfigCode scheduleCode = (ConfigCode)ArticleCodeCz.FACT_CONTRACT_TIMESHEET;

                    Result <MonthScheduleValue, string> scheduleResult = InternalValues
                                                                         .FindResultValue <ArticleGeneralResult, MonthScheduleValue>(
                        TargetFilters.TargetCodePlusPartFunc(scheduleCode, InternalTarget.Head(), InternalTarget.Part()),
                        (x) => (x.IsRealMonthValue()));

                    if (scheduleResult.IsFailure)
                    {
                        return(ReturnFailureAndError(initValues, scheduleResult.Error));
                    }

                    MonthScheduleValue scheduleValues = scheduleResult.Value;

                    return(new EvaluateSource
                    {
                        // PROPERTIES SET
                        AbsenceCode = initValues.AbsenceCode,
                        DayFrom = initValues.DayFrom,
                        DayStop = initValues.DayStop,
                        SchedulePiece = initValues.SchedulePiece,
                        ScheduleHours = initValues.ScheduleHours,
                        ScheduleMonth = scheduleValues.HoursMonth.ToArray(),
                        // PROPERTIES SET
                    });
                }
 public void remove(GameObject go, TargetFilters filters)
 {
     for (var i = 0; i < 32; i++)
     {
         var filter = (TargetFilters)(1 << i);
         if ((filter & filters) == filter)
         {
             _gameObjects[i].Remove(go);
         }
     }
 }
                private Result <IEnumerable <AbsenceEvaluateSource>, string> GetAbsenceValues()
                {
                    ConfigCode filterCode = (ConfigCode)ArticleCodeCz.FACT_CONTRACT_ATTEND_ITEM;
                    TargetHead filterHead = InternalTarget.Head();

                    Result <IEnumerable <AbsenceEvaluateSource>, string> absenceList = InternalValues
                                                                                       .GetResultValuesInListAndError <ArticleGeneralResult, MonthAttendanceValue, AbsenceEvaluateSource>(
                        TargetFilters.TargetCodePlusHeadFunc(filterCode, filterHead), ArticleFilters.SelectAllFunc,
                        ResultFilters.MonthAttendanceFunc, BuildItem);

                    return(absenceList);
                }
Exemple #11
0
                public override EvaluateSource GetNewValues(EvaluateSource initValues)
                {
                    ConfigCode scheduledCode = (ConfigCode)ArticleCodeCz.FACT_POSITION_SCHEDULE;
                    ConfigCode timesheetCode = (ConfigCode)ArticleCodeCz.FACT_POSITION_TIMESHEET;
                    ConfigCode worksheetCode = (ConfigCode)ArticleCodeCz.FACT_POSITION_WORKING;

                    Result <WeekScheduleValue, string> fullWeekResult = InternalValues
                                                                        .FindResultValue <ArticleGeneralResult, WeekScheduleValue>(
                        TargetFilters.TargetCodePlusPartFunc(scheduledCode, InternalTarget.Head(), InternalTarget.Part()),
                        (x) => (x.IsFullWeeksValue()));
                    Result <WeekScheduleValue, string> realWeekResult = InternalValues
                                                                        .FindResultValue <ArticleGeneralResult, WeekScheduleValue>(
                        TargetFilters.TargetCodePlusPartFunc(scheduledCode, InternalTarget.Head(), InternalTarget.Part()),
                        (x) => (x.IsRealWeeksValue()));
                    Result <MonthScheduleValue, string> timesheetResult = InternalValues
                                                                          .FindResultValue <ArticleGeneralResult, MonthScheduleValue>(
                        TargetFilters.TargetCodePlusPartFunc(timesheetCode, InternalTarget.Head(), InternalTarget.Part()),
                        (x) => (x.IsRealMonthValue()));
                    Result <MonthScheduleValue, string> worksheetResult = InternalValues
                                                                          .FindResultValue <ArticleGeneralResult, MonthScheduleValue>(
                        TargetFilters.TargetCodePlusPartFunc(worksheetCode, InternalTarget.Head(), InternalTarget.Part()),
                        (x) => (x.IsTermMonthValue()));

                    if (ResultMonadUtils.HaveAnyResultFailed(
                            fullWeekResult,
                            realWeekResult,
                            timesheetResult,
                            worksheetResult))
                    {
                        return(ReturnFailureAndError(initValues,
                                                     ResultMonadUtils.FirstFailedResultError(
                                                         fullWeekResult,
                                                         realWeekResult,
                                                         timesheetResult,
                                                         worksheetResult)));
                    }

                    WeekScheduleValue  fullWeekValues  = fullWeekResult.Value;
                    WeekScheduleValue  realWeekValues  = realWeekResult.Value;
                    MonthScheduleValue timesheetValues = timesheetResult.Value;
                    MonthScheduleValue worksheetValues = worksheetResult.Value;

                    return(new EvaluateSource
                    {
                        // PROPERTIES SET
                        MonthlyAmount = initValues.MonthlyAmount,
                        ShiftLiable = PeriodUtils.TotalWeekHours(fullWeekValues.HoursWeek),
                        ShiftWorked = PeriodUtils.TotalWeekHours(realWeekValues.HoursWeek),
                        HoursLiable = PeriodUtils.TotalMonthHours(timesheetValues.HoursMonth),
                        HoursWorked = PeriodUtils.TotalMonthHours(worksheetValues.HoursMonth),
                        // PROPERTIES SET
                    });
                }
Exemple #12
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
                    });
                }
        public IEnumerable <GameObject> get(LineSegment line, float radius, TargetFilters filters)
        {
            for (var i = 0; i < 32; i++)
            {
                var filter = (TargetFilters)(1 << i);
                if ((filter & filters) == filter)
                {
                    foreach (var go in _gameObjects[i])
                    {
                        var p      = go.transform.DerivedPosition;
                        var circle = new Circle(p, radius);

                        if (circle.Intersects(line))
                        {
                            yield return(go);
                        }
                    }
                }
            }
        }
        public IEnumerable <GameObject> get(Vector2 from, float radius, TargetFilters filters)
        {
            var radiusSq = radius * radius;

            for (var i = 0; i < 32; i++)
            {
                var filter = (TargetFilters)(1 << i);
                if ((filter & filters) == filter)
                {
                    foreach (var go in _gameObjects[i])
                    {
                        var distanceSq = (from - go.transform.DerivedPosition).LengthSquared();
                        if (distanceSq < radiusSq)
                        {
                            yield return(go);
                        }
                    }
                }
            }
        }
Exemple #15
0
                private Result <MoneyAmountSum, string> GetGeneralBase(IEnumerable <ResultPair> results, TargetItem target)
                {
                    ConfigCode taxBaseCode = (ConfigCode)ArticleCodeCz.FACT_TAX_BASE_ADVANCE;

                    Result <MoneyAmountSum, string> taxBaseAmount = FindResultUtils.FindMoneyTaxingBasisValue(results,
                                                                                                              TargetFilters.TargetCodeFunc(taxBaseCode));

                    return(taxBaseAmount);
                }
Exemple #16
0
                private Result <TaxableIncomeSum, string> GetTaxableIncome(IEnumerable <ResultPair> results, TargetItem target)
                {
                    ConfigCode incomeTaxingCode = (ConfigCode)ArticleCodeCz.FACT_TAX_INCOMES_GENERAL;

                    Result <TaxableIncomeSum, string> taxableIncome = GetSumResultUtils.GetSumIncomeTaxGeneral(results,
                                                                                                               TargetFilters.TargetCodeFunc(incomeTaxingCode), ArticleFilters.SelectAllFunc);

                    return(taxableIncome);
                }
Exemple #17
0
                private Result <MoneyPaymentSum, string> GetExcludeIncome(IEnumerable <ResultPair> results, TargetItem target)
                {
                    Result <MoneyPaymentSum, string> taxableIncome = GetSumResultUtils.GetSumMoneyPayment(results,
                                                                                                          TargetFilters.TargetHeadFunc(target.Head()), ArticleFilters.TaxExcludeHealthFunc);

                    return(taxableIncome);
                }
                private Result <MoneyAmountSum, string> GetTaxableIncome(IEnumerable <ResultPair> results, TargetItem target)
                {
                    ConfigCode incomeTaxingCode = (ConfigCode)ArticleCodeCz.FACT_TAX_INCOMES_WITHHOLD_GENERAL;

                    Result <MoneyAmountSum, string> taxableIncome = FindResultUtils.FindMoneyTransferIncomeValue(results,
                                                                                                                 TargetFilters.TargetCodeFunc(incomeTaxingCode));

                    return(taxableIncome);
                }
Exemple #19
0
                private Result <MoneyAmountSum, string> GetSocialsPart(IEnumerable <ResultPair> results, TargetItem target)
                {
                    ConfigCode taxPartCode = (ConfigCode)ArticleCodeCz.FACT_TAX_BASE_ADVANCE_SOCIAL;

                    Result <MoneyAmountSum, string> taxPartAmount = FindResultUtils.FindMoneyInsuranceBasisValue(results,
                                                                                                                 TargetFilters.TargetCodeFunc(taxPartCode));

                    return(taxPartAmount);
                }