示例#1
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.'
    )
示例#2
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.')
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)
示例#4
0
def get_id_item(params_exec, registro):
    id_registro = None
    try:
        url = 'https://contratos.betha.cloud/contratos/dados/api/solicitacoesfornecimentositens'
        desc = registro["prddescricao"].replace("'", "_").replace("\r", "__").replace("\n", "__")
        criterio = f'solicitacaoFornecimento.id = {registro["id_sf"]} and (material.descricao like \'%{desc}%\' or especificacao.descricao like \'%{desc}%\')'
        campos = 'id'
        registro_cloud = interacao_cloud.busca_api_fonte_dados(params_exec, url=url, campos=campos, criterio=criterio)
        if registro_cloud is not None and len(registro_cloud) == 1:
            # print(registro_cloud)
            id_registro = registro_cloud[0]['id']
    except Exception as error:
        print(f'Erro ao executar função "get_id_item". {error}')
        logging.error(f'Erro ao executar função "get_id_item". {error}')

    finally:
        return id_registro
示例#5
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.'
    )
示例#6
0
def coletar_dados_bth_processo(params_exec):
    print('- Iniciando coleta de dados do processo no Betha Cloud.')
    dados_processo = None
    try:
        id_entidade = traduzir_clicodigo(params_exec['clicodigo'])
        url = 'https://compras.betha.cloud/compras/dados/api/processosadministrativos'
        criterio = f'entidade.id = {id_entidade} and parametroExercicio.exercicio = {params_exec["ano"]} and numeroProcesso = {params_exec["minuta"]}'
        campos = 'id, formaContratacao(numeroSequencial, anoSequencial), numeroProcesso, parametroExercicio(exercicio), entidade(id, nome), formaContratacao(modalidade(descricao)), localEntrega(descricao), tipoObjeto(descricao), formaJulgamento(descricao), prazoEntrega(descricao), formaPagamento(descricao), regimeExecucao(descricao), dataProcesso, valorTotalItens, quantidadeItens'
        registro_cloud = interacao_cloud.busca_api_fonte_dados(
            params_exec, url=url, campos=campos, criterio=criterio)
        if registro_cloud is not None and len(registro_cloud) == 1:
            dados_processo = registro_cloud[0]
    except Exception as error:
        print(f'Erro ao executar função "coletar_dados_bth_processo". {error}')
        logging.error(
            f'Erro ao executar função "coletar_dados_bth_processo". {error}')

    finally:
        return dados_processo
示例#7
0
def busca_dados_cloud(params_exec, dados_base):
    print('- Iniciando busca de dados no cloud.')
    campos = 'id'
    contador = 1
    lista_dados = dados_base.to_dict('records')
    total_dados = len(lista_dados)

    for item in lista_dados:
        print(f'\r- Verificando registros: {contador}/{total_dados}', '\n' if contador == total_dados else '', end='')
        criterio = f'participante.fornecedor.pessoa.cpfCnpj = \'{item["cpf_participante"]}\' ' \
                   f'and item.id = {item["id_item"]} ' \
                   f'and processoAdministrativo.id = {item["id_processo"]}'
        registro_cloud = interacao_cloud.busca_api_fonte_dados(params_exec, url=url, campos=campos, criterio=criterio)

        if registro_cloud is not None:
            if len(registro_cloud) > 0:
                # print('id encontrado: ', registro_cloud[0]['id'], ' | hash: ', item["hash_chave_dsk"])
                logging.info(f'Atualizando registro \'{item["hash_chave_dsk"]}\' com o id {registro_cloud[0]["id"]}')
                model.atualiza_controle_migracao_registro(registro_cloud[0]['id'], item["hash_chave_dsk"])
        contador += 1
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