예제 #1
0
        public JsonResult SaveDiskReturn(string lst)
        {
            JavaScriptSerializer json_serializer = new JavaScriptSerializer();
            List <int>           Lst             = json_serializer.Deserialize <List <int> >(lst);

            OrderDetail d = new OrderDetail();

            foreach (int i in Lst)
            {
                OrderDetail o    = db.OrderDetails.Where(a => a.Id_Item == i && a.Status == "Chưa Trả").FirstOrDefault();
                Item        item = db.Items.Where(t => t.Id_Item == i).FirstOrDefault();
                if (o != null)
                {
                    o.Status     = "Đã Trả";
                    o.DateReturn = DateTime.Now;
                    item.Status  = "On-Shelf";

                    DateTime ngaytra    = Convert.ToDateTime(o.DateReturn);
                    DateTime hantra     = Convert.ToDateTime(o.DateDue);
                    TimeSpan Time       = ngaytra - hantra;
                    int      TongSoNgay = Time.Days;
                    if (TongSoNgay > 0)
                    {
                        LateFee lt = new LateFee();
                        lt.Id_OrderDetail = o.Id_OrderDetail;
                        lt.Late_Fee       = o.Items.Titles.TypeDisk.LateFee;
                        lt.NumOfLateDate  = TongSoNgay;
                        lt.Total          = o.Items.Titles.TypeDisk.LateFee * TongSoNgay;
                        lt.Status         = "Chưa Trả";
                        db.LateFees.Add(lt);
                        o.Orders.Customers.Fine += lt.Total;
                        Customer cus = new Customer();
                        cus.Fine = o.Items.Titles.TypeDisk.LateFee * TongSoNgay;
                    }
                }
                else
                {
                    break;
                }
                //Kiểm tra Reservation nếu có thì thêm ReservDetail cho Reservation có id nhỏ nhất, đặt status của item = "On Hold"
                new ReservationsController().PlaceOnHold(item);
            }
            db.SaveChanges();

            string value = string.Empty;

            value = JsonConvert.SerializeObject(d, Formatting.Indented, new JsonSerializerSettings
            {
                ReferenceLoopHandling = ReferenceLoopHandling.Ignore
            });
            return(Json(value, JsonRequestBehavior.AllowGet));
        }
        public JsonResult SaveLateFee(int Id_LateFee)
        {
            LateFee lt = db.LateFees.Where(x => x.Id_LateFee == Id_LateFee && x.Status == "Chưa Trả").FirstOrDefault();

            if (lt != null)
            {
                lt.Status = "Đã Trả";
                lt.OrderDetails.Orders.Customers.Fine -= lt.Total;
            }
            db.SaveChanges();

            return(Json(true, JsonRequestBehavior.AllowGet));
        }