示例#1
0
        public List <Habitacion> ObtenerHabitacionesDeEstadia(Estadia estadia)
        {
            List <Habitacion> Habitaciones = new List <Habitacion>();

            Dictionary <int, TipoHabitacion> TiposHab = new Dictionary <int, TipoHabitacion>();

            List <TipoHabitacion> tempHabs = new TipoHabitacionDAO().ObtenerTiposHabitacion();

            foreach (var TipoHab in tempHabs)
            {
                TiposHab.Add(TipoHab.Id, TipoHab);
            }

            foreach (var row in DatabaseConnection.GetInstance().ExecuteProcedure("OBTENER_HABITACIONES_DE_ESTADIA",
                                                                                  new SqlParameter("@id_estadia", estadia.Id)))
            {
                Habitacion h = new Habitacion(
                    Convert.ToInt32(row["id_habitacion"]),
                    null,
                    Convert.ToInt32(row["numero_habitacion"]),
                    Convert.ToInt32(row["piso_habitacion"]),
                    Convert.ToString(row["ubicacion_habitacion"]),
                    TiposHab[Convert.ToInt32(row["id_tipo_habitacion"])],
                    Convert.ToString(row["descripcion_habitacion"])
                    );

                Habitaciones.Add(h);
            }
            return(Habitaciones);
        }
示例#2
0
        public Tuple <Estadia, Reserva> ObtenerDatosEstadiaFacturacion(int Id)
        {
            Tuple <Estadia, Reserva> Tuple  = new Tuple <Estadia, Reserva>(null, null);
            List <Regimen>           RegTmp = new RegimenDAO().ObtenerRegimenes();

            Dictionary <int, Regimen> Regimenes = new Dictionary <int, Regimen>();

            foreach (Regimen r in RegTmp)
            {
                Regimenes.Add(r.Id, r);
            }

            foreach (var row in DatabaseConnection.GetInstance().ExecuteProcedure("OBTENER_DATOS_ESTADIA_FACTURACION",
                                                                                  new SqlParameter("@id_estadia", Id)))
            {
                Estadia e = new Estadia(
                    Id,
                    Convert.ToDateTime(row["fecha_ingreso_estadia"]),
                    Convert.ToDateTime(row["fecha_egreso_estadia"])
                    );
                Reserva r = new Reserva(
                    null,
                    Convert.ToDateTime(row["fecha_inicio_reserva"]),
                    Convert.ToDateTime(row["fecha_fin_reserva"]),
                    Regimenes[Convert.ToInt32(row["id_regimen"])]
                    );

                Tuple = new Tuple <Estadia, Reserva>(e, r);
            }
            return(Tuple);
        }
示例#3
0
 public static bool AlterarEstadia(Estadia estadia)
 {
     try
     {
         ctx.Entry(estadia).State = System.Data.Entity.EntityState.Modified;
         ctx.SaveChanges();
         return(true);
     }
     catch (DbEntityValidationException errosDeValidacao)
     {
         //Percorrer as propriedades do modelo que está sendo salvo
         foreach (DbEntityValidationResult resultadoDaValidacao in
                  errosDeValidacao.EntityValidationErrors)
         {
             //Percorrer os erros de validação de cada propriedade
             foreach (DbValidationError erro in
                      resultadoDaValidacao.ValidationErrors)
             {
                 ctx.Entry(estadia).State = System.Data.Entity.EntityState.Detached;
                 ctx.SaveChanges();
                 throw new Exception(erro.ErrorMessage);
             }
         }
         return(false);
     }
 }
