Example #1
0
        public override void DatedValueInput(Sungero.Presentation.DateTimeValueInputEventArgs e)
        {
            base.DatedValueInput(e);

            if (e.NewValue != null && e.NewValue >= Calendar.SqlMinValue)
            {
                if (Functions.IncomingLetter.HaveDuplicates(_obj, _obj.DocumentKind, _obj.BusinessUnit, _obj.InNumber, e.NewValue, _obj.Correspondent))
                {
                    e.AddWarning(IncomingLetters.Resources.DuplicateDetected,
                                 _obj.Info.Properties.DocumentKind,
                                 _obj.Info.Properties.BusinessUnit,
                                 _obj.Info.Properties.InNumber,
                                 _obj.Info.Properties.Dated,
                                 _obj.Info.Properties.Correspondent);
                }
            }

            // Для DateTime событие изменения отрабатывает, даже если даты одинаковые.
            // Поэтому еще раз сравниваем только даты без учёта времени.
            if (e.OldValue.HasValue && e.NewValue.HasValue && Equals(e.OldValue.Value.Date, e.NewValue.Value.Date))
            {
                return;
            }

            this._obj.State.Properties.Dated.HighlightColor = Sungero.Core.Colors.Empty;
        }
Example #2
0
 public virtual void ActualStartDateValueInput(Sungero.Presentation.DateTimeValueInputEventArgs e)
 {
     if ((_obj.ActualFinishDate != null) && (e.NewValue > _obj.ActualFinishDate))
     {
         e.AddError(Projects.Resources.IncorrectStartDate, _obj.Info.Properties.ActualStartDate);
     }
 }
Example #3
0
 public virtual void EndDateValueInput(Sungero.Presentation.DateTimeValueInputEventArgs e)
 {
     if ((_obj.StartDate != null) && (_obj.StartDate > e.NewValue))
     {
         e.AddError(Projects.Resources.IncorrectEndDate, _obj.Info.Properties.EndDate);
     }
 }
Example #4
0
        public virtual void NewDeadlineValueInput(Sungero.Presentation.DateTimeValueInputEventArgs e)
        {
            var warnMessage = Docflow.PublicFunctions.Module.CheckDeadlineByWorkCalendar(e.NewValue);

            if (!string.IsNullOrEmpty(warnMessage))
            {
                e.AddWarning(warnMessage);
            }

            if (_obj.CurrentDeadline < Calendar.Now)
            {
                // Проверить корректность срока.
                if (!Docflow.PublicFunctions.Module.CheckDeadline(e.NewValue, Calendar.Now))
                {
                    e.AddError(RecordManagement.Resources.ImpossibleSpecifyDeadlineLessThanToday);
                }
            }
            else
            {
                // Новый срок должен быть больше старого.
                if (!Docflow.PublicFunctions.Module.CheckDeadline(e.NewValue, _obj.CurrentDeadline))
                {
                    e.AddError(DeadlineExtensionTasks.Resources.DesiredDeadlineIsNotCorrect);
                }
            }
        }
 public virtual void DatedValueInput(Sungero.Presentation.DateTimeValueInputEventArgs e)
 {
     if (e.NewValue != null && e.NewValue < Calendar.SqlMinValue)
     {
         e.AddError(_obj.Info.Properties.Dated, Sungero.Docflow.OfficialDocuments.Resources.SetCorrectDate);
     }
 }
Example #6
0
        public virtual void FinalDeadlineValueInput(Sungero.Presentation.DateTimeValueInputEventArgs e)
        {
            this.CheckDeadline(e, Users.Current);

            if (!Docflow.PublicFunctions.Module.CheckDeadline(e.NewValue, Calendar.Now))
            {
                e.AddError(RecordManagement.Resources.ImpossibleSpecifyDeadlineLessThanToday);
            }
        }
Example #7
0
        public virtual void DeadlineValueInput(Sungero.Presentation.DateTimeValueInputEventArgs e)
        {
            var warnMessage = Docflow.PublicFunctions.Module.CheckDeadlineByWorkCalendar(_obj.Addressee, e.NewValue);

            if (!string.IsNullOrEmpty(warnMessage))
            {
                e.AddWarning(warnMessage);
            }
        }
        public virtual void ValidTillValueInput(Sungero.Presentation.DateTimeValueInputEventArgs e)
        {
            var errorText = Sungero.Docflow.Client.PowerOfAttorneyFunctions.CheckCorrectnessDaysToFinishWorks(e.NewValue, _obj.DaysToFinishWorks);

            if (!string.IsNullOrEmpty(errorText))
            {
                e.AddError(errorText);
            }
        }
