コード例 #1
0
 /**
  *
  *listar almacenes de la isntancia. Se pueden filtrar por empresa, por sucursal, por tipo de almacen, por activos e inactivos y ordenar por sus atributos.
  *
  * @param activo bool Si este valor no es obtenido, se mostraran almacenes tanto activos como inactivos. Si es verdadero, solo se lsitaran los activos, si es falso solo se lsitaran los inactivos.
  * @param id_empresa int Id de la empresa de la cual se listaran sus almacenes
  * @param id_sucursal int el id de la sucursal de la cual se listaran sus almacenes
  * @param id_tipo_almacen int Se listaran los almacenes de este tipo
  * @return numero_de_resultados int 
  * @return resultados json Almacenes encontrados
  **/
 static function Buscar($activo = null, $id_empresa = null, $id_sucursal = null, $id_tipo_almacen = null)
 {
     if (!is_null($id_sucursal)) {
         $almacenes = AlmacenDAO::search(new Almacen(array("id_sucursal" => $id_sucursal, "id_empresa" => $id_empresa, "id_tipo_almacen" => $id_tipo_almacen)));
         return array("resultados" => $almacenes, "numero_de_resultados" => sizeof($almacenes));
     }
     $almacenes = AlmacenDAO::getAll();
     return array("resultados" => $almacenes, "numero_de_resultados" => sizeof($almacenes));
     /*
                 $parametros=false;
                 if
                 (
                         !is_null($id_empresa)  ||
                         !is_null($id_sucursal) ||
                         !is_null($id_tipo_almacen) ||
                         !is_null($activo)
                 )
                     $parametros=true;
                 $almacenes=null;
                 
                 //Si se recibieron parametros, se buscan los almacenes con dichos parametros, si no
                 //se imprimen todos los almacenes
                 if($parametros)
                 {
                     Logger::log("Se recibieron parametros, se listan las almacenes en rango");
                     
                     //Se valida el parametro activo
                     /*$validar = self::validarParametrosAlmacen(null, null, null, null, null, null, $activo);
                     if(is_string($validar))
                     {
                         Logger::error($validar);
                         throw new Exception($validar);
                     }* /
                     
                     $almacen_criterio_1=new TipoAlmacenDAO();
                     $almacen_criterio_1->setActivo($activo);
                     $almacen_criterio_1->setIdEmpresa($id_empresa);
                     $almacen_criterio_1->setIdSucursal($id_sucursal);
                     $almacen_criterio_1->setIdTipoAlmacen($id_tipo_almacen);
                     $almacenes=TipoAlmacenDAO::search($almacen_criterio_1);
     
                 }else{
     	            Logger::log("No se recibieron parametros, se listan todos los almacenes");
     	
                     
     
                 }
     */
 }
