Access - Importe por tiempo

   
Vista:

Importe por tiempo

Publicado por Rafi (66 intervenciones) el 30/12/2011 10:51:51
Hola de nuevo, vuelvo a insistir porque no consigo resolver este tema. Más abajo tengo abierto otra nota pero se pasa y no consigo ayuda.
El caso parece simple, importe por tiempo transcurrido entre dos fechas, pero con una aplicación de tarifas distintas, primeras 24 horas o fracción de estas 5€, resto de días o fracción 3€, os pongo unos ejemplos:
1 día 2 horas 32 minutos = 5€ del primer día + 3€ del segundo o fracción = 8€
0 días 23 horas 2 minutos = 5€ de la primera fracción + 0€ del resto = 5€

Necesito ideas para poder aplicar esto. Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Importe por tiempo

Publicado por JOSE (741 intervenciones) el 30/12/2011 14:22:12
te recuerdo que la ayuda es voluntaria

si no te responden será porque no te entienden , no te explicas bien o simplemente no quieren y por eso no puedes venir cesurando una actitud que es voluntaria .


primero no aclaras como se factura ,porque si bien en principio parece que el primer dia es a una tarifa fija y el resto a una tarifa por tiempo, en el segundo ejemplo sin haber transcurido un dia tambien tiene una tarifa fija , es decir un galimatías que solo parece que entiendes tu.

te voy a dar una idea que parece que no tienes pero que si exiges

traduce todo el tiempo a minutos

24h*60=1440minutos


ahora si el tiempo a cobrar < 1440

cobrar = tiempo a cobrar* precio minuto


si el tiempo a cobrar es >1440

cobrar = cuotafija + ( tiempo a cobra-1440 ) r* precio minuto

y eso es todo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Importe por tiempo

Publicado por Rafi (66 intervenciones) el 30/12/2011 14:58:08
Bueno, posiblemente no me explique bien, pero no es mi intención insistir hasta conseguir lo necesitado, simplemente pensé que es algo difícil de ejecutar y por eso no obtenía respuestas. Te agradezco JOSE tu intervención y la pondré en marcha a ver si me soluciona el problema.
Me vuelvo a explicar en lo que quiero:
Son dos tarifas distintas, la primera única de 5€ por las primeras 24 horas o fracción de estas, es decir lo mismo 1 minuto de esas 24h, que las 24horas 00 minutos costarían 5€. Al pasar de esas 24h ya se cobraría 3€ por día o fracción. Gracias a todos de nuevo y perdonad si no me explico.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Importe por tiempo

Publicado por jose (741 intervenciones) el 30/12/2011 16:26:31
Perdona, quizás me he dejado llevar por mi estado de ánimo

Verás ahora parece que el problema esta mejor detallado

con esta instrucción te facilita los minutos entre dos fechas
MINUTOSAFACTURAR = DateDiff("m", fechainicial, fechaactual)


una vez que tenemos los MINUTOSAFACTURAR y sabemos que el dia tiene 1440 minutos


si MINUTOSAFACTURAR < 1440 entonces IMPORTE = 5

si MINUTOSAFACTURAR > 1440 entonces

rem miro los dias completos mayores de 1
diasdetres= entero ( (MINUTOSAFACTURAR-1440) /1400 )
(entero no recuerdo ahora si es INT , CINT u otro eso buscalo)

rem miro se hay fraciones de dia y si es así añado un dia más de facturacion
if (MINUTOSAFACTURAR-1440) Mod 1440 >0 then let diasdetres=diasdetres+1


IMPORTE = 5 + (diasdetres *3 )


bueno, feliz año nuevo y siguientes
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Neckkito

Importe por tiempo

Publicado por Neckkito (1104 intervenciones) el 30/12/2011 16:43:28
Hola!
La solución de Jose me parece súper-interesante. Curiosamente le estaba dando vueltas a este "problemilla" al mismo tiempo y dado que he pensado una solución (y ya la tengo hecha) pues en vez de "tirarla" te la presento aquí por si también puede ser de utilidad.
Parte del supuesto que hay un campo donde se informa de la entrada, [FechaE], de la salida [FechaS] y de un campo donde se escribe el importe [Importe] (todo ello en un formulario).
Así pues, no creo que tengas problemas para adaptarlo, si lo utilizas. El código es:
...
Private Sub ...
Const tfa1 As Currency = 5
Const tfa2 As Currency = 3
Dim FechaE As Date, FechaS As Date
Dim horaE As Date, horaS As Date
Dim dias As Long
Dim diaSiguiente As Date
Dim import As Currency

