コード例 #1
0
ファイル: paquetes.detalle.php プロジェクト: kailIII/pos-erp
<?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");
コード例 #2
0
 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;
 }
コード例 #3
0
 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;
 }
コード例 #4
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");
 }
コード例 #5
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");
 }
コード例 #6
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;
 }