Пример #1
0
 /**
  * Expide la orden de traspaso, que consiste en:
  *  1.- Expedir la mercancía indicada en las lineas de traspaso del tipo 0
  *  2.- Poner la cabecera de la orden de traspaso y sus lineas de tipo 0 en estado ENVIADO (2)
  *  3.- Generar la líneas de tipo 1 (las de entrada en el almacén destino) actualizando el 'entrando'
  *
  * @return boolean
  */
 public function expide()
 {
     if ($this->getIDEstado()->getIDTipo() == 1) {
         // Recorrer cada linea de traspaso del tipo 0
         $lineaTraspaso = new TraspasosLineas();
         $rows = $lineaTraspaso->cargaCondicion("IDLinea", "IDTraspaso='{$this->IDTraspaso}' and Tipo='0' and IDEstado='1'", "IDLinea ASC");
         foreach ($rows as $row) {
             $lineaTraspaso = new TraspasosLineas($row['IDLinea']);
             if (!$lineaTraspaso->expide()) {
                 $this->_errores = $lineaTraspaso->getErrores();
                 break;
             }
         }
         unset($lineaTraspaso);
         if (count($this->_errores) == 0) {
             //Marcar la orden de traspaso como enviada y establecer la fecha de envío
             $this->setIDEstado('2');
             $this->setFechaSalida('');
             $this->save();
         }
     }
     return count($this->_errores) == 0;
 }