/** * Envia por email el albaran en formato PDF * @return <type> */ public function enviarAction() { switch ($this->request['accion']) { case 'Enviar': $para = $this->request['Para']; $de = $this->request['De']; $deNombre = $this->request['DeNombre']; $conCopia = $this->request['Cc']; $conCopiaOculta = $this->request['Cco']; $asunto = $this->request['Asunto']; $mensaje = $this->request['Mensaje']; $adjuntos = array($this->request['Adjunto']); $envio = new Mail(); $ok = $envio->send($para, $de, $deNombre, $conCopia, $conCopiaOculta, $asunto, $mensaje, $adjuntos); if ($ok) { $entidad = new $this->entity($this->request['AlbaranesCab']['IDAlbaran']); $entidad->auditaEmail(); unset($entidad); $this->values['resultadoEnvio'][] = "Envío con éxito"; } else { $this->values['resultadoEnvio'] = $envio->getMensaje(); } unset($envio); break; case 'CambioFormato': $datos = new AlbaranesCab($this->request['AlbaranesCab']['IDAlbaran']); $formatos = DocumentoPdf::getFormatos($this->entity); $formato = $this->request['Formato']; if ($formato == '') { $formato = 0; } $this->values['archivo'] = $this->generaPdf($this->entity, array('0' => $datos->getIDAlbaran()), $formato); $this->values['email'] = array('Para' => $this->request['Para'], 'De' => $this->request['De'], 'DeNombre' => $this->request['DeNombre'], 'Cc' => $this->request['Cc'], 'Cco' => $this->request['Cco'], 'Asunto' => $this->request['Asunto'], 'Formatos' => $formatos, 'Formato' => $formato, 'Mensaje' => $this->request['Mensaje'], 'idAlbaran' => $datos->getIDAlbaran()); break; case '': $datos = new AlbaranesCab($this->request['AlbaranesCab']['IDAlbaran']); $formatos = DocumentoPdf::getFormatos($this->entity); $formato = $this->request['Formato']; if ($formato == '') { $formato = 0; } $this->values['archivo'] = $this->generaPdf($this->entity, array('0' => $datos->getIDAlbaran()), $formato); $this->values['email'] = array('Para' => $datos->getIDCliente()->getEMail(), 'De' => $_SESSION['usuarioPortal']['email'], 'DeNombre' => $datos->getIDComercial()->getNombre(), 'Cco' => $_SESSION['usuarioPortal']['email'], 'Asunto' => 'Albaran n. ' . $datos->getNumeroAlbaran(), 'Formatos' => $formatos, 'Formato' => $formato, 'Mensaje' => 'Le adjunto el albaran ' . $datos->getNumeroAlbaran() . "\n\nUn saludo.", 'idAlbaran' => $datos->getIDAlbaran()); break; } return parent::enviarAction(); }
private function getAnterior($idAlbaran) { $albaranes = new AlbaranesCab($idAlbaran); $filtro = "IDSucursal='{$_SESSION['suc']}' AND NumeroAlbaran<'{$albaranes->getNumeroAlbaran()}'"; $rows = $albaranes->cargaCondicion("IDAlbaran", $filtro, "NumeroAlbaran DESC LIMIT 1"); unset($albaranes); return new AlbaranesCab($rows[0]['IDAlbaran']); }
/** * 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; }