/** * *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"); }
$btn_activar->onApiCallSuccessRedirect("paquetes.lista.php"); $btn_activar->addName("activar"); $funcion_activar = " function activar_paquete(btn){" . "if(btn == 'yes')" . "{" . "var p = {};" . "p.id_paquete = " . $_GET["pid"] . ";" . "sendToApi_activar(p);" . "}" . "}" . " " . "function confirmar_activacion(){" . " Ext.MessageBox.confirm('Activar', 'Desea activar este paquete?', activar_paquete );" . "}"; $btn_activar->addOnClick("confirmar_activacion", $funcion_activar); $menu->addMenuItem($btn_activar); } $page->addComponent($menu); // // Forma de producto // $form = new DAOFormComponent($este_paquete); $form->setEditable(false); $form->hideField(array("id_paquete")); $page->addComponent($form); $page->addComponent(new TitleComponent("Productos en este paquete"), 3); $table = new TableComponent(array("id_producto" => "Producto", "id_unidad" => "Unidad", "cantidad" => "Cantidad"), ProductoPaqueteDAO::search(new ProductoPaquete(array("id_paquete" => $_GET["pid"])))); function funcion_producto($id_producto) { return ProductoDAO::getByPK($id_producto) ? ProductoDAO::getByPK($id_producto)->getNombreProducto() : "--------"; } function funcion_unidad($id_unidad) { return UnidadDAO::getByPK($id_unidad) ? UnidadDAO::getByPK($id_unidad)->getNombre() : "---------"; } $table->addColRender("id_producto", "funcion_producto"); $table->addColRender("id_unidad", "funcion_unidad"); $table->addOnClick("id_producto", "(function(a){ window.location = 'productos.ver.php?pid=' + a; })"); $page->addComponent($table); $page->addComponent(new TitleComponent("Servicios en este paquete"), 3); $table = new TableComponent(array("id_servicio" => "Servicio", "cantidad" => "Cantidad"), OrdenDeServicioPaqueteDAO::search(new OrdenDeServicioPaquete(array("id_paquete" => $_GET["pid"])))); function funcion_servicio($id_servicio)
/** * *Muestra los productos y/o servicios englobados en este paquete as? como las sucursales y las empresas donde lo ofrecen * * @param id_paquete int Id del paquete a visualizar sus detalles * @return detalle_paquete json Informacion del detalle del paquete **/ public static function Detalle($id_paquete) { Logger::log("consiguiendo los detalles del paquete"); //valida que el paquete exista $paquete = PaqueteDAO::getByPK($id_paquete); if (is_null($paquete)) { Logger::error("El paquete " . $id_paquete . " no existe"); throw new Exception("El paquete " . $id_paquete . " no existe"); } //En el primer campo de un arreglo se almacena el paquete en sí, en el segundo las empresas en las que esta disponible el paquete, //en el tercero las sucursales en las que esta disponible, en el cuarto los productos que contiene y en el quinto los servicios $detalle_paquete = array(); array_push($detalle_paquete, $paquete); $empresas = array(); $paquetes_empresa = PaqueteEmpresaDAO::search(new PaqueteEmpresa(array("id_paquete" => $id_paquete))); foreach ($paquetes_empresa as $paquete_empresa) { array_push($empresas, EmpresaDAO::getByPK($paquete_empresa->getIdEmpresa())); } array_push($detalle_paquete, $empresas); $sucursales = array(); $paquetes_sucursal = PaqueteSucursalDAO::search(new PaqueteSucursal(array("id_paquete" => $id_paquete))); foreach ($paquetes_sucursal as $paquete_sucursal) { array_push($sucursales, SucursalDAO::getByPK($paquete_sucursal->getIdSucursal())); } array_push($detalle_paquete, $sucursales); $productos = array(); $productos_paquete = ProductoPaqueteDAO::search(new ProductoPaquete(array("id_paquete" => $id_paquete))); foreach ($productos_paquete as $producto_paquete) { array_push($productos, ProductoDAO::getByPK($producto_paquete->getIdProducto())); } array_push($detalle_paquete, $productos); $servicios = array(); $servicios_paquete = OrdenDeServicioPaqueteDAO::search(new OrdenDeServicioPaquete(array("id_paquete" => $id_paquete))); foreach ($servicios_paquete as $servicio_paquete) { array_push($servicios, ServicioDAO::getByPK($servicio_paquete->getIdServicio())); } array_push($detalle_paquete, $servicios); Logger::log("Detalle de paquete " . $id_paquete . " conseguido exitosamente con " . count($empresas) . "\n empresas, " . count($sucursales) . " sucursales, " . count($productos) . " productos y " . count($servicios) . " servicios"); return $detalle_paquete; }