Exemple #1
0
        public async Task <int> Them(TienIchRequest model)
        {
            TienIch tienich = new TienIch();

            tienich.NoiDungHienThi = model.NoiDungHienThi;
            tienich.ID_NgonNgu     = model.ID_NgonNgu;
            tienich.Delete         = model.Delete;
            tienich.CreateBy       = model.CreateBy;
            tienich.ID_TienIch     = model.ID_TienIch;
            tienich.ModifyBy       = model.ModifyBy;
            tienich.CreateDate     = DateTime.Now;
            _context.TienIchs.Add(tienich);
            await _context.SaveChangesAsync();

            return(tienich.ID_TienIch);
        }
Exemple #2
0
        public void HoanVi_TraVe2PhanTuDaHoanVi()
        {
            //Given
            int a = 3;
            int b = 4;

            int expected_a = 4;
            int expected_b = 3;

            //When
            TienIch.HoanVi(ref a, ref b);

            //Then
            Assert.Equal(expected_a, a);
            Assert.Equal(expected_b, b);
        }
        private void btnXemBaoCao_Click(object sender, EventArgs e)
        {
            string thang = TienIch.XoaTatCaKhoangTrang(cbxThang.Text);

            if (string.IsNullOrEmpty(thang))
            {
                TienIch.ShowCanhBao("Cảnh Báo", "Không được để trống tháng");
                cbxThang.SelectedIndex = 1;
            }
            else
            {
                if (thang.All(char.IsDigit))
                {
                    string sqlCommand = "Select hdn.Id, nv.Ten, ncc.Ten, hdn.NgayNhap, hdn.TongTien "
                                        + " from HoaDonNhap hdn, NhanVien nv, NhaCungCap ncc " +
                                        " where hdn.IdNhanVien=nv.Id and hdn.IdNhaCungCap=ncc.Id " +
                                        " and MONTH(hdn.NgayNhap)=" + thang;
                    DataTable tbl = DataBaseFunction.GetDataToTable(sqlCommand);
                    dgvHoaDonNhap.DataSource = null;

                    dgvHoaDonNhap.DataSource  = tbl;
                    dgvHoaDonNhap.MultiSelect = false;

                    foreach (DataGridViewColumn col in dgvHoaDonNhap.Columns)
                    {
                        col.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                        col.ReadOnly     = true;
                    }

                    dgvHoaDonNhap.Columns[0].HeaderText = "Mã Hóa Đơn";
                    dgvHoaDonNhap.Columns[1].HeaderText = "Nhân Viên";
                    dgvHoaDonNhap.Columns[2].HeaderText = "Nhà Cung Cấp";
                    dgvHoaDonNhap.Columns[3].HeaderText = "Ngày Nhập";
                    dgvHoaDonNhap.Columns[4].HeaderText = "Tổng Tiền";

                    foreach (DataGridViewRow row in dgvHoaDonNhap.Rows)
                    {
                        row.Cells[3].Value = DateTime.Parse(row.Cells[3].Value.ToString()).ToString("dd - MM - yyyy");
                    }
                }
                else
                {
                    cbxThang.SelectedIndex = 1;
                    TienIch.ShowCanhBao("Cảnh Báo", "Vui lòng chọn tháng từ 1 tới 12.");
                }
            }
        }
