Exemplo n.º 1
0
    def obter_ultimo(self):
        try:
            retorno = Retorno(False, self)
            # Valida se o cliente já está cadastrado.
            lista_clientes = Cliente.objects.filter()
            if lista_clientes:
                m_cliente = lista_clientes[lista_clientes.count() - 1]
                if m_cliente:
                    o_cliente_iter = ClienteIter(self)
                    # Obtem o cadastro na Iter.
                    retorno = o_cliente_iter.obter(m_cliente)

                    if not retorno.estado.ok:
                        return retorno

                    m_cliente.converter_de_cliente_iter(retorno.json())
                    m_cliente.nome_usuario = m_cliente.nome_usuario

                    retorno.dados = self.definir_contexto(m_cliente)

            return retorno
        except Exception as e:

            retorno = Retorno(False, self,
                              'A consulta dos dados cadastrais falhou.', None,
                              None, e)
            return retorno
Exemplo n.º 2
0
    def alterar(self):
        try:
            retorno = self.validar_dados_obrigatorios()

            if not retorno.estado.ok:
                return retorno

            # Valida se o veiculo já está cadastrado.
            retorno = self.obter()

            if not retorno.estado.ok:
                return retorno

            vaiculo_cadastrado = retorno.dados
            self.cliente = vaiculo_cadastrado.cliente
            self.dt_hr_inclusao = vaiculo_cadastrado.dt_hr_inclusao
            self.save()

            retorno = Retorno(True, self, 'Cadastro atualizado com sucesso.',
                              200)
            retorno.dados = self

            return retorno
        except Exception as e:

            retorno = Retorno(
                False, self,
                'A inclusão dos dados cadastrais do veículo falhou.', None,
                None, e)
            return retorno
Exemplo n.º 3
0
    def obter_ultimo(self):
        try:
            retorno = Retorno(False)
            # Valida se o cliente já está cadastrado.
            lista_clientes = Cliente.objects.filter()
            if lista_clientes:
                m_cliente = lista_clientes[lista_clientes.count() - 1]
                if m_cliente:
                    # Obtem o cadastro na Iter.
                    retorno_cliente_iter = ClienteIter.obter(
                        self, m_cliente.id_cliente_iter)

                    if not retorno_cliente_iter.estado.ok:
                        return retorno_cliente_iter

                    self.converter_de_cliente_iter(retorno_cliente_iter.json())

                    retorno = Retorno(True)
                    retorno.dados = self

            return retorno
        except Exception as e:
            print(traceback.format_exception(None, e, e.__traceback__),
                  file=sys.stderr,
                  flush=True)

            retorno = Retorno(
                False, 'Falha de comunicação. Em breve será normalizado.')
            return retorno
Exemplo n.º 4
0
    def obter(self):
        try:
            retorno = self.validar_dados_obrigatorios_chaves()

            if not retorno.estado.ok:
                return retorno

            retorno = Retorno(False, self, 'Veiculo não cadastrado',
                              'NaoCadastrado', 406)

            m_veiculo = Veiculo.objects.get(placa=self.placa)
            if (m_veiculo and m_veiculo.placa):

                if m_veiculo:
                    retorno = Retorno(True, self)
                    retorno.dados = self.definir_contexto(m_veiculo)

            return retorno

        except Exception as e:

            retorno = Retorno(
                False, self,
                'A consulta aos dados cadastrais do veículo falhou.', None,
                None, e)
            return retorno
Exemplo n.º 5
0
    def listar_especificos(self, chaves_produtos):
        try:
            msgNaoEncontrado = 'Cadastro do produto {0} ({1})) não encontrado.'
            
            produtos = list()

            retorno = Retorno(True)
            retorno.dados = produtos

            for chave_produto in chaves_produtos:
                
                lista_produtos = Produto.objects.filter(codigo = chave_produto['codigo'])
                if lista_produtos:
                    m_produto = lista_produtos[0]
                    if m_produto:
                        produtos.append(m_produto)
                    else:
                        retorno = Retorno(False, msgNaoEncontrado.format(chave_produto['nome'], chave_produto['codigo']), 'NaoCadastrado', 406)
                        break
            
            return retorno
            
        except Exception as e:
            print(traceback.format_exception(None, e, e.__traceback__), file=sys.stderr, flush=True)
                    
            retorno = Retorno(False, 'Falha de comunicação. Em breve será normalizado.')
            return retorno