示例#4
0
        public bool InsertarEstadia(Estadia estadia, Reserva reserva, List <Cliente> clientes)
        {
            estadia.Fecha_Inicio   = Config.GetInstance().GetCurrentDate();
            estadia.Usuario_Inicio = Session.User;

            DataTable clientesDataTable = DatabaseUtils
                                          .ConvertToDataTable <Cliente>(clientes, "Id");

            try
            {
                int id = Convert.ToInt32(DatabaseConnection.GetInstance()
                                         .ExecuteProcedureScalar("INGRESAR_ESTADIA",
                                                                 new SqlParameter("@id_rol_user", Session.Rol.Id),
                                                                 new SqlParameter("@id_reserva", reserva.Id),
                                                                 new SqlParameter("@id_usuario_ingreso", estadia.Usuario_Inicio.Id),
                                                                 new SqlParameter("@fecha_ingreso_estadia", estadia.Fecha_Inicio),
                                                                 new SqlParameter("@clientes", clientesDataTable)
                                                                 ));
                estadia.Id = id;
                LogUtils.LogInfo("Se ingresó la estadía " + estadia.Id);
                MessageBox.Show("Se ingresó satisfactoriamente la estadía " + estadia.Id
                                + "\n\nGuárdese el código, pues será necesario para registrar consumibles y la facturación", "INFO");
                return(true);
            }
            catch (Exception Ex)
            {
                LogUtils.LogError(Ex);
                MessageBox.Show("Hubo un error al intentar ingresar una estadía. Revise el log", "ERROR");
                return(false);
            }
        }
示例#5
0
        public List <Consumo> ObtenerConsumosDeEstadia(Estadia estadia)
        {
            List <Consumo> Consumos = new List <Consumo>();

            foreach (var row in DatabaseConnection.GetInstance().ExecuteProcedure("OBTENER_CONSUMOS_DE_ESTADIA",
                                                                                  new SqlParameter("@id_estadia", estadia.Id)))
            {
                Consumo c = new Consumo(
                    Convert.ToInt32(row["id_consumo"]),
                    new Consumible(
                        Convert.ToInt32(row["id_consumible"]),
                        Convert.ToString(row["descripcion_consumible"]),
                        Convert.ToDouble(row["precio_consumible"])
                        ),
                    estadia,
                    new Habitacion(
                        Convert.ToInt32(row["id_habitacion"]),
                        Convert.ToInt32(row["numero_habitacion"])
                        ),
                    Convert.ToDateTime(row["fecha_consumo"]),
                    Convert.ToInt32(row["cantidad_consumo"])
                    );

                Consumos.Add(c);
            }

            return(Consumos);
        }
示例#6
0
        public static List <Estadia> transductor(DataTable tabla)
        {
            List <Estadia> lista = new List <Estadia>();

            if (tabla != null)
            {
                foreach (DataRow fila in tabla.Rows)
                {
                    //Transcribir
                    Estadia estadia = new Estadia();
                    estadia.CodigoReserva        = Convert.ToInt32(fila["codReserva"]);
                    estadia.Fecha_Ingreso_struct = Convert.ToDateTime(fila["fecIngreso"]);
                    if (!(fila["fecEgreso"] is DBNull))
                    {
                        estadia.Fecha_Egreso_struct = Convert.ToDateTime(fila["fecEgreso"]);
                    }
                    if (!(fila["usrEgreso"] is DBNull))
                    {
                        Usuario usrEgreso = DAOUsuario.obtener(Convert.ToString(fila["usrEgreso"]));
                        estadia.Usuario_Egreso = usrEgreso;
                    }
                    Usuario usrIngreso = DAOUsuario.obtener(Convert.ToString(fila["usrIngreso"]));
                    estadia.Usuario_Ingreso = usrIngreso;
                    lista.Add(estadia);
                }
            }
            return(lista);
        }
 public NuevoConsumibleForm(Estadia estadiaSeleccionada)
 {
     InitializeComponent();
     estadia           = estadiaSeleccionada;
     idEstadiaBox.Text = Convert.ToString(estadiaSeleccionada.id_estadia);
     this.cargarConsumibles();
 }
示例#8
0
        private void BajaDeUnaEstadia(Estadia una_estadia)
        {
            var parametros = new Dictionary <string, object>();

            parametros.Add("@IdEstadia", una_estadia.Id);
            conexion_bd.EjecutarSinResultado("dbo.VIA_BajaEstadia", parametros);
        }
