Galera, boa noite!
Estou aqui quebrando a cabeça para fazer um calculo e não consigo...
Usei um código que pequei aqui no fórum, já vou me desculpando pq não me recordo o nome do autor... Porém, para me atender fiz algumas mudanças nele... pois precisava descontar do calculo a hora do almoço.
A minha duvida e a seguinte ao calcular a hora extra... se o funcionário ficar na empresa fazendo 5 horas extra no dia eu tenho as seguintes situações:
1º até 2 horas extras (50%)
2º a partir da 3 hora extra (60%)
3º apos as 22:00 adicional noturno.
Campo extra1 deverá ter no maximo 2:00
Campo extra2 deverá ter as todas as horas acima de 3:00
Campo adnot deverá ter as horas somente se passar das 22:00
Eu chego no resulta das horas extras ou banco de horas negativo, porém, não estou conseguindo separar os calculos acima.
Se alguém poder ajudar agradeço.
------------------------------
Sub CalculaHoraExtra()
If IsNull(Me.Data) Or IsNull(Me.HorarioEntrada) Or IsNull(Me.HorarioSaidaAlmoco) Or IsNull(Me.HorarioEntraAlmoco) Or IsNull(Me.HorarioSaida) Then
Exit Sub
End If
Dim F, totSegundos, HExtra, totSegPer1, totSegPer2, cinquenta
Me.Per1 = MontaHora(DateDiff("s", Me.Data & " " & Me.HorarioEntrada, Me.Data & " " & Me.HorarioSaidaAlmoco))
Me.Per2 = MontaHora(DateDiff("s", Me.Data & " " & Me.HorarioEntraAlmoco, Me.Data & " " & Me.HorarioSaida))
F = Split(Me.Per1, ":")
totSegPer1 = 3600 * F(0) + 60 * F(1) + F(2)
F = Split(Me.Per2, ":")
totSegPer2 = 3600 * F(0) + 60 * F(1) + F(2)
totSegundos = totSegPer1 + totSegPer2
HExtra = Abs(totSegundos - Me.qdEscala)
Me.TotalHora = MontaHora(totSegundos)
If totSegundos >= Me.qdEscala Then
Me.HoraExtra = MontaHora(HExtra)
Else
Me.HoraExtra = "-" & MontaHora(HExtra)
End If
End Sub
Estou aqui quebrando a cabeça para fazer um calculo e não consigo...
Usei um código que pequei aqui no fórum, já vou me desculpando pq não me recordo o nome do autor... Porém, para me atender fiz algumas mudanças nele... pois precisava descontar do calculo a hora do almoço.
A minha duvida e a seguinte ao calcular a hora extra... se o funcionário ficar na empresa fazendo 5 horas extra no dia eu tenho as seguintes situações:
1º até 2 horas extras (50%)
2º a partir da 3 hora extra (60%)
3º apos as 22:00 adicional noturno.
Campo extra1 deverá ter no maximo 2:00
Campo extra2 deverá ter as todas as horas acima de 3:00
Campo adnot deverá ter as horas somente se passar das 22:00
Eu chego no resulta das horas extras ou banco de horas negativo, porém, não estou conseguindo separar os calculos acima.
Se alguém poder ajudar agradeço.
------------------------------
Sub CalculaHoraExtra()
If IsNull(Me.Data) Or IsNull(Me.HorarioEntrada) Or IsNull(Me.HorarioSaidaAlmoco) Or IsNull(Me.HorarioEntraAlmoco) Or IsNull(Me.HorarioSaida) Then
Exit Sub
End If
Dim F, totSegundos, HExtra, totSegPer1, totSegPer2, cinquenta
Me.Per1 = MontaHora(DateDiff("s", Me.Data & " " & Me.HorarioEntrada, Me.Data & " " & Me.HorarioSaidaAlmoco))
Me.Per2 = MontaHora(DateDiff("s", Me.Data & " " & Me.HorarioEntraAlmoco, Me.Data & " " & Me.HorarioSaida))
F = Split(Me.Per1, ":")
totSegPer1 = 3600 * F(0) + 60 * F(1) + F(2)
F = Split(Me.Per2, ":")
totSegPer2 = 3600 * F(0) + 60 * F(1) + F(2)
totSegundos = totSegPer1 + totSegPer2
HExtra = Abs(totSegundos - Me.qdEscala)
Me.TotalHora = MontaHora(totSegundos)
If totSegundos >= Me.qdEscala Then
Me.HoraExtra = MontaHora(HExtra)
Else
Me.HoraExtra = "-" & MontaHora(HExtra)
End If
End Sub