private void btn_CapNhat_Click(object sender, EventArgs e)
 {
     SanPhamDTO sp = new SanPhamDTO();
     sp.MaSanPham = masanpham;
     if (sp.MaSanPham != 0)
     {
         sp.TenSanPham = txt_TenSanPham.Text;
         sp.LoaiSanPham = ComboBox_LoaiSanPham.Text;
         if (SanPhamBUS.CapNhatSanPham(sp))
         {
             DanhSachSanPham_Load(sender, e);
             MessageBox.Show("Cập nhật thành công!!");
         }
         else
             MessageBox.Show("Cập nhật thất bại!!");
     }
     else
         MessageBox.Show("Bạn chưa chọn sản phẩm để cập nhật!!");
 }
 private void btn_Them_Click(object sender, EventArgs e)
 {
     if (txt_TenSanPham.Text == "" || txt_TenSanPham.Text == " ")
         MessageBox.Show("Chưa nhập tên sản phẩm!!");
     else if (ComboBox_LoaiSanPham.Text == "" || ComboBox_LoaiSanPham.Text == " ")
         MessageBox.Show("Chưa nhập loại sản phẩm!!");
     else
     {
         SanPhamDTO sp = new SanPhamDTO();
         sp.TenSanPham = txt_TenSanPham.Text;
         sp.LoaiSanPham = ComboBox_LoaiSanPham.Text;
         sp.SoLuongTon = 0;
         if (SanPhamBUS.ThemSanPham(sp))
         {
             DanhSachSanPham_Load(sender, e);
             masanpham = Convert.ToUInt32(dgv_DanhSachSanPham.Rows[dgv_DanhSachSanPham.Rows.Count - 2].Cells[0].Value);
             txt_MaSanPham.Text = masanpham.ToString();
             MessageBox.Show("Thêm thành công!!");
         }
         else
             MessageBox.Show("Thêm thất bại!!");
     }
 }
 public static bool XoaSanPham(SanPhamDTO sp)
 {
     SanPhamDAO.Delete(sp);
     return true;
 }
 public static bool ThemSanPham(SanPhamDTO sp)
 {
     SanPhamDAO.Insert(sp);
     return true;
 }
 public static bool CapNhatSanPham(SanPhamDTO sp)
 {
     SanPhamDAO.Update(sp);
     return true;
 }
 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!!");
     }
 }
        private void dgv_ChiTietPhieuBanHang_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            stt = e.RowIndex;
            dgv_ChiTietPhieuBanHang.Rows[stt].Cells[0].Value = (stt + 1).ToString();
            if (dgv_ChiTietPhieuBanHang.Rows[stt].Cells[1].Value == null)
            {
                dgv_ChiTietPhieuBanHang.Rows[stt].Cells[5].ReadOnly = true;
                dgv_ChiTietPhieuBanHang.Rows[stt].Cells[6].ReadOnly = true;
            }
            else
            {
                dgv_ChiTietPhieuBanHang.Rows[stt + 1].ReadOnly = true;
                uint masanpham;
                try
                {
                    masanpham = Convert.ToUInt32(dgv_ChiTietPhieuBanHang.Rows[stt].Cells[1].Value);
                }
                catch
                {
                    MessageBox.Show("Mã sản phẩm phải là số nguyên dương và không được để trống!!");
                    return;
                }
                if (dgv_ChiTietPhieuBanHang.Rows[stt].Cells[5].Value == null)
                    ktra_soluongban = false;
                if (dgv_ChiTietPhieuBanHang.Rows[stt].Cells[6].Value == null)
                    ktra_dongiaban = false;

                for (int i = 0; i < dgv_ChiTietPhieuBanHang.Rows.Count - 1; i++)
                    if (Convert.ToUInt32(dgv_ChiTietPhieuBanHang.Rows[stt].Cells[1].Value) == Convert.ToUInt32(dgv_ChiTietPhieuBanHang.Rows[i].Cells[1].Value) && i != stt)
                    {
                        ktra_trungmasanpham = false;
                        ktra_masanpham = false;
                        MessageBox.Show("Sản phẩm trên đã tồn tại trong danh sách phiếu nhập!!");
                        break;
                    }
                    else
                        ktra_trungmasanpham = true;

                if (ktra_trungmasanpham)
                {
                    SanPhamDTO sp = new SanPhamDTO();
                    sp.MaSanPham = masanpham;
                    DataTable dt = SanPhamDAO.SelectSanPhamByMaSanPham(sp);

                    if (dt != null && dt.Rows.Count > 0)
                    {

                        dgv_ChiTietPhieuBanHang.Rows[stt].Cells[2].Value = Convert.ToString(dt.Rows[0]["TenSanPham"]);
                        dgv_ChiTietPhieuBanHang.Rows[stt].Cells[3].Value = Convert.ToString(dt.Rows[0]["LoaiSanPham"]);
                        dgv_ChiTietPhieuBanHang.Rows[stt].Cells[4].Value = Convert.ToString(dt.Rows[0]["SoLuongTon"]);
                        uint soluongton = Convert.ToUInt32(dgv_ChiTietPhieuBanHang.Rows[stt].Cells[4].Value);
                        dgv_ChiTietPhieuBanHang.Rows[stt].Cells[5].ReadOnly = false;
                        dgv_ChiTietPhieuBanHang.Rows[stt].Cells[6].ReadOnly = false;
                        ktra_masanpham = true;
                    }
                    else
                    {
                        MessageBox.Show("Mã sản phẩm trên không có trong danh sách sản phẩm!!");
                        ktra_masanpham = false;
                    }
                }

                int soluongtontruockhiban = Convert.ToInt32(dgv_ChiTietPhieuBanHang.Rows[stt].Cells[4].Value);

                if (dgv_ChiTietPhieuBanHang.Rows[stt].Cells[5].Value != null)
                {
                    try
                    {
                        soluongban = Convert.ToUInt32(dgv_ChiTietPhieuBanHang.Rows[stt].Cells[5].Value);
                    }
                    catch
                    {
                        MessageBox.Show("Số lượng bán phải là số nguyên dương và không được để trống!!");
                        return;
                    }
                    if (soluongban == 0)
                    {
                        MessageBox.Show("Số lượng bán phải là số nguyên dương và không được để trống!!");
                        ktra_soluongban = false;
                    }
                    else
                        if (soluongban > soluongtontruockhiban)
                        {
                            MessageBox.Show("Số lượng bán không được vượt quá số lượng tồn của sản phẩm!!");
                            ktra_soluongban = false;
                        }
                        else
                            ktra_soluongban = true;
                }

                if (dgv_ChiTietPhieuBanHang.Rows[stt].Cells[6].Value != null)
                {
                    try
                    {
                        dongiaban = Convert.ToUInt32(dgv_ChiTietPhieuBanHang.Rows[stt].Cells[6].Value);
                    }
                    catch
                    {
                        MessageBox.Show("Đơn giá bán phải là số nguyên dương và không được để trống!!");
                        return;
                    }
                    if (dongiaban == 0)
                    {
                        MessageBox.Show("Đơn giá bán phải là số nguyên dương và không được để trống!!");
                        ktra_dongiaban = false;
                    }
                    else
                        ktra_dongiaban = true;
                }

                if (ktra_masanpham && ktra_soluongban && ktra_dongiaban)
                {
                    ktra_chitietphieubanhang = true;
                    long thanhtien = soluongban * dongiaban;
                    dgv_ChiTietPhieuBanHang.Rows[stt].Cells[7].Value = Convert.ToString(thanhtien);
                    dgv_ChiTietPhieuBanHang.Rows[stt + 1].ReadOnly = false;
                    dgv_ChiTietPhieuBanHang.Rows[dgv_ChiTietPhieuBanHang.Rows.Count - 1].Cells[5].ReadOnly = true;
                    dgv_ChiTietPhieuBanHang.Rows[dgv_ChiTietPhieuBanHang.Rows.Count - 1].Cells[6].ReadOnly = true;
                    txt_SoTienThanhToan.ReadOnly = false;
                }
                else
                    ktra_chitietphieubanhang = false;
                if (ktra_chitietphieubanhang && ktra_khachhang && ktra_sotienthanhtoan)
                    btn_LapPhieu.Enabled = true;
                else
                    btn_LapPhieu.Enabled = false;
            }

            long tongcong = 0;
            for (int i = 0; i < dgv_ChiTietPhieuBanHang.Rows.Count - 1; i++)
            {
                tongcong += Convert.ToInt64(dgv_ChiTietPhieuBanHang.Rows[i].Cells[7].Value);
            }
            txt_TongCong.Text = tongcong.ToString();
            txt_SoTienThanhToan.Text = tongcong.ToString();
        }
 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_Xoa_Click(object sender, EventArgs e)
 {
     SanPhamDTO sp = new SanPhamDTO();
     sp.MaSanPham = masanpham;
     if (sp.MaSanPham != 0)
     {
         if (SanPhamBUS.XoaSanPham(sp))
         {
             DanhSachSanPham_Load(sender, e);
             TaoMoi();
             MessageBox.Show("Xóa thành công!!");
         }
         else
             MessageBox.Show("Xóa thất bại!!");
     }
     else
         MessageBox.Show("Bạn chưa chọn sản phẩm để xóa!!");
 }
 public static void UpdateSoLuongTon(SanPhamDTO sp)
 {
     string sql = "update SANPHAM set SoLuongTon = " + sp.SoLuongTon + " where MaSanPham = " + sp.MaSanPham + "";
     DataBase.ExcuNonQuery(sql);
 }
 public static void Update(SanPhamDTO sp)
 {
     string sql = "Update SANPHAM set TenSanPham =('" + sp.TenSanPham + "'), LoaiSanPham =('" + sp.LoaiSanPham + "') where MaSanPham =" + sp.MaSanPham + "";
     DataBase.ExcuNonQuery(sql);
 }
 public static DataTable SelectSanPhamLikeTenSanPham(SanPhamDTO sp)
 {
     string sql = "select * from SANPHAM where TenSanPham like '%" + sp.TenSanPham + "%'";
     return DataBase.ExcuQuery(sql);
 }
 public static DataTable SelectSanPhamByMaSanPham(SanPhamDTO sp)
 {
     string sql = "select * from SANPHAM where MaSanPham = " + sp.MaSanPham;
     return DataBase.ExcuQuery(sql);
 }
 public static void Insert(SanPhamDTO sp)
 {
     string sql = "insert into SANPHAM(TenSanPham, LoaiSanPham, SoLuongTon) values ('" + sp.TenSanPham + "', '" + sp.LoaiSanPham + "', " + sp.SoLuongTon + ")";
     DataBase.ExcuNonQuery(sql);
 }
 public static void Delete(SanPhamDTO sp)
 {
     string sql = "delete from SANPHAM where MaSanPham = " + sp.MaSanPham + "";
     DataBase.ExcuNonQuery(sql);
 }