Разработка сайта для Вашего бизнеса. Веб дизайн. Дизайн логотипа, фирменного стиля, рекламная фотография . Комплексный рекламный креатив.

Ralex. We do the work.
На рынке с 1999го года. Средняя ценовая категория. Ориентация на эффективность решений.
Ознакомтесь с нашим портфолио
Узнайте больше о услугах
Свяжитесь с нами:
E-mail: [email protected]
Tel: (044) 587 - 84 - 78
Custom web design & дизайн и разработка сайта "под ключ"
Креативный, эффективный дизайн. Система управления сайтом (СУС).
Custom flexible разработка систем электронной коммерции
Система e-commerce разрабатывается под индивидуальные потребности. Гибкая функциональность.
Search Engine Optimzation & оптимизация под поисковые системы (SEO)
Постоянная оптимизация и мониторинг сайта в поисковых системах. Достигаем результата быстро и эффективно
Custom logo design & дизайн логотипа и фирменного стиля
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.
профессиональная рекламная фотография
креативно, смело, качественно
Custom logo design & рекламный креатив. дизайн рекламы
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.

Приклад обчислення дат з урахуванням робочого календаря

  1. Обчислення дати "через 14 робочих днів"
  2. Приклад сценарію з використанням PublicAPI
  3. Приклад сценарію без використання PublicAPI
  4. Визначення робочого часу виконання завдання
  5. Приклад сценарію з використанням PublicAPI
  6. Приклад сценарію без використання PublicAPI
  7. Приклади сценаріїв з використанням PublicAPI
  8. Приклади сценаріїв без використання PublicAPI

Наша взаимовыгодная связь https://banwar.org/

У даній статті розглянуто приклад ситуації, в якій потрібно обчислити дату і проміжок часу між датами з урахуванням робочого календаря.

Опис сценаріїв роботи з робочим календарем без прикладів можна прочитати в цієї статті .

У робочому календарі задаються вихідні та святкові дні та режим роботи. Детальніше про це можна прочитати в цієї статті .

У нормативно-правових актах і договорах терміни часто відраховуються в робочих днях, наприклад: "... протягом 14 робочих днів з моменту оплати." Для автоматизації обліку цього терміну необхідно використовувати обчислення з урахуванням робочого календаря.

Другий випадок, коли може знадобитися використовувати облік робочого календаря - автоматичне визначення часу виконання завдання. Просте віднімання дати початку з дати завершення дасть некоректний результат, так як буде враховано нічний та неробочий час, вихідні дні, обідня перерва.

Обчислення дати "через 14 робочих днів"

Розглянемо ситуацію, коли замовник зобов'язаний оплатити вартість послуги протягом чотирнадцяти робочих днів з моменту підписання договору.

Спрощена схема бізнес-процесу при цьому виглядає наступним чином:

Спрощена схема бізнес-процесу при цьому виглядає наступним чином:

Якщо гроші не надійшли, система очікує 14 робочих днів.

Сценарій розрахунку дати через 14 робочих днів записує дату в змінну NextDate і виглядає наступним чином:

Приклад сценарію з використанням PublicAPI

Актуальна документація по PublicAPI доступна по засланні .

Сценарій, зазначений нижче, актуальний для версій системи ELMA з 3.8 включно до 3.12.1 включно.

Простір імен:

using EleWise.ELMA.API;

Текст сценарію:

context.NextDate = PublicAPI.Services.ProductionCalendar.EvalTargetTime (context.NachaloPerioda.Value, TimeSpan.FromDays (14));

Приклад сценарію без використання PublicAPI

Простори назв:

using EleWise.ELMA.Services; using EleWise.ELMA.Scheduling;

Текст сценарію:

var calendar = Locator.GetServiceNotNull <IProductionCalendarService> (); context.NextDate = calendar.EvalTargetTime (context.NachaloPerioda.Value, TimeSpan.FromDays (14));

Визначення робочого часу виконання завдання

Розглянемо процес «Екстрений виклик», в якому оператор приймає заявку і передає її на виконання співробітнику технічної підтримки. Співробітник приймає заявку у вигляді завдання і починає роботу. Коли робота виконана, співробітник закриває завдання і система автоматично розраховує час, витрачений на виконання заявки і додає відповідний запис до реєстру виконаних заявок.

Сценарій розрахунку робочого часу, яка була потрібна на виконання заявки, виглядає наступним чином:

