Árvore de páginas

Ponto Eletrônico - Diversas

SomaHoras(ExpN1, ExpN2)
Objetivo: Somar horas(sexagenais)

Parâmetros:
ExpN1: Quantidade de horas a ser somado
ExpN2: Quantidade de horas a ser somado

Retorno:Somatória de ExpN1 e ExpN2
------------------------------------------------------------------------
SubHoras(ExpN1, ExpN2)
Objetivo:Subtrair as horas(sexagenais)

Parâmetros:
ExpN1: Quantidade de horas (subtraido)
ExpN2: Quantidade de horas (subtraido)

Retorno:Resultado da subtração ExpN1 por ExpN2
------------------------------------------------------------------------
Hrs2Min(ExpN1)
Objetivo:Converter horas para minutos

Parâmetros:
ExpN1: Quantidade de horas

Retorno:Número de minutos
------------------------------------------------------------------------
Min2Hrs(ExpN1)
Objetivo:Converter minutos para horas

Parâmetros:
ExpnN1: Número de minutos a serem convertidos em horas
 

Retorno:Número de horas
------------------------------------------------------------------------
PerAponta(ExpD1, ExpD2, ExpD3)
Objetivo:Obter o período de apontamento

Parâmetros:
ExpD1 - variável data passada por referência
ExpD2 - variável data passada por referência
ExpD3 - data base (opcional). Se omitida será carregado dDataBase.

Retorno:True - Perído de apontamento localizado.
False - Período de apontamento não localizado.
------------------------------------------------------------------------
fDhToNs(ExpD1, ExpN1)
Objetivo:Converter data e hora em número sequencial. Utilizado em comparações de horas. Ex: 22:00 dia x1 > 02:00 dia x2. Se essa comparação for efetuada diretamente concluir-se-a que 22:00 é maior, porém está no dia anterior. Para que está comparação possa ser efetuada corretamente deve-se converter as horas dos dois dias e compara-los.

Parâmetros:
ExpD1 - Data referente ao horário
ExpN1 - horário

Retorno:Número sequencial
-------------------------------------------------------------------------

fNsToDh(ExpN1,ExpC1)
Objetivo:Converter um número sequencial em data ou hora

Parâmetros:
ExpN1 - número sequencial
ExpC1 - 'H' - retorna hora ou 'D' retorna a data

Retorno:Data ou hora referente ao número sequencial ExpN1.
-------------------------------------------------------------------------

fFeriado(ExpC1,ExpD1,ExpC2)
Objetivo:Identificar se é feriado e retornar a descrição do mesmo.

Parâmetros:
ExpC1 - Filial
ExpD1 - Data para pesquisa do feriado
ExpC2 - variável passada por referência para retorno da descrição do feriado.

Retorno:True - É Feriado
                False - Não é Feriado
-------------------------------------------------------------------------

DataHora2Val( dExp1 , nExp1 , dExp2 , nExp2 , cExp1 )

Objetivo: Retornar a Diferença em valor entre datas/horas.

Observação: Não considera Adicional Noturno

Parâmetros: dExp1 -> 1a. Data
nExp1 -> 1a. Hora
dExp2 -> 2a. Data
nExp2 -> 2a. Data
cExp1 -> "A" Para Retorno em Anos
"D" Para Retorno em Dias
"H" Para Retorno em Horas
"M" Para Retorno em Meses
NIL Para Retorno em Minutos

Retorno: Diferença em Anos/Dias/Horas/Meses ou Minutos entre Duas Datas

Exemplo:

nDiferenca := 0.00

nDiferenca := DataHora2Val(dDataBase,14.00,dDataBase+1,13.59,"H")

Retorno: nDiferenca = 23.59

-------------------------------------------------------------------------

DataHora2Str( dExp , nExp )

Objetivo: Converter Data/Hora em "String". Util para comparar se uma Da Ta/Hora é maior ou menor que outra Data/Hora.

Parâmetros: dExp -> Data
nExp -> Hora

Retorno: "String" de Data + "String" de Hora.
-------------------------------------------------------------------------

RetIniTab( dDfim , nHfim , nHtab , nHint , lHnot )

Objetivo: Retornar a Data/Hora Ideais para Marcação de Entrada a Partir da Data/Hora de Saída considerando ou não as Horas de Intervalo e a Hora Noturna Reduzida.

Parâmetros: dDfim -> Data em que será encerrado o expediente
nHfim -> Hora em que será encerrado o expediente
nHtab -> Número de horas que devem ser trabalhadas
nHint -> Número de horas que devem ser consideradas para o descanso do intervalo.
lHnot -> .T. Para considerar a hora noturna reduzida na apuração.
.F. Para não considerar a hora noturna reduzida na apuração.
Retorno: Array de duas posições contendo datas e horas Ideais para o início do Expediente.

