// GET: Checkin/Create
        public ActionResult Create()
        {
            ViewBag.color = color;
            Reserva model = new Reserva();
            ViewBag.codigo_acomodacao = new SelectList(db.tb_acomodacao, "codigo", "descricao");
            ViewBag.codigo_funcionario = new SelectList(db.tb_funcionario, "codigo", "nome");
            ViewBag.codigo_hospede = new SelectList(db.tb_hospede, "codigo", "nome");

            var status = new List<SelectListItem>()
                    {
                        new SelectListItem {Text = "Selecione", Value = "0"},
                        new SelectListItem {Text = "Em Andamento", Value = "1"},
                        new SelectListItem {Text = "Finalizada", Value = "2"},
                        new SelectListItem {Text = "Não Realizada", Value = "3"}
                    };

            if (TempData["erro"] != null)
                ViewBag.UserFail = true;
            else
            {
                ViewBag.UserFail = false;
                TempData["erro"] = null;
            }

            ViewBag.status = status;

            return View(model);
        }
        public ActionResult Create(Reserva model)
        {
            DateTime data_entrada = new DateTime(Convert.ToInt32(model.data_entrada.Split('/')[2]), Convert.ToInt32(model.data_entrada.Split('/')[1]), Convert.ToInt32(model.data_entrada.Split('/')[0]));
            DateTime data_saida = new DateTime(Convert.ToInt32(model.data_saida.Split('/')[2]), Convert.ToInt32(model.data_saida.Split('/')[1]), Convert.ToInt32(model.data_saida.Split('/')[0]));

            ViewBag.color = color;
            var query = from l in db.tb_checkin
                        where (data_entrada >= l.data_entrada && data_entrada <= l.data_saida) && l.codigo_acomodacao == model.codigo_acomodacao
                        select l;

            if (!query.Any())
            {
                if (ModelState.IsValid)
                {
                    try
                    {
                        decimal valor = 0M;
                        Decimal.TryParse(model.valor_diaria.Replace(".", ""), out valor);
                        tb_checkin checkin = new tb_checkin();
                        checkin.codigo_acomodacao = model.codigo_acomodacao;
                        checkin.codigo_funcionario = model.codigo_funcionario;
                        checkin.codigo_hospede = model.codigo_hospede;
                        checkin.data_entrada = data_entrada;
                        checkin.data_saida = data_saida;
                        checkin.hora_entrada = model.hora_entrada;
                        checkin.hora_saida = model.hora_saida;
                        checkin.valor_diaria = valor;
                        checkin.qtd_adultos = model.qtd_adultos;
                        checkin.qtd_criancas = model.qtd_criancas;
                        checkin.status = (short)model.status;
                        db.tb_checkin.Add(checkin);
                        db.SaveChanges();

                        tb_hospede_checkin hospedeCheckin = new tb_hospede_checkin();
                        hospedeCheckin.codigo_checkin = checkin.codigo;
                        hospedeCheckin.codigo_hospede = checkin.codigo_hospede;
                        db.tb_hospede_checkin.Add(hospedeCheckin);
                        db.SaveChanges();

                        return RedirectToAction("Index");
                    }
                    catch (Exception ex) { }
                }
            }
            else
            {
                ViewBag.UserFail = true;
                TempData["erro"] = "erro";
            }

            ViewBag.codigo_acomodacao = new SelectList(db.tb_acomodacao, "codigo", "descricao", model.codigo_acomodacao);
            ViewBag.codigo_funcionario = new SelectList(db.tb_funcionario, "codigo", "nome", model.codigo_funcionario);
            ViewBag.codigo_hospede = new SelectList(db.tb_hospede, "codigo", "nome", model.codigo_hospede);
            var status = new List<SelectListItem>()
                    {
                        new SelectListItem {Text = "Selecione", Value = "0"},
                        new SelectListItem {Text = "Em Andamento", Value = "1"},
                        new SelectListItem {Text = "Finalizada", Value = "2"},
                        new SelectListItem {Text = "Não Realizada", Value = "3"}
                    };

            ViewBag.status = status;
            return View(model);
        }
        // GET: Checkin/Edit/5
        public ActionResult Edit(int? id)
        {
            ViewBag.color = color;
            Reserva model = new Reserva();

            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            tb_checkin tb_checkin = db.tb_checkin.Find(id);

            if (tb_checkin == null)
            {
                return HttpNotFound();
            }

            if (TempData["erro"] != null)
                ViewBag.UserFail = true;
            else
            {
                ViewBag.UserFail = false;
                TempData["erro"] = null;
            }

            model.codigo = tb_checkin.codigo;
            model.codigo_acomodacao = tb_checkin.codigo_acomodacao;
            model.codigo_funcionario = tb_checkin.codigo_funcionario;
            model.codigo_hospede = tb_checkin.codigo_hospede;
            model.data_entrada = tb_checkin.data_entrada.Value.ToString("dd/MM/yyyy");
            model.data_saida = tb_checkin.data_saida.Value.ToString("dd/MM/yyyy");
            model.hora_entrada = tb_checkin.hora_entrada;
            model.hora_saida = tb_checkin.hora_saida;
            model.status = (int)tb_checkin.status;
            model.tb_hospede = db.tb_hospede.Find(tb_checkin.codigo_hospede);
            model.valor_diaria = tb_checkin.valor_diaria.ToString();
            model.qtd_adultos = (int)tb_checkin.qtd_adultos;
            model.qtd_criancas = (int)tb_checkin.qtd_criancas;

            ViewBag.codigo_acomodacao = new SelectList(db.tb_acomodacao, "codigo", "descricao", tb_checkin.codigo_acomodacao);
            ViewBag.codigo_funcionario = new SelectList(db.tb_funcionario, "codigo", "nome", tb_checkin.codigo_funcionario);
            ViewBag.codigo_hospede = new SelectList(db.tb_hospede, "codigo", "nome", tb_checkin.codigo_hospede);
            var status = new List<SelectListItem>()
                    {
                        new SelectListItem {Text = "Selecione", Value = "0"},
                        new SelectListItem {Text = "Em Andamento", Value = "1"},
                        new SelectListItem {Text = "Finalizada", Value = "2"},
                        new SelectListItem {Text = "Não Realizada", Value = "3"}
                    };

            ViewBag.status_reserva = status;

            return View(model);
        }