Example #1
0
 public bool ReturnDisk(int diskID, int cusID, decimal lateCharge, DateTime returnDate)
 {
     using (ApplicationDBContext db = new ApplicationDBContext())
     {
         Disk           d  = db.Disks.SingleOrDefault(x => x.DiskID == diskID);
         Rentail_Detail rd = db.Rentail_Detail.SingleOrDefault(x => x.DiskID == diskID && x.ReturnDate == null);
         Rental         r  = db.Rentals.SingleOrDefault(x => x.RentalID == rd.RentalID && x.Status == (int)RentalInformation.RentalStatus.RENTED);
         if (d != null && r != null && rd != null)
         {
             d.ChkOutStatus = (short)Checkout.DiskStatus.SHELF;
             rd.ReturnDate  = returnDate;
             AddLateCharge(diskID, r.RentalID, lateCharge);
             db.SaveChanges();
             using (ApplicationDBContext db2 = new ApplicationDBContext())
             {
                 List <Rentail_Detail> lst    = db2.Rentail_Detail.Where(x => x.RentalID == r.RentalID && x.ReturnDate == null).ToList();
                 List <Rentail_Detail> lstAll = db2.Rentail_Detail.Where(x => x.RentalID == r.RentalID).ToList();
                 decimal c = (decimal)lstAll.Sum(x => x.OwnedMoney);
                 if (lstAll.Sum(x => x.OwnedMoney) > 0 && lst.Count == 0)
                 {
                     r.Status = (int)RentalInformation.RentalStatus.RESERVATION;
                 }
                 else if (lst.Count == 0)
                 {
                     r.Status = (int)RentalInformation.RentalStatus.COMPLETE;
                 }
                 db.SaveChanges();
                 PlaceOnHold(diskID);
                 return(true);
             }
         }
         return(false);
     }
 }
Example #2
0
        public DetailReturnDisk Search(int diskID)
        {
            DetailReturnDisk detail;

            using (ApplicationDBContext db = new ApplicationDBContext())
            {
                CustomerBS c = new CustomerBS();
                Disk       d = db.Disks.SingleOrDefault(x => x.DiskID == diskID && x.ChkOutStatus == (short)Checkout.DiskStatus.RENTED);
                if (d != null)
                {
                    var query = from rd1 in db.Rentail_Detail
                                join r1 in db.Rentals on rd1.RentalID equals r1.RentalID
                                where rd1.DiskID == diskID && r1.Status == (int)RentalInformation.RentalStatus.RENTED
                                select new
                    {
                        rd1,
                        r1
                    };



                    if (query.FirstOrDefault() != null)

                    {
                        Rentail_Detail rd    = (Rentail_Detail)query.FirstOrDefault().rd1;
                        Rental         r     = (Rental)query.FirstOrDefault().r1;
                        Title          title = db.Titles.Single(x => x.TitleID == d.TitleID);
                        Models.Type    t     = db.Types.Single(x => x.TypeID == title.TypeID);
                        detail = new DetailReturnDisk(r.CusID, d.TitleID, d.DiskID, r.StartRentDate, (DateTime)rd.DueDate, DateTime.Now, c.getName(r.CusID), getTitleName(d.TitleID), t.RentCharge);
                        return(detail);
                    }
                }
                return(null);
            }
        }
Example #3
0
        private void ContentDialog_PrimaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
        {
            if (discIDs.Count == 0)
            {
                return;
            }

            DateTime dateTime = DateTime.Now;

            Rental rental = new Rental()
            {
                CusID = cusID, Deleted = false, StartRentDate = dateTime, Status = (short)RentalInformation.RentalStatus.RENTED
            };

            int rentalID = -1;

            using (var db = new ApplicationDBContext())
            {
                db.Rentals.Add(rental);
                db.SaveChanges();

                rentalID = (db.Rentals.ToList().Count > 0) ? db.Rentals.Last().RentalID : 1;

                if (rentalID != -1)
                {
                    foreach (var id in discIDs)
                    {
                        var            title          = db.Disks.SingleOrDefault(p => p.DiskID == id).TitleID;
                        var            typeID         = db.Titles.SingleOrDefault(p => p.TitleID == title).TypeID;
                        var            rentPeriod     = db.Types.SingleOrDefault(p => p.TypeID == typeID).RentPeriod;
                        Rentail_Detail rentail_Detail = new Rentail_Detail()
                        {
                            RentalID = rentalID, DiskID = id, DueDate = dateTime.AddDays(rentPeriod)
                        };

                        db.Rentail_Detail.Add(rentail_Detail);
                        db.Disks.Single(p => p.DiskID == id).ChkOutStatus = (short)Checkout.CheckoutStatus.RENTED;

                        var reservation = db.Reservations.FirstOrDefault(p => p.TitleID == title && p.Status == (short)Checkout.ReservationStatus.HOLDING);

                        if (reservation != null)
                        {
                            reservation.Status = (short)Checkout.ReservationStatus.COMPLETE;
                        }
                    }

                    db.SaveChanges();
                }
            }
        }
Example #4
0
 public void AddLateCharge(int diskID, int rentalID, decimal lateCharge)
 {
     using (ApplicationDBContext db = new ApplicationDBContext())
     {
         Rentail_Detail rd = db.Rentail_Detail.SingleOrDefault(x => x.DiskID == diskID && x.RentalID == rentalID);
         if (rd != null)
         {
             if (lateCharge == 0)
             {
                 rd.Paid = true;
             }
             else
             {
                 rd.Paid = false;
             }
             rd.OwnedMoney = lateCharge;
         }
         db.SaveChanges();
     }
 }