Example #9
0
        public virtual void DeadlineValueInput(Sungero.Presentation.DateTimeValueInputEventArgs e)
        {
            var assignee = _obj.Assignee ?? Users.Current;

            this.CheckDeadline(e, assignee);
            // Проверить корректность срока.
            if (!Docflow.PublicFunctions.Module.CheckDeadline(assignee, e.NewValue, Calendar.Now))
            {
                e.AddError(RecordManagement.Resources.ImpossibleSpecifyDeadlineLessThanToday);
            }
        }
Example #10
0
 public virtual void NewDeadlineValueInput(Sungero.Presentation.DateTimeValueInputEventArgs e)
 {
     // Не давать указывать срок меньше, чем сейчас.
     if (e.NewValue.HasValue)
     {
         // Проводить валидацию на конец дня, если указана дата без времени.
         if (!Docflow.PublicFunctions.Module.CheckDeadline(_obj.Addressee ?? Users.Current, e.NewValue.Value, Calendar.Now))
         {
             e.AddError(ExchangeDocumentProcessingAssignments.Resources.ImpossibleSpecifyDeadlineLessThenToday,
                        _obj.Info.Properties.NewDeadline);
         }
     }
 }
        public virtual void RegistrationDateValueInput(Sungero.Presentation.DateTimeValueInputEventArgs e)
        {
            if (e.NewValue != null && e.NewValue < Calendar.SqlMinValue)
            {
                e.AddError(_obj.Info.Properties.RegistrationDate, Sungero.Docflow.OfficialDocuments.Resources.SetCorrectDate);
                return;
            }

            if (e.NewValue != _obj.State.Properties.RegistrationDate.OriginalValue)
            {
                e.Params.AddOrUpdate(Sungero.Docflow.Constants.OfficialDocument.NeedValidateRegisterFormat, true);
            }
        }
Example #12
0
        public override void RegistrationDateValueInput(Sungero.Presentation.DateTimeValueInputEventArgs e)
        {
            base.RegistrationDateValueInput(e);

            // Для DateTime событие изменения отрабатывает, даже если даты одинаковые.
            // Поэтому еще раз сравниваем только даты без учёта времени.
            if (e.OldValue.HasValue && e.NewValue.HasValue && Equals(e.OldValue.Value.Date, e.NewValue.Value.Date))
            {
                return;
            }

            this._obj.State.Properties.RegistrationDate.HighlightColor = Sungero.Core.Colors.Empty;
        }
Example #13
0
        public virtual void AddresseeDeadlineValueInput(Sungero.Presentation.DateTimeValueInputEventArgs e)
        {
            var warnMessage = Docflow.Functions.Module.CheckDeadlineByWorkCalendar(_obj.Addressee ?? Users.Current, e.NewValue);

            if (!string.IsNullOrEmpty(warnMessage))
            {
                e.AddWarning(warnMessage);
            }

            if (!Docflow.PublicFunctions.Module.CheckDeadline(_obj.Addressee ?? Users.Current, e.NewValue, Calendar.Now))
            {
                e.AddError(FreeApprovalTasks.Resources.ImpossibleSpecifyDeadlineLessThanToday);
            }
        }
        public override void MaxDeadlineValueInput(Sungero.Presentation.DateTimeValueInputEventArgs e)
        {
            var warnMessage = Docflow.Functions.Module.CheckDeadlineByWorkCalendar(e.NewValue);

            if (!string.IsNullOrEmpty(warnMessage))
            {
                e.AddWarning(warnMessage);
            }

            if (!Functions.Module.CheckDeadline(e.NewValue, Calendar.Now))
            {
                e.AddError(FreeApprovalTasks.Resources.ImpossibleSpecifyDeadlineLessThanToday);
            }
        }
