/** * Recepciona el pedido en base a las lineas de recepción de cada linea de pedido. * * Actualiza los precios (Pvd,Pmc,Margen,Pvp) del artículo * * Pasa el pedido al estado RECEPCIONADO (2) * * @param string $incidencias Posibles incidencias en la recepcion * @return boolean */ public function recepciona($incidencias) { if ($this->getIDEstado()->getIDTipo() == '1') { // Recorrer cada linea del pedido $lineaPedido = new PedidosLineas(); $rows = $lineaPedido->cargaCondicion("IDLinea", "IDPedido='{$this->IDPedido}' and IDEstado='1'", "IDLinea ASC"); foreach ($rows as $row) { $lineaPedido = new PedidosLineas($row['IDLinea']); if (!$lineaPedido->recepciona()) { $this->_errores = $lineaPedido->getErrores(); break; } } unset($lineaPedido); if (count($this->_errores) == 0) { //Marcar el pedido como recepcionado, poner la fecha de entrada y guardar las eventuales incidencias $usuario = new Agentes($_SESSION['usuarioPortal']['Id']); unset($usuario); $this->setIDEstado('2'); $this->setFechaEntrada(''); $this->setIncidencias($incidencias); $this->save(); } } return count($this->_errores) == 0; }