<?php define("BYPASS_INSTANCE_CHECK", false); require_once "../../../server/bootstrap.php"; $page = new GerenciaComponentPage(); // // Parametros necesarios // $page->requireParam("pid", "GET", "Este paquete no existe."); $este_paquete = PaqueteDAO::getByPK($_GET["pid"]); // // Titulo de la pagina // $page->addComponent(new TitleComponent("Detalles de " . $este_paquete->getNombre(), 2)); // // Menu de opciones // $menu = new MenuComponent(); if ($este_paquete->getActivo()) { $menu->addItem("Editar este paquete", "paquetes.editar.php?pid=" . $_GET["pid"]); $btn_eliminar = new MenuItem("Desactivar este paquete", null); $btn_eliminar->addApiCall("api/paquete/eliminar", "GET"); $btn_eliminar->onApiCallSuccessRedirect("paquetes.lista.php"); $btn_eliminar->addName("eliminar"); $funcion_eliminar = " function eliminar_paquete(btn){" . "if(btn == 'yes')" . "{" . "var p = {};" . "p.id_paquete = " . $_GET["pid"] . ";" . "sendToApi_eliminar(p);" . "}" . "}" . " " . "function confirmar_desactivacion(){" . " Ext.MessageBox.confirm('Desactivar', 'Desea eliminar este paquete?', eliminar_paquete );" . "}"; $btn_eliminar->addOnClick("confirmar_desactivacion", $funcion_eliminar); $menu->addMenuItem($btn_eliminar); } else { $btn_activar = new MenuItem("Activar este paquete", null); $btn_activar->addApiCall("api/paquete/activar", "GET"); $btn_activar->onApiCallSuccessRedirect("paquetes.lista.php");
private static function ValidarParametrosRegla($id_regla = null, $nombre = null, $id_producto = null, $id_clasificacion_producto = null, $id_unidad = null, $id_servicio = null, $id_clasificacion_servicio = null, $id_paquete = null, $cantidad_minima = null, $porcentaje_utilidad = null, $utilidad_neta = null, $metodo_redondeo = null, $margen_min = null, $margen_max = null, $secuencia = null) { //valida que la regla exista if (!is_null($id_regla)) { if (is_null(ReglaDAO::getByPK($id_regla))) { return "La regla " . $id_regla . " no existe"; } } //valida que el nombre este en rango if (!is_null($nombre)) { if (!self::validarLongitudDeCadena($nombre, 0, 100)) { throw new InvalidDataException("nombre muy largo"); } } //valida que el producto exista y este activo if (!is_null($id_producto)) { $producto = ProductoDAO::getByPK($id_producto); if (is_null($producto)) { return "El producto " . $id_producto . " no existe"; } if (!$producto->getActivo()) { return "El producto " . $id_producto . " esta inactivo"; } } //valida que la clasificacion de producto exista y este activa if (!is_null($id_clasificacion_producto)) { $clasificacion_producto = ClasificacionProductoDAO::getByPK($id_clasificacion_producto); if (is_null($clasificacion_producto)) { return "La clasificacion de producto " . $id_clasificacion_producto . " no existe"; } if (!$clasificacion_producto->getActiva()) { return "La clasificacion de producto " . $id_clasificacion_producto . " no esta activa"; } } //valida que la unidad exista y este activa if (!is_null($id_unidad)) { $unidad = UnidadDAO::getByPK($id_unidad); if (is_null($unidad)) { return "La unidad " . $id_unidad . " no existe"; } if (!$unidad->getActiva()) { return "La unidad " . $id_unidad . " no esta activa"; } } //valida que el servicio exista y este activo if (!is_null($id_servicio)) { $servicio = ServicioDAO::getByPK($id_servicio); if (is_null($servicio)) { return "El servicio " . $id_servicio . " no existe"; } if (!$servicio->getActivo()) { return "El servicio " . $id_servicio . " no esta activo"; } } //valida que la clasificacion de servicio exista y este activa if (!is_null($id_clasificacion_servicio)) { $clasificacion_servicio = ClasificacionServicioDAO::getByPK($id_clasificacion_servicio); if (is_null($clasificacion_servicio)) { return "La clasificacion de servicio " . $id_clasificacion_servicio . " no existe"; } if (!$clasificacion_servicio->getActiva()) { return "La clasificacion de servicio " . $id_clasificacion_servicio . " no esta activa"; } } //valida que el paquete exista y este activo if (!is_null($id_paquete)) { $paquete = PaqueteDAO::getByPK($id_paquete); if (is_null($paquete)) { return "El paquete " . $id_paquete . " no existe"; } if (!$paquete->getActivo()) { return "El paquete " . $id_paquete . " esta inactivo"; } } //valida que la cantidad minima este en rango if (!is_null($cantidad_minima)) { $e = self::validarNumero($cantidad_minima, 1.8E+200, "cantidad minima"); if (is_string($e)) { return $e; } } //valida que el porcentaje de utilidad este en rango if (!is_null($porcentaje_utilidad)) { $e = self::validarNumero($porcentaje_utilidad, 1, "porcentaje_utilidad", -1); if (is_string($e)) { return $e; } } //valida que la utilidad neta este en rango if (!is_null($utilidad_neta)) { $e = self::validarNumero($utilidad_neta, 1.8E+200, "Utilidad neta", -1.8E+200); if (is_string($e)) { return $e; } } //valida que el metodo de redondeo este en rango if (!is_null($metodo_redondeo)) { $e = self::validarNumero($metodo_redondeo, 1.8E+200, "metodo_redondeo"); if (is_string($e)) { return $e; } } //valida que el margen minimo este en rango if (!is_null($margen_min)) { $e = self::validarNumero($margen_min, 1.8E+200, "margen minimo"); if (is_string($e)) { return $e; } } //valida que el margen maximo este en rango if (!is_null($margen_max)) { $e = self::validarNumero($margen_max, 1.8E+200, "margen maximo"); if (is_string($e)) { return $e; } } //valida que la secuencia este en rango if (!is_null($secuencia)) { $e = self::validarNumero($secuencia, PHP_INT_MAX, "secuencia"); if (is_string($e)) { return $e; } } //no se encontro error, regresa verdadero return true; }
private static function validarParametrosVentaPaquete($id_venta = null, $id_paquete = null, $cantidad = null, $precio = null, $descuento = null) { //validar que la venta exista en la base de datos if (!is_null($id_venta)) { if (is_null(VentaDAO::getByPK($id_venta))) { return "La venta con id " . $id_venta . " no existe"; } } //validar que el paquete exista en la base de datos if (!is_null($id_paquete)) { if (is_null(PaqueteDAO::getByPK($id_paquete))) { return "El paquete con id " . $id_paquete . " no existe"; } } //validar que la cantidad este en rango if (!is_null($cantidad)) { $e = self::validarNumero($cantidad, 1.8E+200, "cantidad"); if (is_string($e)) { return $e; } } //validar que el precio este en rango if (!is_null($precio)) { $e = self::validarNumero($precio, 1.8E+200, "precio"); if (is_string($e)) { return $e; } } //validar que el descuento este en rango if (!is_null($descuento)) { $e = self::validarNumero($descuento, 1.8E+200, "descuento"); if (is_string($e)) { return $e; } } //No se encontraron errores, regresa true return true; }
/** * *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"); }
/** * *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"); }
/** * *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; }