コード例 #2
0
 /**
      *
      * Ver la lista de productos y sus existencias, se puede filtrar por empresa, sucursal, almac?n, y lote.
       Se puede ordenar por los atributos de producto.
      *
      * @param existencia_mayor_que float Se regresaran los productos cuya existencia sea mayor a la especificada por este valor
      * @param existencia_igual_que float Se regresaran los productos cuya existencia sea igual a la especificada por este valor
      * @param existencia_menor_que float Se regresaran los productos cuya existencia sea menor a la especificada por este valor
      * @param id_empresa int Id de la empresa de la cual se vern los productos.
      * @param id_sucursal int Id de la sucursal de la cual se vern los productos.
      * @param id_almacen	 int Id del almacen del cual se vern los productos.
      * @param activo	 bool Si es true, mostrar solo los productos que estn activos, si es false mostrar solo los productos que no lo sean.
      * @param id_lote int Id del lote del cual se veran los productos en existencia
      * @return existecias json Lista de existencias
      * */
 public static function Existencias($id_almacen = null, $id_empresa = null, $id_producto = null, $id_sucursal = null)
 {
     $e = AlmacenDAO::Existencias();
     return array("resultados" => $e, "numero_de_resultados" => sizeof($e));
     $daoProductos = ProductoDAO::getAll();
     $aOut = array();
     $daoAlmacenes = AlmacenDAO::getAll();
     for ($iProd = 0; $iProd < sizeof($daoProductos); $iProd++) {
         //por cada almacen
         for ($iAl = 0; $iAl < sizeof($daoAlmacenes); $iAl++) {
             //buscar sus lotes
         }
         array_push($aOut, $daoProductos[$iProd]->asArray());
     }
     return array("numero_de_resultados" => sizeof($aOut), "resultados" => $aOut);
     //Si se recibe un id producto, solo se listan las existencias de dicho producto, se puede combinar con
     //los demas parametros. Si no se recibe ningun otro, se realiza un acumulado de este producto en todos los almacenes.
     //
     //Si se recibe un id almacen, solo se listan las existencias de dicho almacen
     //
     //Si se recibe la variable id_empresa o id_sucursal, se listara un acumulado de todos los productos
     //con las cantidades de productos de los diferentes almacenes dentro de ella
     //
     //Cuando se recibe alguno de ellos, primero se consiguen todos los almacenes que le pertencen, despues
     //se consiguen todos los productos de cada almacen y se guardan en un arreglo temporal que despues es ordenado.
     //EL arreglo ordenado es el que se envia.
     //
     //Si no se recibe ningun parametro, se listaran todos los productos existentes en todos los almacenes
     $productos_almacenes = array();
     //Si solo se especifica un producto, se regresa un arreglo con las sucursales donde esta ese producto y
     //la cantidad total en cada una
     if (!is_null($id_producto) && is_null($id_almacen) && is_null($id_empresa) && is_null($id_sucursal)) {
         //Se obtienen todas las sucursales y se llama recursivamente a este metodo
         $sucursales = SucursalDAO::search(new Sucursal(array("activa" => 1)));
         $result = array();
         foreach ($sucursales as $sucursal) {
             $p_a = self::Existencias(null, null, $id_producto, $sucursal->getIdSucursal());
             if ($p_a["numero_de_resultados"] > 0) {
                 foreach ($p_a["resultados"] as $p) {
                     $result["id_sucursal"] = $sucursal->getIdSucursal();
                     $suc = SucursalDAO::getByPK($sucursal->getIdSucursal());
                     $result["nombre_sucursal"] = $suc->getDescripcion();
                     $result["id_producto"] = $p->getIdProducto();
                     $result["id_unidad"] = $p->getIdUnidad();
                     $result["cantidad"] = $p->getCantidad();
                     array_push($productos_almacenes, $result);
                 }
             }
         }
     } else {
         if (!is_null($id_almacen)) {
             //Se buscan los registros de productos que cumplan con el almacen y con el producto recibidos
             $productos_almacenes = LoteProductoDAO::search(new LoteProducto(array("id_almacen" => $id_almacen, "id_producto" => $id_producto)));
         } else {
             if (!is_null($id_empresa)) {
                 //Se obtienen todos los almacenes de la empresa
                 $almacenes_empresa = AlmacenDAO::search(new Almacen(array("id_empresa" => $id_empresa)));
                 $productos_almacenes_empresa = array();
                 //Se recorre cada almacen y se obtiene un arreglo de sus productos, para poder agruparlos, tenemos que seacarlos
                 //de su arreglo y ponerlos en un arreglo general
                 foreach ($almacenes_empresa as $almacen_empresa) {
                     //Se obtiene el arreglo de productos
                     $productos_almacen_empresa = LoteProductoDAO::search(new LoteProducto(array("id_almacen" => $almacen_empresa->getIdAlmacen(), "id_producto" => $id_producto)));
                     //Se vacía el arreglo en uno general
                     foreach ($productos_almacen_empresa as $producto_almacen_empresa) {
                         array_push($productos_almacenes_empresa, $producto_almacen_empresa);
                     }
                 }
                 //Se agrupan los productos iguales
                 $productos_almacenes = self::AgruparProductos($productos_almacenes_empresa);
             } else {
                 if (!is_null($id_sucursal)) {
                     //Se obtienen todos los almacenes de la sucursal
                     $almacenes_sucursal = AlmacenDAO::search(new Almacen(array("id_sucursal" => $id_sucursal)));
                     $productos_almacenes_sucursal = array();
                     //Se recorre cada almacen y se obtiene un arreglo de sus productos, para poder agruparlos, tenemos que sacarlos
                     //de su arreglo y ponerlos en un arreglo general
                     foreach ($almacenes_sucursal as $almacen_sucursal) {
                         //Se obtiene el arreglo de productos
                         $productos_almacen_sucursal = LoteProductoDAO::search(new LoteProducto(array("id_almacen" => $almacen_sucursal->getIdAlmacen(), "id_producto" => $id_producto)));
                         //Se vacía el arreglo en uno general
                         foreach ($productos_almacen_sucursal as $producto_almacen_sucursal) {
                             array_push($productos_almacenes_sucursal, $producto_almacen_sucursal);
                         }
                     }
                     //Se agrupan los productos iguales
                     $productos_almacenes = self::AgruparProductos($productos_almacenes_sucursal);
                 } else {
                     //Se obtienen todos los almacenes
                     $almacenes = AlmacenDAO::getAll();
                     $productos_almacen = array();
                     //Se recorre cada almacen y se obtiene un arreglo de sus productos, para poder agruparlos, tenemos que sacarlos
                     //de su arreglo y ponerlos en un arreglo general
                     foreach ($almacenes as $almacen) {
                         //Se obtiene el arreglo de productos
                         $productos_a = LoteProductoDAO::search(new LoteProducto(array("id_almacen" => $almacen->getIdAlmacen(), "id_producto" => $id_producto)));
                         //Se vacía el arreglo en uno general
                         foreach ($productos_a as $p_a) {
                             array_push($productos_almacen, $p_a);
                         }
                     }
                     //Se agrupan los productos iguales
                     $productos_almacenes = self::AgruparProductos($productos_almacen);
                 }
             }
         }
     }
     Logger::log("Se listan " . count($productos_almacenes) . " registros");
     $existencias = array("resultados" => $productos_almacenes, "numero_de_resultados" => count($productos_almacenes));
     return $existencias;
 }
