using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace LYFZ.Software.MainBusiness.FinancialManagement.OrdersReceivables { public partial class FrmSelectPayOpenSingle : LYFZ.Software.UI.FinancialManagement.OrdersReceivables.FrmSelectPayOpenSingle { public string Str1 = ""; public string Str2 = ""; public string Str3 = ""; DataTable departUserDt; DataTable companyDt; /// /// 是否显示离职人员 /// public bool IsShowResign; public FrmSelectPayOpenSingle() { btn_Filter.Click += Btn_Filter_Click; departUserDt = LYFZ.DAL.DAL_ErpUser.GetCompanyDepartmentDataTable; companyDt = new BLL.BLL_UserRightsTable().GetUserRightsTableByUid(BLL.BLL_ErpUser.UsersModel.User_EmployeeID); tb_Person.EventTextBoxEx_TextChanged += Tb_Person_EventTextBoxEx_TextChanged; } private void Tb_Person_EventTextBoxEx_TextChanged(object sender, EventArgs e) { Btn_Filter_Click(sender, e); } private void Btn_Filter_Click(object sender, EventArgs e) { this.treevOrdersPersonnel.Nodes.Clear(); if (!string.IsNullOrEmpty(tb_Person.Text)) { List filterList = departUserDt.AsEnumerable().Where(p => p.Field("姓名").Contains(tb_Person.Text) || BLL.Common.BLL_Com_Data.GetSpellCode(p.Field("姓名")).Contains(tb_Person.Text.ToUpper())).ToList(); if (filterList.Count > 0) { DataTable filterUserList = filterList.CopyToDataTable(); BindOrderPersonnelCompanyDepartmentUser( filterUserList, companyDt.AsEnumerable().CopyToDataTable() ); } this.treevOrdersPersonnel.ExpandAll(); } else { BindOrderPersonnelCompanyDepartmentUser( departUserDt, companyDt.AsEnumerable().CopyToDataTable() ); } } private void BindOrderPersonnelCompanyDepartmentUser(DataTable dt, DataTable dataTable) { //dt = LYFZ.DAL.DAL_ErpUser.GetCompanyDepartmentDataTable; //dataTable = new BLL.BLL_UserRightsTable().GetUserRightsTableByUid(BLL.BLL_ErpUser.UsersModel.User_EmployeeID); Dictionary companyList = new Dictionary(); if (dataTable.Rows.Count > 0) { foreach (DataRow dr in dataTable.Rows) { companyList.Add(dr["Urt_SID"].ToString(), dr["Company_Name"].ToString()); } } else { //companyList.Add(BLL.BLL_ErpUser.UsersModel.User_DividedShop); companyList.Add(BLL.BLL_ErpUser.UsersModel.User_DividedShop, BLL.BLL_ErpUser.UsersModel.User_DividedShop); } //List drList = dt.AsEnumerable().Where(p => companyList.Contains(p.Field("User_DividedShop"))).ToList(); if (companyList.Count > 0) { foreach (string key in companyList.Keys) { TreeNode root = null; List drList = dt.AsEnumerable().Where(p => key.Contains(p.Field("User_DividedShop"))).ToList(); Dictionary departmentDic = new Dictionary(); root = new TreeNode(companyList[key]); foreach (DataRow dr in drList) { if (!departmentDic.ContainsKey(dr["User_Department"].ToString_s())) { departmentDic.Add(dr["User_Department"].ToString_s(), dr["部门"].ToString_s()); } } foreach (string dpkey in departmentDic.Keys) { TreeNode trNode = new TreeNode(departmentDic[dpkey].ToString_s()); //root = new TreeNode(drList[i]["Dt_Name"].ToString()); this.CreateTreeViewDepartmentUser(trNode.Nodes, dpkey.ToString(), key, drList); root.Nodes.Add(trNode); } this.treevOrdersPersonnel.Nodes.Add(root); } this.treevOrdersPersonnel.Nodes[0].Expand(); } } DataTable ustbl = new DataTable(); /// /// 绑定第二级人员 /// /// TreeView的节点集合 /// 数据源 /// private void CreateTreeViewDepartmentUser(TreeNodeCollection nodes, string ClassCode, string divShopID, List userDrList = null) { if (ClassCode != "") { if (userDrList == null) { if (ustbl.Rows.Count <= 0) { ustbl = LYFZ.Software.MainBusiness.DoorCityProcess.PublicGetVersionDataTable.GetUserTable(IsShowResign); } DataRow[] dtRow = ustbl.Select("User_Department='" + ClassCode + "' and User_DividedShop='" + divShopID + "'"); if (dtRow.Length > 0) { TreeNode node; for (int i = 0; i < dtRow.Length; i++) { node = new TreeNode(); node.Text = dtRow[i]["User_Name"].ToString(); node.Tag = dtRow[i]["User_EmployeeID"].ToString(); node.Name = dtRow[i]["User_Account"].ToString(); nodes.Add(node); } } } else { DataRow[] dtRow = userDrList.Where(p => p.Field("User_Department") == ClassCode).ToArray(); if (dtRow.Length > 0) { TreeNode node; for (int i = 0; i < dtRow.Length; i++) { node = new TreeNode(); node.Text = dtRow[i]["姓名"].ToString(); node.Tag = dtRow[i]["User_EmployeeID"].ToString(); node.Name = dtRow[i]["用户帐号"].ToString(); nodes.Add(node); } } } } } #region 加载 protected override void FrmSelectPayOpenSingle_Shown(object sender, EventArgs e) { try { BindOrderPersonnelCompanyDepartmentUser( departUserDt.AsEnumerable().CopyToDataTable(), companyDt.AsEnumerable().CopyToDataTable() ); //DataTable tbl = new BLL.BLL_ErpDepartment().GetAllList(filedOrder:"ID").Tables[0]; //if (tbl.Rows.Count > 0) //{ // TreeNode root = null; // for (int i = 0; i < tbl.Rows.Count; i++) // { // //if (i == 0) // //{ // // root = new TreeNode(" "); // // this.treevOrdersPersonnel.Nodes.Add(root); // //} // root = new TreeNode(tbl.Rows[i]["Dt_Name"].ToString()); // this.CreateTreeViewDepartmentUser(root.Nodes, tbl.Rows[i]["ID"].ToString()); // this.treevOrdersPersonnel.Nodes.Add(root); // } // this.treevOrdersPersonnel.Nodes[0].Expand(); //} //if (this.txtPersonnel.Tag != null) //{ // string[] Str_Key = this.txtPersonnel.Text.Trim().Split(','); // string[] Str_Value = this.txtPersonnel.Tag.ToString().Trim().Split('|')[0].Trim().Split(','); // string[] Str_Tag = this.txtPersonnel.Tag.ToString().Trim().Split('|')[1].Trim().Split(','); // for (int i = 0; i < Str_Key.Length; i++) // { // DataGridViewRow dgvr = new DataGridViewRow(); // DataGridViewTextBoxCell cell = null; // cell = new DataGridViewTextBoxCell(); // cell.Value = Str_Key[i].Trim(); // dgvr.Cells.Add(cell); // cell = new DataGridViewTextBoxCell(); // cell.Value = Str_Value[i].Trim(); // dgvr.Cells.Add(cell); // cell = new DataGridViewTextBoxCell(); // cell.Value = Str_Tag[i].Trim() == "1" ? this.rdoVStore.Text.Trim() : this.rdoMStore.Text.Trim(); // dgvr.Cells.Add(cell); // this.dgvData.Rows.Add(dgvr); // } //} } catch (Exception ex) { MessageBoxCustom.Show(ex.Message); } } #region 创建人员 private void CreateTreeViewDepartmentUser(TreeNodeCollection nodes, string ClassCode) { if (ClassCode != "") { LYFZ.BLL.BLL_ErpUser BLLerpuser = new BLL.BLL_ErpUser(); DataTable tbl = BLLerpuser.GetList(" User_Department='" + ClassCode + "' and id!='1' and User_Status='在职'").Tables[0]; if (tbl.Rows.Count > 0) { TreeNode node; for (int i = 0; i < tbl.Rows.Count; i++) { node = new TreeNode(); node.Text = tbl.Rows[i]["User_Name"].ToString(); node.Tag = tbl.Rows[i]["User_EmployeeID"].ToString(); node.Name = tbl.Rows[i]["User_Account"].ToString(); nodes.Add(node); } } } } #endregion #endregion #region 增加 protected override void btnRight_Click(object sender, EventArgs e) { try { if (dgvData.Rows.Count == 4) { MessageBoxCustom.Show("最多只能选择4个人员"); return; } if (this.treevOrdersPersonnel.Nodes.Count > 0) { if (this.treevOrdersPersonnel.SelectedNode.Nodes.Count == 0)//判断选中节点是否有子节点 { if (this.treevOrdersPersonnel.SelectedNode.Level > 0) { bool bl = true; for (int i = 0; i < this.dgvData.Rows.Count; i++) { if (this.dgvData.Rows[i].Cells["UserNumber"].Value == this.treevOrdersPersonnel.SelectedNode.Tag) { bl = false; break; } } if (bl == true) { #region DataGridViewRow dgvr = new DataGridViewRow(); DataGridViewTextBoxCell cell = null; cell = new DataGridViewTextBoxCell(); cell.Value = this.treevOrdersPersonnel.SelectedNode.Text.ToString(); dgvr.Cells.Add(cell); cell = new DataGridViewTextBoxCell(); cell.Value = this.treevOrdersPersonnel.SelectedNode.Tag.ToString(); dgvr.Cells.Add(cell); cell = new DataGridViewTextBoxCell(); if (dgvData.Rows.Count == 0) { cell.Value = "100"; } else { cell.Value = "0"; } dgvr.Cells.Add(cell); this.dgvData.Rows.Add(dgvr); #endregion } } } } } catch (Exception ex) { MessageBoxCustom.Show(ex.Message); } } #endregion #region 双击树增加 protected override void treevOrdersPersonnel_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) { try { if (dgvData.Rows.Count > 8) { MessageBoxCustom.Show("最多只能选择8个人员"); return; } if (this.treevOrdersPersonnel.Nodes.Count > 0) { if (this.treevOrdersPersonnel.SelectedNode != null) { if (this.treevOrdersPersonnel.SelectedNode.Nodes.Count == 0)//判断选中节点是否有子节点 { if (this.treevOrdersPersonnel.SelectedNode.Level > 0) { bool bl = true; for (int i = 0; i < this.dgvData.Rows.Count; i++) { if (this.dgvData.Rows[i].Cells["UserNumber"].Value == this.treevOrdersPersonnel.SelectedNode.Tag) { bl = false; break; } } if (bl == true) { #region DataGridViewRow dgvr = new DataGridViewRow(); DataGridViewTextBoxCell cell = null; cell = new DataGridViewTextBoxCell(); cell.Value = this.treevOrdersPersonnel.SelectedNode.Text.ToString(); dgvr.Cells.Add(cell); cell = new DataGridViewTextBoxCell(); cell.Value = this.treevOrdersPersonnel.SelectedNode.Tag.ToString(); dgvr.Cells.Add(cell); cell = new DataGridViewTextBoxCell(); if (dgvData.Rows.Count == 0) { cell.Value = "100"; } else { cell.Value = "0"; } dgvr.Cells.Add(cell); this.dgvData.Rows.Add(dgvr); #endregion } } } } } } catch (Exception ex) { MessageBoxCustom.Show(ex.Message); } } #endregion #region 移除 protected override void btnLeft_Click(object sender, EventArgs e) { try { if (this.dgvData.Rows.Count > 0) { if (this.dgvData.SelectedRows.Count > 0) { this.dgvData.Rows.RemoveAt(this.dgvData.CurrentRow.Index); } } } catch (Exception ex) { MessageBoxCustom.Show(ex.Message); } } #endregion #region 取消 protected override void btnCancel_Click(object sender, EventArgs e) { this.Close(); } #endregion #region 确定 protected override void btnOK_Click(object sender, EventArgs e) { try { decimal SumTpc_CommissionPercentage = 0; if (dgvData.Rows.Count == 0) { MessageBoxCustom.Show("请选择人员!"); return; } for (int i = 0; i < dgvData.Rows.Count; i++) { decimal Tpc_CommissionPercentage = Convert.ToDecimal(dgvData.Rows[i].Cells["Tpc_CommissionPercentage"].Value); string UserName = dgvData.Rows[i].Cells["UserName"].Value.ToString(); string UserNumber = dgvData.Rows[i].Cells["UserNumber"].Value.ToString(); SumTpc_CommissionPercentage += Tpc_CommissionPercentage; Str1 += UserName + ",";//"(" + Tpc_CommissionPercentage + "%)" + ","; Str2 += UserNumber + ",";//+"|"+Tpc_CommissionPercentage+","; Str3 += UserNumber+","; } //if (SumTpc_CommissionPercentage != 100) //{ // //MessageBoxCustom.Show("提成百分比例必须等于100"); // Str1=""; // Str2=""; // Str3 = ""; // return; //} Str1 = Str1.TrimEnd(','); Str2 = Str2.TrimEnd(','); Str3= Str3.TrimEnd(','); this.Close(); } catch (Exception ex) { MessageBoxCustom.Show(ex.Message); } } #endregion #region 输入框限制 protected override void dgvData_CellValueChanged(object sender, DataGridViewCellEventArgs e) { try { if (dgvData.Rows.Count > 0) { if (dgvData.CurrentRow.Cells["Tpc_CommissionPercentage"].Value == null) { MessageBoxCustom.Show("提成比例不能为空!"); dgvData.CurrentRow.Cells["Tpc_CommissionPercentage"].Value = "0"; return; } if (Command.Command_Validate.IsNumeric(dgvData.CurrentRow.Cells["Tpc_CommissionPercentage"].Value.ToString()) == false) { MessageBoxCustom.Show("只能输入数字或者小数!"); dgvData.CurrentRow.Cells["Tpc_CommissionPercentage"].Value = "0"; return; } } } catch (Exception ex) { MessageBoxCustom.Show(ex.Message); } } #endregion } }