function enviarEmailNuevaReserva($idReserva) { try { global $smarty; $reservacion = getReserva($idReserva); $reservacion->id = encryptId($idReserva); $smarty->assign('reserva', $reservacion); $cart = $reservacion->cart; $data_user = array('nombre' => $reservacion->usuario->nombre, 'apellido' => $reservacion->usuario->apellido, 'email' => $reservacion->usuario->email, 'telefono' => $reservacion->usuario->telefono); $smarty->assign('usuario', $data_user); $hotel = getHotelById($reservacion->hotelId); $subject = 'New Booking ' . $hotel->nombres->es . ' [' . $reservacion->localizador . ']'; $smarty->assign('entrada', $reservacion->alojamiento[0]->inicio); $smarty->assign('salida', $reservacion->alojamiento[0]->final); $noches = ceil((strtotime($reservacion->alojamiento[0]->final) - strtotime($reservacion->alojamiento[0]->inicio)) / (24 * 60 * 60)); $smarty->assign('noches', $noches); $pais = getPais($reservacion->usuario->paisId); $smarty->assign('pais', $pais->nombre); $smarty->assign('base_url', $cart->url); $smarty->assign('currency', $moneda); $campania = false; $smarty->assign('hotel', $hotel); if ($hotel && $hotel->campaniaId) { $campania = getCampania($hotel->campaniaId); $smarty->assign('campania', $campania); } $body = $smarty->fetch('confirmacionEmail_nodesign.tpl'); $cobroAnticipado = 0; foreach ($reservacion->productos as $producto) { $cobroAnticipado += $producto->importeInicial; } //generar factura if ($cobroAnticipado && $reservacion->estado == 'Aprobada') { $factura = generarFactura($reservacion, $hotel); } else { $factura = 0; } $mail = new Core_Mailer(); /* enviando email al usuario */ $enviado = $mail->send_email($data_user['email'], $subject, $body, $factura); if ($factura) { //TODO: eliminar pdf $mail = new Core_Mailer(); @unlink($factura); } $emails = $hotel->emailReservas; $emails = explode(',', $emails); $reserva_url = getReservaUrl($idReserva); $smarty->assign('reserva_url', $reserva_url); $body = $smarty->fetch('reservaEmail_nodesign.tpl'); if ($campania) { $subject = 'New Booking ' . $reservacion->localizador . ' [contrato ' . $campania->localizador . ']'; } else { $subject = 'New Booking ' . $hotel->nombres->es . ' ' . $reservacion->localizador; } $emailDistribuidor = explode(',', $hotel->distribuidor->emailReservas); if ($emailDistribuidor && count($emailDistribuidor)) { foreach ($emailDistribuidor as $email) { if (strlen(trim($email)) > 0) { $enviado = $mail->send_email($email, $subject, $body); } } } if ($reservacion->estado == 'Aprobada') { //cuando no es onrequest foreach ($emails as $email) { if (strlen(trim($email)) > 0) { $enviado = $mail->send_email($email, $subject, $body); } } if ($reservacion->extras) { foreach ($reservacion->extras as $excursion) { if ($excursion->emails && explode(',', $excursion->emails)) { $smarty->assign('excursion', $excursion); $body = $smarty->fetch('confirmacionExcursion_nodesign.tpl'); $emails = explode(',', $excursion->emails); $subject = 'New Booking ' . $excursion->localizador; foreach ($emails as $email) { if (strlen(trim($email))) { $mail->send_email($email, $subject, $body); } } } } } } } catch (Exception $ex) { print_r($ex); } }
$apartamento = $reservacion->alojamiento[0]; $smarty->assign('reserva', $reservacion); $smarty->assign('entrada', $apartamento->inicio); $smarty->assign('salida', $apartamento->final); $noches = ceil((strtotime($apartamento->final) - strtotime($apartamento->inicio)) / (24 * 60 * 60)); $smarty->assign('noches', $noches); if ($hotel && $hotel->campaniaId) { $campania = getCampania($hotel->campaniaId); $smarty->assign('campania', $campania); } if ($reservacion->idiomaId) { $smarty->configLoad($reservacion->idioma->codigo . '.conf'); } $body = $smarty->fetch('confirmacionEmail_nodesign.tpl'); if ($reservacion->pagos && count($reservacion->pagos) && $reservacion->pagos[0]->importe) { $factura = generarFactura($reservacion, $hotel); } else { $factura = 0; } $mail = new Core_Mailer(); $enviado = $mail->send_email($reservacion->usuario->email, $subject, $body, $factura); if ($factura) { $mail = new Core_Mailer(); @unlink($factura); } //enviar al hotel $smarty->configLoad('es.conf'); $subject = 'New Booking ' . $reserva->localizador . ' [Contrato ' . $campania->localizador . ']'; $reserva_url = getReservaUrl($reserva->id); $smarty->assign('reserva_url', $reserva_url); $body = $smarty->fetch('reservaEmail_nodesign.tpl');
<?php $reserva = getReserva(133); generarFactura($reserva, $hotel); function generarFactura($reserva, $hotel) { try { global $template_dir; global $template_url; $pdfWriter = new PdfWriter(); $pdfWriter->Header(); $pdfWriter->printHeaderRow(1, 'Factura', $reserva->localizador); $ruta = ' '; if ($hotel->logoId) { $ruta = ' img(' . $hotel->logo->ruta . ') '; } else { $ruta = ' img(' . $template_url . '/images/logo.png) '; } $pdfWriter->printHeaderRow(2, $ruta . ' ' . $smarty->getConfigVariable('sistema_nombre'), '', 90, 'R'); $pdfWriter->printRow(1, '', "Nombre: " . $reserva->usuario->nombre . "\nApellido: " . $reserva->usuario->apellido . "\nEmail: " . $reserva->usuario->email . "\nTelefono: " . $reserva->usuario->telefono . "\n"); $pdfWriter->printRow(2, '', "Distribuidor:" . $hotel->distribuidor->nombreComercial . "\nCIF: " . $hotel->distribuidor->numeroFiscal . "\nDireccion: " . $hotel->distribuidor->direccion->descripcion . "\nTelefono: " . $hotel->distribuidor->telefonoReservas . "\nEmail: " . $hotel->distribuidor->emailReservas . "\n"); $pdfWriter->PrintBorderTableRow('Cargos facturados:'); $total = 0; foreach ($reserva->alojamiento as $p) { if ($p->importeInicial) { $pdfWriter->printRow(1, "Localizador {$reserva->localizador} - gestión de reserva {$p->porcientoInicial} %", "{$p->nombre}", 150); $pdfWriter->printRow(2, $reserva->moneda->codigo . ' ' . number_format($p->importeInicial, 2, ',', ''), '', 30); $total += $p->importeInicial; } } foreach ($reserva->extras as $p) {