示例#9
0
        public List <Cliente> ObtenerClientesDeEstadia(Estadia estadia)
        {
            List <Cliente> Clientes = new List <Cliente>();

            Dictionary <int, TipoDocumento> TiposDoc = new Dictionary <int, TipoDocumento>();

            List <TipoDocumento> tempDocs = new TipoDocumentoDAO().ObtenerTiposDocumento();

            foreach (var TipoDoc in tempDocs)
            {
                TiposDoc.Add(TipoDoc.Id.Value, TipoDoc);
            }

            foreach (var row in DatabaseConnection.GetInstance().ExecuteProcedure("OBTENER_CLIENTES_ESTADIA",
                                                                                  new SqlParameter("@id_estadia", estadia.Id)))
            {
                Cliente c = new Cliente(
                    Convert.ToInt32(row["id_cliente"]),
                    Convert.ToString(row["nombre_cliente"]),
                    Convert.ToString(row["apellido_cliente"]),
                    TiposDoc[Convert.ToInt32(row["id_tipo_documento"])],
                    Convert.ToInt64(row["numero_documento_cliente"]),
                    Convert.ToString(row["correo_cliente"])
                    );

                Clientes.Add(c);
            }

            return(Clientes);
        }
示例#10
0
        public void caso3_calcular_los_dias_de_una_estadia_que_inicia_dia1_antes_de_12_y_finaliza_dia2_antes_de_12()
        {
            Estadia estadia_fer = EstadiaDe1DiaYMedio();
            //Calendario calendario = new Calendario();

            //Assert.AreEqual(1.5, calendario.CalcularDiasDe(estadia_fer));
        }
示例#11
0
        private void RegistrarIngresoBoton_Click(object sender, EventArgs e)
        {
            if (cantHuespedes <= 0)
            {
                Estadia estadia = RepositorioEstadia.Instance.BuscarEstadia(reserva);

                if (estadia.codigo == 0)
                {
                    RepositorioEstadia.Instance.RegistrarEstadia(reserva);
                    estadia = RepositorioEstadia.Instance.BuscarEstadia(reserva);
                }
                else
                {
                    RepositorioEstadia.Instance.ActualizarIngreso(reserva);
                }

                RepositorioReserva.Instance.ActualizarEstadoReserva(reserva, 4005); //CodigoReservaEfectivizada

                MessageBox.Show("El ingreso se ha registrado.\n" +
                                "Su número de estadia es: " +
                                estadia.codigo.ToString(), "Informe", MessageBoxButtons.OK);
                this.Close();
            }
            else
            {
                MessageBox.Show("Debe ingresar al menos " + cantHuespedes.ToString() +
                                "\nclientes para poder realizar el ingreso.", "Atención", MessageBoxButtons.OK);
            }
        }
示例#12
0
 public MetodoPagoForm(Estadia estadia, Reserva reserva)
 {
     InitializeComponent();
     reservaFactura = reserva;
     estadiaFactura = estadia;
     this.cargarMetodosPago();
     this.cargarInfoEstadia();
 }
示例#13
0
        public void Test_Repo_Estadia_CreacionInstancia_Estadia()
        {
            RepositorioEstadia repositorioEstadia = new RepositorioEstadia();
            Estadia            estadia            = repositorioEstadia.getById(1);

            Assert.AreEqual(2, estadia.getUsuarioCheckIn().getIdUsuario());
            Assert.AreEqual(2, estadia.getUsuarioCheckOut().getIdUsuario());
        }
