MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    Calculo de Horas Extras com percentual de horas

    Compartilhe

    Gibba Junior
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1
    Registrado : 04/04/2017

    Calculo de Horas Extras com percentual de horas

    Mensagem  Gibba Junior em Sex 07 Abr 2017, 00:48

    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

      Data/hora atual: Ter 19 Set 2017, 12:47