Exemplo n.º 6
0
    def __tratarRespostaHTTP(self, respostaHTTP):

        if respostaHTTP.status_code < 200 or respostaHTTP.status_code > 300:
            retorno = Retorno(
                False, self,
                'Erro de comunicação com a Iter. %s' % respostaHTTP.text,
                'ErroComunicacaoIter', respostaHTTP.status_code)
        else:
            retorno = Retorno(True, self)
            dadosRetorno = respostaHTTP.json()

            if isinstance(dadosRetorno, list):
                if len(dadosRetorno) > 0:
                    dadosRetorno = dadosRetorno[0]
                else:
                    dadosRetorno = None

            if dadosRetorno:
                retorno.dados = dadosRetorno

                if 'token' in dadosRetorno:
                    self.credencial_iter.set_token_iter(dadosRetorno['token'])
                    retorno.credencial = self.credencial_iter
            else:
                # nao localizado
                retorno = Retorno(False, self, respostaHTTP.text, '', 404)

        self.registrar_retorno(retorno, 'Retorno da Iter.')
        return retorno
Exemplo n.º 7
0
    def obter_url_contrato_pdf(self, chave_doc_clicksign):

        if (not self.headers_clicksign):
            return self.retorno_autenticacao

        retorno = self.obter(chave_doc_clicksign)

        if not retorno.estado.ok:
            return retorno

        d_dados_doc = retorno.dados
        tem_url = False

        if (d_dados_doc):
            if 'downloads' in d_dados_doc:
                d_downloads = d_dados_doc['downloads']
                if 'signed_file_url' in d_downloads:

                    url = d_downloads['signed_file_url']

                    if (url and len(str(url).strip()) > 0):
                        tem_url = True

        if tem_url:
            retorno = Retorno(True, self)
            retorno.dados = url
        else:
            retorno = Retorno(
                False, self,
                'Não foi possível obter o documento do contrato. Os dados retornaram vazios',
                '', 404)

        return retorno
Exemplo n.º 8
0
    def listar_especificos(self, chaves_produtos):
        try:
            msgNaoEncontrado = 'Cadastro do produto {0} ({1})) não encontrado.'
            
            produtos = list()

            retorno = Retorno(True, self)
            retorno.dados = produtos

            for chave_produto in chaves_produtos:
                
                lista_produtos = Produto.objects.filter(codigo = chave_produto['codigo'])
                if lista_produtos:
                    m_produto = lista_produtos[0]
                    if m_produto:
                        produtos.append(m_produto)
                    else:
                        retorno = Retorno(False, self, msgNaoEncontrado.format(chave_produto['nome'], chave_produto['codigo']), 'NaoCadastrado', 406)
                        break
            
            return retorno
            
        except Exception as e:
                    
            retorno = Retorno(False, self, 'A consulta a produtos Trisafe falhou.', None, None, e)
            return retorno
Exemplo n.º 9
0
    def __tratarRespostaHTTP(self, respostaHTTP):

        if respostaHTTP.status_code < 200 or respostaHTTP.status_code > 300:

            mensagem_erro = self.__extrairMensagemErro(respostaHTTP.text)

            retorno = Retorno(
                False, self,
                'Erro de comunicacao com a Clicksign. %s' % mensagem_erro,
                'ErroComunicacaoClicksign', respostaHTTP.status_code)
        else:
            dadosRetorno = respostaHTTP.text

            retorno = Retorno(True, self)

            if (dadosRetorno):
                dadosRetorno = respostaHTTP.json()

            if dadosRetorno:
                retorno.dados = dadosRetorno
            else:
                # nao localizado
                retorno = Retorno(False, respostaHTTP.text, '', 404)

        self.registrar_retorno(retorno, 'Retorno da Clicksign.')
        return retorno
