Ver Mensaje Individual
  #12 (permalink)  
Antiguo 27/03/2014, 14:12
AndresPal
 
Fecha de Ingreso: febrero-2014
Mensajes: 48
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: Stored Procedure en MySQL 5.0.45 y Apache Web Server Version 2.2.4

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Por qué estás poniendo este punto y coma?:
Código MySQL:
Ver original
  1. CREATE PROCEDURE tumba_reserva ();

Código MySQL:
Ver original
  1. DROP PROCEDURE IF EXISTS tumba_reserva$$
  2.  
  3. CREATE PROCEDURE tumba_reserva ()
  4.     BEGIN
  5.       DECLARE hora_reserva TIME;    
  6.       DECLARE hora_actual TIME;
  7.       DECLARE estatus INT;
  8.      
  9.       SET hora_actual = CURTIME();
  10.  
  11.      # Si esto devuelve más de un registro, no funcionará.
  12.       SELECT estado INTO estatus FROM reservacion_departamento;
  13.  
  14.       IF (estatus = 1) AND (hora_actual >= hora_reserva) THEN
  15.  
  16.         #esto hara un update sobre todos los registros de la tabla.
  17.         UPDATE reservacion_departamento SET estado = 3;
  18.       END IF;
  19.     END $$
Te explico lo que quiero hacer, tengo una tabla de reservas, en donde un cliente reserva por ejemplo una habitación con una fecha de llegada y una fecha de salida, al momento de reservar primero el cliente pregunta si las fechas estan disponibles el sistema hace una consulta a la bd y si están disponibles deja que reserve. Ahora bien para el cliente poder reservar debe introducir un número de vauche bancario que le llegará al administrador y verificará luego en su banco a ver si ese número de vauche coincide con algún deposito hecho a su cuenta bancaria por el costo de la estadia.

Bien pero lógicamente no todos los clientes van a haber hecho el deposito antes de llegar al modulo de reserva, por eso quiero crear un SP en donde el usuario elija las fechas que quiere quedarse y se guarden momentaneamente en la BD por un periodo de 24 horas, que le de tiempo al cliente de ir al banco depositar y luego culminar su reserva introduciendo el número de vauche, si en 24 horas el cliente no culmina su reserva pues la BD debe liberar esas dos fechas para que si otro cliente consulta aparezcan libres, por eso cuando guardo la reserva guardo la hora del servidor para restarla con la hora actual y si es mayor a 24 ponerle a la reserva el estatus 3 que es igual a descartada. Para eso cree una tabla status que contiene tres estados predeterminados de las reservas. 1 es pendiente, 2 es procesada y 3 descartada.

Luego ese SP quiero activarlo con Job del cual tampoco se mucho puesto a que nunca los he usado y apenas comienzo a leer sobre ellos.