Exemple #4
0
        private void tbSoLuong_Leave(object sender, EventArgs e)
        {
            string soLuongBanRa = TienIch.XoaTatCaKhoangTrang(tbSoLuong.Text);

            if (soLuongBanRa.All(char.IsDigit))
            {
                int soLuong;
                if (Int32.TryParse(soLuongBanRa, out soLuong))
                {
                    if (soLuong < 1)
                    {
                        TienIch.ShowCanhBao("Cảnh Báo", "Số Lượng Bán ra phải là số tự nhiên lớn hơn 0");
                        tbSoLuong.Focus();
                        tbSoLuong.SelectionLength = tbSoLuong.Text.Length;
                    }
                    else
                    {
                        tbSoLuong.Text = soLuong.ToString();
                        if (!string.IsNullOrEmpty(cbxTenThuoc.Text))
                        {
                            int soLuongThuocTrongKho =
                                DataBaseFunction.GetItemId("Select SoLuongHienCo From Thuoc where Ten=N'" + cbxTenThuoc.Text + "'");
                            int SoLuongBanRa = soLuong;
                            if ((soLuongThuocTrongKho - SoLuongBanRa) < 0)
                            {
                                TienIch.ShowCanhBao("Cảnh Báo", "Số lượng bán ra vượt quá số lượng thuốc trong kho.\nTrong kho hiện còn: " + soLuongThuocTrongKho);
                                tbSoLuong.Focus();
                                tbSoLuong.SelectionLength = tbSoLuong.Text.Length;
                            }
                            else
                            {
                            }
                        }
                        else
                        {
                        }
                    }
                }
            }
            else
            {
                TienIch.ShowCanhBao("Cảnh Báo", "Số Lượng Hiện Có phải là số tự nhiên lớn hơn hoặc bằng 0");
                tbSoLuong.Focus();
                tbSoLuong.SelectionLength = tbSoLuong.Text.Length;
            }
        }
 //sự kiện xảy ra khi người dùng click vào 1 ô trong bảng(chưa chỉnh sửa)
 private void dgvNuocSanXuat_CellClick(object sender, DataGridViewCellEventArgs e)
 {
     try
     {
         //Nếu ô đang chọn thuộc hàng chứa bản ghi có dữ liệu hợp lý
         if (e.RowIndex > -1 && (e.RowIndex < SoLuonBanGhi ||
                                 // (trường 'tên đơn vị' không bị bỏ trống)
                                 // thì select cả hàng đó luôn
                                 !string.IsNullOrEmpty(TienIch.XoaKhoangTrang(dgvNuocSanXuat.Rows[e.RowIndex].Cells[1].Value.ToString()))))
         {
             dgvNuocSanXuat.Rows[e.RowIndex].Selected = true;
         }
     }
     catch (Exception err)
     {
         TienIch.ShowLoi("Lỗi", err.Message);
     }
 }
        private void editGioiTinhNhanVien(DataGridViewCellEventArgs e)
        {
            string gioiTinh = TienIch.ToUpperFistCharacter(TienIch.XoaTatCaKhoangTrang(dgvNhanVien.Rows[e.RowIndex].Cells[5].Value.ToString()));

            if (string.IsNullOrEmpty(gioiTinh))
            {
                //người dùng xóa sạch bản ghi giới tính
                // thông báo cho người dùng không được để trống ô này
                TienIch.ShowCanhBao("Cảnh Báo",
                                    "Không được để trống ô giới tính của nhân viên. \nCó thể nhập vào 'Nam' - 'nam' hoặc 'Nữ' - 'nữ'\nĐể cập nhật giới tính cho nhân viên");
                //cập nhật lại giới tính cho nhân viên ở phía giao diện người dùng
                dgvNhanVien.Rows[e.RowIndex].Cells[5].Value = editGioiTinh;
                TienIch.ShowThanhCong("Khôi phục thành công",
                                      "Đã khôi phục lại giới tính của nhân viên " + dgvNhanVien.Rows[e.RowIndex].Cells[1].Value.ToString());
            }
            else
            {
                if (gioiTinh.Equals(editGioiTinh))
                {
                    //Không có gì khác cả
                    // set lại dữ liệu phía giao diện người dùng
                    dgvNhanVien.Rows[e.RowIndex].Cells[5].Value = gioiTinh;
                }
                else
                {
                    //dữ liệu người dùng mới nhập khác với dữ liệu ban đầu
                    // cập nhật lại vào trong database
                    bool gender = false;
                    if (gioiTinh.Equals("Nam"))
                    {
                        gender = true;
                    }

                    updateEditedCellValueToDB("GioiTinh",
                                              gender == true ? "1" : "0",
                                              Int32.Parse(dgvNhanVien.Rows[e.RowIndex].Cells[0].Value.ToString()));
                    //update lại data ở phía giao diện người dùng
                    dgvNhanVien.Rows[e.RowIndex].Cells[5].Value = gioiTinh;
                    TienIch.ShowThanhCong("Cập nhật thành công",
                                          "Đã cập nhật thành công giới tính cho nhân viên " + dgvNhanVien.Rows[e.RowIndex].Cells[1].Value.ToString() + " từ " + editGioiTinh + " sang " + gioiTinh);
                }
            }
            editGioiTinh = "";
        }
        private void editDiaChiNhanVien(DataGridViewCellEventArgs e)
        {
            string diaChi = dgvNhanVien.Rows[e.RowIndex].Cells[6].Value.ToString();

            if (string.IsNullOrEmpty(TienIch.XoaKhoangTrang(diaChi)))
            {
                if (string.IsNullOrEmpty(editDiaChi))
                {
                }
                else
                {
                    //trước đó bản ghi này có địa chỉ và hiện tại ô địa chỉ bị xóa trắng
                    DialogResult result = TienIch.ShowXacThuc("Yêu cầu xác thực",
                                                              "Bạn vừa xóa hoàn toàn địa chỉ của nhân viên " + dgvNhanVien.Rows[e.RowIndex].Cells[1].Value.ToString() + ". Bạn có muốn lưu thay đổi này hay không?");
                    if (result == DialogResult.Yes)
                    {
                        //update lại data trong db
                        updateEditedCellValueToDB("DiaChi",
                                                  "",
                                                  Int32.Parse(dgvNhanVien.Rows[e.RowIndex].Cells[0].Value.ToString()));
                        //update lại giá trị cho ô địa chỉ ở phía giao diện người dùng
                        dgvNhanVien.Rows[e.RowIndex].Cells[6].Value = "";
                        TienIch.ShowThanhCong("Cập nhật thành công", "Đã xóa hoàn toàn địa chỉ của nhân viên này!");
                    }
                    else
                    {
                        dgvNhanVien.Rows[e.RowIndex].Cells[6].Value = editDiaChi;
                        TienIch.ShowThanhCong("Khôi phục thành công",
                                              "Đã khôi phục lại địa chỉ của nhân viên" + dgvNhanVien.Rows[e.RowIndex].Cells[1].Value.ToString() + " về như cũ.");
                    }
                }
            }
            else
            {
                //update lại data trong db
                updateEditedCellValueToDB("DiaChi",
                                          TienIch.ToUpperFistCharacter(dgvNhanVien.Rows[e.RowIndex].Cells[6].Value.ToString()),
                                          Int32.Parse(dgvNhanVien.Rows[e.RowIndex].Cells[0].Value.ToString()));
                //update lại giá trị cho ô tên ở phía giao diện người dùng
                dgvNhanVien.Rows[e.RowIndex].Cells[6].Value = TienIch.ToUpperFistCharacter(dgvNhanVien.Rows[e.RowIndex].Cells[6].Value.ToString());
            }
            //set lại biến để dùng cho lần edit sau
            editDiaChi = "";
        }
Exemple #8
0
        private void cbxNhanVien_Leave(object sender, EventArgs e)
        {
            string maNhanVien = TienIch.XoaTatCaKhoangTrang(cbxNhanVien.Text);

            int idNhanVien;

            if (Int32.TryParse(maNhanVien, out idNhanVien))
            {
                cbxNhanVien.Text = idNhanVien.ToString();
            }
            else
            {
                TienIch.ShowCanhBao("Cảnh Báo", "Vui lòng chọn mã nhân viên có sẵn.");
                if (cbxNhanVien.Items.Count > 0)
                {
                    cbxNhanVien.SelectedIndex = 0;
                }
            }
        }
 private void btnThem_Click(object sender, EventArgs e)
 {
     //ten khong duoc de trong
     if (string.IsNullOrEmpty(tbTen.Text))
     {
         TienIch.ShowCanhBao("Cảnh báo", "Không được để trống trường tên");
     }
     else
     {
         int    gender = rbNam.Checked == true ? 1 : 0;
         string sqlInsertNhanVienMoi = "Insert into NhanVien (IdChuyenMon,IdTrinhDo,Ten,NgaySinh,GioiTinh,DiaChi,DienThoai) values (" +
                                       cbxChuyenMon.SelectedValue + ", " + cbxTrinhDo.SelectedValue
                                       + ", N'" + tbTen.Text + "', '" + dtpNgaySinh.Value.ToString("yyyy-MM-dd HH:mm:ss.fff") + "' ," + gender
                                       + ", N'" + tbDiaChi.Text + "', '" + tbSoDienThoai.Text + "')";
         DataBaseFunction.ExcuteSQL(sqlInsertNhanVienMoi);
         //Load lại dữ liệu trong bảng
         LoadDataToGridView();
     }
 }
        private void cbxMonthTo_Leave(object sender, EventArgs e)
        {
            string cbxValue = TienIch.ToTitleCase(cbxMonthTo.Text);

            if (string.IsNullOrEmpty(cbxValue))
            {
                cbxMonthTo.SelectedIndex = 1;
            }
            else
            {
                if (cbxMonthTo.FindString(cbxValue) >= 0)
                {
                    //User chọn bản ghi có trong csdl
                }
                else
                {
                    TienIch.ShowCanhBao("Cảnh Báo", "Hãy chọn tháng từ 1 tới 12");
                }
            }
        }