Exemplo n.º 10
0
    def incluir(self):
        try:
            retorno = Cliente.validar_dados_obrigatorios(self)

            if not retorno.estado.ok:
                return retorno

            # Valida se o cliente já está cadastrado.
            retorno = Cliente.obter(self)

            if retorno.estado.excecao or (
                    len(retorno.estado.codMensagem) > 0
                    and retorno.estado.codMensagem != 'NaoCadastrado'):
                return Retorno(
                    False, self,
                    'Erro ao validar cadastro. %s' % (retorno.estado.mensagem),
                    retorno.estado.codMensagem, retorno.estado.excecao)

            o_cliente_iter = ClienteIter(self)
            # Inclusao na Iter.
            retorno = o_cliente_iter.obter(self)

            if not retorno.estado.ok and (retorno.estado.excecao
                                          or retorno.estado.httpStatus != 404):
                return Retorno(
                    False, self, 'Erro ao validar cadastro na Iter. %s' %
                    (retorno.estado.mensagem), retorno.estado.codMensagem,
                    retorno.estado.excecao)

            # salva na base da Iter.
            elif retorno.estado.httpStatus == 404:
                retorno = o_cliente_iter.incluir(self)
            else:
                retorno = o_cliente_iter.alterar(self)

            if not retorno.estado.ok:
                return Retorno(
                    False, self, 'Erro ao efetivar cadastro na Iter. %s' %
                    (retorno.estado.mensagem), retorno.estado.codMensagem,
                    retorno.estado.excecao)

            d_cliente_iter = retorno.json()
            self.id_cliente_iter = d_cliente_iter['dados']['id']

            # salva na base da Trisafe
            self.save()

            retorno = Retorno(True, self, 'Cadastro realizado com sucesso.',
                              '', 200, None)
            retorno.dados = self

            return retorno
        except Exception as e:

            retorno = Retorno(False, self,
                              'A inclusão dos dados cadastrais falhou.', None,
                              None, e)
            return retorno
Exemplo n.º 11
0
    def tratarRespostaHTTP(cls, respostaHTTP):
        
        if respostaHTTP.status_code < 200 or respostaHTTP.status_code > 300:
            retorno = Retorno(False, respostaHTTP.text, respostaHTTP.status_code)
        else:
            retorno = Retorno(True)
            retorno.dados = respostaHTTP.json()['user']

        return retorno
Exemplo n.º 12
0
    def contar_por_chave(self):
        try:

            retorno = Retorno(True, self)
            retorno.dados = Veiculo.objects.filter(placa=self.placa).count()

            return retorno

        except Exception as e:

            retorno = Retorno(
                False, self,
                'A consulta aos dados cadastrais do veículo falhou.', None,
                None, e)
            return retorno
Exemplo n.º 13
0
    def alterar(self, chaves_produtos):

        try:
            retorno_cliente = self.cliente.obter()

            if not retorno_cliente.estado.ok:
                return retorno_cliente

            m_produto = self.definir_contexto(Produto())
            retorno_produtos = m_produto.listar_especificos(chaves_produtos)

            if not retorno_produtos.estado.ok:
                return retorno_produtos

            d_dados_pedido = self.gerar_dados_pedido_transacao_gerencia_net(
                retorno_produtos.dados)

            m_transacao_gerencia_net = self.definir_contexto(
                TransacaoGerenciaNet())

            retorno_transacao = m_transacao_gerencia_net.incluir(
                d_dados_pedido)

            if not retorno_transacao.estado.ok:
                return retorno_transacao

            self.chave_boleto_ext = m_transacao_gerencia_net.id
            self.cliente = retorno_cliente.dados
            self.calcular_valor_total(retorno_produtos.dados)
            self.aceito = False
            # Atualiza com os produtos
            self.produtos_contratados.set(retorno_produtos.dados)

            # Inclui na base
            self.save()

            retorno = Retorno(
                True, self,
                'Contrato gerado com sucesso. Selecione "Contratar" para aceitá-lo.'
            )
            retorno.dados = self

            return retorno
        except Exception as e:

            retorno = Retorno(False, self, 'A atualização do contrato falhou.',
                              None, None, e)
            return retorno
