Ejemplo n.º 1
0
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['nome'])
            registros_formatados.append({
                'sistema': sistema,
                'tipo_registro': tipo_registro,
                'hash_chave_dsk': hash_chaves,
                'descricao_tipo_registro': 'Cadastro de Paises',
                'id_gerado': item['id'],
                'i_chave_dsk1': item['nome'],
            })
        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}')
Ejemplo n.º 2
0
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}')
Ejemplo n.º 3
0
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.')
Ejemplo n.º 4
0
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.'
    )
Ejemplo n.º 5
0
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}')
Ejemplo n.º 6
0
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}')
Ejemplo n.º 7
0
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.')
Ejemplo n.º 8
0
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.')
Ejemplo n.º 9
0
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)
Ejemplo n.º 10
0
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)
Ejemplo n.º 11
0
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.')
Ejemplo n.º 12
0
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)
Ejemplo n.º 13
0
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(),
                                              item['municipio'])
        dict_dados = {
            'idIntegracao': hash_chaves,
            'conteudo': {
                'descricao':
                None if 'descricao' not in item else item['descricao'],
                'municipio': {
                    'id': item['municipio']
                },
                'tipoLogradouro': {
                    'id': item['tipologradouro']
                },
                'cep': item['cep']
            }
        }
        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 Logradouro',
            'id_gerado':
            None,
            'i_chave_dsk1':
            item['descricao'].upper(),
            'i_chave_dsk2':
            item['municipio']
        })
    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.')
Ejemplo n.º 14
0
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)
Ejemplo n.º 15
0
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.')
Ejemplo n.º 16
0
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)
Ejemplo n.º 17
0
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.')
Ejemplo n.º 18
0
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 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)
Ejemplo n.º 20
0
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 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.')
Ejemplo n.º 22
0
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.'
    )
Ejemplo n.º 23
0
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 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:
        id_entidade = interacao_cloud.get_dados_token(params_exec.get('token'))['entityId']
        for item in registros:
            hash_chaves = model.gerar_hash_chaves(sistema, tipo_registro, id_entidade, item['descricao'])

            registro = {
                'sistema': sistema,
                'tipo_registro': tipo_registro,
                'hash_chave_dsk': hash_chaves,
                'descricao_tipo_registro': 'Cadastro de Motivos de Alteração Salarial',
                'id_gerado': item['id'],
                'i_chave_dsk1': id_entidade,
                'i_chave_dsk2': item['descricao']
            }
            registros_formatados.append(registro)
        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}')
Ejemplo n.º 25
0
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
Ejemplo n.º 26
0
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['separador'], item['nro_lote'],
            item['separador'], item['numero_item_original'])
        url_parametrizada = url.replace('{exercicio}', str(item['ano_processo']))\
                               .replace('{processoAdministrativoId}', str(item['id_processo']))
        dict_dados = {
            'idIntegracao': hash_chaves,
            'url': url_parametrizada,
            'processoAdministrativo': {
                'id': item['id_processo']
            },
            'configuracaoItem': {
                'processoAdministrativo': {
                    'id': item['id_processo']
                },
                'materialEspecificacao': {
                    'id': item['id_material_especificacao']
                },
                'valorUnitario': item['valor_unitario'],
                'valorTotal': item['valor_total'],
                'quantidadeTotal': item['quantidade'],
                'tipoBeneficio': {
                    'valor': item['tipo_beneficio']
                },
                'amostra': item['amostra']
            },
            'numero': item['numero_item'],
            'quantidade': item['quantidade'],
            'valorUnitario': item['valor_unitario'],
            'valorTotal': item['valor_total'],
            'percentual': item['percentual'],
            'tipoParticipacao': {
                'valor': item['tipo_participacao']
            },
            'material': {
                'id': item['id_material']
            },
            'materialEspecificacao': {
                'id': item['id_material_especificacao']
            },
            'amostra': item['amostra']
        }

        if item['possui_duplicado'] is True:
            dict_dados['materialEspecificacao']['id'] = int(
                item['id_material_duplicado_epec'])
            dict_dados['configuracaoItem']['materialEspecificacao'][
                'id'] = int(item['id_material_duplicado_epec'])

        # print(f'Dados gerados ({contador}): ', json.dumps(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 Item Livre 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['separador'],
            'i_chave_dsk5':
            item['nro_lote'],
            'i_chave_dsk6':
            item['separador'],
            'i_chave_dsk7':
            item['numero_item_original']
        })

        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.')
