Fornecedores Em Atraso

Este caso de uso envia uma mensagem para as unidades gestora que possuem os e-mails no parâmetro ParametrosGestoraLiquidcaoDespesas.EMAILS_PARA_ALERTAS_DO_SISTEMA informando os fornecedores que entraram em atraso na entrega de materiais de empenhos em um determinado dia.

O timer verifica, uma vez, diariamente os fornecedores cujos empenhos apresentam a data de limite da entrega dos materiais pendentes no dia anterior e envia as informações desses fornecedores e seus empenhos ao responsável da DIVISÃO DE MATERIAL do DMP. As informações são:

  • Nome e CPF/CNPJ do fornecedor;
  • Empenhos em atraso do fornecedor:
    • Número;
    • Ano;
    • Unidade gestora;
    • Data de recebimento do empenho pelo fornecedor;
    • Processo de Compra:
      • Número e Ano do processo;
      • Licitação.

Modelo:

          Caro(a) chefe do DMP - DIVISÃO DE MATERIAL, 
          Abaixo encontram-se as informações dos fornecedores que entraram em atraso hoje, data de <Data Atual>.
          _________________________________________________________________________________
          Fornecedor: <Nome(CPF/CNPJ)>
          EMPENHO(S):
              <Número/Ano - Gestora> recebido em <data de recebimento>
              PROCESSO DE COMPRA:
                  Processo: <Número/Ano>
                  Licitação: <Modalidade - Número/Ano>
          Esta mensagem é automática e não deve ser respondida.
  • RN01 - O timer será executado no início de todos os dias, uma vez por dia, pegando os fornecedores com empenhos com data limite de entrega no dia anterior.
  • RN02 - A data limite da entrega dos materiais do empenho é a data de recebimento do empenho pelo fornecedor mais os dias do prazo de entrega.
  • RN03 - Todo dia é verificado todos os fornecedores que estão em atraso e essas serão agrupadas por unidade gestora dos empenhos que as mesmas estão associadas. Para cada gestora vai existir um email cadastrados no sistema e será para esse grupo que será enviado o email com todas os fornecedores em atraso para aquela gestora. Esse grupo de mails será indicado pelo parâmetro EMAILS_PARA_ALERTAS_DO_SISTEMA.
Classe Tabela
br.ufrn.sipac.liquidacao.timers.TimerLiquidacaoFornecedorEmAtraso comum.infra.registro_timer
br.ufrn.sipac.liquidacao.pagamento.dominio.RecebimentoEmpenho administrativo.liquidacao.recebimento_empenho
br.ufrn.sipac.orcamento.movimentacoes.dominio.Empenho administrativo.sco.empenho
br.ufrn.sipac.compras.dominio.ProcessoCompra administrativo.compras.processo_compra
br.ufrn.sipac.compras.licitacao.dominio.Proposta administrativo.compras.proposta
br.ufrn.sipac.cadastro.dominio.Pessoa (Fornecedor) administrativo.public.pessoa

Plano de Teste

Sistema: SIPAC

Módulo: <NÃO SE APLICA>

Link(s): <NÃO SE APLICA>

Usuário: <NÃO SE APLICA>

Papel que usuário deve ter: <NÃO SE APLICA>

Para o timer definir um tempo curto (sugiro 2 ou 3 minutos) para o timer e o servidor de testes como servidor de restrição de execução. O tempo é definido diretamento no banco. Monitorar o e-mail de desenvolvimento (desenv@info.ufrn.br).

Também verificar se o email está sendo enviado corretamente ao responsável. (O testador pode modificar o email de recebimento através do caso de uso SIGPRH → Menu Servidor → Serviços → Atualizar Dados Pessoais. Lembrar de depois modificar o email novamente para desenv@info.ufrn.br para não afetar outros testes com esse usuário.)

O Responsável da unidade DMP - DIVISÃO DE MATERIAL (11.02.03.03) é quem recebe o email com os fornecedores em atraso.

Para deixar empenhos em atraso no dia, obtenha o RELATÓRIO DE FORNECEDORES EM ATRASO pelo caminho:

  • Módulos → Liquidação de Despesas → Relatórios → Fornecedor → Fornecedores em Atraso

Escolha um empenho e execute o sql:

      
      UPDATE compras.proposta 
      SET prazo_entrega = (
        SELECT ((CURRENT_DATE - receb.data_recebimento) - 1 ) AS data_limite 
      	FROM compras.proposta p 
      	JOIN compras.processo_compra pc ON p.id_processo_compra = pc.id_proc_compra
           JOIN sco.empenho e ON e.id_processo_compra = pc.id_proc_compra
	        JOIN liquidacao.recebimento_empenho receb ON receb.id_empenho = e.id_empenho
      	WHERE e.cod_empenho = <NÚMERO DO EMPENHO> AND e.ano = **<ANO DO EMPENHO> AND e.id_unidade_gestora = <ID UNIDADE GESTORA DO EMPENHO>
        AND e.id_credor = p.id_fornecedor
          )
      WHERE id_proposta = (
        SELECT p.id_proposta
      	FROM compras.proposta p 
        JOIN compras.processo_compra pc ON p.id_processo_compra = pc.id_proc_compra
      	   JOIN sco.empenho e ON e.id_processo_compra = pc.id_proc_compra
      		JOIN liquidacao.recebimento_empenho receb ON receb.id_empenho = e.id_empenho
      	WHERE e.cod_empenho = <NÚMERO DO EMPENHO> AND e.ano = <ANO DO EMPENHO> AND e.id_unidade_gestora = <ID UNIDADE GESTORA DO EMPENHO>
      	AND e.id_credor = p.id_fornecedor
           );

Assim, um novo prazo de entrega será informado deixando o empenho com 1 dia de atraso, ou seja, deixando o primeiro dia de atraso como a data atual. Isso pode ser verificado ao atualizar o relatório.

  • Para executar o timer via navegador, é só logar no sistema e informar a URL:

http://host/sipac/test.do?acao=timerFornecedorEmAtraso

  • desenvolvimento/especificacoes/arquitetura/servicos/timers/timerfornecedorematraso.txt
  • Última modificação: 2017/04/03 18:10
  • (edição externa)