Example #15
0
        public override void MaxDeadlineValueInput(Sungero.Presentation.DateTimeValueInputEventArgs e)
        {
            var warnMessage = Docflow.PublicFunctions.Module.CheckDeadlineByWorkCalendar(_obj.Assignee, e.NewValue);

            if (!string.IsNullOrEmpty(warnMessage))
            {
                e.AddWarning(warnMessage);
            }

            // Проверить корректность срока.
            if (!Docflow.PublicFunctions.Module.CheckDeadline(_obj.Assignee, e.NewValue, Calendar.Now))
            {
                e.AddError(RecordManagement.Resources.ImpossibleSpecifyDeadlineForAssignee);
            }
        }
Example #16
0
        public override void RegistrationDateValueInput(Sungero.Presentation.DateTimeValueInputEventArgs e)
        {
            base.RegistrationDateValueInput(e);

            if (e.NewValue != null && e.NewValue >= Calendar.SqlMinValue)
            {
                if (Functions.ContractBase.HaveDuplicates(_obj, _obj.BusinessUnit, _obj.RegistrationNumber, e.NewValue, _obj.Counterparty))
                {
                    e.AddWarning(ContractualDocuments.Resources.DuplicatesDetected + ContractualDocuments.Resources.FindDuplicates,
                                 _obj.Info.Properties.Counterparty,
                                 _obj.Info.Properties.BusinessUnit,
                                 _obj.Info.Properties.RegistrationDate,
                                 _obj.Info.Properties.RegistrationNumber);
                }
            }
        }
Example #17
0
        public virtual void ActionItemPartsDeadlineValueInput(Sungero.Presentation.DateTimeValueInputEventArgs e)
        {
            var assignee    = _obj.Assignee ?? Users.Current;
            var warnMessage = Docflow.PublicFunctions.Module.CheckDeadlineByWorkCalendar(assignee, e.NewValue);

            if (!string.IsNullOrEmpty(warnMessage))
            {
                e.AddWarning(warnMessage);
            }

            // Проверить корректность срока.
            if (!Docflow.PublicFunctions.Module.CheckDeadline(assignee, e.NewValue, Calendar.Now))
            {
                e.AddError(RecordManagement.Resources.ImpossibleSpecifyDeadlineLessThanToday);
            }
        }
Example #18
0
        private void CheckDeadline(Sungero.Presentation.DateTimeValueInputEventArgs e, IUser user)
        {
            var warnMessage = Docflow.PublicFunctions.Module.CheckDeadlineByWorkCalendar(user, e.NewValue);

            if (!string.IsNullOrEmpty(warnMessage))
            {
                e.AddWarning(warnMessage);
            }

            // Предупреждение на установку даты больше даты основного поручения.
            var parentAssignment = ActionItemExecutionAssignments.As(_obj.ParentAssignment);

            if (parentAssignment != null && Docflow.PublicFunctions.Module.CheckDeadline(e.NewValue, parentAssignment.Deadline))
            {
                e.AddWarning(ActionItemExecutionTasks.Resources.DeadlineSubActionItemExecutionFormat(parentAssignment.Deadline.Value.ToUserTime().ToShortDateString()));
            }
            _obj.State.Controls.Control.Refresh();
        }
Example #19
0
        public override void RegistrationDateValueInput(Sungero.Presentation.DateTimeValueInputEventArgs e)
        {
            base.RegistrationDateValueInput(e);

            if (e.NewValue != null && e.NewValue >= Calendar.SqlMinValue)
            {
                if (Functions.ContractStatement.HaveDuplicates(_obj, _obj.BusinessUnit, _obj.RegistrationNumber, e.NewValue, _obj.Counterparty, _obj.LeadingDocument))
                {
                    e.AddWarning(Contracts.ContractualDocuments.Resources.DuplicatesDetected + Contracts.ContractualDocuments.Resources.FindDuplicates,
                                 _obj.Info.Properties.LeadingDocument,
                                 _obj.Info.Properties.Counterparty,
                                 _obj.Info.Properties.BusinessUnit,
                                 _obj.Info.Properties.RegistrationNumber,
                                 _obj.Info.Properties.RegistrationDate);
                }
            }

            this._obj.State.Properties.RegistrationDate.HighlightColor = Sungero.Core.Colors.Empty;
        }
        public override void DateValueInput(Sungero.Presentation.DateTimeValueInputEventArgs e)
        {
            base.DateValueInput(e);

            if (e.NewValue != null && e.NewValue >= Calendar.SqlMinValue)
            {
                if (Functions.IncomingInvoice.HaveDuplicates(_obj, _obj.DocumentKind, _obj.Number, e.NewValue, _obj.TotalAmount, _obj.Currency, _obj.Counterparty))
                {
                    e.AddWarning(IncomingInvoices.Resources.DuplicateDetected,
                                 _obj.Info.Properties.DocumentKind,
                                 _obj.Info.Properties.Number,
                                 _obj.Info.Properties.Date,
                                 _obj.Info.Properties.TotalAmount,
                                 _obj.Info.Properties.Currency,
                                 _obj.Info.Properties.Counterparty);
                }
            }

            this._obj.State.Properties.Date.HighlightColor = Sungero.Core.Colors.Empty;
        }
