Resolve "[Fornecedores] Salvar informação de MEI e porte quando consultar SICAF"
requested to merge 1020-fornecedores-salvar-informacao-de-mei-e-porte-quando-consultar-sicaf-2 into master
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:
- 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.
- testar os filtros disponibilizados para porte e mei.
- 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
- 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.
- Caso retorne dados do sicaf ou RFB, ao fechar o modal a tela inicial deve recarregar os dados novos.
- 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.
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