示例#14
0
        public static bool ingresarEntrada(Estadia estadia)
        {
            int    codReserva = estadia.CodigoReserva;
            string usr        = estadia.Usuario_Ingreso.Usr;
            string inicio     = estadia.Fecha_Ingreso;

            return(executeProcedure("insertEstadia", codReserva, usr, inicio));
        }
 private double GerarValorDeEstadia(Estadia estadia)
 {
     return(new Preco(new FabricaDuracao()
                      .DataInicio(estadia.Entrada)
                      .DataFinal(estadia.Saida.Value)
                      .Criar())
            .ValorDuracao);
 }
示例#16
0
        public static bool ingresarSalida(Estadia estadia)
        {
            int    codReserva = estadia.CodigoReserva;
            string usr        = estadia.Usuario_Egreso.Usr;
            string fin        = estadia.Fecha_Egreso;

            return(executeProcedure("updateEstadia", codReserva, usr, fin));
        }
示例#17
0
        public ConsumosForm(Estadia estadia)
        {
            this.estadia         = estadia;
            estadia.Habitaciones = new HabitacionDAO().ObtenerHabitacionesDeEstadia(estadia);

            InitializeComponent();

            LoadEstadiaData();
        }
示例#18
0
        private void btnFacturar_Click(object sender, EventArgs e)
        {
            Factura          factura = new Factura();
            string           error   = string.Empty;
            TarjetaDeCredito tarjeta = null;

            if (Convert.ToInt32(cmbMedioDePago.SelectedValue) == 0)
            {
                error += "Seleccione un medio de pago";
            }

            factura.TipoPagoId = Convert.ToInt32(cmbMedioDePago.SelectedValue);
            factura.ClienteId  = this.ClienteId;

            if (factura.TipoPagoId == 2)
            {
                error += ValidateTarjeta();
                if (string.IsNullOrEmpty(error))
                {
                    tarjeta = CreateTarjetaDeCredito();
                }
            }
            if (string.IsNullOrEmpty(error))
            {
                try
                {
                    factura.EstadiaId = Convert.ToInt32(txtNroEstadia.Text);
                    factura.Fecha     = Session.Fecha;
                    factura.Items     = new List <FacturaItem>();
                    EstadiaService estadiaService = new EstadiaService();
                    Estadia        estadia        = estadiaService.GetById(Convert.ToInt32(txtNroEstadia.Text));
                    ReservaService reservaService = new ReservaService();
                    Reserva        reserva        = reservaService.GetReservaByCodigo(estadia.CodigoReserva);
                    RegimenService regimenService = new RegimenService();
                    Regimen        regimen        = regimenService.GetByCodigo(reserva.RegimenCodigo);

                    CreateNightsItems(factura, estadia, reserva, regimen.Precio);
                    CreateConsumibleItems(factura, estadia, regimen.ConsumiblesGratis);
                    foreach (FacturaItem fi in factura.Items)
                    {
                        factura.Total += fi.Precio;
                    }

                    FacturaService service = new FacturaService();
                    factura.Numero = service.Insert(factura, tarjeta);
                    MostrarFactura(factura);
                }
                catch (Exception)
                {
                    MessageBox.Show("Ocurrió un error al crear la factura");
                }
            }
            else
            {
                MessageBox.Show(error);
            }
        }
示例#19
0
        public Estadia SalvarSaida(Estadia estadia)
        {
            _dataset.Update(estadia);
            _context.SaveChanges();
            var estadiasCompletas = _dataset.Where(e => e.Saida != null).ToList();

            _dataset.RemoveRange(estadiasCompletas);
            _context.SaveChanges();
            return(estadia);
        }
示例#20
0
        public EstadiaForm(Reserva reserva)
        {
            this.reserva = reserva;
            this.estadia = new EstadiaDAO().ObtenerEstadiaDeReserva(reserva);

            InitializeComponent();

            LoadInfoReserva();
            LoadInfoEstadia();
        }
示例#21
0
    private void AddEstadia(Estadia estadia)
    {
        ComisionDeServicio viatico_en_edicion = (ComisionDeServicio)Session[ConstantesDeSesion.VIATICO_EN_EDICION];

        var nuevos_estadias = estadias();// new List<Estadia>(viatico_en_edicion.Estadias);

        nuevos_estadias.Add(estadia);

        viatico_en_edicion.Estadias = nuevos_estadias.ToArray();
    }
