/** * Recepciona todas las líneas de recepción correspondientes * a la entidad $entidad y línea de entidad $idLineaEntidad * * @param string $entidad La entidad padre (PedidosCab,ManufacCab,TraspasosCab) * @param integer $idLineaEntidad El id de la línea de la entidad padre * @return float La cantidad de unidades recepcionadas */ public function recepciona($entidad, $idLineaEntidad, $flagDeposito = '0') { $unidadesRecepcionadas = 0; $rows = $this->cargaCondicion("*", "Entidad='{$entidad}' and IDLineaEntidad='{$idLineaEntidad}' and Recepcionada='0'"); foreach ($rows as $row) { $valores = array('UM' => $row['UnidadMedida'], 'Reales' => $row['UnidadesNetas'], 'Pales' => $row['Pales'], 'Cajas' => $row['Cajas'], 'Reservadas' => 0, 'Entrando' => 0); $mvtoAlmacen = new MvtosAlmacen(); $ok = $mvtoAlmacen->genera($row['Entidad'], 'E', $row['IDEntidad'], $row['IDAlmacen'], $row['IDArticulo'], $row['IDLote'], $row['IDUbicacion'], $flagDeposito, $valores); // Valores con los que actualizar $unidadesRecepcionadas += $row['UnidadesNetas']; if ($ok) { // Marcar la linea de recepción como recepcionada. $recepcion = new Recepciones($row['IDLinea']); $recepcion->setRecepcionada(1); $recepcion->save(); } else { // Ha fallado la creación/validación del movimiento. No se // marca la recepción como recepcionada $recepcion = new Recepciones($row['IDLinea']); $recepcion->setRecepcionada(0); $recepcion->setUnidadesBrutas(0); $recepcion->setUnidadesNetas(0); $recepcion->save(); $unidadesRecepcionadas = 0; } } unset($mvtoAlmacen); unset($recepcion); return $unidadesRecepcionadas; }