示例#1
0
 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();
示例#3
0
function funcion_unidad($id_unidad)
{
    return UnidadDAO::getByPK($id_unidad) ? UnidadDAO::getByPK($id_unidad)->getNombre() : "---------";
}
示例#4
0
 /**
  *
  *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;
 }
示例#5
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();
//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;
 }
示例#9
0
 /**
  *
  *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");
 }
示例#10
0
 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;
 }
示例#11
0
 /**
  	 *
  	 *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());
 }