ExcDeliveryChange.cs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.Data;
  6. using System.Drawing;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Windows.Forms;
  10. using com.hnshituo.pur.vo;
  11. using Core.Mes.Client.Comm.Control;
  12. using CoreFS.CA06;using Pur.Entity;
  13. using Infragistics.Win.UltraWinGrid;
  14. using Pur.Entity.ck;
  15. using Pur.Entity.require_planEntiy;
  16. namespace Pur.ck
  17. {
  18. public partial class ExcDeliveryChange : FrmPmsBase
  19. {
  20. private int tips;
  21. List<ExcDeliverySubM> listsb = new List<ExcDeliverySubM>();
  22. public int Tips
  23. {
  24. get { return tips; }
  25. set { tips = value; }
  26. }
  27. private ArrayList List;
  28. public ArrayList list
  29. {
  30. get { return List; }
  31. set { List = value; }
  32. }
  33. private string noticeId;
  34. public string NoticeId
  35. {
  36. get { return noticeId; }
  37. set { noticeId = value; }
  38. }
  39. private string newNoticeId;
  40. public string NewNoticeId
  41. {
  42. get { return newNoticeId; }
  43. set { newNoticeId = value; }
  44. }
  45. public ExcDeliveryChange()
  46. {
  47. InitializeComponent();
  48. }
  49. public ExcDeliveryChange(OpeBase ob, string NoticeId)
  50. {
  51. this.ob = ob;
  52. this.noticeId = NoticeId;
  53. InitializeComponent();
  54. }
  55. public ExcDeliveryChange(OpeBase ob, ArrayList list)
  56. {
  57. this.ob = ob;
  58. this.list = list;
  59. InitializeComponent();
  60. }
  61. private void ExcDeliveryChange_Load(object sender, EventArgs e)
  62. {
  63. this.tips = 0;
  64. init();
  65. }
  66. #region tooolbar工具区
  67. private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  68. {
  69. switch (e.Tool.Key)
  70. {
  71. case "doChange": // 提交
  72. doChange();
  73. break;
  74. case "Close": // 关闭当前页
  75. this.Close();
  76. break;
  77. }
  78. }
  79. #endregion
  80. #region toolbar事件
  81. /// <summary>
  82. /// 提交变更
  83. /// </summary>
  84. private void doChange()
  85. {
  86. String strsuppCode = ultraGrid1.Rows[0].Cells["suppCode"].Value.ToString().Trim();
  87. //String strnoticeId = ultraGrid1.Rows[0].Cells["noticeId"].Value.ToString().Trim();
  88. //校验数据
  89. ultraGrid3.UpdateData();
  90. foreach (UltraGridRow row in ultraGrid3.Rows)
  91. {
  92. String stroldQty = row.Cells["qty"].Value.ToString().Trim();
  93. String strnewQty = row.Cells["createQty"].Value.ToString().Trim();
  94. Double dboldQty = 0;
  95. Double dbnewQty = 0;
  96. if (!String.IsNullOrEmpty(stroldQty))
  97. {
  98. dboldQty = Convert.ToDouble(stroldQty);
  99. }
  100. if (!String.IsNullOrEmpty(strnewQty))
  101. {
  102. dbnewQty = Convert.ToDouble(strnewQty);
  103. }
  104. if (dboldQty != dbnewQty || dbnewQty==0)
  105. {
  106. MessageBox.Show("物料[" + row.Cells["itemCode"].Value.ToString() + "]未编制有效数量,请保证编制前和编制后总量一致", "提示");
  107. return;
  108. }
  109. }
  110. //数据准备(新旧一起)
  111. //旧送货子单主表ID(List)
  112. //新送货子单从表ID(list)
  113. List<RequirePlanD> listR=new List<RequirePlanD>();
  114. foreach (UltraGridRow uge in ultraGrid3.Rows.GetRowEnumerator(GridRowType.DataRow, null, null))
  115. {
  116. if (uge.HasParent())
  117. {
  118. if (Convert.ToBoolean(uge.Cells["isSelect"].Value) == true && Convert.ToDouble(uge.Cells["createQty"].Value)>0)
  119. {
  120. RequirePlanD rd = new RequirePlanD();
  121. rd.MrLineId = uge.Cells["mrLineId"].Value.ToString().Trim();
  122. rd.MrId = uge.Cells["MrId"].Value.ToString().Trim();
  123. rd.Qty = Convert.ToDouble(uge.Cells["createQty"].Value.ToString().Trim());
  124. listR.Add(rd);
  125. }
  126. }
  127. }
  128. if (MessageBox.Show("将变更送货子单号为【" + listsb[0].DeliverySubId + "】等" + List.Count + "个送货子单信息?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
  129. {
  130. return;
  131. }
  132. CoreResult re = this.execute<CoreResult>("com.hnshituo.pur.ck.service.ExcDeliverySubMService", "doChangeSub", new object[] { strsuppCode, listsb, listR });
  133. if (re.Resultcode != 0)
  134. {
  135. MessageBox.Show("变更失败:" + re.Resultmsg, "提示");
  136. return;
  137. }
  138. else
  139. {
  140. MessageBox.Show(re.Resultmsg, "提示");
  141. }
  142. }
  143. #endregion
  144. #region 初始化区域
  145. private void init()
  146. {
  147. try
  148. {
  149. dataTable1.Clear();
  150. dataTable2.Clear();
  151. dataTable5.Clear();
  152. dataTable6.Clear();
  153. foreach (object obj in List)
  154. {
  155. UltraGridRow rows = (UltraGridRow)obj;
  156. String strsubid = rows.Cells["deliverySubId"].Value.ToString();
  157. String strnoticeId = rows.Cells["noticeId"].Value.ToString();
  158. ExcDeliverySubM esm = new ExcDeliverySubM();
  159. esm.DeliverySubId = strsubid;
  160. esm.NoticeId = strnoticeId;
  161. esm.Validflag = "1";
  162. listsb.Add(esm);
  163. DataTable dt = this.execute<DataTable>("com.hnshituo.pur.ck.service.ExcDeliverySubMService", "get_ExcDeliverySubM", new object[] { esm });
  164. //DataTable dt = this.execute<DataTable>("com.hnshituo.pur.ck.service.ExcDeliverySubMService", "get_ExcDeliverySubM", new object[] { esm });
  165. dataTable1.ImportRow(dt.Rows[0]);
  166. ExcDeliverySubC EdSc = new ExcDeliverySubC();
  167. EdSc.DeliverySubId = strsubid;
  168. DataTable dt1 = this.execute<DataTable>("com.hnshituo.pur.ck.service.ExcDeliverySubCService", "Query_C", new object[] { EdSc });
  169. dt1.Columns.Add("Connectkey", typeof(string));
  170. foreach (DataRow rowf in dt1.Rows)
  171. {
  172. rowf["Connectkey"] = rowf["itemCode"].ToString() + rowf["itemAttrId"].ToString();
  173. dataTable2.ImportRow(rowf);
  174. //dataTable5.ImportRow(rowf);
  175. }
  176. }
  177. //汇编物料数量
  178. foreach (DataRow row in dataTable2.Rows)
  179. {
  180. String stritemCode = row["itemCode"].ToString().Trim();
  181. String stritemAttrId = row["itemAttrId"].ToString().Trim();
  182. DataRow[] arrayDR = dataTable5.Select("itemCode='" + stritemCode + "' and itemAttrId='" + stritemAttrId + "'");
  183. if (arrayDR.Count() <= 0)
  184. {
  185. dataTable5.ImportRow(row);
  186. }
  187. else
  188. {
  189. if (arrayDR[0]["qty"] == null || String.IsNullOrEmpty(arrayDR[0]["qty"].ToString().Trim()))
  190. {
  191. arrayDR[0]["qty"] = row["qty"];
  192. }
  193. else
  194. {
  195. if (row["qty"] != null && !String.IsNullOrEmpty(row["qty"].ToString().Trim()))
  196. {
  197. arrayDR[0]["qty"] = Convert.ToDouble(arrayDR[0]["qty"]) + Convert.ToDouble(row["qty"]);
  198. }
  199. }
  200. }
  201. }
  202. foreach (DataRow roww in dataTable5.Rows)
  203. {
  204. String stritemCode = roww["itemCode"].ToString().Trim();
  205. String stritemAttrId = roww["itemAttrId"].ToString().Trim();
  206. RequirePlanD rd = new RequirePlanD();
  207. rd.ItemCode = stritemCode;
  208. rd.ItemAttrId = stritemAttrId;
  209. rd.Validflag = "1";
  210. //加载需求明显信息
  211. DataTable dt2 = this.execute<DataTable>("com.hnshituo.pur.requireplan.service.RequirePlanDService", "get_RequirePlanDlike", new object[] { rd });
  212. dt2.Columns.Add("Connectkey", typeof(string));
  213. foreach (DataRow rowff in dt2.Rows)
  214. {
  215. rowff["Connectkey"] = rowff["itemCode"].ToString() + rowff["itemAttrId"].ToString();
  216. }
  217. GridHelper.CopyDataToDatatable(dt2, dataTable6, false);
  218. }
  219. ultraGrid1.Refresh();
  220. ultraGrid2.Refresh();
  221. }
  222. catch (Exception ex)
  223. {
  224. MessageBox.Show("初始化失败" + ex, "提示");
  225. }
  226. }
  227. #endregion
  228. #region 数据校验事件
  229. private void ultraGrid3_CellChange(object sender, CellEventArgs e)
  230. {
  231. if (e.Cell.Row.HasParent())
  232. {
  233. double Qb_newcellvalue = Convert.ToDouble(e.Cell.Value);
  234. double Qb_newParentVale = Convert.ToDouble(e.Cell.Row.ParentRow.Cells["Qty"].Value);
  235. ultraGrid3.UpdateData();
  236. if (e.Cell.Column.Key.Equals("createQty")||e.Cell.Column.Key.Equals("isSelect"))
  237. {
  238. double t1 = (e.Cell.Row.Cells["createQty"].Value==null||String.IsNullOrEmpty(e.Cell.Row.Cells["createQty"].Value.ToString().Trim()))?0:Convert.ToDouble(e.Cell.Row.Cells["createQty"].Value);
  239. double t2 = (e.Cell.Row.Cells["qtyPur"].Value==null||String.IsNullOrEmpty(e.Cell.Row.Cells["qtyPur"].Value.ToString().Trim()))?0:Convert.ToDouble(e.Cell.Row.Cells["qtyPur"].Value);
  240. if (t1 > t2)
  241. {
  242. //MessageUtil.ShowTips("编制量不能大于核准数量");
  243. //return;
  244. e.Cell.Value = Qb_newcellvalue;
  245. }
  246. double tempval1 = 0;
  247. foreach (UltraGridRow rows in e.Cell.Row.ParentRow.ChildBands[0].Rows)
  248. {
  249. if (rows.Cells["createQty"].Value != null && !String.IsNullOrEmpty(rows.Cells["createQty"].Value.ToString()) && Convert.ToBoolean(rows.Cells["isSelect"].Value) == true)
  250. {
  251. tempval1 = tempval1 + Convert.ToDouble(rows.Cells["createQty"].Value);
  252. }
  253. }
  254. //if (tempval1 > Qb_newParentVale)
  255. //{
  256. // e.Cell.Value = Qb_newcellvalue;
  257. //}
  258. //else
  259. //{
  260. // e.Cell.Row.ParentRow.Cells["SurQty"].Value = tempval1;
  261. //}
  262. e.Cell.Row.ParentRow.Cells["createQty"].Value = tempval1;
  263. }
  264. }
  265. }
  266. #endregion
  267. private void ultraGrid3_InitializeLayout(object sender, InitializeLayoutEventArgs e)
  268. {
  269. }
  270. }
  271. }