//Thêm 1 chi tiết hóa đơn public static string ThemHoaDonChiTiet(CT_HoaDon_DTO ct) { if (HoaDon_DAO.SelectSachLikeMaSach(ct.MaHD, ct.MaSach) == null) { return(HoaDon_DAO.InsertChitiet(ct)); } else { return("Sách này đã có rồi"); } }
//Sửa thông tin SoLuong sách mà khách hàng mua trong bảng CT_HOADON public static string SuaSoLuongSachKHMua(CT_HoaDon_DTO kh) { if (!HoaDon_DAO.KiemtramaSach(kh.MaSach, kh.MaHD)) { return(HoaDon_DAO.UpdateSoLuongSachMua(kh)); } else { return("Mã sách không có trong CSDL"); } }
//Trả về đối tượng CT_HoaDon_DTO theo Mã sách và Mã hóa đơn static public CT_HoaDon_DTO SelectSachLikeMaSach(int mahoadon, int masach) { string sql = "select * from CT_HOADON where ((MaHD=" + mahoadon + ")AND(MaSach=" + masach + ") )"; DataTable dt = DataAccess.ThucThiQuery(sql); if (dt.Rows.Count == 0) { return(null); } else { CT_HoaDon_DTO ct = new CT_HoaDon_DTO(); ct.MaSach = int.Parse(dt.Rows[0].ItemArray[0].ToString()); return(ct); } }
//Thêm 1 Chi tiết hóa đơn public static string InsertChitiet(CT_HoaDon_DTO ct) { string sql = "insert into CT_HOADON(MaHD,MaSach,SoLuong,DonGia,ThanhTien) values(" + ct.MaHD + "," + ct.MaSach + "," + ct.SoLuong + "," + ct.DonGia + "," + ct.ThanhTien + ")"; return(DataAccess.ThucThiNonQuery(sql)); }
//Cập nhật lại số lượng sách mà khách hàng mua static public string UpdateSoLuongSachMua(CT_HoaDon_DTO p) { string sql = "update CT_HOADON set SoLuong =" + p.SoLuong + ", ThanhTien =" + p.ThanhTien + "where MaSach =" + p.MaSach + " and MaHD =" + p.MaHD + ""; return(DataAccess.ThucThiNonQuery(sql)); }
private void btnCapNhat_Click(object sender, EventArgs e) { // kiểm tra xem khách hàng này đã thanh toán sách chưa, nếu chưa mới cho phép cập nhật if (int.Parse(txtDaThanhToan.Text) != 0) { MessageBox.Show("Hóa đơn này đã thanh toán một phần tiền! \nBạn không được cập nhật lại số lượng sách!"); return; } // Kiểm tra xem có mã sách trong bảng CT_HOADON không if (HoaDon_DAO.KiemtramaSach(int.Parse(txtMaSach.Text), int.Parse(txtMaHoaDonCT.Text))) { MessageBox.Show("Không có mã sách mà bạn cần sửa"); return; } // cập nhật tồn sách string ketQua; DataTable dt3 = ThamSo_BUS.SelectSoLuongTon(int.Parse(txtMaSach.Text)); int luongTonHienTai = int.Parse(dt3.Rows[0].ItemArray[4].ToString()); int soLuongthaydoi = int.Parse(txtSoLuong.Text); int soLuonglucdau = HoaDon_BUS.SoLuongKHMua(int.Parse(txtMaSach.Text), int.Parse(txtMaHoaDonCT.Text)); int soluongtonnew; if (soLuongthaydoi > soLuonglucdau) { soluongtonnew = luongTonHienTai - (soLuongthaydoi - soLuonglucdau); } else { soluongtonnew = luongTonHienTai + (soLuonglucdau - soLuongthaydoi); } Sach_DTO s = new Sach_DTO(); s.MaSach = int.Parse(txtMaSach.Text); s.SoLuongTon = (int)soluongtonnew; ketQua = Sach_BUS.UpdateSoLuongTon(s); if (ketQua != "Success") { MessageBox.Show(ketQua); return; } // cập nhật tiền nợ của khách // Lấy ra tiền nợ đang có của khách hàng DataTable dt2 = ThamSo_BUS.SelectTienNoKH(int.Parse(txtMaKhachHang.Text)); UInt64 tienNoDangCo = UInt64.Parse(dt2.Rows[0].ItemArray[5].ToString()); UInt64 TienmuaLucdau = UInt64.Parse(soLuonglucdau.ToString()) * UInt64.Parse(txtDonGia.Text); UInt64 TienmuaLucThaydoi = UInt64.Parse(soLuongthaydoi.ToString()) * UInt64.Parse(txtDonGia.Text); UInt64 tienNoSaukhiCapNhat; // Tính lại tiền nợ của khách khi thay dởi số lượng sách if (TienmuaLucdau < TienmuaLucThaydoi) { tienNoSaukhiCapNhat = tienNoDangCo + (TienmuaLucThaydoi - TienmuaLucdau); } else { tienNoSaukhiCapNhat = tienNoDangCo - (TienmuaLucdau - TienmuaLucThaydoi); } KhachHang_DTO kh = new KhachHang_DTO(); kh.MaKhachHang = int.Parse(txtMaKhachHang.Text); kh.SoTienNo = tienNoSaukhiCapNhat; string ketQua2 = KhachHang_BUS.UpdateTienNo(kh); if (ketQua2 != "Success") { MessageBox.Show(ketQua2); return; } // Cập nhật số lượng sách CT_HoaDon_DTO ct = new CT_HoaDon_DTO(); ct.MaSach = int.Parse(txtMaSach.Text); ct.MaHD = int.Parse(txtMaHoaDonCT.Text); ct.SoLuong = uint.Parse(txtSoLuong.Text); ct.ThanhTien = TienmuaLucThaydoi; ketQua = HoaDon_BUS.SuaSoLuongSachKHMua(ct); if (ketQua != "Success") { MessageBox.Show(ketQua); return; } // Cap nhật lại Tổng tiền và Còn Lại HoaDon_DTO hd = new HoaDon_DTO(); hd.MaHD = int.Parse(txtMaHoaDon.Text); hd.TongTien = UInt64.Parse(HoaDon_BUS.TongThanhTien(hd).Rows[0].ItemArray[0].ToString()); hd.ThanhToan = 0; hd.ConLai = UInt64.Parse(HoaDon_BUS.TongThanhTien(hd).Rows[0].ItemArray[0].ToString()); HoaDon_BUS.UpdateTongTien(hd); HoaDon_BUS.UpdateConLai(hd); //HienThiDanhSachHoaDon(); HienThiDanhSachChiTietHoaDon(); }
private void btnBoSung_Click(object sender, EventArgs e) { // kiểm tra xem khách hàng đã thanh toán sách này chưa, nếu chưa mới cho phép thêm sách if (int.Parse(txtDaThanhToan.Text) != 0) { MessageBox.Show("Hóa đơn này đã thanh toán một phần tiền! \nBạn không được thêm sách!"); return; } DataTable dt = ThamSo_BUS.GetThamSoAll(); int noToiDa = int.Parse(dt.Rows[0].ItemArray[4].ToString()); int luongTonSauKhiBan = int.Parse(dt.Rows[0].ItemArray[2].ToString()); DataTable dt2 = ThamSo_BUS.SelectTienNoKH(int.Parse(txtMaKhachHang.Text)); int tienNo = int.Parse(dt2.Rows[0].ItemArray[5].ToString()); CT_HoaDon_DTO ct = new CT_HoaDon_DTO(); try { ct.MaHD = int.Parse(txtMaHoaDonCT.Text); } catch (FormatException) { MessageBox.Show("Mã hóa đơn không được để trống"); return; } try { ct.MaSach = int.Parse(txtMaSach.Text); } catch (FormatException) { MessageBox.Show("Mã sách phải được chọn từ danh sách"); btnMaSach_Click(sender, e); return; } try { ct.SoLuong = uint.Parse(txtSoLuong.Text); } catch (FormatException) { MessageBox.Show("Số lượng mua phải là số và không được để trống"); return; } catch (OverflowException) { MessageBox.Show("Số lượng không được âm"); return; } if (tienNo <= noToiDa) { DataTable dt3 = ThamSo_BUS.SelectSoLuongTon(ct.MaSach); uint luongTon = uint.Parse(dt3.Rows[0].ItemArray[4].ToString()); uint luongMua = 0; try { luongMua = uint.Parse(txtSoLuong.Text); } catch (FormatException) { MessageBox.Show("Số lượng mua phải là số và không được để trống"); txtSoLuong.Text = ""; txtThanhTien.Text = ""; return; } catch (OverflowException) { MessageBox.Show("Số lượng không được âm"); return; } ct.DonGia = UInt64.Parse(txtDonGia.Text); ct.ThanhTien = (UInt64)luongMua * ct.DonGia; txtThanhTien.Text = ct.ThanhTien.ToString(); if ((luongTon - luongMua) < luongTonSauKhiBan) { MessageBox.Show("Số lượng tồn của sách này sau khi bán đã nhỏ hơn quy định"); return; } string ketQua = HoaDon_BUS.ThemHoaDonChiTiet(ct); if (ketQua != "Success") { MessageBox.Show(ketQua); txtMaSach.Text = ""; txtSoLuong.Text = "0"; txtDonGia.Text = ""; return; } else { uint soluongtonnew = luongTon - luongMua; Sach_DTO s = new Sach_DTO(); s.MaSach = int.Parse(txtMaSach.Text); s.SoLuongTon = (int)soluongtonnew; ketQua = Sach_BUS.UpdateSoLuongTon(s); if (ketQua != "Success") { MessageBox.Show(ketQua); return; } HoaDon_DTO hd = new HoaDon_DTO(); hd.MaHD = ct.MaHD; hd.TongTien = UInt64.Parse(HoaDon_BUS.TongThanhTien(hd).Rows[0].ItemArray[0].ToString()); hd.ThanhToan = 0; hd.ConLai = UInt64.Parse(HoaDon_BUS.TongThanhTien(hd).Rows[0].ItemArray[0].ToString()); HoaDon_BUS.UpdateTongTien(hd); HoaDon_BUS.UpdateConLai(hd); KhachHang_DTO kh = new KhachHang_DTO(); kh.MaKhachHang = int.Parse(txtMaKhachHang.Text); kh.SoTienNo = UInt64.Parse(tienNo.ToString()) + ct.ThanhTien; string ketQua2 = KhachHang_BUS.UpdateTienNo(kh); if (ketQua2 != "Success") { MessageBox.Show(ketQua); return; } MessageBox.Show("Thành công"); HienThiDanhSachChiTietHoaDon(); } } else { MessageBox.Show("Tiền nợ quý khách đã quá quy định để mua sách"); } }