Skip to content

Resolve "[Fornecedores] Salvar informação de MEI e porte quando consultar SICAF"

Antes de fazer o merge

  • validar estrutura do banco e migrações
  • validar fluxos em tela
  • remover limitador de 15 registros do código fonte
  • fazer consultas pra determinar quantos fornecedores serão consultados
  • realizar alinhamentos para evitar sobrecarga do SICAF

Descrição

Fluxo de Testes

Descreva os passos necessários para testar o MR, preferencialmente coloque prints de como o sistema deve se comportar. Ex:

  1. Testar integração do instrumento de cobrança dos seguintes caminhos.
  • Gestão Contratual -> meus contratos -> mais -> instrumentos de cobrança.
  • Gestão Contratual -> contratos -> mais -> instrumentos de cobrança.
  • Gestão Contratual -> fornecedores -> Consultar sicaf.
  1. testar os filtros disponibilizados para porte e mei.
  2. Verificar no banco de dados se há a estrutura:
  • Alteração de campos removendo not null (vem nulos do resultado da receita) na tabela fornecedorsicaf:
    • validade_receita_federal_pgfn
    • validade_certidao_fgts
    • validade_certidao_trabalhista
    • validate_receita_estadual_distrital
    • validade_receita_municipal
  • Criação de colunas na tabela fornecedorsicaf:
    • nome_fantasia
    • natureza_juridica
    • mei
    • porte
    • origem_sistema
    • data_vencimento_credenciamento
    • situacao_fornecedor
  1. Ao consultar o fornecedor irá aparecer uma tela de loading após recuperar ou não dados de consulta deve desaparecer e mostrar o formulário.
  2. Caso retorne dados do sicaf ou RFB, ao fechar o modal a tela inicial deve recarregar os dados novos.
  3. No momento que rodar a migration vai gerar 15 registros de job para consulta sicaf na fila do job, após o job rodar e clicar no filtro porte ou mei para ordenar deve aparecer os seguintes dados no caminho Gestão Contratual -> fornecedores. image

Implantação

Variável(eis) de ambiente

Ambientes:

  • Treina (2024SS/5503927174X)
  • Homologação (2024SS/5503927204X)
  • Produção (2024SS/5504104828X)
API_CONSULTA_RECEITA_HOST=****
API_CONSULTA_RECEITA_USUARIO=***
API_CONSULTA_RECEITA_SENHA=***

Configuração(ões) do Supervisor

  • Não se aplica

Comando(s)

  • Não se aplica

Instrução(ões)

Quantidade de fornecedores a serem consultados

Executar antes de subir a issue no ambiente

select count(dado.fornecedor) from (SELECT DISTINCT cif.fornecedor_id as fornecedor
FROM arp_item ai
         JOIN compra_item_fornecedor cif ON cif.id = ai.compra_item_fornecedor_id
         JOIN arp a ON a.id = ai.arp_id
         JOIN codigoitens c ON c.id = a.tipo_id
WHERE ai.deleted_at IS NULL
  AND cif.ata_vigencia_fim IS NOT NULL
  AND NOW() BETWEEN cif.ata_vigencia_inicio AND cif.ata_vigencia_fim
  AND c.descricao = 'Ata de Registro de Preços'

UNION

SELECT DISTINCT s.fornecedor_compra_id as fornecedor
FROM minutaempenhos s
WHERE s.situacao_id = (SELECT c.id
                       FROM codigoitens c
                       WHERE c.descricao IN ('EMPENHO EMITIDO')
                         AND c.descres = 'EMITIDO')
  AND s.tipo_empenhopor_id IN (SELECT c.id
                               FROM codigoitens c
                               WHERE c.descricao IN ('Compra', 'Contrato')
                                 AND c.descres IN ('COM', 'CON'))
  AND data_emissao > '2024-01-01'

UNION

SELECT DISTINCT f.fornecedor_id as fornecedor
FROM contratos f
WHERE f.situacao = true

union

select distinct(f.fornecedor_id) from fornecedorsicaf f
) as dado

Quantidade de fornecedores pupulados com as informações

Executar depois de subir a issue no ambiente e finalizar a execução da migration

select count(dado.fornecedor)
from (SELECT DISTINCT cif.fornecedor_id as fornecedor
      FROM arp_item ai
               JOIN compra_item_fornecedor cif ON cif.id = ai.compra_item_fornecedor_id
               JOIN arp a ON a.id = ai.arp_id
               JOIN codigoitens c ON c.id = a.tipo_id
      WHERE ai.deleted_at IS NULL
        AND cif.ata_vigencia_fim IS NOT NULL
        AND NOW() BETWEEN cif.ata_vigencia_inicio AND cif.ata_vigencia_fim
        AND c.descricao = 'Ata de Registro de Preços'

      UNION

      SELECT DISTINCT s.fornecedor_compra_id as fornecedor
      FROM minutaempenhos s
      WHERE s.situacao_id = (SELECT c.id
                             FROM codigoitens c
                             WHERE c.descricao IN ('EMPENHO EMITIDO')
                               AND c.descres = 'EMITIDO')
        AND s.tipo_empenhopor_id IN (SELECT c.id
                                     FROM codigoitens c
                                     WHERE c.descricao IN ('Compra', 'Contrato')
                                       AND c.descres IN ('COM', 'CON'))
        AND data_emissao > '2024-01-01'

      UNION

      SELECT DISTINCT f.fornecedor_id as fornecedor
      FROM contratos f
      WHERE f.situacao = true

      union

      select distinct(f.fornecedor_id)
      from fornecedorsicaf f) as dado
right join fornecedorsicaf fss on fss.fornecedor_id = dado.fornecedor
where fss.mei is not null

Não remover as próximas linhas

Closes #1020 (closed) #1058 (closed)

Edited by Brunno Alves

Merge request reports