frmPurPlanExamine.cs 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352
  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. using Pur.Entity.configureEntity;
  10. using CoreFS.CA06;using Pur.Entity;
  11. using Core.Mes.Client.Comm.Tool;
  12. using Core.Mes.Client.Comm.Control;
  13. using Infragistics.Win.UltraWinGrid;
  14. using System.Collections;
  15. using Pur.require_plan;
  16. using Pur.Pop_upWindow;
  17. using Infragistics.Win;
  18. using com.hnshituo.pur.vo;
  19. using com.hnshituo.bpm.req.vo;
  20. using Bpm;
  21. using Infragistics.Win.UltraWinEditors;
  22. using System.Text.RegularExpressions;
  23. namespace Pur.pur_plan
  24. {
  25. public partial class frmPurPlanExamine : FrmPmsBase
  26. {
  27. public frmPurPlanExamine()
  28. {
  29. InitializeComponent();
  30. this.IsLoadUserView = true;
  31. //ultraGrid1.DisplayLayout.Bands[0].Override.AllowUpdate = DefaultableBoolean.False;
  32. GridHelper.SetExcludeColumnsActive(ultraGrid1.DisplayLayout.Bands[0],new string[]{"CHK"});
  33. ultraGrid2.DisplayLayout.Bands[0].Override.AllowUpdate = DefaultableBoolean.False;
  34. //ultraGrid2.DisplayLayout.Bands[1].Override.AllowUpdate = DefaultableBoolean.False;
  35. }
  36. //菜单按钮事件
  37. public override void ToolBar_Click(object sender, string ToolbarKey)
  38. {
  39. switch (ToolbarKey)
  40. {
  41. case "Query":
  42. get_PUR_PLAN_M(getEnSelContion());
  43. break;
  44. case "Examine":
  45. Examine();
  46. break;
  47. case "show_Information":
  48. Process();
  49. break;
  50. }
  51. }
  52. /// <summary>
  53. /// 查询采购计划主表
  54. /// </summary>
  55. /// <param name="PurPlanMEntity"></param>
  56. public void get_PUR_PLAN_M(EntityPurPlanM PurPlanMEntity)
  57. {
  58. dataTable1.Clear();
  59. dataTable3.Clear();
  60. dataTable2.Rows.Clear();//清空采购计划行
  61. //查询未审批的
  62. DataTable dt = new DataTable();
  63. if (txt_Status.SelectedIndex == 1)
  64. {
  65. //PurPlanMEntity.Status = "12";
  66. dt = this.execute<DataTable>("com.hnshituo.pur.purplan.service.PurPlanMService", "find_audit_status", new object[] { PurPlanMEntity });
  67. }
  68. else if (txt_Status.SelectedIndex == 2)
  69. {
  70. //查询审批记录
  71. //PurPlanMEntity.Status = "34";
  72. dt = this.execute<DataTable>("com.hnshituo.pur.purplan.service.PurPlanMService", "find_audited_status", new object[] { PurPlanMEntity });
  73. }
  74. else
  75. {
  76. //查询全部相关
  77. dt = this.execute<DataTable>("com.hnshituo.pur.purplan.service.PurPlanMService", "getPurPlanM", new object[] { PurPlanMEntity });
  78. }
  79. foreach (DataRow row in dt.Rows)
  80. {
  81. row["mrPeriodEnd"] = Convert.ToDateTime(row["mrPeriodEnd"]).ToString("yyyy/MM");
  82. }
  83. GridHelper.CopyDataToDatatable(dt, dataTable1, true);
  84. ultraGrid1.DisplayLayout.Bands[0].PerformAutoResizeColumns(true, PerformAutoSizeType.AllRowsInBand);
  85. }
  86. /// <summary>
  87. /// 查询采购计划详表
  88. /// </summary>
  89. /// <param name="PurPlanMEntity"></param>
  90. public void get_PUR_PLAN_D(EntityPurPlanD PurPlanDEntity)
  91. {
  92. DataTable dt = this.execute<DataTable>("com.hnshituo.pur.purplan.service.PurPlanDService", "getPlanD", new object[] { PurPlanDEntity, 0, 0 });
  93. GridHelper.CopyDataToDatatable(ref dt, ref dataTable2, true);//绑定采购计划行表
  94. //DataTable dt_require = this.execute<DataTable>("com.hnshituo.pur.requireplan.service.RequirePlanDService", "getRequireByPlanD_ids", new object[] { ultraGrid1.ActiveRow.Cells["MRID"].Value.ToString() });
  95. ////删除父表中没有的行
  96. //for (int i = 0; i < dt_require.Rows.Count; )
  97. //{
  98. // if (!dataTable2.Rows.Contains(new object[] { dt_require.Rows[i]["BUYERDEPTCODE"].ToString(), dt_require.Rows[i]["ITEMUNIQUE"].ToString() }))
  99. // {
  100. // dt_require.Rows.RemoveAt(i);
  101. // }
  102. // else { i++; }
  103. //}
  104. //GridHelper.CopyDataToDatatable(ref dt_require, ref dataTable3, true);//绑定采购计划行子表
  105. ultraGrid2.DisplayLayout.Bands[0].PerformAutoResizeColumns(true, PerformAutoSizeType.AllRowsInBand);
  106. }
  107. /// <summary>
  108. /// 激活采购计划主表行(未审批)
  109. /// </summary>
  110. /// <param name="sender"></param>
  111. /// <param name="e"></param>
  112. private void ultraGrid1_AfterRowActivate(object sender, EventArgs e)
  113. {
  114. //dataTable3.Rows.Clear();
  115. dataTable2.Clear();
  116. message.Clear();
  117. EntityPurPlanD PurPlanDEntity = new EntityPurPlanD();
  118. if (ultraGrid1.ActiveRow == null)
  119. {
  120. return;
  121. }
  122. String strMrid = ultraGrid1.ActiveRow.Cells["MRID"].Value.ToString().Trim();
  123. PurPlanDEntity.MrId = strMrid;
  124. if (strMrid == null || strMrid == "")
  125. {
  126. return;
  127. }
  128. PurPlanDEntity.Validflag = "1";
  129. get_PUR_PLAN_D(PurPlanDEntity);//查询采购计划详表
  130. //加载采购计划评审意见
  131. getOrderReview(strMrid);
  132. }
  133. /// <summary>
  134. /// 获取查询条件
  135. /// </summary>
  136. /// <returns></returns>
  137. private EntityPurPlanM getEnSelContion()
  138. {
  139. EntityPurPlanM entity = new EntityPurPlanM();
  140. if (txt_MrId.Text.Trim() != "")//采购计划主表
  141. {
  142. entity.MrId = txt_MrId.Text.ToString().Trim();
  143. }
  144. if (txt_Urgency.Value != null && txt_Urgency.Value.ToString() !="")//紧急程度
  145. {
  146. entity.UrgencyType = txt_Urgency.Value.ToString().Trim();
  147. }
  148. //if (txt_status.Value != null && txt_status.Value.ToString() != "")//状态
  149. //{
  150. //entity.Status = txt_status.Value.ToString();
  151. //}
  152. //if (txt_MrPeriodEnd.Value != null && txt_MrPeriodEnd.Value.ToString() != "")//计划月份
  153. //{
  154. //entity.MrPeriodEnd = DateTime.Parse(txt_MrPeriodEnd.Value.ToString());
  155. //}
  156. if (ck_Mtime.Checked)
  157. {
  158. if (String.IsNullOrEmpty(cop_planMouthStart.Text))
  159. {
  160. DateTime Start1 = DateTime.Parse(Convert.ToDateTime(cop_planMouthStart.Value).ToString("yyyy/MM"));
  161. entity.MrPeriodStart = Start1;
  162. }
  163. if (String.IsNullOrEmpty(cop_planMouthEnd.Text))
  164. {
  165. DateTime End1 = DateTime.Parse(Convert.ToDateTime(cop_planMouthEnd.Value).ToString("yyyy/MM"));
  166. entity.MrPeriodEnd = End1;
  167. }
  168. }
  169. entity.Validflag = "1";
  170. entity.BpmUserId = UserInfo.GetUserID();
  171. entity.ValidDataPurviewIds = this.ValidDataPurviewIds;
  172. return entity;
  173. }
  174. /// <summary>
  175. /// 审批
  176. /// </summary>
  177. private void Examine()
  178. {
  179. ultraGrid1.UpdateData();
  180. ArrayList list = new ArrayList();
  181. foreach (UltraGridRow row in ultraGrid1.Rows)
  182. {
  183. if (Convert.ToBoolean(row.GetCellValue("CHK")) == true)
  184. {
  185. EntityPurPlanM pm = new EntityPurPlanM();
  186. pm.MrId = row.GetCellValue("MRID").ToString().Trim();
  187. pm.ReqOrgId = row.GetCellValue("BpmTaskId").ToString().Trim();
  188. pm.DeleteUserid = UserInfo.GetUserID();//审批人ID
  189. list.Add(pm);
  190. }
  191. }
  192. if (list.Count <= 0)
  193. {
  194. MessageUtil.ShowTips("请选择需要审批的计划!");
  195. return;
  196. }
  197. UltraGridRow uge = ultraGrid1.ActiveRow;
  198. // ArrayList al = setUserPlan();
  199. frmExamineShowNew frm = new frmExamineShowNew(list,this.ob,"pur");
  200. frm.ShowDialog();
  201. if(frm.tips=="1")
  202. {
  203. get_PUR_PLAN_M(getEnSelContion());
  204. }
  205. }
  206. /// <summary>
  207. /// 生成领用计划
  208. /// </summary>
  209. private ArrayList setUserPlan()
  210. {
  211. ArrayList al = new ArrayList();
  212. //查询采购单下相同科室提报的核准数量
  213. DataTable dt_require = this.execute<DataTable>("com.hnshituo.pur.requireplan.service.RequirePlanDService", "getRequireByPlanD_ids_UserPlan", new object[] { ultraGrid1.ActiveRow.Cells["MRID"].Value.ToString() });
  214. for (int i = 0; i < ultraGrid2.Rows.Count; i++)
  215. {
  216. for (int j = 0; j < dt_require.Rows.Count; j++)
  217. {
  218. if (ultraGrid2.Rows[i].Cells["MRLINEID"].Value.ToString() == dt_require.Rows[j]["BUYERDEPTCODE"].ToString())
  219. {
  220. PurUserPlanEntity pup = new PurUserPlanEntity();
  221. EntityPurPlanD ppd = new EntityPurPlanD();
  222. ppd = this.execute<EntityPurPlanD>("com.hnshituo.pur.purplan.service.PurPlanDService", "findById", new object[] { ultraGrid2.Rows[i].Cells["MRLINEID"].Value.ToString() });
  223. pup = EntityHelper.CopyEntity<PurUserPlanEntity>(ppd);
  224. double b_QtyPur = 0;
  225. double.TryParse(dt_require.Rows[j]["QtyPur"].ToString(),out b_QtyPur);
  226. pup.QtyPur = b_QtyPur;
  227. pup.UsedQty = 0;
  228. pup.PurLineId = ppd.MrLineId;
  229. pup.ReqOrgId = dt_require.Rows[j]["DELETENAME"].ToString();
  230. al.Add(pup);
  231. }
  232. }
  233. }
  234. return al;
  235. }
  236. /// <summary>
  237. /// 流程详情查看
  238. /// </summary>
  239. private void Process()
  240. {
  241. UltraGridRow uge = ultraGrid1.ActiveRow;
  242. if (uge == null)
  243. {
  244. MessageUtil.ShowWarning("请选择一条记录");
  245. return;
  246. }
  247. string mrId = uge.Cells["MRId"].Value.ToString();
  248. ProcInstDetail detail = new ProcInstDetail(BpmFlowConstants.PROCDEF_PUR_PLAN_AUDIT, mrId);
  249. detail.ShowDialog();
  250. }
  251. private void frmPurPlanExamine_Load(object sender, EventArgs e)
  252. {
  253. DataTable dt1 = new DataTable();
  254. dt1.Columns.AddRange(new DataColumn[] { new DataColumn("Code"), new DataColumn("Desc") });
  255. dt1.Rows.Add("", "全部");
  256. dt1.Rows.Add("1", "紧急");
  257. dt1.Rows.Add("2", "常规");
  258. txt_Urgency.DataSource = dt1;
  259. txt_Urgency.DisplayMember = "Desc";
  260. txt_Urgency.ValueMember = "Code";
  261. SetComboItemHeight(txt_Urgency);//设置comboxEditer高度
  262. txt_Urgency.SelectedIndex = 0;
  263. txt_Status.SelectedIndex = 1;
  264. ck_Mtime.Checked = true;
  265. cop_planMouthStart.Value = DateTime.Now.AddMonths(-1);
  266. cop_planMouthEnd.Value = DateTime.Now < DateTime.Parse(DateTime.Now.ToString("yyyy/MM/26")) ? DateTime.Now.AddMonths(1) : DateTime.Now.AddMonths(2);
  267. get_PUR_PLAN_M(getEnSelContion());
  268. }
  269. /// <summary>
  270. /// 设置UltraComboEditor中的中文和非中文统一高度。
  271. /// </summary>
  272. /// <param name="cmb"></param>
  273. public static void SetComboItemHeight(UltraComboEditor cmb)
  274. {
  275. foreach (ValueListItem item in cmb.Items)
  276. {
  277. if (item.DisplayText != null)
  278. {
  279. if (Regex.IsMatch(item.DisplayText, @"[\u4e00-\u9fa5]+"))
  280. {
  281. item.Appearance.FontData.SizeInPoints = 9.0F;
  282. }
  283. else
  284. {
  285. item.Appearance.FontData.SizeInPoints = 10.5F;
  286. }
  287. }
  288. }
  289. }
  290. private void frmPurPlanExamine_Shown(object sender, EventArgs e)
  291. {
  292. this.ToolBarItemEnable(this, "Query", true);
  293. this.ToolBarItemEnable(this, "Examine", true);
  294. this.ToolBarItemEnable(this, "show_Information", true);
  295. }
  296. private void txt_Status_ValueChanged(object sender, EventArgs e)
  297. {
  298. //ultraGrid1.UpdateData();
  299. get_PUR_PLAN_M(getEnSelContion());
  300. foreach (UltraGridRow row in ultraGrid1.Rows)
  301. {
  302. row.Cells["CHK"].Value = false;
  303. }
  304. if (txt_Status.SelectedIndex == 1)//待审批
  305. {
  306. ultraGrid1.DisplayLayout.Bands[0].Columns["CHK"].Hidden = false;
  307. }
  308. else
  309. {
  310. ultraGrid1.DisplayLayout.Bands[0].Columns["CHK"].Hidden = true;
  311. }
  312. }
  313. private void ultraGrid1_InitializeRow(object sender, InitializeRowEventArgs e)
  314. {
  315. if (e.Row.Cells["status"].Value.ToString().StartsWith("审批不通过"))
  316. {
  317. e.Row.Appearance.ForeColor = Color.Red;
  318. }
  319. else
  320. {
  321. e.Row.Appearance.ForeColor = Color.Black;
  322. }
  323. }
  324. /// <summary>
  325. /// 查询评审意见
  326. /// </summary>
  327. /// <param name="strMrid"></param>
  328. private void getOrderReview(string strMrid)
  329. {
  330. DataTable dt11 = this.execute<DataTable>("com.hnshituo.pur.order.service.OrderMService", "getReviewMsg", new object[] { strMrid });
  331. GridHelper.CopyDataToDatatable(dt11, dataTable7, true);
  332. GridHelper.RefreshAndAutoSize(ultraGrid3);
  333. }
  334. private void ck_Mtime_CheckedChanged(object sender, EventArgs e)
  335. {
  336. cop_planMouthStart.Enabled=ck_Mtime.Checked;
  337. cop_planMouthEnd.Enabled = ck_Mtime.Checked;
  338. }
  339. }
  340. }