Exemplo n.º 1
0
 /**
  * Devuelve un array con las ubicaciones del $idAlmacen
  * donde hay existencias del artículo y le añade al final
  * el resto de ubicaciones.
  *
  * Si el parámetro $todas se pone al false, solo devuelve las ubicaciones
  * donde haya existencias.
  *
  * Se utiliza principalmente en los procesos de recepción de mercancía
  * (recepción de pedidos y de elaboraciones)
  *
  * @param integer $idAlmacen El id de almacén
  * @param string $filtroUbicacion Filtro de la ubicación (defecto %)
  * @param boolean $todas
  * @return array Las ubicaciones array('Id' => IDUbicacion, 'Value' => Ubicacion, 'Reales' => Existencias Reales)
  */
 public function getUbicaciones($idAlmacen, $filtroUbicacion = "%", $todas = TRUE)
 {
     $ubicaciones = array();
     $mapa = new AlmacenesMapas();
     $existencias = new Existencias();
     $em = new EntityManager($this->getConectionName());
     if ($em->getDbLink()) {
         //Ubicaciones donde haya existencias.
         //$query = "Call UbicacionesArticulo({$idAlmacen},{$this->IDArticulo});";
         $query = "SELECT DISTINCT e.IDUbicacion AS Id, m.Ubicacion AS Value, e.Reales as Reales\n                        FROM\n                            {$existencias->getDataBaseName()}.{$existencias->getTableName()} e,\n                            {$mapa->getDataBaseName()}.{$mapa->getTableName()} m\n                        WHERE\n                            e.IDUbicacion = m.IDUbicacion AND\n                            e.IDAlmacen= '{$idAlmacen}' AND\n                            e.IDArticulo= '{$this->IDArticulo}' AND\n                            e.Reales > 0 AND\n                            m.Ubicacion LIKE '{$filtroUbicacion}'";
         $em->query($query);
         $habituales = $em->fetchResult();
         $em->desConecta();
         unset($em);
     }
     if ($todas) {
         $habituales[] = array('Id' => '0', 'Value' => ':: Resto de Ubicaciones ::');
         $ubicaciones = array_merge($habituales, $mapa->fetchAll($idAlmacen, $filtroUbicacion));
     } else {
         $ubicaciones = $habituales;
     }
     unset($mapa);
     unset($existencias);
     return $ubicaciones;
 }
Exemplo n.º 2
0
 /**
  * Devuelve un array con los ubicaciones del almacen $idAlmacen
  * donde hay existencias reales del lote en curso
  * 
  * El array tiene tres elementos:
  * 
  *  Id : El id de la ubicacion
  * 
  *  Value: El nombre de la ubicacion
  * 
  *  Reales: Las existencias reales del lote
  * 
  * @param integer $idAlmacen El id de almacen
  * @return array Array de ubicaciones
  */
 public function getUbicacionesStock($idAlmacen)
 {
     $ubicaciones = array();
     $mapas = new AlmacenesMapas();
     $mapasDataBase = $mapas->getDataBaseName();
     $mapasTableName = $mapas->getTableName();
     unset($mapas);
     $this->conecta();
     if (is_resource($this->_dbLink)) {
         //$query = "Call UbicacionesLote('{$idAlmacen}','{$this->IDLote}','{$filtroUbicacion}');";
         $query = "SELECT e.IDUbicacion AS Id, m.Ubicacion AS Value, e.Reales AS Reales \n                        FROM\n                            {$this->_dataBaseName}.ErpExistencias e,\n                            {$mapasDataBase}.{$mapasTableName} as m\n                        WHERE\n                            e.IDAlmacen= '{$idAlmacen}' AND\n                            e.IDLote= '{$this->IDLote}' AND\n                            e.Reales > 0 AND\n                            e.IDUbicacion = m.IDUbicacion\n                        ORDER BY m.Ubicacion";
         $this->_em->query($query);
         $ubicaciones = $this->_em->fetchResult();
         $this->_em->desConecta();
         unset($this->_em);
     }
     return $ubicaciones;
 }