<?php

define("BYPASS_INSTANCE_CHECK", false);
require_once "../../../server/bootstrap.php";
$page = new GerenciaComponentPage();
$page->addComponent(new TitleComponent("Clasificaciones de Servicio"));
$page->addComponent(new MessageComponent("Lista de clasificaciones de servicio"));
$tabla = new TableComponent(array("nombre" => "Nombre", "garantia" => "Garantia", "descripcion" => "Descripcion", "activa" => "Activa"), ClasificacionServicioDAO::getAll());
$tabla->addColRender("activa", "funcion_activa");
$tabla->addOnClick("id_clasificacion_servicio", "(function(a){ window.location = 'servicios.clasificacion.ver.php?cid=' + a; })");
$page->addComponent($tabla);
$page->render();
<?php

define("BYPASS_INSTANCE_CHECK", false);
require_once "../../../server/bootstrap.php";
$page = new GerenciaComponentPage();
//
// Parametros necesarios
//
$page->requireParam("cid", "GET", "Esta categoria de servicio no existe.");
$esta_categoria = ClasificacionServicioDAO::getByPK($_GET["cid"]);
//
// Titulo de la pagina
//
$page->addComponent(new TitleComponent("Editar clasificacion de servicio " . $esta_categoria->getNombre(), 2));
//
// Forma de usuario
//
$form = new DAOFormComponent($esta_categoria);
$form->hideField(array("id_clasificacion_servicio", "activa"));
$form->sendHidden("id_clasificacion_servicio");
$form->addApiCall("api/servicios/clasificacion/editar/", "GET");
$form->onApiCallSuccessRedirect("servicios.lista.clasificacion.php");
$page->addComponent($form);
$page->render();
Example #3
0
 /**
  *
  *Edita un servicio
  *
  * @param id_servicio int Id del servicio a editar
  * @param sucursales json Sucursales en las cuales estara disponible este servicio
  * @param nombre_servicio string Nombre del servicio
  * @param garantia int Si este servicio tiene una garanta en meses.
  * @param impuestos json array de ids de impuestos que tiene este servico
  * @param metodo_costeo string Mtodo de costeo del servicio: 1 = Costo Promedio en Base a Entradas.2 = Costo Promedio en Base a Entradas Almacn.3 = ltimo costo.4 = UEPS.5 = PEPS.6 = Costo especfico.7 = Costo Estndar
  * @param empresas string Objeto que contiene los ids de las empresas a las que pertenece este servicio
  * @param codigo_servicio string Codigo de control del servicio manejado por la empresa, no se puede repetir
  * @param descripcion_servicio string Descripcion del servicio
  * @param compra_en_mostrador string Verdadero si este servicio se puede comprar en mostrador, para aquello de compra-venta. Para poder hacer esto, el sistema debe poder hacer compras en mostrador
  * @param activo bool Si el servicio esta activo o no
  * @param control_de_existencia int 00000001 = Unidades. 00000010 = Caractersticas. 00000100 = Series. 00001000 = Pedimentos. 00010000 = LoteCaractersticas. 00000100 = Series. 00001000 = Pedimentos. 00010000 = Lote
  * @param foto_servicio string Url de la foto del servicio
  * @param margen_de_utilidad string Un porcentage de 0 a 100 si queremos que este servicio marque utilidad en especifico
  * @param clasificaciones json Uno o varios id_clasificacion de este servicio, esta clasificacion esta dada por el usuario Array
  * @param retenciones json Ids de retenciones que afectan este servicio
  * @param costo_estandar float Valor del costo estandar del servicio
  **/
 public static function Editar($id_servicio, $clasificaciones = null, $codigo_servicio = null, $compra_en_mostrador = null, $control_de_existencia = null, $costo_estandar = null, $descripcion_servicio = null, $empresas = null, $extra_params = null, $foto_servicio = null, $garantia = null, $impuestos = null, $metodo_costeo = null, $nombre_servicio = null, $precio = null, $retenciones = null, $sucursales = null)
 {
     Logger::log("Editando servicio " . $id_servicio);
     //valida los parametros recibidos
     $validar = self::validarParametrosServicio($id_servicio, $nombre_servicio, $metodo_costeo, $codigo_servicio, $compra_en_mostrador, null, $descripcion_servicio, $costo_estandar, $garantia, $control_de_existencia, $foto_servicio, $precio);
     if (is_string($validar)) {
         Logger::error($validar);
         throw new Exception($validar);
     }
     //Los parametros que no sean nulos seran tomados como actualizacion
     $servicio = ServicioDAO::getByPK($id_servicio);
     if (!is_null($nombre_servicio)) {
         $servicio->setNombreServicio(trim($nombre_servicio));
     }
     if (!is_null($garantia)) {
         $servicio->setGarantia($garantia);
     }
     if (!is_null($codigo_servicio)) {
         $servicio->setCodigoServicio(trim($codigo_servicio));
     }
     if (!is_null($descripcion_servicio)) {
         $servicio->setDescripcionServicio($descripcion_servicio);
     }
     if (!is_null($compra_en_mostrador)) {
         $servicio->setCompraEnMostrador($compra_en_mostrador);
     }
     if (!is_null($control_de_existencia)) {
         $servicio->setControlExistencia($control_de_existencia);
     }
     if (!is_null($extra_params)) {
         $servicio->setExtraParams(json_encode($extra_params));
     }
     if (!is_null($foto_servicio)) {
         $servicio->setFotoServicio($foto_servicio);
     }
     if (!is_null($costo_estandar)) {
         if (!is_numeric($costo_estandar) || $costo_estandar < 0) {
             throw new Exception("Indique un valor de costo valido");
         }
         $servicio->setCostoEstandar($costo_estandar);
     }
     if (!is_null($precio)) {
         if (!is_numeric($precio) || $precio < 0) {
             throw new Exception("Indique un valor de precio valido");
         }
         $servicio->setPrecio($precio);
     }
     if (!is_null($metodo_costeo)) {
         if ($metodo_costeo == "costo" && is_null($costo_estandar)) {
             throw new Exception("Indique un valor de costo");
         }
         if ($metodo_costeo == "precio" && is_null($precio)) {
             throw new Exception("Indique un valor de precio");
         }
         $servicio->setMetodoCosteo($metodo_costeo);
     }
     //Se verifica que se cuente con el atributo que busca el metodo de costeo
     if ($servicio->getMetodoCosteo() == "precio" && is_null($servicio->getPrecio()) || $servicio->getMetodoCosteo() == "costo" && is_null($servicio->getCostoEstandar())) {
         Logger::error("No se cuenta con el parametro " . $metodo_costeo);
         throw new Exception("No se cuenta con el parametro " . $metodo_costeo);
     }
     //Se actualiza el registro de servicio. Si se reciben listas de empresas, sucursales, clasificaciones, impuestos
     //y/o retenciones, se recorre la lista y se guardan o actualizan los que se encuentren.
     //Despues se recorren los registros acutales y se buscan en las listas recibidas, si no son encontrados son eliminados
     //de la base de datos
     DAO::transBegin();
     try {
         ServicioDAO::save($servicio);
         if (!is_null($empresas)) {
             $empresas = object_to_array($empresas);
             if (!is_array($empresas)) {
                 throw new Exception("Las empresas son invalidas", 901);
             }
             $servicio_empresa = new ServicioEmpresa(array("id_servicio" => $servicio->getIdServicio()));
             foreach ($empresas as $empresa) {
                 $validar = self::validarParametrosServicioEmpresa($empresa);
                 if (is_string($validar)) {
                     throw new Exception($validar, 901);
                 }
                 $servicio_empresa->setIdEmpresa($empresa);
                 ServicioEmpresaDAO::save($servicio_empresa);
             }
             $servicios_empresa = ServicioEmpresaDAO::search(new ServicioEmpresa(array("id_servicio" => $id_servicio)));
             foreach ($servicios_empresa as $s_e) {
                 $encontrado = false;
                 foreach ($empresas as $empresa) {
                     if ($empresa == $s_e->getIdEmpresa()) {
                         $encontrado = true;
                     }
                 }
                 if (!$encontrado) {
                     ServicioEmpresaDAO::delete($s_e);
                 }
             }
         }
         /* Fin if de empresas */
         if (!is_null($sucursales)) {
             $sucursales = object_to_array($sucursales);
             if (!is_array($sucursales)) {
                 throw new Exception("Las sucursales no son validas", 901);
             }
             $servicio_sucursal = new ServicioSucursal(array("id_servicio" => $servicio->getIdServicio()));
             foreach ($sucursales as $sucursal) {
                 $validar = self::validarParametrosServicioSucursal($sucursal);
                 if (is_string($validar)) {
                     throw new Exception($validar, 901);
                 }
                 $servicio_sucursal->setIdSucursal($sucursal);
                 ServicioSucursalDAO::save($servicio_sucursal);
             }
             $servicios_sucursal = ServicioSucursalDAO::search(new ServicioSucursal(array("id_servicio" => $id_servicio)));
             foreach ($servicios_sucursal as $s_s) {
                 $encontrado = false;
                 foreach ($sucursales as $sucursal) {
                     if ($sucursal == $s_s->getIdSucursal()) {
                         $encontrado = true;
                     }
                 }
                 if (!$encontrado) {
                     ServicioSucursalDAO::delete($s_s);
                 }
             }
         }
         /* Fin if de sucursales */
         if (!is_null($clasificaciones)) {
             $clasificaciones = object_to_array($clasificaciones);
             if (!is_array($clasificaciones)) {
                 throw new Exception("Las clasificaciones son invalidas", 901);
             }
             $servicio_clasificacion = new ServicioClasificacion(array("id_servicio" => $servicio->getIdServicio()));
             foreach ($clasificaciones as $clasificacion) {
                 if (is_null(ClasificacionServicioDAO::getByPK($clasificacion))) {
                     throw new Exception("La clasificacion " . $clasificacion . " no existe", 901);
                 }
                 $servicio_clasificacion->setIdClasificacionServicio($clasificacion);
                 ServicioClasificacionDAO::save($servicio_clasificacion);
             }
             $servicios_clasificacion = ServicioClasificacionDAO::search(new ServicioClasificacion(array("id_servicio" => $id_servicio)));
             foreach ($servicios_clasificacion as $s_c) {
                 $encontrado = false;
                 foreach ($clasificaciones as $clasificacion) {
                     if ($clasificacion == $s_c->getIdClasificacionServicio()) {
                         $encontrado = true;
                     }
                 }
                 if (!$encontrado) {
                     ServicioClasificacionDAO::delete($s_c);
                 }
             }
         }
         /* Fin if de clasificaciones */
         if (!is_null($impuestos)) {
             $impuestos = object_to_array($impuestos);
             if (!is_array($impuestos)) {
                 throw new Exception("Los impuestos son invalidos", 901);
             }
             $impuesto_servicio = new ImpuestoServicio(array("id_servicio" => $servicio->getIdServicio()));
             foreach ($impuestos as $impuesto) {
                 if (is_null(ImpuestoDAO::getByPK($impuesto))) {
                     throw new Exception("El impuesto " . $impuesto . " no existe", 901);
                 }
                 $impuesto_servicio->setIdImpuesto($impuesto);
                 ImpuestoServicioDAO::save($impuesto_servicio);
             }
             $impuesto_servicio = ImpuestoServicioDAO::search(new ImpuestoServicio(array("id_servicio" => $id_servicio)));
             foreach ($impuesto_servicio as $i_s) {
                 $encontrado = false;
                 foreach ($impuestos as $impuesto) {
                     if ($impuesto == $i_s->getIdImpuesto()) {
                         $encontrado = true;
                     }
                 }
                 if (!$encontrado) {
                     ImpuestoServicioDAO::delete($i_s);
                 }
             }
         }
         /* Fin if de impuestos */
         if (!is_null($retenciones)) {
             $retenciones = object_to_array($retenciones);
             if (!is_array($retenciones)) {
                 throw new Exception("Las retenciones son invalidas", 901);
             }
             $retencion_servicio = new RetencionServicio(array("id_servicio" => $servicio->getIdServicio()));
             foreach ($retenciones as $retencion) {
                 if (is_null(RetencionDAO::getByPK($retencion))) {
                     throw new Exception("La retencion " . $retencion . " no existe", 901);
                 }
                 $retencion_servicio->setIdRetencion($retencion);
                 RetencionServicioDAO::save($retencion_servicio);
             }
             $retencion_servicio = RetencionServicioDAO::search(new RetencionServicio(array("id_servicio" => $id_servicio)));
             foreach ($retencion_servicio as $r_s) {
                 $encontrado = false;
                 foreach ($retenciones as $retencion) {
                     if ($retencion == $r_s->getIdRetencion()) {
                         $encontrado = true;
                     }
                 }
                 if (!$encontrado) {
                     RetencionServicioDAO::delete($r_s);
                 }
             }
         }
         /* Fin if de impuestos */
     } catch (Exception $e) {
         DAO::transRollback();
         Logger::error("No se pudo editar el servicio " . $id_servicio . " : " . $e);
         if ($e->getCode() == 901) {
             throw new Exception("No se pudo editar el servicio: " . $e->getMessage(), 901);
         }
         throw new Exception("No se pudo editar el servicio", 901);
     }
     DAO::transEnd();
     Logger::log("Servicio editado exitosamente");
 }
