Пример #1
0
        public ActionResult Create(HttpPostedFileBase[] files, [Bind(Include = "RoomType_id,RType,Descriptions,Images,Views,Bed,MaxPerson,Size")] ROOMTYPE rOOMTYPE)
        {
            List <string> listImg = new List <string>();

            if (ModelState.IsValid)
            {
                foreach (HttpPostedFileBase file in files)
                {
                    if (file != null)
                    {
                        string postedFileName = System.IO.Path.GetFileName(file.FileName);
                        var    path           = System.IO.Path.Combine(Server.MapPath("/images/" + postedFileName));
                        listImg.Add(postedFileName);
                        file.SaveAs(path);
                    }
                }

                rOOMTYPE.RoomType_id = createId();
                rOOMTYPE.Images      = string.Join(",", listImg);
                db.ROOMTYPEs.Add(rOOMTYPE);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(rOOMTYPE));
        }
Пример #2
0
        public ActionResult Create([Bind(Include = "Customer_id,CustomerFirstName,CustomerLastName,CustomerTel,CustomerEmail")] CUSTOMER cUSTOMER)
        {
            if (ModelState.IsValid)
            {
                db.CUSTOMERs.Add(cUSTOMER);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(cUSTOMER));
        }
Пример #3
0
        public ActionResult Create([Bind(Include = "Room_id,RoomType_id")] ROOM rOOM)
        {
            if (ModelState.IsValid)
            {
                db.ROOMs.Add(rOOM);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.RoomType_id = new SelectList(db.ROOMTYPEs, "RoomType_id", "RType", rOOM.RoomType_id);
            return(View(rOOM));
        }
Пример #4
0
        public ActionResult Create([Bind(Include = "PayType_id,PType")] PAYTYPE pAYTYPE)
        {
            if (ModelState.IsValid)
            {
                pAYTYPE.PayType_id = createId();
                db.PAYTYPEs.Add(pAYTYPE);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(pAYTYPE));
        }
Пример #5
0
        public ActionResult Create([Bind(Include = "Booking_id,Check_in_date,Check_out_date,Customer_id,Room_id")] BOOKING bOOKING)
        {
            if (ModelState.IsValid)
            {
                db.BOOKINGs.Add(bOOKING);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.Customer_id = new SelectList(db.CUSTOMERs, "Customer_id", "CustomerFirstName", bOOKING.Customer_id);
            ViewBag.Room_id     = new SelectList(db.ROOMs, "Room_id", "RoomType_id", bOOKING.Room_id);
            return(View(bOOKING));
        }
Пример #6
0
        public ActionResult Create([Bind(Include = "Rent_id,Price,IsActive,From_Date,To_Date,RoomType_id")] RENT rENT)
        {
            if (ModelState.IsValid)
            {
                rENT.Rent_id = createId();
                db.RENTs.Add(rENT);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.RoomType_id = new SelectList(db.ROOMTYPEs, "RoomType_id", "RType", rENT.RoomType_id);
            return(View(rENT));
        }
Пример #7
0
        public ActionResult Create([Bind(Include = "Bill_id,Total,BillPay_id,Rent_id,Booking_id")] BILL bILL)
        {
            if (ModelState.IsValid)
            {
                db.BILLs.Add(bILL);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.BillPay_id = new SelectList(db.BILLPAYs, "BillPay_id", "PayType_id", bILL.BillPay_id);
            ViewBag.Booking_id = new SelectList(db.BOOKINGs, "Booking_id", "Customer_id", bILL.Booking_id);
            ViewBag.Rent_id    = new SelectList(db.RENTs, "Rent_id", "RoomType_id", bILL.Rent_id);
            return(View(bILL));
        }
Пример #8
0
        public ActionResult Confirm(string check_in_date_input, string check_out_date_input, string roomtype_input)
        {
            ViewBag.roomtypeData = db.ROOMTYPEs.ToList();
            ViewBag.paytypeData  = db.PAYTYPEs.ToList();

            string customerLastName  = Request["customerLastName"];
            string customerFirstName = Request["customerFirstName"];
            string tel     = Request["tel"];
            string email   = Request["email"];
            string paytype = Request["paytype"];


            // -------------check user input-------------
            if (isCorrectFormat(check_in_date_input) == false || isCorrectFormat(check_out_date_input) == false)
            {
                return(RedirectToAction("Index"));
            }
            else if (NumberOfDays(check_in_date_input, check_out_date_input) < 0)
            {
                return(RedirectToAction("Index"));
            }


            // -------price and total for booking form----------
            int numberOfDays = NumberOfDays(check_in_date_input, check_out_date_input);

            String queryRent =
                "SELECT r.Rent_id, r.Price, r.IsActive, r.From_Date, r.To_Date, r.RoomType_id "
                + "FROM(SELECT * FROM ROOMTYPE rt WHERE(rt.RoomType_id = '" + roomtype_input + "')) rt, RENT r "
                + "WHERE(r.RoomType_id = rt.RoomType_id) and r.IsActive = 'True' ";

            var rent  = db.Database.SqlQuery <RENT>(queryRent);
            int price = rent.ToList()[0].Price;
            int total = numberOfDays * price;


            // ---------------check room availability--------------

            string check_in_date_format  = FormatDate(check_in_date_input);
            string check_out_date_format = FormatDate(check_out_date_input);

            String query =
                "DECLARE @S DATE; "
                + " SET @S = '" + check_in_date_format + "' "
                + " DECLARE @E DATE; "
                + " SET @E = '" + check_out_date_format + "' "
                + " DECLARE @RT varchar(20); "
                + " SET @RT = '" + roomtype_input + "' "

                + " SELECT r.Room_id, r.RoomType_id"
                + " FROM (SELECT * FROM ROOM WHERE ROOM.RoomType_id = @RT) r "
                + " EXCEPT "
                + " SELECT Distinct c.Room_id, c.RoomType_id "
                + " FROM( "
                + "   SELECT a.Room_id, a.RoomType_id, b.Booking_id, b.Check_in_date, b.Check_out_date, b.Customer_id "
                + "    FROM(SELECT * FROM ROOM WHERE ROOM.RoomType_id = @RT) a, BOOKING b "
                + "    WHERE a.Room_id = b.Room_id "
                + " ) c "
                + " WHERE( "
                + "      (@S <= c.Check_in_date and(@E >= c.Check_in_date and @E <= c.Check_out_date)) "
                + "        or((@S >= c.Check_in_date and @S <= c.Check_out_date) and @E >= c.Check_out_date ) "
                + "       or(@S >= c.Check_in_date and @E <= c.Check_out_date) "
                + "       or(@S <= c.Check_in_date and @E >= c.Check_out_date) "
                + ")";


            var         data  = db.Database.SqlQuery <ROOM>(query);
            List <ROOM> data1 = data.ToList();

            // not availability
            if (data1.Count <= 0)
            {
                System.Diagnostics.Debug.WriteLine("Khong co phong");
                ViewBag.isExist   = false;
                ViewBag.showAlert = true;
                return(RedirectToAction("Index"));
            }
            else
            {
                // flag for create booking form
                ViewBag.isExist = true;
            }


            // create customer
            CUSTOMER mCustomer = new CUSTOMER();

            mCustomer.Customer_id       = createCustomerId();
            mCustomer.CustomerFirstName = customerFirstName;
            mCustomer.CustomerLastName  = customerLastName;
            mCustomer.CustomerTel       = tel;
            mCustomer.CustomerEmail     = email;
            db.CUSTOMERs.Add(mCustomer);

            // create booking
            BOOKING mBooking = new BOOKING();

            mBooking.Booking_id     = createBookingId();
            mBooking.Check_in_date  = Convert.ToDateTime(check_in_date_input);
            mBooking.Check_out_date = Convert.ToDateTime(check_out_date_input);
            mBooking.Customer_id    = mCustomer.Customer_id;
            mBooking.Room_id        = data1[0].Room_id;
            db.BOOKINGs.Add(mBooking);

            // create billpay
            BILLPAY mBillPay = new BILLPAY();

            mBillPay.BillPay_id  = createBillPayId();
            mBillPay.Date        = DateTime.Now;
            mBillPay.PayType_id  = paytype;
            mBillPay.Customer_id = mCustomer.Customer_id;
            db.BILLPAYs.Add(mBillPay);

            // create bill
            BILL mBill = new BILL();

            mBill.Bill_id    = createBillId();
            mBill.Total      = total;
            mBill.BillPay_id = mBillPay.BillPay_id;
            mBill.Rent_id    = rent.ToList()[0].Rent_id; // ...
            mBill.Booking_id = mBooking.Booking_id;
            db.BILLs.Add(mBill);

            db.SaveChanges();

            SendEmail(mCustomer.CustomerLastName + " " + mCustomer.CustomerFirstName, mCustomer.CustomerTel, mCustomer.CustomerEmail, htmlMail(mBill, db.ROOMTYPEs.Find(roomtype_input).RType, price));

            return(RedirectToAction("ConfirmBillPay", new { id = mBill.Bill_id }));
        }