示例#22
0
    //[ScriptMethod, WebMethod]
    //public static string QuitarPasaje(object id_pasaje)
    //{
    //    //MeterAreaEnSession(id_comision);
    //    return "";
    //}


    //private Table ContruirTablaEncabezado()
    //{
    //    Table tabla = new Table();

    //    TableHeaderCell celda_encabezado_desde = new TableHeaderCell();
    //    TableHeaderCell celda_encabezado_hasta = new TableHeaderCell();
    //    TableHeaderCell celda_encabezado_duracion = new TableHeaderCell();
    //    TableHeaderCell celda_encabezado_valor_viatico = new TableHeaderCell();
    //    TableHeaderCell celda_encabezado_eventual = new TableHeaderCell();
    //    TableHeaderCell celda_encabezado_adicional = new TableHeaderCell();
    //    TableHeaderCell celda_encabezado_provincia = new TableHeaderCell();


    //    celda_encabezado_desde.Text = "Desde";
    //    celda_encabezado_hasta.Text = "Hasta";
    //    celda_encabezado_duracion.Text = "Total Días";
    //    celda_encabezado_valor_viatico.Text = "Valor de Viático";
    //    celda_encabezado_eventual.Text = "Eventuales";
    //    celda_encabezado_adicional.Text = "Adic. x Pasajes";
    //    celda_encabezado_provincia.Text = "Provincia";

    //    TableHeaderRow fila_encabezado = new TableHeaderRow();

    //    fila_encabezado.Cells.Add(celda_encabezado_provincia);
    //    fila_encabezado.Cells.Add(celda_encabezado_desde);
    //    fila_encabezado.Cells.Add(celda_encabezado_hasta);
    //    fila_encabezado.Cells.Add(celda_encabezado_duracion);
    //    fila_encabezado.Cells.Add(celda_encabezado_valor_viatico);
    //    fila_encabezado.Cells.Add(celda_encabezado_eventual);
    //    fila_encabezado.Cells.Add(celda_encabezado_adicional);


    //    tabla.Rows.Add(fila_encabezado);
    //    tabla.CssClass = "table table-striped table-bordered table-condensed";

    //    return tabla;

    //}

    //public  void ConstruirDatosDeTabla(List<Estadia> estadias)
    //{
    //    Persona persona = (Persona)Session["persona"];
    //    WSViaticosSoapClient ws_viaticos = new WSViaticosSoapClient();

    //    foreach (Estadia una_estadia in estadias)
    //    {
    //        TableCell celda_desde = new TableCell();
    //        TableCell celda_hasta = new TableCell();
    //        TableCell celda_duracion = new TableCell();
    //        TableCell celda_valor_viatico = new TableCell();
    //        TableCell celda_eventuales = new TableCell();
    //        TableCell celda_adic = new TableCell();
    //        TableCell celda_prov = new TableCell();
    //        TableRow fila = new TableRow();


    //        //Session[boton.GetHashCode().ToString()] = una_comision;

    //        celda_desde.Text = una_estadia.Desde.ToShortDateString();
    //        celda_hasta.Text = una_estadia.Hasta.ToShortDateString();
    //        celda_duracion.Text = CalcularCantidadDeDias(una_estadia);
    //        celda_valor_viatico.Text = "$ " + String.Format("{0:0.00}",CalcularValorDelViaticoPorDia(una_estadia, persona));

    //        celda_eventuales.Text = "$ " + una_estadia.Eventuales.ToString();
    //        celda_adic.Text = "$ " + una_estadia.AdicionalParaPasajes.ToString();
    //        celda_prov.Text = una_estadia.Provincia.Nombre;

    //        fila.Cells.Add(celda_prov);
    //        fila.Cells.Add(celda_desde);
    //        fila.Cells.Add(celda_hasta);
    //        fila.Cells.Add(celda_duracion);
    //        fila.Cells.Add(celda_valor_viatico);
    //        fila.Cells.Add(celda_eventuales);
    //        fila.Cells.Add(celda_adic);


    //        _tabla_listado_estadias.Rows.Add(fila);
    //    }


    //}



    //Tuve que agregar aca el metodo porque no puedo ver el metodo de Estadia
    public string CalcularCantidadDeDias(Estadia estadia)
    {
        WSViaticosSoapClient ws_viaticos = new WSViaticosSoapClient();

        //DateTime desde = estadia.Desde;
        //DateTime hasta = estadia.Hasta;

        //TimeSpan periodo = hasta - desde;

        return(ws_viaticos.CalcularDiasPara(estadia).ToString());
    }
        public ActionResult DeleteConfirmed(int id)
        {
            Estadia estadia = db.Estadias.Find(id);

            estadia.Activo          = false;
            estadia.Destino         = db.Destinos.Find(estadia.Destino.Codigo);
            db.Entry(estadia).State = EntityState.Modified;
            db.SaveChanges();
            DesactivarExcursionesConEstadia(id);
            return(RedirectToAction("Index"));
        }