Exemple #11
0
        public async Task <int> Sua(TienIchRequest model)
        {
            TienIch tienich = _context.TienIchs.Where(a => a.ID_TienIch == model.ID_TienIch).FirstOrDefault();

            if (tienich == null)
            {
                throw new Exception("Tiên ích không tồn tại");
            }
            tienich.NoiDungHienThi   = model.NoiDungHienThi;
            tienich.ID_NgonNgu       = model.ID_NgonNgu;
            tienich.Delete           = model.Delete;
            tienich.CreateBy         = model.CreateBy;
            tienich.ID_TienIch       = model.ID_TienIch;
            tienich.ModifyBy         = model.ModifyBy;
            tienich.LastModifiedDate = DateTime.Now;
            _context.TienIchs.Update(tienich);
            await _context.SaveChangesAsync();

            return(tienich.ID_TienIch);
        }
Exemple #12
0
        private void cbxKhachHang_Leave(object sender, EventArgs e)
        {
            string cbxValue = TienIch.ToTitleCase(TienIch.XoaKhoangTrang(cbxKhachHang.Text)).ToLower();

            if (string.IsNullOrEmpty(cbxValue))
            {
                TienIch.ShowCanhBao("Cảnh báo",
                                    "Không được để trống thông tin này!\nCó thể gõ mới Tên Khách Hàng nếu Khách Hàng cần tim không có ở đây");
                if (cbxKhachHang.Items.Count > 0)
                {
                    cbxKhachHang.SelectedIndex = 0;
                }
            }
            else
            {
                if (cbxKhachHang.FindString(cbxValue) >= 0)
                {
                    //User chọn bản ghi có trong csdl
                }
                else
                {
                    DialogResult result = TienIch.ShowXacThuc("Cảnh Báo", "Bạn đang chọn Khách Hàng mới chưa có trong csdl\nBạn Có muốn thêm mới Khách Hàng này vào trong csdl?");
                    if (result == DialogResult.Yes)
                    {
                        //Thêm mới bản ghi vào trong db
                        string sqlInsertDangDieuChe = "Insert into KhachHang (Ten) values (N'" + cbxValue + "')";
                        DataBaseFunction.ExcuteSQL(sqlInsertDangDieuChe);
                        LoadDataToCbxKhachHang();
                        cbxKhachHang.SelectedIndex = cbxKhachHang.Items.Count - 1;
                        TienIch.ShowThanhCong("Thành Công", "Thêm mới thành công");
                    }
                    else if (result == DialogResult.No)
                    {
                        //xóa text trên ô combobox
                        cbxKhachHang.SelectedIndex = 0;
                        TienIch.ShowThanhCong("Rest data",
                                              "Dữ liệu ô Khách Hàng đã bị xóa do bạn không muốn thêm mới Khách Hàng '" + cbxValue + "' vào hệ thống.");
                    }
                }
            }
        }
Exemple #13
0
        private void cbxThuoc_Leave(object sender, EventArgs e)
        {
            string cbxValue = TienIch.ToTitleCase(TienIch.XoaKhoangTrang(cbxThuoc.Text));

            if (string.IsNullOrEmpty(cbxValue))
            {
                cbxThuoc.Text = "";
            }
            else
            {
                if (cbxThuoc.FindString(cbxValue) >= 0)
                {
                    //User chọn bản ghi có trong csdl
                }
                else
                {
                    TienIch.ShowCanhBao("Cảnh Báo", "Bạn đang chọn tên thuốc mới chưa có trong csdl");
                    cbxThuoc.SelectedIndex = 0;
                }
            }
        }
        private void editTenNhanVien(DataGridViewCellEventArgs e)
        {
            string ten = dgvNhanVien.Rows[e.RowIndex].Cells[1].Value.ToString();

            if (string.IsNullOrEmpty(TienIch.XoaKhoangTrang(ten)))
            {
                TienIch.ShowCanhBao("Dữ liệu không phù hợp", "Không được để trống tên Nhân Viên");
                dgvNhanVien.Rows[e.RowIndex].Cells[1].Value = editTen;
            }
            else
            {
                //update lại data trong db
                updateEditedCellValueToDB("Ten",
                                          TienIch.ToTitleCase(dgvNhanVien.Rows[e.RowIndex].Cells[1].Value.ToString()),
                                          Int32.Parse(dgvNhanVien.Rows[e.RowIndex].Cells[0].Value.ToString()));
                //update lại giá trị cho ô tên ở phía giao diện người dùng
                dgvNhanVien.Rows[e.RowIndex].Cells[1].Value = TienIch.ToTitleCase(dgvNhanVien.Rows[e.RowIndex].Cells[1].Value.ToString());
            }
            //set lại biến để dùng cho lần edit sau
            editTen = "";
        }
        private void editTrinhDoNhanVien(DataGridViewCellEventArgs e)
        {
            string trinhDo = TienIch.XoaKhoangTrang(dgvNhanVien.Rows[e.RowIndex].Cells[3].Value.ToString()).ToLower();

            if (string.IsNullOrEmpty(trinhDo))
            {
                TienIch.ShowCanhBao("Cảnh báo", "Không được để trống thông tin này!\nCó thể gõ mới trình độ nếu trình độ bạn cần không có ở đây");
                dgvNhanVien.Rows[e.RowIndex].Cells[3].Value = editChuyenMonTrinhDo;
            }
            else
            {
                if (cbxTrinhDo.FindString(trinhDo) >= 0)
                {
                    //User chọn bản ghi có trong csdl
                    dgvNhanVien.Rows[e.RowIndex].Cells[3].Value = trinhDo;
                }
                else
                {
                    DialogResult result = TienIch.ShowXacThuc("Cảnh Báo", "Bạn đang chọn Trình Độ mới chưa có trong csdl\n Bạn Có muốn thêm mới Trình Độ này vào trong csdl?");
                    if (result == DialogResult.Yes)
                    {
                        //Thêm mới bản ghi vào trong db
                        string sqlInsertTrinhDo = "Insert into TrinhDo (Ten) values (N'" + trinhDo + "')";
                        DataBaseFunction.ExcuteSQL(sqlInsertTrinhDo);
                        LoadDataToCbxTrinhDo();
                        cbxTrinhDo.SelectedIndex = cbxTrinhDo.Items.Count - 1;
                        TienIch.ShowThanhCong("Thành Công", "Thêm mới thành công");
                        //cap nhat o phia giao dien nguoi dung
                        dgvNhanVien.Rows[e.RowIndex].Cells[3].Value = trinhDo;
                    }
                    else if (result == DialogResult.No)
                    {
                        //xóa text trên ô combobox
                        dgvNhanVien.Rows[e.RowIndex].Cells[3].Value = editChuyenMonTrinhDo;
                        TienIch.ShowThanhCong("Rest data", "Dữ liệu ô trình độ đã bị xóa do bạn không muốn thêm mới trình độ này vào hệ thống.");
                    }
                }
            }
            editChuyenMonTrinhDo = "";
        }
        private void cbxHoaDonNhap_Leave(object sender, EventArgs e)
        {
            string cbxValue = TienIch.ToTitleCase(cbxHoaDonNhap.Text);

            if (string.IsNullOrEmpty(cbxValue))
            {
                TienIch.ShowCanhBao("Cảnh báo", "Không được để trống thông tin này!");
                cbxHoaDonNhap.SelectedIndex = 0;
            }
            else
            {
                if (cbxHoaDonNhap.FindString(cbxValue) >= 0)
                {
                    //User chọn bản ghi có trong csdl
                }
                else
                {
                    TienIch.ShowCanhBao("Cảnh Báo", "Bạn đang nhập mã hóa đơn bán chưa có trong csdl");
                    cbxHoaDonNhap.SelectedIndex = 0;
                }
            }
        }
        private void btnThemMoiThuoc_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(tbTen.Text))
            {
                TienIch.ShowCanhBao("Cảnh Báo", "Không được để trống tên thuốc!");
                tbTen.Focus();
            }
            else
            {
                QuanLyTiemThuocFinalVersion.Model.Entity.Thuoc thuoc = new Model.Entity.Thuoc
                {
                    Ten           = tbTen.Text,
                    IdDonVi       = Int32.Parse(cbxDonViTinh.SelectedValue.ToString()),
                    IdNuocSanXuat = Int32.Parse(cbxNuocSanXuat.SelectedValue.ToString()),
                    IdDangDieuChe = Int32.Parse(cbxDangDieuChe.SelectedValue.ToString()),
                    ThanhPhan     = tbThanhPhan.Text,
                    SoLuongHienCo = Int32.Parse(tbSoLuonHienCo.Text),
                    GiaBan        = float.Parse(lblGiaBan.Text.Replace(" đ", "")),
                    DonGiaNhap    = float.Parse(tbGiaNhap.Text),
                    ChongChiDinh  = tbChongChiDinh.Text,
                };

                DialogResult result = TienIch.ShowXacThuc("Xác Nhận", "Bạn có chắc chắn muốn thêm thuốc này vào trong tiệm chứ?");
                if (result == DialogResult.Yes)
                {
                    //Them Thuoc Vao Co So Du Lieu
                    AddNewDrugToStore(thuoc);

                    //Them Cong Dung Vao Bang Cong Dung
                    AddCongDungChoThuoc(thuoc.Ten);
                }
                else
                {
                }
            }
        }
