none
Registro horas trabalhas e hora extra RRS feed

  • Discussão Geral

  • Pessoal boa noite,

    Gostaria de fazer um aplicativo utilizando BD Access para registrar diariamente horario entrada e saida e hora extra acumulada (caso trabalhe mais de 8 horas) ou hora devida (caso trabalhe menos de 8 horas) e que possa por meio de um botão calcular a soma destes acumulados e devedores  para cada mês (poderia ser uma data b inicial e final utilizando datetimepicker).

    Alguem poderia me ajudar com a lógica e comandos.?

    Na verdade eu até  já consegui avançar em um projeto que quase me atende. O único problema é que enrosquei na parte de fazer a conta de horas extras totais do mês, pois eu preciso estipular uma data inicial e final de soma e realiazar  a operação. Cara, não consigo. Lembrando que o aplicativo que quero desenvolver é só para controle, o funcionário mesmo digita o horaio (eu e alguns colegas) com total flexibilidade para alterar. De forma resumida, meu projeto está assim:

    TENHO UM bANCO DADOS ACCESS com uma tabela e os seguintes colunas

    data (texto curto)

    hora entrada (texto curto)

    saida almoço (texto curto)

    retorno almoço (texto curto)

    saída trabalho (texto curto)

    hora extra (texto curto)

    tenho 4 datetimepiker para inserir os 4 pontos de entrada e saída e 01 textbox para apresentar a hora extra do dia.

    Há também um datagridview que permite visualizar os registros atuais e anteriores.

    para calcular as diferenças de horas e hora extra, criei variáveis como timespan e utilizei subtract e add. A hora extra pode ser positiva (trabalhou mais) e pode ser negativa (faltou hora) pois podemos compensar dentro do mês.

    há também um reportviwer que apresenta todos os dados de registro para cada dia (data), porém sem separar por mês, pois não consegui fazer esta separação por diferentes meses.

    Isto á está funcional, tudo legal, só não consegui fazer a tal soma de horas extras em um intervalo pré determinado, tipo data inicio 01/01/2015 e data final 31/01/2015. Já queimei a cabeça e não consigo. Eu pensei em colocar dois datetimepicker para inserir a data inicial e final e um botão para calcular e mostras o resultado numa textbox.

    Você poderia me dar uma orientação

    • Editado Fernando Baliani sábado, 20 de fevereiro de 2016 13:06
    • Tipo Alterado Marcos SJ segunda-feira, 22 de fevereiro de 2016 12:40 Threads de "How to" serão modificadas para discussão geral
    sábado, 20 de fevereiro de 2016 02:45