示例#24
0
 public FacturaFinalForm(Estadia estadia, Reserva reserva)
 {
     InitializeComponent();
     estadiaFinal = estadia;
     reservaFinal = reserva;
     this.seleccionarMetodoPago();
     if (this.seGeneroFactura)
     {
         this.facturarEstadia();
     }
 }
        //CHECK-OUT
        private void onCheckout(object sender, EventArgs e)
        {
            if (!obtenerReserva())
            {
                return;
            }

            Estadia estadiaout = EntityManager.getEntityManager().findBy <Estadia>("estadias.reserva_id", reserva_numero.ToString());

            if (estadiaout == null)
            {
                MessageBox.Show("Primero debe hacer el check-in");
                return;
            }

            //Validacion de que la salida no se haya hecho antes
            if (estadiaout.cant_noches != 0)
            {
                MessageBox.Show("La estadia ya ha sido efectivizada con anterioridad");
                return;
            }

            //Calculo de la cantidad de noches que se hospedo
            int dias_desde_ingreso = DateTime.Compare(DateTime.Parse(fecha).Date, DateTime.Parse(reserva.fecha_inicio).Date);
            int cant_noches        = int.Parse(DateTime.Parse(fecha).Subtract(DateTime.Parse(estadiaout.fecha_inicio)).TotalDays.ToString());

            if (dias_desde_ingreso >= 0 && reserva.cant_noches >= cant_noches)
            {
                estadiaout.cant_noches = cant_noches;

                try
                {
                    estadiaout.save();
                }
                catch (ValidationException exception)
                {
                    MessageBox.Show(exception.Message);
                    return;
                }
                catch (SqlException exception)
                {
                    MessageBox.Show(exception.Message);
                    return;
                }

                Navigator.nextForm(this, new FrbaHotel.Registrar_Consumible.Form1(estadiaout));
            }
            else
            {
                MessageBox.Show("Debe seleccionar una fecha posterior a la fecha de ingreso para hacer el checkout");
            }
        }
示例#26
0
        private Estadia BuildEstadia(DataRow row)
        {
            Estadia estadia = new Estadia();

            estadia.id_estadia          = Convert.ToInt32(row["id_estadia"].ToString());
            estadia.fecha_inicio        = Convert.ToDateTime(row["fecha_inicio"]);
            estadia.cant_noches         = Convert.ToInt32(row["cant_noches"]);
            estadia.id_usuario_checkIn  = Convert.ToInt32(row["id_usuario_checkIn"]);
            estadia.id_usuario_checkOut = Convert.ToInt32(row["id_usuario_checkOut"]);
            estadia.id_reserva          = Convert.ToInt32(row["id_reserva"]);

            return(estadia);
        }
