/// <summary> /// Добавить в группу вложений исходящее письмо, в ответ на которое было создано входящее. /// </summary> /// <param name="group">Группа вложений.</param> public override void AddRelatedDocumentsToAttachmentGroup(Sungero.Workflow.Interfaces.IWorkflowEntityAttachmentGroup group) { if (_obj.InResponseTo != null && !group.All.Contains(_obj.InResponseTo) && _obj.InResponseTo.AccessRights.CanRead()) { group.All.Add(_obj.InResponseTo); } }
public static void SynchronizeAddendaAndAttachmentsGroup(Sungero.Workflow.Interfaces.IWorkflowEntityAttachmentGroup group, IElectronicDocument document) { if (document == null) { foreach (var addendum in group.All) { group.All.Remove(addendum); } return; } var documentAddenda = document.Relations.GetRelated(Docflow.Constants.Module.AddendumRelationName); foreach (var addendum in group.All.Select(e => ElectronicDocuments.As(e)).Where(d => d != null && !documentAddenda.Contains(d))) { group.All.Remove(addendum); } var newAddenda = documentAddenda.Where(d => !group.All.Contains(d)).ToList(); foreach (var addendum in newAddenda) { group.All.Add(addendum); } }
/// <summary> /// Добавить связанные с входящим счетом документы в группу вложений. /// </summary> /// <param name="group">Группа вложений.</param> public override void AddRelatedDocumentsToAttachmentGroup(Sungero.Workflow.Interfaces.IWorkflowEntityAttachmentGroup group) { // Получить бухгалтерские документы. var accountingDocuments = _obj.Relations.GetRelatedFrom(Constants.Module.AccountingDocumentsRelationName); var documentsToAdd = accountingDocuments.Where(d => !group.All.Contains(d)).ToList(); foreach (var document in documentsToAdd) { group.All.Add(document); } }
/// <summary> /// Добавить связанные с допсоглашением документы в группу вложений. /// </summary> /// <param name="group">Группа вложений.</param> public override void AddRelatedDocumentsToAttachmentGroup(Sungero.Workflow.Interfaces.IWorkflowEntityAttachmentGroup group) { // Получить договор. var contractDocuments = _obj.Relations.GetRelatedFrom(Constants.Module.SupAgreementRelationName); var documentsToAdd = contractDocuments.Where(d => !group.All.Contains(d)).ToList(); foreach (var document in documentsToAdd) { group.All.Add(document); } }
/// <summary> /// Добавить связанные с финансовыми документами документы в группу вложений. /// </summary> /// <param name="group">Группа вложений.</param> public override void AddRelatedDocumentsToAttachmentGroup(Sungero.Workflow.Interfaces.IWorkflowEntityAttachmentGroup group) { // Получить ведущий документ. var financialDocuments = _obj.Relations.GetRelatedFrom(Contracts.PublicConstants.Module.AccountingDocumentsRelationName); var documentsToAdd = financialDocuments.Where(d => !group.All.Contains(d)).ToList(); // Добавить корректируемые документы. var correctDocuments = _obj.Relations.GetRelatedFrom(Constants.Module.CorrectionRelationName); documentsToAdd.AddRange(correctDocuments.Where(d => !group.All.Contains(d)).ToList()); foreach (var document in documentsToAdd) { group.All.Add(document); } }