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")); } }
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 }); }