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).