def setConferenciaProtocolo(codigo_acesso, conferencias): # print(conferencias); dados = json.loads(conferencias) if len(dados) == 0: return None comandos = [] for protocolo in dados: observacao = protocolo.get("observacao") if observacao is None: #print("Obversavao vazia") observacao = "NULL" else: observacao = "'" + observacao + "'" #print("Observacao ",observacao) sql_protocolo = """UPDATE scr_nf_protocolo SET data_conferencia = '%s', usuario_conferencia = %i, status = 1, observacao = %s WHERE id_nf_protocolo = %i """ % (protocolo['data_conferencia'], protocolo['id_usuario_conferencia'], observacao, protocolo['id_protocolo_nf'] ) comandos.append(sql_protocolo) for setor in protocolo['setores']: sql_setores = """UPDATE scr_nf_protocolo_setor SET data_conferencia = '%s', id_usuario_conferencia = %i, qtd_conferencia = %i WHERE id_nf_protocolo = %i AND id_setor = %i """ % (protocolo['data_conferencia'], protocolo['id_usuario_conferencia'], setor['qtd_conferencia'], protocolo['id_protocolo_nf'], setor['id_regiao']) comandos.append(sql_setores) sql = ';'.join(comandos) print(sql) try: execute_db(codigo_acesso,'begin') execute_db(codigo_acesso,sql) execute_db(codigo_acesso,'commit;') except: return None return comandos
def set_vuupt_ocorrencias(self, id_acesso, data): sql_ins = """INSERT INTO vuupt_tmp (dados) VALUES ('%s')""" % data.replace( "'", "'") if isOpen('187.72.51.13', '5432'): execute_db(id_acesso, "begin") execute_db(id_acesso, sql_ins) execute_db(id_acesso, "commit")
def insere_clientes(id_db,dados): import json clientes = json.loads(dados) resultado = [] for cliente in clientes: #print('###############################',str(cliente)) cmd = """ BEGIN; SELECT f_insere_cliente('%s'::json) as cliente; COMMIT; """ % (json.dumps(cliente[0])) try: r = execute_db(id_db,cmd) except Exception as e: r = None resultado.append(r) return resultado
def insere_nf(id_db,dados,id_usuario,empresa,filial, id_db_origem,tp_romaneio): import json nfes = json.loads(dados) resultado = [] for nfe in nfes: #print(str(nfe[0])) try: r = execute_db(id_db,'BEGIN') cmd = """ SELECT f_insere_nf_parceiros('%s'::json,%s,'%s','%s') as nf; """ % (json.dumps(nfe[0]),id_usuario,empresa,filial) r = query_db(id_db,cmd) nova_nf = r[0]['nf'] nf_origem = nfe[0]['id_nota_fiscal_imp'] if nf_origem != '0': if tp_romaneio == 1: cmd_conf = """ BEGIN; UPDATE scr_notas_fiscais_imp SET id_nota_fiscal_redespachador = %s WHERE id_nota_fiscal_imp = %s; """ % (str(nova_nf), str(nf_origem)) else: cmd_conf = """ BEGIN; UPDATE scr_conhecimento_notas_fiscais SET id_nota_fiscal_redespachador = %s WHERE id_conhecimento_notas_fiscais = %s; """ % (str(nova_nf), str(nf_origem)) #print('COMANDO EMITIDO',cmd_conf) r = execute_db(id_db_origem,cmd_conf) r = execute_db(id_db_origem,'COMMIT') r = execute_db(id_db,'COMMIT') except Exception as e: r = execute_db(id_db,'ROLLBACK') r = execute_db(id_db_origem,'ROLLBACK') resultado.append(r) return resultado
def setTracking(codigo_acesso, trackings): # print(conferencias); #print(imagens); dados = json.loads(trackings) if len(dados) == 0: return None comandos = [] for i in dados: try: sql_insert = """INSERT INTO tracking_gps ( motorista_cpf, data_localizacao, latitude, longitude ) VALUES ( '%(motorista_cpf)s', '%(data_localizacao)s', %(latitude)f, %(longitude)f ) """ % i comandos.append(sql_insert) except: print(traceback.format_exc()) return None sql = ';'.join(comandos) try: execute_db(codigo_acesso,'begin') execute_db(codigo_acesso,sql) execute_db(codigo_acesso,'commit;') except: print(traceback.format_exc()) return None return 0
def setImagens(codigo_acesso, imagens): # print(conferencias); #print(imagens); dados = json.loads(imagens) if len(dados) == 0: return None comandos = [] for i in dados: try: sql_img = """INSERT INTO scr_imagens_base64 ( nome_imagem, id_documento_app, arquivo ) VALUES ( '%(nome_arquivo)s', %(ocorrencia_documento_id)i, '%(arquivo)s' ) """ % i comandos.append(sql_img) except: return None sql = ';'.join(comandos) try: execute_db(codigo_acesso,'begin') execute_db(codigo_acesso,sql) execute_db(codigo_acesso,'commit;') except: print(traceback.format_exc()) return None return 0
def get_romaneios2(cpf_motorista, data, id_acesso): if id_acesso in (53,73): left_join = """LEFT JOIN scr_notas_fiscais_imp nf ON nf.id_romaneio = r.id_romaneio """ else: left_join = """LEFT JOIN scr_romaneio_nf rnf ON r.id_romaneio = rnf.id_romaneio LEFT JOIN scr_notas_fiscais_imp nf ON nf.id_nota_fiscal_imp = rnf.id_nota_fiscal_imp """ str_sql = """WITH rom AS ( SELECT r.id_romaneio, r.numero_romaneio, to_char(r.data_romaneio,'YYYY-MM-DD HH24:MI:SS') as data_romaneio, data_saida::date as data_expedicao, to_char(r.data_saida,'YYYY-MM-DD HH24:MI:SS') as data_saida, to_char(r.data_chegada, 'YYYY-MM-DD HH24:MI:SS') as data_chegada, r.placa_veiculo, r.id_motorista, mot.cnpj_cpf as motorista_cpf, mot.id_cidade as motorista_id_cidade, r.id_transportador_redespacho, red.cnpj_cpf as redespachador_cpf, red.id_cidade as redespacho_id_cidade, r.id_origem FROM scr_romaneios r LEFT JOIN fornecedores mot ON mot.id_fornecedor = r.id_motorista LEFT JOIN fornecedores red ON red.id_fornecedor = r.id_transportador_redespacho WHERE r.data_saida >= '%s 00:00:00' AND r.data_saida::date <= '%s 23:59:59' AND mot.cnpj_cpf = '%s' AND emitido = 1 ) , documentos AS ( SELECT nf.id_nota_fiscal_imp::integer as numero_parada, nf.id_nota_fiscal_imp, r.id_romaneio, trim(to_char(nf.data_emissao,'YYYY-MM-DD')) as data_emissao, trim(to_char(nf.data_expedicao,'YYYY-MM-DD')) as data_expedicao, trim(nf.serie_nota_fiscal) as serie, trim(nf.numero_nota_fiscal) as numero_nota_fiscal, nf.chave_nfe, nf.valor, nf.peso_presumido as peso, nf.peso_liquido, nf.id_ocorrencia, to_char(nf.data_ocorrencia,'YYYY-MM-DD HH24:MI:SS') as data_ocorrencia, nf.volume_presumido as volume, rem.codigo_cliente as remetente_id, rem.cnpj_cpf::bigint as remetente_cnpj, rem.id_cidade as remetente_id_cidade, dest.codigo_cliente as destinatario_id, dest.cnpj_cpf::bigint as destinatario_cnpj, dest.id_cidade as destinatario_id_cidade, null::integer as id_conhecimento_notas_fiscais, nf.id_conhecimento FROM rom r %s LEFT JOIN cliente rem ON rem.codigo_cliente = nf.remetente_id LEFT JOIN cliente dest ON dest.codigo_cliente = nf.destinatario_id LEFT JOIN cidades cd ON cd.id_cidade = dest.id_cidade WHERE nf.id_nota_fiscal_imp IS NOT NULL UNION SELECT ce.id_conhecimento_entrega as numero_parada, nf.id_nota_fiscal_imp, r.id_romaneio, trim(to_char(nf.data_nota_fiscal,'YYYY-MM-DD')) as data_emissao, trim(to_char(nf.data_nota_fiscal,'YYYY-MM-DD')) as data_expedicao, trim(nf.serie_nota_fiscal) as serie, trim(nf.numero_nota_fiscal) as numero_nota_fiscal, nf.chave_nfe, nf.valor, nf.peso as peso, nf.peso_liquido, nf.id_ocorrencia, to_char(f_data_entrega(nf.data_ocorrencia, nf.hora_ocorrencia),'YYYY-MM-DD HH24:MI:SS') as data_ocorrencia, nf.qtd_volumes as volume, rem.codigo_cliente as remetente_id, rem.cnpj_cpf::bigint as remetente_cnpj, rem.id_cidade as remetente_id_cidade, dest.codigo_cliente as destinatario_id, dest.cnpj_cpf::bigint as destinatario_cnpj, dest.id_cidade as destinatario_id_cidade, nf.id_conhecimento_notas_fiscais, nf.id_conhecimento FROM rom r LEFT JOIN scr_conhecimento_entrega ce ON ce.id_romaneios = r.id_romaneio LEFT JOIN scr_conhecimento c ON c.id_conhecimento = ce.id_conhecimento LEFT JOIN scr_conhecimento_notas_fiscais nf ON c.id_conhecimento = nf.id_conhecimento LEFT JOIN cliente rem ON rem.codigo_cliente = c.remetente_id LEFT JOIN cliente dest ON dest.codigo_cliente = c.destinatario_id LEFT JOIN cidades cd ON cd.id_cidade = dest.id_cidade WHERE nf.id_conhecimento_notas_fiscais IS NOT NULL) , qt_docs as (SELECT count(*) as qt FROM documentos) , cidades2 AS ( SELECT id_cidade, nome_cidade, uf, cod_ibge FROM documentos LEFT JOIN cidades ON cidades.id_cidade = remetente_id_cidade UNION SELECT id_cidade, nome_cidade, uf, cod_ibge FROM documentos LEFT JOIN cidades ON cidades.id_cidade = destinatario_id_cidade UNION SELECT id_cidade, nome_cidade, uf, cod_ibge FROM rom LEFT JOIN cidades ON cidades.id_cidade = rom.motorista_id_cidade UNION SELECT id_cidade, nome_cidade, uf, cod_ibge FROM rom LEFT JOIN cidades ON cidades.id_cidade = rom.redespacho_id_cidade WHERE cidades.id_cidade IS NOT NULL ) , pessoas_1 AS ( WITH t AS ( SELECT trim(nome_cliente) as nome, trim(cnpj_cpf) as cnpj_cpf, CASE WHEN end_complemento IS NOT NULL THEN trim(endereco) || ', ' || trim(end_complemento) ELSE trim(endereco) END as endereco, trim(numero) as numero, trim(cliente.bairro) as bairro, id_cidade, cliente.cep, (cliente.ddd || ' ' || telefone) as telefone, latitude, longitude FROM documentos LEFT JOIN cliente ON cliente.codigo_cliente = documentos.remetente_id UNION SELECT trim(nome_cliente) as nome, trim(cnpj_cpf) as cnpj_cpf, CASE WHEN end_complemento IS NOT NULL THEN trim(endereco) || ', ' || trim(end_complemento) ELSE trim(endereco) END as endereco, trim(numero) as numero, trim(cliente.bairro) as bairro, id_cidade, cliente.cep, (cliente.ddd || ' ' || telefone) as telefone, latitude, longitude FROM documentos LEFT JOIN cliente ON cliente.codigo_cliente = documentos.destinatario_id UNION SELECT trim(nome_razao) as nome, trim(cnpj_cpf) as cnpj_cpf, trim(endereco) as endereco, trim(numero) as numero, trim(fornecedores.bairro) as bairro, id_cidade, fornecedores.cep, (fornecedores.ddd || ' ' || telefone1) as telefone, null::double precision as latitude, null::double precision as longitude FROM rom LEFT JOIN fornecedores ON fornecedores.id_fornecedor = rom.id_motorista UNION SELECT trim(nome_razao) as nome, trim(cnpj_cpf) as cnpj_cpf, trim(endereco) as endereco, trim(numero) as numero, trim(fornecedores.bairro) as bairro, id_cidade, fornecedores.cep, (fornecedores.ddd || ' ' || telefone1) as telefone, null::double precision as latitude, null::double precision as longitude FROM rom LEFT JOIN fornecedores ON fornecedores.id_fornecedor = rom.id_transportador_redespacho WHERE fornecedores.id_fornecedor IS NOT NULL ) SELECT trim(t.nome) as nome, t.cnpj_cpf, t.endereco, t.numero, t.bairro, t.id_cidade, t.cep, t.telefone, t.latitude, t.longitude FROM t ) , cep1 as ( SELECT pessoas_1.cep, cep.latitude, cep.longitude FROM pessoas_1 LEFT JOIN cep ON cep.cep = pessoas_1.cep GROUP BY 1,2,3 ) , pessoas_2 as ( SELECT p.nome, p.cnpj_cpf, p.endereco, p.numero, p.bairro, p.id_cidade, p.cep, p.telefone, COALESCE(p.longitude::text, cep1.longitude::text) as longitude, COALESCE(p.latitude::text, cep1.latitude::text) as latitude, CASE WHEN p.latitude IS NULL THEN 1 ELSE 0 END::integer as verificar FROM pessoas_1 p LEFT JOIN cep1 ON cep1.cep = p.cep ) , veiculos_1 AS ( SELECT placa_veiculo as placa_veiculo, placa_veiculo as descricao FROM rom GROUP BY rom.placa_veiculo ) , pessoas AS ( WITH temp AS ( SELECT (row_to_json(row,true))::json as json FROM ( SELECT * FROM pessoas_2 ) row ) SELECT array_agg(json) as pessoas FROM temp ) , veiculos AS ( WITH temp AS ( SELECT (row_to_json(row,true))::json as json FROM ( SELECT * FROM veiculos_1 ) row ) SELECT array_agg(json) as veiculo FROM temp ) , cidades AS ( WITH temp AS ( SELECT (row_to_json(row,true))::json as json FROM ( SELECT id_cidade, trim(nome_cidade) as nome_cidade, uf, cod_ibge FROM cidades2 ) row ) SELECT array_agg(json) as cidades FROM temp ) , docs AS ( WITH temp AS ( SELECT (row_to_json(row,true))::json as json, id_romaneio FROM ( SELECT * FROM documentos ORDER BY id_romaneio, numero_nota_fiscal ) row ) SELECT id_romaneio, array_agg(json) as lista_docs FROM temp GROUP BY id_romaneio ) , romaneios AS ( WITH temp AS ( SELECT (row_to_json(row,true))::json as json FROM ( SELECT rom.*, docs.lista_docs as documentos FROM rom LEFT JOIN docs ON docs.id_romaneio = rom.id_romaneio ORDER BY rom.id_romaneio ) row ) SELECT array_agg(json) as romaneio FROM temp ) SELECT row_to_json(row, true) as json FROM ( SELECT romaneios.romaneio as romaneios, pessoas.pessoas, cidades.cidades, veiculos.veiculo FROM romaneios, pessoas, cidades, veiculos, qt_docs WHERE qt_docs.qt > 0 ) row;""" % (data, data, cpf_motorista, left_join) r = query_db(id_acesso,str_sql,None,True) #print(str_sql) if r is None: return None try: if r[0]['romaneios'] is None: return None except: return None cidades = {} for c in r[0]['cidades']: cidades[str(c['id_cidade'])] = c['nome_cidade'] + ', ' + c['uf'] for p in r[0]['pessoas']: if p['verificar'] == 1: #Chama rotina que tenta encontrar coordenadas location = util.get_location(p['endereco'], p['bairro'],cidades[str(p['id_cidade'])],p['cep'],p['nome']) #print(location) if location is not None: p['longitude'] = location[0] p['latitude'] = location[1] p['geolocation'] = True str_update = """UPDATE cliente SET longitude = '%s', latitude = '%s' WHERE cnpj_cpf = '%s'""" % (location[0],location[1],p['cnpj_cpf']) ##print(str_update) execute_db(id_acesso,'begin') execute_db(id_acesso,str_update) execute_db(id_acesso,'commit') return r[0]
def setOcorrencias(codigo_acesso, ocorrencias): # print(conferencias); dados = json.loads(ocorrencias) if len(dados) == 0: return None comandos = [] for o in dados: d = { 'id': o['id'], 'id_ocorrencia': o['id_ocorrencia'], 'data_registro': o['data_registro'], 'data_ocorrencia': o['data_ocorrencia'] + " " + o['hora_ocorrencia'] + ':00', 'nome_recebedor': 'NAO INFORMADO' if o.get('nome_recebedor') == '' else o.get('nome_recebedor'), 'documento_recebedor': 'NAO INFORMADO' if o.get('documento_recebedor') == '' else o.get('documento_recebedor'), 'observacao': "NULL" if o.get('observacao') is None else "'" + o.get('observacao') + "'", 'latitude': "NULL" if o.get('latitude') is None else "'" + o.get('latitude') + "'", 'longitude': "NULL" if o.get('longitude') is None else "'" + o.get('longitude') + "'", 'chave_nfe': o['chave_nfe'], 'numero_nota_fiscal': o['numero_nota_fiscal'], 'serie_nota_fiscal': o['serie_nota_fiscal'], 'remetente_cnpj': o['remetente_cnpj'], 'id_nota_fiscal_imp': "NULL" if o.get('id_nota_fiscal_imp') is None else str(o.get('id_nota_fiscal_imp')), 'id_romaneio': "NULL" if o.get('id_romaneio') is None else o.get('id_romaneio'), 'url_imagem': "NULL" if o.get('url_imagem') is None else "'" + o.get('url_imagem') + "'", 'id_conhecimento_notas_fiscais': "NULL" if o.get('id_conhecimento_notas_fiscais') is None else str(o.get('id_conhecimento_notas_fiscais')), 'id_conhecimento': "NULL" if o.get('id_conhecimento') is None else str(o.get('id_conhecimento')) } print(d) sql_ocorrencia = """INSERT INTO edi_ocorrencias_entrega ( servico_integracao, numero_nfe, serie_nfe, cnpj_emitente, chave_nfe, numero_ocorrencia, data_ocorrencia, recebedor, doc_recebedor, id_nota_fiscal_imp, id_romaneio, id_ocorrencia_app, latitude, longitude, observacao, url_imagem, id_conhecimento, id_conhecimento_notas_fiscais ) VALUES ( 2, '%(numero_nota_fiscal)s', '%(serie_nota_fiscal)s', '%(remetente_cnpj)s', '%(chave_nfe)s', %(id_ocorrencia)i, '%(data_ocorrencia)s', '%(nome_recebedor)s', '%(documento_recebedor)s', %(id_nota_fiscal_imp)s, %(id_romaneio)i, %(id)i, %(latitude)s, %(longitude)s, %(observacao)s, %(url_imagem)s, %(id_conhecimento)s, %(id_conhecimento_notas_fiscais)s )""" % (d) comandos.append(sql_ocorrencia) sql = ';'.join(comandos) try: execute_db(codigo_acesso,'begin') execute_db(codigo_acesso,sql) execute_db(codigo_acesso,'commit;') except: print(traceback.format_exc()) return None return comandos
def set(self, codigo_acesso, romaneios): dados = json.loads(romaneios) if len(dados) == 0: return None comandos = [] for romaneio in dados: romaneio['lst_notas'] = ','.join( [str(x) for x in romaneio["notas_fiscais"]]) sql_romaneio = """ INSERT INTO edi_romaneios ( codigo_empresa, codigo_filial, placa_veiculo, id_motorista, data_romaneio, tipo_destino, id_origem, id_destino, id_setor, data_registro, id_usuario, lst_notas ) VALUES ( '001', '001', '%(placa_veiculo)s', %(id_motorista)i, '%(data_romaneio)s', 'D', %(id_origem)i, %(id_destino)i, %(id_setor)i, now(), %(id_usuario)i, '{%(lst_notas)s}' )""" % romaneio comandos.append(sql_romaneio) sql = ";".join(comandos) try: execute_db(codigo_acesso, 'begin') execute_db(codigo_acesso, sql) execute_db(codigo_acesso, 'commit;') except: execute_db(codigo_acesso, 'begin') execute_db(codigo_acesso, sql) execute_db(codigo_acesso, 'commit;') return None return comandos
def boleto_v1(): parser = reqparse.RequestParser() parser.add_argument('id_db',type=int,help='Par�metro Id_db inv�lido.') parser.add_argument('id_remessa',type=int,help='Par�metro id_remessa inv�lido.') parser.add_argument('id_fatura',type=int,help='Par�metro id_boleto inv�lido.') parser.add_argument('e',type=str,help='Par�metro e inv�lido.') parser.add_argument('data_boleto',type=str,help='Par�metro e inv�lido.') args = parser.parse_args() id_db = args['id_db'] id_remessa = args['id_remessa'] id_boleto = args['id_fatura'] e = args['e'] data_boleto = args['data_boleto'] if id_boleto == 0: campo_ref = 'id_remessa' id_ref = id_remessa else: campo_ref = 'id_faturamento' id_ref = id_boleto boleto_atualizado = 0 if request.path == '/cobranca/boleto_atualizado_v1': boleto_atualizado = 1 if data_boleto != 'NULL': data_boleto = "'" + data_boleto + "'" dados = { 'data_boleto':data_boleto, 'boleto_atualizado':boleto_atualizado, 'campo_ref':campo_ref, 'id_ref':id_ref, 'id_remessa':id_remessa } qry_rem = """ SELECT id_remessa, numero_remessa, numero_convenio, cod_empresa, cod_filial, id_carteira, id_carteira_agregada, proximo_nosso_numero_agregado, numero_remessa_agregado, trim(codigo_carteira) as codigo_carteira, trim(numero_conta) as numero_conta, trim(numero_agencia) as numero_agencia, trim(numero_banco) as numero_banco, data_hora_geracao, valor_remessa, banco_emite_boleto, nosso_numero_inicial, gerar_novo_numero, protestar, protestar_apos_dias, juros_perc, multa_perc, observacao, arquivo, acrescimo, tipo_duplicata, layout_remessa, layout_retorno, local_pagamento, left(trim(instrucoes),90) as instrucoes, cnpj_sacador, sacador, trim(initcap(filial.razao_social)) as razao_social, cnpj_cpf(filial.cnpj) as cnpj, trim(initcap(filial.endereco)) as endereco, trim(filial.numero) as numero, trim(initcap(filial.bairro)) as bairro, filial.id_cidade, trim(initcap(cidades.nome_cidade)) as nome_cidade, trim(cidades.uf) as uf, trim(filial.cep) as cep, trim(v_remessa.codigo_cedente) as codigo_cedente FROM v_remessa LEFT JOIN filial ON v_remessa.cod_filial = filial.codigo_filial AND v_remessa.cod_empresa = filial.codigo_empresa LEFT JOIN cidades ON cidades.id_cidade = filial.id_cidade WHERE id_remessa = %i""" % (id_remessa) qry_fatura = """ WITH t AS ( SELECT %(boleto_atualizado)i::integer as ba, %(data_boleto)s::date as data_atualizada ), t1 AS ( SELECT f.id_faturamento, scr_faturamento_remessas.id_remessa, f.numero_fatura, trim(f.numero_boleto) as numero_boleto, trim(initcap(f.fatura_nome)) as fatura_nome, cnpj_cpf(f.fatura_cnpj) as fatura_cnpj, CASE WHEN char_length(trim(f.fatura_cnpj)) = 14 THEN '02' ELSE '01' END::text as tipo_cliente, trim(initcap(f.fatura_endereco)) as fatura_endereco, trim(f.fatura_numero) as fatura_numero, trim(initcap(f.fatura_bairro)) as fatura_bairro, trim(initcap(f.fatura_cidade)) as fatura_cidade, trim(f.fatura_uf) as fatura_uf, trim(f.fatura_cep) as fatura_cep, f.fatura_ie, f.valor_total_ctrc, f.valor_total_servicos, CASE WHEN f.valor_adicional IS NOT NULL THEN (f.valor_fatura + f.valor_adicional) ELSE f.valor_fatura END as valor_fatura, (f.valor_total) as valor_total, (f.perc_desconto) as perc_desconto, (f.desconto) as desconto, f.prazo_desconto, (f.perc_juros) as perc_juros, CASE WHEN f.perc_juros > 0 THEN ' E JUROS DE R$' || replace( ( ( ((f.valor_fatura + COALESCE(f.valor_adicional,0,00)) * f.perc_juros )/100 )/30)::numeric(12,2)::text, '.',',') || ' AO DIA' ELSE '' END::text as msg_juros, ( ( ( ((f.valor_fatura + COALESCE(f.valor_adicional,0,00)) * f.perc_juros )/100 )/30 ) )::numeric(12,2) as valor_juros, CASE WHEN f.perc_multa > 0 THEN 'APOS O VENCIMENTO COBRAR MULTA DE R$' || replace( ( ((f.valor_fatura + COALESCE(f.valor_adicional,0,00)) * f.perc_multa )/100 )::numeric(12,2)::text, '.',',') ELSE '' END::text as msg_multa, CASE WHEN f.perc_multa > 0 THEN ( ((f.valor_fatura + COALESCE(f.valor_adicional,0,00)) * f.perc_multa )/100 )::numeric(12,2) ELSE 0.00 END as valor_multa, f.juros, f.perc_multa, f.multa, COALESCE(f.abatimento,0.00) as abatimento, f.valor_inss, f.tarifa, COALESCE(t.data_atualizada,f.data_vencimento) as data_vencimento, f.data_processamento, to_char(f.data_lim_desconto,'DD/MM/YYYY') as data_lim_desconto, f.protesto, scr_faturamento_remessas.tipo_acao_cobranca, scr_faturamento_remessas.gerar_nosso_numero, scr_faturamento_remessas.status_geracao, scr_faturamento_remessas.id_remessa_fatura, f.prazo_protesto, fp.valor_fatura as valor_fatura_principal, CASE WHEN f.num_parcela IS NULL OR f.tipo_fatura <> 3 THEN '�nica' WHEN f.num_parcela = 0 THEN 'Entrada' WHEN f.num_parcela > 0 THEN lpad(f.num_parcela::text,2,'0') || '-' || lpad(f.qtd_parcelas::text,2,'0') END::text as parcelas, to_char(dia_util(t.data_atualizada, COALESCE(cart.id_cidade::integer,fil.id_cidade::integer)),'DD/MM/YYYY' ) as dt_vencto_atu, dias_atraso( COALESCE(acordo.previsao_pagto,f.data_vencimento), t.data_atualizada, COALESCE(cart.id_cidade::integer,fil.id_cidade::integer) ) as dias_atraso, t.ba FROM t, scr_faturamento_remessas LEFT JOIN scr_faturamento f ON scr_faturamento_remessas.id_faturamento = f.id_faturamento LEFT JOIN scr_faturamento fp ON fp.id_faturamento = f.id_faturamento_principal LEFT JOIN v_carteira cart ON cart.id_carteira = f.id_cobrador LEFT JOIN filial fil ON fil.codigo_empresa = f.codigo_empresa AND f.codigo_filial = fil.codigo_filial LEFT JOIN v_scr_faturamento_dt_acordo acordo ON acordo.id_faturamento = f.id_faturamento WHERE scr_faturamento_remessas.%(campo_ref)s = %(id_ref)i ) SELECT *, CASE WHEN ba = 1 THEN valor_fatura + (valor_juros * dias_atraso) + valor_multa ELSE valor_fatura END::numeric(12,2) as valor_boleto, data_vencimento as vencimento_boleto FROM t1 WHERE id_remessa = %(id_remessa)i ORDER BY numero_fatura """ % dados ##(boleto_atualizado, campo_ref,id_ref, id_remessa) #print(qry_fatura) remessa = query_db(id_db,qry_rem,{},True) faturas = query_db(id_db,qry_fatura) #print("DIAS ATRASO",faturas[0]['dias_atraso']) #print("Valor Multa",faturas[0]['valor_multa']) #print("VALOR JUROS",faturas[0]['valor_juros']) #print("VALOR BOLETO",faturas[0]['valor_boleto']) #if faturas[0]['dias_atraso'] > 0: # return render_template("api_cobranca/baixa_boleto.html") response = get_boleto(faturas,remessa) if response is not None and e != 'None': cmd_log = """INSERT INTO scr_faturamento_log_atividades( id_faturamento, atividade_executada, usuario ) VALUES (%i, LEFT('ACESSO BOLETO (%s)',100),'sistema') """ % (id_boleto,e) rl = execute_db(id_db,'begin') rl = execute_db(id_db,cmd_log) rl = execute_db(id_db,'commit') response.headers['Content-Disposition'] = "attachment; filename=boleto.pdf" response.mimetype = 'application/pdf' return response
def setConferenciaProtocolo(self,codigo_acesso, conferencias): #print(conferencias); #return None dados = json.loads(conferencias) if len(dados) == 0: return None comandos = [] for protocolo in dados: observacao = protocolo.get("observacao") if observacao is None: #print("Obversavao vazia") observacao = "NULL" else: observacao = "'" + observacao + "'" #print("Observacao ",observacao) sql_protocolo = """UPDATE scr_nf_protocolo SET data_conferencia = '%s', usuario_conferencia = %i, status = 1, observacao = %s WHERE id_nf_protocolo = %i """ % (protocolo['data_conferencia'], protocolo['id_usuario_conferencia'], observacao, protocolo['id_protocolo_nf'] ) comandos.append(sql_protocolo) for setor in protocolo['setores']: sql_setores = """UPDATE scr_nf_protocolo_setor SET data_conferencia = '%s', id_usuario_conferencia = %i, qtd_conferencia = %i WHERE id_nf_protocolo = %i AND id_setor = %i """ % (protocolo['data_conferencia'], protocolo['id_usuario_conferencia'], setor['qtd_conferencia'], protocolo['id_protocolo_nf'], setor['id_regiao']) comandos.append(sql_setores) if protocolo.get('notas_fiscais') is not None: for nf in protocolo['notas_fiscais']: obs_nf = nf.get('observacao') if obs_nf is None: continue sql_nf = """UPDATE scr_notas_fiscais_imp SET id_ocorrencia = %i, obs_ocorrencia = '%s', data_ocorrencia = '%s' WHERE id_nota_fiscal_imp = %i """ % (nf['id_ocorrencia'], obs_nf, protocolo['data_conferencia'], nf['id_nota_fiscal_imp']) comandos.append(sql_nf) anexos = nf.get('anexos') if anexos is None: continue for anexo in anexos: sql_anexo = """ INSERT INTO scr_notas_fiscais_imp_anexos ( id_nota_fiscal_imp, tipo_anexo, data_anexo, usuario_anexo, descricao_anexo, conteudo_anexo, nome_anexo ) VALUES ( %i, 1, '%s', '%s', 'CONFERENCIA VOLUMES', '%s', '%s' )""" % ( nf['id_nota_fiscal_imp'], protocolo['data_conferencia'], protocolo['usuario_conferencia'], anexo['arquivo'], anexo['nome_arquivo'] ) comandos.append(sql_anexo) sql = ';'.join(comandos) print(sql) try: execute_db(codigo_acesso,'begin') execute_db(codigo_acesso,sql) execute_db(codigo_acesso,'commit;') except: return None return comandos