private void btn_LapPhieu_Click(object sender, EventArgs e)
        {
            if (txt_SoTienTra.Text != "")
                txt_SoTienConLai.Text = (uint.Parse(txt_SoTienNo.Text) - uint.Parse(txt_SoTienTra.Text)).ToString();
            PhieuNoDTO pn = new PhieuNoDTO();
            pn.MaPhieuBanHang = uint.Parse(txt_MaPhieuBanHang.Text);
            pn.NgayNo = dateTimePicker_NgayNo.Value;
            pn.NgayTra = dateTimePicker_NgayTra.Value;
            pn.TienConLai = uint.Parse(txt_SoTienConLai.Text);
            if (txt_SoTienTra.Text == "")
                pn.SoTienTra = 0;
            else
                pn.SoTienTra = uint.Parse(txt_SoTienTra.Text);
            if (PhieuNoBUS.ThemPhieuNo(pn))
            {
                DataTable dt = PhieuNoDAO.GetAllPhieuNo();
                pn.MaPhieuNo = Convert.ToUInt32(dt.Rows[dt.Rows.Count - 1]["MaPhieuNo"]);
                txt_MaPhieuNo.Text = pn.MaPhieuNo.ToString();
                btn_LapPhieu.Enabled = false;
                btn_XoaPhieu.Enabled = true;

                //Cập nhật Số tiền nợ
                PhieuBanHangDTO pbh = new PhieuBanHangDTO();
                pbh.MaPhieuBanHang = pn.MaPhieuBanHang;
                pbh.SoTienNo = pn.TienConLai;
                PhieuBanHangDAO.UpdateTienNo(pbh);
                if (txt_SoTienTra.Text != "")
                {
                    KhachHangDTO kh = new KhachHangDTO();
                    uint makh = uint.Parse(txt_MaKhachHang.Text);
                    DataTable dt2 = KhachHangDAO.SelectKhachHangByMaKhachHang(makh);
                    kh.TienNoHienTai = Convert.ToUInt32(dt2.Rows[0]["TienNoHienTai"]) - uint.Parse(txt_SoTienTra.Text);
                    kh.MaKhachHang = makh;
                    KhachHangDAO.UpdateTienNo(kh);
                }
                MessageBox.Show("Lập phiếu nợ thành công!!");
            }
            else
                MessageBox.Show("Thêm thất bại!!");
        }
        private void btn_LapBaoCao_Click(object sender, EventArgs e)
        {
            PhieuBanHangDTO pbh = new PhieuBanHangDTO();
            DataTable dt1 = PhieuBanHangDAO.SelectPhieuBanHang();
            dgv_DanhSachPhieuBanHang.DataSource = dt1;
            DataTable dt2 = PhieuDichVuDAO.SelectPhieuDichVu();
            dgv_DanhSachPhieuDichVu.DataSource = dt2;
            DataTable dt3 = PhieuMuaHangDAO.SelectPhieuMuaHang();
            dgv_DanhSachPhieuMuaHang.DataSource = dt3;
            DataTable dt4 = PhieuHangGiaCongDAO.SelectPhieuHangGiaCong();
            dgv_DanhSachPhieuHangGiaCong.DataSource = dt4;
            DataTable dt5 = PhieuChiDAO.SelectPhieuChi();
            dgv_DanhSachPhieuChi.DataSource = dt5;

            long tienthuphieubanhang = 0;
            for (int i = 0; i < dgv_DanhSachPhieuBanHang.Rows.Count; i++)
                tienthuphieubanhang += Convert.ToInt64(dgv_DanhSachPhieuBanHang.Rows[i].Cells[1].Value);
            txt_TienThuPhieuBanHang.Text = tienthuphieubanhang.ToString();

            long tienthuphieudichvu = 0;
            for (int i = 0; i < dgv_DanhSachPhieuDichVu.Rows.Count; i++)
                tienthuphieudichvu += Convert.ToInt64(dgv_DanhSachPhieuDichVu.Rows[i].Cells[1].Value);
            txt_TienThuPhieuDichVu.Text = tienthuphieudichvu.ToString();

            long tienchiphieumuahang = 0;
            for (int i = 0; i < dgv_DanhSachPhieuMuaHang.Rows.Count; i++)
                tienchiphieumuahang += Convert.ToInt64(dgv_DanhSachPhieuMuaHang.Rows[i].Cells[1].Value);
            txt_TienChiPhieuMuaHang.Text = tienchiphieumuahang.ToString();

            long tienchiphieuhanggiacong = 0;
            for (int i = 0; i < dgv_DanhSachPhieuHangGiaCong.Rows.Count; i++)
                tienchiphieuhanggiacong += Convert.ToInt64(dgv_DanhSachPhieuHangGiaCong.Rows[i].Cells[1].Value);
            txt_TienChiPhieuHangGiaCong.Text = tienchiphieuhanggiacong.ToString();

            long tienchiphieuchi = 0;
            for (int i = 0; i < dgv_DanhSachPhieuChi.Rows.Count; i++)
                tienchiphieuchi += Convert.ToInt64(dgv_DanhSachPhieuChi.Rows[i].Cells[1].Value);
            txt_TienChiPhieuChi.Text = tienchiphieuchi.ToString();

            long tongtienthu = tienthuphieubanhang + tienthuphieudichvu;
            txt_TongTienThu.Text = tongtienthu.ToString();
            long tongtienchi = tienchiphieumuahang + tienchiphieuhanggiacong + tienchiphieuchi;
            txt_TongTienChi.Text = tongtienchi.ToString();

            BaoCaoDoanhThuDTO bcdt = new BaoCaoDoanhThuDTO();
            DataTable dt6 = BaoCaoDoanhThuDAO.SelectAllBaoCaoDoanhThu();
            long tonquybandau = Convert.ToInt64(dt6.Rows[dt6.Rows.Count - 1]["TonQuyConLai"]);
            txt_TonQuyBanDau.Text = tonquybandau.ToString();
            long tonquyconlai = tonquybandau + tongtienthu - tongtienchi;
            txt_TonQuyConLai.Text = tonquyconlai.ToString();

            DanhSachKhoanThuDTO dskt = new DanhSachKhoanThuDTO();
            dskt.NgayThu = dateTimePicker_NgayBaoCao.Value;
            dskt.TienThuPhieuBanHang = tienthuphieubanhang;
            dskt.TienThuPhieuDichVu = tienthuphieudichvu;
            dskt.TongTienThu = tongtienthu;
            if (DanhSachKhoanThuBUS.ThemDanhSachKhoanThu(dskt))
            {
                DataTable dt7 = DanhSachKhoanThuDAO.SelectAllDanhSachKhoanThu();
                bcdt.MaDanhSachKhoanThu = Convert.ToInt32(dt7.Rows[dt7.Rows.Count - 1]["MaDanhSachKhoanThu"]);
            }

            DanhSachKhoanChiDTO dskc = new DanhSachKhoanChiDTO();
            dskc.NgayChi = dateTimePicker_NgayBaoCao.Value;
            dskc.TienChiPhieuMuaHang = tienchiphieumuahang;
            dskc.TienChiPhieuHangGiaCong = tienchiphieuhanggiacong;
            dskc.TienChiPhieuChi = tienchiphieuchi;
            dskc.TongTienChi = tongtienchi;
            if (DanhSachKhoanChiBUS.ThemDanhSachKhoanChi(dskc))
            {
                DataTable dt8 = DanhSachKhoanChiDAO.SelectAllDanhSachKhoanChi();
                bcdt.MaDanhSachKhoanChi = Convert.ToInt32(dt8.Rows[dt8.Rows.Count - 1]["MaDanhSachKhoanChi"]);
            }

            bcdt.NgayBaoCao = dateTimePicker_NgayBaoCao.Value;
            bcdt.TonQuyBanDau = long.Parse(txt_TonQuyBanDau.Text);
            bcdt.TonQuyConLai = long.Parse(txt_TonQuyConLai.Text);
            if (BaoCaoDoanhThuBUS.ThemBaoCaoDoanhThu(bcdt))
            {
                DataTable dt9 = BaoCaoDoanhThuDAO.SelectAllBaoCaoDoanhThu();
                txt_MaBaoCao.Text = Convert.ToString(dt9.Rows[dt9.Rows.Count - 1]["MaBaoCaoDoanhThu"]);
                MessageBox.Show("Lập báo cáo thành công!");
            }
            else
                MessageBox.Show("Lập báo cáo thất bại!");
        }
        private void btn_XoaPhieu_Click(object sender, EventArgs e)
        {
            PhieuNoDTO pn = new PhieuNoDTO();
            pn.MaPhieuNo = uint.Parse(txt_MaPhieuNo.Text);
            pn.MaPhieuBanHang = uint.Parse(txt_MaPhieuBanHang.Text);
            if (PhieuNoBUS.XoaPhieuNo(pn))
            {
                btn_XoaPhieu.Enabled = false;

                //Cập nhật Số tiền nợ
                PhieuBanHangDTO pbh = new PhieuBanHangDTO();
                pbh.MaPhieuBanHang = pn.MaPhieuBanHang;
                pbh.SoTienNo = uint.Parse(txt_SoTienNo.Text);
                PhieuBanHangDAO.UpdateTienNo(pbh);
                if (txt_SoTienTra.Text != "")
                {
                    KhachHangDTO kh = new KhachHangDTO();
                    uint makh = uint.Parse(txt_MaKhachHang.Text);
                    DataTable dt2 = KhachHangDAO.SelectKhachHangByMaKhachHang(makh);
                    kh.TienNoHienTai = Convert.ToUInt32(dt2.Rows[0]["TienNoHienTai"]) + uint.Parse(txt_SoTienTra.Text);
                    kh.MaKhachHang = makh;
                    KhachHangDAO.UpdateTienNo(kh);
                }
                TaoPhieuNoMoi();
                MessageBox.Show("Xóa phiếu nợ thành công!!");
            }
            else
                MessageBox.Show("Xóa thất bại!!");
        }
 private void txt_MaPhieuBanHang_KeyUp(object sender, KeyEventArgs e)
 {
     if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Down)
     {
         PhieuBanHangDTO pbh = new PhieuBanHangDTO();
         try
         {
             pbh.MaPhieuBanHang = uint.Parse(txt_MaPhieuBanHang.Text);
         }
         catch
         {
             MessageBox.Show("Mã phiếu bán hàng phải là số nguyên dương và không được để trống!!");
             return;
         }
         DataTable dt1 = PhieuBanHangDAO.SelectPhieuBanHangByMaPhieuBanHang(pbh);
         if (dt1 != null && dt1.Rows.Count > 0)
         {
             txt_MaKhachHang.Text = Convert.ToString(dt1.Rows[0]["MaKhachHang"]);
             txt_SoTienNo.Text = Convert.ToString(dt1.Rows[0]["SoTienNo"]);
             uint makh = uint.Parse(txt_MaKhachHang.Text);
             DataTable dt2 = KhachHangDAO.SelectKhachHangByMaKhachHang(makh);
             txt_TenKhachHang.Text = Convert.ToString(dt2.Rows[0]["TenKhachHang"]);
             txt_LoaiKhachHang.Text = Convert.ToString(dt2.Rows[0]["LoaiKhachHang"]);
             if (txt_LoaiKhachHang.Text == "Khách quen")
             {
                 txt_SoTienTra.ReadOnly = false;
                 ktra_maphieubanhang = true;
                 sotienno = uint.Parse(txt_SoTienNo.Text);
                 if (txt_SoTienTra.Text == "")
                     sotientra = 0;
                 txt_SoTienConLai.Text = (sotienno - sotientra).ToString();
             }
             else
             {
                 ktra_maphieubanhang = false;
                 MessageBox.Show("Chỉ được lập phiếu nợ đối với khách quen!!");
             }
         }
         else
         {
             MessageBox.Show("Mã phiếu bán hàng không có trong danh sách, xin vui lòng nhập lại!!");
             ktra_maphieubanhang = false;
         }
         if (ktra_maphieubanhang)
             btn_LapPhieu.Enabled = true;
         else
             btn_LapPhieu.Enabled = false;
     }
 }
 private void btn_XoaPhieu_Click(object sender, EventArgs e)
 {
     DataTable dt = PhieuBanHangDAO.GetAllPhieuBanHang();
     PhieuBanHangDTO pbh = new PhieuBanHangDTO();
     pbh.MaPhieuBanHang = Convert.ToUInt32(dt.Rows[dt.Rows.Count - 1]["MaPhieuBanHang"]);
     if (PhieuBanHangBUS.XoaPhieuBanHang(pbh) == false)
         MessageBox.Show("Xóa thất bại!!");
     else
     {
         ChiTietPhieuBanHangDTO ctpbh = new ChiTietPhieuBanHangDTO();
         ctpbh.MaPhieuBanHang = pbh.MaPhieuBanHang;
         if (ChiTietPhieuBanHangBUS.XoaChiTietPhieuBanHang(ctpbh) == false)
             MessageBox.Show("Xóa thất bại!!");
         else
         {
             btn_XoaPhieu.Enabled = false;
             SanPhamDTO sp = new SanPhamDTO();
             for (int i = 0; i < dgv_ChiTietPhieuBanHang.Rows.Count - 1; i++)
             {
                 // Cập nhật số lượng tồn trong bảng SANPHAM
                 sp.MaSanPham = Convert.ToUInt32(dgv_ChiTietPhieuBanHang.Rows[i].Cells[1].Value);
                 sp.SoLuongTon = Convert.ToUInt32(dgv_ChiTietPhieuBanHang.Rows[i].Cells[4].Value);
                 SanPhamDAO.UpdateSoLuongTon(sp);
                 btn_XoaPhieu.Enabled = false;
             }
             TaoPhieuBanHangMoi();
             MessageBox.Show("Xóa phiếu bán hàng thành công!!");
         }
     }
 }
 private void btn_LapPhieu_Click(object sender, EventArgs e)
 {
     bool ktra_lapphieubanhang = false;
     PhieuBanHangDTO pbh = new PhieuBanHangDTO();
     ChiTietPhieuBanHangDTO ctpbh = new ChiTietPhieuBanHangDTO();
     pbh.NgayBan = dateTimePicker_NgayBan.Value;
     pbh.NgayThanhToan = dateTimePicker_NgayThanhToan.Value.Date;
     pbh.TongCong = uint.Parse(txt_TongCong.Text);
     pbh.SoTienNo = uint.Parse(txt_TienNoSauKhiThanhToan.Text);
     try
     {
         pbh.MaKhachHang = uint.Parse(txt_MaKhachHang.Text);
     }
     catch
     {
         MessageBox.Show("Mã khách hàng không hợp lệ, vui lòng kiểm tra lại!!");
         return;
     }
     try
     {
         pbh.SoTienThanhToan = uint.Parse(txt_SoTienThanhToan.Text);
     }
     catch
     {
         MessageBox.Show("Số tiền thanh toán không hợp lệ, vui lòng kiểm tra lại!!");
         return;
     }
     if (PhieuBanHangBUS.ThemPhieuBanHang(pbh) == false)
         MessageBox.Show("Thêm thất bại!!");
     else
     {
         DataTable dt = PhieuBanHangDAO.GetAllPhieuBanHang();
         pbh.MaPhieuBanHang = Convert.ToUInt32(dt.Rows[dt.Rows.Count - 1]["MaPhieuBanHang"]);
         ctpbh.MaPhieuBanHang = pbh.MaPhieuBanHang;
         for (int i = 0; i < dgv_ChiTietPhieuBanHang.Rows.Count - 1; i++)
         {
             try
             {
                 ctpbh.MaSanPham = Convert.ToUInt32(dgv_ChiTietPhieuBanHang.Rows[i].Cells[1].Value);
             }
             catch
             {
                 MessageBox.Show("Mã sách trong danh sách không hợp lệ, vui lòng kiểm tra lại!");
                 return;
             }
             try
             {
                 ctpbh.SoLuongBan = Convert.ToUInt32(dgv_ChiTietPhieuBanHang.Rows[i].Cells[5].Value);
             }
             catch
             {
                 MessageBox.Show("Số lượng bán trong danh sách không hợp lệ, vui lòng kiểm tra lại!");
                 return;
             }
             try
             {
                 ctpbh.DonGiaBan = Convert.ToUInt32(dgv_ChiTietPhieuBanHang.Rows[i].Cells[6].Value);
             }
             catch
             {
                 MessageBox.Show("Đơn giá trong danh sách không hợp lệ, vui lòng kiểm tra lại!");
                 return;
             }
             ctpbh.ThanhTien = Convert.ToUInt32(dgv_ChiTietPhieuBanHang.Rows[i].Cells[7].Value);
             if (ChiTietPhieuBanHangBUS.ThemChiTietPhieuBanHang(ctpbh) == false)
             {
                 MessageBox.Show("Thêm thất bại");
             }
             else
             {
                 // Cập nhật số lượng tồn trong bảng SANPHAM
                 ktra_lapphieubanhang = true;
                 uint soluongtontruockhiban = Convert.ToUInt32(dgv_ChiTietPhieuBanHang.Rows[i].Cells[4].Value);
                 uint soluongban = Convert.ToUInt32(dgv_ChiTietPhieuBanHang.Rows[i].Cells[5].Value);
                 SanPhamDTO sp = new SanPhamDTO();
                 sp.MaSanPham = Convert.ToUInt32(dgv_ChiTietPhieuBanHang.Rows[i].Cells[1].Value);
                 sp.SoLuongTon = soluongtontruockhiban - soluongban;
                 SanPhamDAO.UpdateSoLuongTon(sp);
             }
         }
     }
     if (ktra_lapphieubanhang)
     {
         txt_MaPhieu.Text = pbh.MaPhieuBanHang.ToString();
         txt_MaKhachHang.ReadOnly = true;
         dgv_ChiTietPhieuBanHang.ReadOnly = true;
         btn_LapPhieu.Enabled = false;
         btn_XoaPhieu.Enabled = true;
         MessageBox.Show("Lập phiếu bán hàng thành công!!");
     }
 }
 public static bool ThemPhieuBanHang(PhieuBanHangDTO pbh)
 {
     PhieuBanHangDAO.Insert(pbh);
     return true;
 }
 public static bool XoaPhieuBanHang(PhieuBanHangDTO pbh)
 {
     PhieuBanHangDAO.Delete(pbh);
     return true;
 }
 public static void UpdateTienNo(PhieuBanHangDTO pbh)
 {
     string sql = "update PHIEUBANHANG set SoTienNo = " + pbh.SoTienNo + " where MaPhieuBanHang = " + pbh.MaPhieuBanHang + "";
     DataBase.ExcuNonQuery(sql);
 }
 public static DataTable SelectPhieuBanHangByNgayThanhToan(PhieuBanHangDTO pbh)
 {
     string sql = "select MaPhieuBanHang, TongCong from PHIEUBANHANG where NgayThanhToan = " + pbh.NgayThanhToan.Date + "";
     return DataBase.ExcuQuery(sql);
 }
 public static DataTable SelectPhieuBanHangByMaPhieuBanHang(PhieuBanHangDTO pbh)
 {
     string sql = "select * from PHIEUBANHANG where MaPhieuBanHang = " + pbh.MaPhieuBanHang + "";
     return DataBase.ExcuQuery(sql);
 }
 public static void Insert(PhieuBanHangDTO pbh)
 {
     string sql = "insert into PHIEUBANHANG(MaKhachHang, NgayBan, NgayThanhToan, TongCong, SoTienThanhToan, SoTienNo) values('" + pbh.MaKhachHang + "','" + pbh.NgayBan + "','" + pbh.NgayThanhToan + "','" + pbh.TongCong + "','" + pbh.SoTienThanhToan + "','" + pbh.SoTienNo + "')";
     DataBase.ExcuNonQuery(sql);
 }
 public static void Delete(PhieuBanHangDTO pbh)
 {
     string sql = "delete from PHIEUBANHANG where MaPhieuBanHang = " + pbh.MaPhieuBanHang + "";
     DataBase.ExcuNonQuery(sql);
 }