public void NapDuLieuVaoGrid()
 {
     ChiTietPhieuMuon_TraCollection chitietphieuColl = new ChiTietPhieuMuon_TraCollection();
     chitietphieuColl = Session["SachMuon"] as ChiTietPhieuMuon_TraCollection;
     ChiTietGridView.DataSource = chitietphieuColl;
     ChiTietGridView.DataBind();
 }
 public void NapPhieuPhat()
 {
     ChiTietPhieuMuon_TraCollection chitietphieuColl = new ChiTietPhieuMuon_TraCollection();
     chitietphieuColl = (ChiTietPhieuMuon_TraCollection)Session["PhieuPhat"];
     PhieuPhatGridview.DataSource = chitietphieuColl;
     PhieuPhatGridview.DataBind();
 }
 public ChiTietPhieuMuon_TraCollection TimChitietPhieuThu(string maphieuthu)
 {
     ChiTietPhieuMuon_TraCollection chitietColl = new ChiTietPhieuMuon_TraCollection();
     SqlConnection cnn = new SqlConnection(cnnstr);
     string query = "SELECT Convert(nvarchar(10),GiaHan,103) GiaHan,* FROM Chitietphieumuon_tra WHERE maphieuthu=@maphieuthu ";
     SqlCommand cmd = new SqlCommand(query, cnn);
     cmd.Parameters.AddWithValue("@maphieuthu", maphieuthu);
     cnn.Open();
     SqlDataReader dr = cmd.ExecuteReader();
     while (dr.Read())
     {
         ChiTietPhieuMuon_Tra ctphieu = new ChiTietPhieuMuon_Tra();
       //  ctphieu.GiaHan = dr["Giahan"].ToString();
         ctphieu.LyDoPhat = dr["lydophat"].ToString();
         ctphieu.MaPhieuMuon = dr["maphieumuon"].ToString();
         ctphieu.MaPhieuThu = dr["maphieuthu"].ToString();
         ctphieu.MaSach = dr["masach"].ToString();
         ctphieu.TienTheChan = Convert.ToDecimal(dr["tienthechan"].ToString());
         ctphieu.NgayTra = dr["ngaytra"].ToString();
         if (dr["sotienphat"].ToString() != "")
             ctphieu.SoTienPhat = Convert.ToDecimal(dr["sotienphat"].ToString());
         /*     if(dr["tienthechan"].ToString()!="")
                  ctphieu.TienTheChan = Convert.ToDecimal(dr["tienthechan"].ToString());*/
         chitietColl.Add(ctphieu);
     }
     cnn.Close();
     return chitietColl;
 }
 /*  public void NapPhieuXemTruoc()
   {   
       ChiTietPhieuMuon_TraCollection chitietphieuColl = new ChiTietPhieuMuon_TraCollection();
       chitietphieuColl = (ChiTietPhieuMuon_TraCollection)Session["PhieuPhat"];
       XemphieuGridview.DataSource = chitietphieuColl;
       XemphieuGridview.DataBind();
   }*/  
   protected void Page_Load(object sender, EventArgs e)
   {
       if (Session["manv"] == null || Session["tennv"] == null)
           Response.Redirect("dangnhap.aspx");    
       if (!IsPostBack)
       {
           ChiTietPhieuMuon_TraCollection chitietphieuColl= new ChiTietPhieuMuon_TraCollection();
           Session["PhieuPhat"] = chitietphieuColl;
       }
   }
 protected void Page_Load(object sender, EventArgs e)
 {
     if (Session["manv"] == null || Session["tennv"] == null)
         Response.Redirect("dangnhap.aspx");
     if (!IsPostBack)
     {
         AnhienSach(false);           
         ChiTietPhieuMuon_TraCollection CTPMuon_TraColl = new ChiTietPhieuMuon_TraCollection();
         Session["PhieuThu"]=CTPMuon_TraColl;   
     }
 }
 protected void Page_Load(object sender, EventArgs e)
 {
     if (Session["manv"] == null || Session["tennv"] == null)
         Response.Redirect("dangnhap.aspx");
     if (!IsPostBack)
     {
         ChiTietPhieuMuon_TraCollection ctpMT= new ChiTietPhieuMuon_TraCollection();
         Session["SachMuon"] = ctpMT;
         NapDuLieuVaoGrid();
         AnHienDocGia(false);
         AnHienSach(false);
         MadocgiaTextBox.Focus();
     }
 }
 public bool LuuPhieu(ChiTietPhieuMuon_TraCollection chitietphieuColl, string manv,decimal tongtien)
 {
     try
     {
         PhieuThuBO phieuthuBO = new PhieuThuBO();
         phieuthuBO.MaNV = manv;
         phieuthuBO.TongTien = tongtien;
         phieuthuBO.ChiTietPhieuThu = chitietphieuColl;
         phieuthuDAO.LuuPhieu(phieuthuBO);
         return true;
     }
     catch
     {
         return false;
     }
 }
 public bool LuuPhieuMuon(string MaNV, string NgayMuon,string MaLuot,ChiTietPhieuMuon_TraCollection chitietphieuColl)
 {
     try
     {
         PhieuMuonBO phieumuonBO = new PhieuMuonBO();
         phieumuonBO.MaPhieuMuon = MaLuot;
         phieumuonBO.MaNV = MaNV;
         phieumuonBO.NgayMuon = NgayMuon;
         TimeSpan ts = new TimeSpan(7, 0, 0, 0);
         phieumuonBO.NgayHetHan =(Convert.ToDateTime(NgayMuon)+ts).ToString();
         phieumuonBO.MaLuot = MaLuot;
         phieumuonBO.ChitietPhieuMuon = chitietphieuColl;
         phieumuonDAO.LuuPhieuMuon(phieumuonBO);
         return true;
     }
     catch
     {
         return false;
     }
 }
 protected void LuuButton_Click(object sender, EventArgs e)
 {
     ThongbaoPhieuMuonLabel.Text = "";
     string madocgia = MaDocGiaLabel.Text;
     string masach = MasachmuonLabel.Text;
     //kiểm tra số lượng sáh độc giả đang muợn
     int kt1 = phieumuonBUS.DemsoSach_ChuaTra(madocgia);
     if (kt1 == 3)
     {
         ThongbaoPhieuMuonLabel.Text = "Độc giả đã mượn đủ số sách quy định";
         return;
     }
     else
         ThongbaoPhieuMuonLabel.Text = "Độc giả đã mượn " + kt1 + "/3 cuốn sách";
     //kiểm tra sách có đang đựơc mượn hay không
     string kt2 = phieumuonBUS.KiemTraSach_DangMuon(masach);
     if (kt2 != "")
     {
         ThongbaoPhieuMuonLabel.Text = "Sách đã đựơc mượn";
         return;
     }
     //kiểm tra tiền thế chân
     int kq = 0;
     if (int.TryParse(TienthechanTextbox.Text.Split('.')[0], out kq) == false || Convert.ToInt32(TienthechanTextbox.Text.Split('.')[0]) < Convert.ToInt32(TriGiaLabel.Text.Split('.')[0]))
     {
         ThongbaoPhieuMuonLabel.Text = "Tiền thế chân phải lớn hơn hoặc bằng giá trị của sách";
         return;
     }
     //kiểm tra sách có đang chuẩn bị lập phiếu không
     ChiTietPhieuMuon_TraCollection chitietphieuColl = new ChiTietPhieuMuon_TraCollection();
     chitietphieuColl = Session["SachMuon"] as ChiTietPhieuMuon_TraCollection;
     foreach (ChiTietPhieuMuon_Tra ct in chitietphieuColl)
         if (MasachmuonLabel.Text == ct.MaSach)
         {
             ThongbaoPhieuMuonLabel.Text = "Sách đã đựơc thêm vào phiếu mượn";
             return;
         }
     //Kiểm tra có độc giả để lập phiếu chưa
     if (MaDocGiaLabel.Text == "")
     {
         ThongBaoDocGiaLabel.Text = "Bạn phải chọn độc giả để lập phiếu";
         return;
     }
     //Nếu qua hết thì thêm vào phiếu            
     ChiTietPhieuMuon_Tra ctphieu = new ChiTietPhieuMuon_Tra();
     ctphieu.MaSach = MasachmuonLabel.Text;
     ctphieu.TienTheChan = Convert.ToInt32(TienthechanTextbox.Text.Split('.')[0]);
     chitietphieuColl.Add(ctphieu);
     Session["SachMuon"] = chitietphieuColl;
     //Kiểm tra số sách tối đa add vào là 3
     if (kt1 + chitietphieuColl.Count > 3)
     {
         ThongbaoPhieuMuonLabel.Text = "Độc giả chỉ có thể mượn tối đa 3 sách";
         return;
     }
     NapDuLieuVaoGrid();
     ResetSach();
     AnHienSach(false);
     MasachTextBox.Text = "";
     MasachTextBox.Focus();
 }
 protected void ChiTietGridView_RowCommand(object sender, GridViewCommandEventArgs e)
 {
     if (e.CommandName == "xoa")
     {
         int index = Convert.ToInt32(e.CommandArgument.ToString());
         ChiTietPhieuMuon_TraCollection chitietphieuColl = new ChiTietPhieuMuon_TraCollection();
         chitietphieuColl = Session["SachMuon"] as ChiTietPhieuMuon_TraCollection;
         chitietphieuColl.Remove(index);
         NapDuLieuVaoGrid();
     }
     else if(e.CommandName == "xem")
     {
         SachBO sachBO = new SachBO();
         string masach=e.CommandArgument.ToString();
         sachBO = sachBUS.Tim1Sach(masach);
         if (sachBO != null && sachBO.TenSach != null)
         {
             MaSachCTLabel.Text = masach;
             TenSachCTLabel.Text = sachBO.TenSach;
             HinhAnhSachCTImage.ImageUrl = sachBO.hinhanh;
             NhaXuatBanCTLabel.Text = nhaxuatbanBUS.Tim1NXB(sachBO.MaNXB).TenNXB;
             LanXuatBanCTLabel.Text = sachBO.lanxuatban.ToString();
             NamXuatBanCTLabel.Text = sachBO.namxuatban.ToString();
             TacGiaCTListBox.DataSource = sachBO.tacgiaColl;
             TacGiaCTListBox.DataTextField = "TenTG";
             TacGiaCTListBox.DataValueField = "MaTG";
             TacGiaCTListBox.DataBind();
             TriGiaCTLabel.Text = sachBO.trigia.ToString() + " vnđ";
         }
         SachPopup.Show();
     }
 }       
 protected void LuuPhieuThuButton_Click(object sender, EventArgs e)
 {
     ///////Lưu///////
     string madocgia = MadocgiaTextbox.Text;
     if (PhieuPhatGridview.Rows.Count == 0)
     {
         InphieuLabel.Text = "Phải có ít nhất 1 sách để lập phiếu thu";
         return;
     }
     string manv = Session["manv"].ToString();
       //lấy chi tiết phiếu thu
     ChiTietPhieuMuon_TraCollection chitietphieuColl = new ChiTietPhieuMuon_TraCollection();
     chitietphieuColl = (ChiTietPhieuMuon_TraCollection)Session["PhieuPhat"];
     if (KiemTra(chitietphieuColl) == false)
     {
         NapSach(madocgia);
         NapPhieuPhat();
         return;
     }
     string tongtien = ViewState["TongTien"].ToString();// TongtienphatLabel.Text;
     if (phieuthuBUS.LuuPhieu(chitietphieuColl, manv, Convert.ToDecimal(tongtien)) == true)
     {
         InphieuLabel.Text = "Đã lưu phiếu phạt";
         chitietphieuColl = new ChiTietPhieuMuon_TraCollection();
         Session["PhieuPhat"] = chitietphieuColl;
     }
     else
     {
         InphieuLabel.Text = "Đã có sự cố khi lưu phiếu phạt! Mời thử lại sau";
         NapSach(madocgia);
         NapPhieuPhat();
         return;
     }
     /////In////////
     Taoreport();
     DocGiaLabel.Text = "";    
     NapSach(madocgia);
     NapPhieuPhat();
 }  
 public bool KiemTra(ChiTietPhieuMuon_TraCollection chitietphieuColl)
 {
     string madocgia = MadocgiaTextbox.Text;
     //add thông tin phiếu thu       
     decimal tongtien = 0;
     decimal temp;
     for (int i = 0; i < chitietphieuColl.Count; i++)
     {
         TextBox sotienphat = (TextBox)PhieuPhatGridview.Rows[i].FindControl("SoTienPhatTextBox");
         TextBox lydophat = (TextBox)PhieuPhatGridview.Rows[i].FindControl("LyDoPhatTextbox");
         if (decimal.TryParse(sotienphat.Text, out temp) != true || sotienphat.Text.Trim() == "" ||Convert.ToDecimal(sotienphat.Text)<0)
         {
             InphieuLabel.Text = "Số tiền phạt phải là số dương và không đựơc bỏ trống";
             NapSach(madocgia);
             NapPhieuPhat();
             return false;
         }
         if (lydophat.Text.Trim() == "")
         {
             InphieuLabel.Text = "Lý do phạt không đựơc bỏ trống";
             NapSach(madocgia);
             NapPhieuPhat();
             return false;
         }
         chitietphieuColl.Index(i).SoTienPhat = Convert.ToDecimal(sotienphat.Text);
         chitietphieuColl.Index(i).LyDoPhat = lydophat.Text;
         //đồng thời cộng tổng tìên
         if (chitietphieuColl.Index(i).SoTienPhat.ToString() != "" && decimal.TryParse(chitietphieuColl.Index(i).SoTienPhat.ToString(), out temp) == true)
             tongtien = tongtien + Convert.ToDecimal(chitietphieuColl.Index(i).SoTienPhat.ToString());
     }
     ViewState["TongTien"] = tongtien;
     return true;
 }
 protected void PhieuPhatGridview_RowCommand(object sender, GridViewCommandEventArgs e)
 {
     if (e.CommandName == "xoa")
     {
         ChiTietPhieuMuon_TraCollection chitietphieuColl = new ChiTietPhieuMuon_TraCollection();
         chitietphieuColl = (ChiTietPhieuMuon_TraCollection)Session["PhieuPhat"];
         //remove thêm chitietphieu
         int delnum=Convert.ToInt32(e.CommandArgument);
         chitietphieuColl.Remove(delnum);
         Session["PhieuPhat"] = chitietphieuColl;
         DocGiaLabel.Text = "";
         string madocgia = MadocgiaTextbox.Text;
         NapSach(madocgia);
         NapPhieuPhat();
     }
 }  
 protected void SachGridview_RowCommand(object sender, GridViewCommandEventArgs e)
 {
     if (e.CommandName == "Them")
     {
         ChiTietPhieuMuon_TraCollection chitietphieuColl = new ChiTietPhieuMuon_TraCollection();
         chitietphieuColl = (ChiTietPhieuMuon_TraCollection) Session["PhieuPhat"];
         //add thêm chitietphieu
         ChiTietPhieuMuon_Tra chitietphieu = new ChiTietPhieuMuon_Tra();
         int stt =Convert.ToInt32(e.CommandArgument.ToString());
         string maphieumuon =((HiddenField)SachGridview.Rows[stt].FindControl("maphieuhid")).Value.ToString();
         string masach = ((Label)SachGridview.Rows[stt].FindControl("MasachLabel")).Text;
         //nạp lại
         string madocgia = MadocgiaTextbox.Text;
         NapSach(madocgia);
         //xử lý tiếp
         Label thongbao = ((Label)SachGridview.Rows[stt].FindControl("SachLabel"));
         thongbao.Text = "";
         bool kt = KiemTraTrung(maphieumuon, masach);
         if (kt == true)
         {
             thongbao.Text = "Sách đã được cho vào phiếu phạt";
         }
         else
         {
             chitietphieu.MaPhieuMuon = maphieumuon;
             chitietphieu.MaSach = masach;
             chitietphieuColl.Add(chitietphieu);
             Session["PhieuPhat"] = chitietphieuColl;                
         }
         NapPhieuPhat();
     }
    
 }
 public bool KiemTraTrung(string maphieumuon,string masach)
 {
     ChiTietPhieuMuon_TraCollection chitietphieuColl = new ChiTietPhieuMuon_TraCollection();
     chitietphieuColl = (ChiTietPhieuMuon_TraCollection)Session["PhieuPhat"];
     for (int i = 0; i < chitietphieuColl.Count; i++)
     {
         if (chitietphieuColl.Index(i).MaPhieuMuon == maphieumuon && chitietphieuColl.Index(i).MaSach == masach)
             return true;
     }
     return false;
 }
 protected void SachGridview_RowCommand(object sender, GridViewCommandEventArgs e)
 {
     if (e.CommandName == "giahan")
     {
         int stt=Convert.ToInt32(e.CommandArgument.ToString());
         ChiTietPhieuMuon_TraCollection chitietColl= new ChiTietPhieuMuon_TraCollection();
         //tìm
         string madocgia_sach = TimTextBox.Text;
         bool cachtim=false;
         if(TimDropdown.SelectedValue.ToString()=="1")
         cachtim=true;
         chitietColl=phieumuonBUS.Sach_ChuaTra(madocgia_sach, cachtim);
         if (phieumuonBUS.GiaHan(chitietColl.Index(stt).MaPhieuMuon, chitietColl.Index(stt).MaSach) == true)
         {
             //có thể xử lý thêm ở đây
         }
         NapDuLieu();
     }
 }
 public ChiTietPhieuMuon_TraCollection TimSachViPham(string madocgia)
 {
     ChiTietPhieuMuon_TraCollection chitietColl = new ChiTietPhieuMuon_TraCollection();
     SqlConnection cnn = new SqlConnection(cnnstr);
     string query = "SELECT Convert(nvarchar(10),GiaHan,103) GiaHan,* FROM (SELECT a.MaPhieuMuon,MaSach,Ngaymuon,NgayHetHan,GiaHan,NgayTra,LydoPhat,SoTienPhat,TienTheChan,MaPhieuThu ";
     query += "FROM ChiTietphieumuon_tra a,PhieuMuon b WHERE a.MaPhieuMuon=b.MaPhieuMuon ";
     query += "AND b.MaPhieuMuon in(SELECT distinct MaPhieuMuon FROM PhieuMuon,LuotVaoThuVien ";
     query += "WHERE PhieuMuon.maluot=Luotvaothuvien.maluot AND madocgia=@madocgia) ";
     query += "AND MaSach in (SELECT masach FROM Sach WHERE trangthai=1)) SachViPham ";
     query += "WHERE (NgayTra IS NULL AND(NgayHetHan<GETDATE()) AND MaPhieuThu IS NULL) ";
     query += "OR (NgayTra IS NULL AND(GiaHan<GETDATE()) AND MaPhieuThu IS NULL) ";
     query += "OR (NgayTra IS NOT NULL AND (NgayHetHan<NgayTra) AND MaPhieuThu IS NULL) ";
     query += "OR (NgayTra IS NOT NULL AND (GiaHan<NgayTra) AND MaPhieuThu IS NULL) ";
     query += "OR (NgayTra IS NULL AND MaPhieuThu IS NULL)";
     SqlCommand cmd = new SqlCommand(query, cnn);
     cmd.Parameters.AddWithValue("@madocgia", madocgia);
     cnn.Open();
     SqlDataReader dr = cmd.ExecuteReader();
     while (dr.Read())
     {
         ChiTietPhieuMuon_Tra ctphieu = new ChiTietPhieuMuon_Tra();
         ctphieu.GiaHan = dr["Giahan"].ToString();
         ctphieu.LyDoPhat = dr["lydophat"].ToString();
         ctphieu.MaPhieuMuon = dr["maphieumuon"].ToString();
         ctphieu.MaPhieuThu = dr["maphieuthu"].ToString();
         ctphieu.MaSach = dr["masach"].ToString();
         ctphieu.TienTheChan = Convert.ToDecimal(dr["tienthechan"].ToString());
         ctphieu.NgayTra = dr["ngaytra"].ToString();
         if (dr["sotienphat"].ToString() != "")
             ctphieu.SoTienPhat = Convert.ToDecimal(dr["sotienphat"].ToString());
         /*     if(dr["tienthechan"].ToString()!="")
                  ctphieu.TienTheChan = Convert.ToDecimal(dr["tienthechan"].ToString());*/
         chitietColl.Add(ctphieu);
     }
     cnn.Close();
     return chitietColl;
 }
 public ChiTietPhieuMuon_TraCollection Sach_ChuaTra(string madocgia_sach, bool cachtim)
 {
     ChiTietPhieuMuon_TraCollection chitietphieuColl = new ChiTietPhieuMuon_TraCollection();
     SqlConnection cnn = new SqlConnection(cnnstr);
     string query = "SELECT * FROM Luotvaothuvien a,Phieumuon b,Chitietphieumuon_tra c";
     query += " WHERE a.MaLuot=b.MaLuot AND b.MaPhieuMuon=c.MaPhieuMuon";
     if(cachtim==true)
         query += " AND madocgia=@madocgia";
     else
         query += " AND masach=@masach";
     query += " AND(c.NgayTra is NULL AND MaPhieuThu is NULL)";
     SqlCommand cmd = new SqlCommand(query,cnn);
     if (cachtim == true)
         cmd.Parameters.AddWithValue("@madocgia", madocgia_sach);
     else
         cmd.Parameters.AddWithValue("@masach", madocgia_sach);
     cnn.Open();
     SqlDataReader dr = cmd.ExecuteReader();
     while (dr.Read())
     {
         ChiTietPhieuMuon_Tra chitietphieu = new ChiTietPhieuMuon_Tra();
         chitietphieu.GiaHan = dr["giahan"].ToString();
         chitietphieu.LyDoPhat = dr["lydophat"].ToString();
         chitietphieu.MaPhieuMuon=dr["maphieumuon"].ToString();
         chitietphieu.MaPhieuThu = dr["maphieuthu"].ToString();
         chitietphieu.MaSach = dr["masach"].ToString();
         chitietphieu.NgayTra = dr["ngaytra"].ToString();
         //chitietphieu.SoTienPhat=Convert.ToDecimal(dr["sotienphat"].ToString());
         chitietphieu.TienTheChan=Convert.ToDecimal(dr["tienthechan"].ToString());
         chitietphieuColl.Add(chitietphieu);
     }
     cnn.Close();
     return chitietphieuColl;
 }
 protected void LapPhieuButton_Click(object sender, EventArgs e)
 {
     string MaNV = Session["manv"].ToString();
     string NgayMuon=DateTime.Now.ToString();       
     string MaLuot = ViewState["maluot"].ToString();
     ChiTietPhieuMuon_TraCollection chitietphieuColl = new ChiTietPhieuMuon_TraCollection();
     chitietphieuColl = Session["SachMuon"] as ChiTietPhieuMuon_TraCollection;
     if (chitietphieuColl.Count <= 0)
     {
         ThongbaoPhieuMuonLabel.Text = "Không có sách để lập phiếu mượn";
         return;
     }
     bool kq=phieumuonBUS.LuuPhieuMuon(MaNV, NgayMuon, MaLuot,chitietphieuColl);
     if (kq == true)
     {
         chitietphieuColl = new ChiTietPhieuMuon_TraCollection();
         Session["SachMuon"] = chitietphieuColl;
         ChiTietGridView.DataSource = chitietphieuColl;
         ChiTietGridView.DataBind();
         ResetDocGia();
         ResetSach();
         AnHienDocGia(false);
         AnHienSach(false);
         ThongBaoDocGiaLabel.Text = "";
         ThongbaoLapPhieuLabel.Text = "Đã lưu phiếu mượn thành công";
         ThongbaoPhieuMuonLabel.Text = "";
         ThongbaoSachLabel.Text = "";
     }
         /////thêm
     else
     {
         return;
     }
     /////In////////
     Taoreport();
     BaoCaoPanel.Visible = true;
     ThoatButton.Visible = true;
 }