public virtual void DocumentForReviewGroupAdded(Sungero.Workflow.Interfaces.AttachmentAddedEventArgs e) { var document = OfficialDocuments.As(e.Attachment); // Задать тему. using (TenantInfo.Culture.SwitchTo()) _obj.Subject = Docflow.PublicFunctions.Module.TrimSpecialSymbols(DocumentReviewTasks.Resources.Consideration, document.Name); // Задать адресата. if (IncomingDocumentBases.Is(document)) { _obj.Addressee = IncomingDocumentBases.As(document).Addressee; } if (Memos.Is(document)) { _obj.Addressee = Memos.As(document).Addressee; } // Задать срок рассмотрения. var addressee = _obj.Addressee ?? Users.Current; _obj.Deadline = Docflow.PublicFunctions.DocumentKind.GetConsiderationDate(document.DocumentKind, addressee) ?? Calendar.Now.AddWorkingDays(addressee, Functions.Module.Remote.GetDocumentReviewDefaultDays()); if (!_obj.State.IsCopied) { Docflow.PublicFunctions.Module.SynchronizeAddendaAndAttachmentsGroup(_obj.AddendaGroup, _obj.DocumentForReviewGroup.OfficialDocuments.FirstOrDefault()); } Docflow.PublicFunctions.OfficialDocument.DocumentAttachedInMainGroup(document, _obj); // Добавить вложения. Docflow.PublicFunctions.OfficialDocument.AddRelatedDocumentsToAttachmentGroup(document, _obj.OtherGroup); }
public static IQueryable <IOfficialDocument> GetOfficialCorrespondenceWithCounterparty( Parties.ICounterparty counterparty, DateTime?periodBegin, DateTime?periodEnd) { return(OfficialDocuments.GetAll() .Where(l => l.RegistrationState == Docflow.OfficialDocument.RegistrationState.Reserved || l.RegistrationState == Docflow.OfficialDocument.RegistrationState.Registered) .Where(l => periodBegin == null || l.RegistrationDate >= periodBegin) .Where(l => periodEnd == null || l.RegistrationDate <= periodEnd) .Where(l => (IncomingDocumentBases.Is(l) && Equals(IncomingDocumentBases.As(l).Correspondent, counterparty)) || (OutgoingDocumentBases.Is(l) && OutgoingDocumentBases.As(l).Addressees.Select(x => x.Correspondent).Any(y => Equals(y, counterparty))))); }
/// <summary> /// Проверить, требуется ли скрытие создания сопроводительного письма. /// </summary> /// <param name="collapsedStageTypes">Схлопнутые этапы.</param> /// <returns>True, если требуется.</returns> public bool NeedHideCoverLetterAction(List <Enumeration?> collapsedStageTypes) { if (!collapsedStageTypes.Where(s => s == Docflow.ApprovalStage.StageType.Sending).Any()) { return(true); } var document = _obj.DocumentGroup.OfficialDocuments.FirstOrDefault(); if (ContractualDocumentBases.Is(document) || IncomingDocumentBases.Is(document)) { return(false); } return(true); }