public void ThanhToanBill() { // thanh toán... đưa dữ liệu lai from chính, laod lại món ăn, tiền giờ.OK if (MessageBox.Show("Thanh Toán", "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.OK) { if (listChiTietMonAnThanhToan.Count > 0) { bool KT = true; int IDHoaDon = DAO_Setting.KiemtraGiaDien(frmDangNhap.NguoiDung.Idchinhanh) == 0 ? DAO_BanHang.IDHoaDon(frmBanHang.IDBan) : DAO_BanHang.IDHoaDon(frmBanHang2.IDBan); int IDBan = DAO_Setting.KiemtraGiaDien(frmDangNhap.NguoiDung.Idchinhanh) == 0 ? frmBanHang.IDBan : frmBanHang2.IDBan; int IDNhanVien = frmDangNhap.NguoiDung.Id; DateTime GioVao = DAO_ChiTietHoaDonChinh.LayGioVao(IDHoaDon); object ID = DAO_ChiTietHoaDonChinh.ThemMoiHoaDon(IDBan, IDNhanVien, GioVao, frmDangNhap.NguoiDung.Idchinhanh); if (listChiTietMonAnThanhToan.Count > 0 && KT == true && ID != null)// thanh toán món ăn { double TongTien = 0; foreach (ChiTietHoaDonB1 item in listChiTietMonAnThanhToan) { TongTien = TongTien + item.ThanhTien; double TrongLuong = item.TrongLuong; string MaHang = item.MaHangHoa; int SoLuong = item.SoLuong; int IDHangHoa = TrongLuong > 0 ? DAO_Setting.LayIDHangHoaTuChon(MaHang) : DAO_Setting.LayIDHangHoa(MaHang); double DonGia = item.DonGia; double ThanhTien = TrongLuong > 0 ? (SoLuong * (TrongLuong * DonGia)) : (SoLuong * DonGia); int IDDonViTinh = TrongLuong > 0 ? DAO_Setting.LayIDDonViTinhTuChon(MaHang) : DAO_Setting.LayIDDonViTinh(MaHang); //thêm vào chi tiết hóa đơn chính, cập nhật chi tiết hóa đơn củ, if Sl = nhau xóa hóa đơn củ // kiểm tra thêm chi tiết if (DAO_ChiTietHoaDonChinh.KiemTraHangHoa(Int32.Parse(ID.ToString()), IDHangHoa, IDBan, float.Parse(TrongLuong.ToString()), frmDangNhap.NguoiDung.Idchinhanh) == false) { DAO_ChiTietHoaDonChinh.ThemChiTietHoaDonChinh(Int32.Parse(ID.ToString()), IDHangHoa, SoLuong, DonGia, ThanhTien, IDBan, MaHang, IDDonViTinh, float.Parse(TrongLuong.ToString()), frmDangNhap.NguoiDung.Idchinhanh); } else { DAO_ChiTietHoaDonChinh.CapNhatChiTietHoaDon(Int32.Parse(ID.ToString()), SoLuong, ThanhTien, IDHangHoa, IDBan, frmDangNhap.NguoiDung.Idchinhanh); } //if (TrongLuong == 0) //{ // List<DTO_NguyenLieu> ListNguyenLieu = DAO_NguyenLieu.Instance.LoadNguyenLieu(IDHangHoa);// trừ nguyên liệu tồn kho // if (ListNguyenLieu.Count > 0) // { // foreach (DTO_NguyenLieu itemNL in ListNguyenLieu) // { // double SLTru = (itemNL.TrongLuong * SoLuong); // DAO_Setting.TruTonKho(itemNL.IDNguyenLieu, frmDangNhap.NguoiDung.Idchinhanh, SLTru); // // trừ tồn kho // } // } //} //else if (TrongLuong > 0) //{ // DAO_Setting.TruTonKho(IDHangHoa, frmDangNhap.NguoiDung.Idchinhanh, SoLuong * TrongLuong); //} } if (ID != null) { DAO_ChuyenBan.XoaChiTietBanCu(IDHoaDon, IDBan); foreach (ChiTietHoaDonA1 item in listChiTietMonAn) { string MaHang = item.MaHangHoa; int SoLuong = item.SoLuong; float DonGia = item.DonGia; float TrongLuong = item.TrongLuong; float ThanhTien = TrongLuong > 0 ? (SoLuong * (TrongLuong * DonGia)) : (SoLuong * DonGia); int IDHangHoa = TrongLuong > 0 ? DAO_Setting.LayIDHangHoaTuChon(MaHang) : DAO_Setting.LayIDHangHoa(MaHang); int IDDonViTinh = TrongLuong > 0 ? DAO_Setting.LayIDDonViTinhTuChon(MaHang) : DAO_Setting.LayIDDonViTinh(MaHang); DAO_GoiMon.ThemChiTietHoaDon(IDHoaDon, IDHangHoa, SoLuong, DonGia, ThanhTien, IDBan, MaHang, IDDonViTinh, TrongLuong, frmDangNhap.NguoiDung.Idchinhanh); } DAO_ChiTietHoaDonChinh.CapNhatTongTienHoaDonChinh(Int32.Parse(ID.ToString()), IDBan, TongTien, frmDangNhap.NguoiDung.Idchinhanh); } } if (KT == true && ID != null) { if (MyGetData != null) { MyGetData(1, IDHoaDon, IDBan); this.Close(); } if (MessageBox.Show("In hóa đơn", "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.OK) { // in hóa đớn, cập nhật hóa đơn DAO_ConnectSQL connect = new DAO_ConnectSQL(); // Tên máy in string NamePrinter = DAO_Setting.LayTenMayInBill(frmDangNhap.NguoiDung.Idchinhanh); // Lấy máy in bill.. int IDBill = DAO_Setting.ReportBill(frmDangNhap.NguoiDung.Idchinhanh); if (IDBill == 58) { rpHoaDonBanHang_581 rp = new rpHoaDonBanHang_581(); SqlDataSource sqlDataSource = rp.DataSource as SqlDataSource; sqlDataSource.Connection.ConnectionString += connect.ConnectString(); rp.Parameters["ID"].Value = ID; rp.Parameters["ID"].Visible = false; rp.Parameters["IDChiNhanh"].Value = frmDangNhap.NguoiDung.Idchinhanh; rp.Parameters["IDChiNhanh"].Visible = false; //rp.ShowPreviewDialog(); rp.Print(NamePrinter); } else { rpHoaDonBanHang1 rp = new rpHoaDonBanHang1(); SqlDataSource sqlDataSource = rp.DataSource as SqlDataSource; sqlDataSource.Connection.ConnectionString += connect.ConnectString(); rp.Parameters["ID"].Value = ID; rp.Parameters["ID"].Visible = false; rp.Parameters["IDChiNhanh"].Value = frmDangNhap.NguoiDung.Idchinhanh; rp.Parameters["IDChiNhanh"].Visible = false; //rp.ShowPreviewDialog(); rp.Print(NamePrinter); } } } } else { MessageBox.Show("Lỗi thanh toán. Danh sách hóa đơn trống?", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
public void ThanhToanTien() { int IDBanHT = IDBan; int IDHoaDonHT = DAO_BanHang.IDHoaDon(IDBanHT); if (IDBanHT == 0) { MessageBox.Show("Vui lòng chọn bàn để thanh toán.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error); } else if (DAO_BanHang.IDHoaDon(IDBanHT) == 0) { MessageBox.Show("Bàn chưa có hóa đơn để thanh toán.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error); } else if (float.Parse(txtKhachThanhToan.Text.ToString()) < float.Parse(txtKhachCanTra.Text.ToString())) { txtKhachThanhToan.Focus(); MessageBox.Show("Khách thanh toán không đủ số tiền.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { if (MessageBox.Show("Thanh Toán", "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.OK) { bool insert = true; List <DTO_ChiTietHoaDon> DanhSachHoaDon = DAO_ChiTietHoaDon.Instance.ChiTietHoaDon(IDHoaDonHT, frmDangNhap.NguoiDung.Idchinhanh); // đổi trạng thái hóa đơn + thêm vào CTHD chính, xóa tạm + Chi tiết giờ foreach (DTO_ChiTietHoaDon item in DanhSachHoaDon) { //thêm vào chi tiết hóa đơn chính int IDHangHoa = item.IDHangHoa; int SoLuong = item.SoLuong; double DonGia = item.DonGia; double ThanhTien = item.ThanhTien; string MaHangHoa = item.MaHangHoa; int IDDonViTinh = item.IDDonViTinh; float TrongLuong = item.TrongLuong; //thêm chi tiết hóa đơn chính, - nguyên liệu hàng hóa if (DAO_ChiTietHoaDonChinh.ThemChiTietHoaDonChinh(IDHoaDonHT, IDHangHoa, SoLuong, DonGia, ThanhTien, IDBanHT, MaHangHoa, IDDonViTinh, TrongLuong, frmDangNhap.NguoiDung.Idchinhanh) == false) { insert = false; } //else //{ // //if (TrongLuong == 0) // //{ // // // trừ tồn kho nguyên liệu chế biến // // List<DTO_NguyenLieu> ListNguyenLieu = DAO_NguyenLieu.Instance.LoadNguyenLieu(IDHangHoa); // // if (ListNguyenLieu.Count > 0) // // { // // foreach (DTO_NguyenLieu itemNL in ListNguyenLieu) // // { // // double SLTru = (itemNL.TrongLuong * SoLuong); // // DAO_Setting.TruTonKho(itemNL.IDNguyenLieu, frmDangNhap.NguoiDung.Idchinhanh, SLTru); // // // trừ tồn kho // // } // // } // //} // //else if (TrongLuong > 0) // //{ // // //trừ nguyên liệu tự chọn // // DAO_Setting.TruTonKho(IDHangHoa, frmDangNhap.NguoiDung.Idchinhanh, SoLuong * TrongLuong); // //} //} } if (insert == true) { // xóa chi tiết hóa đơn temp, if (DAO_ChiTietHoaDonChinh.XoaChiTietHoaDonTemp(IDHoaDonHT, frmDangNhap.NguoiDung.Idchinhanh, IDBanHT) == true) { // cập nhật trạng thái hóa đơn đã thanh toán, đổi trạng thái bàn int IDNhanVien = frmDangNhap.NguoiDung.Id; double KhachThanhToan = double.Parse(txtKhachThanhToan.Text.ToString()); double TienThua = double.Parse(txtTienThoi.Text.ToString()); double GiamGia = double.Parse(txtTienSauGiamGia.Text.ToString()); double KhachCanTra = double.Parse(txtKhachCanTra.Text.ToString()); string HinhThucThanhToan = cmbHinhThucGiamGia.Text.ToString(); double TienGiamGia = double.Parse(txtTienSauGiamGia.Text.ToString()); double TyLeGiamGia = double.Parse(txtGiamGia.Text.ToString()); if (DAO_ChiTietHoaDonChinh.CapNhatHoaDonChinh(IDHoaDonHT, IDBanHT, IDNhanVien, KhachThanhToan, TienThua, KhachCanTra, HinhThucThanhToan, GiamGia, TyLeGiamGia, TienGiamGia, frmDangNhap.NguoiDung.Idchinhanh) == true && DAO.DAO_BAN.XoaBanVeMatDinh(IDBanHT, frmDangNhap.NguoiDung.Idchinhanh) == true)// thành công { txtKhachThanhToan.Text = "0"; txtTienThoi.Text = "0"; cmbHinhThucGiamGia.SelectedIndex = 0; txtTienSauGiamGia.Text = "0"; txtKhachCanTra.Text = "0"; DanhSachBan(); HienThiHoaDon(IDBanHT); if (MessageBox.Show("In hóa đơn", "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.OK) { // in hóa đớn, cập nhật hóa đơn DAO_ConnectSQL connect = new DAO_ConnectSQL(); // Tên máy in string NamePrinter = DAO_Setting.LayTenMayInBill(frmDangNhap.NguoiDung.Idchinhanh); // Lấy máy in bill.. int IDBill = DAO_Setting.ReportBill(frmDangNhap.NguoiDung.Idchinhanh); //for (int i = 1; i <= 2; i++) //{ if (IDBill == 58) { rpHoaDonBanHang_581 rp = new rpHoaDonBanHang_581(); SqlDataSource sqlDataSource = rp.DataSource as SqlDataSource; sqlDataSource.Connection.ConnectionString += connect.ConnectString(); rp.Parameters["ID"].Value = IDHoaDonHT; rp.Parameters["ID"].Visible = false; rp.Parameters["IDChiNhanh"].Value = frmDangNhap.NguoiDung.Idchinhanh; rp.Parameters["IDChiNhanh"].Visible = false; //rp.ShowPreviewDialog(); rp.Print(NamePrinter); } else { rpHoaDonBanHang1 rp = new rpHoaDonBanHang1(); SqlDataSource sqlDataSource = rp.DataSource as SqlDataSource; sqlDataSource.Connection.ConnectionString += connect.ConnectString(); rp.Parameters["ID"].Value = IDHoaDonHT; rp.Parameters["ID"].Visible = false; rp.Parameters["IDChiNhanh"].Value = frmDangNhap.NguoiDung.Idchinhanh; rp.Parameters["IDChiNhanh"].Visible = false; //rp.ShowPreviewDialog(); rp.Print(NamePrinter); } } //} } } } } } }