FrmSelectPayOpenSingle.cs 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. namespace LYFZ.Software.MainBusiness.FinancialManagement.OrdersReceivables
  10. {
  11. public partial class FrmSelectPayOpenSingle : LYFZ.Software.UI.FinancialManagement.OrdersReceivables.FrmSelectPayOpenSingle
  12. {
  13. public string Str1 = "";
  14. public string Str2 = "";
  15. public string Str3 = "";
  16. DataTable departUserDt;
  17. DataTable companyDt;
  18. /// <summary>
  19. /// 是否显示离职人员
  20. /// </summary>
  21. public bool IsShowResign;
  22. public FrmSelectPayOpenSingle()
  23. {
  24. btn_Filter.Click += Btn_Filter_Click;
  25. departUserDt = LYFZ.DAL.DAL_ErpUser.GetCompanyDepartmentDataTable;
  26. companyDt = new BLL.BLL_UserRightsTable().GetUserRightsTableByUid(BLL.BLL_ErpUser.UsersModel.User_EmployeeID);
  27. tb_Person.EventTextBoxEx_TextChanged += Tb_Person_EventTextBoxEx_TextChanged;
  28. }
  29. private void Tb_Person_EventTextBoxEx_TextChanged(object sender, EventArgs e)
  30. {
  31. Btn_Filter_Click(sender, e);
  32. }
  33. private void Btn_Filter_Click(object sender, EventArgs e)
  34. {
  35. this.treevOrdersPersonnel.Nodes.Clear();
  36. if (!string.IsNullOrEmpty(tb_Person.Text))
  37. {
  38. List<DataRow> filterList = departUserDt.AsEnumerable().Where(p =>
  39. p.Field<string>("姓名").Contains(tb_Person.Text)
  40. || BLL.Common.BLL_Com_Data.GetSpellCode(p.Field<string>("姓名")).Contains(tb_Person.Text.ToUpper())).ToList();
  41. if (filterList.Count > 0)
  42. {
  43. DataTable filterUserList = filterList.CopyToDataTable();
  44. BindOrderPersonnelCompanyDepartmentUser(
  45. filterUserList,
  46. companyDt.AsEnumerable().CopyToDataTable()
  47. );
  48. }
  49. this.treevOrdersPersonnel.ExpandAll();
  50. }
  51. else
  52. {
  53. BindOrderPersonnelCompanyDepartmentUser(
  54. departUserDt,
  55. companyDt.AsEnumerable().CopyToDataTable()
  56. );
  57. }
  58. }
  59. private void BindOrderPersonnelCompanyDepartmentUser(DataTable dt, DataTable dataTable)
  60. {
  61. //dt = LYFZ.DAL.DAL_ErpUser.GetCompanyDepartmentDataTable;
  62. //dataTable = new BLL.BLL_UserRightsTable().GetUserRightsTableByUid(BLL.BLL_ErpUser.UsersModel.User_EmployeeID);
  63. Dictionary<string, string> companyList = new Dictionary<string, string>();
  64. if (dataTable.Rows.Count > 0)
  65. {
  66. foreach (DataRow dr in dataTable.Rows)
  67. {
  68. companyList.Add(dr["Urt_SID"].ToString(), dr["Company_Name"].ToString());
  69. }
  70. }
  71. else
  72. {
  73. //companyList.Add(BLL.BLL_ErpUser.UsersModel.User_DividedShop);
  74. companyList.Add(BLL.BLL_ErpUser.UsersModel.User_DividedShop, BLL.BLL_ErpUser.UsersModel.User_DividedShop);
  75. }
  76. //List<DataRow> drList = dt.AsEnumerable().Where(p => companyList.Contains(p.Field<string>("User_DividedShop"))).ToList();
  77. if (companyList.Count > 0)
  78. {
  79. foreach (string key in companyList.Keys)
  80. {
  81. TreeNode root = null;
  82. List<DataRow> drList = dt.AsEnumerable().Where(p => key.Contains(p.Field<string>("User_DividedShop"))).ToList();
  83. Dictionary<string, string> departmentDic = new Dictionary<string, string>();
  84. root = new TreeNode(companyList[key]);
  85. foreach (DataRow dr in drList)
  86. {
  87. if (!departmentDic.ContainsKey(dr["User_Department"].ToString_s()))
  88. {
  89. departmentDic.Add(dr["User_Department"].ToString_s(), dr["部门"].ToString_s());
  90. }
  91. }
  92. foreach (string dpkey in departmentDic.Keys)
  93. {
  94. TreeNode trNode = new TreeNode(departmentDic[dpkey].ToString_s());
  95. //root = new TreeNode(drList[i]["Dt_Name"].ToString());
  96. this.CreateTreeViewDepartmentUser(trNode.Nodes, dpkey.ToString(), key, drList);
  97. root.Nodes.Add(trNode);
  98. }
  99. this.treevOrdersPersonnel.Nodes.Add(root);
  100. }
  101. this.treevOrdersPersonnel.Nodes[0].Expand();
  102. }
  103. }
  104. DataTable ustbl = new DataTable();
  105. /// <summary>
  106. /// 绑定第二级人员
  107. /// </summary>
  108. /// <param name="nodes">TreeView的节点集合</param>
  109. /// <param name="dataSource">数据源</param>
  110. /// <param name="parentid"></param>
  111. private void CreateTreeViewDepartmentUser(TreeNodeCollection nodes, string ClassCode, string divShopID, List<DataRow> userDrList = null)
  112. {
  113. if (ClassCode != "")
  114. {
  115. if (userDrList == null)
  116. {
  117. if (ustbl.Rows.Count <= 0)
  118. { ustbl = LYFZ.Software.MainBusiness.DoorCityProcess.PublicGetVersionDataTable.GetUserTable(IsShowResign); }
  119. DataRow[] dtRow = ustbl.Select("User_Department='" + ClassCode + "' and User_DividedShop='" + divShopID + "'");
  120. if (dtRow.Length > 0)
  121. {
  122. TreeNode node;
  123. for (int i = 0; i < dtRow.Length; i++)
  124. {
  125. node = new TreeNode();
  126. node.Text = dtRow[i]["User_Name"].ToString();
  127. node.Tag = dtRow[i]["User_EmployeeID"].ToString();
  128. node.Name = dtRow[i]["User_Account"].ToString();
  129. nodes.Add(node);
  130. }
  131. }
  132. }
  133. else
  134. {
  135. DataRow[] dtRow = userDrList.Where(p => p.Field<string>("User_Department") == ClassCode).ToArray();
  136. if (dtRow.Length > 0)
  137. {
  138. TreeNode node;
  139. for (int i = 0; i < dtRow.Length; i++)
  140. {
  141. node = new TreeNode();
  142. node.Text = dtRow[i]["姓名"].ToString();
  143. node.Tag = dtRow[i]["User_EmployeeID"].ToString();
  144. node.Name = dtRow[i]["用户帐号"].ToString();
  145. nodes.Add(node);
  146. }
  147. }
  148. }
  149. }
  150. }
  151. #region 加载
  152. protected override void FrmSelectPayOpenSingle_Shown(object sender, EventArgs e)
  153. {
  154. try
  155. {
  156. BindOrderPersonnelCompanyDepartmentUser(
  157. departUserDt.AsEnumerable().CopyToDataTable(),
  158. companyDt.AsEnumerable().CopyToDataTable()
  159. );
  160. //DataTable tbl = new BLL.BLL_ErpDepartment().GetAllList(filedOrder:"ID").Tables[0];
  161. //if (tbl.Rows.Count > 0)
  162. //{
  163. // TreeNode root = null;
  164. // for (int i = 0; i < tbl.Rows.Count; i++)
  165. // {
  166. // //if (i == 0)
  167. // //{
  168. // // root = new TreeNode(" ");
  169. // // this.treevOrdersPersonnel.Nodes.Add(root);
  170. // //}
  171. // root = new TreeNode(tbl.Rows[i]["Dt_Name"].ToString());
  172. // this.CreateTreeViewDepartmentUser(root.Nodes, tbl.Rows[i]["ID"].ToString());
  173. // this.treevOrdersPersonnel.Nodes.Add(root);
  174. // }
  175. // this.treevOrdersPersonnel.Nodes[0].Expand();
  176. //}
  177. //if (this.txtPersonnel.Tag != null)
  178. //{
  179. // string[] Str_Key = this.txtPersonnel.Text.Trim().Split(',');
  180. // string[] Str_Value = this.txtPersonnel.Tag.ToString().Trim().Split('|')[0].Trim().Split(',');
  181. // string[] Str_Tag = this.txtPersonnel.Tag.ToString().Trim().Split('|')[1].Trim().Split(',');
  182. // for (int i = 0; i < Str_Key.Length; i++)
  183. // {
  184. // DataGridViewRow dgvr = new DataGridViewRow();
  185. // DataGridViewTextBoxCell cell = null;
  186. // cell = new DataGridViewTextBoxCell();
  187. // cell.Value = Str_Key[i].Trim();
  188. // dgvr.Cells.Add(cell);
  189. // cell = new DataGridViewTextBoxCell();
  190. // cell.Value = Str_Value[i].Trim();
  191. // dgvr.Cells.Add(cell);
  192. // cell = new DataGridViewTextBoxCell();
  193. // cell.Value = Str_Tag[i].Trim() == "1" ? this.rdoVStore.Text.Trim() : this.rdoMStore.Text.Trim();
  194. // dgvr.Cells.Add(cell);
  195. // this.dgvData.Rows.Add(dgvr);
  196. // }
  197. //}
  198. }
  199. catch (Exception ex)
  200. {
  201. MessageBoxCustom.Show(ex.Message);
  202. }
  203. }
  204. #region 创建人员
  205. private void CreateTreeViewDepartmentUser(TreeNodeCollection nodes, string ClassCode)
  206. {
  207. if (ClassCode != "")
  208. {
  209. LYFZ.BLL.BLL_ErpUser BLLerpuser = new BLL.BLL_ErpUser();
  210. DataTable tbl = BLLerpuser.GetList(" User_Department='" + ClassCode + "' and id!='1' and User_Status='在职'").Tables[0];
  211. if (tbl.Rows.Count > 0)
  212. {
  213. TreeNode node;
  214. for (int i = 0; i < tbl.Rows.Count; i++)
  215. {
  216. node = new TreeNode();
  217. node.Text = tbl.Rows[i]["User_Name"].ToString();
  218. node.Tag = tbl.Rows[i]["User_EmployeeID"].ToString();
  219. node.Name = tbl.Rows[i]["User_Account"].ToString();
  220. nodes.Add(node);
  221. }
  222. }
  223. }
  224. }
  225. #endregion
  226. #endregion
  227. #region 增加
  228. protected override void btnRight_Click(object sender, EventArgs e)
  229. {
  230. try
  231. {
  232. if (dgvData.Rows.Count == 4)
  233. {
  234. MessageBoxCustom.Show("最多只能选择4个人员");
  235. return;
  236. }
  237. if (this.treevOrdersPersonnel.Nodes.Count > 0)
  238. {
  239. if (this.treevOrdersPersonnel.SelectedNode.Nodes.Count == 0)//判断选中节点是否有子节点
  240. {
  241. if (this.treevOrdersPersonnel.SelectedNode.Level > 0)
  242. {
  243. bool bl = true;
  244. for (int i = 0; i < this.dgvData.Rows.Count; i++)
  245. {
  246. if (this.dgvData.Rows[i].Cells["UserNumber"].Value == this.treevOrdersPersonnel.SelectedNode.Tag)
  247. { bl = false; break; }
  248. }
  249. if (bl == true)
  250. {
  251. #region
  252. DataGridViewRow dgvr = new DataGridViewRow();
  253. DataGridViewTextBoxCell cell = null;
  254. cell = new DataGridViewTextBoxCell();
  255. cell.Value = this.treevOrdersPersonnel.SelectedNode.Text.ToString();
  256. dgvr.Cells.Add(cell);
  257. cell = new DataGridViewTextBoxCell();
  258. cell.Value = this.treevOrdersPersonnel.SelectedNode.Tag.ToString();
  259. dgvr.Cells.Add(cell);
  260. cell = new DataGridViewTextBoxCell();
  261. if (dgvData.Rows.Count == 0)
  262. {
  263. cell.Value = "100";
  264. }
  265. else
  266. {
  267. cell.Value = "0";
  268. }
  269. dgvr.Cells.Add(cell);
  270. this.dgvData.Rows.Add(dgvr);
  271. #endregion
  272. }
  273. }
  274. }
  275. }
  276. }
  277. catch (Exception ex)
  278. {
  279. MessageBoxCustom.Show(ex.Message);
  280. }
  281. }
  282. #endregion
  283. #region 双击树增加
  284. protected override void treevOrdersPersonnel_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
  285. {
  286. try
  287. {
  288. if (dgvData.Rows.Count > 8)
  289. {
  290. MessageBoxCustom.Show("最多只能选择8个人员");
  291. return;
  292. }
  293. if (this.treevOrdersPersonnel.Nodes.Count > 0)
  294. {
  295. if (this.treevOrdersPersonnel.SelectedNode != null)
  296. {
  297. if (this.treevOrdersPersonnel.SelectedNode.Nodes.Count == 0)//判断选中节点是否有子节点
  298. {
  299. if (this.treevOrdersPersonnel.SelectedNode.Level > 0)
  300. {
  301. bool bl = true;
  302. for (int i = 0; i < this.dgvData.Rows.Count; i++)
  303. {
  304. if (this.dgvData.Rows[i].Cells["UserNumber"].Value == this.treevOrdersPersonnel.SelectedNode.Tag)
  305. { bl = false; break; }
  306. }
  307. if (bl == true)
  308. {
  309. #region
  310. DataGridViewRow dgvr = new DataGridViewRow();
  311. DataGridViewTextBoxCell cell = null;
  312. cell = new DataGridViewTextBoxCell();
  313. cell.Value = this.treevOrdersPersonnel.SelectedNode.Text.ToString();
  314. dgvr.Cells.Add(cell);
  315. cell = new DataGridViewTextBoxCell();
  316. cell.Value = this.treevOrdersPersonnel.SelectedNode.Tag.ToString();
  317. dgvr.Cells.Add(cell);
  318. cell = new DataGridViewTextBoxCell();
  319. if (dgvData.Rows.Count == 0)
  320. {
  321. cell.Value = "100";
  322. }
  323. else
  324. {
  325. cell.Value = "0";
  326. }
  327. dgvr.Cells.Add(cell);
  328. this.dgvData.Rows.Add(dgvr);
  329. #endregion
  330. }
  331. }
  332. }
  333. }
  334. }
  335. }
  336. catch (Exception ex)
  337. {
  338. MessageBoxCustom.Show(ex.Message);
  339. }
  340. }
  341. #endregion
  342. #region 移除
  343. protected override void btnLeft_Click(object sender, EventArgs e)
  344. {
  345. try
  346. {
  347. if (this.dgvData.Rows.Count > 0)
  348. {
  349. if (this.dgvData.SelectedRows.Count > 0)
  350. { this.dgvData.Rows.RemoveAt(this.dgvData.CurrentRow.Index); }
  351. }
  352. }
  353. catch (Exception ex)
  354. {
  355. MessageBoxCustom.Show(ex.Message);
  356. }
  357. }
  358. #endregion
  359. #region 取消
  360. protected override void btnCancel_Click(object sender, EventArgs e)
  361. { this.Close(); }
  362. #endregion
  363. #region 确定
  364. protected override void btnOK_Click(object sender, EventArgs e)
  365. {
  366. try
  367. {
  368. decimal SumTpc_CommissionPercentage = 0;
  369. if (dgvData.Rows.Count == 0)
  370. {
  371. MessageBoxCustom.Show("请选择人员!");
  372. return;
  373. }
  374. for (int i = 0; i < dgvData.Rows.Count; i++)
  375. {
  376. decimal Tpc_CommissionPercentage = Convert.ToDecimal(dgvData.Rows[i].Cells["Tpc_CommissionPercentage"].Value);
  377. string UserName = dgvData.Rows[i].Cells["UserName"].Value.ToString();
  378. string UserNumber = dgvData.Rows[i].Cells["UserNumber"].Value.ToString();
  379. SumTpc_CommissionPercentage += Tpc_CommissionPercentage;
  380. Str1 += UserName + ",";//"(" + Tpc_CommissionPercentage + "%)" + ",";
  381. Str2 += UserNumber + ",";//+"|"+Tpc_CommissionPercentage+",";
  382. Str3 += UserNumber+",";
  383. }
  384. //if (SumTpc_CommissionPercentage != 100)
  385. //{
  386. // //MessageBoxCustom.Show("提成百分比例必须等于100");
  387. // Str1="";
  388. // Str2="";
  389. // Str3 = "";
  390. // return;
  391. //}
  392. Str1 = Str1.TrimEnd(',');
  393. Str2 = Str2.TrimEnd(',');
  394. Str3= Str3.TrimEnd(',');
  395. this.Close();
  396. }
  397. catch (Exception ex)
  398. {
  399. MessageBoxCustom.Show(ex.Message);
  400. }
  401. }
  402. #endregion
  403. #region 输入框限制
  404. protected override void dgvData_CellValueChanged(object sender, DataGridViewCellEventArgs e)
  405. {
  406. try
  407. {
  408. if (dgvData.Rows.Count > 0)
  409. {
  410. if (dgvData.CurrentRow.Cells["Tpc_CommissionPercentage"].Value == null)
  411. {
  412. MessageBoxCustom.Show("提成比例不能为空!");
  413. dgvData.CurrentRow.Cells["Tpc_CommissionPercentage"].Value = "0";
  414. return;
  415. }
  416. if (Command.Command_Validate.IsNumeric(dgvData.CurrentRow.Cells["Tpc_CommissionPercentage"].Value.ToString()) == false)
  417. {
  418. MessageBoxCustom.Show("只能输入数字或者小数!");
  419. dgvData.CurrentRow.Cells["Tpc_CommissionPercentage"].Value = "0";
  420. return;
  421. }
  422. }
  423. }
  424. catch (Exception ex)
  425. {
  426. MessageBoxCustom.Show(ex.Message);
  427. }
  428. }
  429. #endregion
  430. }
  431. }