def iniciar_envio(params_exec, dados, metodo, *args, **kwargs): print('- Iniciando envio dos dados.') lista_controle_migracao = [] hoje = datetime.now().strftime("%Y-%m-%d") token = params_exec['token'] total_dados = len(dados) contador = 0 total_erros = 0 for item in dados: lista_dados_enviar = [] lista_controle_migracao = [] contador += 1 print(f'\r- Enviando registros: {contador}/{total_dados}', '\n' if contador == total_dados else '', end='') hash_chaves = model.gerar_hash_chaves(sistema, tipo_registro, item['clicodigo'], item['ano_processo'], item['nro_processo'], item['nro_documento']) url_parametrizada = url.replace('{exercicio}', str(item['ano_processo']))\ .replace('{processoAdministrativoId}', str(item['id_processo'])) dict_dados = { 'idIntegracao': hash_chaves, 'url': url_parametrizada, 'processoAdm': { 'id': item['id_processo'] }, 'tipoDocumento': { 'id': item['id_tipo_documento'] } } # print(f'Dados gerados ({contador}): ', dict_dados) lista_dados_enviar.append(dict_dados) lista_controle_migracao.append({ 'sistema': sistema, 'tipo_registro': tipo_registro, 'hash_chave_dsk': hash_chaves, 'descricao_tipo_registro': 'Cadastro de Documentos do Processo', 'id_gerado': None, 'json': json.dumps(dict_dados), 'i_chave_dsk1': item['clicodigo'], 'i_chave_dsk2': item['ano_processo'], 'i_chave_dsk3': item['nro_processo'], 'i_chave_dsk4': item['nro_documento'] }) if True: model.insere_tabela_controle_migracao_registro(params_exec, lista_req=lista_controle_migracao) req_res = interacao_cloud\ .preparar_requisicao_sem_lote( lista_dados=lista_dados_enviar, token=token, url=url, tipo_registro=tipo_registro) model.atualiza_tabelas_controle_envio_sem_lote(params_exec, req_res, tipo_registro=tipo_registro) if req_res[0]['mensagem'] is not None: total_erros += 1 # break if total_erros > 0: print(f'- Envio finalizado. Foram encontrados um total de {total_erros} inconsistência(s) de envio.') else: print('- Envio de dados finalizado sem inconsistências.')
def iniciar_envio(params_exec, dados, metodo, *args, **kwargs): print('- Iniciando envio dos dados.') lista_controle_migracao = [] hoje = datetime.now().strftime("%Y-%m-%d") token = params_exec['token'] total_dados = len(dados) contador = 0 total_erros = 0 for item in dados: lista_dados_enviar = [] lista_controle_migracao = [] contador += 1 print(f'\r- Enviando registros: {contador}/{total_dados}', '\n' if contador == total_dados else '', end='') hash_chaves = model.gerar_hash_chaves(sistema, tipo_registro, item['clitipoentidade']) dict_dados = { 'idIntegracao': hash_chaves, 'descricao': item['descricao'], 'tipoAdministracao': { 'valor': item['tipo_administracao'] }, 'poder': { 'valor': item['poder'] } } # print(f'Dados gerados ({contador}): ', dict_dados) lista_dados_enviar.append(dict_dados) lista_controle_migracao.append({ 'sistema': sistema, 'tipo_registro': tipo_registro, 'hash_chave_dsk': hash_chaves, 'descricao_tipo_registro': 'Cadastro de Tipos de Administração', 'id_gerado': None, 'json': json.dumps(dict_dados), 'i_chave_dsk1': item['clitipoentidade'] }) if True: model.insere_tabela_controle_migracao_registro( params_exec, lista_req=lista_controle_migracao) req_res = interacao_cloud\ .preparar_requisicao_sem_lote( lista_dados=lista_dados_enviar, token=token, url=url, tipo_registro=tipo_registro) model.atualiza_tabelas_controle_envio_sem_lote( params_exec, req_res, tipo_registro=tipo_registro) if req_res[0]['mensagem'] is not None: total_erros += 1 if total_erros > 0: print( f'- Envio finalizado. Foram encontrados um total de {total_erros} inconsistência(s) de envio.' ) else: print('- Envio de dados finalizado sem inconsistências.')
def iniciar_envio(params_exec, dados, metodo, *args, **kwargs): print('- Iniciando processo de transformação.') dh_inicio = datetime.now() lista_dados_enviar = [] lista_controle_migracao = [] hoje = datetime.now().strftime("%Y-%m-%d") token = params_exec['token'] total_dados = len(dados) contador = 0 for item in dados: contador += 1 # print(f'Gerando JSON: {contador}/{total_dados}', '\n' if contador == total_dados else '', end='') hash_chaves = model.gerar_hash_chaves(sistema, tipo_registro, item['id_entidade'], item['codigo']) dict_dados = { 'idIntegracao': hash_chaves, 'conteudo': { 'descricao': item['descricao'], 'tipo': item['tipo'], 'categoriaTrabalhador': { 'id': item['categoriatrabalhador'] }, 'sefip': item['sefip'], 'geraRais': item['gerarais'], 'vinculoTemporario': item['vinculotemporario'], 'geraCaged': item['geracaged'], 'geraLicencaPremio': item['geralicencapremio'], 'dataFinalObrigatoria': item['datafinalobrigatoria'] } } if 'rais' in item and item['rais'] is not None: dict_dados['conteudo'].update({'rais': item['rais']}) if 'motivorescisao' in item and item['motivorescisao'] is not None: dict_dados['conteudo'].update( {'motivoRescisao': { 'id': int(item['motivorescisao']) }}) print(f'Dados gerados ({contador}): ', dict_dados) lista_dados_enviar.append(dict_dados) lista_controle_migracao.append({ 'sistema': sistema, 'tipo_registro': tipo_registro, 'hash_chave_dsk': hash_chaves, 'descricao_tipo_registro': 'Cadastro de Vínculo Empregatício', 'id_gerado': None, 'i_chave_dsk1': item['id_entidade'], 'i_chave_dsk2': item['codigo'] }) # print(f'- Processo de transformação finalizado. ({(datetime.now() - dh_inicio).total_seconds()} segundos)') if True: model.insere_tabela_controle_migracao_registro( params_exec, lista_req=lista_controle_migracao) req_res = interacao_cloud.preparar_requisicao( lista_dados=lista_dados_enviar, token=token, url=url, tipo_registro=tipo_registro, tamanho_lote=limite_lote) model.insere_tabela_controle_lote(req_res)
def busca_dados_cloud(params_exec, dados_base): print('- Iniciando busca de dados no cloud.') url_fonte_dados = 'https://compras.betha.cloud/compras/dados/api/unidadesmedida' campos = 'id, nome, simbolo' contador = 0 registros_inseridos = 0 lista_dados = dados_base.to_dict('records') total_dados = len(lista_dados) for item in lista_dados: contador += 1 print(f'\r- Verificando registros: {contador}/{total_dados}', '\n' if contador == total_dados else '', end='') criterio = f'nome = \'{item["descricao"]}\' or simbolo = \'{item["simbolo"]}\'' registro_cloud = interacao_cloud.busca_api_fonte_dados( params_exec, url=url_fonte_dados, campos=campos, criterio=criterio) if registro_cloud is not None and len(registro_cloud) > 0: hash_chaves = model.gerar_hash_chaves(sistema, tipo_registro, item["cnicodigo"]) registro_encontrado = { 'sistema': sistema, 'tipo_registro': tipo_registro, 'hash_chave_dsk': hash_chaves, 'descricao_tipo_registro': 'Cadastro de Unidades de Medida', 'id_gerado': registro_cloud[0]['id'], 'i_chave_dsk1': item["cnicodigo"] } model.insere_tabela_controle_migracao_registro( params_exec, lista_req=[registro_encontrado]) registros_inseridos += 1 print( f'- Foram inseridos {registros_inseridos} registros na tabela de controle.' )
def busca_dados_cloud(params_exec): print('- Iniciando busca de dados no cloud.') registros = interacao_cloud.busca_dados_cloud(params_exec, url=url) print( f'- Foram encontrados {len(registros)} registros cadastrados no cloud.' ) registros_formatados = [] try: for item in registros: hash_chaves = model.gerar_hash_chaves(sistema, tipo_registro, item['descricao']) registros_formatados.append({ 'sistema': sistema, 'tipo_registro': tipo_registro, 'hash_chave_dsk': hash_chaves, 'descricao_tipo_registro': 'Cadastro de Agências Bancárias', 'id_gerado': item['id'], 'i_chave_dsk1': item['descricao'] }) model.insere_tabela_controle_migracao_registro2( params_exec, lista_req=registros_formatados) print( f'- Busca de {tipo_registro} finalizada. Tabelas de controles atualizas com sucesso.' ) except Exception as error: print(f'Erro ao executar função "busca_dados_cloud". {error}')
def busca_dados_cloud(params_exec): print('- Iniciando busca de dados no cloud.') registros = interacao_cloud.busca_dados_cloud(params_exec, url=url) print(f'- Busca de pessoas finalizada, iniciando verificação dos dados obtidos.') registros_formatados = [] total_contas = 0 try: for item in registros: if 'contasBancarias' in item and item['contasBancarias'] is not None: cpf_pessoa = item['cpf'] for item_conta in item['contasBancarias']: hash_chaves = model.gerar_hash_chaves(sistema, tipo_registro, cpf_pessoa, item_conta['numero']) novo_registro = { 'sistema': sistema, 'tipo_registro': tipo_registro, 'hash_chave_dsk': hash_chaves, 'descricao_tipo_registro': 'Cadastro de Contas Bancarias de Pessoas Físicas', 'id_gerado': item_conta['id'], 'i_chave_dsk1': cpf_pessoa, 'i_chave_dsk2': item_conta['numero'], } registros_formatados.append(novo_registro) total_contas += 1 model.insere_tabela_controle_migracao_registro(params_exec, lista_req=registros_formatados) print(f'- Busca de {tipo_registro} finalizada. Foram executas {total_contas} contas. ' f'Tabelas de controles atualizas com sucesso.') except Exception as error: print(f'Erro ao executar função "busca_dados_cloud". {error}')
def iniciar_envio(params_exec, dados, metodo, *args, **kwargs): print('- Iniciando envio dos dados.') lista_dados_enviar = [] lista_controle_migracao = [] hoje = datetime.now().strftime("%Y-%m-%d") token = params_exec['token'] contador = 0 for item in dados: hash_chaves = model.gerar_hash_chaves(sistema, tipo_registro, item['descricao'].upper()) dict_dados = { 'idIntegracao': hash_chaves, 'conteudo': { 'descricao': None if 'descricao' not in item else item['descricao'], 'abreviatura': item['abreviatura'] } } contador += 1 # print(f'Dados gerados ({contador}): ', dict_dados) lista_dados_enviar.append(dict_dados) lista_controle_migracao.append({ 'sistema': sistema, 'tipo_registro': tipo_registro, 'hash_chave_dsk': hash_chaves, 'descricao_tipo_registro': 'Cadastro de Tipo de Logradouro', 'id_gerado': None, 'i_chave_dsk1': item['descricao'].upper(), }) model.insere_tabela_controle_migracao_registro2(params_exec, lista_req=lista_controle_migracao) req_res = interacao_cloud.preparar_requisicao(lista_dados=lista_dados_enviar, token=token, url=url, tipo_registro=tipo_registro, tamanho_lote=limite_lote) model.insere_tabela_controle_lote(req_res) print('- Envio de dados finalizado.')
def busca_dados_cloud(params_exec): print('- Iniciando busca de dados no cloud.') campos = 'id,responsavel(pessoa(cpfCnpj)),comissaoLicitacao(id),atribuicao' registro_cloud = interacao_cloud.busca_api_fonte_dados(params_exec, url=url, campos=campos) contador = 0 dados = [] for item in registro_cloud: hash_chaves = model.gerar_hash_chaves( sistema, tipo_registro, item['comissaoLicitacao']['id'], item['responsavel']['pessoa']['cpfCnpj'], item['atribuicao']) registro_encontrado = { 'sistema': sistema, 'tipo_registro': tipo_registro, 'hash_chave_dsk': hash_chaves, 'descricao_tipo_registro': 'Cadastro de Especificação de Material', 'id_gerado': item['id'], 'i_chave_dsk1': item['comissaoLicitacao']['id'], 'i_chave_dsk2': item['responsavel']['pessoa']['cpfCnpj'], 'i_chave_dsk3': item['atribuicao'] } # print('registro_encontrado', registro_encontrado) dados.append(registro_encontrado) contador += 1 print(f'Busca de dados finalizada. Foram encotrados {contador} registros.') model.insere_tabela_controle_migracao_registro(params_exec, lista_req=dados) print(f'Tabelas de controle atualizadas com sucesso.')
def busca_dados_cloud(params_exec): print('- Iniciando busca de dados no cloud.') registros = interacao_cloud.busca_dados_cloud(params_exec, url=url) print( f'- Foram encontrados {len(registros)} registros cadastrados no cloud.' ) registros_formatados = [] try: for item in registros: codigotexto = str.replace(item['numeroBanco'], '-', '') if not re.search("[a-zA-Z]", codigotexto): codigo = str(int(codigotexto)) hash_chaves = model.gerar_hash_chaves(sistema, tipo_registro, codigo) registros_formatados.append({ 'sistema': sistema, 'tipo_registro': tipo_registro, 'hash_chave_dsk': hash_chaves, 'descricao_tipo_registro': 'Cadastro de Banco', 'id_gerado': item['id'], 'i_chave_dsk1': codigo }) model.insere_tabela_controle_migracao_registro( params_exec, lista_req=registros_formatados) print( f'- Busca de {tipo_registro} finalizada. Tabelas de controles atualizas com sucesso.' ) except Exception as error: print(f'Erro ao executar função "busca_dados_cloud". {error}')
def busca_dados_cloud(params_exec, dados_assunto): print('- Iniciando busca de dados no cloud.') registros = interacao_cloud.busca_dados_cloud(params_exec, url=url) registros_formatados = [] print( f'- Foram encontrados {len(registros)} registros cadastrados no cloud.' ) try: for item in registros: df_matches = dados_assunto.loc[dados_assunto['tctdescricao'].values == item['descricao']] if not df_matches.empty: chave_dsk1 = str(df_matches['tctcodigo'].values[0]) hash_chaves = model.gerar_hash_chaves(sistema, tipo_registro, chave_dsk1) novo_registro = { 'sistema': sistema, 'tipo_registro': tipo_registro, 'hash_chave_dsk': hash_chaves, 'descricao_tipo_registro': 'Cadastro de Tipos de Ato', 'id_gerado': item['id'], 'i_chave_dsk1': chave_dsk1 } registros_formatados.append(novo_registro) # print('novo_registro', item['descricao'], novo_registro) model.insere_tabela_controle_migracao_registro( params_exec, lista_req=registros_formatados) except Exception as error: print(f'Erro ao executar função "busca_dados_cloud". {error}')
def iniciar_envio(params_exec, dados, metodo, *args, **kwargs): print('- Iniciando processo de transformação.') dh_inicio = datetime.now() lista_dados_enviar = [] lista_controle_migracao = [] hoje = datetime.now().strftime("%Y-%m-%d") token = params_exec['token'] total_dados = len(dados) contador = 0 for item in dados: contador += 1 # print(f'\r- Gerando JSON: {contador}/{total_dados}', '\n' if contador == total_dados else '', end='') hash_chaves = model.gerar_hash_chaves(sistema, tipo_registro, item['chave_dsk1'], item['chave_dsk2']) dict_dados = { 'idIntegracao': hash_chaves, 'conteudo': { 'nivel': item['nivel'], 'descricao': item['descricao'], 'numero': item['numero'], 'inicioVigencia': item['inicio_vigencia'], 'configuracao': { 'id': item['configuracao'] } } } print(f'Dados gerados ({contador}): ', dict_dados) lista_dados_enviar.append(dict_dados) lista_controle_migracao.append({ 'sistema': sistema, 'tipo_registro': tipo_registro, 'hash_chave_dsk': hash_chaves, 'descricao_tipo_registro': 'Cadastro de Lotação Física', 'id_gerado': None, 'i_chave_dsk1': item['chave_dsk1'], 'i_chave_dsk2': item['chave_dsk2'] }) print( f'- Processo de transformação finalizado. ({(datetime.now() - dh_inicio).total_seconds()} segundos)' ) if True: # Insere os registros coletados na tabela de controle model.insere_tabela_controle_migracao_registro( params_exec, lista_req=lista_controle_migracao) # Inicia o procedimento de envio para o cloud req_res = interacao_cloud.preparar_requisicao( lista_dados=lista_dados_enviar, token=token, url=url, tipo_registro=tipo_registro, tamanho_lote=300) # Insere lote na tabela de controle model.insere_tabela_controle_lote(req_res)
def iniciar_envio(params_exec, dados, metodo, *args, **kwargs): print('- Iniciando envio dos dados.') lista_dados_enviar = [] lista_controle_migracao = [] hoje = datetime.now().strftime("%Y-%m-%d") token = params_exec['token'] contador = 0 for item in dados: hash_chaves = model.gerar_hash_chaves(sistema, tipo_registro, item['codigo']) dict_dados = { 'idIntegracao': hash_chaves, 'conteudo': { 'descricao': None if 'descricao' not in item else item['descricao'], 'emUso': None if 'emuso' not in item else item['emuso'], } } if item['niveis'] is not None: dict_dados['conteudo'].update({'niveis': []}) lista = item['niveis'].split('%||%') for listacampo in lista: campo = listacampo.split('%|%') dict_dados['conteudo']['niveis'].append({ 'nivel': campo[0], 'descricao': campo[1], 'quantidadeDigitos': campo[2], 'separador': campo[3], 'responsavelControleVagas': campo[4] }) contador += 1 # print(f'Dados gerados ({contador}): ', dict_dados) lista_dados_enviar.append(dict_dados) lista_controle_migracao.append({ 'sistema': sistema, 'tipo_registro': tipo_registro, 'hash_chave_dsk': hash_chaves, 'descricao_tipo_registro': 'Cadastro de Configuracao de Organograma', 'id_gerado': None, 'i_chave_dsk1': item['codigo'] }) model.insere_tabela_controle_migracao_registro2( params_exec, lista_req=lista_controle_migracao) req_res = interacao_cloud.preparar_requisicao( lista_dados=lista_dados_enviar, token=token, url=url, tipo_registro=tipo_registro, tamanho_lote=limite_lote) model.insere_tabela_controle_lote(req_res) print('- Envio de dados finalizado.')
def iniciar_envio(params_exec, dados, metodo, *args, **kwargs): print('- Iniciando envio dos dados.') lista_dados_enviar = [] lista_controle_migracao = [] hoje = datetime.now().strftime("%Y-%m-%d") token = params_exec['token'] contador = 0 for item in dados: hash_chaves = model.gerar_hash_chaves(sistema, tipo_registro, item['id_entidade'], item['codigo']) dict_dados = { 'idIntegracao': hash_chaves, 'conteudo': { 'codigo': None if 'codigo' not in item else item['codigo'], 'descricao': None if 'descricao' not in item else item['descricao'], 'inicioVigencia': None if 'iniciovigencia' not in item else item['iniciovigencia'], 'tipo': None if 'tipo' not in item else item['tipo'], 'classificacao': None if 'classificacao' not in item else item['classificacao'], 'classificacaoBaixaProvisao': None if 'classificacaobaixaprovisao' not in item else item['classificacaobaixaprovisao'], 'unidade': None if 'unidade' not in item else item['unidade'], 'taxa': None if 'taxa' not in item else item['taxa'], 'codigoEsocial': None if 'codigoesocial' not in item else item['codigoesocial'], 'incideDsr': None if 'incidedsr' not in item else item['incidedsr'], 'naturezaRubrica': None if 'naturezarubrica' not in item else item['naturezarubrica'], 'compoemHorasMes': None if 'compoemhorasmes' not in item else item['compoemhorasmes'], 'observacao': None if 'observacao' not in item else item['observacao'], 'desabilitado': None if 'desabilitado' not in item else item['desabilitado'], 'formula': None if 'formula' not in item else item['formula'], 'enviaTransparencia': None if 'enviatransparencia' not in item else item['enviatransparencia'], 'configuracaoProcessamentos': None if 'configuracaoprocessamentos' not in item else item['configuracaoprocessamentos'], } } if 'ato' in item and item['ato'] is not None: dict_dados['conteudo'].update({ 'ato': { 'id': int(item['ato']) }}) contador += 1 print(f'Dados gerados ({contador}): ', dict_dados) lista_dados_enviar.append(dict_dados) lista_controle_migracao.append({ 'sistema': sistema, 'tipo_registro': tipo_registro, 'hash_chave_dsk': hash_chaves, 'descricao_tipo_registro': 'Cadastro de Evento', 'id_gerado': None, 'i_chave_dsk1': item['id_entidade'], 'i_chave_dsk2': item['codigo'] }) if True: model.insere_tabela_controle_migracao_registro2(params_exec, lista_req=lista_controle_migracao) req_res = interacao_cloud.preparar_requisicao(lista_dados=lista_dados_enviar, token=token, url=url, tipo_registro=tipo_registro, tamanho_lote=limite_lote) model.insere_tabela_controle_lote(req_res) print('- Envio de dados finalizado.')
def iniciar_envio(params_exec, dados, metodo, *args, **kwargs): print('- Iniciando processo de transformação.') dh_inicio = datetime.now() lista_dados_enviar = [] lista_controle_migracao = [] hoje = datetime.now().strftime("%Y-%m-%d") token = params_exec['token'] total_dados = len(dados) contador = 0 for item in dados: contador += 1 print(f'\r- Gerando JSON: {contador}/{total_dados}', '\n' if contador == total_dados else '', end='') hash_chaves = model.gerar_hash_chaves(sistema, tipo_registro, item['entidade'], item['matricula'], item['configuracao'], item['tipoprocessamento'], item['subtipoprocessamento'], item['datainicial'], item['datafinal']) dict_dados = { 'idIntegracao': hash_chaves, 'conteudo': { 'configuracao': { 'id': item['configuracao'] }, 'matricula': { 'id': item['matricula'] }, 'tipoProcessamento': item['tipoprocessamento'], 'subTipoProcessamento': item['subtipoprocessamento'], 'dataInicial': item['datainicial'], 'dataFinal': item['datafinal'], 'valor': item['valor'], 'observacao': item['observacao'] } } print(f'Dados gerados ({contador}): ', dict_dados) lista_dados_enviar.append(dict_dados) lista_controle_migracao.append({ 'sistema': sistema, 'tipo_registro': tipo_registro, 'hash_chave_dsk': hash_chaves, 'descricao_tipo_registro': 'Cadastro do Lancamento de Evento', 'id_gerado': None, 'json': json.dumps(dict_dados), 'i_chave_dsk1': item['entidade'], 'i_chave_dsk2': item['matricula'], 'i_chave_dsk3': item['configuracao'], 'i_chave_dsk4': item['tipoprocessamento'], 'i_chave_dsk5': item['subtipoprocessamento'], 'i_chave_dsk6': item['datainicial'], 'i_chave_dsk7': item['datafinal'] }) print(f'- Processo de transformação finalizado. ({(datetime.now() - dh_inicio).total_seconds()} segundos)') if True: model.insere_tabela_controle_migracao_registro(params_exec, lista_req=lista_controle_migracao) req_res = interacao_cloud.preparar_requisicao(lista_dados=lista_dados_enviar, token=token, url=url, tipo_registro=tipo_registro, tamanho_lote=limite_lote) model.insere_tabela_controle_lote(req_res)
def iniciar_envio(params_exec, dados, metodo, *args, **kwargs): print('- Iniciando envio dos dados.') lista_dados_enviar = [] lista_controle_migracao = [] hoje = datetime.now().strftime("%Y-%m-%d") token = params_exec['token'] contador = 0 for item in dados: hash_chaves = model.gerar_hash_chaves(sistema, tipo_registro, item['numero'], item['banco']) dict_dados = { 'idIntegracao': hash_chaves, 'conteudo': { "banco": { "id": int(item['banco']) }, "nome": item['nome'], "numero": item['numero'], "digito": item['digito'] } } if 'bairro' in item and item['bairro'] is not None: dict_dados['conteudo'].update({'bairro': {'id': item['bairro']}}) if 'logradouro' in item and item['logradouro'] is not None: dict_dados['conteudo'].update( {'logradouro': { 'id': item['logradouro'] }}) if 'cep' in item and item['cep'] is not None: dict_dados['conteudo'].update({'cep': item['cep']}) if 'numeroendereco' in item and item['numeroendereco'] is not None: dict_dados['conteudo'].update( {'numeroEndereco': item['numeroendereco']}) contador += 1 # print(f'Dados gerados ({contador}): ', dict_dados) lista_dados_enviar.append(dict_dados) lista_controle_migracao.append({ 'sistema': sistema, 'tipo_registro': tipo_registro, 'hash_chave_dsk': hash_chaves, 'descricao_tipo_registro': 'Cadastro de Agência Bancária', 'id_gerado': None, 'i_chave_dsk1': item['numero'], 'i_chave_dsk2': item['banco'], }) if True: model.insere_tabela_controle_migracao_registro( params_exec, lista_req=lista_controle_migracao) req_res = interacao_cloud.preparar_requisicao( lista_dados=lista_dados_enviar, token=token, url=url, tipo_registro=tipo_registro, tamanho_lote=limite_lote) model.insere_tabela_controle_lote(req_res) print('- Envio de dados finalizado.')
def iniciar_envio(params_exec, dados, metodo, *args, **kwargs): print('- Iniciando processo de transformação.') dh_inicio = datetime.now() lista_dados_enviar = [] lista_controle_migracao = [] hoje = datetime.now().strftime("%Y-%m-%d") token = params_exec['token'] total_dados = len(dados) contador = 0 for item in dados: contador += 1 print(f'\r- Gerando JSON: {contador}/{total_dados}', '\n' if contador == total_dados else '', end='') hash_chaves = model.gerar_hash_chaves(sistema, tipo_registro, item['numerooficial'], item['tipo']) dict_dados = { 'idIntegracao': hash_chaves, 'conteudo': { 'numeroOficial': item['numerooficial'], 'tipo': { 'id': item['tipo'] }, 'naturezaTextoJuridico': { 'id': item['naturezatextojuridico'] }, 'dataCriacao': item['datacriacao'].strftime("%Y-%m-%d") } } if 'ementa' in item and item['ementa'] is not None: dict_dados['conteudo'].update({'ementa': model.cleanhtml(item['ementa'])}) if 'datavigorar' in item and item['datavigorar'] is not None: dict_dados['conteudo'].update({'dataVigorar': item['datavigorar'].strftime("%Y-%m-%d")}) if 'datapublicacao' in item and item['datapublicacao'] is not None: dict_dados['conteudo'].update({'dataPublicacao': item['datapublicacao'].strftime("%Y-%m-%d")}) if 'dataresolucao' in item and item['dataresolucao'] is not None: dict_dados['conteudo'].update({'dataResolucao': item['dataresolucao'].strftime("%Y-%m-%d")}) # print(f'Dados gerados ({contador}): ', dict_dados) lista_dados_enviar.append(dict_dados) lista_controle_migracao.append({ 'sistema': sistema, 'tipo_registro': tipo_registro, 'hash_chave_dsk': hash_chaves, 'descricao_tipo_registro': 'Cadastro de Atos', 'id_gerado': None, 'i_chave_dsk1': item['numerooficial'], 'i_chave_dsk2': item['tipo'] }) print(f'- Processo de transformação finalizado. ({(datetime.now() - dh_inicio).total_seconds()} segundos)') if True: model.insere_tabela_controle_migracao_registro(params_exec, lista_req=lista_controle_migracao) req_res = interacao_cloud.preparar_requisicao(lista_dados=lista_dados_enviar, token=token, url=url, tipo_registro=tipo_registro, tamanho_lote=limite_lote) model.insere_tabela_controle_lote(req_res)
def iniciar_envio(params_exec, dados, metodo, *args, **kwargs): print('- Iniciando envio dos dados.') lista_dados_enviar = [] lista_controle_migracao = [] hoje = datetime.now().strftime("%Y-%m-%d") token = params_exec['token'] total_dados = len(dados) contador = 0 for item in dados: contador += 1 print(f'\r- Gerando JSON: {contador}/{total_dados}', '\n' if contador == total_dados else '', end='') hash_chaves = model.gerar_hash_chaves(sistema, tipo_registro, item['chave_dsk1'], item['chave_dsk2']) url_parametrizada = url.replace('{grupoId}', str(item['id_grupo'])) dict_dados = { 'idIntegracao': hash_chaves, 'url': url_parametrizada, 'descricao': item['nome_classe'], 'especificacao': item['espec_classe'], 'grupo': { 'id': item['id_grupo'] } } print(f'Dados gerados ({contador}): ', dict_dados) lista_dados_enviar.append(dict_dados) lista_controle_migracao.append({ 'sistema': sistema, 'tipo_registro': tipo_registro, 'hash_chave_dsk': hash_chaves, 'descricao_tipo_registro': 'Cadastro de Grupos', 'id_gerado': None, 'json': json.dumps(dict_dados), 'i_chave_dsk1': item['chave_dsk1'], 'i_chave_dsk2': item['chave_dsk2'] }) if True: model.insere_tabela_controle_migracao_registro( params_exec, lista_req=lista_controle_migracao) req_res = interacao_cloud.preparar_requisicao_sem_lote( lista_dados=lista_dados_enviar, token=token, url=url, tipo_registro=tipo_registro) model.atualiza_tabelas_controle_envio_sem_lote( params_exec, req_res, tipo_registro=tipo_registro) print('- Envio de dados finalizado.')
def iniciar_envio(params_exec, dados, metodo, *args, **kwargs): print('- Iniciando processo de transformação.') dh_inicio = datetime.now() lista_dados_enviar = [] lista_controle_migracao = [] hoje = datetime.now().strftime("%Y-%m-%d") token = params_exec['token'] total_dados = len(dados) contador = 0 for item in dados: contador += 1 print(f'\r- Gerando JSON: {contador}/{total_dados}', '\n' if contador == total_dados else '', end='') hash_chaves = model.gerar_hash_chaves(sistema, tipo_registro, item['id_entidade'], item['descricao'], item['codigoesocial']) dict_dados = { 'idIntegracao': hash_chaves, 'conteudo': { 'descricao': item['descricao'], 'grupoTrabalhador': item['grupotrabalhador'], 'codigoESocial': item['codigoesocial'], } } # print(f'\nDados gerados ({contador}): ', dict_dados) lista_dados_enviar.append(dict_dados) lista_controle_migracao.append({ 'sistema': sistema, 'tipo_registro': tipo_registro, 'hash_chave_dsk': hash_chaves, 'descricao_tipo_registro': 'Cadastro de Categorias de Trabalhador', 'id_gerado': None, 'i_chave_dsk1': item['id_entidade'], 'i_chave_dsk2': item['descricao'], 'i_chave_dsk3': item['codigoesocial'] }) print( f'- Processo de transformação finalizado. ({(datetime.now() - dh_inicio).total_seconds()} segundos)' ) if True: model.insere_tabela_controle_migracao_registro( params_exec, lista_req=lista_controle_migracao) req_res = interacao_cloud.preparar_requisicao( lista_dados=lista_dados_enviar, token=token, url=url, tipo_registro=tipo_registro, tamanho_lote=limite_lote) model.insere_tabela_controle_lote(req_res)
def iniciar_envio(params_exec, dados, metodo, *args, **kwargs): print('- Iniciando envio dos dados.') lista_dados_enviar = [] lista_controle_migracao = [] hoje = datetime.now().strftime("%Y-%m-%d") token = params_exec['token'] total_dados = len(dados) contador = 0 for item in dados: contador += 1 print(f'\r- Gerando JSON: {contador}/{total_dados}', '\n' if contador == total_dados else '', end='') hash_chaves = model.gerar_hash_chaves(sistema, tipo_registro, item["cnicodigo"]) dict_dados = { 'idIntegracao': hash_chaves, 'simbolo': item['simbolo'], 'nome': item['descricao'], 'nomePlural': item['descricao'], 'fracionaria': item['fracionada'], 'grandeza': { 'valor': item['grandeza'], 'descricao': item['grandeza'] } } # print(f'Dados gerados ({contador}): ', dict_dados) lista_dados_enviar.append(dict_dados) lista_controle_migracao.append({ 'sistema': sistema, 'tipo_registro': tipo_registro, 'hash_chave_dsk': hash_chaves, 'descricao_tipo_registro': 'Cadastro de Unidades de Medida', 'id_gerado': None, 'json': json.dumps(dict_dados), 'i_chave_dsk1': item["cnicodigo"] }) if True: model.insere_tabela_controle_migracao_registro( params_exec, lista_req=lista_controle_migracao) req_res = interacao_cloud.preparar_requisicao_sem_lote( lista_dados=lista_dados_enviar, token=token, url=url, tipo_registro=tipo_registro) model.atualiza_tabelas_controle_envio_sem_lote( params_exec, req_res, tipo_registro=tipo_registro) print('- Envio de dados finalizado.')
def iniciar_envio(params_exec, dados, metodo, *args, **kwargs): print('- Iniciando envio dos dados.') lista_dados_enviar = [] hoje = datetime.now().strftime("%Y-%m-%d") token = params_exec['token'] url = "https://contabil-sl.cloud.betha.com.br/contabil/service-layer/v2/api/credores" for item in dados: hash_chaves = model.gerar_hash_chaves('1', 'credores', item['chave_1']) dict_dados = { 'idIntegracao': hash_chaves, 'content': { 'nome': item['nome'], 'tipo': 'FISICA' if item['tipo'] == 'FISICA' else 'JURIDICA', 'dataInclusao': hoje } } if item['tipo'] == 'FISICA': dict_dados['content'].update({'fisica': {'cpf': item['cpfcnpj']}}) else: dict_dados['content'].update( {'juridica': { 'cnpj': item['cpfcnpj'] }}) lista_dados_enviar.append(dict_dados) # Insere registro atual na tabela 'controle_migracao_registro' model.insere_tabela_controle_migracao_registro( params_exec, req_res={ 'sistema': 1, 'tipo_registro': 'credores', 'hash_chave_dsk': hash_chaves, 'descricao_tipo_registro': 'Cadastro de Credores', 'id_gerado': None, 'i_chave_dsk1': item['chave_1'], 'i_chave_dsk2': item['chave_2'] }) req_res = interacao_cloud.preparar_requisicao( lista_dados=lista_dados_enviar, token=token, url=url, tipo_registro='credores', tamanho_lote=50) # Insere lote na tabela 'controle_migracao_lotes' model.insere_tabela_controle_lote(req_res) print('- Envio de dados finalizado.')
def iniciar_envio(params_exec, dados, metodo, *args, **kwargs): print('- Iniciando envio dos dados.') lista_dados_enviar = [] lista_controle_migracao = [] hoje = datetime.now().strftime("%Y-%m-%d") token = params_exec['token'] contador = 0 for item in dados: hash_chaves = model.gerar_hash_chaves(sistema, tipo_registro, item['id_entidade'], item['configuracao'], item['numero']) dict_dados = { 'idIntegracao': hash_chaves, 'conteudo': { 'configuracao': { 'id': int(item['configuracao']) }, 'numero': item['numero'], 'nivel': item['nivel'], 'descricao': item['descricao'] } } if 'sigla' in item and item['sigla'] is not None: dict_dados['conteudo'].update({'sigla': item['sigla']}) contador += 1 print(f'Dados gerados ({contador}): ', dict_dados) lista_dados_enviar.append(dict_dados) lista_controle_migracao.append({ 'sistema': sistema, 'tipo_registro': tipo_registro, 'hash_chave_dsk': hash_chaves, 'descricao_tipo_registro': 'Cadastro de Orgranogramas', 'id_gerado': None, 'i_chave_dsk1': item['id_entidade'], 'i_chave_dsk2': item['configuracao'], 'i_chave_dsk3': item['numero'] }) if True: # model.insere_tabela_controle_migracao_registro(params_exec, lista_req=lista_controle_migracao) req_res = interacao_cloud.preparar_requisicao( lista_dados=lista_dados_enviar, token=token, url=url, tipo_registro=tipo_registro, tamanho_lote=limite_lote) model.insere_tabela_controle_lote(req_res) print('- Envio de dados finalizado.')
def busca_dados_cloud(params_exec): print('- Iniciando busca de dados no cloud.') campos = 'configuracao(id), id, configuracao.processoAdministrativo.id' lista_dados = [] if params_exec['clicodigo'] == '2016': id_entidade = 56 # Prefeitura elif params_exec['clicodigo'] == '13482': id_entidade = 2739 # Saúde elif params_exec['clicodigo'] == '16975': id_entidade = 2734 # FAMABI elif params_exec['clicodigo'] == '9769': id_entidade = 2988 # Institudo elif params_exec['clicodigo'] == '11968': id_entidade = 34 # Câmara criterio = f'configuracao.processoAdministrativo.parametroExercicio.exercicio = {params_exec["ano"]} and entidade.id = {id_entidade}' registros_cloud = interacao_cloud.busca_api_fonte_dados(params_exec, url=url, campos=campos, criterio=criterio) if registros_cloud is not None and len(registros_cloud) > 0: for item in registros_cloud: hash_chaves = model.gerar_hash_chaves( sistema, tipo_registro, item['configuracao']['processoAdministrativo']['id'], item['id']) registro_encontrado = { 'sistema': sistema, 'tipo_registro': tipo_registro, 'hash_chave_dsk': hash_chaves, 'descricao_tipo_registro': 'Cadastro de Especificação de Material', 'id_gerado': item['configuracao']['id'], 'i_chave_dsk1': item['configuracao']['processoAdministrativo']['id'], 'i_chave_dsk2': item['id'] } # print('registro_encontrado', type(registro_encontrado), registro_encontrado) lista_dados.append(registro_encontrado) model.insere_tabela_controle_migracao_registro(params_exec, lista_req=lista_dados)
def iniciar_envio(params_exec, dados, metodo, *args, **kwargs): print('- Iniciando envio dos dados.') lista_dados_enviar = [] lista_controle_migracao = [] hoje = datetime.now().strftime("%Y-%m-%d") token = params_exec['token'] contador = 0 for item in dados: hash_chaves = model.gerar_hash_chaves(sistema, tipo_registro, item['id_entidade'], item['codigo']) dict_dados = { 'idIntegracao': hash_chaves, 'conteudo': { 'descricao': None if 'descricao' not in item else item['descricao'], 'classificacao': None if 'classificacao' not in item else item['classificacao'], 'tipoMovimentacaoPessoal': None if 'tipomovimentacaopessoal' not in item else item['tipomovimentacaopessoal'], 'diasPrevistos': None if 'diasprevistos' not in item else item['diasprevistos'], 'perdeTempoServico': None if 'perdetemposervico' not in item else item['perdetemposervico'], 'consideraVencimento': None if 'consideravencimento' not in item else item['consideravencimento'], 'reduz13Salario': None if 'reduz13salario' not in item else item['reduz13salario'], 'reduzFerias': None if 'reduzferias' not in item else item['reduzferias'], 'justificado': None if 'justificado' not in item else item['justificado'], 'reduzFgts': None if 'reduzfgts' not in item else item['reduzfgts'] } } contador += 1 print(f'Dados gerados ({contador}): ', dict_dados) lista_dados_enviar.append(dict_dados) lista_controle_migracao.append({ 'sistema': sistema, 'tipo_registro': tipo_registro, 'hash_chave_dsk': hash_chaves, 'descricao_tipo_registro': 'Cadastro de Tipo de Afastamento', 'id_gerado': None, 'i_chave_dsk1': item['id_entidade'], 'i_chave_dsk2': item['codigo'] }) if True: model.insere_tabela_controle_migracao_registro2(params_exec, lista_req=lista_controle_migracao) req_res = interacao_cloud.preparar_requisicao(lista_dados=lista_dados_enviar, token=token, url=url, tipo_registro=tipo_registro, tamanho_lote=limite_lote) model.insere_tabela_controle_lote(req_res) print('- Envio de dados finalizado.')
def busca_dados(params_exec): print('- Iniciando busca de dados no cloud.') registros = interacao_cloud.busca_dados_cloud(params_exec, url=url) print(f'- Foram encontrados {len(registros)} registros cadastrados no cloud.') registros_formatados = [] for item in registros: hash_chaves = model.gerar_hash_chaves(sistema, tipo_registro, item['cpf']) registros_formatados.append({ 'sistema': sistema, 'tipo_registro': tipo_registro, 'hash_chave_dsk': hash_chaves, 'descricao_tipo_registro': 'Cadastro de Pessoa Fisica', 'id_gerado': item['id'], 'i_chave_dsk1': item['cpf'] }) model.insere_tabela_controle_migracao_registro(params_exec, lista_req=registros_formatados) print('- Busca finalizada. Tabelas de controles atualizas com sucesso.')
def busca_dados_cloud(params_exec, dados_base): print('- Iniciando busca de dados no cloud.') url_fonte_dados = 'https://compras.betha.cloud/compras/dados/api/despesas' campos = 'entidade(id), parametroExercicio(exercicio), recursoContabil(numero), organograma, funcao, subFuncao, ' \ 'programa, acao, natureza' contador = 0 registros_inseridos = 0 lista_dados = dados_base.to_dict('records') total_dados = len(lista_dados) for item in lista_dados: contador += 1 print(f'\r- Verificando registros: {contador}/{total_dados}', '\n' if contador == total_dados else '', end='') criterio = f'entidade.id = {item["id_entidade"]} and parametroExercicio.exercicio = {item["loaano"]} and ' \ f'organograma = \'{item["organograma"]}\' and funcao = {item["funcao"]} and subFuncao = ' \ f'{item["subfuncao"]} and programa = {item["programa"]} and acao = \'{item["acao"]}\' and ' \ f'natureza = \'{item["natureza"]}\' and recursoContabil.numero = \'{item["recurso_bth"]}\'' # print('criterio', criterio) registro_cloud = interacao_cloud.busca_api_fonte_dados( params_exec, url=url_fonte_dados, campos=campos, criterio=criterio) if registro_cloud is not None and len(registro_cloud) > 0: hash_chaves = model.gerar_hash_chaves(sistema, tipo_registro, item["id_entidade"], item['loaano'], item['dotcodigo']) registro_encontrado = { 'sistema': sistema, 'tipo_registro': tipo_registro, 'hash_chave_dsk': hash_chaves, 'descricao_tipo_registro': 'Cadastro de Despesas', 'id_gerado': registro_cloud[0]['id'], 'i_chave_dsk1': item['id_entidade'], 'i_chave_dsk2': item['loaano'], 'i_chave_dsk3': item['dotcodigo'] } model.insere_tabela_controle_migracao_registro( params_exec, lista_req=[registro_encontrado]) registros_inseridos += 1 print( f'- Foram inseridos {registros_inseridos} registros na tabela de controle.' )
def iniciar_envio(params_exec, dados, metodo, *args, **kwargs): print('- Iniciando envio dos dados.') lista_dados_enviar = [] lista_controle_migracao = [] hoje = datetime.now().strftime("%Y-%m-%d") token = params_exec['token'] contador = 0 for item in dados: hash_chaves = model.gerar_hash_chaves(sistema, tipo_registro, item['id_entidade'], item['descricao'], item['classificacao']) dict_dados = { 'idIntegracao': hash_chaves, 'conteudo': { "descricao": item['descricao'], "classificacao": item['classificacao'], } } contador += 1 # print(f'Dados gerados ({contador}): ', dict_dados) lista_dados_enviar.append(dict_dados) lista_controle_migracao.append({ 'sistema': sistema, 'tipo_registro': tipo_registro, 'hash_chave_dsk': hash_chaves, 'descricao_tipo_registro': 'Cadastro de Tipo de Movimentação Pessoal', 'id_gerado': None, 'i_chave_dsk1': item['id_entidade'], 'i_chave_dsk2': item['descricao'], 'i_chave_dsk3': item['classificacao'] }) if True: model.insere_tabela_controle_migracao_registro( params_exec, lista_req=lista_controle_migracao) req_res = interacao_cloud.preparar_requisicao( lista_dados=lista_dados_enviar, token=token, url=url, tipo_registro=tipo_registro, tamanho_lote=limite_lote) model.insere_tabela_controle_lote(req_res) print('- Envio de dados finalizado.')
def iniciar_envio(params_exec, dados, metodo, *args, **kwargs): print('- Iniciando envio dos dados.') lista_dados_enviar = [] lista_controle_migracao = [] hoje = datetime.now().strftime("%Y-%m-%d") token = params_exec['token'] contador = 0 for item in dados: hash_chaves = model.gerar_hash_chaves(sistema, tipo_registro, item['id_entidade'], item['codigo']) dict_dados = { 'idIntegracao': hash_chaves, 'conteudo': { 'descricao': None if 'descricao' not in item else item['descricao'], 'inicio': None if 'inicio' not in item else item['inicio'], 'mascaraClasse': None if 'mascaraclasse' not in item else item['mascaraclasse'], 'limiteClasse': None if 'limiteclasse' not in item else item['limiteclasse'], 'mascaraReferencia': None if 'mascarareferencia' not in item else item['mascarareferencia'], 'limiteReferencia': None if 'limitereferencia' not in item else item['limitereferencia'], 'controlaCargaHorariaNiveis': None if 'controlacargahorarianiveis' not in item else item['controlacargahorarianiveis'], 'configuracaoAfastamentos': None if 'configuracaoafastamentos' not in item else item['configuracaoafastamentos'], 'faixasProgressao': None if 'faixasprogressao' not in item else item['faixasprogressao'], } } contador += 1 print(f'Dados gerados ({contador}): ', dict_dados) lista_dados_enviar.append(dict_dados) lista_controle_migracao.append({ 'sistema': sistema, 'tipo_registro': tipo_registro, 'hash_chave_dsk': hash_chaves, 'descricao_tipo_registro': 'Cadastro do Plano de Cargo e Salario', 'id_gerado': None, 'i_chave_dsk1': item['id_entidade'], 'i_chave_dsk2': item['codigo'] }) model.insere_tabela_controle_migracao_registro2(params_exec, lista_req=lista_controle_migracao) req_res = interacao_cloud.preparar_requisicao(lista_dados=lista_dados_enviar, token=token, url=url, tipo_registro=tipo_registro, tamanho_lote=limite_lote) model.insere_tabela_controle_lote(req_res) print('- Envio de dados finalizado.')
def busca_dados(params_exec): print('- Iniciando busca de dados no cloud.') registros = interacao_cloud.busca_dados_cloud(params_exec, url=url) print( f'- Foram encontrados {len(registros)} registros cadastrados no cloud.' ) registros_formatados = [] for item in registros: hash_chaves = model.gerar_hash_chaves(sistema, tipo_registro, '56', item['matricula']['id'], item['tipoProcessamento'], item['subTipoProcessamento'], item['competencia'], item['dataPagamento']) registros_formatados.append({ 'sistema': sistema, 'tipo_registro': tipo_registro, 'hash_chave_dsk': hash_chaves, 'descricao_tipo_registro': 'Cadastro de Bairro', 'id_gerado': item['id'], 'i_chave_dsk1': '56', 'i_chave_dsk2': item['matricula']['id'], 'i_chave_dsk3': item['tipoProcessamento'], 'i_chave_dsk4': item['subTipoProcessamento'], 'i_chave_dsk5': item['competencia'], 'i_chave_dsk6': item['dataPagamento'] }) model.insere_tabela_controle_migracao_registro( params_exec, lista_req=registros_formatados) print('- Busca finalizada. Tabelas de controles atualizas com sucesso.')
def iniciar_envio(params_exec, dados, metodo, *args, **kwargs): print('- Iniciando envio dos dados.') lista_dados_enviar = [] hoje = datetime.now().strftime("%Y-%m-%d") token = params_exec['token'] url = "https://contabil-sl.cloud.betha.com.br/contabil/service-layer/v2/api/credores" for item in dados: hash_chaves = model.gerar_hash_chaves(item['chave_1']) # INSERIR CÓDIGO DA GERAÇÃO DO JSON AQUI req_res = interacao_cloud.preparar_requisicao( lista_dados=lista_dados_enviar, token=token, url=url, tipo_registro='', tamanho_lote=50) # Insere lote na tabela 'controle_migracao_lotes' model.insere_tabela_controle_lote(req_res) print('- Envio de dados finalizado.')
def busca_dados_cloud(params_exec, dados_base): print('- Iniciando busca de dados no cloud.') campos = 'id, material.id' contador = 1 lista_dados = dados_base.to_dict('records') total_dados = len(lista_dados) for item in lista_dados: print(f'\r- Enviando registros: {contador}/{total_dados}', '\n' if contador == total_dados else '', end='') criterio = f'material.id = {item["id_material"]}' registro_cloud = interacao_cloud.busca_api_fonte_dados(params_exec, url=url, campos=campos, criterio=criterio) if registro_cloud is not None: hash_chaves = model.gerar_hash_chaves(sistema, tipo_registro, item["codigo_produto"]) registro_encontrado = { 'sistema': sistema, 'tipo_registro': tipo_registro, 'hash_chave_dsk': hash_chaves, 'descricao_tipo_registro': 'Cadastro de Especificação de Material', 'id_gerado': registro_cloud[0]['id'], 'i_chave_dsk1': item["codigo_produto"] } model.insere_tabela_controle_migracao_registro(params_exec, lista_req=[registro_encontrado]) contador += 1