Todas as Respostas

  • Ola, bom esses controles de ponto são um pouco "chatos" digamos assim, mas para você iniciar esse processo, não sei as informações que você levara em consideração na construção do aplicativo, mas você tem que lembrar que você poderá ter mais do que 4 registros (1E - 1S - 2E - 2S) onde: 1E = primeira entrada, 1S=primaiera saida e assim por diante. Outro ponto para você conseguir calcular você tera que verficar quantas marcações você tem para fazer os joguinhos duplos de marcação por exemplo
    1E - 08:00
    1S - 12:00
    2E - 14:00
    2s - 18:00
    Para que você tenha 12:00 - 8:00 = 4:00h e 18:00 - 14:00 = 4:00h, lembre também que tera que se preparar para controlar marcações impar pois o funcionário poderá ter essa situação.
    Para calcular horas extras indevidas e horas extras lembre-se que você deve ter um cadastro de carga horaria onde sera indicada a quantidade de horas mês de cada funcionario / pessoa ou seja 180h, 220h e etc esses valores serão comparados no ato do seu fechamento de ponto por exemplo usando também o calculo das marcações 1E-1S-2E-2S dia a dia para ir se acumulando as horas trabalhadas dia a dia para se ter esse montante calculado no final do seu mês ou periodo de fechamento

    Em questões de tabela de Banco de Dados, você poderia ter uma tabela
    CODFUNC
    DATAMARCACAO
    HORAMARCACAO, aqui você pode armazenar como HORA mesmo ou como numerico ex: 8:00 08 8,00
    POSICAOMARCACAO - 1E,1S,2E,2S e etc ..... pois pode ocorrer de haver mais marcações

    Em sua rotina de leitura dos dados do ponto faça a leitura dos registros em um periodo fechado de datas por exemplo de 01/02/2016 a 29/02/2016 faça a leitura dia a dia verificando se a quantidade de registros é PAR ou IMPAR para montar sua rotina de calculo pois tera que considerar isso para realizar o calculo de tras para a frente digamos assim 1E - 2E ou calcular na sequencia que elas estejam e deixar seu resultado positivo pois se vc ficar 8 - 12 = -4

    Outro ponto a ser considerado é seu funcionario / pessoa entrou para trabalhar dia 02/02/2016 e saiu dia 03/02/2016 tera que considerar isso você tera que saber se aquela marcação do dia 03/02 é referente ao dia 02/02

    Ex:

    02/02 - 20:00
    02/02 - 00:00
    03/02 - 02:00
    03/02 - 06:00
    Todas essas marcações são do dia 02/02 lembre-se de considerar isso, para isso crie em sua tabela uma outra coluna de DATA referente a data que aquela marcação foi apontada

    Não sei se escrevi muito mas espero ter ajudado com algumas informações seu projeto


    Junior

    sábado, 20 de fevereiro de 2016 10:37
  • Junior obrigado pelas considerações.


    Na verdade eu até  já consegui avançar em um projeto que quase me atende. O único problema é que enrosquei na parte de fazer a conta de horas extras totais do mês, pois eu preciso estipular uma data inicial e final de soma e realiazar  a operação. Cara, não consigo. Lembrando que o aplicativo que quero desenvolver é só para controle, o funcionário mesmo digita o horaio (eu e alguns colegas) com total flexibilidade para alterar. De forma resumida, meu projeto está assim:

    TENHO UM bANCO DADOS ACCESS com uma tabela e os seguintes colunas

    data (texto curto)

    hora entrada (texto curto)

    saida almoço (texto curto)

    retorno almoço (texto curto)

    saída trabalho (texto curto)

    hora extra (texto curto)

    tenho 4 datetimepiker para inserir os 4 pontos de entrada e saída e 01 textbox para apresentar a hora extra do dia.

    Há também um datagridview que permite visualizar os registros atuais e anteriores.

    para calcular as diferenças de horas e hora extra, criei variáveis como timespan e utilizei subtract e add. A hora extra pode ser positiva (trabalhou mais) e pode ser negativa (faltou hora) pois podemos compensar dentro do mês.

    há também um reportviwer que apresenta todos os dados de registro para cada dia (data), porém sem separar por mês, pois não consegui fazer esta separação por diferentes meses.


    Isto á está funcional, tudo legal, só não consegui fazer a tal soma de horas extras em um intervalo pré determinado, tipo data inicio 01/01/2015 e data final 31/01/2015. Já queimei a cabeça e não consigo. Eu pensei em colocar dois datetimepicker para inserir a data inicial e final e um botão para calcular e mostras o resultado numa textbox.

    Você poderia me dar uma orientação



    sábado, 20 de fevereiro de 2016 13:05
  • Bom vamos ver se te ajudo nisso, espero que a sentença abaixo ajude:

    Criei um tabela para teste
    Tabela Horario com um campo Hora do Tipo DateTime, inseri alguns horarios dentro

    <tfoot></tfoot>
    HORARIO
    Código HORA
    1 08:00
    2 12:00
    3 06:30
    4 04:50

    E usei a sentença SQL abaixo para somar as horas

    SELECT

                 IIF(SUM(MID(HORARIO.HORA,4,2)) < 60 , SUM(MID(HORARIO.HORA,4,2)) , SUM(MID(HORARIO.HORA,1,2)) + 1)
                 & ':' &
                 IIF(SUM(MID(HORARIO.HORA,4,2)) - 60 < 0 , SUM(MID(HORARIO.HORA,4,2)) - 60 * (-1) , SUM(MID(HORARIO.HORA,4,2)) - 60)


    FROM HORARIO;

    Espero ter ajudado


    Junior

    domingo, 21 de fevereiro de 2016 11:21
  • Júnior boa tarde,

    Ainda estou apanhando na soma de horas extras. Estou ficando louco, só falta este detalhe para finalizar. Você teria algum contato do tipo Skype, para que possa tirar as dúvidas de maneira mais objetica, isso se você puder me atender.

    Trata-se de uma aplicação para uso pessoal e não visa comércio.

    Grato

    domingo, 28 de fevereiro de 2016 21:09
  • Bom vamos ver se te ajudo nisso, espero que a sentença abaixo ajude:

    Criei um tabela para teste
    Tabela Horario com um campo Hora do Tipo DateTime, inseri alguns horarios dentro

    <tfoot></tfoot>
    HORARIO
    Código HORA
    1 08:00
    2 12:00
    3 06:30
    4 04:50

    E usei a sentença SQL abaixo para somar as horas

    SELECT

                 IIF(SUM(MID(HORARIO.HORA,4,2)) < 60 , SUM(MID(HORARIO.HORA,4,2)) , SUM(MID(HORARIO.HORA,1,2)) + 1)
                 & ':' &
                 IIF(SUM(MID(HORARIO.HORA,4,2)) - 60 < 0 , SUM(MID(HORARIO.HORA,4,2)) - 60 * (-1) , SUM(MID(HORARIO.HORA,4,2)) - 60)


    FROM HORARIO;

    Espero ter ajudado


    Junior


    Júnior boa tarde,

    Ainda estou apanhando na soma de horas extras. Estou ficando louco, só falta este detalhe para finalizar. Você teria algum contato do tipo Skype, para que possa tirar as dúvidas de maneira mais objetica, isso se você puder me atender.

    Trata-se de uma aplicação para uso pessoal e não visa comércio.

    Grato

    domingo, 6 de março de 2016 11:51
  • Fernando posso tentar ajudar sim, contato skype: jrjrmartins

    Junior

    domingo, 6 de março de 2016 13:45
  • Fernando posso tentar ajudar sim, contato skype: jrjrmartins

    Junior


    Ok Junior, já solicitei suaaautorização.
    domingo, 6 de março de 2016 21:26