/** * Descatalogar los lotes (poner no vigentes) que no tengan existencias * entre todos los almacenes de la empresa */ public function DescatalogarAction() { if ($this->values['permisos']['permisosModulo']['UP']) { $lote = new Lotes(); $tablaLotes = $lote->getDataBaseName() . "." . $lote->getTableName(); $existencias = new Existencias(); $tablaExistencias = $existencias->getDataBaseName() . "." . $existencias->getTableName(); unset($existencias); $em = new EntityManager($lote->getConectionName()); if ($em->getDbLink()) { $query = "\n UPDATE {$tablaLotes} SET Vigente='0'\n WHERE IDLote not in (\n SELECT IDLote\n FROM {$tablaExistencias} e\n WHERE (\n IDLote>0 AND\n (\n Reales>0 OR\n Reservadas>0 OR\n Entrando>0\n )\n )\n GROUP BY IDLote\n ORDER BY IDLote\n );"; $em->query($query); $em->desConecta(); } unset($lote); return $this->indexAction(); } else { return array('template' => '_global/forbiden.html.twig'); } }
/** * Devuelve el registro de existencias del artículo para cada almacén * @return array */ public function getExistencias() { $array = array(); $existencias = new Existencias(); $tablaExistencias = $existencias->getDataBaseName() . "." . $existencias->getTableName(); $almacenes = new Almacenes(); $tablaAlmacenes = $almacenes->getDataBaseName() . "." . $almacenes->getTableName(); $em = new EntityManager($this->getConectionName()); if ($em->getDbLink()) { $query = "select\n a.Nombre,\n sum(e.Reales) as Reales,\n sum(e.Pales) as Pales,\n sum(e.Cajas) as Cajas,\n sum(e.Reservadas) as Reservadas,\n sum(e.Entrando) as Entrando\n from\n {$tablaExistencias} as e\n left join {$tablaAlmacenes} as a on e.IDAlmacen=a.IDAlmacen\n where\n e.IDArticulo='{$this->IDArticulo}'\n group by a.Nombre\n order by a.Nombre ASC"; $em->query($query); $array = $em->fetchResult(); $em->desConecta(); } unset($em); return $array; }
/** * Devuelve los artículos que son inventariables y están bajo mínimos * * @return type */ static function getRoturasStock() { $arti = new Articulos(); $tablaArticulos = $arti->getDataBaseName() . "." . $arti->getTableName(); $exi = new Existencias(); $tablaExistencias = $exi->getDataBaseName() . "." . $exi->getTableName(); $em = new EntityManager($arti->getConectionName()); if ($em->getDbLink()) { $query = "select a.Codigo,a.Descripcion,a.StockMinimo,sum(e.Reales) as sumaReales,sum(e.Reservadas) as sumaReservadas,sum(e.Entrando) as sumaEntrando,a.StockMinimo-sum(e.Reales-e.Reservadas+e.Entrando) as pedidoMinimo\n FROM {$tablaExistencias} as e left join {$tablaArticulos} as a on e.IDArticulo=a.IDArticulo\n WHERE (a.Inventario='1')\n GROUP BY e.IDArticulo\n HAVING ( (a.StockMinimo>0) and (sumaReales < a.StockMinimo) ) or (sumaReales<0)\n ORDER BY a.IDCategoria,a.Descripcion"; $em->query($query); $rows = $em->fetchResult(); } unset($em); unset($arti); unset($exi); return $rows; }