/** * *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"); }
$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) { return ServicioDAO::getByPK($id_servicio) ? ServicioDAO::getByPK($id_servicio)->getNombreServicio() : "---------"; } $table->addColRender("id_servicio", "funcion_servicio"); $table->addOnClick("id_servicio", "(function(a){ window.location = 'servicios.ver.php?sid=' + a; })"); $page->addComponent($table); $page->addComponent(new TitleComponent("Precios segun tipo de cliente")); $tabla = new TableComponent(array("id_clasificacion_cliente" => "Clasificacion de cliente", "es_margen_utilidad" => "Precio o margen de utilidad", "precio_utilidad" => "Precio/Margen de Utilidad"), PrecioPaqueteTipoClienteDAO::search(new PrecioPaqueteTipoCliente(array("id_paquete" => $_GET["pid"])))); function funcion_es_margen_utilidad($es_margen_utilidad) { return $es_margen_utilidad ? "Margen de Utilidad" : "Precio"; } function funcion_clasificacion_cliente($id_clasificacion_cliente) {
/** * *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; }