def Selecionar(self, sequencia_arq_rec_convenio): banco_dados.Conectar() try: variaveis_bind = { 'sequencia_arq_rec_convenio': sequencia_arq_rec_convenio } comando_sql = '''SELECT ARC.CODIGO_DA_FILIAL , ARC.NSU_DA_TRANSACAO FROM MTZ_ARQS_RECEITAS_CONVENIOS ARC WHERE ARC.SEQUENCIA_ARQ_REC_CONVENIO = :sequencia_arq_rec_convenio''' banco_dados.Executar(comando_sql, variaveis_bind) dados_arquivo = banco_dados.BuscarUm() if dados_arquivo != None: self.codigo_filial = dados_arquivo[0] self.nsu_transacao = dados_arquivo[1] status_processamento = banco_dados.ExecutarFuncao( 'PCK_MTZ_ARQS_RECS_CONVENIOS.FNC_PROCESSA_ARQUIVO', 'CHAR', [sequencia_arq_rec_convenio]) banco_dados.Comitar() if status_processamento == 'A': return True else: comando_sql = '''SELECT ARC.LOG_PROCESSAMENTO FROM MTZ_ARQS_RECEITAS_CONVENIOS ARC WHERE ARC.SEQUENCIA_ARQ_REC_CONVENIO = :sequencia_arq_rec_convenio''' banco_dados.Executar(comando_sql, variaveis_bind) dados_arquivo = banco_dados.BuscarUm() raise Exception(str(dados_arquivo[0])) else: return False return True except Exception as e: raise finally: banco_dados.Desconectar()
def Processar(self, validar_codigo_barras=False): if len(self.codigo_barras) != 12 and validar_codigo_barras == True: return False banco_dados.Conectar() try: if validar_codigo_barras == True: variaveis_bind = {'codigo_barras': self.codigo_barras} comando_sql = '''WITH DADOS AS (SELECT /*+ MATERIALIZE */ FNC_COR_DECODE_BASE61(SUBSTR(:codigo_barras, 1, 3)) CODIGO_DA_FILIAL ,FNC_COR_DECODE_BASE61(SUBSTR(:codigo_barras, -9)) NSU_DA_TRANSACAO FROM DUAL) SELECT D.CODIGO_DA_FILIAL ,D.NSU_DA_TRANSACAO FROM DADOS D ,MTZ_VENDAS_DE_CARTAO VC WHERE VC.CODIGO_DA_FILIAL = D.CODIGO_DA_FILIAL AND VC.NSU_DA_TRANSACAO = D.NSU_DA_TRANSACAO''' banco_dados.Executar(comando_sql, variaveis_bind) dados_transacao = banco_dados.BuscarUm() if dados_transacao != None: self.codigo_filial = dados_transacao[0] self.nsu_transacao = dados_transacao[1] else: return False blob_arquivo = open(self.nome_arquivo_pdf, 'rb') thumbnail_arquivo = open(self.nome_arquivo_thumbnail, 'rb') variaveis_bind = { 'blob_arquivo': blob_arquivo, 'nome_arquivo': os.path.basename(self.nome_arquivo_pdf), 'thumbnail_arquivo': thumbnail_arquivo, 'codigo_barras_arquivo': self.codigo_barras, 'codigo_da_filial': self.codigo_filial, 'nsu_da_transacao': self.nsu_transacao, 'sequencia_arq_rec_convenio': None } comando_sql = '''INSERT INTO MTZ_ARQS_RECEITAS_CONVENIOS(BLOB_ARQUIVO ,NOME_ARQUIVO ,MIMETYPE_ARQUIVO ,THUMBNAIL_ARQUIVO ,CODIGO_BARRAS_ARQUIVO ,CODIGO_DA_FILIAL ,NSU_DA_TRANSACAO ,DTHR_RECEBIMENTO) VALUES(:blob_arquivo ,:nome_arquivo ,'application/pdf' ,:thumbnail_arquivo ,SUBSTR(:codigo_barras_arquivo,1,200) ,:codigo_da_filial ,:nsu_da_transacao ,SYSDATE) RETURNING SEQUENCIA_ARQ_REC_CONVENIO INTO :sequencia_arq_rec_convenio''' sequencia_arq_rec_convenio = banco_dados.ExecutarComRetorno( comando_sql, variaveis_bind, 'sequencia_arq_rec_convenio', 'NUMBER') blob_arquivo.close() thumbnail_arquivo.close() del (blob_arquivo) del (thumbnail_arquivo) del (variaveis_bind) status_processamento = banco_dados.ExecutarFuncao( 'PCK_MTZ_ARQS_RECS_CONVENIOS.FNC_PROCESSA_ARQUIVO', 'CHAR', [sequencia_arq_rec_convenio]) banco_dados.Comitar() if status_processamento == 'A': if self.Integrar(sequencia_arq_rec_convenio): self.Conciliar(sequencia_arq_rec_convenio) return True except Exception as e: raise finally: banco_dados.Desconectar()