예제 #1
0
 /**
  * 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;
 }