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 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.')
Example #3
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.')
Example #4
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.')
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['ano'])
        dict_dados = {
            'descricao':
            item['descricao'],
            'idIntegracao':
            hash_chaves,
            'mascara':
            item['mascara'],
            'niveis': [{
                'nivel': item['nivel1'],
                'descricao': item['descricao1'],
                'digitos': item['digito1']
            }, {
                'nivel': item['nivel2'],
                'descricao': item['descricao2'],
                'digitos': item['digito2'],
                'separador': item['separador']
            }, {
                'nivel': item['nivel3'],
                'descricao': item['descricao3'],
                'digitos': item['digito3'],
                'separador': item['separador']
            }, {
                'nivel': item['nivel4'],
                'descricao': item['descricao4'],
                'digitos': item['digito4'],
                'separador': item['separador']
            }, {
                'nivel': item['nivel5'],
                'descricao': item['descricao5'],
                'digitos': item['digito5'],
                'separador': item['separador']
            }]
        }
        # 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 Configuração de Organogramas',
            'id_gerado': None,
            'json': json.dumps(dict_dados),
            'i_chave_dsk1': item['ano']
        })

    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.insere_tabela_controle_lote(req_res)
        model.atualiza_tabelas_controle_envio_sem_lote(
            params_exec, req_res, tipo_registro=tipo_registro)
        print('- Envio de dados finalizado.')
Example #6
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['numero'])
        dict_dados = {
            'idIntegracao': hash_chaves,
            'numero': item['numero'],
            'finalidade': item['finalidade'],
            'tipoComissao': {
                'valor': item['tipo_comissao']
            },
            'dataExpiracao': item['data_expiracao'],
            'tipoAto': {
                'id': (id_tipo_ato_padrao
                       if item['id_tipo_ato'] == 0 else item['id_tipo_ato'])
            },
            'ato': {
                'id':
                (id_ato_padrao if item['id_ato'] == 0 else item['id_ato'])
            }
        }

        if len(item['array_membros']) > 0:
            lista_membros = []
            iterador = 0
            encontrou_responsavel = False
            for m in item['array_membros']:
                iterador += 1
                if m['id_responsavel'] is not None and m['atribuicao'] in [
                        'PRESIDENTE', 'PREGOEIRO', 'LEILOEIRO'
                ]:
                    encontrou_responsavel = True

                if m['id_responsavel'] is not None:
                    lista_membros.append({
                        'responsavel': {
                            'id': m['id_responsavel']
                        },
                        'atribuicao': {
                            'valor':
                            'PREGOEIRO'
                            if iterador == len(item['array_membros'])
                            and encontrou_responsavel is False else
                            m['atribuicao']
                        }
                    })
            dict_dados.update({'membros': lista_membros})
        else:
            dict_dados.update({
                'membros': [{
                    'responsavel': {
                        'id': id_responsavel_padrao
                    },
                    'atribuicao': {
                        'valor': 'PREGOEIRO'
                    }
                }]
            })

        # 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 Comissões de Licitação',
            'id_gerado': None,
            'json': json.dumps(dict_dados),
            'i_chave_dsk1': item['numero']
        })

        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.')
Example #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['clicodigo'],
                                              item['ano_sf'], item['nro_sf'])
        url_parametrizada = url.replace('{exercicio}', str(item['ano_sf']))\
                               .replace('{contratacaoId}', str(item['id_contratacao']))

        if params_exec['clicodigo'] == '16975':
            id_organograma_padrao = 373447
        elif params_exec['clicodigo'] == '13482':
            id_organograma_padrao = 371827
        elif params_exec['clicodigo'] == '2016':
            id_organograma_padrao = 392830

        dict_dados = {
            'idIntegracao': hash_chaves,
            'url': url_parametrizada,
            'contratacao': {
                'id': item['id_contratacao']
            },
            'organograma': {
                'id':
                id_organograma_padrao
                if item['id_organograma'] == 0 else item['id_organograma']
            },
            'prazoEntrega': {
                'id':
                id_prazo_entrega_padrao
                if item['id_prazo_entrega'] == 0 else item['id_prazo_entrega']
            },
            'localEntrega': {
                'id':
                id_local_entrega_padrao
                if item['id_local_entrega'] == 0 else item['id_local_entrega']
            },
            'fornecedor': {
                'id': item['id_fornecedor']
            },
            'numero': str(item['nro_sf']),
            'nomeSolicitante': item['solicitante'],
            'data': item['data_sf'],
            '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 de SF de Compras Diretas',
            'id_gerado': None,
            'json': json.dumps(dict_dados),
            'i_chave_dsk1': item['clicodigo'],
            'i_chave_dsk2': item['ano_sf'],
            'i_chave_dsk3': item['nro_sf'],
        })

        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.')
