예제 #1
0
        private void but_DeleteCust_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
        {
            string outMessage = string.Empty;

            if (gridView_CustInfo.SelectedRowsCount == 0)
            {
                MessageBox.Show("Vui lòng chọn dữ liệu để thao tác", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (!isValidateCreateCust(out outMessage))
            {
                MessageBox.Show(outMessage, "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                KhachHangDto _khDTO    = new KhachHangDto();
                KhachHangBus _khBUS    = new KhachHangBus();
                string       khMessage = string.Empty;
                if (!_khBUS.DeleteCust(_khDTO.MaKh, out khMessage))
                {
                    MessageBox.Show(outMessage, "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                else
                {
                    MessageBox.Show(outMessage, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    RefreshForm();
                }
            }
        }
예제 #2
0
        public void update(KhachHangDto dto)
        {
            SqlCommand cmd = new SqlCommand(
                "UPDATE KHACH_HANG "
                + " SET TEN_KHACH_HANG = @tenKhachHang"
                + ", EMAIL = @email"
                + ", DIA_CHI = @diaChi"
                + ", ACC_FTP = @accFtp"
                + ", CREATE_BY = @createBy"
                + ", CREATE_TIME = @createTime"
                + ", SO_TIEN_NO = @soTienNo"
                + " WHERE ID_KHACH_HANG = @idKhachHang"
                );

            cmd.CommandType = CommandType.Text;
            cmd.Connection  = Connection.getConnection();
            cmd.Parameters.AddWithValue("@tenKhachHang", dto.tenKhachHang);
            cmd.Parameters.AddWithValue("@diaChi", dto.diaChi);
            cmd.Parameters.AddWithValue("@email", dto.email);
            cmd.Parameters.AddWithValue("@accFtp", dto.accFtp);
            cmd.Parameters.AddWithValue("@createBy", dto.createBy);
            cmd.Parameters.AddWithValue("@createTime", dto.createTime);
            cmd.Parameters.AddWithValue("@soTienNo", dto.soTienNo);
            cmd.Parameters.AddWithValue("@idKhachHang", dto.idKhachHang);
            cmd.ExecuteNonQuery();
        }
예제 #3
0
        private KhachHangDto createKhachHangDto(FormSearchCustomerObj obj)
        {
            KhachHangDto dto = new KhachHangDto();

            dto.idKhachHang  = obj.idKhachHang;
            dto.tenKhachHang = obj.tenKhachHang;
            dto.sales        = obj.sales;
            return(dto);
        }
예제 #4
0
        public IActionResult Index([Bind("Ten,Mail,SDT,DiaChi")] KhachHangDto khachhangDto)
        {
            khachhangDto.DiaChi.SoNha = "";
            var json   = Newtonsoft.Json.JsonConvert.SerializeObject(khachhangDto);
            var result = ApiHelper.Post <KhachHangDto>(ConstantVariable.URLBase.baseUrl + "khachhang/update", json);

            GetInfo();
            return(View(khachhang));
        }
예제 #5
0
        public void insert(KhachHangDto dto)
        {
            SqlCommand cmd = new SqlCommand("INSERT INTO KHACH_HANG "
                                            + "("
                                            + "ID_KHACH_HANG"
                                            + ", TEN_KHACH_HANG"
                                            + ", DIA_CHI"
                                            + ", SO_TIEN_NO"
                                            + ", EMAIL"
                                            + ", ACC_FTP"
                                            + ", GIAM_GIA"
                                            + ", TEN_SALES"
                                            + ", HOA_HONG_SALES"
                                            + ", GHI_CHU"
                                            + ", NGAY_BAT_DAU"
                                            + ", VAN_CHUYEN"
                                            + ", TRANG_THAI"
                                            + ", CREATE_BY"
                                            + ", CREATE_TIME"
                                            + ")"
                                            + " VALUES ("
                                            + " @idKhachHang"
                                            + ", @tenKhachHang"
                                            + ", @diaChi"
                                            + ", @soTienNo"
                                            + ", @email"
                                            + ", @accFtp"
                                            + ", @giamGia"
                                            + ", @sales"
                                            + ", @salesPercent"
                                            + ", @notes"
                                            + ", @startDate"
                                            + ", @vanChuyen"
                                            + ", @trangthaixuatkho"
                                            + ", @createBy"
                                            + ", @createTime"
                                            + ")");

            cmd.CommandType = CommandType.Text;
            cmd.Connection  = Connection.getConnection();
            cmd.Parameters.AddWithValue("@idKhachHang", dto.idKhachHang);
            cmd.Parameters.AddWithValue("@tenKhachHang", dto.tenKhachHang);
            cmd.Parameters.AddWithValue("@diaChi", dto.diaChi);
            cmd.Parameters.AddWithValue("@soTienNo", dto.soTienNo);
            cmd.Parameters.AddWithValue("@email", dto.email);
            cmd.Parameters.AddWithValue("@accFtp", dto.accFtp);
            cmd.Parameters.AddWithValue("@giamGia", dto.giamGia);
            cmd.Parameters.AddWithValue("@sales", dto.sales);
            cmd.Parameters.AddWithValue("@salesPercent", dto.salesPercent);
            cmd.Parameters.AddWithValue("@notes", dto.notes);
            cmd.Parameters.AddWithValue("@startDate", dto.startDate);
            cmd.Parameters.AddWithValue("@vanChuyen", dto.vanChuyen);
            cmd.Parameters.AddWithValue("@trangthaixuatkho", dto.trangThaiNo);
            cmd.Parameters.AddWithValue("@createBy", dto.createBy);
            cmd.Parameters.AddWithValue("@createTime", dto.createTime);
            cmd.ExecuteNonQuery();
        }
예제 #6
0
        public SearchCustomer(Boolean isGetKhachHang = false)
        {
            InitializeComponent();

            formatControl();

            this.isGetKhachHang    = isGetKhachHang;
            this.khachHangSelected = new KhachHangDto();
        }
예제 #7
0
        public DataTable getListKhachHang(KhachHangDto dto)
        {
            String strQuery = "SELECT "
                              + " ID_KHACH_HANG"
                              + ", TEN_KHACH_HANG"
                              + ", DIA_CHI"
                              + ", ACC_FTP"
                              + ", TEN_SALES"
                              + ", GHI_CHU"
                              + " FROM KHACH_HANG WHERE 1=1 ";

            if (StringUtils.isNotBlank(dto.idKhachHang))
            {
                strQuery += " AND ID_KHACH_HANG LIKE @idKhachHang ";
            }
            if (StringUtils.isNotBlank(dto.tenKhachHang))
            {
                strQuery += " AND TEN_KHACH_HANG LIKE @tenKhachHang ";
            }
            if (StringUtils.isNotBlank(dto.sales))
            {
                strQuery += " AND TEN_SALES LIKE @sales ";
            }
            if (dto.isSearchTrangThai)
            {
                strQuery += " AND TRANG_THAI = @trangThaiNo";
            }

            SqlCommand cmd = new SqlCommand(strQuery);

            cmd.CommandType = CommandType.Text;
            cmd.Connection  = Connection.getConnection();
            if (StringUtils.isNotBlank(dto.idKhachHang))
            {
                cmd.Parameters.AddWithValue("@idKhachHang", "%" + dto.idKhachHang + "%");
            }
            if (StringUtils.isNotBlank(dto.tenKhachHang))
            {
                cmd.Parameters.AddWithValue("@tenKhachHang", "%" + dto.tenKhachHang + "%");
            }
            if (StringUtils.isNotBlank(dto.sales))
            {
                cmd.Parameters.AddWithValue("@sales", "%" + dto.sales + "%");
            }
            if (dto.isSearchTrangThai)
            {
                cmd.Parameters.AddWithValue("@trangThaiNo", dto.trangThaiNo);
            }

            SqlDataReader reader  = cmd.ExecuteReader();
            DataTable     dtTable = new DataTable();

            dtTable.Load(reader);
            reader.Close();
            return(dtTable);
        }
예제 #8
0
        private void loadData()
        {
            String       idKhachHang = txtTenKhachHang.Text;
            OrderDao     orderDao    = new OrderDao();
            KhachHangDao khDao       = new KhachHangDao();

            if (!khDao.isExits(idKhachHang))
            {
                MessageBox.Show("Mã Khách Hàng Không Tồn Tại", "MESSAGE");
                return;
            }
            DataTable dt       = new DataTable();
            String    dateFrom = this.dateFrom.Value.ToString("yyyy-MM-dd");
            String    dateTo   = this.dateTo.Value.ToString("yyyy-MM-dd");

            if (!String.IsNullOrEmpty(idKhachHang))
            {
                dt.Load(orderDao.getDebtByCustomerWithPay(dateFrom, dateTo, idKhachHang));
                this.dataGridView.DataSource = dt;

                // On all tables' rows
                if (dt.Rows.Count > 0)
                {
                    Decimal total = 0;
                    foreach (DataRow dtRow in dt.Rows)
                    {
                        if (StringUtils.isNotBlank((String)dtRow["ID"]) && dtRow["TONG_TIEN"] != DBNull.Value)
                        {
                            total += Decimal.Parse(dtRow["TONG_TIEN"].ToString());
                        }
                    }
                    lblTongTien.Text = total.ToString("#,###");
                    Decimal soTienDaTra = LichSuTraTruocDao.getSum(idKhachHang, dateTo, dateFrom);
                    lblSoTienDaTra.Text = soTienDaTra.ToString("#,###");
                    lblSoTienNo.Text    = (total - soTienDaTra).ToString("#,###");
                }
                KhachHangDto dto = khDao.getKhachHangById(idKhachHang);
                lblTongTienNo.Text = dto.soTienNo.ToString("#,###");
            }
            else
            {
                dt.Load(orderDao.getDebtByCustomer(dateFrom, dateTo));
                this.dataGridView.DataSource = dt;
                Double total = 0;
                foreach (DataRow dtRow in dt.Rows)
                {
                    if (StringUtils.isNotBlank((String)dtRow["ID"]) && dtRow["TONG_TIEN"] != DBNull.Value)
                    {
                        String tongTien = dtRow["TONG_TIEN"].ToString();
                        total += Double.Parse(tongTien);
                    }
                }
                lblTongTien.Text    = total.ToString("#,###");
                lblSoTienDaTra.Text = "";
            }
        }
 public int Insert(KhachHangDto obj)
 {
     SqlParameter[] para =
     {
         new SqlParameter("TenKH",  obj.TenKhachHang),
         new SqlParameter("DiaChi", obj.DiaChi),
         new SqlParameter("SDT",    obj.Sdt)
     };
     return(provider.ExecuteSQL("KhachHang_Insert", para));
 }
예제 #10
0
        public LogicResult searchCustomerLogic(FormSearchCustomerObj obj)
        {
            KhachHangDto khDto = createKhachHangDto(obj);
            KhachHangDao khDao = new KhachHangDao();

            obj.listKhachHangs = khDao.getListKhachHang(khDto);
            String msg = "";

            return(new LogicResult(Contanst.MSG_INFO, msg, obj));
        }
예제 #11
0
        public void KhachHang_Update(KhachHangDto U)
        {
            var kh = KHcontext.KhachHang_GetByUser(U.user);

            if (kh == null)
            {
                return;
            }
            U.MappingKhachHang(kh);
            KHcontext.KhachHang_Update(kh);
        }
예제 #12
0
        public async Task <IActionResult> Update([FromBody] KhachHangDto khachhangdto)
        {
            KhachHang khachHang = _mapper.Map <KhachHang>(khachhangdto);

            khachHang.ID = User.GetIdCustomer();
            if (await _khachHangService.Update(khachHang))
            {
                return(Ok());
            }
            return(BadRequest());
        }
예제 #13
0
 public static void MappingKhachHang(this KhachHangDto khachhangdto, KhachHang khachhang)
 {
     // khachhang.user = khachhangdto.user;
     khachhang.pass      = khachhangdto.pass;
     khachhang.full_name = khachhangdto.full_name;
     khachhang.phone     = khachhangdto.phone;
     khachhang.mail      = khachhangdto.mail;
     khachhang.address   = khachhangdto.address;
     khachhang.sex       = khachhangdto.sex;
     khachhang.dateborn  = khachhangdto.dateborn;
     khachhang.status    = khachhangdto.status;
 }
예제 #14
0
 public bool CreateNewCust(KhachHangDto _khachHang, out string Message)
 {
     if (!KhachHangDao.CreateNewCust(_khachHang))
     {
         Message = "Có lỗi trong lúc tạo thông tin khách hàng";
         return(false);
     }
     else
     {
         Message = "Tạo Khách hàng thành công";
         return(true);
     }
 }
예제 #15
0
 public static KhachHang MappingKhachHang(this KhachHangDto khachhangdto)
 {
     return(new KhachHang {
         user = khachhangdto.user,
         pass = khachhangdto.pass,
         full_name = khachhangdto.full_name,
         phone = khachhangdto.phone,
         mail = khachhangdto.mail,
         address = khachhangdto.address,
         sex = khachhangdto.sex,
         dateborn = khachhangdto.dateborn,
         status = khachhangdto.status
     });
 }
예제 #16
0
        public ActionResult <KhachHangDto> AddKHDto_Register(KhachHangDto p)
        {
            KHservice.KhachHang_Add(p);

            // Ẩn thông tin khách hàng
            p.pass     = "";
            p.phone    = "";
            p.address  = "";
            p.mail     = "";
            p.address  = "";
            p.dateborn = new DateTime();
            p.status   = -1;

            return(CreatedAtAction(nameof(GetKHDto), new { user = p.user }, p));
        }
예제 #17
0
 public static bool CreateNewCust(KhachHangDto _khachHang)
 {
     try
     {
         using (QLSoTietKiemDBContext ql = new QLSoTietKiemDBContext())
         {
             ql.KhachHang.Add(_khachHang);
             ql.SaveChanges();
             return(true);
         }
     }
     catch (Exception ex)
     {
         Logger.WriteLogError("KhachHangDao CreateNewCust", ex.ToString());
         return(false);
     }
 }
예제 #18
0
        private void selectedKhacHang()
        {
            if (this.isGetKhachHang == false)
            {
                return;
            }
            if (listKhachHang.SelectedRows.Count > 0)
            {
                int    rowSelected = listKhachHang.SelectedRows[0].Index;
                String selectedId  = listKhachHang.Rows[rowSelected].Cells["ID"].Value.ToString();

                KhachHangDao khDao = new KhachHangDao();
                this.khachHangSelected = khDao.getKhachHangById(selectedId);

                this.DialogResult = DialogResult.OK;
                this.Close();
            }
        }
예제 #19
0
 /// <summary>
 /// Thêm một khách hàng mới
 /// (khách hàng chỉ có một mã khách hàng và mã cmnd là duy nhất)
 /// </summary>
 /// <param name="khachHangDto"></param>
 /// <returns>string</returns>
 public static string Add(KhachHangDto khachHangDto)
 {
     using (QLSoTietKiemDBContext ql = new QLSoTietKiemDBContext())
     {
         try
         {
             if (ql.KhachHang.Any(x => x.Cmnd.Equals(khachHangDto.Cmnd)))
             {
                 return("CMND này đã có người sử dụng");
             }
             ql.KhachHang.Add(khachHangDto);
             ql.SaveChanges();
             return("");
         }
         catch (Exception e)
         {
             return("Hệ thống đang bị lỗi");
         }
     }
 }
예제 #20
0
 /// <summary>
 /// Cập nhật thay đổi của một khách hàng
 /// </summary>
 /// <param name="khachHangDto"></param>
 /// <returns></returns>
 public static bool Update(KhachHangDto khachHangDto)
 {
     using (QLSoTietKiemDBContext ql = new QLSoTietKiemDBContext())
     {
         var _kh = ql.KhachHang.Where(a => a.MaKh == khachHangDto.MaKh).FirstOrDefault();
         if (_kh == null)
         {
             return(false);
         }
         _kh.Hoten           = khachHangDto.Hoten;
         _kh.GioiTinh        = khachHangDto.GioiTinh;
         _kh.DiaChi          = khachHangDto.DiaChi;
         _kh.NgaySinh        = khachHangDto.NgaySinh;
         _kh.NgayCap         = khachHangDto.NgayCap;
         _kh.Sdt             = khachHangDto.Sdt;
         ql.Entry(_kh).State = System.Data.Entity.EntityState.Modified;
         ql.SaveChanges();
         return(true);
     }
 }
예제 #21
0
        public LogicResult updateCustommerLogic(FormAddCustomerObj obj)
        {
            KhachHangDto khDto = createKhachHangDto(obj);

            khDto.createTime = System.DateTime.Now;
            KhachHangDao khDao = new KhachHangDao();

            khDao.update(khDto);
            LienHeDao        lienHeDao     = new LienHeDao();
            List <LienHeDto> listLienHeOld = lienHeDao.getListLienHe(khDto.idKhachHang);

            if (listLienHeOld.Count > 0)
            {
                lienHeDao.delete(khDto.idKhachHang);
            }
            if (obj.listContracts.Count > 0)
            {
                lienHeDao.insertList(obj.listContracts);
            }
            return(new LogicResult(Contanst.MSG_INFO, AppUtils.getAppConfig("MSGINFO004"), null));
        }
예제 #22
0
        private KhachHangDto createKhachHangDto(FormAddCustomerObj obj)
        {
            KhachHangDto dto = new KhachHangDto();

            dto.idKhachHang  = obj.idKhachHang;
            dto.tenKhachHang = obj.tenKhachHang;
            dto.diaChi       = obj.diaChi;
            dto.email        = obj.email;
            dto.accFtp       = obj.accFtp;
            dto.giamGia      = obj.giamGia;
            dto.sales        = obj.sales;
            dto.salesPercent = obj.salesPercent;
            dto.soTienNo     = obj.soTienNo;
            dto.notes        = obj.notes;
            dto.startDate    = obj.startDate;
            dto.vanChuyen    = obj.vanChuyen;
            dto.trangThaiNo  = obj.trangThaiNo;
            dto.createBy     = obj.user;
            dto.updateBy     = obj.user;
            return(dto);
        }
예제 #23
0
        public LogicResult addCustommerLogic(FormAddCustomerObj obj)
        {
            String       msg   = "";
            KhachHangDto khDto = createKhachHangDto(obj);

            khDto.createTime = System.DateTime.Now;
            KhachHangDao khDao = new KhachHangDao();

            if (khDao.isExits(khDto.idKhachHang))
            {
                msg = AppUtils.getAppConfig("MSGERR001").Replace("{0}", khDto.idKhachHang);
                return(new LogicResult(Contanst.MSG_ERROR, msg, null));
            }

            khDao.insert(khDto);
            if (obj.listContracts != null && obj.listContracts.Count > 0)
            {
                new LienHeDao().insertList(obj.listContracts);
            }

            return(new LogicResult(Contanst.MSG_INFO, "", null));
        }
        public async Task Update(KhachHangDto input)
        {
            var updateKhachHang = await _khachHangRepository.FirstOrDefaultAsync(input.Id);

            if (updateKhachHang == null)
            {
                throw new UserFriendlyException(L("KhachHangIsNotFound"));
            }

            // Ghép chuỗi để có địa chỉ đầy đủ
            string Address       = input.Address;
            string QuanHuyenName = await _globalCache.GetQuanHuyenName(input.ProvinceId, input.DistrictId);

            Address += string.IsNullOrWhiteSpace(QuanHuyenName) ? "" : ", " + QuanHuyenName;
            string TinhThanhName = await _globalCache.GetTinhThanhName(input.ProvinceId);

            Address += string.IsNullOrWhiteSpace(TinhThanhName) ? "" : ", " + TinhThanhName;
            Address += ", Việt Nam";

            // Update data
            updateKhachHang.Name         = input.Name;
            updateKhachHang.EmailAddress = input.EmailAddress;
            updateKhachHang.Address      = input.Address;
            updateKhachHang.DistrictId   = input.DistrictId;
            updateKhachHang.ProvinceId   = input.ProvinceId;
            updateKhachHang.Location     = await GlobalFunction.GetLongLatFromAddress(_globalCache.GetGoogleApiKey(), Address);

            if (updateKhachHang.UserId > 0)
            {
                var updateUser = await _userRepository.FirstOrDefaultAsync((long)updateKhachHang.UserId);

                if (updateUser != null)
                {
                    updateUser.Name         = updateKhachHang.Name;
                    updateUser.EmailAddress = updateKhachHang.EmailAddress;
                }
            }
        }
예제 #25
0
        public ActionResult <TaiKhoanDto> Login(TaiKhoanDto p)
        {
            KhachHangDto kh = KHservice.KhachHang_GetByUser(p.user);

            if (kh == null)
            {
                return(null);
            }

            if (kh.pass != p.password)
            {
                return(null);
            }
            // Ẩn thông tin khách hàng
            kh.pass     = "";
            kh.phone    = "";
            kh.address  = "";
            kh.mail     = "";
            kh.address  = "";
            kh.dateborn = new DateTime();
            kh.status   = -1;
            return(CreatedAtAction(nameof(GetKHDto), new { user = kh.user }, kh));
        }
예제 #26
0
        private void but_CustCreate_Click(object sender, EventArgs e)
        {
            string outMessage = string.Empty;

            if (!isValidateCreateCust(out outMessage))
            {
                MessageBox.Show(outMessage, "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                KhachHangDto _khDTO    = new KhachHangDto();
                KhachHangBus _khBUS    = new KhachHangBus();
                string       khMessage = string.Empty;
                if (!_khBUS.CreateNewCust(_khDTO, out khMessage))
                {
                    MessageBox.Show(outMessage, "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                else
                {
                    MessageBox.Show(outMessage, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    RefreshForm();
                }
            }
        }
예제 #27
0
        public void KhachHang_Add(KhachHangDto U)
        {
            var kh = U.MappingKhachHang();

            KHcontext.KhachHang_Add(kh);
        }
예제 #28
0
 public void UpdateKHDto([FromBody] KhachHangDto p)
 {
     KHservice.KhachHang_Update(p);
 }
예제 #29
0
        public ActionResult <KhachHangDto> AddKHDto(KhachHangDto p)
        {
            KHservice.KhachHang_Add(p);

            return(CreatedAtAction(nameof(GetKHDto), new { user = p.user }, p));
        }
예제 #30
0
        // event save
        private void simbtn_save_Click(object sender, EventArgs e)
        {
            if (!radio_gender.Checked && !radio_genderN.Checked)
            {
                Commons.MessageErr("Xin vui lòng chọn giới tính");
                return;
            }
            if (string.IsNullOrEmpty(txt_ten.Text))
            {
                Commons.MessageErr("Xin vui lòng nhập tên đầy đủ");
                txt_ten.Focus();
                return;
            }
            if (string.IsNullOrEmpty(txt_sdt.Text))
            {
                Commons.MessageErr("Xin vui lòng nhập số điện thoại");
                txt_sdt.Focus();
                return;
            }
            if (Extensions.IsValidPhone(txt_sdt.Text) || txt_sdt.Text.Length > 12 || txt_sdt.Text.Length < 9)
            {
                Commons.MessageErr("Số điện thoại không hợp lệ");
                txt_sdt.Focus();
                return;
            }
            if (string.IsNullOrEmpty(txt_cmnd.Text) && txt_cmnd.Text.Length > 12 || txt_cmnd.Text.Length < 9)
            {
                Commons.MessageErr("Vui lòng nhập số chứng minh nhân dân");
                txt_cmnd.Focus();
                return;
            }
            if (Extensions.IsNumber(txt_cmnd.Text))
            {
                Commons.MessageErr("Số chứng minh nhân không hợp lệ");
                txt_cmnd.Focus();
                return;
            }
            if (string.IsNullOrEmpty(mem_diachi.Text))
            {
                Commons.MessageErr("Vui lòng nhập địa chỉ");
                return;
            }
            if (string.IsNullOrEmpty(txt_ngaysinh.DateTime.ToString()))
            {
                Commons.MessageErr("Vui lòng chọn ngày sinh");
                return;
            }
            if (string.IsNullOrEmpty(dateEdit_ngaycap.DateTime.ToString()))
            {
                Commons.MessageErr("Vui lòng chọn ngày cấp của CMND");
                return;
            }

            // Độ tuổi khách hàng từ 15 tuổi trở lên
            int _age = DateTime.Now.Year - txt_ngaysinh.DateTime.Year;

            if (_age < 10 || _age > 120)
            {
                Commons.MessageErr("Ngày sinh không hợp lệ");
                return;
            }
            KhachHangDto customer = new KhachHangDto();

            //customer.MaKh = 1;
            customer.Hoten     = txt_ten.Text;
            customer.Sdt       = txt_sdt.Text;
            customer.Cmnd      = txt_cmnd.Text;
            customer.DiaChi    = mem_diachi.Text;
            customer.NgaySinh  = txt_ngaysinh.DateTime;
            customer.TrangThai = 1;
            customer.NgayCap   = dateEdit_ngaycap.DateTime;
            customer.GioiTinh  = radio_gender.Checked ? true : false; // nam :true | nữ: false
            //OnCMND();
            string _message = KhachHangBus.Add(customer);

            if (string.IsNullOrEmpty(_message) && KhachHangCmndEvent != null)
            {
                KhachHangCmndEvent(txt_cmnd.Text);
            }
            else
            {
                Commons.MessageInfo(_message);
            }
            this.Close();
        }