public ActionResult Create()
        {
            PemesananModel model = new PemesananModel();

            //PreparePublisher(model);
            return(View(model));
        }
        public ActionResult Bukti(int id)
        {
            if (Session["id"] == null)
            {
                return(RedirectToAction("Masuk", "Pengguna"));
            }

            PemesananModel pemesananModel = new PemesananModel();
            DataTable      dtblPemesanan  = new DataTable();

            using (SqlConnection sqlCon = new SqlConnection(connectionString))
            {
                sqlCon.Open();
                string         query = "SELECT * FROM Pemesanan Where IDPemesanan = @IDPemesanan AND IDPelanggan = @IDPelanggan";
                SqlDataAdapter sqlDa = new SqlDataAdapter(query, sqlCon);
                sqlDa.SelectCommand.Parameters.AddWithValue("@IDPemesanan", id);
                sqlDa.SelectCommand.Parameters.AddWithValue("@IDPelanggan", Session["id"].ToString());
                sqlDa.Fill(dtblPemesanan);
            }
            if (dtblPemesanan.Rows.Count == 1)
            {
                pemesananModel.IDPemesanan = Convert.ToInt32(dtblPemesanan.Rows[0][0].ToString());
                pemesananModel.IDPelanggan = Convert.ToInt32(dtblPemesanan.Rows[0][5].ToString());
                pemesananModel.Bukti       = dtblPemesanan.Rows[0][7].ToString();
                TempData["IDPemesanan"]    = pemesananModel.IDPemesanan;
                return(View(pemesananModel));
            }
            else
            {
                return(RedirectToAction("Index"));
            }
            //return View(new PemesananModel());
        }
        public ActionResult Edit(PemesananModel pemesananModel)
        {
            if (Session["id"] == null)
            {
                return(RedirectToAction("Masuk", "Pengguna"));
            }

            // Validasi => Tanggal Pemakaian Lapangan
            if (pemesananModel.Tanggal < DateTime.Now)
            {
                TempData["Error"] = "Tanggal pemakaian lapangan harus lebih besar dari tanggal sekarang";
                return(RedirectToAction("Edit", "Pemesanan", pemesananModel.IDPemesanan));
            }

            // Validasi => Jam Pemesanan
            if (pemesananModel.JamSelesai <= pemesananModel.JamMulai)
            {
                TempData["Error"] = "Jam selesai harus lebih besar dari jam mulai";
                return(RedirectToAction("Edit", "Pemesanan", pemesananModel.IDPemesanan));
            }

            DataTable exist = new DataTable();

            using (SqlConnection sqlCon = new SqlConnection(connectionString))
            {
                sqlCon.Open();
                SqlDataAdapter sqlDa = new SqlDataAdapter("SELECT * FROM Pemesanan WHERE Tanggal = @Tanggal AND IDLapangan = @Lapangan AND format(JamSelesai, 'hh:mm') > format(@JamMulai, 'hh:mm') AND format(JamMulai, 'hh:mm') < format(@JamSelesai, 'hh:mm') AND IDPemesanan != @IDPemesanan AND (STATUS = 'Req' OR STATUS='Acc')", sqlCon);
                sqlDa.SelectCommand.Parameters.AddWithValue("@Tanggal", pemesananModel.Tanggal);
                sqlDa.SelectCommand.Parameters.AddWithValue("@JamMulai", pemesananModel.JamMulai);
                sqlDa.SelectCommand.Parameters.AddWithValue("@JamSelesai", pemesananModel.JamSelesai);
                sqlDa.SelectCommand.Parameters.AddWithValue("@Lapangan", pemesananModel.IDLapangan);
                sqlDa.SelectCommand.Parameters.AddWithValue("@IDPemesanan", pemesananModel.IDPemesanan);
                sqlDa.Fill(exist);
            }

            // Validasi lapangan telah dipesan
            if (exist.Rows.Count > 0)
            {
                TempData["Error"] = "Lapangan telah dipesan";
                return(RedirectToAction("Edit", "Pemesanan", pemesananModel.IDPemesanan));
            }

            // Memperbaharui pesanan
            using (SqlConnection sqlCon = new SqlConnection(connectionString))
            {
                sqlCon.Open();
                string     query  = "UPDATE Pemesanan SET Tanggal = @Tanggal, JamMulai = @JamMulai, JamSelesai = @JamSelesai , IDLapangan = @IDLapangan, TanggalPemesanan = GETDATE() WHERE IDPemesanan = @IDPemesanan AND IDPelanggan = @IDPelanggan";
                SqlCommand sqlCmd = new SqlCommand(query, sqlCon);
                sqlCmd.Parameters.AddWithValue("@IDPemesanan", pemesananModel.IDPemesanan);
                sqlCmd.Parameters.AddWithValue("@IDPelanggan", Convert.ToInt32(Session["id"]));
                sqlCmd.Parameters.AddWithValue("@Tanggal", pemesananModel.Tanggal);
                sqlCmd.Parameters.AddWithValue("@JamMulai", pemesananModel.JamMulai);
                sqlCmd.Parameters.AddWithValue("@JamSelesai", pemesananModel.JamSelesai);
                sqlCmd.Parameters.AddWithValue("@IDLapangan", pemesananModel.IDLapangan);
                sqlCmd.ExecuteNonQuery();
            }
            return(RedirectToAction("Index"));
        }
        public ActionResult Delete(PemesananModel model)
        {
            Pemesanan pemesanan = context.Pemesanans.Where(e => e.Id == model.Id).
                                  SingleOrDefault();

            context.Pemesanans.DeleteOnSubmit(pemesanan);
            context.SubmitChanges();

            return(RedirectToAction("Index"));
        }
        public ActionResult Delete(int Id)
        {
            PemesananModel model = context.Pemesanans.Where(c => c.Id == Id).Select(
                c => new PemesananModel()
            {
                Id               = c.Id,
                NamaPemesan      = c.NamaPemesan,
                TanggalPemesanan = c.TanggalPemesanan,
                RuteId           = c.Id,
                MaskapaiId       = c.MaskapaiId,
            }).SingleOrDefault();

            return(View(model));
        }
        // GET: Pemesanan/Edit/5
        public ActionResult Edit(int id)
        {
            if (Session["id"] == null)
            {
                return(RedirectToAction("Masuk", "Pengguna"));
            }

            PemesananModel pemesananModel = new PemesananModel();
            DataTable      dtblPemesanan  = new DataTable();

            using (SqlConnection sqlCon = new SqlConnection(connectionString))
            {
                sqlCon.Open();
                string         query = "SELECT * FROM Pemesanan Where IDPemesanan = @IDPemesanan AND IDPelanggan = @IDPelanggan";
                SqlDataAdapter sqlDa = new SqlDataAdapter(query, sqlCon);
                sqlDa.SelectCommand.Parameters.AddWithValue("@IDPemesanan", id);
                sqlDa.SelectCommand.Parameters.AddWithValue("@IDPelanggan", Session["id"].ToString());
                sqlDa.Fill(dtblPemesanan);
            }

            if (dtblPemesanan.Rows.Count == 1 && dtblPemesanan.Rows[0]["Bukti"].ToString() == "")
            {
                pemesananModel.IDPemesanan = Convert.ToInt32(dtblPemesanan.Rows[0][0].ToString());
                pemesananModel.IDPelanggan = Convert.ToInt32(dtblPemesanan.Rows[0][5].ToString());
                pemesananModel.Tanggal     = Convert.ToDateTime(dtblPemesanan.Rows[0][1].ToString());
                pemesananModel.JamMulai    = Convert.ToDateTime(dtblPemesanan.Rows[0][2].ToString());
                pemesananModel.JamSelesai  = Convert.ToDateTime(dtblPemesanan.Rows[0][3].ToString());
                pemesananModel.IDLapangan  = Convert.ToInt32(dtblPemesanan.Rows[0][4].ToString());

                DataTable lapangan = new DataTable();
                using (SqlConnection sqlCon = new SqlConnection(connectionString))
                {
                    sqlCon.Open();
                    SqlDataAdapter sqlDa = new SqlDataAdapter("SELECT * FROM Lapangan", sqlCon);
                    sqlDa.Fill(lapangan);

                    ViewBag.LapanganList = new SelectList(lapangan.AsDataView(), "IDLapangan", "NamaLapangan");
                }
                return(View(pemesananModel));
            }
            else
            {
                return(RedirectToAction("Detail", "Pemesanan", new { @id = id }));
            }
        }
        public ActionResult Create(PemesananModel model)
        {
            try
            {
                Pemesanan pemesanan = new Pemesanan()
                {
                    NamaPemesan      = model.NamaPemesan,
                    TanggalPemesanan = model.TanggalPemesanan,
                    MaskapaiId       = model.MaskapaiId,
                    RuteId           = model.RuteId
                };

                context.Pemesanans.InsertOnSubmit(pemesanan);
                context.SubmitChanges();
                return(RedirectToAction("Index"));
            }
            catch
            {
                return(View(model));
            }
        }
        public ActionResult Create(PemesananModel pemesananModel)
        {
            if (Session["id"] == null)
            {
                return(RedirectToAction("Masuk", "Pengguna"));
            }

            NumberGenerator generator = new NumberGenerator();
            string          number    = generator.GenerateNumber("FT");

            // Validasi => Tanggal Pemakaian Lapangan
            if (pemesananModel.Tanggal < DateTime.Now)
            {
                TempData["Error"] = "Tanggal pemakaian lapangan harus lebih besar dari tanggal sekarang";
                return(RedirectToAction("Create", "Pemesanan"));
            }

            // Validasi => Jam Pemesanan
            if (pemesananModel.JamSelesai <= pemesananModel.JamMulai)
            {
                TempData["Error"] = "Jam selesai harus lebih besar dari jam mulai";
                return(RedirectToAction("Create", "Pemesanan"));
            }

            DataTable exist = new DataTable();

            using (SqlConnection sqlCon = new SqlConnection(connectionString))
            {
                sqlCon.Open();
                SqlDataAdapter sqlDa = new SqlDataAdapter("SELECT * FROM Pemesanan WHERE Tanggal = @Tanggal AND IDLapangan = @Lapangan AND format(JamSelesai, 'hh:mm') > format(@JamMulai, 'hh:mm') AND format(JamMulai, 'hh:mm') < format(@JamSelesai, 'hh:mm') AND (STATUS = 'Req' OR STATUS='Acc')", sqlCon);
                sqlDa.SelectCommand.Parameters.AddWithValue("@Tanggal", pemesananModel.Tanggal);
                sqlDa.SelectCommand.Parameters.AddWithValue("@JamMulai", pemesananModel.JamMulai);
                sqlDa.SelectCommand.Parameters.AddWithValue("@JamSelesai", pemesananModel.JamSelesai);
                sqlDa.SelectCommand.Parameters.AddWithValue("@Lapangan", pemesananModel.IDLapangan);
                sqlDa.Fill(exist);
            }

            // Validasi lapangan telah dipesan
            if (exist.Rows.Count > 0)
            {
                TempData["Error"] = "Lapangan telah dipesan";
                return(RedirectToAction("Create", "Pemesanan"));
            }

            // Membuat pesanan
            using (SqlConnection sqlCon = new SqlConnection(connectionString))
            {
                sqlCon.Open();
                string query = "INSERT INTO Pemesanan(Tanggal, JamMulai, JamSelesai, IDLapangan, IDPelanggan,Status,NomorPemesanan,TanggalPemesanan) " +
                               "VALUES (@Tanggal, @JamMulai,@JamSelesai,@IDLapangan,@IDPelanggan, 'Req', @NomorPemesanan,GETDATE())";
                SqlCommand sqlCmd = new SqlCommand(query, sqlCon);
                sqlCmd.Parameters.AddWithValue("@Tanggal", pemesananModel.Tanggal);
                sqlCmd.Parameters.AddWithValue("@JamMulai", pemesananModel.JamMulai);
                sqlCmd.Parameters.AddWithValue("@JamSelesai", pemesananModel.JamSelesai);
                sqlCmd.Parameters.AddWithValue("@IDLapangan", pemesananModel.IDLapangan);
                sqlCmd.Parameters.AddWithValue("@IDPelanggan", Convert.ToInt32(Session["id"]));
                sqlCmd.Parameters.AddWithValue("@NomorPemesanan", number + Session["id"].ToString());
                sqlCmd.ExecuteNonQuery();
            }
            //Session.Remove("Error");
            return(RedirectToAction("Index"));
        }