Example #1
0
        /// <summary>
        /// Создать виды документов для делопроизводства.
        /// </summary>
        public static void CreateDocumentKinds()
        {
            InitializationLogger.Debug("Init: Create document kinds.");

            var notifiable = Docflow.DocumentKind.NumberingType.Registrable;

            Docflow.PublicInitializationFunctions.Module.CreateDocumentKind(RecordManagement.Resources.IncomingLetterKindName, RecordManagement.Resources.IncomingLetterKindShortName, notifiable, Docflow.DocumentRegister.DocumentFlow.Incoming,
                                                                            true, false, IncomingLetter.ClassTypeGuid, null,
                                                                            Init.IncomingLetterKind);
            Docflow.PublicInitializationFunctions.Module.CreateDocumentKind(RecordManagement.Resources.OutgoingLetterKindName, RecordManagement.Resources.OutgoingLetterKindShortName, notifiable, Docflow.DocumentRegister.DocumentFlow.Outgoing,
                                                                            true, false, OutgoingLetter.ClassTypeGuid, null, Init.OutgoingLetterKind);

            var actions = new Domain.Shared.IActionInfo[] { OfficialDocuments.Info.Actions.SendActionItem,
                                                            OfficialDocuments.Info.Actions.SendForApproval,
                                                            OfficialDocuments.Info.Actions.SendForFreeApproval,
                                                            OfficialDocuments.Info.Actions.SendForAcquaintance };

            Docflow.PublicInitializationFunctions.Module.CreateDocumentKind(RecordManagement.Resources.OrderKindName, RecordManagement.Resources.OrderKindShortName, notifiable, DocumentFlow.Inner,
                                                                            true, false, Order.ClassTypeGuid,
                                                                            actions,
                                                                            Init.OrderKind);
            Docflow.PublicInitializationFunctions.Module.CreateDocumentKind(RecordManagement.Resources.CompanyDirectiveKindName, RecordManagement.Resources.CompanyDirectiveKindShortName, notifiable, DocumentFlow.Inner,
                                                                            true, false, CompanyDirective.ClassTypeGuid,
                                                                            actions,
                                                                            Init.CompanyDirective);
        }
        /// <summary>
        /// Подтвердить выполнение задания.
        /// </summary>
        /// <param name="action">Действие.</param>
        /// <returns>True, если пользователь нажал "Да" в диалоге подтверждения, иначе False.</returns>
        public bool ConfirmCompleteAssignment(Domain.Shared.IActionInfo action)
        {
            var confirmationMessage = action.ConfirmationMessage;

            if (_obj.AddendaGroup.ElectronicDocuments.Any())
            {
                confirmationMessage = Docflow.FreeApprovalAssignments.Resources.ApprovalConfirmationMessage;
            }

            // Замена стандартного диалога подтверждения выполнения действия.
            return(Docflow.Functions.Module.ShowConfirmationDialog(confirmationMessage, null, null,
                                                                   Constants.FreeApprovalTask.FreeApprovalAssignmentConfirmDialogID.Approved));
        }
Example #3
0
        /// <summary>
        /// Показать диалог выбора главного документа.
        /// </summary>
        /// <param name="documents">Документы.</param>
        /// <param name="needSignDocuments">Документы, требующие подписания.</param>
        /// <param name="currentAction">Действие по отправке.</param>
        /// <returns>Документ.</returns>
        public static Sungero.Domain.Shared.IEntity ShowMainDocumentChoosingDialog(List <Content.IElectronicDocument> documents,
                                                                                   List <Content.IElectronicDocument> needSignDocuments,
                                                                                   Domain.Shared.IActionInfo currentAction)
        {
            // Определить подходящие документы.
            var documentsList        = Docflow.PublicFunctions.OfficialDocument.GetSuitableDocuments(documents, currentAction);
            var needSignDocumentList = Docflow.PublicFunctions.OfficialDocument.GetSuitableDocuments(needSignDocuments, currentAction);

            if (needSignDocumentList.Any())
            {
                documentsList = needSignDocumentList;
            }

            return(Docflow.PublicFunctions.OfficialDocument.ChooseMainDocument(documentsList, needSignDocuments));
        }
Example #4
0
        /// <summary>
        /// Создать виды документов для модуля совещания.
        /// </summary>
        public static void CreateDocumentKinds()
        {
            Docflow.PublicInitializationFunctions.Module.CreateDocumentKind(Resources.AgendaKindName,
                                                                            Resources.AgendaKindShortName,
                                                                            Docflow.DocumentKind.NumberingType.NotNumerable,
                                                                            Docflow.DocumentKind.DocumentFlow.Inner, true, false, Agenda.ClassTypeGuid,
                                                                            new Domain.Shared.IActionInfo[] { Docflow.OfficialDocuments.Info.Actions.SendForFreeApproval },
                                                                            Constants.Module.AgendaKind);

            var minutesActions = new Domain.Shared.IActionInfo[] {
                Docflow.OfficialDocuments.Info.Actions.SendActionItem,
                Docflow.OfficialDocuments.Info.Actions.SendForFreeApproval,
                Docflow.OfficialDocuments.Info.Actions.SendForApproval,
                Docflow.OfficialDocuments.Info.Actions.SendForAcquaintance
            };

            Docflow.PublicInitializationFunctions.Module.CreateDocumentKind(Resources.MinutesKindName,
                                                                            Resources.MinutesKindShortName,
                                                                            Docflow.DocumentKind.NumberingType.Numerable, Docflow.DocumentKind.DocumentFlow.Inner,
                                                                            true, false, Minutes.ClassTypeGuid, minutesActions,
                                                                            Constants.Module.MinutesKind);
        }
Example #5
0
 /// <summary>
 /// Получить действие по отправке документа.
 /// </summary>
 /// <param name="action">Информация о действии.</param>
 /// <returns>Действие по отправке документа.</returns>
 public static IDocumentSendAction GetSendAction(Domain.Shared.IActionInfo action)
 {
     return(DocumentSendActions.GetAllCached(a => a.ActionGuid == Functions.Module.GetActionGuid(action)).Single());
 }
Example #6
0
        /// <summary>
        /// Получить GUID действия.
        /// </summary>
        /// <param name="action">Действие.</param>
        /// <returns>Строка, содержащая GUID.</returns>
        public static string GetActionGuid(Domain.Shared.IActionInfo action)
        {
            var internalAction = action as Domain.Shared.IInternalActionInfo;

            return(internalAction == null ? string.Empty : internalAction.NameGuid.ToString());
        }