Example #21
0
        public virtual void MilestonesDeadlineValueInput(Sungero.Presentation.DateTimeValueInputEventArgs e)
        {
            if (_obj.IsCompleted.Value)
            {
                e.AddError(ContractualDocuments.Resources.CannotChangeCompleteMilestone);
            }

            // Проверить корректность срока.
            var warnMessage = Docflow.PublicFunctions.Module.CheckDeadlineByWorkCalendar(_obj.Performer ?? Users.Current, e.NewValue);

            if (!string.IsNullOrEmpty(warnMessage))
            {
                e.AddWarning(warnMessage);
            }

            if (!Docflow.PublicFunctions.Module.CheckDeadline(_obj.Performer ?? Users.Current, e.NewValue, Calendar.Today))
            {
                e.AddWarning(ContractualDocuments.Resources.DeadlineMilestoneLessThenToday);
            }
        }
Example #22
0
 public override void ValidTillValueInput(Sungero.Presentation.DateTimeValueInputEventArgs e)
 {
     base.ValidTillValueInput(e);
     if (_obj.DaysToFinishWorks > 0 && e.NewValue != null)
     {
         TimeSpan daysRange       = e.NewValue.Value - Calendar.UserToday;
         var      maxDaysToFinish = daysRange.TotalDays;
         if (_obj.DaysToFinishWorks > maxDaysToFinish)
         {
             if (maxDaysToFinish > 0)
             {
                 e.AddError(Sungero.Contracts.ContractBases.Resources.DaysToFinishTooMatchFormat(maxDaysToFinish + 1));
             }
             else
             {
                 e.AddError(Sungero.Contracts.ContractBases.Resources.DocumentAlreadyFinish);
             }
         }
     }
 }
Example #23
0
        public virtual void NewDeadlineValueInput(Sungero.Presentation.DateTimeValueInputEventArgs e)
        {
            // Не давать указывать срок меньше, чем сейчас.
            if (e.NewValue.HasValue)
            {
                // Проводить валидацию на конец дня, если указана дата без времени.
                if (!Docflow.PublicFunctions.Module.CheckDeadline(_obj.Addressee ?? Users.Current, e.NewValue.Value, Calendar.Now))
                {
                    e.AddError(VerificationAssignments.Resources.ImpossibleSpecifyDeadlineLessThenToday,
                               _obj.Info.Properties.NewDeadline);
                }

                if (_obj.Addressee != null)
                {
                    var checkMessageText = Docflow.PublicFunctions.Module.CheckDeadlineByWorkCalendar(Users.Current, e.NewValue);
                    if (!string.IsNullOrEmpty(checkMessageText))
                    {
                        e.AddWarning(checkMessageText, _obj.Info.Properties.NewDeadline);
                    }
                }
            }
        }
Example #24
0
        public virtual void DateTimeValueInput(Sungero.Presentation.DateTimeValueInputEventArgs e)
        {
            if (!e.NewValue.HasValue)
            {
                return;
            }

            // Если время не задано, ставить начало рабочего дня.
            if (!e.NewValue.Value.HasTime())
            {
                e.NewValue = e.NewValue.Value.BeginningOfWorkingDay();
            }
            // Проверить корректность даты.
            else if (!e.NewValue.Value.IsWorkingDay(Users.Current))
            {
                e.AddWarning(Meetings.Resources.MeetingDateIsWeekend);
            }
            else if (!e.NewValue.Value.IsWorkingTime(Users.Current))
            {
                e.AddWarning(Meetings.Resources.MeetingTimeIsWeekend);
            }
        }
