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

    [Resolvido]Calculo de horas - estacionamento

    Compartilhe
    avatar
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4153
    Registrado : 20/04/2011

    [Resolvido]Calculo de horas - estacionamento

    Mensagem  Silvio em 5/12/2018, 18:07

    Prezados, fugindo um pouco do que eu conheço e domino, estou iniciando um novo projeto de sistema para um estacionamento.

    A parte de cadastro de veículos e clientes e localização .....já está pronta e funcional.

    No momento, estou a desenvolver esse lado que ainda não conheço.

    Bom vamos lá, tenho uma tabela de valores onde é inserido

    a- o valor da hora

    b- o valor da hora adicional

    Valor hora= R$ 7,00
    Valor hora adicional = R$3,00

    Quando é até uma hora, tudo bem....mas como fazer... se o cliente ficar 3 horas ?

    Como seria feito o calculo dos R$7,00 ( uma hora ) e mais os R$3,00 das duas horas passada ?

    Se alguém tiver um exemplo para estudos eu agradeço.


    [] 's



    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]
    avatar
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 305
    Registrado : 22/11/2016

    Re: [Resolvido]Calculo de horas - estacionamento

    Mensagem  IvanJr. em 5/12/2018, 19:16

    Veja se atende.

    Obs.: Na lógica utilizada o cliente sempre pagará pela primeira hora - mesmo tendo ficado só alguns minutos (ocupar o espaço de graça não rola). As horas adicionais também são cobradas por completo.

    Principal código utilizado ao clique de um botão
    Código:
    Dim intHorasAdicionais As Integer
        Dim curValorNormal     As Currency
        Dim curValorAdicional  As Currency

        If Nz(Me!txtIni.Value) = "" Then
            MsgBox "Preencha o campo.", vbExclamation, "Atenção"
            Me!txtIni.SetFocus
            Exit Sub
        ElseIf Nz(Me!txtFin.Value) = "" Then
            MsgBox "Preencha o campo.", vbExclamation, "Atenção"
            Me!txtFin.SetFocus
            Exit Sub
        ElseIf Me!txtIni.Value > Me!txtFin.Value Then
            MsgBox "A momento de entrada não pode ser posterior ao momento de saída.", vbExclamation, "Atenção"
            Exit Sub
        End If
        
        curValorNormal = DFirst("Normal", "tblValoresHora")
        curValorAdicional = DFirst("Adicional", "tblValoresHora")
        intHorasAdicionais = DateDiff("h", Me!txtIni.Value, Me!txtFin.Value)
        
        Me!txtValorPagar.Value = curValorNormal + (intHorasAdicionais * curValorAdicional)
    Anexos
    exemplo.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (30 Kb) Baixado 10 vez(es)
    avatar
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4153
    Registrado : 20/04/2011

    Re: [Resolvido]Calculo de horas - estacionamento

    Mensagem  Silvio em 6/12/2018, 09:19

    Bom dia Ivan...lhe agradeço pela tua disposição.

    Vou estudar teu exemplo.

    []'s


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]
    avatar
    caiosouza
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 362
    Registrado : 05/12/2016

    Re: [Resolvido]Calculo de horas - estacionamento

    Mensagem  caiosouza em 6/12/2018, 09:58

    Bom dia!

    Veja esse tópico:
    [Você precisa estar registrado e conectado para ver este link.]


    .................................................................................
    A persistência leva ao sucesso!
    avatar
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4153
    Registrado : 20/04/2011

    Re: [Resolvido]Calculo de horas - estacionamento

    Mensagem  Silvio em 6/12/2018, 10:19

    Bom dia a todos...

    Caio, seu exemplo eu já conheço ele, porém ele me atende....parcialmente.   O problema são as horas adicionais que tenho e preciso calcular.

    Ivan, o que passou é muito bom e pratico, porem ao agregar o mesmo ao sistema que estou fazendo, as horas adicionais não estão sendo calculadas.

    Creio que estou comendo "bola" em algum lugar e não consigo ver isso.  

    Estou enviado um anexo apenas com o necessário.

    Experimenta entrar com um período de mais de 2 horas e verá que apenas uma hora ( R$7,00 ) é calculada.

    []´s
    Anexos
    maximo.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (29 Kb) Baixado 5 vez(es)


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]
    avatar
    caiosouza
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 362
    Registrado : 05/12/2016

    Re: [Resolvido]Calculo de horas - estacionamento

    Mensagem  caiosouza em 6/12/2018, 10:58

    Bom dia,

    Silvio, qual são seus critérios?
    Quando os fracionamentos devem acontecer?

    Sugestão de montagem de lógica:
    1d exato = R$ 168,00? (R$ 7,00 * 24)
    1h exata = R$ 7,00

    <=15min = 25% hora exata (R$ 1,75) arredonda pra R$ 2,00
    <=30min: 50% de hora exata (R$ 3,50) arredonda pra R$ 5,00
    <=60min = 100% de hora exata (R$ 7,00)

    Nessa base segue exemplos:
    Carro w = Entrada: 05/12/2018 08:00 | Saída 06/12/2018 08:00 = R$ 168,00
    Carro x = Entrada: 06/12/2018 08:00 | Saída 06/12/2018 09:05 = R$ 9,00 (1 hora + constante de 15 min)
    Carro y = Entrada: 06/12/2018 08:00 | Saída 06/12/2018 08:20 = R$ 5,00 (constante de 30 min)
    Carro z = Entrada: 06/12/2018 08:00 | Saída 06/12/2018 08:39 = R$ 7,00 (contante de 30 min (1hora))


    .................................................................................
    A persistência leva ao sucesso!
    avatar
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4153
    Registrado : 20/04/2011

    Re: [Resolvido]Calculo de horas - estacionamento

    Mensagem  Silvio em 6/12/2018, 11:33

    Caio..não há critérios !   Aqui na minha cidade, ficou meia hora.....paga uma hora !
    Ficou uma hora e meia...paga duas...


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]
    avatar
    caiosouza
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 362
    Registrado : 05/12/2016

    Re: [Resolvido]Calculo de horas - estacionamento

    Mensagem  caiosouza em 6/12/2018, 11:35

    Veja anexo:
    Anexos
    maximo.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (33 Kb) Baixado 4 vez(es)
    avatar
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4153
    Registrado : 20/04/2011

    Re: [Resolvido]Calculo de horas - estacionamento

    Mensagem  Silvio em 6/12/2018, 12:09

    Caio....veja...

    uma hora= R$ 7,00
    Hora adicional = R$3,50

    Se o cliente entra as 09:00 e sai as 11:00 serão duas horas certo ?
    R$7,00 a primeira hora das 09:00 as 10:00 e mais R$3,50 das 10:00 as 11:00
    Dando um total de R$10,50

    Pelo teu calculo....não está batendo...faça esse teste baseado que eu acabei de colocar aqui para você.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]
    avatar
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 305
    Registrado : 22/11/2016

    Re: [Resolvido]Calculo de horas - estacionamento

    Mensagem  IvanJr. em 6/12/2018, 12:52

    Função principal utilizada neste exemplo
    Código:
    Public Function fncCalculaTempo(dtMomentoInicial As Date, dtMomentoFinal As Date, bytPrecisao As Byte)

        If (dtMomentoInicial = 0 Or dtMomentoFinal = 0) Or _
          dtMomentoInicial > dtMomentoFinal Then Exit Function
       
        Select Case bytPrecisao
       
            Case 1 '1 - Dias
                fncCalculaTempo = CInt(DateDiff("d", dtMomentoInicial, dtMomentoFinal) + (TimeValue(dtMomentoInicial) > TimeValue(dtMomentoFinal)))
           
            Case 2 '2 - Horas
                fncCalculaTempo = Format(CDate(dtMomentoFinal - dtMomentoInicial), "hh:nn")
               
            Case 3 '3 - HorasTotais
                fncCalculaTempo = DateDiff("h", dtMomentoInicial, DateAdd("n", -1, dtMomentoFinal))
               
        End Select

    End Function
    Anexos
    maximo_rev.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (33 Kb) Baixado 8 vez(es)
    avatar
    caiosouza
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 362
    Registrado : 05/12/2016

    Re: [Resolvido]Calculo de horas - estacionamento

    Mensagem  caiosouza em 6/12/2018, 13:44

    Bom dia!

    Segue anexo:

    Ficou assim:
    Se acima de 1 hora, pega hora (7,00) + adicional.
    Se os minutos passarem de 15, cai como adicional também.

    Para considera adicional a partir de 30 min, basta alterar na linha: IIf(varMin > 15, vHoraAd, IIf(varMin = 0, 0, vHora))
    Anexos
    maximo.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (33 Kb) Baixado 13 vez(es)


    .................................................................................
    A persistência leva ao sucesso!
    avatar
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4153
    Registrado : 20/04/2011

    Re: [Resolvido]Calculo de horas - estacionamento

    Mensagem  Silvio em 6/12/2018, 17:35

    Boa tarde a todos....

    Me desculpem não responder antes...mas mexer com órgão publico federal aqui no Brasil...é algo complicado demais ( falta de vontade do funcionário ).

    Ivan e Caio...parabéns aos dois !!   cheers  cheers  cheers  cheers  cheers  cheers  cheers

    Ficou show o que fizeram.    Ainda não domino completamente esse campo de horas..mas em breve já estarei fazendo com os pés nas costas.

    Deixo aqui registrado o meu agradecimento...e peço a vocês que não apaguem os arquivos enviados ou coloquem no repositório de exemplos caso alguém precise.


    Abraços a ambos.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]
    avatar
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 305
    Registrado : 22/11/2016

    Re: [Resolvido]Calculo de horas - estacionamento

    Mensagem  IvanJr. em 6/12/2018, 19:02

    Valeu Silvio. Valeu Caio. Sucesso.

      Data/hora atual: 16/12/2018, 11:21