Example #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_minuta'],
                                              item['nro_minuta'])
        url_parametrizada = url.replace('{exercicio}', str(item['ano_processo']))\
                               .replace('{processoAdministrativoId}', str(item['id_processo']))
        dict_dados = {
            'idIntegracao': hash_chaves,
            'url': url_parametrizada,
            'processoAdmistrativo': {
                'id': item['id_processo']
            },
            'formaContratacao': {
                'valor': item['forma_contratacao']
            },
            'desclassificaPropostaInvalidaLote': {
                'valor': item['desc_prop_invalida_lote']
            },
            'desclassificaPropostaInvalida': {
                'valor': item['desc_prop_invalida']
            },
            'modalidade': {
                'id': item['id_modalidade']
            },
            'responsavel': {
                'id':
                id_responsavel_padrao
                if item['id_responsavel'] == 0 else item['id_responsavel']
            }
        }

        if item['ano_sequencial'] is not None:
            dict_dados.update({'anoSequencial': item['ano_sequencial']})

        if item['nro_sequencial'] is not None:
            dict_dados.update({'numeroSequencial': item['nro_sequencial']})
            # dict_dados.update({'numeroSequencial': int('6' + str(item['nro_sequencial']))})
            # dict_dados.update({'numeroSequencial': item['nro_minuta']})
            # dict_dados.update({'numeroSequencial': 999})

        if item['id_fundamento_legal'] is not None and item[
                'id_fundamento_legal'] != 0:
            dict_dados.update(
                {'fundamentacaoLegal': {
                    'id': item['id_fundamento_legal']
                }})
            # dict_dados.update({'fundamentacaoLegal': {'id': 81}}) # Inegibilidade

        if item['id_membro_comissao'] is not None and item[
                'id_membro_comissao'] != 0:
            dict_dados.update(
                {'membroComissao': {
                    'id': item['id_membro_comissao']
                }})
            # dict_dados.update({'membroComissao': {'id': 53788}})  # Pregoeiro
            # dict_dados.update({'membroComissao': {'id': 53417}})  # Presidente
            # dict_dados.update({'membroComissao': {'id': 53501}})  # Leiloeiro

        if item['registro_preco'] is not None:
            dict_dados.update({'registroPreco': item['registro_preco']})

        if item['dh_inicio_recebimento_envelopes'] is not None:
            dict_dados.update({
                'dataInicioRecebimentoEnvelope':
                item['dh_inicio_recebimento_envelopes']
            })

        if item['dh_final_recebimento_envelopes'] is not None:
            dict_dados.update({
                'dataFinalRecebimentoEnvelope':
                item['dh_final_recebimento_envelopes']
            })

        if item['dh_abertura_envelopes'] is not None:
            dict_dados.update(
                {'dataAberturaEnvelope': item['dh_abertura_envelopes']})

        if item['data_autorizacao_rp'] is not None:
            dict_dados.update({
                'dataAutorizacaoAdesaoAtaRegPreco':
                item['data_autorizacao_rp']
            })

        # 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 Forma de Contratação do Processo',
            'id_gerado': None,
            'json': json.dumps(dict_dados),
            'i_chave_dsk1': item['clicodigo'],
            'i_chave_dsk2': item['ano_minuta'],
            'i_chave_dsk3': item['nro_minuta']
        })

        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.')
Example #9
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['id_entidade'],
                                              item['loaano'],
                                              item['dotcodigo'])
        dict_dados = {
            'idIntegracao': hash_chaves,
            'organograma': item['organograma'],
            'funcao': item['funcao'],
            'subFuncao': item['subfuncao'],
            'programa': item['programa'],
            'acao': item['acao'],
            'descricao': item['descricao_despesa'],
            'naturezaDespesa': item['natureza'],
            'mascara': item['mascara'],
            'parametrosExerc': {
                'id': item['id_exercicio']
            },
            'recursoContabil': {
                'numeroRecurso': item['recurso_bth'],
                'descricao': item['desc_recurso']
            },
            'numeroDespesa': item['dotcodigo']
        }

        # 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 Despesas',
            'id_gerado': None,
            'json': json.dumps(dict_dados),
            'i_chave_dsk1': item['id_entidade'],
            'i_chave_dsk2': item['loaano'],
            'i_chave_dsk3': item['dotcodigo']
        })

        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.')
