/** * 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; }
/** * 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; }