3827 - Atestados Externos - Gerar Dias Justificados no Afastamento
Problema: Para o cadastramento de atestados externos, na gravação é inserido automaticamente um registro de histórico de afastamento. Para atestados médicos lançados com a situação tipo 3 - Auxílio Doença, onde é necessário informar os dias justificados, o afastamento é gerado com este campo zerado.
A necessidade é que o valor do campo Dias Atestado (R110MAM.DiaAte) seja levado para o campo Dias Justificados (R038AFA.DiaJus).
Atualmente, os atendentes cadastram o atestado e, em seguida, devem acessar através do botão Afastamento da tela de Atestados Externos, apenas para inserir o número de dias justificados no histórico.
Há possibilidade deste número de dias de atestado ser levado para o histórico de afastamento, no campo de dias justificados?
Quando ocorre / onde se aplica: Medicina > Atendimentos > Atestado Externo. Ocorre quando é informada a situação tipo 3 - Auxílio Doença, pois é necessário informar o campo Dias Justificados do Histórico de Afastamento.
Solução: Para tratar esta situação é possível utilizar a regra por processo 19 - Inserir Histórico de Afastamento, que também é chamada no cadastro do Atestado. Nesta regra os campos da tabela R038AFA estão disponíveis, desta forma, para gravar o campo Dias Justificados, basta alimentar diretamente o campo R038AFA.DiaJus, não sendo necessário executar um comando Update na tabela. Neste caso o tratamento deve ser feito quando a variável vExecucaoRegra for igual a zero, ou seja, antes de inserir o histórico de afastamento.
Nesta regra está disponível a variável de sistema OriHisAfa, que informa a tela de origem (tela que está gerando o histórico de afastamento). Maiores detalhes sobre esta variável podem ser verificados no help do sistema.
Porém os dados da tabela R110MAM (Atestado Médico) não estão disponíveis nesta regra, assim os dados do atestado devem ser buscados através de cursor.
Segue exemplo de regra:
definir cursor C110MAM;
definir cursor C110FIC;
definir data vDatAte;
/* Antes da inclusão */
Se (vExecucaoRegra = 0)
Inicio
vNumEmp = R038AFA.NumEmp;
vTipCol = R038AFA.TipCol;
vNumCad = R038AFA.NumCad;
vDatAte = R038AFA.DatAfa;
vCodFic = 0;
vDiaJus = 0;
C110FIC.SQL SELECT CODFIC FROM R110FIC WHERE NUMEMP =:vNumEmp AND TIPCOL =:vTipCol AND NUMCAD =:vNumCad;
C110FIC.AbrirCursor();
Se (C110FIC.Achou)
vCodFic = C110FIC.CodFic;
C110FIC.FecharCursor();
/* Atestados Médicos Externo */
Se (OriHisAfa = 4)
Inicio
C110MAM.SQL SELECT DIAATE FROM R110MAM WHERE NUMEMP =:vNumEmp AND CODFIC =:vCodFic AND DATATE =:vDatAte;
C110MAM.AbrirCursor();
Se (C110MAM.Achou)
vDiaJus = C110MAM.DiaAte;
C110MAM.FecharCursor();
Fim;
R038AFA.DiaJus = vDiaJus;
Fim;
Validade: /#31/12/2013#
Público: Interno, canais/consultores, clientes
A necessidade é que o valor do campo Dias Atestado (R110MAM.DiaAte) seja levado para o campo Dias Justificados (R038AFA.DiaJus).
Atualmente, os atendentes cadastram o atestado e, em seguida, devem acessar através do botão Afastamento da tela de Atestados Externos, apenas para inserir o número de dias justificados no histórico.
Há possibilidade deste número de dias de atestado ser levado para o histórico de afastamento, no campo de dias justificados?
Quando ocorre / onde se aplica: Medicina > Atendimentos > Atestado Externo. Ocorre quando é informada a situação tipo 3 - Auxílio Doença, pois é necessário informar o campo Dias Justificados do Histórico de Afastamento.
Solução: Para tratar esta situação é possível utilizar a regra por processo 19 - Inserir Histórico de Afastamento, que também é chamada no cadastro do Atestado. Nesta regra os campos da tabela R038AFA estão disponíveis, desta forma, para gravar o campo Dias Justificados, basta alimentar diretamente o campo R038AFA.DiaJus, não sendo necessário executar um comando Update na tabela. Neste caso o tratamento deve ser feito quando a variável vExecucaoRegra for igual a zero, ou seja, antes de inserir o histórico de afastamento.
Nesta regra está disponível a variável de sistema OriHisAfa, que informa a tela de origem (tela que está gerando o histórico de afastamento). Maiores detalhes sobre esta variável podem ser verificados no help do sistema.
Porém os dados da tabela R110MAM (Atestado Médico) não estão disponíveis nesta regra, assim os dados do atestado devem ser buscados através de cursor.
Segue exemplo de regra:
definir cursor C110MAM;
definir cursor C110FIC;
definir data vDatAte;
/* Antes da inclusão */
Se (vExecucaoRegra = 0)
Inicio
vNumEmp = R038AFA.NumEmp;
vTipCol = R038AFA.TipCol;
vNumCad = R038AFA.NumCad;
vDatAte = R038AFA.DatAfa;
vCodFic = 0;
vDiaJus = 0;
C110FIC.SQL SELECT CODFIC FROM R110FIC WHERE NUMEMP =:vNumEmp AND TIPCOL =:vTipCol AND NUMCAD =:vNumCad;
C110FIC.AbrirCursor();
Se (C110FIC.Achou)
vCodFic = C110FIC.CodFic;
C110FIC.FecharCursor();
/* Atestados Médicos Externo */
Se (OriHisAfa = 4)
Inicio
C110MAM.SQL SELECT DIAATE FROM R110MAM WHERE NUMEMP =:vNumEmp AND CODFIC =:vCodFic AND DATATE =:vDatAte;
C110MAM.AbrirCursor();
Se (C110MAM.Achou)
vDiaJus = C110MAM.DiaAte;
C110MAM.FecharCursor();
Fim;
R038AFA.DiaJus = vDiaJus;
Fim;
Validade: /#31/12/2013#
Público: Interno, canais/consultores, clientes