Example #10
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['chave_dsk1'],
                                              item['chave_dsk2'],
                                              item['chave_dsk3'])
        url_parametrizada = url.replace('{exercicio}', str(item['chave_dsk2']))
        dict_dados = {
            'idIntegracao': hash_chaves,
            'url': url_parametrizada,
            'entidadeGestora': {
                'id': item['id_entidade_gestora']
            },
            'organograma': {
                'id': item['id_organograma']
            },
            'localEntrega': {
                'id': item['id_local_entrega']
            },
            'parametrosExerc': {
                'id': item['id_parametro_exercicio']
            },
            'codigo': item['codigo'],
            'data': item['data_solicitacao'].strftime("%Y-%m-%d"),
            'nomeSolicitante': item['nome_solicitante'],
            'assunto': model.cleanhtml(item['assunto']),
            'tipoNecessidade': {
                'valor': item['tipo_necessidade']
            },
            'objeto': item['objeto'],
            'justificativa': model.cleanhtml(item['justificativa']),
            'observacao': model.cleanhtml(item['observacao']),
            'status': {
                'valor': item['status_solicitacao']
            },
            'situacaoCadastral': {
                'valor': item['situacao_cadastral']
            },
        }

        # 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 Solicitações de Compra',
            'id_gerado': None,
            'json': json.dumps(dict_dados),
            'i_chave_dsk1': item['chave_dsk1'],
            'i_chave_dsk2': item['chave_dsk2'],
            'i_chave_dsk3': item['chave_dsk3']
        })

        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 envio dos dados.')
    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_controle_migracao = []
        lista_dados_enviar = []
        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['clicodigo'],
                                              item['copano'], item['copnro'],
                                              item['separador'],
                                              item['nfisequencia'])
        dict_dados = {
            'idIntegracao': hash_chaves,
            'fornecedor': {
                'id': item['id_fornecedor']
            },
            'tipoComprovante': {
                'id': item['id_tipo_comprovante']
            },
            'numeroComprovante': item['numero_comprovante'],
            'dataEmissao': item['data_emissao'],
            'valorBruto': item['valor_bruto'],
            'valorDesconto': item['valor_desconto'],
            'valorLiquido': item['valor_liquido'],
        }

        if item['serie'] is not None:
            dict_dados.update({'serie': item['serie']})

        if item['finalidade'] is not None:
            dict_dados.update({'finalidade': item['finalidade']})

        # 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 Comprovantes',
            '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']
        })

        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 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.')
Example #12
0
def iniciar_envio(params_exec, dados, metodo, *args, **kwargs):
    print('- Iniciando envio dos dados.')
    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_controle_migracao = []
        lista_dados_enviar = []
        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'])
        dict_dados = {
            'idIntegracao': hash_chaves,
            'codigoMaterial': item['chave_dsk1'],
            'descricao': item['descricao'],
            'ativo': item['ativo'],
            'estocavel': item['estocavel'],
            'tipoMaterial': {
                'valor': item['tipo_material']
            },
            'classificacao': {
                'valor': item['classificacao']
            },
            'tipoCombustivel': {
                'valor': item['tipocombustivel']
            },
            'unidadeCompra': {
                'id': item['id_un_medida']
            },
            'unidadeEstoque': {
                'id': item['id_un_medida']
            },
            'classe': {
                'id': item['id_classe']
            },
            'grupo': {
                'id': item['id_grupo']
            },
            'especificacoes': [
                {
                    'descricao': item['especificacao']
                }
            ]
        }

        if 'datainativacao' in item and item['datainativacao'] is not None:
            dict_dados.update({
                'dataInativacao': item['datainativacao']
            })

        # 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 Materiais',
            'id_gerado': None,
            'json': json.dumps(dict_dados),
            'i_chave_dsk1': item['chave_dsk1']
        })

        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 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.')