Exemple #18
0
        private void cbxNhaCungCap_Leave(object sender, EventArgs e)
        {
            string cbxValue = TienIch.ToTitleCase(cbxNhaCungCap.Text);

            if (string.IsNullOrEmpty(cbxValue))
            {
                TienIch.ShowCanhBao("Cảnh báo", "Không được để trống thông tin này!\nCó thể gõ mới nhà cung cấp nếu nhà cung cấp bạn cần không có ở đây");
                cbxNhaCungCap.SelectedIndex = 0;
            }
            else
            {
                if (cbxNhaCungCap.FindString(cbxValue) >= 0)
                {
                    //User chọn bản ghi có trong csdl
                }
                else
                {
                    DialogResult result = TienIch.ShowXacThuc("Cảnh Báo", "Bạn đang chọn Nhà Cung Cấp mới chưa có trong csdl\n Bạn Có muốn thêm mới Nhà Cung Cấp này vào trong csdl?");
                    if (result == DialogResult.Yes)
                    {
                        //Thêm mới bản ghi vào trong db
                        string sqlInsertTrinhDo = "Insert into NhaCungCap (Ten) values (N'" + cbxValue + "')";
                        DataBaseFunction.ExcuteSQL(sqlInsertTrinhDo);
                        LoadDataToCbxNhaCungCap();
                        cbxNhaCungCap.SelectedIndex = cbxNhaCungCap.Items.Count - 1;
                        TienIch.ShowThanhCong("Thành Công", "Thêm mới thành công");
                    }
                    else if (result == DialogResult.No)
                    {
                        //xóa text trên ô combobox
                        cbxNhaCungCap.SelectedIndex = 0;
                        TienIch.ShowThanhCong("Rest data", "Dữ liệu ô nhà cung cấp đã bị xóa do bạn không muốn thêm mới Nhà Cung Cấp này vào hệ thống.");
                    }
                }
            }
        }
        private void btnTimKiem_Click(object sender, EventArgs e)
        {
            string maHoaDonNhap = TienIch.XoaTatCaKhoangTrang(cbxHoaDonNhap.Text);
            string nhanVien     = string.IsNullOrEmpty(TienIch.ToTitleCase(cbxNhanVien.Text)) == true ? "" : cbxNhanVien.SelectedValue.ToString();
            string nhaCungCap   = string.IsNullOrEmpty(TienIch.ToTitleCase(cbxNhaCungCap.Text)) == true ? "" : cbxNhaCungCap.SelectedValue.ToString();

            string sqlSearch = "Select hdn.Id, nv.Ten, ncc.Ten, hdn.NgayNhap, hdn.TongTien "
                               + " from HoaDonNhap hdn, NhanVien nv, NhaCungCap ncc " +
                               " where hdn.IdNhanVien=nv.Id and hdn.IdNhaCungCap=ncc.Id " +
                               " and hdn.Id=" + maHoaDonNhap +
                               (nhanVien.Length == 0 ? "" : " and hdn.IdNhanVien=" + nhanVien) + " " +
                               (nhaCungCap.Length == 0 ? "" : " and hdn.IdNhaCungCap=" + nhaCungCap);
            DataTable tbl = DataBaseFunction.GetDataToTable(sqlSearch);

            dgvHoaDonNhap.DataSource = null;

            dgvHoaDonNhap.DataSource  = tbl;
            dgvHoaDonNhap.MultiSelect = false;

            foreach (DataGridViewColumn col in dgvHoaDonNhap.Columns)
            {
                col.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                col.ReadOnly     = true;
            }

            dgvHoaDonNhap.Columns[0].HeaderText = "Mã Hóa Đơn";
            dgvHoaDonNhap.Columns[1].HeaderText = "Nhân Viên";
            dgvHoaDonNhap.Columns[2].HeaderText = "Nhà Cung Cấp";
            dgvHoaDonNhap.Columns[3].HeaderText = "Ngày Nhập";
            dgvHoaDonNhap.Columns[4].HeaderText = "Tổng Tiền";

            foreach (DataGridViewRow row in dgvHoaDonNhap.Rows)
            {
                row.Cells[3].Value = DateTime.Parse(row.Cells[3].Value.ToString()).ToString("dd - MM - yyyy");
            }
        }
Exemple #20
0
        private void tbThanhPhan_Leave(object sender, EventArgs e)
        {
            string thanhPhan = TienIch.ToUpperFistCharacter(tbThanhPhan.Text);

            tbThanhPhan.Text = thanhPhan;
        }
 private void tbDiaChi_Leave(object sender, EventArgs e)
 {
     tbDiaChi.Text = TienIch.ToUpperFistCharacter(tbDiaChi.Text);
 }
