Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/07/2013, 17:25
Avatar de tanliz
tanliz
 
Fecha de Ingreso: abril-2013
Ubicación: Irapuato
Mensajes: 63
Antigüedad: 11 años, 7 meses
Puntos: 1
procedimiento almacenado, no realiza instrucciones que escribo?!

Ayuda por favor!!! tengo este procedimiento

Código MySQL:
Ver original
  1. DELIMITER $$
  2.  
  3. USE `proiplus`$$
  4.  
  5.  
  6. CREATE DEFINER=`proi`@`localhost` PROCEDURE `Elimina_Compra`(IN CompraId VARCHAR(6),
  7.                         IN usuario VARCHAR(20))
  8.     DECLARE fecha DATETIME;
  9.     DECLARE total DECIMAL(10,2);
  10.     DECLARE proveedorID VARCHAR(6);
  11.     DECLARE newSaldo DECIMAL(10,2);
  12.     SET fecha=NOW();
  13.     SET total=IFNULL((SELECT Total FROM compras WHERE compra_id=CompraId),0);
  14.     SET proveedorID=(SELECT Proveedor_Id FROM compras WHERE compra_id=CompraId);
  15.     SET newSaldo=IFNULL((SELECT Saldo FROM cuentas_por_pagar WHERE proveedor_id=proveedorID AND Estatus_Cuenta='Pendiente'),0)-total;
  16.    
  17.     IF newSaldo=0 THEN
  18.         UPDATE cuentas_por_pagar
  19.         SET Estatus_Cuenta='Cancelada',
  20.             Usuario_Modifico=usuario,
  21.             Fecha_Modifico=fecha
  22.         WHERE proveedor_id=proveedorID
  23.         AND Estatus_Cuenta='Pendiente';
  24.     ELSE
  25.         UPDATE cuentas_por_pagar
  26.         SET Saldo=newSaldo,
  27.             Usuario_Modifico=usuario,
  28.             Fecha_Modifico=fecha
  29.         WHERE proveedor_id=proveedorID
  30.         AND Estatus_Cuenta='Pendiente';
  31.     END IF;
  32.    
  33.    
  34.     UPDATE compras
  35.     SET Estatus_Compra='Cancelada',
  36.         Usuario_Modifico=usuario,
  37.         Fecha_Modifico=fecha
  38.     WHERE Compra_Id=CompraId;
  39.    
  40.     END$$
  41.  
  42. DELIMITER ;

la actualización de la compra si la realiza correctamente, pero en la condición nunca entra a la primera, siempre se pasa a la segunda, pienso que el error puede estar en las consultas que realizo primero, pero no logro encontrar el error... me podrían ayudar? MUCHAS GRACIAS DE ANTEMANO...