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
                    });
                }
Exemplo n.º 2
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 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
                    });
                }
Exemplo n.º 4
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
                    });
                }
                protected ResultMonad.Result <PositionEvaluateSource, string> BuildItem(TargetPart part, ResultItem resultTerm, ResultItem resultWork)
                {
                    ArticleGeneralResult termResult = resultTerm as ArticleGeneralResult;
                    ArticleGeneralResult workResult = resultWork as ArticleGeneralResult;

                    if (MaybeMonadUtils.HaveAnyResultNullValue(termResult, workResult))
                    {
                        return(Result.Fail <PositionEvaluateSource, string>(CONCEPT_RESULT_INVALID_TEXT));
                    }

                    Maybe <PositionFromStopValue> termValues = termResult.ReturnPositionTermFromStopValue();
                    Maybe <MonthFromStopValue>    daysValues = termResult.ReturnMonthFromStopValue();
                    Maybe <MonthScheduleValue>    realValues = workResult.ReturnRealMonthValue();
                    Maybe <MonthScheduleValue>    restValues = workResult.ReturnTermMonthValue();

                    if (MaybeMonadUtils.HaveAnyResultNoValues(termValues, daysValues, realValues, restValues))
                    {
                        return(Result.Fail <PositionEvaluateSource, string>(CONCEPT_RESULT_INVALID_TEXT));
                    }

                    PositionFromStopValue termPosition = termValues.Value;
                    MonthFromStopValue    daysPosition = daysValues.Value;
                    MonthScheduleValue    realSchedule = realValues.Value;
                    MonthScheduleValue    restSchedule = restValues.Value;

                    PositionEvaluateSource buildResult = new PositionEvaluateSource
                    {
                        PositionPart  = part,
                        DateFrom      = termPosition.DateFrom,
                        DayPeriodFrom = daysPosition.PeriodDayFrom,
                        DateStop      = termPosition.DateStop,
                        DayPeriodStop = daysPosition.PeriodDayStop,
                        PositionType  = termPosition.PositionType,
                        ScheduleMonth = realSchedule.HoursMonth,
                        ScheduleLimit = restSchedule.HoursMonth
                    };

                    return(Result.Ok <PositionEvaluateSource, string>(buildResult));
                }
Exemplo n.º 6
0
        private static ResultMonad.Result <PositionScheduleEvalDetail, string> BuildItem(TargetPart partCode, ResultItem termItem, ResultItem dataItem)
        {
            ArticleGeneralResult resultTerm = termItem as ArticleGeneralResult;
            ArticleGeneralResult resultData = dataItem as ArticleGeneralResult;

            if (MaybeMonadUtils.HaveAnyResultNullValue(resultTerm, resultData))
            {
                return(Result.Fail <PositionScheduleEvalDetail, string>(RESULT_DETAILS_INVALID_TEXT));
            }

            Maybe <PositionFromStopValue> termValues = resultTerm.ReturnPositionTermFromStopValue();
            Maybe <MonthFromStopValue>    daysValues = resultTerm.ReturnMonthFromStopValue();
            Maybe <MonthScheduleValue>    workValues = resultData.ReturnTermMonthValue();

            if (MaybeMonadUtils.HaveAnyResultNoValues(termValues, daysValues, workValues))
            {
                return(Result.Fail <PositionScheduleEvalDetail, string>(RESULT_DETAILS_INVALID_TEXT));
            }

            PositionFromStopValue termPosition = termValues.Value;
            MonthFromStopValue    daysPosition = daysValues.Value;
            MonthScheduleValue    workSchedule = workValues.Value;

            PositionScheduleEvalDetail buildResult = new PositionScheduleEvalDetail
            {
                PositionPart  = partCode,
                DateFrom      = termPosition.DateFrom,
                DayPeriodFrom = daysPosition.PeriodDayFrom,
                DateStop      = termPosition.DateStop,
                DayPeriodStop = daysPosition.PeriodDayStop,
                PositionType  = termPosition.PositionType,
                ScheduleWorks = workSchedule.HoursMonth,
            };

            return(Result.Ok <PositionScheduleEvalDetail, string>(buildResult));
        }