Exemple #22
0
        private void btnTimKiem_Click(object sender, EventArgs e)
        {
            string tableName      = " Thuoc t";
            string whereCongDung  = "";
            string whereThuoc     = "";
            string whereThanhPhan = "";

            string tenThuoc = TienIch.ToTitleCase(cbxThuoc.Text);

            string thanhPhan = TienIch.XoaKhoangTrang(tbThanhPhan.Text).ToLower();

            //xem có tra theo tên thuốc hay không
            if (!string.IsNullOrEmpty(tenThuoc))
            {
                whereThuoc = " and t.Id = " + DataBaseFunction.GetItemId("Select Id from Thuoc where Ten =N'" + tenThuoc + "'");
            }

            //xem có tra theo công dụng hay không
            List <int> danhSachCongDung = new List <int>();

            foreach (string item in clbCongDung.CheckedItems)
            {
                string sqlSelectId = "Select Id from CongDung where Ten=N'" + item + "'";
                danhSachCongDung.Add(DataBaseFunction.GetItemId(sqlSelectId));
            }
            if (danhSachCongDung.Count > 0)
            {
                whereCongDung = "and t.id in( select IdThuoc from ThuocCongDung tvcd where " + " tvcd.IdCongDung=" + danhSachCongDung.First() + " ";
                string whereCongDungfinal = "";
                foreach (int idCongDung in danhSachCongDung.Skip(1))
                {
                    whereCongDungfinal += (" or tvcd.IdCongDung=" + idCongDung + " ");
                }
                whereCongDung = whereCongDung + whereCongDungfinal + ")";
            }

            //xem có tra theo thành phần hay không
            if (!string.IsNullOrEmpty(thanhPhan))
            {
                char[]   delimiterChars = { ',' };
                string[] thanhPhanItems = thanhPhan.Split(delimiterChars);

                whereThanhPhan = " and t.Id in( select Id from Thuoc where " + " ThanhPhan like N'%" + thanhPhanItems[0] + "'%";
                string whereThanhPhanItem = "";
                foreach (string item in thanhPhanItems.Skip(1))
                {
                    whereThanhPhanItem += (" and ThanhPhan like N'%" + item + "%' ");
                }
                whereThanhPhan = whereThanhPhan + whereThanhPhanItem + ")";
            }

            if (string.IsNullOrEmpty(whereCongDung) && string.IsNullOrEmpty(whereThanhPhan) && string.IsNullOrEmpty(whereThuoc))
            {
                TienIch.ShowCanhBao("Cảnh Báo", "Hãy nhập dữ liệu bạn muốn tìm kiếm để tìm!");
            }
            else
            {
                string sqlSelect = "select t.Id, t.Ten, " +
                                   " (select dvt.Ten from DonViTinh dvt where dvt.Id = t.IdDonViTinh) as 'Đơn Vị Tính', " +
                                   " (select ddc.Ten from DangDieuChe ddc where ddc.Id = t.IdDangDieuChe) as 'Dạng Điều Chế',  " +
                                   " (select nsx.Ten from NuocSanXuat nsx where nsx.Id = t.IdNuocSanXuat) as 'Nước Sản Xuất', " +
                                   " t.ThanhPhan, t.DonGiaNhap, t.GiaBan, t.SoLuongHienCo, t.NgaySanXuat, t.HanSuDung, t.ChongChiDinh " +
                                   " from " + tableName +
                                   " where 1=1 " +
                                   whereThuoc + " " + whereCongDung + " " + whereThanhPhan;

                DataTable tbl = DataBaseFunction.GetDataToTable(sqlSelect);
                dgvThuoc.DataSource = tbl;
                //Cho người dùng thêm dữ liệu trực tiếp
                dgvThuoc.AllowUserToAddRows = false;
                dgvThuoc.EditMode           = DataGridViewEditMode.EditOnKeystrokeOrF2;

                dgvThuoc.Columns[0].HeaderText  = "Mã Thuốc";
                dgvThuoc.Columns[1].HeaderText  = "Tên Thuốc";
                dgvThuoc.Columns[2].HeaderText  = "Đơn Vị Tính";
                dgvThuoc.Columns[3].HeaderText  = "Dạng Điều Chế";
                dgvThuoc.Columns[4].HeaderText  = "Nước Sản Xuất";
                dgvThuoc.Columns[5].HeaderText  = "Thành Phần";
                dgvThuoc.Columns[6].HeaderText  = "Đơn Giá Nhập";
                dgvThuoc.Columns[7].HeaderText  = "Giá Bán";
                dgvThuoc.Columns[8].HeaderText  = "Số Lượng Hiện Có";
                dgvThuoc.Columns[9].HeaderText  = "Ngày Sản Xuất";
                dgvThuoc.Columns[10].HeaderText = "Hạn Sử Dụng";
                dgvThuoc.Columns[11].HeaderText = "Chống Chỉ Định";

                foreach (DataGridViewColumn col in dgvThuoc.Columns)
                {
                    col.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                    col.ReadOnly     = true;
                }
            }
        }
Exemple #23
0
        private void cbxTenThuoc_Leave(object sender, EventArgs e)
        {
            string cbxValue = TienIch.ToTitleCase(cbxTenThuoc.Text);

            cbxTenThuoc.Text = cbxValue;
        }
