Пример #1
0
 /**
  *
  *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");
 }
Пример #2
0
    $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)
Пример #3
0
 /**
  *
  *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;
 }