Example #13
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)

    for reg in dados:
        query = f'''select
                    row_number() over() as id,
                    '305' as sistema,
                    'processo-proposta-pendente' as tipo_registro,
                    *
                from (
                    select distinct
                        aux.*,
                        (regexp_replace(u.unicpfcnpj,'[/.-]|[ ]','','g')) as cpf_participante,
                        0.00 as valor_unitario,
                        i.cmiqtde as quantidade,
                        null as marca,
                        'NAO_COTOU' as situacao,
                        0 as colocacao,
                        (select id_gerado from public.controle_migracao_registro where hash_chave_dsk = md5(concat(305, 'processo', aux.clicodigo, aux.minano, aux.minnro))) as id_processo,
                        (select id_gerado from public.controle_migracao_registro where hash_chave_dsk = md5(concat(305, 'processo-participante', aux.clicodigo, aux.minano, aux.minnro, (regexp_replace(u.unicpfcnpj,'[/.-]|[ ]','','g'))))) as id_participante,
                        (select id_gerado from public.controle_migracao_registro where hash_chave_dsk = md5(concat(305, 'processo-item', aux.clicodigo, aux.minano, aux.minnro, '@', coalesce(i.lotcodigo, 0) , '@', i.cmiitem))) as id_item,
                        (select id_gerado from public.controle_migracao_registro where hash_chave_dsk = md5(concat(305, 'processo-proposta-pendente', aux.clicodigo, aux.minano, aux.minnro, (regexp_replace(u.unicpfcnpj,'[/.-]|[ ]','','g')), aux.cmiid))) as id_gerado
                    from (
                        select
                            participante.clicodigo,
                            participante.minano,
                            participante.minnro,
                            item.cmiid ,
                            participante.unicodigo
                        from (
                            select pl.clicodigo, pl.minano, pl.minnro, pl.unicodigo
                            from wco.tbparlic pl
                            where pl.clicodigo = {reg['clicodigo']}
                            and pl.minano = {reg['minano']}
                            and pl.minnro = {reg['minnro']}
                        ) participante
                        cross join (
                            select it.clicodigo, it.minano, it.minnro, it.cmiid
                            from wco.tbitemin it
                            where it.clicodigo = {reg['clicodigo']}
                            and it.minano = {reg['minano']}
                            and it.minnro = {reg['minnro']}
                        ) item
                    ) aux
                    left join wco.tbitemin i on (i.clicodigo = aux.clicodigo and i.minano = aux.minano and i.minnro = aux.minnro and i.cmiid = aux.cmiid)
                    inner join wun.tbunico u on (u.unicodigo = aux.unicodigo)
                    where not exists (
                        select 1
                        from wco.tbcadqcp qcp
                        where qcp.clicodigo = aux.clicodigo
                        and qcp.minano = aux.minano
                        and qcp.minnro = aux.minnro
                        and qcp.unicodigo = aux.unicodigo
                        and qcp.cmiid = aux.cmiid
                    )
                    and exists (
                        select 1
                        from wco.tbcadqcp qcp
                        where qcp.clicodigo = aux.clicodigo
                        and qcp.minano = aux.minano
                        and qcp.minnro = aux.minnro
                    )
                ) tab
                where id_gerado is null
                and id_processo is not null
                and id_participante is not null
                and id_item is not null
                order by 1, 2 desc, 3 desc, 4 asc'''
        pgcnn = model.PostgreSQLConnection()
        df = pgcnn.exec_sql(query, index_col='id')
        lista_dados = [i for i in df.to_dict('records')]
        total_erros = 0
        contador = 0
        total_dados = len(lista_dados)
        if total_dados > 0:
            print(
                f'- Enviando propostas pendentes do processo {reg["minnro"]}/{reg["minano"]} ({reg["clicodigo"]})'
            )
        for item in lista_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['minano'],
                item['minnro'], item['cpf_participante'], item['cmiid'])
            url_parametrizada = url.replace('{exercicio}', str(item['minano'])) \
                .replace('{processoAdministrativoId}', str(item['id_processo']))
            dict_dados = {
                'idIntegracao': hash_chaves,
                'url': url_parametrizada,
                'processoAdministrativo': {
                    'id': item['id_processo']
                },
                'participante': {
                    'id': item['id_participante']
                },
                'item': {
                    'id': item['id_item']
                },
                'situacao': {
                    'valor': item['situacao']
                },
                'quantidade': item['quantidade'],
                'valorUnitarioPercentual': item['valor_unitario']
            }

            if item['marca'] is not None:
                dict_dados.update({'marca': item['marca']})

            # 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 Propostas Pendentes do Processo',
                'id_gerado':
                None,
                'json':
                json.dumps(dict_dados),
                'i_chave_dsk1':
                item['clicodigo'],
                'i_chave_dsk2':
                item['minano'],
                'i_chave_dsk3':
                item['minnro'],
                'i_chave_dsk4':
                item['cpf_participante'],
                'i_chave_dsk5':
                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_dados > 0:
            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.')
