public async Task Create(Hotel hotel) { FacturaCrudFactory crudFactura = new FacturaCrudFactory(); UsuarioManager mngUsuario = new UsuarioManager(); Factura factura = new Factura(); try { var resFactura = new Factura(); do { var guid = Guid.NewGuid(); var justNumbers = new String(guid.ToString().Where(Char.IsDigit).ToArray()); factura.NumFacturacion = int.Parse(justNumbers.Substring(0, 9)); resFactura = crudFactura.Retrieve <Factura>(factura); } while (resFactura != null); if (hotel.Cadena == null) { hotel.Cadena = ""; } hotel.Estado = "Activo"; hotel.EstadoMembrecia = "Pagada";//Pendiente, Pagada hotel.FechaFin = DateTime.Now; hotel.NumFacturacion = factura.NumFacturacion; var c = crudHotel.Retrieve <Hotel>(hotel); if (c != null) { //El hotel ya fue registrado throw new BussinessException(52); } else { crudHotel.Create(hotel); ParametrizablesHotel param = new ParametrizablesHotel { IdHotel = hotel.CedulaJuridica }; mngParametrizablesHotel.Create(param); Usuario usuarioEncontrado = null; var u = new Usuario { Identificacion = hotel.IdGerente }; usuarioEncontrado = mngUsuario.RetrieveById(u); var detalleFactura = new LineaDetalleFactura { Nombre = "Membresía", Precio = (float)hotel.Membrecia, Cantidad = 1, SubTotal = (float)hotel.Membrecia, Impuesto = 0, Total = (float)hotel.Membrecia }; ArrayList detalle = new ArrayList(); detalle.Add(detalleFactura); string numFactura = Convert.ToString(factura.NumFacturacion); await PdfManager.Create(numFactura, "el pago de una membresía en AdTrip", detalle, hotel, (Usuario)usuarioEncontrado); } } catch (Exception ex) { ExceptionManager.GetInstance().Process(ex); } }
public async Task Create(Reserva reserva) { try { FacturaCrudFactory crudFactura = new FacturaCrudFactory(); LlaveQRManager mngLlave = new LlaveQRManager(); UsuarioManager mngUsuario = new UsuarioManager(); HotelCrudFactory crudHotel = new HotelCrudFactory(); var resReserva = crudReserva.Retrieve <Reserva>(reserva); Factura factura = new Factura(); while (resReserva != null) { var guid = Guid.NewGuid(); var justNumbers = new String(guid.ToString().Where(Char.IsDigit).ToArray()); reserva.Codigo = int.Parse(justNumbers.Substring(0, 9)); resReserva = crudReserva.Retrieve <Reserva>(reserva); } ; var resFactura = new Factura(); do { var guid = Guid.NewGuid(); var justNumbers = new String(guid.ToString().Where(Char.IsDigit).ToArray()); factura.NumFacturacion = int.Parse(justNumbers.Substring(0, 9)); resFactura = crudFactura.Retrieve <Factura>(factura); } while (resFactura != null); int[] cH = reserva.CantHabitaciones; int cont = 0; var r = new Reserva { Codigo = reserva.Codigo, FechaInicio = reserva.FechaInicio, FechaFin = reserva.FechaFin, Precio = reserva.Precio, Promocion = reserva.Promocion, IdUsuario = reserva.IdUsuario, IdHotel = reserva.IdHotel, CantPersonas = reserva.CantPersonas, NumFacturacion = factura.NumFacturacion }; crudReserva.Create(r); cont = 0; foreach (string tipoHab in reserva.TipoHabitaciones) { var r3 = new Reserva { TipoHab = tipoHab, CantHab = cH[cont], Codigo = reserva.Codigo, IdHotel = reserva.IdHotel, FechaInicio = reserva.FechaInicio, FechaFin = reserva.FechaFin }; crudReserva.AsignarHabitacionReserva(r3); cont++; } Usuario usuarioEncontrado = null; var u = new Usuario { Identificacion = reserva.IdUsuario }; usuarioEncontrado = mngUsuario.RetrieveById(u); LlaveQR llave = new LlaveQR(); llave.EstadoQR = "1"; llave.IdReserva = reserva.Codigo; llave.IdUsuario = usuarioEncontrado.Correo; await mngLlave.CreateYEnviar(llave, usuarioEncontrado); var rQR = new LlaveQR { IdReserva = reserva.Codigo }; var respuesta = mngLlave.RetrieveAllByReserva(rQR); var llaveReserva = new Reserva { Codigo = reserva.Codigo, LlaveQR = respuesta[0].ImagenQR }; crudReserva.AsignarQRReservaReserva(llaveReserva); //string numeroFactura, string descripcion, ArrayList detalles, Hotel hotel, Usuario cliente var detalleFactura = new LineaDetalleFactura { Nombre = "Reservación", Precio = (float)reserva.Precio, Cantidad = 1, SubTotal = (float)reserva.Precio, Impuesto = 0, Total = (float)reserva.Precio }; ArrayList detalle = new ArrayList(); detalle.Add(detalleFactura); var h = new Hotel { CedulaJuridica = reserva.IdHotel }; Hotel hotel = crudHotel.Retrieve <Hotel>(h); string numFactura = Convert.ToString(factura.NumFacturacion); await PdfManager.Create(numFactura, "el pago de una reservación en AdTrip", detalle, hotel, (Usuario)usuarioEncontrado); } catch (Exception ex) { ExceptionManager.GetInstance().Process(ex); } }