Приклад сценарію з використанням PublicAPI

Актуальна документація по PublicAPI доступна по засланні .

Сценарій, зазначений нижче, актуальний для версій системи ELMA з 3.8 включно до 3.12.1 включно.

Простір імен:

using EleWise.ELMA.API;

Текст сценарію:

public void WorkDays (Context context) {// отримаємо дату і час початку та закінчення робіт DateTime startTime = context.Task.StartDate.Value; DateTime endTime = context.Task.EndWorkDate.Value; // отримаємо службу виробничого календаря // підрахуємо інтервал методом EvalWorkTimeDifference () context.VremyaIspolneniya = PublicAPI.Services.ProductionCalendar.EvalWorkTimeDifference (startTime, endTime); }

Приклад сценарію без використання PublicAPI

Простори назв:

using EleWise.ELMA.Services; using EleWise.ELMA.Scheduling;

Текст сценарію:

public void WorkDays (Context context) {// отримаємо дату і час початку та закінчення робіт DateTime startTime = context.Task.StartDate.Value; DateTime endTime = context.Task.EndWorkDate.Value; // отримаємо службу виробничого календаря var calendar = Locator.GetServiceNotNull <IProductionCalendarService> (); // підрахуємо інтервал методом EvalWorkTimeDifference () context.VremyaIspolneniya = calendar.EvalWorkTimeDifference (startTime, endTime); }

Для простого звернення до задачі «Виконання заявки», використовується скрипт, що виконується при створенні завдання в процесі і записує потрібну задачу в контекстну змінну Task.

Простір імен:

using EleWise.ELMA.Tasks.Models;

Текст сценарію:

public override void OnTaskCreate (ITaskBase task, Context context) {// вибираємо тільки потрібну задачу по імені операції if (task.Subject == "Виконання заявки") {// записуємо задачу в контекстну змінну context.Task = (TaskBase) task; }}

Детальніше про подібні скрипти можна прочитати в цієї статті .

При роботі з датами-винятками в функції EvalTargetTime не рекомендується використовувати TimeSpan. З урахуванням того, що 24 години - це одна доба, але зазвичай 3 робочих дня, виникає неоднозначність. Тому краще користуватися функцією, яка додає саме робочі години, хвилини і т.д. (передавати не TimeSpan, а long).

Приклади сценаріїв з використанням PublicAPI

Актуальна документація по PublicAPI доступна по засланні .

Сценарії, зазначені нижче, актуальні для версій системи ELMA з 3.8 включно до 3.12.1 включно.

1. Сценарій обчислення попереднього робочого дня:

private DateTime GetPrevWorkDay (Context context, DateTime selectedDay) {return PublicAPI.Services.ProductionCalendar.EvalTargetTime (selectedDay.Date.AddMinutes (1), -1) .Date; }

2. Сценарій обчислення наступного робочого дня:

private DateTime GetNextWorkDay (Context context, DateTime selectedDay) {return PublicAPI.Services.ProductionCalendar.EvalTargetTime (selectedDay.Date.AddHours (23) .AddMinutes (59), 1) .Date; }

Приклади сценаріїв без використання PublicAPI

1. Сценарій обчислення попереднього робочого дня:

private DateTime GetPrevWorkDay (Context context, DateTime selectedDay) {var calendar = Locator.GetServiceNotNull <IProductionCalendarService> (); return calendar.EvalTargetTime (selectedDay.Date.AddMinutes (1), -1) .Date; }

2. Сценарій обчислення наступного робочого дня:

private DateTime GetNextWorkDay (Context context, DateTime selectedDay) {var calendar = Locator.GetServiceNotNull <IProductionCalendarService> (); return calendar.EvalTargetTime (selectedDay.Date.AddHours (23) .AddMinutes (59), 1) .Date; }

Категории
  • Биология
  • Математика
  • Краеведению
  • Лечебная
  • Наука
  • Физике
  • Природоведение
  • Информатика
  • Новости

  • Новости
    https://banwar.org/
    Наша взаимовыгодная связь https://banwar.org/. Запустив новый сайт, "Пари Матч" обещает своим клиентам незабываемый опыт и возможность выиграть крупные суммы.


    Наши клиенты
    Клиенты

    Быстрая связь

    Тел.: (044) 587-84-78
    E-mail: [email protected]

    Имя:
    E-mail:
    Телефон:
    Вопрос\Комментарий: