dateDiffHourSH6 - Data hora, diferença e calculo H6_TEMPO H6_DATAFIN H6_DATAINI
Função criada a alguns anos atrás para cálculo de hora da SH6, existem outras formas de cálcular. Segue 1 delas.
#INCLUDE "APVT100.CH"
User Function VTClear()
/*/{Protheus.doc} dateDiffHourSH6
Atualiza Tempo
@type function
@author Eurai Rapelli
@since 2014.01.01
/*/
Static Function dateDiffHourSH6()
Local cHoraIni := "00:00"
Local cHora := ""
Local cHoraCalc := ""
Local cQuery := ""
/*
A680ConvHora
cHora - Hora a ser convertida no formato HH:MM
cDe - Formato da hora fornecida (N-Normal/C-Centesimal)
cPara - Formato a ser retornado (N-Normal/C-Centesimal)
SomaHoras( cHoraIni, M->H6_TEMPO )
StrTran( '10.08', '.', ':' )
"10:08"
A680ConvHora('10.08', "N", "C")
"0000000010:13"
A680ConvHora('10.08', "N", "N")
"0000000010:08"
A680ConvHora('10.08', "C", "N")
"0000000010:05"
A680ConvHora('10.08', "C", "C")
"0000000010:08"
A680ConvHora("0.50", "C", "C")
"0000000000:50"
A680ConvHora("0.50", "N", "N")
"0000000000:50"
A680ConvHora("0.50", "N", "C")
"0000000000:83"
A680ConvHora("0.50", "C", "N")
"0000000000:30"
A680ConvHora("0.65", "C", "N")
"0000000000:39"
A680ConvHora("2.08", "C", "N")
"0000000002:05"
SomaHoras( "08:00", "0000000000:39" )
8.39
SomaHoras( "08:00", "0000000002:05" )
10.05
*/
If oBrw01:nAt > 1
If oBrw01:aCols[oBrw01:nAt-1,rXXDTAPONT] == M->H6_DTAPONT
cHoraIni := oBrw01:aCols[oBrw01:nAt-1,rXXHORAFIN]
Endif
Endif
M->H6_TEMPO := Padl( AllTrim( SubStr(M->H6_TEMPO,01,03) ), 03, '0' ) + SubStr(M->H6_TEMPO,04)
M->H6_TEMPO := StrTran( StrTran( M->H6_TEMPO, " ", "0" ), ".", ":" )
If M->H6_TEMPO <> '000:00'
M->H6_DATAINI := M->H6_DATAFIN
cHora := A680ConvHora(M->H6_TEMPO, "N", "N")
M->H6_HORAINI := StrTran( cHoraIni, ".", ":" )
Do While ( cHoraCalc := SomaHoras( cHoraIni, cHora ) ) >= 24.00
cHoraIni := '00:00'
cHoraCalc := StrTran( StrZero( cHoraCalc, 6, 2), ".", ":" )
cHora := SubHoras( cHoraCalc, '24:00' )
cHora := StrTran( StrZero( cHora, 6, 2), ".", ":" )
M->H6_DATAINI := DaySub( M->H6_DATAINI, 1 )
EndDo
M->H6_HORAFIN := StrTran( StrZero( cHoraCalc, 5, 2), ".", ":" )
Endif
Return( Nil )
Gostou? Compartilhe com seus amigos e deixe um comentário! 😎