}//Fin del método ObtenerReservas. public async Task<ActionResult> MostrarReserva(int idReserva, int idTipoHabitacion) { Respuesta<TSH_Reserva> respuestaReserva = new Respuesta<TSH_Reserva>(); Respuesta<List<SP_ConsultarDisponibilidad_Result>> respuestaTipoHabitacion = new Respuesta<List<SP_ConsultarDisponibilidad_Result>>(); TSH_Reserva reserva = new TSH_Reserva(); List<SP_ConsultarDisponibilidad_Result> listaHabitaciones = new List<SP_ConsultarDisponibilidad_Result>(); TSH_Tipo_Habitacion tipoHabitacion = new TSH_Tipo_Habitacion(); try { HttpResponseMessage responseWAPI = await webAPI.GetAsync(String.Concat("api/TSH_Reserva/", idReserva)); if (responseWAPI.IsSuccessStatusCode) { respuestaReserva = JsonConvert.DeserializeObject<Respuesta<TSH_Reserva>>(responseWAPI.Content.ReadAsStringAsync().Result); reserva = respuestaReserva.valorRetorno; }//Fin del if. responseWAPI = await webAPI.GetAsync(String.Concat("api/TSH_Tipo_Habitacion/", idTipoHabitacion)); if (responseWAPI.IsSuccessStatusCode) { respuestaTipoHabitacion = JsonConvert.DeserializeObject<Respuesta<List<SP_ConsultarDisponibilidad_Result>>>(responseWAPI.Content.ReadAsStringAsync().Result); listaHabitaciones = respuestaTipoHabitacion.valorRetorno; }//Fin del if. } catch (Exception ex) { System.Console.Write(ex.ToString()); }//Fin del try-catch. tipoHabitacion.TC_Titulo_TSH_Tipo_Habitacion = listaHabitaciones.First().TC_Titulo_TSH_Tipo_Habitacion; Reserva reservaVista = new Reserva(reserva, tipoHabitacion); return View("VerReserva", reservaVista); }//Fin del método MostrarReserva
public async Task<ActionResult> Reserva(string cedulaReserva, string nombreReserva, string apellidoReserva, string correoReserva, string tarjetaReserva, int numeroHabitacion, DateTime fechaLlegada, DateTime fechaSalida) { fechaLlegada = fechaLlegada.Date + (new TimeSpan(15, 0, 0)); fechaSalida = fechaSalida.Date + (new TimeSpan(11, 0, 0)); Respuesta<TSH_Reserva> respuesta = new Respuesta<TSH_Reserva>(); Respuesta<TSH_Habitacion> respuestaHab = new Respuesta<TSH_Habitacion>(); TSH_Reserva reserva = new TSH_Reserva(); reserva.TSH_Cliente = new TSH_Cliente(); TSH_Habitacion habitacion = new TSH_Habitacion(); try { HttpResponseMessage responseWAPI = await webAPI.GetAsync(String.Concat("api/TSH_Habitacion/", numeroHabitacion)); if (responseWAPI.IsSuccessStatusCode) { respuestaHab = JsonConvert.DeserializeObject<Respuesta<TSH_Habitacion>>(responseWAPI.Content.ReadAsStringAsync().Result); habitacion = respuestaHab.valorRetorno; }//Fin del if. } catch (Exception ex) { System.Console.Write(ex.ToString()); }//Fin del try-catch. try { Guid g = Guid.NewGuid(); reserva.TN_Numero_Reserva_TSH_Reserva = g; reserva.TD_Fecha_Ingreso_TSH_Reserva = fechaLlegada; reserva.TD_Fecha_Salida_TSH_Reserva = fechaSalida; reserva.TN_Num_Habitacion_TSH_Reserva = numeroHabitacion; reserva.TC_Id_Cliente_TSH_Reserva = cedulaReserva; reserva.TSH_Cliente.TC_Cedula_TSH_Cliente = cedulaReserva; reserva.TSH_Cliente.TC_Nombre_TSH_Cliente = nombreReserva; reserva.TSH_Cliente.TC_Apellidos_TSH_Cliente = apellidoReserva; reserva.TSH_Cliente.TC_Tarjeta_TSH_Cliente = tarjetaReserva; reserva.TSH_Cliente.TC_Correo_TSH_Cliente = correoReserva; double precio = habitacion.TSH_Tipo_Habitacion.TN_Tarifa_TSH_Tipo_Habitacion; int tipoHabitacion = habitacion.TN_Id_TipoH_TSH_Habitacion; precio = promocion(fechaLlegada, fechaSalida, tipoHabitacion, precio); String jsonContent = JsonConvert.SerializeObject(reserva); byte[] buffer = System.Text.Encoding.UTF8.GetBytes(jsonContent); ByteArrayContent byteArrayContent = new ByteArrayContent(buffer); byteArrayContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json"); HttpResponseMessage responseWAPI = await webAPI.PostAsync("api/TSH_Reserva/", byteArrayContent); if (responseWAPI.IsSuccessStatusCode) { respuesta = JsonConvert.DeserializeObject<Respuesta<TSH_Reserva>>(responseWAPI.Content.ReadAsStringAsync().Result); }//Fin del if. return RedirectToAction("ResultadoReserva", "Reserva", new { nombreCliente = nombreReserva + " " + apellidoReserva, correoElectronico = correoReserva, numeroReserva = g.ToString(), resultadoReserva = "1",precio = precio }); } catch { return RedirectToAction("Index", "Home"); }//Fin del try-catch. }//Fin del método Reserva.
}//Fin del constructor sobrecargado. public Reserva(TSH_Reserva reserva, TSH_Tipo_Habitacion tipoHabitacionReserva) { Reserva_ = reserva; TipoHabitacionReserva = tipoHabitacionReserva; }//Fin del constructor sobrecargado.
}//Fin del método MostrarReserva public async Task<ActionResult> GuardarPDF(int idReserva, int idTipoHabitacion) { DateTime fechaActual = DateTime.Now; Respuesta<TSH_Reserva> respuestaReserva = new Respuesta<TSH_Reserva>(); Respuesta<List<SP_ConsultarDisponibilidad_Result>> respuestaTipoHabitacion = new Respuesta<List<SP_ConsultarDisponibilidad_Result>>(); TSH_Reserva reserva = new TSH_Reserva(); List<SP_ConsultarDisponibilidad_Result> listaHabitaciones = new List<SP_ConsultarDisponibilidad_Result>(); TSH_Tipo_Habitacion tipoHabitacion = new TSH_Tipo_Habitacion(); try { HttpResponseMessage responseWAPI = await webAPI.GetAsync(String.Concat("api/TSH_Reserva/", idReserva)); if (responseWAPI.IsSuccessStatusCode) { respuestaReserva = JsonConvert.DeserializeObject<Respuesta<TSH_Reserva>>(responseWAPI.Content.ReadAsStringAsync().Result); reserva = respuestaReserva.valorRetorno; }//Fin del if. responseWAPI = await webAPI.GetAsync(String.Concat("api/TSH_Tipo_Habitacion/", idTipoHabitacion)); if (responseWAPI.IsSuccessStatusCode) { respuestaTipoHabitacion = JsonConvert.DeserializeObject<Respuesta<List<SP_ConsultarDisponibilidad_Result>>>(responseWAPI.Content.ReadAsStringAsync().Result); listaHabitaciones = respuestaTipoHabitacion.valorRetorno; }//Fin del if. } catch (Exception ex) { System.Console.Write(ex.ToString()); }//Fin del try-catch. tipoHabitacion.TC_Titulo_TSH_Tipo_Habitacion = listaHabitaciones.First().TC_Titulo_TSH_Tipo_Habitacion; Reserva reservaVista = new Reserva(reserva, tipoHabitacion); FileIOPermission f = new FileIOPermission(FileIOPermissionAccess.AllAccess, "C:\\Users\\Kevin Vargas\\Desktop"); f.AllLocalFiles = FileIOPermissionAccess.Write; f.Demand(); Document doc = new Document(PageSize.LETTER); // Indicamos donde vamos a guardar el documento PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(@"C:\Users\Kevin Vargas\Desktop\ReservaSunSetHotel(" + fechaActual.Day + "-" + fechaActual.Month + "-" + fechaActual.Year + ").pdf", FileMode.Create)); // Se le coloca el título y el autor doc.AddTitle("Estado de Reserva"); doc.AddCreator("Suntet Hotel System"); // Abrimos el archivo doc.Open(); // Se crea el tipo de Font que vamos utilizar iTextSharp.text.Font _standardFont = new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.COURIER, 8, iTextSharp.text.Font.BOLD, BaseColor.BLACK); iTextSharp.text.Font _standardFont2 = new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.HELVETICA, 12, iTextSharp.text.Font.BOLDITALIC, BaseColor.DARK_GRAY); iTextSharp.text.Font _standardFont6 = new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.HELVETICA, 8, iTextSharp.text.Font.NORMAL, BaseColor.DARK_GRAY); iTextSharp.text.Font _standardFont3 = new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.TIMES_ROMAN, 7, iTextSharp.text.Font.NORMAL, BaseColor.LIGHT_GRAY); iTextSharp.text.Font _standardFont4 = new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.TIMES_ROMAN, 8, iTextSharp.text.Font.NORMAL, BaseColor.BLACK); iTextSharp.text.Font _standardFont5 = new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.COURIER, 10, iTextSharp.text.Font.BOLD, BaseColor.BLACK); // Se escribe el encabezamiento en el documento doc.Add(new Paragraph("SunSet Hotel", _standardFont2)); doc.Add(Chunk.NEWLINE); doc.Add(new Paragraph("Reporte de Reserva", _standardFont6)); doc.Add(Chunk.NEWLINE); doc.Add(new Paragraph("A continuación, se muestra el desglose del estado de la reserva generado en la presente fecha: " + fechaActual.ToShortDateString() + " y a la hora: " + fechaActual.ToShortTimeString(), _standardFont6)); doc.Add(Chunk.NEWLINE); // Se crean las tablas (en este caso 3) PdfPTable tblPrueba = new PdfPTable(3); tblPrueba.WidthPercentage = 100; // Se configura el título de las columnas de la tabla PdfPCell clNombrePrimera = new PdfPCell(new Phrase("ID", _standardFont)); clNombrePrimera.BorderWidth = 0; clNombrePrimera.BorderWidthBottom = 0.75f; PdfPCell clNombreSegunda = new PdfPCell(new Phrase("Nombre", _standardFont)); clNombreSegunda.BorderWidth = 0; clNombreSegunda.BorderWidthBottom = 0.75f; PdfPCell clNombreTercera = new PdfPCell(new Phrase("Apellido", _standardFont)); clNombreTercera.BorderWidth = 0; clNombreTercera.BorderWidthBottom = 0.75f; PdfPCell clNombreCuarta = new PdfPCell(new Phrase("Correo", _standardFont)); clNombreTercera.BorderWidth = 0; clNombreTercera.BorderWidthBottom = 0.75f; PdfPCell clNombreQuinta = new PdfPCell(new Phrase("Tarjeta", _standardFont)); clNombreTercera.BorderWidth = 0; clNombreTercera.BorderWidthBottom = 0.75f; PdfPCell clNombreSexta = new PdfPCell(new Phrase("Llegada", _standardFont)); clNombreTercera.BorderWidth = 0; clNombreTercera.BorderWidthBottom = 0.75f; PdfPCell clNombreSetima = new PdfPCell(new Phrase("Salida", _standardFont)); clNombreTercera.BorderWidth = 0; clNombreTercera.BorderWidthBottom = 0.75f; PdfPCell clNombreOctava = new PdfPCell(new Phrase("Tipo", _standardFont)); clNombreTercera.BorderWidth = 0; clNombreTercera.BorderWidthBottom = 0.75f; // se añade las celdas a la tabla tblPrueba.AddCell(clNombrePrimera); tblPrueba.AddCell(clNombreSegunda); tblPrueba.AddCell(clNombreTercera); tblPrueba.AddCell(clNombreCuarta); tblPrueba.AddCell(clNombreQuinta); tblPrueba.AddCell(clNombreSexta); tblPrueba.AddCell(clNombreSetima); tblPrueba.AddCell(clNombreOctava); //*********************************** clNombrePrimera = new PdfPCell(new Phrase(reservaVista.Reserva_.TC_Id_Cliente_TSH_Reserva, _standardFont)); clNombrePrimera.BorderWidth = 0; clNombrePrimera.BorderWidthBottom = 0.75f; clNombreSegunda = new PdfPCell(new Phrase(reservaVista.Reserva_.TSH_Cliente.TC_Nombre_TSH_Cliente, _standardFont)); clNombreSegunda.BorderWidth = 0; clNombreSegunda.BorderWidthBottom = 0.75f; clNombreTercera = new PdfPCell(new Phrase(reservaVista.Reserva_.TSH_Cliente.TC_Apellidos_TSH_Cliente, _standardFont)); clNombreTercera.BorderWidth = 0; clNombreTercera.BorderWidthBottom = 0.75f; clNombreCuarta = new PdfPCell(new Phrase(reservaVista.Reserva_.TSH_Cliente.TC_Correo_TSH_Cliente, _standardFont)); clNombreTercera.BorderWidth = 0; clNombreTercera.BorderWidthBottom = 0.75f; clNombreQuinta = new PdfPCell(new Phrase(reservaVista.Reserva_.TSH_Cliente.TC_Tarjeta_TSH_Cliente, _standardFont)); clNombreTercera.BorderWidth = 0; clNombreTercera.BorderWidthBottom = 0.75f; clNombreSexta = new PdfPCell(new Phrase(reservaVista.Reserva_.TD_Fecha_Ingreso_TSH_Reserva.ToString(), _standardFont)); clNombreTercera.BorderWidth = 0; clNombreTercera.BorderWidthBottom = 0.75f; clNombreSetima = new PdfPCell(new Phrase(reservaVista.Reserva_.TD_Fecha_Salida_TSH_Reserva.ToString(), _standardFont)); clNombreTercera.BorderWidth = 0; clNombreTercera.BorderWidthBottom = 0.75f; clNombreOctava = new PdfPCell(new Phrase(reservaVista.Reserva_.TSH_Habitacion.TSH_Tipo_Habitacion.ToString(), _standardFont)); clNombreTercera.BorderWidth = 0; clNombreTercera.BorderWidthBottom = 0.75f; tblPrueba.AddCell(clNombrePrimera); tblPrueba.AddCell(clNombreSegunda); tblPrueba.AddCell(clNombreTercera); tblPrueba.AddCell(clNombreCuarta); tblPrueba.AddCell(clNombreQuinta); tblPrueba.AddCell(clNombreSexta); tblPrueba.AddCell(clNombreSetima); tblPrueba.AddCell(clNombreOctava); // Finalmente, se añade la tabla al documento PDF y se cierra el documento doc.Add(tblPrueba); doc.Add(new Paragraph("-Fin del reporte SunSet Hotel System. Emitido el " + fechaActual.ToString(), _standardFont3)); doc.Add(Chunk.NEWLINE); doc.Close(); writer.Close(); return RedirectToAction("VerReserva"); }//Fin del método generarPDF.