Example #14
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['chave_dsk1'], item['chave_dsk2'],
            item['chave_dsk3'], item['chave_dsk4'], item['chave_dsk5'])
        url_parametrizada = url.replace('{exercicio}', str(item['chave_dsk2']))\
                               .replace('{solicitacaoId}', str(item['id_solicitacao']))
        dict_dados = {
            'idIntegracao': hash_chaves,
            'url': url_parametrizada,
            'solicitacao': {
                'id': item['id_solicitacao']
            },
            'material': {
                'id': item['id_material']
            },
            "materialEspecificacao": {
                'id': item['id_especificacao']
            },
            'numero': item['numero'],
            'quantidade': item['quantidade'],
            'valorUnitario': item['valor_unitario'],
            'valorTotal': item['valor_total'],
            'status': {
                'valor': item['status']
            },
            'amostra': item['amostra']
        }

        # 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 Item da Solicitações de Compra',
            'id_gerado': None,
            'json': json.dumps(dict_dados),
            'i_chave_dsk1': item['chave_dsk1'],
            'i_chave_dsk2': item['chave_dsk2'],
            'i_chave_dsk3': item['chave_dsk3'],
            'i_chave_dsk4': item['chave_dsk4'],
            'i_chave_dsk5': item['chave_dsk5']
        })

        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.')
Example #15
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['cpf_cnpj'])
        dict_dados = {
            'idIntegracao': hash_chaves,
            'cpfCnpj': item['cpf_cnpj'],
            'dataInclusao': item['datainclusao'],
            'nome': item['nome'],
            'tipo': {
                'valor': item['tipo_pessoa']
            },
            'situacao': {
                'valor': item['situacao']
            }
        }

        if item['tipo_pessoa'] == 'JURIDICA':
            if item['nome_fantasia'] is not None:
                dict_dados.update({'nomeFantasia': item['nome_fantasia']})
            """if item['inscricao_estadual'] is not None and item['estadoInscricao'] is not None:
                dict_dados.update({'inscricaoEstadual': item['inscricao_estadual']})
                dict_dados.update({'estadoInscricao': {'id': item['estadoInscricao']}})"""

        if len(item['array_emails']) > 0:
            dict_dados.update(
                {'email': {
                    'descricao': item['array_emails'][0]
                }})

        if len(item['array_telefones']) > 0:
            dict_dados.update(
                {'telefone': {
                    'descricao': item['array_telefones'][0]
                }})

        if len(item['array_enderecos']) > 0:
            # print(type(item['array_enderecos']), item['array_enderecos'])
            if item['array_enderecos'][0]['bairro'] is not None \
                    and item['array_enderecos'][0]['logradouro'] \
                    and item['array_enderecos'][0]['municipio']:
                dict_dados.update({
                    'endereco': {
                        'bairro': {
                            'id': item['array_enderecos'][0]['id_bairro']
                        },
                        'municipio': {
                            'id': item['array_enderecos'][0]['id_municipio']
                        },
                        'logradouro': {
                            'id': item['array_enderecos'][0]['id_logradouro']
                        },
                        'cep': item['array_enderecos'][0]['cep'],
                        'complemento':
                        item['array_enderecos'][0]['complemento'],
                        'numero': item['array_enderecos'][0]['numero']
                    }
                })

        # 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 Responsáveis',
            'id_gerado': None,
            'json': json.dumps(dict_dados),
            'i_chave_dsk1': item['cpf_cnpj'],
        })

        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.')
