<< Click to Display Table of Contents >> Разработка > Примеры разработки > Документы Как изменить срок возврата договора при выдаче сотруднику |
Ситуация
При выдаче договора сотруднику в карточке автоматически устанавливается срок возврата 10 рабочих дней. Необходимо, чтобы к дате выдачи добавлялось не 10, а 3 рабочих дня.
Решение
Срок возврата задается в функции TrackingActionChanged() официального документа (OfficialDocument). Данный тип документа является базовым абстрактным типом, его нельзя перекрыть. Поэтому для решения необходимо переопределить функции и события в его наследнике.
Все типы документов в базовом решении являются наследниками OfficialDocument. Соответственно, нужно перекрыть те типы документов, у которых требуется изменить срок возврата, в данном случае – «Договор» (Contract).
1.В своем решении перекройте тип документа «Договор» (Sungero.Contracts.Contract).
2.В редакторе решения добавьте зависимость от модуля «Договоры» (Sungero.Contracts).
3.В редакторе перекрытого типа документа перейдите в узел «Свойства». Затем разверните свойство-коллекцию Tracking и выберите свойство Action. Установите флажок рядом с событием Изменение значение свойства и перейдите по ссылке.
4.Чтобы изменить стандартную логику, в открывшемся редакторе переопределите функцию TrackingActionChanged() и в переменной issuingScheduledDate укажите свой срок возврата. Для этого напишите код:
public override void TrackingActionChanged(Sungero.Domain.Shared.EnumerationPropertyChangedEventArgs e)
{
if (!_obj.State.Properties.ReturnDeadline.OriginalValue.HasValue)
{
var user = _obj.DeliveredTo ?? Users.Current;
// Установить свой срок возврата: 3 рабочих дня для внутренней выдачи.
var issuingScheduledDate = Calendar.Today.AddWorkingDays(user, 3).Date;
// Срок возврата от контрагента оставить без изменений.
var sendingScheduledDate = Calendar.Today.AddWorkingDays(user, 20).Date;
5.Опубликуйте разработку.
В результате при выдаче договора сотруднику в карточке автоматически устанавливается срок возврата 3 рабочих дня:
© Компания Directum, 2024 |