brunosiena / MigracaoCrediscoop

0 stars 0 forks source link

coisas #6

Open OhBoyItsWorking opened 1 year ago

OhBoyItsWorking commented 1 year ago

coisas

OhBoyItsWorking commented 1 year ago
--gera_tudo.sql
select 'CAD01' + right('000'+cpf,14)
+ right('0000' + cast(CD_POSTO as varchar),4)
+ case tp_funcionario when 'F' then '06' else case fl_pessoa when 'F' then '01' else '04' end end --PULA
+ fl_pessoa
+ left(nm_associado + repeat(' ',80),80)
+ left(nm_associado + repeat(' ',26),26)
+ left(DS_EMAIL  + repeat(' ',150),150)
+ dateformat(isnull(DT_ATUALIZACAO,'1900-01-01'),'YYYYMMDD')
+ 'N' --PULA Restrição serasa
+ 'O'
+ '000000000'
+ '0000'
+ cast(NR_CLASSE_RISCO-1 as varchar)
+ '0'
+ '0'
+ '0'
as out_res from ASSOCIADO
where cpf > 0;
output to 'C:\Users\Usuario\Documents\unload\PifPafcad01.dat' format text;

select 'CAD02' + right('000'+cpf,14)
+ right('0000' + cast(CD_POSTO as varchar),4)
+ fl_estado_civil
+ isnull(FL_REGIME_CASAMENTO,'N')
+ isnull(FL_SEXO,'M')
+ '00' ---????
+ dateformat(isnull(DT_NASCIMENTO,'1900-01-01'),'YYYYMMDD')
+ left(case isnull(DS_NATURALIDADE,'') when '' then 'NÃO INFORMADO' ELSE isnull(DS_NATURALIDADE,'') END + repeat(' ',20),20)
+ case DS_NACIONALIDADE when 'BRASILEIRA' then 'BR' when 'BRASILEIRO' then 'BR' when 'ALEMA' then 'DE' else 'BR' end
+ right(repeat('0',14)+replace(cast(VL_SALARIO as varchar),'.',''),14)
+ right(repeat('0',15)+REGEXP_SUBSTR(NR_IDENTIDADE, '[0-9]*'),15)
+ left(case isnull(DS_ORGAO_EXPEDIDOR,'') when '' then 'NÃO INFORM' ELSE isnull(DS_ORGAO_EXPEDIDOR,'') END + repeat(' ',10),10)
+ dateformat(isnull(DT_EMISSAO_IDENTIDADE,'1900-01-01'),'YYYYMMDD')
+ left(case isnull(NR_CARTEIRA_PROF,'') when '' then 'NÃO INFORMADO' ELSE isnull(NR_CARTEIRA_PROF,'') END + repeat(' ',15),15)
+ '00' --codigo do profissional, anexo 2
+ left(case isnull(SG_UF_ORGAO_EXPEDIDOR,'') when '' then '??' ELSE isnull(SG_UF_ORGAO_EXPEDIDOR,'') END + '  ' , 2)
+ left(case isnull(NM_PAI,'') when '' then 'NÃO INFORMADO' ELSE isnull(NM_PAI,'') END + repeat(' ',65),65)
+ left(case isnull(NM_MAE,'') when '' then 'NÃO INFORMADO' ELSE isnull(NM_MAE,'') END + repeat(' ',65),65)
+ '000000'--+ CD_CBO
+ left(case isnull(NM_CONJUGE,'') when '' then 'NÃO INFORMADO' ELSE isnull(NM_CONJUGE,'') END + repeat(' ',65),65)
+ dateformat(isnull(DT_NASCIMENTO_CONJ,'1900-01-01'),'YYYYMMDD')
+ '000000'--+ CD_CARGO_CONJ
+ right(case when nr_cpf_conjuge = '' then '00000000000' else isnull(nr_cpf_conjuge,'00000000000') end,11)
+ right(repeat('0',12)+REGEXP_SUBSTR(NR_IDENTIDADE_CONJ, '[0-9]*'),12)
+ dateformat(isnull(DT_EMISSAO_IDENTID_CONJ,'1900-01-01'),'YYYYMMDD')
+ left(case isnull(DS_ORGAO_EXPEDIDOR_CONJ,'') when '' then 'NÃO INFORMADO' ELSE isnull(DS_ORGAO_EXPEDIDOR_CONJ,'') END + repeat(' ',100),10)
+ repeat(' ',30) --nome da empresa do conjuge
+ left(case isnull(NM_MAE_CONJ,'') when '' then 'NÃO INFORMADO' ELSE isnull(NM_MAE_CONJ,'') END + repeat(' ',65),65)
+ left(case isnull(NM_PAI_CONJ,'') when '' then 'NÃO INFORMADO' ELSE isnull(NM_PAI_CONJ,'') END + repeat(' ',65),65)
+ repeat(' ',60) --email do conjuge
+ right(repeat('0',14)+replace(cast(VL_SALARIO_CONJ as varchar),'.',''),14)
+ right('00'+cast(CD_GRAU_INSTRUCAO as varchar),2) -- o vitor ta trazendo o de-para
+ '000000000' -- numero da matricula vinculada
+ 'O' -- nao tem, ne?
+ right(repeat('0',14)+replace(cast(VL_PENSAO_ALIMENTICIA as varchar),'.',''),14)
+ '000' --qtde meses profissao
+ '??' --naturalidade.... tem o campo DS_NATURALIDADE mas nao da pra confiar
+ '  ' --left(case isnull(DS_ORGAO_EXPEDIDOR,'') when '' then 'NÃO INFORMADO' ELSE isnull(DS_ORGAO_EXPEDIDOR,'') END + repeat(' ',10),10)
+ '011900' -- nao tem data da renda, tems os campos NR_FAIXA_RENDA e FAIXA_RENDA mas...
+ '5' -- tipo de documento nao tem
+ '0' --campos NR_FAIXA_RENDA ou FAIXA_RENDA mas...
+ '0' -- mod. repres. legal ????
+ '00000000000000' -- valor do patrimonio
as out_res from ASSOCIADO
where fl_pessoa = 'F'
and cpf > 0;
output to 'C:\Users\Usuario\Documents\unload\PifPafcad02.dat' format text;