示例#27
0
        internal void RegistrarEgreso(Estadia estadia)
        {
            var query = String.Format(@"UPDATE GD2C2014.LA_REVANCHA.ESTADIA " +
                                      "SET EST_FECHA_CHECK_OUT = '{0}', EST_PRECIO = {1}, " +
                                      "EST_DIAS_ALOJADOS = '{2}', EST_DIAS_NO_ALOJADOS = '{3}' " +
                                      "WHERE EST_COD_ESTADIA = '{4}' AND EST_COD_RESERVA = '{5}'",
                                      DBTypeConverter.ToSQLDateTime(estadia.fechaHasta),
                                      Decimal.Truncate(estadia.precio),
                                      estadia.diasAlojados, estadia.diasNoAlojados,
                                      estadia.codigo, estadia.codigoReserva);

            SQLUtils.EjecutarConsultaConEfectoDeLado(query);
        }
        public void DesactivarEstadiasAsociadas(int CodigoDestino)
        {
            Estadia        aux      = new Estadia();
            List <Estadia> Estadias = db.Estadias.Where(m => m.Destino.Codigo == CodigoDestino && m.Activo == true).ToList();

            foreach (Estadia e in Estadias)
            {
                aux                 = db.Estadias.Find(e.Id);
                aux.Activo          = false;
                db.Entry(aux).State = EntityState.Modified;
                db.SaveChanges();
            }
        }
示例#29
0
        public PartialViewResult BaixarEstadia(Estadia estadia)
        {
            var estadiaAux = DbFactory.Instance.EstadiaRepository.FindFirstById(estadia.Id);

            estadiaAux.DtSaida     = estadia.DtSaida;
            estadiaAux.TotalAPagar = estadia.TotalAPagar;

            DbFactory.Instance.EstadiaRepository.Update(estadiaAux);

            var estadias = DbFactory.Instance.EstadiaRepository.BuscarAtivas();

            return(PartialView("_TblEstadias", estadias));
        }
        public ActionResult Create(ViewModels.ViewModelExcursion nuevaExcursion)
        {
            Excursion aux   = (Excursion)Session["NuevaExcursion"];
            Excursion nueva = new Excursion();

            foreach (Estadia e in aux.ExcursionEstadias)
            {
                int     ID         = e.Id;
                Estadia AuxEstadia = db.Estadias.Find(ID);
                nueva.ExcursionEstadias.Add(AuxEstadia);
            }
            foreach (Transporte t in aux.ExcursionesTransportes)
            {
                int        ID            = t.Id;
                Transporte AuxTransporte = db.Transportes.Find(ID);
                nueva.ExcursionesTransportes.Add(AuxTransporte);
            }

            int estadias = 0; int transportes = 0; int duracion = 0;

            foreach (Estadia E in aux.ExcursionEstadias)
            {
                duracion = (E.Dias) + duracion;
            }
            foreach (Estadia E in aux.ExcursionEstadias)
            {
                estadias = ((E.Destino.Costo) * (E.Dias)) + estadias;
            }
            foreach (Transporte T in aux.ExcursionesTransportes)
            {
                transportes = T.Costo + transportes;
            }
            nueva.Costo       = estadias + transportes;
            nueva.Activo      = true;
            nueva.Duración    = duracion;
            nueva.Descripcion = nuevaExcursion.Descripcion;
            nueva.Nombre      = nuevaExcursion.Nombre;
            nueva.Cliente     = db.Usuarios.Find(nuevaExcursion.Excursion.Cliente.Id);
            if (nueva.ExcursionEstadias.Count() == 0 && nueva.ExcursionesTransportes.Count() == 0)
            {
                return(RedirectToAction("Create"));
            }
            if (nueva.Cliente == null || nueva.Nombre == null || nueva.Descripcion == null)
            {
                return(RedirectToAction("Create"));
            }
            Session["NuevaExcursion"] = null;
            db.Excursiones.Add(nueva);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }