private static function validarParametrosProductoOrdenDeServicio($id_producto = null, $precio = null, $cantidad = null, $descuento = null, $impuesto = null, $retencion = null, $id_unidad = null) { //valida que el producto exista en la base de datos if (!is_null($id_producto)) { $producto = ProductoDAO::getByPK($id_producto); if (is_null($producto)) { return "El producto con id " . $id_producto . " no existe"; } if (!$producto->getActivo()) { return "El producto " . $id_producto . " no esta activo"; } } //valida que el precio este en el rango if (!is_null($precio)) { $e = self::validarNumero($precio, 1.8E+200, "precio"); if (is_string($e)) { return $e; } } //valida que la cantidad este en el rango if (!is_null($cantidad)) { $e = self::validarNumero($cantidad, PHP_INT_MAX, "cantidad"); if (is_string($e)) { return $e; } } //valida que el descuento este en el rango if (!is_null($descuento)) { $e = self::validarNumero($descuento, 1.8E+200, "descuento"); if (is_string($e)) { return $e; } } //valida que el impuesto este en rango if (!is_null($impuesto)) { $e = self::validarNumero($impuesto, 1.8E+200, "impuesto"); if (is_string($e)) { return $e; } } //valida que la retencion este en rango if (!is_null($retencion)) { $e = self::validarNumero($retencion, 1.8E+200, "retencion"); if (is_string($e)) { return $e; } } //valida que la unidad exista en la base de datos if (!is_null($id_unidad)) { $unidad = UnidadDAO::getByPK($id_unidad); if (is_null($unidad)) { return "La unidad con id " . $id_unidad . " no existe"; } if (!$unidad->getActiva()) { return "La unidad " . $id_unidad . " no esta activa"; } } //no se encontro error, regresa true return true; }
<?php define("BYPASS_INSTANCE_CHECK", false); require_once "../../../server/bootstrap.php"; $page = new GerenciaComponentPage(); // // Parametros necesarios // $page->requireParam("uid", "GET", "Esta unidad no existe."); $esta_unidad = UnidadDAO::getByPK($_GET["uid"]); // // Titulo de la pagina // $page->addComponent(new TitleComponent("Editar unidad " . $esta_unidad->getNombre(), 2)); // // Forma de usuario // $form = new DAOFormComponent($esta_unidad); $form->hideField(array("id_unidad", "activa")); $form->sendHidden("id_unidad"); $form->addApiCall("api/producto/unidad/editar/", "GET"); $form->onApiCallSuccessRedirect("productos.lista.unidad.php"); $page->addComponent($form); $page->render();
function funcion_unidad($id_unidad) { return UnidadDAO::getByPK($id_unidad) ? UnidadDAO::getByPK($id_unidad)->getNombre() : "---------"; }
/** * *Lista el detalle de una venta, se puede ordenar de acuerdo a sus atributos. * * @param id_venta int Id de la venta a revisar * @param ordenar json Valor que determina el orden de la lista * @return detalle_venta json Objeto que contiene el detalle de la venta. **/ public static function Detalle($id_venta) { Logger::log("Listando el detalle de la venta " . $id_venta); //Se regresara un arreglo que contendra en la primera posicion la venta en sí, en la segunda //contendra otro arreglo de arreglos, estos arreglos en la primera posicion tendran un arreglo con la informacion del producto, //en la segunda un arreglo con la informacion de la unidad, y en las siguientes posiciones la demas informacion //del detalle (cantidad, precio, descuento, etc.) // //En la tercera posicion contendra todos los abonos realizados para esta venta $detalle = array(); array_push($detalle, VentaDAO::getByPK($id_venta)); $ventas_productos = array(); $venta_productos = VentaProductoDAO::search(new VentaProducto(array("id_venta" => $id_venta))); foreach ($venta_productos as $v_p) { $venta_producto = array(); array_push($venta_producto, ProductoDAO::getByPK($v_p->getIdProducto())); array_push($venta_producto, UnidadDAO::getByPK($v_p->getIdUnidad())); array_push($venta_producto, $v_p->getCantidad()); array_push($venta_producto, $v_p->getPrecio()); array_push($venta_producto, $v_p->getDescuento()); array_push($venta_producto, $v_p->getImpuesto()); array_push($venta_producto, $v_p->getRetencion()); array_push($ventas_productos, $venta_producto); } array_push($detalle, $ventas_productos); array_push($detalle, AbonoVentaDAO::search(new AbonoVenta(array("id_venta" => $id_venta)))); Logger::log("Detalle obtenido exitosamente"); return $detalle; }
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(); //titulos $page->addComponent(new TitleComponent("Editar equivalencia entre unidades")); //forma de nueva equivalencia entre unidades $form = new DAOFormComponent(array(new UnidadEquivalencia())); // $form->hideField( array( // "id_clasificacion_producto", // "activa" // )); // // $form->renameField( array( // "nombre" => "razon_social", // "codigo_usuario" => "codigo_cliente" // )); $form->addApiCall("api/producto/unidad/nueva_equivalencia/", "GET"); $form->makeObligatory(array("id_unidad", "id_unidades", "equivalencia")); $form->createComboBoxJoin("id_unidad", "nombre", UnidadDAO::search(new Unidad(array("activa" => 1)))); // $form->renameField( array( "id_unidades" => "id_unidad" ) ); // $form->createComboBoxJoinDistintName("id_unidades", "id_unidad", "nombre", UnidadDAO::search(new Unidad(array("activa" => 1)))); // // $form->renameField( array( "id_unidad" => "id_unidades" ) ); $page->addComponent($form); //render the page $page->render();
function funcion_unidad($unidad) { return UnidadDAO::getByPK($unidad) ? UnidadDAO::getByPK($unidad)->getNombre() : "????"; }
private static function validarConsignacionProducto($id_producto = null, $id_unidad = null, $cantidad = null, $impuesto = null, $descuento = null, $retencion = null, $precio = null) { //Se valida que el producto exista y que 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 . " no esta activo"; } } //Se valida que la unidad exista y que este activa if (!is_null($id_unidad)) { $unidad = UnidadDAO::getByPK($id_unidad); if (is_null($unidad)) { return "La unidad " . $id_unidad . " no existe"; } if (is_null($unidad->getActiva())) { return "La unidad " . $id_unidad . " no esta activa"; } } //Se valida que la cantidad este en rango if (!is_null($cantidad)) { $e = self::validarNumero($cantidad, 1.8E+200, "cantidad"); if (is_string($e)) { return $e; } } //Se valida que el impuesto este en rango if (!is_null($impuesto)) { $e = self::validarNumero($impuesto, 1.8E+200, "impuesto"); if (is_string($e)) { return $e; } } //Se valida que el descuento este en rango if (!is_null($descuento)) { $e = self::validarNumero($descuento, 100, "descuento"); if (is_string($e)) { return $e; } } //Se valida que la retencion este en rango if (!is_null($retencion)) { $e = self::validarNumero($retencion, 1.8E+200, "retencion"); if (is_string($e)) { return $e; } } //Se valida que el precio este en rango if (!is_null($precio)) { $e = self::validarNumero($precio, 1.8E+200, "precio"); if (is_string($e)) { return $e; } } //No se encontro error return true; }
/** * *Descativa una unidad para que no sea usada por otro metodo * * @param id_unidad_convertible int Id de la unidad convertible a eliminar **/ public static function EliminarUnidad($id_unidad) { Logger::log("Eliminando la unidad " . $id_unidad); //valida la unidad $validar = self::validarParametrosUnidad($id_unidad); if (is_string($validar)) { Logger::error($validar); throw new Exception($validar); } //is_string($validar) $unidad = UnidadDAO::getByPK($id_unidad); $unidad->setActiva(0); //Se eliminaran los registros de la tabla unidad equivalencia que contengan a esta unidad, //tanto como id_unidad como id_unidades $unidades_equivalencia_unidad = UnidadEquivalenciaDAO::search(new UnidadEquivalencia(array("id_unidad" => $id_unidad))); $unidades_equivalencia_unidades = UnidadEquivalenciaDAO::search(new UnidadEquivalencia(array("id_unidades" => $id_unidad))); DAO::transBegin(); try { UnidadDAO::save($unidad); foreach ($unidades_equivalencia_unidad as $unidad_equivalencia) { UnidadEquivalenciaDAO::delete($unidad_equivalencia); } //$unidades_equivalencia_unidad as $unidad_equivalencia foreach ($unidades_equivalencia_unidades as $unidad_equivalencia) { UnidadEquivalenciaDAO::delete($unidad_equivalencia); } //$unidades_equivalencia_unidades as $unidad_equivalencia } catch (Exception $e) { DAO::transRollback(); Logger::error("La unidad " . $id_unidad . " no pudo ser eliminada: " . $e); throw new Exception("La unidad no pudo ser eliminada"); } DAO::transEnd(); Logger::log("La unidad ha sido eliminada exitosamente"); }
private static function validarParametrosProductoPaquete($id_producto = null, $id_unidad = null, $cantidad = null) { //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 . " no esta activo"; } } //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 existe"; } } //valida que la cantida este en rango y vaya de acuerdo a la unidad if (!is_null($cantidad)) { $e = self::validarNumero($cantidad, 1.8E+200, "cantidad"); if (is_string($e)) { return $e; } if ($unidad->getEsEntero() && is_float($cantidad)) { return "LA unidad que se maneja no acepta flotantes y se obtuvo una cantidad flotante (" . $cantidad . ")"; } } //no se encontro error return true; }
/** * *Metodo que surte una sucursal por parte de un proveedor. La sucursal sera tomada de la sesion actual. Update Creo que este metodo tiene que estar bajo sucursal. * * @param id_almacen int Id del almacen que se surte * @param productos json Objeto que contendr los ids de los productos, sus unidades y sus cantidades * @param motivo string Motivo del movimiento * @return id_surtido string Id generado por el registro de surtir **/ static function Entrada($id_almacen, $productos, $motivo = null) { Logger::log("Resgitrando entrada a almacen"); $entrada_almacen = new EntradaAlmacen(); //Se obtiene el usuario de la sesion $id_usuario = SesionController::getCurrentUser(); if (is_null($id_usuario)) { Logger::error("No se puede obtener al usuario de la sesion, ya inicio sesion?"); throw new Exception("No se puede obtener al usuario de la sesion, ya inicio sesion?"); } //valida que el almacen exista $almacen = AlmacenDAO::getByPK($id_almacen); if (is_null($almacen)) { Logger::error("El almacen con id: " . $id_almacen . " no existe"); throw new Exception("El almacen con id: " . $id_almacen . " no existe"); } if (!$almacen->getActivo()) { Logger::error("El almacen no esta activo, no se le pueden ingresar productos"); throw new Exception("El almacen no esta activo, no se le pueden ingresar productos"); } //valida que el motivo sea un string valido if (!is_null($motivo)) { $validar = self::validarString($motivo, 255, "motivo"); if (is_string($validar)) { Logger::error($validar); throw new Exception($validar); } } //Se inicializa el registro de la tabla entrada_almacen $entrada_almacen->setIdAlmacen($id_almacen); $entrada_almacen->setMotivo($motivo); $entrada_almacen->setIdUsuario($id_usuario); $entrada_almacen->setFechaRegistro(time()); DAO::transBegin(); try { //se guarda el registro de entrada_almacen EntradaAlmacenDAO::save($entrada_almacen); //Por cada producto recibido se crea un registro en la tabla producto_entrada_almacen. //Cada producto ingresado incrementa su cantidad en el almacen. Si aun no existe, //se crea su registro y se guarda. $producto_entrada_almacen = new ProductoEntradaAlmacen(array("id_entrada_almacen" => $entrada_almacen->getIdEntradaAlmacen())); $productos = object_to_array($productos); if (!is_array($productos)) { throw new Exception("Los productos fueron recibidos incorrectamente", 901); } foreach ($productos as $p) { if (!array_key_exists("id_producto", $p) || !array_key_exists("id_unidad", $p) || !array_key_exists("cantidad", $p)) { throw new Exception("Los productos fueron recibidos incorrectamente", 901); } //valida que el producto a ingresar pertenezca a la misma empresa que el almacen //pues un almacen solo puede ocntener producto de la empresa a la que pertenece. $productos_empresa = ProductoEmpresaDAO::search(new ProductoEmpresa(array("id_producto" => $p["id_producto"]))); $encontrado = false; foreach ($productos_empresa as $p_e) { if ($p_e->getIdEmpresa() == $almacen->getIdEmpresa()) { $encontrado = true; } } if (!$encontrado) { throw new Exception("Se quiere agregar un producto que no es de la empresa de este almacen", 901); } if (is_null(ProductoDAO::getByPK($p["id_producto"]))) { throw new Exception("El producto con id: " . $p["id_producto"] . " no existe", 901); } $producto_entrada_almacen->setIdProducto($p["id_producto"]); if (is_null(UnidadDAO::getByPK($p["id_unidad"]))) { throw new Exception("La unidad con id: " . $p["id_unidad"] . " no existe", 901); } $producto_entrada_almacen->setIdUnidad($p["id_unidad"]); $producto_entrada_almacen->setCantidad($p["cantidad"]); $producto_almacen = ProductoAlmacenDAO::getByPK($p["id_producto"], $id_almacen, $p["id_unidad"]); if (is_null($producto_almacen)) { $producto_almacen = new ProductoAlmacen(array("id_producto" => $p["id_producto"], "id_almacen" => $id_almacen, "id_unidad" => $p["id_unidad"])); } $producto_almacen->setCantidad($producto_almacen->getCantidad() + $p["cantidad"]); ProductoEntradaAlmacenDAO::save($producto_entrada_almacen); ProductoAlmacenDAO::save($producto_almacen); } } catch (Exception $e) { DAO::transRollback(); Logger::error("No se pudo registrar la entrada al almacen: " . $e); if ($e->getCode() == 901) { throw new Exception("No se pudo registrar la entrada al almacen: " . $e->getCode(), 901); } throw new Exception("No se pudo registrar la entrada al almacen", 901); } DAO::transEnd(); Logger::log("Entrada a almacen registrada exitosamente"); return array("id_surtido" => $entrada_almacen->getIdEntradaAlmacen()); }