MySQL - Mi primer trigger - Ayuda

   
Vista:

Mi primer trigger - Ayuda

Publicado por Diego (4 intervenciones) el 23/05/2015 16:50:49
Buenas tardes. Necesito ayuda con mi primer triger.
Es un pequeño sistema para un hotel en PHP y MySQL.
Tengo una tabla llamada tbldisponible. La misma tiene los siguientes campos: orden, fecha, a_vender, vendidas, disponible.
Datos de los campos:
orden: Autoincrement sus datos son 1, 2, 3... 365
fecha: son fechas por ejemplo del 01-01-2015 hasta 31-12-2015
a_vender = x
vendidas = y
disponible = x-y ( esa es la idea del trigger)

Mediante una consulta yo verifico si entre un rango de fechas tengo disponible >0 en todas esas fechas, en caso afirmativo genero una reserva. Y a vendidas le sumo 1 para cada fecha dentro de ese rango.

La idea es generar un trigger que una vez hecho esto recorra la tabla y recalcule el campo disponible, osea que haga la cuenta a_vender - vendidas y guarde el resultado en disponible.
Nunca utilizé triggers y no se ni como empezar.

Espero haber sido claro.
Muchas gracias por su ayuda.
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

Mi primer trigger - Ayuda

Publicado por Diego (4 intervenciones) el 24/05/2015 04:02:32
Ya lo resolví de otra manera, gracias igual a todos.
Saludos
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 xve

Mi primer trigger - Ayuda

Publicado por xve (898 intervenciones) el 24/05/2015 10:43:38
Hola Diego, nos puedes compartir como lo solucionaste?
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

Mi primer trigger - Ayuda

Publicado por Diego (4 intervenciones) el 25/05/2015 13:54:31
Hola xve. En realidad me di cuenta que no tenia sentido recorrer toda la tabla para actualizar ese campo. Si yo realizo una consulta y me devuelve un grupo de digamos 5 registros, en la misma instrucción donde sumo 1 al campo vendidas le resto 1 al campo a_vender. Obviamente es lo más lógico, pero no lo estaba haciendo jajajaja.
Por lo menos a mi me pasa que si estoy mucho tiempo metido en el código llega un momento en que ya no veo claras las cosas...es ahí cuando me paro, dejo todo y me voy a caminar unos minutos y respirar aire fresco. Despúes de unos minutos ya veo las cosas mas claras. Recomiendo hacer esto, muchas veces tenemos la solución delante nuestro y no la vemos.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de xve

Mi primer trigger - Ayuda

Publicado por xve (898 intervenciones) el 25/05/2015 14:38:35
Gracias por compartirlo Diego!!!
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

Mi primer trigger - Ayuda

Publicado por Diego (4 intervenciones) el 25/05/2015 16:11:04
Quiero aportar algo que quizás le sirva a alguien, yo lo implementé y me facilitó mucho las cosas.
El sistema que yo estoy diseñando, que es para un hotel de mi familia, está enlazado a MercadoPago, osea que una persona puede ingresar, consultar disponibilidad y abonar con tarjeta de crédito. Más allá de eso tambien le doy la opción de hacerlo mediante transferencia bancaria y le doy un plazo de 48Hs para realizarla, caso contrario la reserva se da de baja.
Al generar una nueva reserva yo guardo en un campo el instante preciso en que el cliente genera la reserva y el vencimiento de la misma de la siguiente manera:

date_default_timezone_set("America/Argentina/Buenos_Aires");
$ya= date("Y-m-d H:i:s");
$dosdias = strtotime ( '+2 day');
$dosdias = date ('Y-m-d H:i:s' , $dosdias );


Las variables $ya y $dosdias las guardo en el registro junto con los datos de la reserva (nombre, tel, email, etc).

Si recibo el depósito confirmo la reserva cambiandole el estado de pendiente a aprobado desde una página a la que tiene acceso solo el personal del hotel. Y para ir chequeando que las reservas no estén vencidas lo que hice fué utilizar TRABAJOS CRON donde un script PHP solicita una vez por hora las reservas en estado pendiente y chequea la fecha y hora actual con las guardadas como fecha de vencimiento, si la fecha actual es superior a la de vencimiento marco la reserva como cancelada y le envío un mail automáticamente al cliente informandole que su reserva fué dada de baja.
Lo bueno de TRABAJOS CRON es que vos podés automatizar un proceso para que se repita cuando vos quieras (una vez por año o una vez por minuto, por días, semanas, etc). Es muy facil de usar y muy recomendable para cualquier tarea que se quiera automatizar.
Sé que seguramente para muchos es algo común, pero quizás le sirva a alguien como me sirvió a mi.
Saludos.
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