FechaE = Format(Me.FechaE.Value, "dd/mm/yy")
FechaS = Format(Me.FechaS.Value, "dd/mm/yy")
horaE = Format(Me.FechaE.Value, "hh:mm:ss")
horaS = Format(Me.FechaS.Value, "hh:mm:ss")

'Si es el mismo día...
If FechaE = FechaS Then
'Sólo aplicamos la primera tarifa
import = tfa1
End If
'Si es el día siguiente tenemos que mirar si han pasado 24 horas
If FechaS = FechaE + 1 Then
'Si no han pasado las 24 horas
If horaS - horaE <= 0 Then
import = tfa1
Else
'Si han pasado las 24 horas añadimos la nueva tarifa
import = tfa1 + tfa2
End If
End If
'Si ha pasado más de un día calculamos los días
If FechaS > FechaE + 1 Then
diaSiguiente = FechaE + 1
dias = FechaS - diaSiguiente
'Miramos si sobrepasa la hora de entrada
'Si no la sobrepasa
If horaS - horaE <= 0 Then
import = tfa1 + tfa2 * dias
'Si la sobrepasa añadimos un día más
Else
import = tfa1 + tfa2 * (dias + 1)
End If
End If
'Asignamos el valor del importe al campo [importe]
Me.Importe.Value = import
End Sub
...

Un saludo,

Neckkito (... http://neckkito.eu5.org ...)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Importe por tiempo

Publicado por Rafi (66 intervenciones) el 30/12/2011 18:17:55
Acabo de ver vuestras intervenciones y voy a ponerme de inmediato a usarlas a ver como van ya que lo necesito para el proximo día uno. Gracias y deseos de felicidad y amistad para todos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Importe por tiempo

Publicado por Rafi (66 intervenciones) el 30/12/2011 20:02:44
Gracias de nuevo a ambos, he conseguido aplicar la modificación y funciona perfectamente, la verdad es que las dos van bien. Quizás esto me mantenga en mi puesto de trabajo algunos meses más. Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Importe por tiempo

Publicado por jose (741 intervenciones) el 30/12/2011 20:28:11
Pues me alegro mucho que te sirva , Espero que conserves mucho tiempo tu trabajo
Si en otra ocasión necesitas alguna cosa y está en nuestro conocimiento , no dudes que trataremos de solucionar problemas.

A los que contestamos a algunas preguntas nos agrada saber el buen o mal fin de nuestro esfuerzo, pero la gente no suele ni contestar , cosa que no ha sucedido en tu caso y que agradezco .


otro si :

para que no te pase como a Luis de un mensaje anterior que se quedó la empresa con su programa restaurando la copia de seguridad , te recomiendo que uses claves largas de 36 caracteres .

felices fiestas a todos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Enrique Ramírez

Importe por tiempo

Publicado por Enrique Ramírez (617 intervenciones) el 30/12/2011 21:11:52
Entra a mi sitio :
https://sites.google.com/site/jerrmex
en Aplicaciónes en Access
Descargas

busca la opción 76_ImportesSegunFechas

Esta consulta hace lo que quieres, como solo quieres cobrar 5 por el primer día y 3 el tiempo posterior no me meto en broncas de pelearme con las horas ni los minutos (eso según yo), checala y comentas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Importe por tiempo

Publicado por Rafi (66 intervenciones) el 02/01/2012 09:23:37
Ahora ya con la aplicación funcionando y tranquila, me he puesto a escudriñar con las opciones de Neckkito y de Enrique Ramírez, y he de decir que ambas tiran tambien bien con algunas diferencias. La más depurada en código es la de José.
Bueno chicos os agradezco a todos vuestro aporte y dedicación en auxilio a los demás en momentos de apuros. Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar