SelectWorkPersonSuperSmallForm.cs 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390
  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.CameraControlBook.SuperSmallForm
  10. {
  11. public partial class SelectWorkPersonSuperSmallForm : LYFZ.Software.UI.CameraControlBook.SuperSmallForm.SelectWorkPersonSuperSmallForm
  12. {
  13. LYFZ.BLL.BLL_ErpOrder orbll = new BLL.BLL_ErpOrder();
  14. LYFZ.BLL.BLL_ErpOrderAnPaiDepartmentRecord ordrbll = new BLL.BLL_ErpOrderAnPaiDepartmentRecord();
  15. public SelectWorkPersonSuperSmallForm()
  16. {
  17. this.Load += SelectWorkPersonSuperSmallForm_Load;
  18. this.Shown += SelectWorkPersonSuperSmallForm_Shown;
  19. this.btnSaveed.Click += btnSaveed_Click;
  20. this.btnCancel.Click += btnCancel_Click;
  21. this.dgvData.MouseDoubleClick += dgvData_MouseDoubleClick;
  22. this.cmbtreevDepartment.ComboBoxTree_NodeMouseClick += cmbtreevDepartment_ComboBoxTree_NodeMouseClick;
  23. this.cmbtreevStoreName.ComboBoxTree_NodeMouseClick += cmbtreevStoreName_ComboBoxTree_NodeMouseClick;
  24. }
  25. /// <summary>
  26. /// 日期
  27. /// </summary>
  28. public string StrTime = "";
  29. /// <summary>
  30. /// 加载的类型
  31. /// </summary>
  32. public LYFZ.EnumPublic.EnumWorkPersonType WorkPersonType;
  33. /// <summary>
  34. /// 是否保存
  35. /// </summary>
  36. public bool IsSaveed = false;
  37. /// <summary>
  38. /// 选择的工作人员的编号
  39. /// </summary>
  40. public string StrPersonNumber;
  41. /// <summary>
  42. /// 选择的工作人员的姓名
  43. /// </summary>
  44. public string StrPersonName;
  45. /// <summary>
  46. /// 窗体加载事件
  47. /// </summary>
  48. /// <param name="sender"></param>
  49. /// <param name="e"></param>
  50. void SelectWorkPersonSuperSmallForm_Load(object sender, EventArgs e)
  51. {
  52. this.Text = "安排" + WorkPersonType.ToString().Trim() + "工作";
  53. LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.BindComboBoxTreeView_StoreName(this.cmbtreevStoreName, IsFirstNodeName: "全部");
  54. if (this.cmbtreevStoreName.Nodes.Count == 1)
  55. {
  56. this.cmbtreevStoreName.Visible = false;
  57. this.labelEx2.Visible = false;
  58. }
  59. string StrAddName = "";
  60. if (this.cmbtreevStoreName.Visible)
  61. {
  62. if (this.cmbtreevStoreName.Nodes.Count > 1)
  63. { StrAddName = ",所属分店"; }
  64. }
  65. string StrColumns = "员工编号,部门,员工姓名,已安排数" + StrAddName + ",是否休息";
  66. this.dgvData.DataColumns(StrColumns, strHideField: "员工编号");
  67. this.dgvData.Columns["已安排数"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
  68. DataTable tbl = orbll.GetView_Custom("tb_ErpDepartment", StrWhere: "", ShowColumnName: "Dt_Name").Tables[0];
  69. TreeNode root = null;
  70. for (int i = 0; i < tbl.Rows.Count; i++)
  71. {
  72. if (i == 0)
  73. {
  74. root = new TreeNode();
  75. root.Text = "全部";
  76. root.Tag = "全部";
  77. this.cmbtreevDepartment.Nodes.Add(root);
  78. }
  79. root = new TreeNode();
  80. root.Text = tbl.Rows[i]["Dt_Name"].ToString().Trim();
  81. root.Tag = tbl.Rows[i]["Dt_Name"].ToString().Trim();
  82. this.cmbtreevDepartment.Nodes.Add(root);
  83. }
  84. this.cmbtreevDepartment.TextFindTag("全部");
  85. if (!string.IsNullOrEmpty(StrTime))
  86. {
  87. switch (WorkPersonType)
  88. {
  89. case LYFZ.EnumPublic.EnumWorkPersonType.选礼服师:
  90. tbl2 = orbll.GetView_Custom("tb_ErpOrderDigital", StrWhere: "Ordv_ReservationClothingName != ''" + LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetDateTime("Ordv_ReservationClothingTime", StrTime, StrTime), ShowColumnName: "Ordv_ReservationClothingName AS 员工编号", GroupBy: "Ordv_ReservationClothingName,Ordv_ViceNumber").Tables[0];
  91. break;
  92. case LYFZ.EnumPublic.EnumWorkPersonType.摄影师:
  93. tbl2 = orbll.GetView_Custom("tb_ErpOrdersPhotography", StrWhere: "Ordpg_ReservationPhotographyName != ''" + LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetDateTime("Ordpg_ReservationPhotographyTime", StrTime, StrTime), ShowColumnName: "Ordpg_ReservationPhotographyName AS 员工编号", GroupBy: "Ordpg_ReservationPhotographyName,Ordpg_ViceNumber").Tables[0];
  94. break;
  95. case LYFZ.EnumPublic.EnumWorkPersonType.摄影助理:
  96. tbl2 = orbll.GetView_Custom("tb_ErpOrdersPhotography", StrWhere: "Ordpg_ReservationPhotographyAssistant != ''" + LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetDateTime("Ordpg_ReservationPhotographyTime", StrTime, StrTime), ShowColumnName: "Ordpg_ReservationPhotographyAssistant AS 员工编号", GroupBy: "Ordpg_ReservationPhotographyAssistant,Ordpg_ViceNumber").Tables[0];
  97. break;
  98. case LYFZ.EnumPublic.EnumWorkPersonType.化妆师:
  99. tbl2 = orbll.GetView_Custom("tb_ErpOrdersPhotography", StrWhere: "Ordpg_ReservationMakeupArtist != ''" + LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetDateTime("Ordpg_ReservationPhotographyTime", StrTime, StrTime), ShowColumnName: "Ordpg_ReservationMakeupArtist AS 员工编号", GroupBy: "Ordpg_ReservationMakeupArtist,Ordpg_ViceNumber").Tables[0];
  100. break;
  101. case LYFZ.EnumPublic.EnumWorkPersonType.化妆助理:
  102. tbl2 = orbll.GetView_Custom("tb_ErpOrdersPhotography", StrWhere: "Ordpg_ReservationMakeupAssistant != ''" + LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetDateTime("Ordpg_ReservationPhotographyTime", StrTime, StrTime), ShowColumnName: "Ordpg_ReservationMakeupAssistant AS 员工编号", GroupBy: "Ordpg_ReservationMakeupAssistant,Ordpg_ViceNumber").Tables[0];
  103. break;
  104. case LYFZ.EnumPublic.EnumWorkPersonType.引导师:
  105. tbl2 = orbll.GetView_Custom("tb_ErpOrdersPhotography", StrWhere: "Ordpg_ReservationBootDivision != ''" + LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetDateTime("Ordpg_ReservationPhotographyTime", StrTime, StrTime), ShowColumnName: "Ordpg_ReservationBootDivision AS 员工编号", GroupBy: "Ordpg_ReservationBootDivision,Ordpg_ViceNumber").Tables[0];
  106. break;
  107. case LYFZ.EnumPublic.EnumWorkPersonType.引导助理:
  108. tbl2 = orbll.GetView_Custom("tb_ErpOrdersPhotography", StrWhere: "Ordpg_ReservationBootDivisionAssistant != ''" + LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetDateTime("Ordpg_ReservationPhotographyTime", StrTime, StrTime), ShowColumnName: "Ordpg_ReservationBootDivisionAssistant AS 员工编号", GroupBy: "Ordpg_ReservationBootDivisionAssistant,Ordpg_ViceNumber").Tables[0];
  109. break;
  110. case LYFZ.EnumPublic.EnumWorkPersonType.选片师:
  111. tbl2 = orbll.GetView_Custom("tb_ErpOrderDigital", StrWhere: "Ordv_ReservationFilmSelectionName != ''" + LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetDateTime("Ordv_ReservationFilmSelectionTime", StrTime, StrTime), ShowColumnName: "Ordv_ReservationFilmSelectionName AS 员工编号", GroupBy: "Ordv_ReservationFilmSelectionName,Ordv_ViceNumber").Tables[0];
  112. break;
  113. case LYFZ.EnumPublic.EnumWorkPersonType.看设计师:
  114. tbl2 = orbll.GetView_Custom("tb_ErpOrderDigital", StrWhere: "Ordv_ReservationLookDesignName != ''" + LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetDateTime("Ordv_ReservationLookDesignTime", StrTime, StrTime), ShowColumnName: "Ordv_ReservationLookDesignName AS 员工编号", GroupBy: "Ordv_ReservationLookDesignName,Ordv_ViceNumber").Tables[0];
  115. break;
  116. case LYFZ.EnumPublic.EnumWorkPersonType.取件师:
  117. tbl2 = orbll.GetView_Custom("tb_ErpOrderProductList", StrWhere: "OPlist_ReservationTakeName != ''" + LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetDateTime("OPlist_ReservationTakeTime", StrTime, StrTime), ShowColumnName: "OPlist_ReservationTakeName AS 员工编号", GroupBy: "OPlist_ReservationTakeName,OPlist_ViceNumber").Tables[0];
  118. break;
  119. case LYFZ.EnumPublic.EnumWorkPersonType.服务师1:
  120. case LYFZ.EnumPublic.EnumWorkPersonType.服务师2:
  121. tbl2 = orbll.GetView_Custom("(select Ws_Serviceman1,Ws_Number,Ws_WeddingDate from tb_ErpWeddingService where Ws_Serviceman1 != '' group by Ws_Serviceman1,Ws_Number,Ws_WeddingDate UNION ALL select Ws_Serviceman2,Ws_Number,Ws_WeddingDate from tb_ErpWeddingService where Ws_Serviceman2 != '' group by Ws_Serviceman2,Ws_Number,Ws_WeddingDate) AS tb", StrWhere: LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetDateTime("tb.Ws_WeddingDate", StrTime, StrTime, ConnectWord: ""), ShowColumnName: "Ws_Serviceman1 AS 员工编号").Tables[0];
  122. break;
  123. }
  124. }
  125. }
  126. /// <summary>
  127. /// 窗体加载事件
  128. /// </summary>
  129. /// <param name="sender"></param>
  130. /// <param name="e"></param>
  131. void SelectWorkPersonSuperSmallForm_Shown(object sender, EventArgs e)
  132. {
  133. DataTable dt = orbll.GetView_Custom("tb_ErpOrderAnPaiDepartmentRecord", StrWhere: "Ordor_DividedShop = '" + LYFZ.Software.MainBusiness.CommonLogical.SuccessfulLogin.GetLocalCompanyInfoID() + "' And Ordor_OperatingType = '" + WorkPersonType.ToString().Trim() + "'", ShowColumnName: "Ordor_Department").Tables[0];
  134. if (dt.Rows.Count > 0)
  135. { this.cmbtreevDepartment.TextFindTag(dt.Rows[0]["Ordor_Department"].ToString().Trim()); }
  136. this.GetWorkPerson();
  137. }
  138. DataTable tbl;
  139. DataTable tbl2 = new DataTable();
  140. /// <summary>
  141. /// 获取工作人员
  142. /// </summary>
  143. /// <param name="StrDepartment"></param>
  144. void GetWorkPerson()
  145. {
  146. this.dgvData.Rows.Clear();
  147. string strWhere = "";
  148. if (!string.IsNullOrEmpty(this.cmbtreevDepartment.Text.Trim()) && this.cmbtreevDepartment.Text.Trim() != "全部")
  149. { strWhere = " And Dt_Name = '" + this.cmbtreevDepartment.Text.Trim() + "'"; }
  150. string StrAddName = "";
  151. if (this.cmbtreevStoreName.Visible)
  152. {
  153. if (this.dgvData.Columns.Contains("所属分店"))
  154. { StrAddName = ",Company_Name AS 所属分店"; }
  155. if (!string.IsNullOrEmpty(this.cmbtreevStoreName.Text.Trim()) && this.cmbtreevStoreName.Text.Trim() != "全部")
  156. { strWhere += " And User_DividedShop = '" + this.cmbtreevStoreName.Tag.ToString().Trim() + "'"; }
  157. }
  158. tbl = orbll.GetView_Custom("tb_ErpUser left join tb_ErpDepartment on User_Department = tb_ErpDepartment.ID Left Join tb_ErpCompanyInfo on Company_DividedShop = User_DividedShop", StrWhere: "User_Status = '在职'" + strWhere, ShowColumnName: "User_EmployeeID AS 员工编号,Dt_Name AS 部门, User_Name AS 员工姓名,'' AS 已安排数" + StrAddName + ",'' AS 是否休息", filedOrder: "tb_ErpDepartment.ID").Tables[0];
  159. DataGridViewRow dgvr = new DataGridViewRow();
  160. DataGridViewCell cell = null;
  161. cell = new DataGridViewTextBoxCell();
  162. cell.Value = "";
  163. dgvr.Cells.Add(cell);
  164. cell = new DataGridViewTextBoxCell();
  165. cell.Value = "";
  166. dgvr.Cells.Add(cell);
  167. cell = new DataGridViewTextBoxCell();
  168. cell.Value = "";
  169. dgvr.Cells.Add(cell);
  170. cell = new DataGridViewTextBoxCell();
  171. cell.Value = "";
  172. dgvr.Cells.Add(cell);
  173. if (this.dgvData.Columns.Contains("所属分店"))
  174. {
  175. cell = new DataGridViewTextBoxCell();
  176. cell.Value = "";
  177. dgvr.Cells.Add(cell);
  178. }
  179. cell = new DataGridViewTextBoxCell();
  180. cell.Value = "";
  181. dgvr.Cells.Add(cell);
  182. this.dgvData.Rows.Add(dgvr);
  183. foreach(DataRow dr in tbl.Rows)
  184. {
  185. if (this.dgvData.Rows.Count > 0 && tbl2.Rows.Count > 0)
  186. {
  187. DataRow[] dtRow = tbl2.Select("员工编号 = '" + dr["员工编号"].ToString().Trim() + "'");
  188. if (dtRow.Length > 0)
  189. {
  190. dr["已安排数"] = dtRow.Length.ToString().Trim();
  191. }
  192. }
  193. }
  194. foreach (DataRow dr in tbl.Rows)
  195. {
  196. if (!string.IsNullOrEmpty(StrTime))
  197. {
  198. DataTable dt = LYFZ.Software.MainBusiness.CameraControlBook.PublicClass.GetRestPerson(this.StrTime.Trim());
  199. DataRow[] dtRow = dt.Select(" User_ID = '" + dr["员工编号"] + "' ");
  200. if(dtRow.Length>0)
  201. {
  202. dr["是否休息"] = "休息";
  203. }
  204. }
  205. }
  206. this.dgvData.DataSource(tbl, IsBindColumns: false, IsClearRows: false);
  207. }
  208. //void UserVirtual()
  209. //{
  210. // if (tbl == null /*|| dataTable.Rows.Count == 0*/)
  211. // return;
  212. // // 清空之前的列和行;
  213. // this.dgvData.Rows.Clear();
  214. // dicList.Clear();
  215. // // 开启虚拟模式;
  216. // this.dgvData.VirtualMode = true;
  217. // // 设置总行数;
  218. // this.dgvData.RowCount = tbl.Rows.Count;
  219. // this.dgvData.CellValueNeeded -= DgvData_CellValueNeeded;
  220. // this.dgvData.CellValueNeeded += DgvData_CellValueNeeded;
  221. //}
  222. //Dictionary<string, bool> dicList = new Dictionary<string, bool>();
  223. //private void DgvData_CellValueNeeded(object sender, DataGridViewCellValueEventArgs e)
  224. //{
  225. // if (tbl == null ||
  226. // tbl.Rows.Count == 0 ||
  227. // tbl.Rows.Count == e.RowIndex ||
  228. // e.RowIndex > tbl.Rows.Count)
  229. // return;
  230. // if(dicList.ContainsKey(e.RowIndex+"-"+e.ColumnIndex))
  231. // {
  232. // //return;
  233. // }
  234. // else
  235. // {
  236. // dicList.Add(e.RowIndex + "-" + e.ColumnIndex, true);
  237. // DataGridViewRow dgrCurrent = this.dgvData.Rows[e.RowIndex];
  238. // if (dgrCurrent.DefaultCellStyle.BackColor.IsEmpty)
  239. // dgrCurrent.DefaultCellStyle.BackColor = (e.RowIndex % 2 == 0) ? System.Drawing.Color.PapayaWhip : System.Drawing.Color.PowderBlue;
  240. // }
  241. // // 当前行;
  242. // // StrIsAddColumnsNull不是_dataTable中的列,是手动加进去的(何意义??);
  243. // if (this.dgvData.Columns[e.ColumnIndex].Name.Trim() != "StrIsAddColumnsNull")
  244. // e.Value = tbl.Rows[e.RowIndex][tbl.Columns[e.ColumnIndex].ToString().Trim()].ToString();
  245. // if (tbl.Columns.Count > 0 && this.dgvData.Columns[e.ColumnIndex].Name.Equals("已安排数"))
  246. // {
  247. // if (this.dgvData.Rows.Count > 0 && tbl2.Rows.Count > 0)
  248. // {
  249. // DataRow[] dtRow = tbl2.Select("员工编号 = '" + tbl.Rows[e.RowIndex]["员工编号"].ToString().Trim() + "'");
  250. // if (dtRow.Length > 0)
  251. // {
  252. // //this.dgvData.Rows[i].Cells["已安排数"].Tag = dtRow.Length.ToString().Trim();
  253. // //this.dgvData.Rows[i].Cells["已安排数"].Value = "";
  254. // e.Value = dtRow.Length.ToString().Trim();
  255. // }
  256. // }
  257. // }
  258. // if (tbl.Columns.Count > 0 && dgvData.Columns[e.ColumnIndex].Name.Equals("是否休息"))
  259. // {
  260. // if (!string.IsNullOrEmpty(StrTime))
  261. // {
  262. // DataTable dt = LYFZ.Software.MainBusiness.CameraControlBook.PublicClass.GetRestPerson(this.StrTime.Trim());
  263. // for (int i = 0; i < dt.Rows.Count; i++)
  264. // {
  265. // if (tbl.Rows[e.RowIndex]["员工编号"].ToString().Trim() == dt.Rows[i]["User_ID"].ToString().Trim())
  266. // { e.Value = "休息"; break; }
  267. // }
  268. // }
  269. // }
  270. //}
  271. /// <summary>
  272. /// 确定
  273. /// </summary>
  274. /// <param name="sender"></param>
  275. /// <param name="e"></param>
  276. void btnSaveed_Click(object sender, EventArgs e)
  277. {
  278. if (this.dgvData.Rows.Count > 0)
  279. {
  280. if (this.dgvData.CurrentCell.RowIndex >= 0 && this.dgvData.CurrentRow.Index >= 0)
  281. {
  282. this.StrPersonNumber = this.dgvData.CurrentRow.Cells["员工编号"].Value.ToString().Trim();
  283. this.StrPersonName = this.dgvData.CurrentRow.Cells["员工姓名"].Value.ToString().Trim();
  284. if (!string.IsNullOrEmpty(this.dgvData.CurrentRow.Cells["是否休息"].Value.ToString().Trim()))
  285. { MessageBoxCustom.Show(StrPersonName + " '" + this.StrTime.Trim() + "'休息,不能安排工作!"); return; }
  286. this.IsSaveed = true;
  287. string StrStoreName = "";
  288. if (this.cmbtreevStoreName.Text.Trim() != "全部")
  289. { StrStoreName = this.cmbtreevStoreName.Tag.ToString().Trim(); }
  290. else
  291. { StrStoreName = LYFZ.Software.MainBusiness.CommonLogical.SuccessfulLogin.GetLocalCompanyInfoID(); }
  292. LYFZ.Model.Model_ErpOrderAnPaiDepartmentRecord model = null;
  293. DataTable dt = orbll.GetView_Custom("tb_ErpOrderAnPaiDepartmentRecord", StrWhere: "Ordor_DividedShop = '" + StrStoreName + "' And Ordor_OperatingType = '" + this.WorkPersonType.ToString().Trim() + "'", ShowColumnName: "*").Tables[0];
  294. if (dt.Rows.Count > 0)
  295. {
  296. model = ordrbll.DataRowToModel(dt.Select()[0]);
  297. model.Ordor_Department = this.dgvData.CurrentRow.Cells["部门"].Value.ToString().Trim();
  298. ordrbll.Update(model);
  299. }
  300. else
  301. {
  302. model = new Model.Model_ErpOrderAnPaiDepartmentRecord();
  303. model.Ordor_DividedShop = StrStoreName;
  304. model.Ordor_OperatingType = this.WorkPersonType.ToString().Trim();
  305. model.Ordor_Department = this.dgvData.CurrentRow.Cells["部门"].Value.ToString().Trim();
  306. ordrbll.Add(model);
  307. }
  308. this.Close();
  309. }
  310. }
  311. }
  312. /// <summary>
  313. /// 取消
  314. /// </summary>
  315. /// <param name="sender"></param>
  316. /// <param name="e"></param>
  317. void btnCancel_Click(object sender, EventArgs e)
  318. {
  319. this.Close();
  320. }
  321. /// <summary>
  322. /// 列表双击选择事件
  323. /// </summary>
  324. /// <param name="sender"></param>
  325. /// <param name="e"></param>
  326. void dgvData_MouseDoubleClick(object sender, MouseEventArgs e)
  327. {
  328. this.btnSaveed_Click(this, null);
  329. }
  330. /// <summary>
  331. /// 部门选择事件
  332. /// </summary>
  333. /// <param name="sender"></param>
  334. /// <param name="e"></param>
  335. void cmbtreevDepartment_ComboBoxTree_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
  336. {
  337. this.GetWorkPerson();
  338. }
  339. /// <summary>
  340. /// 选择分店人员
  341. /// </summary>
  342. /// <param name="sender"></param>
  343. /// <param name="e"></param>
  344. void cmbtreevStoreName_ComboBoxTree_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
  345. {
  346. this.SelectWorkPersonSuperSmallForm_Shown(this, null);
  347. }
  348. }
  349. }