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ê?