Esempio n. 1
0
 /// <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);
     }
 }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
        /// <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);
            }
        }