void View_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e) { if (e.Column.FieldName.ToUpper() != "MAVT" || e.Value == null) { return; } RepositoryItemGridLookUpEdit riGlu = e.Column.ColumnEdit as RepositoryItemGridLookUpEdit; int i = riGlu.GetIndexByKeyValue(e.Value); if (i < 0) { return; } if (riGlu.View.Columns["Tonkho"] == null) { return; } GridView gvMain = (_data.FrmMain.Controls.Find("gcMain", true)[0] as GridControl).MainView as GridView; int tonKho = Int32.Parse(riGlu.View.GetRowCellValue(i, riGlu.View.Columns["Tonkho"]).ToString()); if (gvMain.Columns["Gia"] != null) { gvMain.Columns["Gia"].OptionsColumn.AllowEdit = (tonKho == 5); } if (gvMain.Columns["GiaNT"] != null) { gvMain.Columns["GiaNT"].OptionsColumn.AllowEdit = (tonKho == 5); } if (gvMain.Columns["Ps"] != null) { gvMain.Columns["Ps"].OptionsColumn.AllowEdit = (tonKho == 5); } if (gvMain.Columns["PsNT"] != null) { gvMain.Columns["PsNT"].OptionsColumn.AllowEdit = (tonKho == 5); } if (gvMain.Columns["GiaVon"] != null) { gvMain.Columns["GiaVon"].OptionsColumn.AllowEdit = (tonKho == 5); } if (gvMain.Columns["TienVon"] != null) { gvMain.Columns["TienVon"].OptionsColumn.AllowEdit = (tonKho == 5); } }
//cập nhật NVKD khi chọn mặt hàng // private void LayNVKD2(DataRow drCT) // { // RepositoryItemGridLookUpEdit gluHH = gcMain.RepositoryItems["Description"] as RepositoryItemGridLookUpEdit; // if (gluHH.OwnerEdit != null && gluHH.OwnerEdit.IsPopupOpen) // return; // if (gluKH.EditValue == null || gluKH.EditValue.ToString() == "") // return; // BindingSource bs = gluKH.Properties.DataSource as BindingSource; // if (bs == null || bs.DataSource.GetType() != typeof(DataTable)) // return; // DataTable dt = bs.DataSource as DataTable; // DataRow[] drs = dt.Select("MaKH = '" + gluKH.EditValue.ToString() + "'"); // if (drs.Length == 0) // return; // DataRow drKH = drs[0]; // if (drKH == null) // return; // string pl = drKH["Nhom1"].ToString(); // if (pl == "") // { // XtraMessageBox.Show("Khách hàng này chưa phân loại, không thể tính doanh số cho salesman!", // Config.GetValue("PackageName").ToString(), MessageBoxButtons.OK); // drCT["NVKD"] = DBNull.Value; // return; // } // string kv = drKH["KhuVuc"].ToString(); // if (kv == "") // { // XtraMessageBox.Show("Khách hàng này chưa phân khu vực, không thể tính doanh số cho salesman!", // Config.GetValue("PackageName").ToString(), MessageBoxButtons.OK); // drCT["NVKD"] = DBNull.Value; // return; // } // object mahh = drCT["Description"]; // bs = gluHH.DataSource as BindingSource; // if (bs == null || bs.DataSource.GetType() != typeof(DataTable)) // return; // dt = bs.DataSource as DataTable; // drs = dt.Select("PNo = '" + mahh.ToString() + "'"); // if (drs.Length == 0) // return; // DataRow drHH = drs[0]; // string nhom = drHH["Nhom"].ToString(); // if (nhom == "") // { // XtraMessageBox.Show("Mặt hàng " + drHH["TenVT2"].ToString() + " chưa phân nhóm, không thể tính doanh số cho salesman!", // Config.GetValue("PackageName").ToString(), MessageBoxButtons.OK); // drCT["NVKD"] = DBNull.Value; // return; // } // dt = db.GetDataTable(string.Format(@"select MaNV from NVKDTheoKV where (DMTP like '{0},%' or DMTP like '%,{0}' or DMTP like '%,{0},%' or DMTP = '{0}') // and (NhomKH like '{1},%' or NhomKH like '%,{1}' or NhomKH like '%,{1},%' or NhomKH = '{1}') // and (NhomVT like '{2},%' or NhomVT like '%,{2}' or NhomVT like '%,{2},%' or NhomVT = '{2}')", kv, pl, nhom)); // if (dt.Rows.Count == 0) // { // XtraMessageBox.Show(string.Format("Khu vực {0}, loại khách hàng {1} và nhóm hàng {2} hiện chưa phân sales", kv, pl, nhom), // Config.GetValue("PackageName").ToString()); // drCT["NVKD"] = DBNull.Value; // return; // } // if (dt.Rows.Count > 1) // { // XtraMessageBox.Show(string.Format("Khu vực {0}, loại khách hàng {1} và nhóm hàng {2} hiện đang phân nhiều sales cùng lúc", kv, pl, nhom), // Config.GetValue("PackageName").ToString()); // drCT["NVKD"] = DBNull.Value; // return; // } // drCT["NVKD"] = dt.Rows[0]["MaNV"]; // } //tính khi thay đổi hàng hóa hoặc phụ kiện private void TinhGiaCoDinh2(DataRow drCT, string cl) { RepositoryItemGridLookUpEdit gluHH = gcMain.RepositoryItems[cl] as RepositoryItemGridLookUpEdit; RepositoryItemGridLookUpEdit gluPK = gcMain.RepositoryItems["MaVT2"] as RepositoryItemGridLookUpEdit; if (gluHH.OwnerEdit != null && gluHH.OwnerEdit.IsPopupOpen) return; if (gluKH.EditValue == null || gluKH.EditValue.ToString() == "") { XtraMessageBox.Show("Chưa chọn khách hàng, không thể lấy được giá bán!", Config.GetValue("PackageName").ToString(), MessageBoxButtons.OK); return; } //int n = gluKH.Properties.GetIndexByKeyValue(gluKH.EditValue); //if (n < 0) // return; BindingSource bs = gluKH.Properties.DataSource as BindingSource; if (bs == null || bs.DataSource.GetType() != typeof(DataTable)) return; DataTable dt = bs.DataSource as DataTable; DataRow[] drs = dt.Select("MaKH = '" + gluKH.EditValue.ToString() + "'"); if (drs.Length == 0) return; DataRow drKH = drs[0]; if (drKH == null) return; string pl = drKH["Nhom1"].ToString(); if (pl == "") { XtraMessageBox.Show("Khách hàng này chưa phân loại, không thể lấy được giá bán cho khách hàng này!", Config.GetValue("PackageName").ToString(), MessageBoxButtons.OK); return; } object mahh = drCT[cl]; //object code = drCT["Description"]; bs = gluHH.DataSource as BindingSource; if (bs == null || bs.DataSource.GetType() != typeof(DataTable)) return; dt = bs.DataSource as DataTable; drs = dt.Select("MaVT = '" + mahh.ToString() + "' or PNo = '" + mahh.ToString() + "'"); if (drs.Length == 0) return; DataRow drHH = drs[0]; string nhom = drHH["Nhom"].ToString(); if (nhom == "") XtraMessageBox.Show("Mặt hàng " + drHH["TenVT2"].ToString() + " chưa phân nhóm, có thể ảnh hưởng đến cách tính giá bán!", Config.GetValue("PackageName").ToString(), MessageBoxButtons.OK); object mapk = drCT["MaVT2"]; int k = gluPK.GetIndexByKeyValue(mapk); DataRow drPK = null; if (k >= 0) drPK = gluPK.View.GetDataRow(k); object ghh, gpk; switch (pl) { case "OEM": case "TRA": ghh = drHH == null ? 0 : drHH["GiaOME"]; gpk = drPK == null ? 0 : drPK["GiaOME"]; break; case "DIS": ghh = drHH == null ? 0 : drHH["GiaDTB"]; gpk = drPK == null ? 0 : drPK["GiaDTB"]; break; default: ghh = drHH == null ? 0 : drHH["GiaBan"]; gpk = drPK == null ? 0 : drPK["GiaBan"]; break; } if (cl == "Description") { string dvt = drCT["MaDVT"].ToString(); if (dvt == "") //chua co dvt thi chua tinh gia ban return; drCT["GiaGoc"] = ghh; decimal gg = decimal.Parse(drCT["GiaGoc"].ToString()); #region Cách tính cũ //if (drHH["MaDVT"].ToString() != "7") //mã của dvt m2 // drCT["Gia"] = gg; //else //{ // decimal r = decimal.Parse(drCT["Rong"].ToString()); // decimal d = decimal.Parse(drCT["Cao"].ToString()); // if (nhom == "HPFB" || nhom == "SB") // drCT["Gia"] = r == 0 ? gg : (r * (d + 100) / 1000000) * gg; // else // drCT["Gia"] = r == 0 ? gg : (r * d / 1000000) * gg; //} #endregion decimal sl = decimal.Parse(drCT["SoLuong"].ToString()); if (nhom == "FB" || nhom == "SB") { decimal d = decimal.Parse(drCT["Cao"].ToString()); decimal r = decimal.Parse(drCT["Rong"].ToString()); decimal t = Convert.ToDecimal(drCT["PE"]) + Convert.ToDecimal(drCT["HS"]) + Convert.ToDecimal(drCT["AT"]); if (t > 0) d = (nhom == "SB") ? d + 120 : d + 80; if (dvt == "7") //m2 { drCT["Ps"] = (d * r) / 1000000 * gg; if (sl > 0) drCT["Gia"] = Convert.ToDecimal(drCT["Ps"]) / sl; else drCT["Gia"] = 0; } else if (dvt == "10") //m { drCT["Ps"] = (d * r) / 1000000 * gg; if (d > 0) drCT["Gia"] = Convert.ToDecimal(drCT["Ps"]) / d * 1000; else drCT["Gia"] = 0; } else { drCT["Ps"] = (d * r) / 1000000 * gg * sl; if (sl > 0) drCT["Gia"] = Convert.ToDecimal(drCT["Ps"]) / sl; else drCT["Gia"] = 0; } } else { drCT["Gia"] = gg; drCT["Ps"] = decimal.Parse(drCT["Gia"].ToString()) * sl; } } else { drCT["DGPKGoc"] = gpk; decimal gg = decimal.Parse(drCT["DGPKGOC"].ToString()); if (drPK["MaDVT"].ToString() != "7") //mã của dvt m2 drCT["DGPK"] = gg; else { decimal r = decimal.Parse(drCT["RongPK"].ToString()); decimal d = decimal.Parse(drCT["CaoPK"].ToString()); drCT["DGPK"] = r == 0 ? gg : (r * d / 1000000) * gg; } } }