Exemple #24
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnNhap_Click(object sender, EventArgs e)
        {
            if (dgvHoaDonNhap.Rows.Count > 0)
            {
                int      idNhanVien   = Int32.Parse(cbxNhanVien.Text);
                int      idNhaCungCap = DataBaseFunction.GetItemId("Select * From NhaCungCap where Ten=N'" + cbxNhaCungCap.Text + "'");
                DateTime ngayNhap     = dtpNgayNhap.Value;
                float    tongTien     = 0;
                foreach (DataGridViewRow row in dgvHoaDonNhap.Rows)
                {
                    float donGia = float.Parse(row.Cells[2].Value.ToString());
                    float giaBan = donGia * (float)1.1; // cau 3

                    //thuốc này chưa có trong db
                    if (cbxTenThuoc.FindString(row.Cells[0].Value.ToString()) == -1)
                    {
                        Model.Entity.Thuoc thuocMoi = new Model.Entity.Thuoc
                        {
                            Ten           = cbxTenThuoc.Text,
                            SoLuongHienCo = Int32.Parse(row.Cells[1].Value.ToString()),
                            DonGiaNhap    = donGia,
                            GiaBan        = donGia * (float)1.1,
                            NgaySanXuat   = dtpNgaySanXuat.Value,
                            HanSuDung     = dtpHanSuDung.Value
                        };
                        string sqlThemThuocMoi = "Insert into Thuoc (Ten,SoLuongHienCo,DonGiaNhap,GiaBan,NgaySanXuat,HanSuDung) "
                                                 + "values (N'" + thuocMoi.Ten + "'," + thuocMoi.SoLuongHienCo + ","
                                                 + thuocMoi.DonGiaNhap + "," + thuocMoi.GiaBan + ",'"
                                                 + thuocMoi.NgaySanXuat.ToString("yyyy-MM-dd HH:mm:ss.fff") + "','"
                                                 + thuocMoi.HanSuDung.ToString("yyyy-MM-dd HH:mm:ss.fff") + "')";
                        DataBaseFunction.ExcuteSQL(sqlThemThuocMoi);
                    }
                    //thuốc này đã có trong db
                    //cập nhật thông tin cho thuốc
                    else
                    {
                        Model.Entity.Thuoc thuocCu = new Model.Entity.Thuoc
                        {
                            Id            = DataBaseFunction.GetItemId("Select * from Thuoc where Ten=N'" + row.Cells[0].Value.ToString() + "'"),
                            SoLuongHienCo = Int32.Parse(row.Cells[1].Value.ToString()),
                            DonGiaNhap    = donGia,
                            GiaBan        = giaBan,
                            NgaySanXuat   = DateTime.ParseExact(row.Cells[5].Value.ToString(), "dd - MM - yyyy", null),
                            HanSuDung     = DateTime.ParseExact(row.Cells[6].Value.ToString(), "dd - MM - yyyy", null)
                        };

                        float  soLuongCu        = DataBaseFunction.GetItemId("Select SoLuongHienCo from Thuoc where Id=" + thuocCu.Id);
                        float  soLuongMoi       = thuocCu.SoLuongHienCo + soLuongCu;
                        string sqlUpdateThuocCu = "Update Thuoc set SoLuongHienCo=" + soLuongMoi
                                                  + " , DonGiaNhap=" + thuocCu.DonGiaNhap + " , GiaBan=" + thuocCu.GiaBan
                                                  + " , NgaySanXuat='" + thuocCu.NgaySanXuat.ToString("yyyy-MM-dd HH:mm:ss.fff")
                                                  + "' , HanSuDung='" + thuocCu.HanSuDung.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'"
                                                  + " where Id=" + thuocCu.Id;
                        DataBaseFunction.ExcuteSQL(sqlUpdateThuocCu);
                    }
                    tongTien += donGia * (1 - (float.Parse(row.Cells[3].Value.ToString()) / 100));
                }

                //.ToString("yyyy-MM-dd HH:mm:ss.fff")

                Model.Entity.HoanDonNhap hoanDonNhap = new Model.Entity.HoanDonNhap
                {
                    IdNhaCungCap = idNhaCungCap,
                    IdNhanVien   = idNhanVien,
                    NgayNhap     = ngayNhap,
                    TongTien     = tongTien
                };

                string sqlInsert = "Insert into HoaDonNhap (IdNhanVien,IdNhaCungCap,NgayNhap,TongTien) "
                                   + "values(" + hoanDonNhap.IdNhanVien + "," + hoanDonNhap.IdNhaCungCap + ",'" + hoanDonNhap.NgayNhap.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'," + hoanDonNhap.TongTien + ")";
                DataBaseFunction.ExcuteSQL(sqlInsert);

                string sqlGetLast   = "SELECT TOP 1 Id FROM HoaDonNhap ORDER BY ID DESC";
                int    idHoaDonNhap = DataBaseFunction.GetItemId(sqlGetLast);

                foreach (DataGridViewRow row in dgvHoaDonNhap.Rows)
                {
                    int idThuoc = DataBaseFunction.GetItemId("Select Id from Thuoc where Ten=N'" + row.Cells[0].Value.ToString() + "'");
                    HoaDonNhapDetail hoaDonNhapDetail = new HoaDonNhapDetail
                    {
                        IdHoaDonNhap = idHoaDonNhap,
                        IdThuoc      = idThuoc,
                        DonGia       = float.Parse(row.Cells[2].Value.ToString()),
                        KhuyenMai    = float.Parse(row.Cells[3].Value.ToString()),
                        ThanhTien    = float.Parse(row.Cells[2].Value.ToString()) * (1 - (float.Parse(row.Cells[3].Value.ToString()) / 100))
                    };

                    string sqlInsertHoaDonNhapDetail = "Insert into HoaDonNhapDetail (IdHoaDonNhap, IdThuoc, SoLuongNhap, DonGia, KhuyenMai, ThanhTien)\n"
                                                       + " values (" + hoaDonNhapDetail.IdHoaDonNhap + "," + hoaDonNhapDetail.IdThuoc
                                                       + "," + hoaDonNhapDetail.SoLuongNhap + "," + hoaDonNhapDetail.DonGia + ","
                                                       + hoaDonNhapDetail.KhuyenMai + "," + hoaDonNhapDetail.ThanhTien + ")";
                    DataBaseFunction.ExcuteSQL(sqlInsertHoaDonNhapDetail);
                }

                //chuyen qua man hinh hoa don nhap?
                dgvHoaDonNhap.DataSource = MakeTableWithAutoIncrement();
                cbxNhaCungCap.Enabled    = true;
                dtpNgayNhap.Enabled      = true;
                cbxTenThuoc.Text         = "";
                LoadDataToCbxTenThuoc();
            }
            else
            {
                TienIch.ShowCanhBao("Cảnh Báo", "Hóa đơn nhập đang bị để trống!");
            }
        }