Example #16
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_minuta'],
                                              item['nro_minuta'])
        url_parametrizada = url.replace('{exercicio}',
                                        str(item['ano_processo']))
        dict_dados = {
            'idIntegracao': hash_chaves,
            'url': url_parametrizada,
            'parametroExerc': {
                'id': item['id_parametro_exercicio']
            },
            'localEntrega': {
                'id': (id_local_entrega_padrao if item['id_local_entrega'] == 0
                       else item['id_local_entrega'])
            },
            'tipoObjeto': {
                'id': item['id_tipo_objeto']
            },
            'formaJulgamento': {
                'id': item['id_forma_julgamento']
            },
            'prazoEntrega': {
                'id': (id_prazo_entrega_padrao if item['id_prazo_entrega'] == 0
                       else item['id_prazo_entrega'])
            },
            'formaPagamento': {
                'id': item['id_forma_pagamento']
            },
            'dataProcesso': item['data_processo'],
            'numeroProcesso': item['nro_processo'],
            'numeroProtocolo': item['numero_protocolo'],
            'anoProtocolo': item['ano_protocolo'],
            'controleSaldo': {
                'valor': item['controle_saldo']
            },
            'previsaoSubcontratacao': item['previsao_subcontratacao'],
            'objeto': item['objeto'],
            'destinatarioEducacao': item['destinatario_educacao'],
            'destinatarioSaude': item['destinatario_saude']
        }

        if item['observacao'] is not None:
            dict_dados.update({'observacao': item['observacao']})

        if item['justificativa'] is not None:
            dict_dados.update({'justificativa': item['justificativa']})

        if item['id_regime_execucao'] != 0:
            dict_dados.update(
                {'regimeExecucao': {
                    'id': item['id_regime_execucao']
                }})

        # 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 Processos Administrativos',
            'id_gerado': None,
            'json': json.dumps(dict_dados),
            'i_chave_dsk1': item['clicodigo'],
            'i_chave_dsk2': item['ano_minuta'],
            'i_chave_dsk3': item['nro_minuta']
        })

        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.')
Example #17
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.')
Example #18
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['nro_ato'], item['ano_ato'],
                                              item['tipo_ato'])
        dict_dados = {
            'idIntegracao': hash_chaves,
            'tiposAto': {
                'id': item['id_tipo_ato']
            },
            'naturezaTextoJuridico': {
                'id': item['id_natureza_texto_juridico']
            },
            'numero': item['numero_oficial'],
            'dataCriacao': item['data_criacao'].strftime("%Y-%m-%d"),
            'dataRevogacao': None,
            'dataSancao': None,
            'numeroDiarioOficial': None
        }

        if item['data_publicacao'] is not None:
            dict_dados.update({
                'dataPublicacao':
                item['data_publicacao'].strftime("%Y-%m-%d")
            })

        if item['data_vigorar'] is not None:
            dict_dados.update(
                {'dataVigorar': item['data_vigorar'].strftime("%Y-%m-%d")})

        if item['ementa'] is not None:
            dict_dados.update({'ementa': model.cleanhtml(item['ementa'])})

        # 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,
            'json': json.dumps(dict_dados),
            'i_chave_dsk1': item['nro_ato'],
            'i_chave_dsk2': item['ano_ato'],
            'i_chave_dsk3': item['tipo_ato']
        })

        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.')
Example #19
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.')
Example #20
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_ata'], item['nro_ata'],
                                              item['separador'],
                                              item['arpsequencia'])
        url_parametrizada = url.replace('{exercicio}', str(item['ano_ata']))
        dict_dados = {
            'idIntegracao': hash_chaves,
            'url': url_parametrizada,
            'sequencial': item['sequencial'],
            'entidade': {
                'id': item['id_entidade']
            },
            'tipoInstrumento': {
                'id': item['id_tipo_instrumento']
            },
            'tipoObjeto': {
                'id': item['id_tipo_objeto']
            },
            'processoAdministrativo': {
                'entidade': {
                    'id': item['id_entidade']
                },
                'numero': item['nro_processo'],
                'ano': item['ano_processo']
            },
            'fundamentacaoLegal': {
                'id': item['id_fundamentacao_legal']
            },
            'ataRegistroPrecoContrato': {
                'id': item['id_ata']
            },
            'numeroTermo': item['nro_ata'],
            'ano': item['ano_ata'],
            'objetoContratacao': item['objeto'],
            'tipoControleSaldo': {
                'valor': item['tipo_controle_saldo']
            },
            'fornecedor': {
                'id': item['id_fornecedor']
            },
            'dataAssinatura': item['dt_assinatura'],
            'dataInicioVigencia': item['dt_inicio_vigencia'],
            'dataFimVigencia': item['dt_fim_vigencia'],
            'origem': {
                'valor': item['origem']
            },
            'observacao': item['observacao'],
            "situacao": {
                "valor": item['situacao']
            }
        }

        if item['valor_original'] != 0.0:
            dict_dados.update({'valorOriginal': item['valor_original']})

        # 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 Contratações ARP',
            'id_gerado': None,
            'json': json.dumps(dict_dados),
            'i_chave_dsk1': item['clicodigo'],
            'i_chave_dsk2': item['ano_ata'],
            'i_chave_dsk3': item['nro_ata'],
            'i_chave_dsk4': item['separador'],
            'i_chave_dsk5': item['arpsequencia']
        })

        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.')