예제 #1
0
        public JsonResult Post_EditChiTietTra(string sMaVach, string MaPhieuTra)
        {
            if (sMaVach != null && MaPhieuTra != null)
            {
                string[] Arr_sMaVach = sMaVach.Split(',');

                var phieutra = db.PhieuTra.Where(i => i.MaPhieuTra.Equals(MaPhieuTra)).FirstOrDefault();

                var docgia = db.DocGia.Where(o => o.ID.Equals(phieutra.DocGiaID)).FirstOrDefault();
                docgia.SoSachConLai = docgia.SoSachConLai + (Arr_sMaVach.Length - 1);

                for (int i = 0; i < Arr_sMaVach.Length - 1; i++)
                {
                    string mavach = Arr_sMaVach[i];

                    var cuonsach = db.CuonSach.Where(o => o.MaVach.Equals(mavach)).FirstOrDefault();
                    cuonsach.TinhTrang = 2;

                    var dausach = db.DauSach.Where(o => o.ID.Equals(cuonsach.DauSachID)).FirstOrDefault();
                    dausach.SoLuongTon = dausach.SoLuongTon + 1;

                    var thongkedausach = db.ThongKeDauSach.Where(o => o.DauSachID.Equals(cuonsach.DauSachID)).FirstOrDefault();

                    DateTime date_thongke = thongkedausach.Ngay.Date;
                    DateTime now          = DateTime.Now.Date;
                    if (date_thongke == now)
                    {
                        thongkedausach.SoLuongHienTai = thongkedausach.SoLuongHienTai + 1;
                    }
                    else
                    {
                        ThongKeDauSach tk = new ThongKeDauSach();
                        tk.DauSachID      = cuonsach.DauSachID;
                        tk.Ngay           = DateTime.Now.Date;
                        tk.SoLuongHienTai = dausach.SoLuongTon + 1;
                        db.ThongKeDauSach.Add(tk);
                    }

                    //0 chua tra
                    //1 tra roi
                    var ctphieumuon = db.ChiTietMuon.Where(o => o.CuonSach.MaVach.Equals(mavach) && o.PhieuMuon.DocGiaID.Equals(docgia.ID)).FirstOrDefault();
                    ctphieumuon.TinhTrang = 1;


                    //giai quyet tinh trang phieu muon


                    ChiTietTra ctTra = new ChiTietTra();
                    ctTra.CuonSachID = cuonsach.ID;
                    ctTra.PhieuTraID = phieutra.ID;
                    db.ChiTietTra.Add(ctTra);
                }

                db.SaveChanges();

                return(Json("ok"));
            }
            else
            {
                return(Json("error"));
            }
        }
예제 #2
0
        public JsonResult ChiTietPhieuTra(PhieuTraModel PhieuTraJSON)
        {
            ICollection <ChiTietMuon> dsChiTietMuon = PhieuTraJSON.dsChiTietMuon;
            PhieuTra PhieuTra = new PhieuTra();

            PhieuTra.NgayTra = DateTime.Now;
            //Tìm độc giả theo mã thẻ để thêm vào phiếu trả
            DocGia docGiaTra = db.DocGia
                               .Where(dgt => dgt.MaThe == PhieuTraJSON.MaThe)
                               .FirstOrDefault();

            PhieuTra.DocGiaID = docGiaTra.ID;
            db.PhieuTra.Add(PhieuTra);
            db.SaveChanges();
            PhieuTra.MaPhieuTra = "PT" + PhieuTra.ID;
            db.SaveChanges();
            foreach (var chiTietMuonJSON in dsChiTietMuon)
            {
                ChiTietMuon chiTietMuon = db.ChiTietMuon.Find(chiTietMuonJSON.ID);
                //Tạo 1 chi tiết trả mới
                ChiTietTra chiTietTra = new ChiTietTra();
                chiTietTra.CuonSachID = chiTietMuon.CuonSach.ID;
                chiTietTra.PhieuTraID = PhieuTra.ID;
                //Cập nhật lại số lượng tồn của đầu sách
                DauSach dauSachUpdated = db.DauSach.Find(chiTietMuon.CuonSach.DauSachID);
                db.DauSach.Attach(dauSachUpdated);
                dauSachUpdated.SoLuongTon = dauSachUpdated.SoLuongTon + 1;
                //Cập nhật lại tình trạng của cuốn sách là còn trong kho
                CuonSach cuonSachUpdated = db.CuonSach.Find(chiTietMuon.CuonSach.ID);
                cuonSachUpdated.TinhTrang = 2;
                //Tăng số sách còn lại của độc giả đã mượn cuốn sách này lên
                DocGia docGiaUpdated = db.DocGia.Find(chiTietMuon.PhieuMuon.DocGiaID);
                docGiaUpdated.SoSachConLai = docGiaUpdated.SoSachConLai + 1;
                db.SaveChanges();
                //db.Entry(dauSachUpdated).State = System.Data.Entity.EntityState.Modified;
                //Tạo hoặc cập nhật thống kê đầu sách
                ThongKeDauSach thongKeDauSach = new ThongKeDauSach();
                DateTime       today          = DateTime.Now;
                if (db.ThongKeDauSach.Any(a =>
                                          a.DauSachID == chiTietMuon.CuonSach.DauSachID &&
                                          a.Ngay.Day == today.Day &&
                                          a.Ngay.Month == today.Month &&
                                          a.Ngay.Year == today.Year))
                {
                    thongKeDauSach = db.ThongKeDauSach.Where(a =>
                                                             a.DauSachID == chiTietMuon.CuonSach.DauSachID &&
                                                             a.Ngay.Day == today.Day &&
                                                             a.Ngay.Month == today.Month &&
                                                             a.Ngay.Year == today.Year).FirstOrDefault();
                    db.ThongKeDauSach.Attach(thongKeDauSach);
                    thongKeDauSach.SoLuongHienTai  = dauSachUpdated.SoLuongTon;
                    db.Entry(thongKeDauSach).State = System.Data.Entity.EntityState.Modified;
                }
                else
                {
                    thongKeDauSach.DauSachID      = chiTietMuon.CuonSach.DauSachID;
                    thongKeDauSach.Ngay           = today;
                    thongKeDauSach.SoLuongHienTai = dauSachUpdated.SoLuongTon;
                    db.ThongKeDauSach.Add(thongKeDauSach);
                }
                db.SaveChanges();
                //chiTietTra.CuonSachID = chiTietMuon.CuonSach.ID;
                //chiTietTra.PhieuTraID = PhieuTra.ID;
                db.ChiTietTra.Add(chiTietTra);
                db.SaveChanges();
            }
            //Tạo response trả về cho Angular hiển thị kết quả
            var responsePhieuTra = db.PhieuTra.Select(
                c => new
            {
                ID           = c.ID,
                DocGia       = c.DocGia,
                DocGiaID     = c.DocGiaID,
                NgayTra      = c.NgayTra,
                MaPhieuTra   = c.MaPhieuTra,
                dsChiTietTra = db.ChiTietTra.Select(ctt =>
                                                    new
                {
                    CuonSach   = ctt.CuonSach,
                    PhieuTraID = ctt.PhieuTraID,
                })
                               .Where(d => d.PhieuTraID == c.ID)
            }).Where(pt => pt.ID == PhieuTra.ID).FirstOrDefault();

            return(new JsonResult()
            {
                Data = responsePhieuTra, JsonRequestBehavior = JsonRequestBehavior.AllowGet
            });
        }