Exemplo n.º 14
0
    def obter(self):
        try:
            retorno = Retorno(False, self, 'Contrato não localizado.')
            m_contratos = Contrato.objects.filter(id_contrato=self.id_contrato)

            if m_contratos:
                m_contrato = m_contratos[0]
                if m_contrato:
                    retorno = Retorno(True, self)
                    retorno.dados = self.definir_contexto(m_contrato)

            return retorno
        except Exception as e:

            retorno = Retorno(False, self, 'A consulta do contrato falhou.',
                              None, None, e)
            return retorno
Exemplo n.º 15
0
    def aceitar(self):
        try:

            m_contratos = Contrato.objects.filter(id_contrato=self.id_contrato)
            
            if m_contratos:
                m_contrato = m_contratos[0]
                if m_contrato:
                    retorno = Retorno(True)
                    retorno.dados = m_contrato

            return retorno
        except Exception as e:
            print(traceback.format_exception(None, e, e.__traceback__), file=sys.stderr, flush=True)
                    
            retorno = Retorno(False, 'Falha de comunicação. Em breve será normalizado.')
            return retorno
Exemplo n.º 16
0
    def incluir_signatario_contrato(self, m_contrato):
        url = "https://sandbox.clicksign.com/api/v1/lists%s" % (
            self.querystring_access_token)

        d_signatario_clicksign = self.__montar_dic_signatario_contrato(
            m_contrato)

        if (not self.headers_clicksign):
            return self.retorno_autenticacao

        r = requests.post(url,
                          headers=self.headers_clicksign,
                          data=d_signatario_clicksign)

        retorno = self.__tratarRespostaHTTP(r)

        if not retorno.estado.ok:
            return retorno

        d_dados_signatario = retorno.dados
        tem_chave = False
        chave_signatario = ''

        if (d_dados_signatario):
            if 'list' in d_dados_signatario:
                d_signatario = d_dados_signatario['list']
                if 'request_signature_key' in d_signatario:

                    chave_requisicao_assinatura = d_signatario[
                        'request_signature_key']

                    if (chave_requisicao_assinatura and
                            len(str(chave_requisicao_assinatura).strip()) > 0):
                        tem_chave = True

        if tem_chave:
            retorno = Retorno(True, self, '', 'SignatarioCadastrado')
            retorno.dados = chave_requisicao_assinatura
        else:
            retorno = Retorno(
                False, self,
                'Não foi possível obter o documento do contrato. Os dados retornaram vazios',
                '', 404)

        return retorno
Exemplo n.º 17
0
    def incluir(self, chaves_produtos):
        try:

            retorno_cliente = self.cliente.obter()

            if not retorno_cliente.estado.ok:
                return retorno_cliente

            m_produto = Produto()
            retorno_produtos = m_produto.listar_especificos(chaves_produtos)
            
            if not retorno_produtos.estado.ok:
                return retorno_produtos

            d_dados_pedido = self.gerar_dados_pedido_transacao_gerencia_net(retorno_produtos.dados)

            m_transacao_gerencia_net = TransacaoGerenciaNet()

            retorno_transacao = m_transacao_gerencia_net.incluir(d_dados_pedido)

            if not retorno_transacao.estado.ok:
                return retorno_transacao
            
            self.charge_id = m_transacao_gerencia_net.id            
            self.id_contrato = str(self.cliente.id_cliente_iter).rjust(6, '0') + str(self.charge_id).rjust(10, '0')
            self.cliente = retorno_cliente.dados
            self.calcular_valor_total(retorno_produtos.dados)

            # Inclui na base
            self.save()

            # Atualiza com os produtos
            self.produtos_contratados.add(*retorno_produtos.dados)

            retorno = Retorno(True, 'Seu contrato foi gerado e será efetivado após o pagamento do boleto.')
            retorno.dados = self

            return retorno
        except Exception as e:
            print(traceback.format_exception(None, e, e.__traceback__), file=sys.stderr, flush=True)
                    
            retorno = Retorno(False, 'Falha de comunicação. Em breve será normalizado.')
            return retorno