Exemple #25
0
        private void btnThem_Click(object sender, EventArgs e)
        {
            cbxNhaCungCap.Enabled = false;
            dtpNgayNhap.Enabled   = false;
            string tenThuoc = TienIch.ToTitleCase(cbxTenThuoc.Text);

            if (string.IsNullOrEmpty(tenThuoc))
            {
                TienIch.ShowCanhBao("Cảnh Báo", "Phải nhập tên thuốc.");
                cbxTenThuoc.Text = tenThuoc;
                cbxTenThuoc.Focus();
                cbxNhaCungCap.Enabled = true;
                dtpNgayNhap.Enabled   = true;
            }
            else
            {
                int flagFoundIndex = -1;

                //kiem tra trong bang da co thuoc nay chua
                foreach (DataGridViewRow row in dgvHoaDonNhap.Rows)
                {
                    if (row.Cells[0].Value.ToString().Equals(tenThuoc))
                    {
                        flagFoundIndex = row.Index;
                        break;
                    }
                }

                //loai thuoc nay da co trong bang
                if (flagFoundIndex != -1)
                {
                    //hoi nguoi dung muon thay the thong tin cu trong bang hay cap nhat thong tin moi
                    DialogResult result = MessageBox.Show("Tên Thuốc " + tenThuoc + " đã tồn tại trong bảng!\n"
                                                          + "Chọn [Yes] để cập nhật thông tin cho bản ghi thuốc hiện có trong bảng(số lượng nhập, nhà cung cấp, ngày nhập sẽ được cập nhật).\n"
                                                          + "Chọn [No] để thay thế bản ghi hiện có trong bảng.\n"
                                                          + "Chọn [Cancel] để hủy.", "Cảnh Báo", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning);

                    int soLuongNhap_moi = Int32.Parse(tvSoLuongNhap.Text);

                    if (result == DialogResult.Yes)
                    {
                        int soLuongNhap_cu = Int32.Parse(dgvHoaDonNhap.Rows[flagFoundIndex].Cells[1].Value.ToString());
                        dgvHoaDonNhap.Rows[flagFoundIndex].Cells[1].Value = (soLuongNhap_cu + soLuongNhap_moi).ToString();
                        foreach (DataGridViewRow row in dgvHoaDonNhap.Rows)
                        {
                            row.Cells[4].Value = cbxNhaCungCap.Text;
                            row.Cells[5].Value = dtpNgayNhap.Value.ToString("dd - MM - yyyy");
                        }
                    }
                    else if (result == DialogResult.No)
                    {
                        dgvHoaDonNhap.Rows[flagFoundIndex].Cells[1].Value = soLuongNhap_moi;
                        dgvHoaDonNhap.Rows[flagFoundIndex].Cells[2].Value = tvDonGia.Text;
                        dgvHoaDonNhap.Rows[flagFoundIndex].Cells[3].Value = tbKhuyenMai.Text;
                        dgvHoaDonNhap.Rows[flagFoundIndex].Cells[4].Value = cbxNhaCungCap.Text;
                        dgvHoaDonNhap.Rows[flagFoundIndex].Cells[5].Value = dtpNgayNhap.Value.ToString("dd - MM - yyyy");
                        dgvHoaDonNhap.Rows[flagFoundIndex].Cells[6].Value = dtpNgaySanXuat.Value.ToString("dd - MM - yyyy");
                        dgvHoaDonNhap.Rows[flagFoundIndex].Cells[7].Value = dtpHanSuDung.Value.ToString("dd - MM - yyyy");

                        foreach (DataGridViewRow row in dgvHoaDonNhap.Rows)
                        {
                            row.Cells[4].Value = cbxNhaCungCap.Text;
                            row.Cells[5].Value = dtpNgayNhap.Value.ToString("dd - MM - yyyy");
                        }
                    }
                    else if (result == DialogResult.Cancel)
                    {
                        if (dgvHoaDonNhap.Rows.Count > 0)
                        {
                            cbxNhaCungCap.Text = dgvHoaDonNhap.Rows[0].Cells[4].Value.ToString();
                        }
                    }
                }
                //loai thuoc nay chua co trong bang
                else if (flagFoundIndex == -1)
                {
                    DataTable tblThuoc = (DataTable)dgvHoaDonNhap.DataSource;
                    DataRow   row      = tblThuoc.NewRow();

                    row["Tên Thuốc"]     = tenThuoc;
                    row["Số Lượng Nhập"] = tvSoLuongNhap.Text;
                    row["Đơn Giá"]       = tvDonGia.Text;
                    row["Khuyến Mại"]    = tbKhuyenMai.Text;
                    row["Nhà Cung Cấp"]  = cbxNhaCungCap.Text;
                    row["Ngày Nhập"]     = dtpNgayNhap.Value.ToString("dd - MM - yyyy");
                    row["Ngày Sản Xuất"] = dtpNgaySanXuat.Value.ToString("dd - MM - yyyy");
                    row["Hạn Sử Dụng"]   = dtpHanSuDung.Value.ToString("dd - MM - yyyy");

                    tblThuoc.Rows.Add(row);
                    tblThuoc.AcceptChanges();
                }
            }
        }
 private void tbChongChiDinh_Leave(object sender, EventArgs e)
 {
     tbChongChiDinh.Text = TienIch.XoaKhoangTrang(tbChongChiDinh.Text);
 }
 private void tbThanhPhan_Leave(object sender, EventArgs e)
 {
     tbThanhPhan.Text = TienIch.XoaKhoangTrang(tbThanhPhan.Text);
 }
        //Khi người dùng ấn vào nút xóa
        private void btnXoa_Click(object sender, EventArgs e)
        {
            //biến chứa số lượng phần tử trong bảng hiện bên phía giao diện người dùng
            int sizeOfTable = dgvNuocSanXuat.Rows.Count;
            // danh sách các bản ghi được người dùng chọn
            List <DataGridViewRow> selectedRows = new List <DataGridViewRow>();

            // chạy vòng for duyệt qua hết các bản ghi trong bảng dữ liệu đang được hiển thị
            // nếu có bản ghi nào đang được chọn thì thêm vào danh sách các bản ghi được chọn
            foreach (DataGridViewRow row in dgvNuocSanXuat.Rows)
            {
                if (row.Selected)
                {
                    selectedRows.Add(row);
                }
            }

            // Danh sách các bản ghi được chọn có số lượng lớn hơn không
            if (selectedRows.Count > 0)
            {
                //Hiển thị thông báo yêu cầu người dùng xác thực lựa chọn có xóa hay không?
                DialogResult result = TienIch.ShowXacThuc("Xác Thực", "Bạn có chắc chắn muốn xóa vĩnh viễn các bản ghi đã chọn?");
                //Người dùng chọn có
                if (result == DialogResult.Yes)
                {
                    List <int> removeIds = new List <int>();
                    foreach (DataGridViewRow row in selectedRows)
                    {
                        // bản ghi hiện tại phải khác bản ghi cuối cùng trong bảng
                        //(vì nó luôn luôn là null nên cần tránh)
                        if (row.Index != dgvNuocSanXuat.Rows[sizeOfTable - 1].Index)
                        {
                            //Xác thực xem bản ghi này đã có trong database chưa?
                            //Neu ban ghi nay chua duoc cap nhat vao trong db thi cot Id se không có giá trị
                            //Nếu cột Id có giá trị và khác rỗng thì thực hiện xóa khỏi db
                            if (!string.IsNullOrEmpty(row.Cells[0].Value.ToString()))
                            {
                                if (!string.IsNullOrEmpty(row.Cells[0].Value.ToString()))
                                {
                                    string sqlDelete = "Delete From NuocSanXuat where Id=" + row.Cells[0].Value;
                                    DataBaseFunction.Delete(sqlDelete);
                                }
                                //thực hiện lưu vị trí bản ghi cần xóa để xóa bản ghi ở phía giao diện người dùng
                                removeIds.Add(Int32.Parse(row.Cells[0].Value.ToString()));

                                // biến flag được dùng để lưu vị trí của phần tử trong mảng
                                // danh sách các bản ghi có thực hiện chỉnh sửa có giá trị = editedText,
                                int flag = editedRows.FindIndex(x => x.Ten.Equals(row.Cells[1]));
                                //  nếu flag > 0 tức mảng chứa phần tử này
                                // thực hiện xóa Đối tượng đó khỏi danh sách
                                if (flag > 0)
                                {
                                    editedRows.RemoveAt(flag);
                                }
                            }
                            //Nếu cột Id khộng có giá trị thì tìm trong list insert xem đã có phần tử này chưa
                            else
                            {
                                //Nếu list insert mới có chứa thì xóa
                                if (insertRows.Contains(row.Cells[1].Value.ToString()))
                                {
                                    insertRows.Remove(row.Cells[1].Value.ToString());
                                }
                                dgvNuocSanXuat.Rows.RemoveAt(row.Index);
                            }
                        }
                    }
                    foreach (int giaTriIdCanTimDeXoa in removeIds)
                    {
                        foreach (DataGridViewRow jow in dgvNuocSanXuat.Rows)
                        {
                            if (Int32.Parse(jow.Cells[0].Value.ToString()) == giaTriIdCanTimDeXoa)
                            {
                                dgvNuocSanXuat.Rows.RemoveAt(jow.Index);
                                break;
                            }
                        }
                    }
                    TienIch.ShowThanhCong("Thành Công", "Đã thực hiện xóa thành công!");
                }
                //Người dùng chọn không
                else if (result == DialogResult.No)
                {
                    TienIch.ShowThanhCong("Thông Báo", "Không có bản ghi nào bị xóa khỏi cơ sở dữ liệu cả!");
                }
            }
            // Chưa có bản ghi nào được chọn
            else
            {
                TienIch.ShowCanhBao("Cảnh Báo", "Vui lòng chọn bản ghi muốn xóa");
            }
        }
