Este conteúdo não recebe atualizações, pois é referente a uma versão do sistema que foi descontinuada. Acesse a documentação da versão 6.10.1 aqui

IncLanBhr

Incluir lançamentos no banco de horas e atualiza as compensações. O lançamento será incluso com o campo origem de lançamento (OriLan) contendo o valor 'R' (regra).

É necessário utilizar a função ExcLanBhr sempre que for utilizada a função IncLanBhr, para que a regra possa ser executada mais vezes. Pois o lançamento deve ser excluído para não ser incluído em duplicidade. Ver abaixo exemplo 2.

Sintaxe: IncLanBhr(Numero NumEmp, Numero TipCol, Numero NumCad, Numero CodBhr, Numero DatLan, Numero CodSit, Numero QtdHor, Numero DatCmp)

Parâmetros:

Nome Tipo Descrição
NumEmp Numérico Número da empresa.
TipCol Numérico Tipo do Colaborador.
NumCad Numérico Cadastro do colaborador.
CodBhr Numérico Código do banco de horas.
DatLan Numérico Data do lançamento no banco de horas.
CodSit Numérico Situação do lançamento.
QtdHor Numérico Quantidade de horas (em minutos).
DatCmp Numérico Data de compensação.

Exemplo 1:

/* Incluir um lançamento no banco de horas via regra. */
Definir Numero xDatCmp;
Definir Numero xnumemp;
Definir Numero xtipcol;
Definir Numero xnumcad;

 

/* Condição para executar apenas uma vez por colaborador. */
Se ((R034FUN.NUMEMP <> XNUMEMP) OU (R034FUN.TIPCOL <> XTIPCOL) OU (R034FUN.NUMCAD <> XNUMCAD))
  Inicio
    /* Retorna a data na variável xDatCmp. */
    RetDatCmp(R034FUN.NumEmp, DatIni, 1, 301, xDatCmp);
    /* inclui lançamento no banco de horas. */
    IncLanBhr(R034FUN.NumEmp, R034FUN.TipCol, R034FUN.NumCad, 1, DatIni, 301, 300, xDatCmp);
  Fim;

 

xnumemp = R034FUN.NUMEMP;
xtipcol = R034FUN.TIPCOL;
xnumcad = R034FUN.NUMCAD;

Exemplo 2:

/* A regra de exclusão também pode ser utilizada no caso de executar a integração MAIS DE UMA VEZ, com inclusão de lançamentos via regra. Para não ocorrer erro ao incluir um lançamento com origem = 'R' que já existe, deve-se previamente excluir o lançamento (Orilan = 'R') no banco de horas. */

 

Definir Numero xDatCmp;
Definir Numero xnumemp;
Definir Numero xtipcol;
Definir Numero xnumcad;

 

/* Condição para executar apenas uma vez por colaborador. */
Se ((R034FUN.NUMEMP <> XNUMEMP) OU (R034FUN.TIPCOL <> XTIPCOL) OU (R034FUN.NUMCAD <> XNUMCAD))
  Inicio
    /* Retorna a data na variável xDatCmp. */
    RetDatCmp(R034FUN.NumEmp, DatIni, 1, 301, xDatCmp);
    /* Exclui lançamento do banco de horas previamente existente. */
    ExcLanBhr(R034FUN.NumEmp, R034FUN.TipCol, R034FUN.NumCad, 1, DatIni, 301);
    /* Inclui lançamento no banco de horas. */
    IncLanBhr(R034FUN.NumEmp, R034FUN.TipCol, R034FUN.NumCad, 1, DatIni, 301, 300, xDatCmp);
  Fim;

 

xnumemp = R034FUN.NUMEMP;
xtipcol = R034FUN.TIPCOL;
xnumcad = R034FUN.NUMCAD;

Exemplo 3:

/*O parâmetro QtdHor deve ter o valor sempre positivo, pois o que define se o lançamento terá sinal (campo r011lan.sinlan) positivo ou negativo é o parâmetro CodSit desta mesma função.*/

xNumEmp = R034FUN.NumEmp;
xNumCad = R034FUN.NumCad;
xTipCol = R034FUN.TipCol;

Definir Data vDatCmp;
Definir Data dDatLan;

RetDatCmp(xNumemp,FimApu,1,701,vDatCmp);
se(vDatCmp=FimApu)
 Inicio
   RetBHRDat(xnumemp,xtipcol,xnumcad,1,FimApu,xbhrdat);
   se (xBhrDat<0)
     se(x=0)
       Inicio
         Inicio
           xbhrdat = xbhrdat *(-1);
           dDatLan=FimApu+1;
           RetDatCmp(xNumemp,dDatLan,1,701,vDatCmp);
           ExcLanBhr(xNumEmp, xTipCol, xNumCad, 1, dDatLan, 701);
           IncLanBhr(xNumEmp, xTipCol, xNumCad, 1,dDatLan,701,xbhrdat,vDatCmp);
           x=1;
         fim
     Fim
 Fim;

Utilização: Apenas nas seguintes regras de Integração: Primeira Semana, Período de Geração e Período de Projeção.

Disponível para o módulo: Controle de Ponto e Refeitório (somente rotina de banco de horas).

Este artigo ajudou você?