Exemplo n.º 18
0
    def alterar(self):
        try:
            retorno = Cliente.validar_dados_obrigatorios(self)

            if not retorno.estado.ok:
                return retorno

            # Valida se o cliente já está cadastrado.
            retorno = Cliente.obter(self)

            if not retorno.estado.ok:
                return retorno

            m_cliente = retorno.dados

            if (self.credencial_iter.chave_iter_cli
                    and len(self.credencial_iter.chave_iter_cli) > 0):
                self.id_cliente_iter = m_cliente.id_cliente_iter

                o_cliente_iter = ClienteIter(self)
                # Alteracao na Iter.
                retorno = o_cliente_iter.alterar(self)

                if not retorno.estado.ok:
                    return retorno

                m_cliente.converter_de_cliente_iter(retorno.json())

            m_cliente.id_signatario_contrato = self.id_signatario_contrato
            m_cliente.save()

            retorno = Retorno(True, self, 'Cadastro atualizado com sucesso.',
                              '', 200, None)
            retorno.dados = m_cliente

            return retorno
        except Exception as e:

            retorno = Retorno(False, self,
                              'A atualização dos dados cadastrais falhou.',
                              None, None, e)
            return retorno
Exemplo n.º 19
0
    def listar(self):
        try:
            retorno = Retorno(False, self, 'Nenhum Produto TriSafe está cadastrado.', 'NaoCadastrado', 406)

            # Lista os produtos cadastrados.
            lista_produtos = Produto.objects.all()
            if lista_produtos:
                lista_produtos_json = []
                for m_produto in lista_produtos:
                    lista_produtos_json.append(m_produto)

                retorno = Retorno(True, self)
                retorno.dados = lista_produtos
                
            return retorno
            
        except Exception as e:
                    
            retorno = Retorno(False, self, 'A consulta a produtos Trisafe falhou.', None, None, e)
            return retorno
Exemplo n.º 20
0
    def incluir(self, d_dados_pedido):
        try:
            m_gerencia_net = Gerencianet(credentials)

            d_charge = m_gerencia_net.create_charge(body=d_dados_pedido)
            self.converter_de_gerencia_net(d_charge)

            retorno = Retorno(True)
            retorno.dados = self

            return retorno

        except Exception as e:
            print(traceback.format_exception(None, e, e.__traceback__),
                  file=sys.stderr,
                  flush=True)

            retorno = Retorno(
                False, 'Falha de comunicação. Em breve será normalizado.')
            return retorno
Exemplo n.º 21
0
    def listar_por_cliente(self):
        try:
            retorno = Retorno(False, self,
                              'Nenhum veículo cadastrado para rastreamento.',
                              'NaoCadastrado')

            m_veiculos = Veiculo.objects.filter(cliente__cpf=self.cliente.cpf)

            if m_veiculos:
                retorno = Retorno(True, self)
                retorno.dados = m_veiculos

            return retorno

        except Exception as e:

            retorno = Retorno(False, self,
                              'A consulta aos veículos do cliente falhou.',
                              None, None, e)
            return retorno
