121 – CALCULANDO EL PRECIO POR HORA DEL CLIENTE en el sistema con BD y GITHUB(👨💻PHPyMYSQL💻)
Duración: 12 minDescripción
🎓 Lección 121: Calculando el Precio por Hora del Cliente (PHP & MySQL)
La Lección 121 marca el regreso al controlador de facturación (controller_registrar_factura.php) con el objetivo de utilizar el tiempo de estadía del vehículo y las tarifas establecidas en el Módulo de Precios para calcular el monto a cobrar.
🕒 1. Problema Inicial: Cálculo de Días
Al inicio, se identifica un problema en la lógica del cálculo del tiempo:
- Problema: El vehículo de prueba había estado en el parqueo por más de un día (26 horas, desde el día anterior). El código actual solo calculaba la diferencia en horas (ej. "2 horas con 51 minutos"), sin contabilizar el día completo. [05:24]
- Solución Temporal: Para poder continuar con el cálculo del precio por horas, el instructor modifica manualmente la fecha de entrada del vehículo en la tabla tickets para que coincida con el día actual, simulando una estadía de solo tres horas. [06:34]
💰 2. Lógica para Obtener el Precio
Se procede a implementar la consulta para obtener el precio unitario basado en las horas de estadía calculadas:
- Tiempo de Estadía: El valor clave es $hora_calculada (la parte entera de la diferencia de tiempo, que en la prueba es 3). [04:08]
Consulta a la Base de Datos: Se ejecuta una consulta a la tabla tabla_precios para buscar el precio que corresponde a la cantidad de horas calculada:
SQL
SELECT * FROM tabla_precios WHERE cantidad = $hora_calculada AND detalle = 'Horas' AND estado = 1
- Condiciones: La consulta busca un registro donde la cantidad sea igual a 3 (las horas de estadía) Y el detalle sea igual a 'Horas'. [07:43]
- Resultado: La consulta devuelve el precio establecido para 3 horas, que es 9 bolivianos. [08:54]
- Asignación de Precio: El precio obtenido (9) se asigna a la variable $precio, la cual se utilizará para la inserción en la tabla de facturación. [11:19]
🛑 3. Bloqueo y Próximos Pasos
El instructor determina que el cálculo de la cantidad final (monto total) no es una simple multiplicación de $precio por la diferencia de tiempo, ya que el precio (9) ya representa la tarifa total por las 3 horas.
El problema crítico que queda pendiente es la distinción entre días y horas:
- Pendiente: El código debe ser capaz de determinar si el tiempo transcurrido corresponde a días (más de 24 horas) o solo a horas para buscar el precio en la tabla bajo la condición adecuada (detalle = 'Días' o detalle = 'Horas'). [09:30]
- Siguiente Paso: La próxima lección se centrará en calcular la diferencia de días para resolver esta lógica antes de avanzar con el cálculo del monto final y la conversión a literal. [12:12]
Lecciones
Apoya este proyecto
Si te gusta nuestro contenido, ¡apóyanos con una donación!
Donar por Airtm Donar por Binance¡Gracias por tu apoyo! ❤️