Exemple #29
0
 protected void btnThem_ServerClick(object sender, EventArgs e)
 {
     try
     {
         bool active = drTrangThai.SelectedIndex == 0 ? true : false;
         xlkh.ThemKhachHang(txtTaiKhoan.Text.Trim(), txtHoTen.Text.Trim(), txtDiaChi.Text.Trim(), txtEmail.Text.Trim(),
                            DateTime.Parse(txtNgaySinh.Text.Trim()), txtSoDienThoai.Text.Trim(), TienIch.MaHoaMD5(txtMatKhau.Text.Trim()), DateTime.Now, active);
         Response.Redirect(Request.Url.ToString());
     }
     catch
     {
         ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "alert('Thao tác không thành công!');", true);
     }
 }
        //event xảy ra khi kết thúc chỉnh sửa 1 ô trong bảng
        private void dgvNuocSanXuat_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            //bản ghi đang xét tới phải khác bản ghi cuối cùng trong bảng
            if (e.RowIndex != (dgvNuocSanXuat.Rows.Count - 1))
            {
                //nếu ô tên vừa sửa đổi có giá trị là rỗng hoặc bị xóa hoàn toàn giá trị
                // hiện ô cảnh báo hỏi người dùng muốn xóa hoàn toàn bản ghi này hay ntn?
                if (string.IsNullOrEmpty(TienIch.XoaTatCaKhoangTrang(dgvNuocSanXuat.Rows[e.RowIndex].Cells[1].Value.ToString())))
                {
                    //kiểm tra Id
                    // id khác rỗng
                    if (!string.IsNullOrEmpty(dgvNuocSanXuat.Rows[e.RowIndex].Cells[0].Value.ToString()))
                    {
                        DialogResult result =
                            TienIch.ShowXacThuc("Cảnh Báo", "Bạn có muốn xóa hoàn toàn Nước Sản Xuất:'" + editText + "' khỏi database?");
                        if (result == DialogResult.Yes)
                        {
                            // thực hiện xóa khỏi database
                            string sqlDelete = "Delete From NuocSanXuat where Id=" + dgvNuocSanXuat.Rows[e.RowIndex].Cells[0].Value;
                            DataBaseFunction.Delete(sqlDelete);
                            dgvNuocSanXuat.Rows.RemoveAt(e.RowIndex);
                            TienIch.ShowThanhCong("Đã xóa!", "Bản ghi '" + editText + "' đã bị xóa khỏi database!");
                        }
                        else if (result == DialogResult.No)
                        {
                            //Khôi phục dữ liệu về như cũ
                            dgvNuocSanXuat.Rows[e.RowIndex].Cells[1].Value = editText;
                            TienIch.ShowThanhCong("Đã khôi phục!", "Bản ghi '" + editText + "' chưa bị xóa khỏi database!");
                        }
                    }
                    //id bị rỗng
                    else
                    {
                        dgvNuocSanXuat.Rows.RemoveAt(e.RowIndex);
                    }
                }
                // nếu ô vừa sửa đổi khác rỗng và null
                else
                {
                    //lấy giá trị của ô tên khi kết thúc edit text
                    string editedText = TienIch.XoaKhoangTrang(dgvNuocSanXuat.Rows[e.RowIndex].Cells[1].Value.ToString());

                    //kiểm tra id
                    //id khác rỗng
                    if (!string.IsNullOrEmpty(TienIch.XoaTatCaKhoangTrang(dgvNuocSanXuat.Rows[e.RowIndex].Cells[0].Value.ToString())))
                    {
                        // nếu giá trị của ô vừa chỉnh sửa khác với giá trị trước đó đã lưu
                        // thì thực hiện lưu vị trí của bản ghi vừa chỉnh sửa để sau này thực hiện update cho nhanh
                        if (!editText.Equals(editedText))
                        {
                            // biến flag được dùng để lưu vị trí của phần tử trong mảng
                            // danh sách các bản ghi có thực hiện chỉnh sửa có giá trị = editedText,
                            int flag = editedRows.FindIndex(x => x.Ten.Equals(editedText));
                            //  nếu flag = -1 tức mảng chưa chứa phần tử này
                            // thực hiện lưu Đối tượng đó vào danh sách
                            if (flag < 0)
                            {
                                editedRows.Add(new NuocSanXuat
                                {
                                    Id  = Int32.Parse(dgvNuocSanXuat.Rows[e.RowIndex].Cells[0].Value.ToString()),
                                    Ten = editedText
                                });
                            }
                        }
                        //giống thì không làm gì cả
                    }
                    //id rỗng
                    else
                    {
                        //kiểm tra xem giá trị cũ có nằm trong list insert mới không?
                        // editText là biến chứa giá trị cũ trước khi sửa đổi
                        // editedText là biến chứa giá trị mới đã sửa đổi
                        //Có chứa giá trị này trong list insert, thực hiện xóa khỏi list insert
                        if (insertRows.Contains(editText))
                        {
                            insertRows.Remove(editText);
                        }
                        // thêm vào danh sách insert
                        if (!insertRows.Contains(editedText))
                        {
                            insertRows.Add(editedText);
                        }
                    }
                }
            }
            //gắn lại giá trị cho editText về rỗng để thực hiện so sánh lần sau
            editText = "";
        }