// GET: Contract
        public ActionResult CheckPlace(int quantity, int placeId)
        {
            Place         place = placebll.GetPlaceByIdBLL(placeId);
            List <object> data;

            if (quantity < place.AvailableEat)
            {
                // check place and datetime had conflicted or not
                String rs = CheckSeat((int)place.AvailableEat, quantity);
                if (rs != "")
                {
                    data = cmm.ReturnMessage(rs, "", null);
                }
                else
                {
                    data = cmm.ReturnMessage("Đã chọn phòng!", placeId.ToString(), null);
                }
                return(this.Json(data, JsonRequestBehavior.AllowGet));
            }
            else
            {
                data = cmm.ReturnMessage("Số lượng ghế không đáp ứng số lượng khách đã nhập. Vui lòng chọn phòng khác!", "", null);
                return(this.Json(data, JsonRequestBehavior.AllowGet));
            }
        }
        public ActionResult SearchMeal(string mealId, int placeId, int quantity, string note)
        {
            OrderMealDrinkDetail od = new OrderMealDrinkDetail();
            var model = mealbll.GetMealById(mealId);
            var place = placeBll.GetPlaceByIdBLL(placeId);
            var data  = new List <Object>();

            if (model != null)
            {
                Trace.WriteLine("add meal order detail " + place.Descriptions);

                var orderId = Int32.Parse(place.Descriptions);
                od.OrderId     = orderId;
                od.MealDrinkId = mealId;
                od.Note        = note;
                od.Price       = model.Price;
                od.Quantity    = quantity;

                if (odbll.AddMealDrinkOrderDetail(od))
                {
                    Trace.WriteLine("----added-mealdrink-order-with placeid----" + mealId);
                    var mealLists          = odbll.GetAllMealDrinkOrderDetailByOrderId(orderId);
                    List <ItemObject> list = new List <ItemObject>();
                    foreach (var i in mealLists)
                    {
                        ItemObject m = new ItemObject();
                        m.id       = i.MealDrinkId;
                        m.Name     = mealbll.GetMealById(i.MealDrinkId).Name;
                        m.Price    = (decimal)i.Price;
                        m.Quantity = (int)i.Quantity;
                        m.orderId  = i.OrderId;
                        m.note     = i.Note;
                        list.Add(m);
                    }
                    return(this.Json(list, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    return(this.Json(new List <OrderMealDrinkDetail>(), JsonRequestBehavior.AllowGet));
                }
            }
            data = common.ReturnMessage("Khong tim thay", "false", null);
            return(this.Json(null, JsonRequestBehavior.AllowGet));
        }
Beispiel #3
0
        public void SendMail(ReservationContract contract, string to, string subject)
        {
            try
            {
                var mailMessage = new MailMessage();
                mailMessage.To.Add(to);
                mailMessage.Subject = subject;
                Place    place   = placebll.GetPlaceByIdBLL(contract.PlaceId);
                Customer cus     = cusbll.FindCustomer(contract.CustomerId);
                decimal? price   = place.Price * CountTableQuantity((int)contract.CountCustomer);
                string   content = "<h4 style='color:blue'>Chúc mừng bạn đã đăng kí đặt trước thành công tại Red Velvet Restaurant của chúng tôi</h4>" +
                                   "<h2> HỢP ĐỒNG ĐẶT TRƯỚC</h2>" +
                                   "<p>Mã đơn đặt trước: " + contract.ReservationContractId.ToString() + "</p>" +
                                   "<p>Loại đơn đặt trước: " + contract.ReservationContractName.ToString() + "</p>" +
                                   "<p>Loại sảnh: " + place.PlaceName + "</p>" +
                                   "<p>Ngày tạo đơn đặt trước: " + contract.CreateDate + " </p>" +
                                   "<p>Ngày tổ chức: " + contract.EffectDate + " </p>" +
                                   "<p>Số lượng bàn:  " + contract.Note + " </p>" +
                                   "<p style='color:red'>Giá đặt chỗ: " + place.Price + "*" + contract.Note +
                                   "=" + price +
                                   "</p>";
                List <ItemObject> mealdrink = new List <ItemObject>();
                foreach (var i in detailbll.GetAllReservationMealDrinkDetailByContractIdBLL(contract.ReservationContractId))
                {
                    ItemObject item = new ItemObject();
                    item.id       = i.MealDrinkId;
                    item.Name     = mealdrinkbll.GetMealById(i.MealDrinkId).Name;
                    item.note     = i.Note;
                    item.Price    = (decimal)i.Price;
                    item.Quantity = (int)i.Quantity;
                    mealdrink.Add(item);
                }
                if (mealdrink.Count != 0)
                {
                    content += "<h3 style='color:blue'>Danh sách món ăn đã được đặt</h3>" +
                               "<table class='table table-striped' style='color:black'>" +
                               "<thead>" +
                               "<tr>" +
                               "<th>Tên món</th>" +
                               "<th>Giá</th>" +
                               "<th>Số lượng</th>" +
                               "</tr>" +
                               "</thead>" +
                               "<tbody>";
                    foreach (ItemObject i in mealdrink)
                    {
                        content += "<tr>" +
                                   "<td>" + i.Name + "</td>" +
                                   "<td>" + i.Price + " VND</td>" +
                                   "<td>" + i.Quantity + "</td>" +
                                   "</tr>";
                    }
                    content += "<tr><td style='color:blue'><h3>Tổng thanh toán thực đơn: "
                               + mealbll.GetTotalOfMealListBLL(contract.ReservationContractId, (int)contract.CountCustomer)
                               + "000 VND</h3></td></tr>" +
                               "</tbody>" +
                               "</table>";
                }
                List <ItemObject> service = new List <ItemObject>();
                foreach (var i in detailbll.GetAllServiceDetailByContractIdBLL(contract.ReservationContractId))
                {
                    ItemObject item = new ItemObject();
                    item.id       = i.ServiceId;
                    item.Name     = servicebll.GetServiceById(i.ServiceId).ServiceName;
                    item.note     = i.Note;
                    item.Price    = (decimal)i.Price;
                    item.Quantity = (int)i.Quantity;
                    service.Add(item);
                }
                if (service.Count != 0)
                {
                    content += "<h3 style='color:blue'>Danh sách dịch vụ đã chọn</h3>" +
                               "<table class='table table-striped' style='color:black'>" +
                               "<thead>" +
                               "<tr>" +
                               "<th>Tên dịch vụ</th>" +
                               "<th>Giá</th>" +
                               "<th>Note</th>" +
                               "</tr>" +
                               "</thead>" +
                               "<tbody>";

                    foreach (ItemObject i in service)
                    {
                        content +=
                            "<tr>" +
                            "<td>" + i.Name + "</td>" +
                            "<td>" + i.Price + " VND</td>" +
                            "<td>" + i.note + "</td>" +
                            "</tr>";
                    }
                    content += "<tr><td style='color:blue'><h3>Tổng thanh toán dịch vụ: "
                               + servicebll.GetTotalOfServiceListBLL(contract.ReservationContractId, (int)contract.CountCustomer)
                               + "000 VND</h3></td></tr>" +
                               "</tbody>" +
                               "</table>";
                }
                content += "<hr>";
                double total = (double)price + servicebll.GetTotalOfServiceListBLL(contract.ReservationContractId, (int)contract.CountCustomer) +
                               mealbll.GetTotalOfMealListBLL(contract.ReservationContractId, (int)contract.CountCustomer);

                content += "<h3 style='color:red'>TỔNG THANH TOÁN: " + total + "000 VND </h3>";
                ReservationBill bill = billbll.GetBillById(contract.ReservationContractId);
                content += "<h4 style='color:black'>Số tiền trả trước: " + bill.PrePay + " VND </h4>";
                decimal?pay = bill.TotalPay - bill.PrePay;
                content += "<h4 style='color:blue'>Số tiền còn lại: " + pay + " VND </h4>";
                content += "</hr><p style='color:black'>Khách hàng vui lòng đến trực tiếp quầy tiếp tân của nhà hàng để xác nhận hợp đồng đặt trước và thanh toán số tiền còn lại" +
                           " trước ngày " + contract.ExpireDate + ". Nếu sau ngày trên, chúng tôi không nhận được thông tin liên lạc của khách hàng về đơn đặt trước này." +
                           " Chúng tôi xin phép hủy đơn đặt trước của khách hàng. Xin chân thành cảm ơn vì đã chọn lựa nhà hàng chúng tôi!</p>";
                content += "<hr><hr><h5 style='color:blue'>Điều khoản thanh toán:</h5>" +
                           "- Khách hàng có thể dời thanh toán số còn lại sau khi tiệc tổ chức tối đa 3 ngày.<br>" +
                           "- Khi đi xác nhận hợp đồng vui lòng mang theo CMND hoặc hộ khẩu đã được công chứng để hoàn tất.<br>" +
                           "- Đối với tiệc cưới, chi phí in ấn thực đơn được tặng hoàn toàn.<br>";

                mailMessage.Body       = content;
                mailMessage.IsBodyHtml = true;
                Trace.WriteLine("-----send--mail-----");
                var smtpClient = new SmtpClient
                {
                    Host                  = "smtp.gmail.com",
                    Port                  = 587,
                    EnableSsl             = true,
                    DeliveryMethod        = SmtpDeliveryMethod.Network,
                    UseDefaultCredentials = false,
                    Credentials           = new NetworkCredential("*****@*****.**", "redvelvet2018")
                };
                smtpClient.Send(mailMessage);
            }catch (Exception e)
            {
                Trace.WriteLine("-----error-------" + e.Message);
            }
        }