示例#1
0
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);
    }
}
示例#2
0
 $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');
示例#3
0
<?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) {