/**
  * 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');
     }
 }
Beispiel #2
0
 /**
  * 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;
 }
Beispiel #3
0
 /**
  * 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;
 }