FrmBalanceCheck_FG.cs 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525
  1. using Core.Mes.Client.Comm.Control;
  2. using Core.Mes.Client.Comm.Tool;
  3. using Infragistics.Win.UltraWinGrid;
  4. using Pur.Entity;
  5. using Pur.Entity.configureEntity;
  6. using Pur.PublicTools;
  7. using System;
  8. using System.Collections;
  9. using System.Collections.Generic;
  10. using System.ComponentModel;
  11. using System.Data;
  12. using System.Drawing;
  13. using System.Linq;
  14. using System.Text;
  15. using System.Windows.Forms;
  16. namespace Pur.balance
  17. {
  18. public partial class FrmBalanceCheck_FG : FrmPmsBase
  19. {
  20. public FrmBalanceCheck_FG()
  21. {
  22. InitializeComponent();
  23. }
  24. protected override void OnLoad(EventArgs e)
  25. {
  26. base.OnLoad(e);
  27. //ultraGrid1.DisplayLayout.Override.RowSelectors = Infragistics.Win.DefaultableBoolean.False;//不显示行头
  28. ultraGrid1.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;//不默认加载筛选条件框
  29. ultraGrid2.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
  30. }
  31. private void FrmBalanceCheck_FG_Load(object sender, EventArgs e)
  32. {
  33. dateBegin.Value = dateEnd.DateTime.AddDays(-7);
  34. InitColumns();
  35. SetSumCount();
  36. InitBindBox();
  37. }
  38. private void InitColumns()
  39. {
  40. string[] arrColumnsDetail = new string[] { "CHK", "IN_STOCK_NO", "MATCHID", "SUPP_CODE", "SUPP_NAME", "CAR_NUM", "ITEM_CODE", "ITEM_NAME", "ATTR_CODE", "ATTR_NAME", "GROSS_QTY", "TARE_QTY", "NET_QTY", "KZ_QTY", "KZ_NET_QTY", "KJT_QTY", "KCC_QTY", "KQB_QTY", "INV_QTY", "SUTTLETIME", "REMARK", "STATUS" };//MATCHID磅单号
  41. string[] arrColumnsCaptionDetail = new string[] { "选择", "入库单号", "磅单号", "供应商", "供应商", "车号", "物料编码", "物料名称", "料型(规格)", "料型(规格)", "毛重", "皮重", "净重", "扣杂", "扣杂净重", "扣机铁", "扣超长", "扣轻薄", "料型净重", "净重时间", "备注", "状态" };
  42. PublicPur.InitColumns(arrColumnsDetail, arrColumnsCaptionDetail, dataTable1, ultraGrid1, new string[] { "MATCHID", "SUPP_CODE", "ITEM_CODE", "ATTR_NAME", "KZ_NET_QTY", "INV_QTY", "STATUS" }, false, new string[] { "CHK", "ATTR_CODE", "GROSS_QTY", "TARE_QTY", "KZ_QTY", "KJT_QTY", "KCC_QTY", "KQB_QTY" });
  43. PublicPur.InitColumns(arrColumnsDetail, arrColumnsCaptionDetail, dataTable2, ultraGrid2, new string[] { "MATCHID", "SUPP_CODE", "ITEM_CODE", "ATTR_CODE", "STATUS" }, false, new string[] { "CHK" });
  44. PublicPur.InitCellPositionRight(new UltraGrid[] { ultraGrid1, ultraGrid2 }, new string[] { "GROSS_QTY", "TARE_QTY", "NET_QTY", "KZ_QTY", "KZ_NET_QTY", "KJT_QTY", "KCC_QTY", "KQB_QTY", "INV_QTY" });
  45. PublicPur.InitColumnShowLength(new UltraGrid[] { ultraGrid1, ultraGrid2 }, 0, new string[] { "GROSS_QTY", "TARE_QTY", "NET_QTY", "KZ_QTY", "KZ_NET_QTY", "KJT_QTY", "KCC_QTY", "KQB_QTY", "INV_QTY" }, 4, false);
  46. }
  47. //设置统计风格
  48. private void SetSumCount()
  49. {
  50. PublicPur.SetupSummaryHeade(new String[] { "Count", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum" }, new String[] { "共{0}条", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}" }, new string[] { "IN_STOCK_NO", "GROSS_QTY", "TARE_QTY", "NET_QTY", "KZ_QTY", "KZ_NET_QTY", "KJT_QTY", "KCC_QTY", "KQB_QTY", "INV_QTY" }, this.ultraGrid1.DisplayLayout.Bands[0], SummaryDisplayAreas.BottomFixed);
  51. PublicPur.SetupSummaryHeade(new String[] { "Count", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum" }, new String[] { "共{0}条", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}" }, new string[] { "IN_STOCK_NO", "GROSS_QTY", "TARE_QTY", "NET_QTY", "KZ_QTY", "KZ_NET_QTY", "KJT_QTY", "KCC_QTY", "KQB_QTY", "INV_QTY" }, this.ultraGrid2.DisplayLayout.Bands[0], SummaryDisplayAreas.BottomFixed);
  52. }
  53. private void InitBindBox()
  54. {
  55. QuerySUPP_NAME();
  56. QueryATTR_CODE();
  57. ultraGrid1.DisplayLayout.Bands[0].Columns["ATTR_CODE"].EditorComponent = ultraATTR_CODE;
  58. ultraGrid1.DisplayLayout.Bands[0].Columns["ATTR_CODE"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  59. }
  60. //菜单按钮事件
  61. public override void ToolBar_Click(object sender, string ToolbarKey)
  62. {
  63. switch (ToolbarKey)
  64. {
  65. case "Query":
  66. string sql = "";
  67. if (ultraTabControl1.SelectedTab.Index == 0)
  68. {
  69. sql = " AND T.RESULT IS NULL";
  70. QueryCkInBillRecord_FG(sql);
  71. }
  72. else if (ultraTabControl1.SelectedTab.Index == 1)
  73. {
  74. sql = " AND T.RESULT IS NOT NULL";
  75. QueryCkInBillRecord_FG(sql);
  76. }
  77. break;
  78. case "Confirm"://确认编制结算单
  79. if (ultraTabControl1.SelectedTab.Index == 0)
  80. {
  81. ConfirmBalanceInBill();
  82. }
  83. break;
  84. case "Cancel"://取消编制结算单
  85. CancelBalanceInBill();
  86. break;
  87. case "Print"://打印
  88. break;
  89. case "Export"://导出
  90. ExportBalanceInBill();
  91. break;
  92. case "Close":
  93. if (MessageUtil.ShowYesNoAndQuestion("是否确认关闭页面?") == DialogResult.Yes)
  94. {
  95. this.Close();
  96. }
  97. break;
  98. }
  99. }
  100. private void ExportBalanceInBill()
  101. {
  102. ArrayList alUltraGrid = new ArrayList();//需要导出的GRID
  103. ArrayList alSheeft = new ArrayList();//Sheeft名称
  104. if (ultraTabControl1.SelectedTab.Index == 0)
  105. {
  106. alUltraGrid.Add(ultraGrid1);
  107. alSheeft.Add("废钢入库信息");
  108. if (ultraGrid1.Rows.Count == 0)
  109. {
  110. return;
  111. }
  112. }
  113. else if (ultraTabControl1.SelectedTab.Index == 1)
  114. {
  115. alUltraGrid.Add(ultraGrid2);
  116. alSheeft.Add("废钢入库信息");
  117. if (ultraGrid2.Rows.Count == 0)
  118. {
  119. return;
  120. }
  121. }
  122. GridHelper.ulGridToExcel(alUltraGrid, alSheeft, dateBegin.DateTime.ToString("yyyyMM") + "废钢入库信息");//导出excel
  123. }
  124. private void QueryCkInBillRecord_FG(string strCondition)
  125. {
  126. try
  127. {
  128. dataTable1.Rows.Clear();
  129. ArrayList arrayList = new ArrayList();
  130. if (chkDate.Checked)
  131. {
  132. arrayList.Add(dateBegin.DateTime.ToShortDateString() + " 00:00:00");
  133. arrayList.Add(dateEnd.DateTime.ToShortDateString() + " 23:59:59");
  134. }
  135. else
  136. {
  137. arrayList.Add("0001/01/01 00:00:00");
  138. arrayList.Add("9999/12/31 23:59:59");
  139. }
  140. if (chkSUPP_NAME.Checked)
  141. {
  142. arrayList.Add(ultraQuerySUPP_NAME.Text.Trim());
  143. arrayList.Add(ultraQuerySUPP_NAME.Text.Trim());
  144. arrayList.Add(ultraQuerySUPP_NAME.Text.Trim());
  145. }
  146. else
  147. {
  148. arrayList.Add("");
  149. arrayList.Add("");
  150. arrayList.Add("");
  151. }
  152. DataTable dt = PublicServer.GetData("com.hnshituo.pur.balance.service.impl.FrmBalanceCheck_FG.QueryCkInBillRecord_FG",
  153. new Object[] { arrayList, strCondition }, ob);
  154. if (dt == null || dt.Rows.Count == 0)
  155. {
  156. if (ultraTabControl1.SelectedTab.Index == 0)
  157. {
  158. dataTable1.Rows.Clear();
  159. }
  160. else if (ultraTabControl1.SelectedTab.Index == 1)
  161. {
  162. dataTable2.Rows.Clear();
  163. }
  164. return;
  165. }
  166. if (ultraTabControl1.SelectedTab.Index == 0)
  167. {
  168. GridHelper.CopyDataToDatatable(dt, dataTable1, true);//把dt复制给dataTable1
  169. PublicPur.RefreshAndAutoSizeColumns(ultraGrid1, new string[] { "ATTR_CODE" }, false);//刷新Grid
  170. }
  171. else if (ultraTabControl1.SelectedTab.Index == 1)
  172. {
  173. GridHelper.CopyDataToDatatable(dt, dataTable2, true);//把dt复制给dataTable2
  174. GridHelper.RefreshAndAutoSize(ultraGrid2);
  175. }
  176. }
  177. catch (Exception e)
  178. {
  179. MessageUtil.ShowWarning(e.Message);
  180. return;
  181. }
  182. }
  183. //查询供应商
  184. private void QuerySUPP_NAME()
  185. {
  186. try
  187. {
  188. DataTable dt = PublicServer.GetData("com.hnshituo.pur.balance.service.impl.FrmBalanceBillManage.QuerySUPP_NAME",
  189. new Object[] { }, ob);
  190. if (dt == null || dt.Rows.Count == 0)
  191. {
  192. return;
  193. }
  194. DataRow dr = dt.NewRow();
  195. dr[0] = "";
  196. dt.Rows.InsertAt(dr, 0);
  197. ultraQuerySUPP_NAME.DataSource = dt;
  198. ultraQuerySUPP_NAME.DisplayMember = "SUPP_NAME";
  199. ultraQuerySUPP_NAME.ValueMember = "SUPP_CODE";
  200. }
  201. catch (Exception e)
  202. {
  203. MessageUtil.ShowWarning(e.Message);
  204. return;
  205. }
  206. }
  207. //查询供应商
  208. private void QueryATTR_CODE()
  209. {
  210. try
  211. {
  212. DataTable dt = PublicServer.GetData("com.hnshituo.pur.balance.service.impl.FrmBalanceCheck_FG.QueryATTR_CODE",
  213. new Object[] { }, ob);
  214. if (dt == null || dt.Rows.Count == 0)
  215. {
  216. return;
  217. }
  218. DataRow dr = dt.NewRow();
  219. dr[0] = "";
  220. dt.Rows.InsertAt(dr, 0);
  221. ultraATTR_CODE.DataSource = dt;
  222. ultraATTR_CODE.DisplayMember = "ATTR_NAME";
  223. ultraATTR_CODE.ValueMember = "ATTR_CODE";
  224. }
  225. catch (Exception e)
  226. {
  227. MessageUtil.ShowWarning(e.Message);
  228. return;
  229. }
  230. }
  231. private void ConfirmBalanceInBill()
  232. {
  233. try
  234. {
  235. if (ultraTabControl1.SelectedTab.Index != 0)
  236. {
  237. MessageUtil.ShowTips("只有选择了入库记录页才能进行验质操作!");
  238. return;
  239. }
  240. if (dataTable1.Rows.Count == 0)
  241. {
  242. return;
  243. }
  244. ultraGrid1.UpdateData();
  245. DataRow[] arr = dataTable1.Select("CHK = 'True' AND ATTR_CODE IS NOT NULL");
  246. if (arr.Length == 0)
  247. {
  248. MessageUtil.ShowTips("请至少勾选一条入库记录进行验质操作!");
  249. return;
  250. }
  251. if (MessageUtil.ShowYesNoAndQuestion("是否确认对此记录验质?") == DialogResult.Yes)
  252. {
  253. string userId = UserInfo.GetUserID();
  254. string user = UserInfo.GetUserName();
  255. string strDate = DateTime.Now.ToString();
  256. ArrayList all = new ArrayList();
  257. ArrayList alBase = new ArrayList();//盘盈盘亏记录表
  258. ArrayList alBaseParams = new ArrayList();
  259. ArrayList alCk = new ArrayList();//库存记录表
  260. ArrayList alCkParams = new ArrayList();
  261. ArrayList alCkUpdate = new ArrayList();//库存记录表
  262. ArrayList alCkUpdateParams = new ArrayList();
  263. foreach (DataRow dr in arr)
  264. {
  265. if (dr["ATTR_CODE"].ToString() != "")
  266. {
  267. alCkParams = new ArrayList();
  268. alCkParams.Add(dr["ATTR_CODE"].ToString());//料型
  269. alCkParams.Add(dr["KZ_QTY"].ToString());
  270. alCkParams.Add(dr["KJT_QTY"].ToString());
  271. alCkParams.Add(dr["KCC_QTY"].ToString());
  272. alCkParams.Add(dr["KQB_QTY"].ToString());
  273. alCkParams.Add(userId);//创建人
  274. alCkParams.Add(user);//创建人
  275. alCkParams.Add(dr["IN_STOCK_NO"].ToString());//入库单号
  276. alCk.Add(alCkParams);
  277. }
  278. }
  279. if (alCk.Count == 0)
  280. {
  281. return;
  282. }
  283. //all.Add(alBase);
  284. all.Add(alCk);
  285. //all.Add(alCkUpdate);
  286. PublicServer.SetData("com.hnshituo.pur.balance.service.impl.FrmBalanceCheck_FG.ConfirmBalanceInBill_FG",
  287. new Object[] { all }, ob);
  288. QueryCkInBillRecord_FG(" AND T.RESULT IS NULL");
  289. MessageUtil.ShowTips("验质成功!");
  290. }
  291. }
  292. catch (Exception e)
  293. {
  294. MessageUtil.ShowWarning(e.Message);
  295. return;
  296. }
  297. }
  298. private void QueryBalanceInBillRecord()
  299. {
  300. try
  301. {
  302. ArrayList arrayList = new ArrayList();
  303. if (chkDate.Checked)
  304. {
  305. arrayList.Add(dateBegin.DateTime.ToShortDateString() + " 00:00:00");
  306. arrayList.Add(dateEnd.DateTime.ToShortDateString() + " 23:59:59");
  307. }
  308. else
  309. {
  310. arrayList.Add("0001/01/01 00:00:00");
  311. arrayList.Add("9999/12/31 23:59:59");
  312. }
  313. if (chkSUPP_NAME.Checked)
  314. {
  315. arrayList.Add(ultraQuerySUPP_NAME.Text.Trim());
  316. arrayList.Add(ultraQuerySUPP_NAME.Text.Trim());
  317. arrayList.Add(ultraQuerySUPP_NAME.Text.Trim());
  318. }
  319. else
  320. {
  321. arrayList.Add("");
  322. arrayList.Add("");
  323. arrayList.Add("");
  324. }
  325. DataTable dt = PublicServer.GetData("com.hnshituo.pur.balance.service.impl.FrmBalanceBillManage.QueryBalanceInBillRecord_FG",
  326. new Object[] { arrayList }, ob);
  327. if (dt == null || dt.Rows.Count == 0)
  328. {
  329. dataTable1.Rows.Clear();
  330. dataTable1.Rows.Clear();
  331. return;
  332. }
  333. GridHelper.CopyDataToDatatable(dt, dataTable1, true);//把dt复制给dataTable1
  334. GridHelper.RefreshAndAutoSize(ultraGrid1);
  335. }
  336. catch (Exception e)
  337. {
  338. MessageUtil.ShowWarning(e.Message);
  339. return;
  340. }
  341. }
  342. private void CancelBalanceInBill()
  343. {
  344. try
  345. {
  346. if (ultraTabControl1.SelectedTab.Index != 1)
  347. {
  348. MessageUtil.ShowTips("只有选择了已验质页才能进行取消操作!");
  349. return;
  350. }
  351. if (ultraGrid2.ActiveRow == null || dataTable2.Rows.Count == 0)
  352. {
  353. return;
  354. }
  355. if (ultraGrid2.ActiveRow.Cells["STATUS"].Text.Trim() != "0")
  356. {
  357. MessageUtil.ShowTips("此记录已入库不能取消改变验质结果!");
  358. return;
  359. }
  360. ultraGrid2.UpdateData();
  361. DataRow[] arr = dataTable2.Select("CHK = 'True'");
  362. if (arr.Length == 0 || arr.Length > 1)
  363. {
  364. MessageUtil.ShowTips("请勾选一条验质记录进行取消操作!");
  365. return;
  366. }
  367. if (MessageUtil.ShowYesNoAndQuestion("是否确认对此记录取消验质?") == DialogResult.Yes)
  368. {
  369. string userId = UserInfo.GetUserID();
  370. string user = UserInfo.GetUserName();
  371. string strDate = DateTime.Now.ToString();
  372. ArrayList all = new ArrayList();
  373. ArrayList alBase = new ArrayList();//盘盈盘亏记录表
  374. ArrayList alBaseParams = new ArrayList();
  375. ArrayList alCk = new ArrayList();//库存记录表
  376. ArrayList alCkParams = new ArrayList();
  377. ArrayList alCkUpdate = new ArrayList();//库存记录表
  378. ArrayList alCkUpdateParams = new ArrayList();
  379. string strIN_STOCK_NO = ultraGrid2.ActiveRow.Cells["IN_STOCK_NO"].Text.Trim();
  380. foreach (DataRow dr in arr)
  381. {
  382. alCkParams = new ArrayList();
  383. alCkParams.Add("");//料型
  384. alCkParams.Add("");
  385. alCkParams.Add("");
  386. alCkParams.Add("");
  387. alCkParams.Add("");
  388. alCkParams.Add("");//创建人
  389. alCkParams.Add("");//创建人
  390. alCkParams.Add(dr["IN_STOCK_NO"].ToString());//入库单号
  391. alCk.Add(alCkParams);
  392. }
  393. //all.Add(alBase);
  394. all.Add(alCk);
  395. //all.Add(alCkUpdate);
  396. PublicServer.SetData("com.hnshituo.pur.balance.service.impl.FrmBalanceCheck_FG.CancelBalanceInBill",
  397. new Object[] { all, strIN_STOCK_NO }, ob);
  398. QueryCkInBillRecord_FG(" AND T.RESULT IS NOT NULL");
  399. MessageUtil.ShowTips("验质记录撤销成功!");
  400. }
  401. }
  402. catch (Exception e)
  403. {
  404. MessageUtil.ShowWarning(e.Message);
  405. return;
  406. }
  407. }
  408. private void ultraGrid1_AfterRowActivate(object sender, EventArgs e)
  409. {
  410. ultraGrid1.UpdateData();
  411. PublicPur.GridEdite(ultraGrid1.ActiveRow);
  412. }
  413. private void ultraGrid1_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
  414. {
  415. ultraGrid1.UpdateData();
  416. if (e.Cell.Column.Key == "CHK")
  417. {
  418. PublicPur.GridEdite(ultraGrid1.ActiveRow);
  419. }
  420. else if (e.Cell.Column.Key == "ATTR_CODE")
  421. {
  422. e.Cell.Row.Cells["ATTR_NAME"].Value = e.Cell.Row.Cells["ATTR_CODE"].Text.Trim();
  423. }
  424. else if (e.Cell.Column.Key == "KZ_QTY" || e.Cell.Column.Key == "KJT_QTY" || e.Cell.Column.Key == "KCC_QTY" || e.Cell.Column.Key == "KQB_QTY")
  425. {
  426. if (e.Cell.Value.ToString() != "")
  427. {
  428. if (!StringUtil.IsDouble(e.Cell.Value.ToString()))
  429. {
  430. MessageUtil.ShowTips("请输入数字类型!");
  431. e.Cell.Value = "";
  432. return;
  433. }
  434. if (Convert.ToDouble(e.Cell.Value.ToString()) < 0)
  435. {
  436. MessageUtil.ShowTips("数字不能小于0!");
  437. e.Cell.Value = "";
  438. return;
  439. }
  440. double diffNum = Convert.ToDouble(e.Cell.Row.Cells["KZ_QTY"].Value.ToString() == "" ? "0" : e.Cell.Row.Cells["KZ_QTY"].Value.ToString()) + Convert.ToDouble(e.Cell.Row.Cells["KJT_QTY"].Value.ToString() == "" ? "0" : e.Cell.Row.Cells["KJT_QTY"].Value.ToString()) + Convert.ToDouble(e.Cell.Row.Cells["KCC_QTY"].Value.ToString() == "" ? "0" : e.Cell.Row.Cells["KCC_QTY"].Value.ToString()) + Convert.ToDouble(e.Cell.Row.Cells["KQB_QTY"].Value.ToString() == "" ? "0" : e.Cell.Row.Cells["KQB_QTY"].Value.ToString());
  441. double netNum = Convert.ToDouble(e.Cell.Row.Cells["NET_QTY"].Value.ToString());
  442. if (diffNum > netNum)
  443. {
  444. MessageUtil.ShowTips("扣除总量不能大于料型净重!");
  445. e.Cell.Value = "";
  446. return;
  447. }
  448. }
  449. }
  450. }
  451. private void chkSUPP_NAME_CheckedChanged(object sender, EventArgs e)
  452. {
  453. ultraQuerySUPP_NAME.Enabled = chkSUPP_NAME.Checked;
  454. }
  455. }
  456. }