Ejemplo n.º 27
0
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['copano'], item['copnro'], item['separador'], item['nfisequencia'],
                                              item['separador'], item['cmiid'])

        url_parametrizada = url\
            .replace('{exercicio}', str(item['exercicio']))\
            .replace('{contratacaoId}', str(item['id_contratacao']))\
            .replace('{solicitacaoId}', str(item['id_sf']))\
            .replace('{recebimentoId}', str(item['id_recebimento']))

        dict_dados = {
            'idIntegracao': hash_chaves,
            'url': url_parametrizada,
            'solicitacaoRecebimento': {
                'id': item['id_recebimento']
            },
            'solicitacaoFornecimentoItem': {
                'id': item['id_sf_item']
            },
            'quantidade': item['itnqtde'],
            'desconto': item['desconto'],
            'valorTotal': item['itnvalortotal']
        }

        # print(f'Dados gerados ({contador}): ', json.dumps(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 Itens de Recebimento de SF',
            'id_gerado': None,
            'json': json.dumps(dict_dados),
            'i_chave_dsk1': item['clicodigo'],
            'i_chave_dsk2': item['copano'],
            'i_chave_dsk3': item['copnro'],
            'i_chave_dsk4': item['separador'],
            'i_chave_dsk5': item['nfisequencia'],
            'i_chave_dsk6': item['separador'],
            'i_chave_dsk7': item['cmiid'],
        })

        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.')
Ejemplo n.º 28
0
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['datainicial'])
        dict_dados = {
            'idIntegracao': hash_chaves,
            'conteudo': {
                'situacao': item['situacao'],
                'dataInicial': item['datainicial'],
                'dataFinal': item['datafinal'],
                'configuracaoFerias': {
                    'id': item['configuracaoferias']
                },
                'matricula': {
                    'id': item['matricula']
                },
                'faltas': item['faltas'],
                'diasAdquiridos': item['diasadquiridos'],
                'cancelados': item['cancelados'],
                'suspensos': item['suspensos'],
                'saldo': item['saldo'],
            }
        }
        if 'pagou1tercointegral' in item and item[
                'pagou1tercointegral'] is not None:
            dict_dados['conteudo'].update(
                {'pagou1TercoIntegral': item['pagou1tercointegral']})
        if 'diasanuladosrescisao' in item and item[
                'diasanuladosrescisao'] is not None:
            dict_dados['conteudo'].update(
                {'diasAnuladosRescisao': item['diasanuladosrescisao']})
        if 'conversao' in item and item['conversao'] is not None:
            dict_dados['conteudo'].update({'conversao': item['conversao']})
        if 'competenciafechamentoprovisao' in item and item[
                'competenciafechamentoprovisao'] is not None:
            dict_dados['conteudo'].update({
                'competenciaFechamentoProvisao':
                item['competenciafechamentoprovisao']
            })
        if item['movimentacoes'] is not None:
            listaconteudo = []
            lista = item['movimentacoes'].split('%||%')
            if len(lista) > 0:
                for listacampo in lista:
                    campo = listacampo.split('%|%')
                    for idx, val in enumerate(campo):
                        if campo[idx] == '':
                            campo[idx] = None
                    dict_item_conteudo = {}
                    if campo[16] is not None:
                        dict_item_conteudo.update({'conversao': campo[16]})
                    if False:
                        if campo[1] is not None:
                            dict_item_conteudo.update({'dataInicio': campo[1]})
                    if False:
                        if campo[2] is not None:
                            dict_item_conteudo.update({'dataFim': campo[2]})
                    if campo[3] is not None:
                        dict_item_conteudo.update({'motivo': campo[3]})
                    if campo[4] is not None:
                        dict_item_conteudo.update(
                            {'dataCancelamento': campo[4]})
                    if campo[5] is not None:
                        dict_item_conteudo.update({'dataInicioGozo': campo[5]})
                    if campo[6] is not None:
                        dict_item_conteudo.update({'dataFimGozo': campo[6]})
                    if campo[7] is not None:
                        dict_item_conteudo.update({'dataPagamento': campo[7]})
                    if campo[8] is not None:
                        dict_item_conteudo.update({'diasAbono': campo[8]})
                    if campo[9] is not None:
                        dict_item_conteudo.update({'diasGozo': campo[9]})
                    if campo[10] is not None:
                        dict_item_conteudo.update({'diasFalta': campo[10]})
                    if campo[11] is not None:
                        dict_item_conteudo.update(
                            {'diasPagosRescisao': campo[11]})
                    if campo[12] is not None:
                        dict_item_conteudo.update({'ferias': campo[12]})
                    if campo[13] is not None:
                        dict_item_conteudo.update({'tipo': campo[13]})
                    if campo[14] is not None:
                        dict_item_conteudo.update({'dataMovimento': campo[14]})
                    if campo[15] is not None:
                        dict_item_conteudo.update({'quantidade': campo[15]})
                    listaconteudo.append(dict_item_conteudo)
            if len(listaconteudo) > 0:
                dict_dados['conteudo'].update({'movimentacoes': listaconteudo})
        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,
            'json': json.dumps(dict_dados),
            'i_chave_dsk1': item['entidade'],
            'i_chave_dsk2': item['matricula'],
            'i_chave_dsk3': item['datainicial']
        })
    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)
