Example #1
0
        /// <summary>
        /// Создать правила по умолчанию.
        /// </summary>
        public static void CreateDefaultContractualRules()
        {
            InitializationLogger.Debug("Init: Create default contractual approval rules.");

            var stages = new List <Enumeration>
            {
                StageType.Manager, StageType.Approvers, StageType.Print, StageType.Sign, StageType.Register, StageType.Sending, StageType.CheckReturn, StageType.Notice
            };

            var rule = CreateDefaultRule(Resources.DefaultApprovalRuleNameContracts,
                                         Docflow.ApprovalRuleBase.DocumentFlow.Contracts,
                                         stages);

            // Добавить условие по способу отправки и непосредственный руководитель - подписывающий, для созданного правила.
            if (rule != null)
            {
                var deliveryCondition = ContractConditions.Create();
                deliveryCondition.ConditionType = Docflow.ConditionBase.ConditionType.DeliveryMethod;
                var newDeliveryMethod = deliveryCondition.DeliveryMethods.AddNew();
                newDeliveryMethod.DeliveryMethod = Docflow.MailDeliveryMethods.GetAll(m => m.Sid == Docflow.Constants.MailDeliveryMethod.Exchange).FirstOrDefault();
                deliveryCondition.Save();
                var printStageNumber = stages.IndexOf(StageType.Print) + 1;
                Docflow.PublicInitializationFunctions.Module.AddConditionToRule(rule, deliveryCondition, printStageNumber);

                var rolesCompareCondition = Docflow.PublicInitializationFunctions.Module.CreateRoleCompareSignatoryAndInitManagerCondition(ContractConditions.Create());
                var managerStageNumber    = stages.IndexOf(StageType.Manager) + 1;
                Docflow.PublicInitializationFunctions.Module.AddConditionToRule(rule, rolesCompareCondition, managerStageNumber);
            }

            InitializationLogger.Debug("Init: Create default invoice approval rules.");
            var invoiceStages = new List <Enumeration>
            {
                StageType.Manager, StageType.Approvers, StageType.Sign
            };
            var invoiceRule = CreateDefaultInvoiceRule(Resources.DefaultApprovalRuleNameInvoice, invoiceStages);

            if (invoiceRule != null)
            {
                var rolesCompareCondition = Docflow.PublicInitializationFunctions.Module.CreateRoleCompareSignatoryAndInitManagerCondition(Conditions.Create());
                var managerStageNumber    = invoiceStages.IndexOf(StageType.Manager) + 1;
                Docflow.PublicInitializationFunctions.Module.AddConditionToRule(invoiceRule, rolesCompareCondition, managerStageNumber);
            }
        }
Example #2
0
 public static IContractCondition CreateContractCondition()
 {
     return(ContractConditions.Create());
 }