Exemplo n.º 22
0
    def __autenticar_clicksign(self):
        self.headers_clicksign = None
        chave_clicksign_cliente = ''
        chave_clicksign_servidor = config('CHAVE_CLICKSIGN')
        token_clicksign = ''

        if (self.credencial_clicksign):
            chave_clicksign_cliente = self.credencial_clicksign.chave_clicksign_cli
            token_clicksign = self.credencial_clicksign.token_clicksign

        # Cria uma credencial completa, com a chave parcial do servidor,
        # pois o atributo "self.credencial_clicksign" vem soh com a chave parcial do cliente.
        self.credencial_clicksign = Credencial(chave_clicksign_cliente,
                                               chave_clicksign_servidor)
        self.credencial_clicksign.token_clicksign = token_clicksign

        retorno = Retorno(True, self)

        if not self.credencial_clicksign.token_clicksign or len(
                self.credencial_clicksign.token_clicksign) <= 0:
            # Le o token criptografado do arquivo e atribui para a credencial.
            arquivo_iter = open('.env_access_clicksign', 'rb')

            token_clicksign = arquivo_iter.read()

            if (token_clicksign):
                self.credencial_clicksign.token_clicksign = token_clicksign

        retorno.dados = self.credencial_clicksign
        token = self.credencial_clicksign.get_token_clicksign()

        self.headers_clicksign = {
            'Accept': 'application/json',
            'Content-Type': 'application/json'
        }

        self.querystring_access_token = '?access_token=%s' % (token)

        self.chave_template_contrato = config('CHAVE_TEMPLATE_CONTRATO_CS')

        self.retorno_autenticacao = retorno
Exemplo n.º 23
0
    def obter(self):
        try:
            retorno = Cliente.validar_dados_obrigatorios_chaves(self)

            if not retorno.estado.ok:
                return retorno

            retorno = Retorno(False, self, 'Cliente não cadastrado',
                              'NaoCadastrado', 406)

            # Valida se o cliente já está cadastrado.
            lista_clientes = Cliente.objects.filter(cpf=self.cpf)
            if lista_clientes:

                m_cliente = lista_clientes[0]

                if m_cliente:
                    self.definir_contexto(m_cliente)
                    retorno = Retorno(True, self)

                    if (self.credencial_iter.chave_iter_cli
                            and len(self.credencial_iter.chave_iter_cli) > 0):
                        o_cliente_iter = ClienteIter(self)
                        # Obtem o cadastro na Iter.
                        retorno = o_cliente_iter.obter(m_cliente)

                        if not retorno.estado.ok:
                            return retorno

                        m_cliente.converter_de_cliente_iter(retorno.json())
                        m_cliente.nome_usuario = m_cliente.nome_usuario

                    retorno.dados = self.definir_contexto(m_cliente)

            return retorno
        except Exception as e:

            retorno = Retorno(False, self,
                              'A consulta dos dados cadastrais falhou.', None,
                              None, e)
            return retorno
Exemplo n.º 24
0
    def listar(self):
        try:
            retorno = Retorno(False, 'Nenhum Produto TriSafe está cadastrado.', 'NaoCadastrado', 406)

            # Lista os produtos cadastrados.
            lista_produtos = Produto.objects.all()
            if lista_produtos:
                lista_produtos_json = []
                for m_produto in lista_produtos:
                    lista_produtos_json.append(m_produto)

                retorno = Retorno(True)
                retorno.dados = lista_produtos
                
            return retorno
            
        except Exception as e:
            print(traceback.format_exception(None, e, e.__traceback__), file=sys.stderr, flush=True)
                    
            retorno = Retorno(False, 'Falha de comunicação. Em breve será normalizado.')
            return retorno
Exemplo n.º 25
0
    def incluir(self):
        try:
            retorno = Cliente.validar_dados_obrigatorios(self)

            if not retorno.estado.ok:
                return retorno

            # Valida se o cliente já está cadastrado.
            retorno = Cliente.obter(self)

            if retorno.estado.codMensagem != 'NaoCadastrado':
                return retorno

            # Inclusao na Iter.
            cIter = ClienteIter()
            retorno = cIter.incluir(self)

            if not retorno.estado.ok:
                return retorno

            d_cliente_iter = retorno.json()
            self.id_cliente_iter = d_cliente_iter['id']

            if not retorno.estado.ok:
                return retorno

            self.save()

            retorno = Retorno(True, 'Cadastro realizado com sucesso.', 200)
            retorno.dados = self

            return retorno
        except Exception as e:
            print(traceback.format_exception(None, e, e.__traceback__),
                  file=sys.stderr,
                  flush=True)

            retorno = Retorno(
                False, 'Falha de comunicação. Em breve será normalizado.')
            return retorno