Ejemplo n.º 29
0
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['anoexercicio'])
        dict_dados = {
            'idIntegracao': hash_chaves,
            'conteudo': {
                'dataInicial': item['datainicial'],
                'dataFinal': item['datafinal'],
                'configuracao': item['configuracao'],
                'matricula': {
                    'id': item['matricula']
                },
                'avosAdquiridos': item['avosadquiridos'],
                'avosDireito': item['avosdireito'],
                'avosPerdidos': item['avosperdidos'],
                'anoExercicio': item['anoexercicio'],
            }
        }
        if 'avosadquiridosfgts' in item and item['avosadquiridosfgts'] is not None:
            dict_dados['conteudo'].update({'avosAdquiridosFgts': item['avosadquiridosfgts']})
        if 'situacao' in item and item['situacao'] is not None:
            dict_dados['conteudo'].update({'situacao': item['situacao']})
        if item['movimentacoes'] is not None:
            listaconteudo = []
            lista = item['movimentacoes'].split('%||%')
            if len(lista) > 0:
                for listacampo in lista:
                    campo = listacampo.split('%|%')
                    for idx, val in enumerate(campo):
                        if campo[idx] == '':
                            campo[idx] = None
                    dict_item_conteudo = {}
                    if campo[0] is not None:
                        dict_item_conteudo.update({
                            'motivo': campo[0]
                        })
                    if campo[1] is not None:
                        dict_item_conteudo.update({
                            'consideraAvosPerdidos': campo[1]
                        })
                    if campo[2] is not None:
                        dict_item_conteudo.update({
                            'competencia': campo[2]
                        })
                    if campo[3] is not None:
                        dict_item_conteudo.update({
                            'valor': campo[3]
                        })
                    listaconteudo.append(dict_item_conteudo)
            if len(listaconteudo) > 0:
                dict_dados['conteudo'].update({
                    'movimentacoes': listaconteudo
                })
        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,
            'json': json.dumps(dict_dados),
            'i_chave_dsk1': item['entidade'],
            'i_chave_dsk2': item['matricula'],
            'i_chave_dsk3': item['anoexercicio']
        })
    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)
Ejemplo n.º 30
0
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['numeroedital'],
                                              item['tiporecrutamento'])
        dict_dados = {
            'idIntegracao': hash_chaves,
            'conteudo': {
                'tipoRecrutamento': item['tiporecrutamento'],
                'numeroEdital': item['numeroedital'],
                'descricao': item['descricao']
            }
        }
        if 'ato' in item and item['ato'] is not None:
            dict_dados['conteudo'].update({'ato': {'id': item['ato']}})
        if 'percentualpcd' in item and item['percentualpcd'] is not None:
            dict_dados['conteudo'].update(
                {'percentualPcd': item['percentualpcd']})
        if 'datainicialinscricao' in item and item[
                'datainicialinscricao'] is not None:
            dict_dados['conteudo'].update({
                'dataInicialInscricao':
                item['datainicialinscricao'].strftime("%Y-%m-%d")
            })
        if 'datafinalinscricao' in item and item[
                'datafinalinscricao'] is not None:
            dict_dados['conteudo'].update({
                'dataFinalInscricao':
                item['datafinalinscricao'].strftime("%Y-%m-%d")
            })
        if 'dataprorrogacao' in item and item['dataprorrogacao'] is not None:
            dict_dados['conteudo'].update({
                'dataProrrogacao':
                item['dataprorrogacao'].strftime("%Y-%m-%d")
            })
        if 'datainicialinscricaopcd' in item and item[
                'datainicialinscricaopcd'] is not None:
            dict_dados['conteudo'].update({
                'dataInicialInscricaoPcd':
                item['datainicialinscricaopcd'].strftime("%Y-%m-%d")
            })
        if 'datafinalinscricaopcd' in item and item[
                'datafinalinscricaopcd'] is not None:
            dict_dados['conteudo'].update({
                'dataFinalInscricaoPcd':
                item['datafinalinscricaopcd'].strftime("%Y-%m-%d")
            })
        if 'datahomologacao' in item and item['datahomologacao'] is not None:
            dict_dados['conteudo'].update({
                'dataHomologacao':
                item['datahomologacao'].strftime("%Y-%m-%d")
            })
        if 'datavalidade' in item and item['datavalidade'] is not None:
            dict_dados['conteudo'].update(
                {'dataValidade': item['datavalidade'].strftime("%Y-%m-%d")})
        if 'dataprorrogacaovalidade' in item and item[
                'dataprorrogacaovalidade'] is not None:
            dict_dados['conteudo'].update({
                'dataProrrogacaoValidade':
                item['dataprorrogacaovalidade'].strftime("%Y-%m-%d")
            })
        if 'dataencerramento' in item and item['dataencerramento'] is not None:
            dict_dados['conteudo'].update({
                'dataEncerramento':
                item['dataencerramento'].strftime("%Y-%m-%d")
            })

        # 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 Concurso',
            'id_gerado': None,
            'i_chave_dsk1': item['id_entidade'],
            'i_chave_dsk2': item['numeroedital'],
            'i_chave_dsk3': item['tiporecrutamento']
        })
    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)