예제 #1
0
    def validate_task_status(self):
        if self.task.task_status == SUCCESS:
            raise ServiceException(
                f'Резолюція вже виконана, Ви не можете виконати її повторно.')

        if self.task.task_status == PENDING:
            raise ServiceException(
                f'Ви не можете виконати резоліюцію оскільки попередня резолюція по цьому документу ще не виконана.'
            )
예제 #2
0
 def validate_sign(self):
     sign_b64 = self.task_executor.sign
     data_path = self.task_executor.task.document.main_file.path
     res = verify_external(data_path=data_path, sign_data=sign_b64)
     if res.get('code') == 1:
         raise ServiceException(res.get('code_message'))
     self.task_executor.sign_info = res
예제 #3
0
 def run(self):
     if self.flow.execution_type == BY_ORDER:
         self.run_first_task_if_flow_running()
     elif self.flow.execution_type == PARALLEL:
         self.run_all_flow_tasks()
     else:
         raise ServiceException('Не вказано "execution_type"')
예제 #4
0
 def validate_flow(self):
     flow = self.document.flow_set.all().last()
     logger.info(f'validate_flow : {flow.id}')
     tasks_exists = flow.tasks.all().exists()
     if not tasks_exists:
         raise ServiceException(
             f'Заборонена передача документа на виконання без резолюції')
예제 #5
0
 def considerate_document(self):
     if self.document.document_cast == INCOMING:
         self.considerate_incoming_document()
     elif self.document.document_cast == INNER:
         self.considerate_inner_document()
     else:
         raise ServiceException('document_cast is not set')
예제 #6
0
 def validate_task_executor(self):
     user_in_task_executor_list = self.task.task_executors.all().filter(
         executor=self.user).exists()
     if not user_in_task_executor_list:
         raise ServiceException(
             f'Заборонено виконання завдання користувачами не вказаними в списку виконанвців.'
         )
 def register_document(self):
     if self.document.document_cast == OUTGOING:
         self.register_outgoing_document()
     elif self.document.document_cast == INCOMING:
         self.register_incoming_document()
     elif self.document.document_cast == INNER:
         self.register_inner_document()
     else:
         raise ServiceException('document_cast is not set')
    def validate_approve_list(self):
        ##Якщо вказано підписанта, не перевіряємо список завдань, завдання буде створено автоматично
        if self.document.main_signer:
            return

        if self.document.approve_type == WITH_APPROVE:
            exist_approve_task = self.document.task_set.filter(
                task_type=APPROVE).exists()
            if not exist_approve_task:
                raise ServiceException(
                    f'Документ з погодженням повинен включати хоча б один пункт етап погодження.Спочатку вкажіть пункти погодження'
                )
예제 #9
0
 def validate_user(self):
     if self.user != self.task.controller:
         raise ServiceException(
             'Підтвердити виконання завдання може лише контролер!')
예제 #10
0
 def validate_approvers(self):
     approvers = self.document.approvers_list.all()
     if not approvers.exists():
         raise ServiceException(
             f'Заборонено погодження  документа без вказаного списку на розгляд.'
         )
 def validate_main_file(self):
     if not self.document.main_file:
         raise ServiceException(
             f'Заборонена реєстрація  документа без завантаженого документа.'
         )
 def validate_document_reg_number(self):
     if not self.document.reg_number:
         raise ServiceException(
             f'Заборонена реєстрація документа без номера.')
 def validate_document_status(self):
     if self.document.status != ON_REGISTRATION:
         raise ServiceException(
             f'Заборонена повторна реєстрація документа.')
예제 #14
0
 def validate_status(self):
     if self.document.status == ON_AGREEMENT:
         raise ServiceException(
             f'Документ вже запушено на погодження. Ви не можете запустити погодження доки попередній процес погодження не закінчено.'
         )
예제 #15
0
 def validate_document_cast(self):
     if self.document.document_cast not in [OUTGOING, INNER]:
         raise ServiceException(
             'На погодження можна відправити лише Внутрішній, або Вихідний документ'
         )
예제 #16
0
 def validate_user(self):
     """ Перевіряємо користувача, що відправив завдання на доопрацювання"""
     if self.user != self.task.controller:
         raise ServiceException(
             'вернути завдання на доопрацювання може лише контролер!')
예제 #17
0
 def validate_main_signer(self):
     if not self.document.main_signer:
         raise ServiceException(f'Спочатку вкажіть підписанта документа')
예제 #18
0
 def validate_user(self):
     if self.user != self.task_executor.executor:
         raise ServiceException(
             'Задачу може виконувати тільки відповідальний за неї виконавець'
         )