Example #4
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;
 }
<?php

define("BYPASS_INSTANCE_CHECK", false);
require_once "../../../server/bootstrap.php";
$page = new GerenciaComponentPage();
//
// Parametros necesarios
//
$page->requireParam("cid", "GET", "Esta clasificacion no existe.");
$esta_clasificacion = ClasificacionServicioDAO::getByPK($_GET["cid"]);
//
// Titulo de la pagina
//
$page->addComponent(new TitleComponent("Detalles de " . $esta_clasificacion->getNombre(), 2));
//
// Menu de opciones
//
if ($esta_clasificacion->getActiva()) {
    $menu = new MenuComponent();
    $menu->addItem("Editar esta clasificacion de servicio", "servicios.editar.clasificacion.php?cid=" . $_GET["cid"]);
    $btn_eliminar = new MenuItem("Desactivar esta clasificacion", null);
    $btn_eliminar->addApiCall("api/servicios/clasificacion/eliminar/", "GET");
    $btn_eliminar->onApiCallSuccessRedirect("servicios.lista.clasificacion.php");
    $btn_eliminar->addName("eliminar");
    $funcion_eliminar = " function eliminar_clasificacion(btn){" . "if(btn == 'yes')" . "{" . "var p = {};" . "p.id_clasificacion_servicio = " . $_GET["cid"] . ";" . "sendToApi_eliminar(p);" . "}" . "}" . "      " . "function confirmar(){" . " Ext.MessageBox.confirm('Desactivar', 'Desea eliminar esta clasificacion?', eliminar_clasificacion );" . "}";
    $btn_eliminar->addOnClick("confirmar", $funcion_eliminar);
    $menu->addMenuItem($btn_eliminar);
    $page->addComponent($menu);
}
//
// Forma de producto