コード例 #3
0
$btn_recibir->addApiCall("api/sucursal/almacen/traspaso/recibir/", "GET");
$btn_recibir->onApiCallSuccessRedirect("sucursales.lista.traspaso.almacen.php");
$btn_recibir->addName("recibir");
$funcion_recibir = " function recibir_traspaso(btn){" . "if(btn == 'yes')" . "{" . "var p = {};" . "p.id_traspaso = " . $_GET["tid"] . ";" . "sendToApi_recibir(p);" . "}" . "}" . "      " . "function confirmar_recibo(){" . " Ext.MessageBox.confirm('Recibir', 'Desea recibir este traspaso?', recibir_traspaso );" . "}";
$btn_recibir->addOnClick("confirmar_recibo", $funcion_recibir);
$menu->addMenuItem($btn_recibir);
$page->addComponent($menu);
//
// Forma de producto
//
$form = new DAOFormComponent($este_traspaso);
$form->setEditable(false);
//$form->setEditable(false);
$form->hideField(array("id_traspaso"));
//		$form->makeObligatory(array(
//				"compra_en_mostrador",
//				"costo_estandar",
//				"nombre_producto",
//				"id_empresas",
//				"codigo_producto",
//				"metodo_costeo",
//				"activo"
//			));
//	    $form->createComboBoxJoin("id_unidad", "nombre", UnidadDAO::getAll(), $este_producto->getIdUnidad() );
$form->createComboBoxJoinDistintName("id_almacen_recibe", "id_almacen", "nombre", AlmacenDAO::getAll(), $este_traspaso->getIdAlmacenRecibe());
$form->createComboBoxJoinDistintName("id_almacen_envia", "id_almacen", "nombre", AlmacenDAO::getAll(), $este_traspaso->getIdAlmacenEnvia());
$form->createComboBoxJoinDistintName("id_usuario_recibe", "id_usuario", "nombre", UsuarioDAO::getAll(), $este_traspaso->getIdUsuarioRecibe());
$form->createComboBoxJoinDistintName("id_usuario_envia", "id_usuario", "nombre", UsuarioDAO::getAll(), $este_traspaso->getIdUsuarioEnvia());
$form->createComboBoxJoinDistintName("id_usuario_programa", "id_usuario", "nombre", UsuarioDAO::getAll(), $este_traspaso->getIdUsuarioPrograma());
$page->addComponent($form);
$page->render();