Example #25
0
        public virtual void NewDeadlineValueInput(Sungero.Presentation.DateTimeValueInputEventArgs e)
        {
            var assignee    = ActionItemExecutionTasks.As(_obj.Task).Assignee;
            var warnMessage = Docflow.PublicFunctions.Module.CheckDeadlineByWorkCalendar(assignee, e.NewValue);

            if (!string.IsNullOrEmpty(warnMessage))
            {
                e.AddWarning(warnMessage);
            }

            // Проверить корректность срока.
            if (!Docflow.PublicFunctions.Module.CheckDeadline(assignee, e.NewValue, Calendar.Now))
            {
                e.AddWarning(ActionItemSupervisorAssignments.Resources.NewDeadlineLessThenToday);
            }
            else if (e.NewValue != null &&
                     e.NewValue != _obj.ScheduledDate &&
                     !Docflow.PublicFunctions.Module.CheckDeadline(e.NewValue, _obj.ScheduledDate))
            {
                e.AddError(ActionItemSupervisorAssignments.Resources.ImpossibleSpecifyDeadlineLessActionItemDeadline);
            }
        }
        public virtual void TrackingDeliveryDateValueInput(Sungero.Presentation.DateTimeValueInputEventArgs e)
        {
            var deliveryDate = e.NewValue;

            if (Equals(deliveryDate, e.OldValue))
            {
                return;
            }

            if (_obj.ReturnDeadline < deliveryDate)
            {
                e.AddError(Docflow.Resources.ReturnDocumentDeliveryAndScheduledDate);
            }
            if (deliveryDate > _obj.ReturnDate)
            {
                e.AddError(Docflow.Resources.ReturnDocumentDeliveryAndReturnDate);
            }

            // Запретить изменение, если документ уже возвращен.
            if (_obj.State.Properties.ReturnDate.OriginalValue.HasValue)
            {
                e.AddError(Docflow.Resources.ChangingRecordDocumentReturnIsInadmissible);
            }
        }
        public virtual void TrackingReturnDeadlineValueInput(Sungero.Presentation.DateTimeValueInputEventArgs e)
        {
            if (Equals(e.NewValue, e.OldValue))
            {
                return;
            }

            if (_obj.DeliveryDate > e.NewValue)
            {
                e.AddError(Docflow.Resources.ReturnDocumentDeliveryAndScheduledDate);
            }

            if (_obj.Action == Docflow.OfficialDocumentTracking.Action.Endorsement)
            {
                e.AddError(Docflow.Resources.CantChangeReturnRowForEndorsementTask);
                return;
            }

            // Запретить изменение, если документ уже возвращен.
            if (_obj.State.Properties.ReturnDate.OriginalValue.HasValue)
            {
                e.AddError(Docflow.Resources.ChangingRecordDocumentReturnIsInadmissible);
            }
        }
        public virtual void TrackingReturnDateValueInput(Sungero.Presentation.DateTimeValueInputEventArgs e)
        {
            if (Equals(e.NewValue, e.OldValue))
            {
                return;
            }

            if (_obj.DeliveryDate > e.NewValue)
            {
                e.AddError(Docflow.Resources.ReturnDocumentDeliveryAndReturnDate);
            }

            // Запретить изменение, если документ уже возвращен.
            if (_obj.State.Properties.ReturnDate.OriginalValue.HasValue)
            {
                e.AddError(Docflow.Resources.ChangingRecordDocumentReturnIsInadmissible);
            }

            // Запретить изменение, если документ был отправлен через сервис обмена.
            if (_obj.ExternalLinkId != null)
            {
                e.AddError(OfficialDocuments.Resources.CannotChangeTrackingSentByExchange);
            }
        }
Example #29
0
 public override void RegistrationDateValueInput(Sungero.Presentation.DateTimeValueInputEventArgs e)
 {
     base.RegistrationDateValueInput(e);
     this._obj.State.Properties.RegistrationDate.HighlightColor = Sungero.Core.Colors.Empty;
 }