Exemplo n.º 26
0
    def obter(self):
        try:
            retorno = Produto.validar_dados_obrigatorios_chaves(self)
                
            if not retorno.estado.ok:
                return retorno

            retorno = Retorno(False, self, 'Produto não cadastrado', 'NaoCadastrado', 406)
            
            lista_produtos = Produto.objects.filter(nome=self.nome)
            if lista_produtos:
                m_produto = lista_produtos[0]
                if m_produto:
                    retorno = Retorno(True, self)
                    retorno.dados = m_produto
            
            return retorno

        except Exception as e:
                    
            retorno = Retorno(False, self, 'A consulta a produtos Trisafe falhou.', None, None, e)
            return retorno
Exemplo n.º 27
0
    def incluir(self):
        try:
            retorno = self.validar_dados_obrigatorios()

            if not retorno.estado.ok:
                return retorno

            # Valida se o veiculo já está cadastrado.
            retorno = self.contar_por_chave()

            if not retorno.estado.ok:
                return retorno

            if (retorno.dados > 0):
                return Retorno(
                    False, self,
                    'Já existe um veículo cadastrado com esta placa.')

            # Obtem os dados do cliente para associar.
            retorno_cliente = self.cliente.obter()
            if not retorno_cliente.estado.ok:
                return retorno_cliente

            self.cliente = retorno_cliente.dados
            self.save()

            retorno = Retorno(True, self, 'Cadastro realizado com sucesso.',
                              200)
            retorno.dados = self

            return retorno
        except Exception as e:

            retorno = Retorno(
                False, self,
                'A inclusão dos dados cadastrais do veículo falhou.', None,
                None, e)
            return retorno
Exemplo n.º 28
0
    def incluir(self):
        try:
            retorno = Produto.validar_dados_obrigatorios(self)
            
            if not retorno.estado.ok:
                return retorno

            # Valida se o produto já está cadastrado.
            retorno = Produto.obter(self)

            if retorno.estado.codMensagem != 'NaoCadastrado':
                return retorno

            self.save()
            
            retorno = Retorno(True, self, 'Cadastro realizado com sucesso.', 200)
            retorno.dados = self

            return retorno
        except Exception as e:
                    
            retorno = Retorno(False, self, 'A inclusão de produto Trisafe falhou.', None, None, e)
            return retorno
Exemplo n.º 29
0
    def obter(self):
        try:
            retorno = Produto.validar_dados_obrigatorios_chaves(self)
                
            if not retorno.estado.ok:
                return retorno

            retorno = Retorno(False, 'Produto não cadastrado', 'NaoCadastrado', 406)
            
            lista_produtos = Produto.objects.filter(nome=self.nome)
            if lista_produtos:
                m_produto = lista_produtos[0]
                if m_produto:
                    retorno = Retorno(True)
                    retorno.dados = m_produto
            
            return retorno

        except Exception as e:
            print(traceback.format_exception(None, e, e.__traceback__), file=sys.stderr, flush=True)
                    
            retorno = Retorno(False, 'Falha de comunicação. Em breve será normalizado.')
            return retorno
Exemplo n.º 30
0
    def obter_por_cliente(self):
        try:
            retorno = Retorno(False, self, 'Contrato não localizado.',
                              'NaoCadastrado')

            m_contratos = Contrato.objects.filter(
                cliente__cpf=self.cliente.cpf)

            if m_contratos:
                m_contrato = m_contratos[0]

                if m_contrato:
                    retorno = Retorno(True, self)
                    retorno.dados = self.definir_contexto(m_contrato)
                    self.definir_contexto(m_contrato.cliente)

            return retorno

        except Exception as e:

            retorno = Retorno(False, self, 'A consulta do contrato falhou.',
                              None, None, e)
            return retorno