select 'CAD03' + right(repeat('0',14)+REGEXP_SUBSTR(cpf, '[0-9]*'),14)
+ right('0000' + cast(CD_POSTO as varchar),4)
+ 'O'--ramo?
+ '2143'--cooperativa/ tipo de sociedade
+ dateformat(isnull(DT_NASCIMENTO,'1900-01-01'),'YYYYMMDD') -- data da constituição
+ repeat('0',15)--numero da junta. tem na tab empresa..
+ dateformat(isnull(DT_REGISTRO_JC,'1900-01-01'),'YYYYMMDD') -- data do registro, q acho q nao tem
+ repeat('0',15)--numero do arquivo ???? da junta?
+ dateformat(isnull(null ,'1900-01-01'),'YYYYMMDD') -- data do arquivamento?
+ right(repeat('0',9)+isnull(NR_INSCRICAO_ESTADUAL,''),9)
+ repeat('0',9) --inscricao municipal nao tem
+ right(repeat('0',14)+replace(cast(VL_RENDA_PJ_MENSAL as varchar),'.',''),14)
+ isnull(cast(CD_PORTE as varchar),'1') -- ta null
+ '1' -- tipo de controle, me ajuda nisso
+ repeat('0',9) --nao tem cnae
+ '011900' --nao tem data da renda/faturamento
+ '0000' --numero de filiais
+ 'N' --capital aberto
+ '0002' --qualidade da gestao?
+ 'S' --estrutura operacional
+ 'S' --tributação
+ '000000000' -- numero da matricula vinculada
+ 'O' -- nao tem, ne?
+ 'N' -- conta prefeitura, tbm acho q nao tem
+ 'N' -- Ident. MEI
as out_res from ASSOCIADO
where fl_pessoa = 'J';
output to 'C:\Users\Usuario\Documents\unload\PifPafcad03.dat' format text; */
/*
select 'CAD04' + right('000'+cpf,14)
+ 'O'
+ left(DS_ENDERECO_RES + repeat(' ',60),60)
+ '0000000000' -- Numero endereço
+ left(DS_COMPLEM_RES + repeat(' ',30),30) -- Complemento
+ left(DS_BAIRRO_RES + repeat(' ',30),30) -- bairro
+ left(NR_CEP_RES  + repeat(' ',9),9)
+ '0000000' -- Código Localidade
+ '0000000000'
+ 'N'
es from ASSOCIADO
WHERE cpf > 0;
output to 'C:\Users\Usuario\Documents\unload\PifPafcad04.dat' format text;

select 'CAD05' + right('000'+cpf,14)
+ '1'
+ right(repeat('0',3)+replace(cast(NR_DDD_TEL_RES as varchar),'.',''),3)
+ right(repeat('0',10)+replace(cast(NR_TEL_RES as varchar),'.',''),10) 
+ repeat(' ',40)
+ 'N' -- notificacao de cheque especial
as out_res from ASSOCIADO
where cpf > 0
union all
select 'CAD05' + right('000'+cpf,14)
+ '2'
+ right(repeat('0',3)+replace(cast(NR_DDD_TEL_PRO as varchar),'.',''),3)
+ right(repeat('0',10)+replace(cast(NR_TEL_PRO as varchar),'.',''),10) 
+ repeat(' ',40)
+ 'N' -- notificacao de cheque especial
as out_res from ASSOCIADO
where cpf > 0;
output to 'C:\Users\Usuario\Documents\unload\PifPafcad05.dat' format text;

select 'CAP01' 
+ right('000000000' + cast(a.CD_ASSOCIADO as varchar),09)
+ right('0000' + cast(CD_POSTO as varchar),04)
+ right('00000000000000' + cast(CPF as varchar),14)
+ '000000000'
+ '000000000'
+ '0001'
+ RIGHT('00000000000000' + REPLACE(CAST(REPLACE(VL_LANCAMENTO, '.', '') AS VARCHAR), '.', ''), 14)
+ '00000000000000' -- Valor a integralizar, confirmar com cooperativa
+ 'A' --Situação confirmar com cooperativa e fazer tratamento
+ dateformat(isnull(DT_ADMISSAO_COOP,'1900-01-01'),'YYYYMMDD')
+ dateformat(isnull(a.DT_DEMISSAO,'1900-01-01'),'YYYYMMDD')
+ '00000000' -- data óbito
+ right('000000000' + cast(a.NR_CONTA_CORRENTE as varchar),09)
as out_res
from ASSOCIADO a
inner join (select cd_associado, sum(vl_lancamento) vl_lancamento 
  from capital
 group by cd_associado) c on c.cd_associado = a.cd_associado
where fl_pessoa = 'F'--group by cpf, CD_ASSOCIADO, CD_POSTO, DT_ADMISSAO_COOP, a.DT_DEMISSAO, a.NR_CONTA_CORRENTE
and a.cpf > 0;
output to 'C:\Users\Usuario\Documents\unload\PifPafcap01.dat' format text;

select 'CAP03' + 
+ right('000000000' + cast(a.CD_ASSOCIADO as varchar),09)
+ right('0000' + cast(CD_POSTO as varchar),04)
+ RIGHT('00000000000000' + REPLACE(CAST(REPLACE(VL_LANCAMENTO, '.', '') AS VARCHAR), '.', ''), 14)
as out_res from ASSOCIADO a
inner join (select cd_associado, sum(vl_lancamento) vl_lancamento 
  from LANCAMENTO_CEA
 group by cd_associado) c on c.cd_associado = a.cd_associado
where fl_pessoa = 'F';--group by cpf, CD_ASSOCIADO, CD_POSTO, DT_ADMISSAO_COOP, a.DT_DEMISSAO, a.NR_CONTA_CORRENTE;
output to 'C:\Users\Usuario\Documents\unload\PifPafcap03.dat' format text;

select 'CCO01' + right('00000000000000'+cpf,14)
+ right('0000' + cast(CD_POSTO as varchar),04)
+ right(repeat('0',9)+REGEXP_SUBSTR(cd_associado, '[0-9]*'),9)
+ '0'
+ dateformat(isnull(DT_ADMISSAO_COOP,'1900-01-01'),'YYYYMMDD')
+ '1' --modalidade
+ CASE WHEN DT_DEMISSAO IS NULL THEN '1' ELSE '2' END
+ '0'
+ '00000000'
+ '00000000' -- Data vencimento cheque especial
+ '00000000000000' -- Valor Limite cheque especial
+ '0000000000' -- nr Contrato cheque especial
+ '0000' -- taxa de juros cheque especial
+ 'N' -- Renovação automatica cheque especial
+ '00000000' -- data da ultima Movimentação cheque especial
+ '00000000' -- data adiantamento ao depositante
+ '00000000' -- Data utilização cheque especial
+ '00000000' -- Cliente bancário des de
+ '00000000' -- CET cheque especial
+ 'N' -- tarifa Cheque especial
+ 'S' --Conta Compe Própria
+ '00000000000000' -- Valor saldo Conta
+ '00000000000000' -- Valor Saldo Bloqueado 24 hrs
as out_res from ASSOCIADO
where cpf > 0;
output to 'C:\Users\Usuario\Documents\unload\PifPafcco01.dat' format text;

select 'APL01'
+ right(repeat('0',9)+REGEXP_SUBSTR(a.cd_associado, '[0-9]*'),9)
+ '0001' -- codigo do produto da central
+ right(repeat('0',11)+REGEXP_SUBSTR(NR_movimento, '[0-9]*'),11)
+ right(repeat('0',14)+replace(cast(vl_aplicacao as varchar),'.',''),14)
+ dateformat(isnull(DT_lancamento,'1900-01-01'),'YYYYMMDD')
+ dateformat(isnull(DT_resgate,'1900-01-01'),'YYYYMMDD')
+ dateformat(isnull(null,'1900-01-01'),'YYYYMMDD') --vencimento carencia
+ left(case patindex('%.%',cast(case when tp_indice_correcao_pos = 'C' then tx_indice else tx_juros end as varchar)) when 1 then '000' else '' end
+ replace(cast(case when tp_indice_correcao_pos = 'C' then tx_indice else tx_juros end as varchar),'.',''), 5)
+ left(isnull(cd_if_cetip,'')+repeat(' ',20),20)
+ right(repeat('0',18)+replace(cast(cast(tx_indice as numeric(18,8))as varchar),'.',''),18)
+ dateformat(isnull(DT_movimento,'1900-01-01'),'YYYYMMDD')
+ right(repeat('0',14)+replace(cast(vl_aplicacao as varchar),'.',''),14)
+ right(repeat('0',14)+replace(cast(VL_DESP_APROPRIAR as varchar),'.',''),14)
+ left('00'+replace(cast(tx_juros as varchar),'.',''),6)
+ dateformat(isnull(DT_movimento,'1900-01-01'),'YYYYMMDD')
as opt_file from DEPOSITO_PRAZO c
join associado a on a.cd_associado = c.cd_associado
where c.fl_aplicacao = 'A';
output to 'C:\Users\Usuario\Documents\unload\PifPafapl01.dat' format text;

select 'APL01'--deposito a prazo novo
+ right(repeat('0',9)+REGEXP_SUBSTR(a.cd_associado, '[0-9]*'),9)
+ '0001' -- codigo do produto da central
+ right(repeat('0',11)+REGEXP_SUBSTR(NR_movimento, '[0-9]*'),11)
+ right(repeat('0',14)+replace(cast(vl_aplicacao as varchar),'.',''),14)
+ dateformat(isnull(DT_lancamento,'1900-01-01'),'YYYYMMDD')
+ dateformat(isnull(DT_resgate,'1900-01-01'),'YYYYMMDD')
+ dateformat(isnull(null,'1900-01-01'),'YYYYMMDD') --vencimento carencia
+ left(case patindex('%.%',cast(case when tp_indice_correcao = 'C' then tx_juros else tx_juros end as varchar)) when 1 then '000' else '' end
+ replace(cast(case when tp_indice_correcao = 'C' then tx_juros else tx_juros end as varchar),'.',''), 5)
+ left(isnull(cd_if_cetip,'')+repeat(' ',20),20)
+ right(repeat('0',18)+replace(cast(cast(tx_juros as numeric(18,8))as varchar),'.',''),18)
+ dateformat(isnull(c.DT_LANCAMENTO,'1900-01-01'),'YYYYMMDD')
+ right(repeat('0',14)+replace(cast(vl_aplicacao as varchar),'.',''),14)
+ right(repeat('0',14)+replace(cast('00000000000000' as varchar),'.',''),14)
+ left('00'+replace(cast(tx_juros as varchar),'.',''),6)
+ dateformat(isnull(c.DT_LANCAMENTO,'1900-01-01'),'YYYYMMDD')
as opt_file from AVISO_PREVIO c
join associado a on a.cd_associado = c.cd_associado
where c.vl_saldo_aplicacao > 0;
output to 'C:\Users\Usuario\Documents\unload\PifPafapl01.dat' format text;

select 'EMP01'
+ right(repeat('0',9)+REGEXP_SUBSTR(c.nr_contrato, '[0-9]*'),9)
+ right(repeat('0',9)+REGEXP_SUBSTR(a.cd_associado, '[0-9]*'),9)
+ '0001' --linha do thales
+ dateformat(isnull(c.DT_cadastramento,'1900-01-01'),'YYYYMMDD')
+ right(repeat('0',14)+replace(cast(c.vl_original * -1 as varchar),'.',''),14)
+ right(repeat('0',4)+cast(c.nr_parcelas as varchar),4)
+ dateformat(isnull(c.DT_liberacao,'1900-01-01'),'YYYYMMDD')
+ right(repeat('0',14)+replace(cast(c.vl_original * -1 as varchar),'.',''),14)
+ right(repeat('0',4)+cast(c.nr_parcelas as varchar),4)
+ '00001' --dias de carencia
+ left('00'+case patindex('%.%',cast(c.vl_taxa as varchar)) when 1 then '0' else '' end + replace(cast(c.vl_taxa as varchar),'.',''), 5)
--+ case when l.vl_taxa <> c.vl_taxa then left('00'+case patindex('%.%',cast(l.vl_taxa as varchar)) when 1 then '0' else '' end + replace(cast(l.vl_taxa as varchar),'.',''), 5) else '?????' end
+ case when FL_MORA_CONTRATO = 'N' then '00000' else left(case patindex('%.%',cast(l.TX_MORA as varchar)) when 1 then '0' else '' end + replace(cast(l.TX_MORA as varchar),'.',''), 5) end
+ case fl_seguro when 'S' then 'S' else 'N' end
+ dateformat(isnull(c.DT_termino,'1900-01-01'),'YYYYMMDD')
+ 'M'-- Manual ou automatico
+ 'AA'--c.cd_risco_garantia
+ '00000'--multa por atraso
+ repeat('0',34) --IPOC
+ case when ds_extrato = 'TRANSF CBP MIGR' then 'P' else 'A' end
+ dateformat(isnull(c.dt_ultima_amortizacao,'1900-01-01'),'YYYYMMDD') -- DATA da ultima movimentacao!!!!
+ dateformat(isnull(case when ds_extrato = 'TRANSF CBP MIGR' then e.dt_lancamento else null end,'1900-01-01'),'YYYYMMDD') -- data do prejuízo?
+ right(repeat('0',14)+replace(cast(case when ds_extrato = 'TRANSF CBP MIGR' then e.vl_lancamento else c.vl_saldo_devedor end * -1 as varchar),'.',''),14)
+ 'N'
+ dateformat(isnull(null,'1900-01-01'),'YYYYMMDD') -- parte do jurídico... esse eu nem pesquisei
+ repeat('0',32) --bordero????
+ repeat('0',21) --renegociacao
as teste from CONTRATO_EMPRESTIMO c
join associado a on a.cd_associado = c.cd_associado
join linha_credito l on l.cd_linha_credito = c.cd_linha_credito
left join CREDITO_LIQUIDACAO e on c.cd_associado = e.cd_associado and c.nr_contrato = e.nr_documento 
where c.fl_situacao = 'N' or ds_extrato = 'TRANSF CBP MIGR';
output to 'C:\Users\Usuario\Documents\unload\PifPafemp01.dat' format text;

select 'EMP02'
+ right(repeat('0',9)+REGEXP_SUBSTR(c.nr_contrato, '[0-9]*'),9)
+ dateformat(isnull(c.dt_vencimento,'1900-01-01'),'YYYYMMDD')
+ right('0000'+cast(c.nr_parcela as varchar),4)
+ right(repeat('0',14)+replace(cast(c.vl_prestacao * -1 as varchar),'.',''),14)
+ right(repeat('0',14)+replace(cast(case when e2.ds_extrato = 'TRANSF CBP MIGR' then 0 else (c.vl_prestacao * -1) + c.vl_saldo_devedor end as varchar),'.',''),14)
+ case when (c.vl_prestacao * -1) + c.vl_saldo_devedor <> 0 then 'L' else case when c.dt_vencimento > getdate() then 'A' else 'I' end end
+ '0000000' --percentual do saldo devedor nao precisa
+ right(repeat('0',14)+replace(cast(c.vl_juros * -1 as varchar),'.',''),14)
+ right(repeat('0',14)+replace(cast(c.vl_correcao * -1 as varchar),'.',''),14)
+ dateformat(isnull(c.dt_ultima_amortizacao,'1900-01-01'),'YYYYMMDD')
+ right(repeat('0',14)+replace(cast(c.vl_renda_apropriada * -1 as varchar),'.',''),14)
+ right(repeat('0',14)+replace(cast(c.vl_taxa_seguro * -1 as varchar),'.',''),14)
as teste from PRESTACAO_EMPRESTIMO c
join CONTRATO_EMPRESTIMO e on c.nr_contrato = e.nr_contrato
join associado a on a.cd_associado = c.cd_associado 
left join CREDITO_LIQUIDACAO e2 on c.cd_associado = e2.cd_associado and c.nr_contrato = e2.nr_documento 
where c.fl_situacao = 'N' or e2.ds_extrato = 'TRANSF CBP MIGR';
output to 'C:\Users\Usuario\Documents\unload\PifPafemp02.dat' format text; 
OhBoyItsWorking commented 1 year ago
#trata_arquivos.py
import os
from datetime import datetime

# Diretório onde os arquivos .rvb estão localizados
diretorio = r'C:\Users\Home\Documents\unload'
cnpj = r'03674133000131'
# Dicionário para armazenar o conteúdo de cada prefixo de três letras
conteudo_por_prefixo = {}

# Verifica se o diretório existe
if os.path.exists(diretorio):
    # Percorre todos os arquivos no diretório
    for nome_arquivo in os.listdir(diretorio):
        if nome_arquivo.endswith(".dat"):
            # Obtém o prefixo de três letras
            prefixo = nome_arquivo[:3]

            # Abre o arquivo .rvb
            with open(os.path.join(diretorio, nome_arquivo), 'r') as arquivo:
                # Lê as linhas do arquivo, remove o primeiro e o último caractere e adiciona à lista
                for linha in arquivo:
                    linha = linha.strip()
                    linha = linha[1:-1]

                    # Adiciona a linha ao prefixo correspondente no dicionário
                    if prefixo not in conteudo_por_prefixo:
                        conteudo_por_prefixo[prefixo] = []
                    conteudo_por_prefixo[prefixo].append(linha)

    # Cria um arquivo de saída para cada prefixo de três letras
    for prefixo, conteudo in conteudo_por_prefixo.items():
        arquivo_saida = os.path.join(diretorio+'/output', f'{prefixo.upper()}.txt')
        with open(arquivo_saida, 'w') as saida:
            saida.write("00000"+prefixo+"v106"+cnpj+datetime.now().strftime("%Y%m%d")+"01" + '\n')
            for linha in conteudo:
                saida.write(linha + '\n')
            saida.write('999990000000001' + '\n')
        print(f'Conteúdo de arquivos com prefixo {prefixo} foi escrito em {arquivo_saida}')
else:
    print(f'Diretório {diretorio} não encontrado.')
OhBoyItsWorking commented 11 months ago

update associado set NR_MATRIC_COOP = 767 where cd_associado = 767

OhBoyItsWorking commented 11 months ago
select t.table_name, c.*
from systabcol c
key join systab t on t.table_id=c.table_id
where /*t.table_name='associado' and */c.column_name like '%nr_contrato%'
brunosiena commented 9 months ago
--Na base de 30/11 tive que fazer esse update, pq aparentemente a prodaf não gosta da gente kkkkk

update CONTRATO_EMPRESTIMO set fl_situacao = 'N' where nr_contrato in (select distinct(nr_contrato) from PRESTACAO_EMPRESTIMO where FL_SITUACAO = 'N')