Example #1
0
 /**
  *
  *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");
 }
Example #2
0
$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)
{
Example #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;
 }