Example #1
0
 /**
  * Confirma el parte de elaboración, que consiste en:
  *
  *  1.- Reservar mercancía en el registro de existencias sin indicar lote ni ubiación
  *      solo para aquellos artículos que estén sujetos a inventario
  *  2.- Poner la cabecera del parte y sus líneas de tipo 0 (salida) en estado CONFIRMADO (1)
  *
  */
 public function confirma()
 {
     // Si no está confirmado
     if ($this->getIDEstado()->getIDTipo() == 0) {
         $em = new EntityManager($this->getConectionName());
         $query = "SELECT t1.IDArticulo, t1.IDAlmacen, t1.Unidades, t1.UnidadMedida\n                        FROM {$this->_dataBaseName}.ErpManufacLineas as t1, ErpArticulos as t2\n                        WHERE t1.IDManufac='{$this->IDManufac}'\n                            AND t1.IDEstado='0'\n                            AND t1.Tipo='0'\n                            AND t1.IDArticulo=t2.IDArticulo\n                            AND t2.Inventario='1'";
         $em->query($query);
         $rows = $em->fetchResult();
         $em->desConecta();
         $exi = new Existencias();
         foreach ($rows as $row) {
             $exi->hazReserva($row['IDAlmacen'], $row['IDArticulo'], $row['Unidades'], $row['UnidadMedida']);
         }
         unset($exi);
         // Marcar como Reservadas las líneas del parte de elaboración de tipo 0 (salida)
         $lineas = new ManufacLineas();
         $lineas->queryUpdate(array("IDEstado" => '1'), "IDManufac='{$this->IDManufac}' and IDEstado='0' and Tipo='0'");
         unset($lineas);
         // Confirmar la cabecera del parte de elaboración
         $this->setIDEstado(1);
         $this->save();
     }
 }
 private function recalcula($idAlmacen)
 {
     // Poner las reservadas y el entrando a cero
     $stock = new Existencias();
     $stock->queryUpdate(array("Reservadas" => 0, "Entrando" => 0), "IDAlmacen='{$idAlmacen}'");
     // Borrar los registros de stock que estén a cero
     $stock->queryDelete("IDAlmacen='{$idAlmacen}' and Reales=0 and Pales=0 and Cajas=0 and Reservadas=0 and Entrando=0");
     // Calcular las reservas de los artículos inventariables
     $lineas = new AlbaranesLineas();
     $articulos = new Articulos();
     $tablaLineas = $lineas->getDataBaseName() . "." . $lineas->getTableName();
     $tablaArticulos = $articulos->getDataBaseName() . "." . $articulos->getTableName();
     unset($lineas);
     unset($articulos);
     $query = "select l.IDArticulo,a.Codigo,l.Descripcion, sum(l.Unidades) Unidades,l.UnidadMedida ";
     $query .= "from {$tablaLineas} as l ";
     $query .= "join {$tablaArticulos} as a on l.IDArticulo=a.IDArticulo ";
     $query .= "where l.IDEstado='1' and a.Inventario='1' ";
     $query .= "group by l.IDArticulo";
     $em = new EntityManager($_SESSION['project']['conection']);
     $em->query($query);
     $rows = $em->fetchResult();
     $em->desConecta();
     unset($em);
     $resultado['reservas'] = $rows;
     foreach ($rows as $row) {
         $stock = new Existencias();
         $stock->hazReserva($idAlmacen, $row['IDArticulo'], $row['Unidades'], $row['UnidadMedida']);
     }
     // Calcular el entrando de los artículos inventariables
     $lineas = new PedidosLineas();
     $articulos = new Articulos();
     $tablaLineas = $lineas->getDataBaseName() . "." . $lineas->getTableName();
     $tablaArticulos = $articulos->getDataBaseName() . "." . $articulos->getTableName();
     unset($lineas);
     unset($articulos);
     $query = "select l.IDArticulo,a.Codigo,l.Descripcion,sum(l.Unidades) Unidades,l.UnidadMedida ";
     $query .= "from {$tablaLineas} as l ";
     $query .= "join {$tablaArticulos} as a on l.IDArticulo=a.IDArticulo ";
     $query .= "where l.IDEstado='1' and a.Inventario='1' ";
     $query .= "group by l.IDArticulo";
     $em = new EntityManager($_SESSION['project']['conection']);
     $em->query($query);
     $rows = $em->fetchResult();
     $em->desConecta();
     unset($em);
     $resultado['entrando'] = $rows;
     foreach ($rows as $row) {
         $stock = new Existencias();
         $stock->hazEntrando($idAlmacen, $row['IDArticulo'], $row['Unidades'], $row['UnidadMedida']);
     }
     return $resultado;
 }