Exemplos:

aMarcId := {}
dDatafn := Ctod("01/01/2000")

aMarcId := RetIniTab( dDatafn , 0.00 , 8 , 1 , .F. )

Retorno : aMarcId[1] = 31/12/1999
aMarcId[2] = 15.00

2o. Considerando o Horário Noturno

aMarcId := RetIniTab( dDatafn , 0.00 , 8 , 1 , .T. )

Retorno : aMarcId[1] = 31/12/1999
aMarcId[2] = 15.17

-------------------------------------------------------------------------

RetFimTab( dDini , nHini , nHtab , nHint , lHnot )

Objetivo: Retornar a Data/Hora Ideais para marcação de Saída a Partir da Data/Hora de Entrada considerando ou não asHoras de Intervalo e a Hora Noturna Reduzida.

Parâmetros:

dDini -> Data em que será iniciado o expediente
nHini -> Hora em que será iniciado o expediente
nHtab -> Número de horas que devem ser trabalhadas
nHint -> Número de horas que devem ser consideradas para o descanso do intervalo.
lHnot -> .T. Para considerar a hora noturna reduzida na apuração.
.F. Para não considerar a hora noturna reduzida na apuracão.
Retorno: Array de duas posições contendo Data e Horas Ideais para o fim do expediente.
 

Exemplos:



aMarcId := {}
dDataIn := Ctod("01/01/2000")

1º Sem Considerar o Horário Noturno

aMarcId := RetFimTab( dDataIn , 0.00 , 8 , 1 , .F. )

Retorno : aMarcId[1] = 01/01/2000
aMarcId[2] = 09.00

2º Considerando o Horário Noturno

aMarcId := RetFimTab( dDataIn , 0.00 , 8 , 1 , .T. )

Retorno : aMarcId[1] = 01/01/2000
aMarcId[2] = 08.17
-------------------------------------------------------------------------

fCalHoras(dDt1,nHr1,dDt2,nHr2,nHoras,nHorasNot,lNoturno,dDtIni,nHrAcNot,nIniHnot,nFimHnot,nMinHnot,lAcreNot,aPerNot)

Objetivo: Calcular a Diferença em Horas entre duas Datas/Horas.

Observação: Considera o Adicional Noturno.

Parâmetros:

dDt1 ,; //01 -> Data 1
nHr1 ,; //02 -> Hora 1
dDt2 ,; //03 -> Data 2
nHr2 ,; //04 -> Hora 2
nHoras ,; //05 -> <@>Horas Normais Apontadas
nHorasNot ,; //06 -> <@>Horas Noturnas Apontadas
lNoturno ,; //07 -> Apontar Horas Noturnas
dDtIni ,; //08 -> Data Inicial Para a Hora Noturna
nHrAcNot ,; //09 -> <@>Horas de Acrescimo Noturno
nIniHnot ,; //10 -> Inicio do Horario Noturno
nFimHnot ,; //11 -> Final do Horario Noturno
nMinHnot ,; //12 -> Minutos do Horario Noturno
lAcreNot ,; //13 -> Apenas Acrescimo Noturno
aPerNot ; //14 -> Periodo da Hora Noturna


Retorno: Número total de horas ( Normais + Noturnas )

Exemplos:

dDt1 := Ctod("01/01/2000")
nHr1 := 0.00
dDt2 := Ctod("01/01/2000")
nHr2 := 23.59
nHoras := 0.00
nHorasNot := 0.00
nHorasTot := 0.00
lNoturno := .T.

dDtIni := Ctod("01/012000")

nHrAcNot := 0
nIniHnot := 22.00

nFimHnot := 05.00

nMinHnot := 52.5

lAcreNot := .F.

aPerNot := {}

 
1º  Considerando o Horário Noturno

nHorasTot := fCalHoras(dDt1,nHr1,dDt2,nHr2,@nHoras,@nHorasNot,lNoturno,dDtIni,@nHrAcNot,nIniHnot,nFimHnot,nMinHnot,lAcreNot,aPerNo)

Retorno: nHoras = 18.59
nHorasNot = 05.43
nHorasTot = 24.42

2º Sem Considerar o Horário Noturno

lNoturno := .F.

nHorasTot := fCalHoras(dDt1,nHr1,dDt2,nHr2,@nHoras,@nHorasNot,lNoturno)

Retorno: nHoras = 23.59
nHorasNot = 00.00
nHorasTot = 23.59
 

Nível 1 (Acesso Clientes)
Espanhol , Inglês