/** * *Este metodo sirve para dar de baja un producto * * @param id_producto int Id del producto a desactivar **/ public static function Desactivar($id_producto) { Logger::log("Desactivando producto " . $id_producto); //valida que el producto exista y que no haya sido desactivado antes $validar = self::validarParametrosProducto($id_producto); if (is_string($validar)) { Logger::error($validar); throw new Exception($validar); } //is_string($validar) //Si el producto forma parte de algun paquete activo no puede ser eliminado $productos_paquete = ProductoPaqueteDAO::search(new ProductoPaquete(array("id_producto" => $id_producto))); foreach ($productos_paquete as $producto_paquete) { $paquete = PaqueteDAO::getByPK($producto_paquete->getIdProducto()); if ($paquete->getActivo()) { Logger::error("No se puede borrar este producto pues el paquete " . $paquete->getIdPaquete() . " aun lo contiene"); throw new Exception("No se puede borrar este producto pues el paquete " . $paquete->getIdPaquete() . " aun lo contiene"); } //$paquete->getActivo() } //$productos_paquete as $producto_paquete //Si el producto aun esta en existencia en algun almacen, no puede ser eliminado $productos_almacen = LoteProductoDAO::search(new LoteProducto(array("id_producto" => $id_producto))); foreach ($productos_almacen as $producto_almacen) { if ($producto_almacen->getCantidad() != 0) { Logger::error("El producto " . $id_producto . " no puede ser eliminado pues aun hay existencia en el almcen " . $producto_almacen->getIdAlmacen()); throw new Exception("El producto " . $id_producto . " no puede ser eliminado pues aun hay existencia en el almcen " . $producto_almacen->getIdAlmacen()); } //$producto_almacen->getCantidad() != 0 } //$productos_almacen as $producto_almacen $producto = ProductoDAO::getByPK($id_producto); $producto->setActivo(0); //Se obtienen los registros de las tablas producto_empresa, producto_clasificacion e impuesto_producto //pues seran eliminados $productos_empresa = ProductoEmpresaDAO::search(new ProductoEmpresa(array("id_producto" => $id_producto))); $productos_clasificacion = ProductoClasificacionDAO::search(new ProductoClasificacion(array("id_producto" => $id_producto))); $impuestos_producto = ImpuestoProductoDAO::search(new ImpuestoProducto(array("id_producto" => $id_producto))); DAO::transBegin(); try { ProductoDAO::save($producto); foreach ($productos_empresa as $producto_empresa) { ProductoEmpresaDAO::delete($producto_empresa); } //$productos_empresa as $producto_empresa foreach ($productos_clasificacion as $producto_clasificacion) { ProductoClasificacionDAO::delete($producto_clasificacion); } //$productos_clasificacion as $producto_clasificacion foreach ($impuestos_producto as $impuesto_producto) { ImpuestoProductoDAO::delete($impuesto_producto); } //$impuestos_producto as $impuesto_producto } catch (Exception $e) { DAO::transRollback(); Logger::error("No se ha podido descativar el producto " . $id_producto . " : " . $e); throw new Exception("No se ha podido descativar el producto " . $id_producto); } DAO::transEnd(); LOgger::log("El producto ha sido eliminado exitosamente"); }
/** * *Este metodo desactiva un proveedor. Para que este metodo funcione, no debe de haber ordenes de compra hacia ese proveedor ?? * * @param id_proveedor int Id del proveedor que sera eliminado **/ public static function Eliminar($id_proveedor) { Logger::log("Eliminando proveedor " . $id_proveedor); //Se utiliza el metodo eliminar usuario try { PersonalYAgentesController::EliminarUsuario($id_proveedor); } catch (Exception $e) { Logger::error("No se pudo eliminar el proveedor: " . $e); throw new Exception("No se pudo eliminar el proveedor"); } LOgger::log("Proveedor eliminado exitosamente"); }
/** * *Da de baja un servicio que ofrece una empresa * * @param id_servicio int Id del servicio que ser� eliminado **/ public static function Eliminar($id_servicio) { Logger::log("Desactivando servicio " . $id_servicio . " ..."); //valida que el servicio exista y que no haya sido desactivado antes $validar = self::validarParametrosServicio($id_servicio); if (is_string($validar)) { Logger::error($validar); throw new InvalidDataException($validar); } //Si el servicio forma parte de algun paquete activo no puede ser eliminado $servicios_paquete = OrdenDeServicioPaqueteDAO::search(new OrdenDeServicioPaquete(array("id_servicio" => $id_servicio))); foreach ($servicios_paquete as $servicio_paquete) { $paquete = PaqueteDAO::getByPK($servicio_paquete->getIdServicio()); if ($paquete->getActivo()) { Logger::error("No se puede borrar este servicio pues el paquete " . $paquete->getIdPaquete() . " aun lo contiene"); throw new Exception("No se puede borrar este servicio pues el paquete " . $paquete->getIdPaquete() . " aun lo contiene"); } } $servicio = ServicioDAO::getByPK($id_servicio); $servicio->setActivo(0); //revisar que no tenga ordenes de servicio activas $res = OrdenDeServicioDAO::search(new OrdenDeServicio(array("id_servicio" => $id_servicio, "activa" => 1))); if (sizeof($res) > 0) { Logger::log("Intento borrar un servicio que tiene ordenes de servicio activas... "); throw new BusinessLogicException("Imposible eliminar un servicio que tiene ordenes abiertas"); } //Se obtienen los registros de las tablas servicio_empresa, servicio_clasificacion e impuesto_servicio //pues seran eliminados $servicios_empresa = ServicioEmpresaDAO::search(new ServicioEmpresa(array("id_servicio" => $id_servicio))); $servicios_clasificacion = ServicioClasificacionDAO::search(new ServicioClasificacion(array("id_servicio" => $id_servicio))); $impuestos_servicio = ImpuestoServicioDAO::search(new ImpuestoServicio(array("id_servicio" => $id_servicio))); DAO::transBegin(); try { ServicioDAO::save($servicio); foreach ($servicios_empresa as $servicio_empresa) { ServicioEmpresaDAO::delete($servicio_empresa); } foreach ($servicios_clasificacion as $servicio_clasificacion) { ServicioClasificacionDAO::delete($servicio_clasificacion); } foreach ($impuestos_servicio as $impuesto_servicio) { ImpuestoServicioDAO::delete($impuesto_servicio); } } catch (Exception $e) { DAO::transRollback(); Logger::error("No se ha podido descativar el servicio " . $id_servicio . " : " . $e); throw new Exception("No se ha podido descativar el servicio " . $id_servicio); } DAO::transEnd(); LOgger::log("El servicio ha sido eliminado exitosamente"); }