Пример #1
0
 /**
  * Confirma el presupuesto, que consiste en aprobarlo
  * y generar un albaran en base al mismo.
  * Devuelve el id del albaran generado
  * IMPORTANTE: APLICA LA TARIFA Y PROMOCIONES VIGENTES
  *
  * @return integer El id del albaran generado
  */
 public function confirma()
 {
     //Crear cabecera de albaran.
     //No pongo los totales porque los recalculo una vez
     //creadas las lineas del albaran.
     $contador = new Contadores();
     $albaran = new AlbaranesCab();
     $albaran->setIDSucursal($this->IDSucursal);
     $albaran->setIDContador($contador->dameContador($this->IDSucursal, 1));
     $albaran->setIDAlmacen($this->IDAlmacen);
     $albaran->setIDAgente($_SESSION['usuarioPortal']['Id']);
     $albaran->setIDComercial($this->IDComercial);
     $albaran->setFecha(date('d-m-Y'));
     $albaran->setIDCliente($this->IDCliente);
     $albaran->setIDDirec($this->IDDirec);
     $albaran->setDescuento($this->Descuento);
     $albaran->setObservaciones($this->Observaciones . "Proviene del Psto N. " . $this->NumeroPsto);
     $albaran->setIDAgencia($this->IDAgencia);
     $albaran->setIDFP($this->IDFP);
     $albaran->setIDPsto($this->IDPsto);
     $idAlbaran = $albaran->create();
     unset($contador);
     if ($idAlbaran) {
         // Marco el presupuesto como confirmado (Estado=1)
         $this->setIDEstado(1);
         $this->setIDAlbaran($idAlbaran);
         $this->setFechaAceptacion(date('d-m-Y'));
         $this->save();
         // Crear las lineas de albaran
         $lineas = new PstoLineas();
         $rows = $lineas->cargaCondicion('*', "IDPsto='{$this->IDPsto}'", "IDLinea ASC");
         unset($lineas);
         foreach ($rows as $row) {
             $linea = new AlbaranesLineas();
             $linea->setIDAlbaran($idAlbaran);
             $linea->setIDArticulo($row['IDArticulo']);
             $linea->setDescripcion($row['Descripcion']);
             $linea->setUnidades($row['Unidades']);
             $linea->setPrecio($row['Precio']);
             $linea->setDescuento($row['Descuento']);
             $linea->setImporte($row['Importe']);
             $linea->setImporteCosto($row['ImporteCosto']);
             $linea->setIDAlmacen($this->IDAlmacen);
             $linea->setIva($row['Iva']);
             $linea->setRecargo($row['Recargo']);
             $linea->setIDAgente($_SESSION['usuarioPortal']['Id']);
             $linea->setIDComercial($this->IDComercial);
             $linea->setAltoAl($row['AltoAl']);
             $linea->setAnchoAl($row['AnchoAl']);
             $linea->setIDEstado(0);
             if ($linea->valida()) {
                 $linea->create();
                 // Marco la línea de psto como confirmado (Estado=1)
                 $lineaPsto = new PstoLineas($row['IDLinea']);
                 $lineaPsto->setIDEstado(1);
                 $lineaPsto->save();
                 unset($lineaPsto);
             }
         }
         // Recalcular el albarán
         $albaran->recalcula();
         $albaran->save();
         // Confirmar el albarán
         $albaran->confirma();
         $this->_alertas[] = "Se ha generado el albarán n. " . $albaran->getNumeroAlbaran();
     } else {
         $this->_alertas[] = "No se ha generado albarán";
     }
     return $idAlbaran;
 }