public function Inventarios() { $nItems = 0; $nErrores = 0; $dbLink = mysql_connect("localhost", "root", "albatronic"); $query = "TRUNCATE {$this->dbDestino}.ErpInventariosCab"; mysql_query($query); $query = "TRUNCATE {$this->dbDestino}.ErpInventariosLineas"; mysql_query($query); $query = "select distinct IDSucursal,DATE_FORMAT(Fecha,'%Y-%m-%d') as FInventario, Cerrado FROM {$this->dbOrigen}.inventarios order by DATE_FORMAT(Fecha,'%Y-%m-%d') asc"; $result = mysql_query($query, $dbLink); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $i = new InventariosCab(); $i->setIDAlmacen($row['IDSucursal']); $i->setFecha($row['FInventario']); $i->setCerrado($row['Cerrado']); $id = $i->create(); if (!$id) { $errores[] = $i->getErrores(); $nErrores++; } else { $i->setIDInventario($id); $i->setPrimaryKeyMD5(md5($id)); $i->save(); $nItems++; $this->LineasInventario($row['FInventario'], $id, $dbLink); } } echo "Inventarios cabeceras {$nItems}<br/>"; if (count($errores)) { echo "<pre>"; print_r($errores); echo "</pre>"; } }
/** * Cierra el inventario */ public function cerrarAction() { if ($this->values['permisos']['permisosModulo']['UP']) { $datos = new InventariosCab($this->request['InventariosCab']['IDInventario']); $datos->cierra(); $this->values['errores'] = $datos->getErrores(); $this->values['alertas'] = $datos->getAlertas(); $datos = new InventariosCab($this->request['InventariosCab']['IDInventario']); $this->values['datos'] = $datos; unset($datos); return array('template' => $this->entity . '/edit.html.twig', 'values' => $this->values); } else { return array('template' => '_global/forbiden.html.twig'); } }
/** * Realiza validaciones logicas antes de crear/actualizar el objeto: * * 1.- Comprueba la existencia del lote y ubicación (si procede) * 2.- Agrupa con código de artículo, lote ubicación */ public function validaLogico() { parent::validaLogico(); // Control Lote y Ubicación $articulo = new Articulos($this->IDArticulo); if ($articulo->getStatus()) { $trazabilidad = $articulo->getTrazabilidad()->getIDTipo() == 1; $this->Descripcion = $articulo->getDescripcion(); } else { $this->_errores[] = "El artículo no existe"; } unset($articulo); $inventario = new InventariosCab($this->IDInventario); $controlUbicaciones = $inventario->getIDAlmacen()->getControlUbicaciones()->getIDTipo() == 1; unset($inventario); if ($trazabilidad) { if ($this->IDLote == 0) { $this->_errores[] = "Debe indicar un lote"; } else { // Comprobar que el lote pertenezca al artículo $lote = new Lotes($this->IDLote); if ($lote->getIDArticulo()->getIDArticulo() != $this->IDArticulo) { $this->_errores[] = "El lote no pertenece al artículo"; } unset($lote); } } if ($controlUbicaciones and $this->IDUbicacion == 0) { $this->_errores[] = "Debe indicar la ubicación"; } // Agrupar en la misma línea de inventario las entradas // que coinciden en el código de articulo, lote y ubicación $rows = $this->cargaCondicion("*", "IDArticulo='{$this->IDArticulo}' and IDLote='{$this->IDLote}' and IDUbicacion='{$this->IDUbicacion}' and IDInventario='{$this->IDInventario}'"); if (count($rows)) { $this->_idLineaNueva = $rows[0]['IDLinea']; $this->Stock += $rows[0]['Stock']; $this->Cajas += $rows[0]['Cajas']; $this->Pales += $rows[0]['Pales']; $this->_flagAgrupa = true; } }