FrmPopConfirmCkInBill.cs 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348
  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 CoreFS.CA06;
  10. using Pur.Entity;
  11. using Core.Mes.Client.Comm.Control;
  12. using Core.Mes.Client.Comm;
  13. using Pur.Entity.configureEntity;
  14. using Infragistics.Win.UltraWinGrid;
  15. using System.Collections;
  16. using Pur.Entity.pur_orderEntiy;
  17. using Pur.configure;
  18. using Pur.Pop_upWindow;
  19. using Pur.require_plan;
  20. using Core.Mes.Client.Comm.Tool;
  21. using com.hnshituo.pur.vo;
  22. using Pur.Entity.ck;
  23. using Infragistics.Win;
  24. using Pur.ck;
  25. using Core.Mes.Client.Comm.Server;
  26. using Infragistics.Win.UltraWinEditors;
  27. namespace Pur.Pop_upWindow
  28. {
  29. public partial class FrmPopConfirmCkInBill : FrmPmsBase
  30. {
  31. public FrmPopConfirmCkInBill()
  32. {
  33. InitializeComponent();
  34. txt_CreateTimeStart.Value = ((DateTime)txt_CreateTimeStart.Value).AddMonths(-1);//将查询的起始日期推前一月
  35. GridHelper.SetExcludeColumnsActive(ultraGrid1.DisplayLayout.Bands[0], "Check");//设置grid只读
  36. GridHelper.SetExcludeColumnsActive(ultraGrid2.DisplayLayout.Bands[0], "qty");//设置只读
  37. //GridBindDropDownList();
  38. }
  39. public FrmPopConfirmCkInBill(OpeBase ob)
  40. {
  41. InitializeComponent();
  42. this.ob = ob;
  43. txt_CreateTimeStart.Value = ((DateTime)txt_CreateTimeStart.Value).AddMonths(-1);//将查询的起始日期推前一月
  44. GridHelper.SetExcludeColumnsActive(ultraGrid1.DisplayLayout.Bands[0], "Check");//设置grid只读
  45. GridHelper.SetExcludeColumnsActive(ultraGrid2.DisplayLayout.Bands[0], "qty");//设置只读
  46. GridBindDropDownList();
  47. }
  48. //菜单按钮事件
  49. public override void ToolBar_Click(object sender, string ToolbarKey)
  50. {
  51. switch (ToolbarKey)
  52. {
  53. case "Query":
  54. {
  55. GetCkInBill();
  56. }
  57. break;
  58. case "conFirmation":
  59. {
  60. conFirmation();
  61. }
  62. break;
  63. case "ESC":
  64. {
  65. this.Close();
  66. }
  67. break;
  68. }
  69. }
  70. //菜单单击事件
  71. private void barsManagerButon_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  72. {
  73. switch (e.Tool.Key.ToString())
  74. {
  75. case "Query":
  76. {
  77. GetCkInBill();
  78. }
  79. break;
  80. case "conFirmation":
  81. {
  82. conFirmation();
  83. }
  84. break;
  85. case "ESC":
  86. {
  87. this.Close();
  88. }
  89. break;
  90. }
  91. }
  92. /// <summary>
  93. /// 查询
  94. /// </summary>
  95. private void GetCkInBill()
  96. {
  97. PurCkInBillEntity pcibEntity = new PurCkInBillEntity();
  98. pcibEntity.RefType = "1";
  99. if (txt_CreateTimeStart.Value != null)//创建开始时间
  100. {
  101. pcibEntity.CreateTime = (DateTime)txt_CreateTimeStart.Value;
  102. }
  103. else
  104. {
  105. pcibEntity.CreateTime = DateTime.MinValue;
  106. }
  107. if (txt_CreateTimeEnd.Value != null)//创建结束时间
  108. {
  109. pcibEntity.UpdateTime = (DateTime)txt_CreateTimeEnd.Value;
  110. pcibEntity.UpdateTime = pcibEntity.UpdateTime.Value.AddDays(1);
  111. }
  112. else
  113. {
  114. pcibEntity.UpdateTime = DateTime.MaxValue;
  115. }
  116. if (txt_IN_STOCK_NO.Text != "")
  117. {
  118. pcibEntity.InStockNo = txt_IN_STOCK_NO.Text;//收货(入库)单行号
  119. }
  120. DataTable dt = this.execute<DataTable>("com.hnshituo.pur.ck.service.CkInBillService", "GetCkInBill", new object[] { pcibEntity });
  121. GridHelper.CopyDataToDatatable(dt, dataTable2, true);
  122. }
  123. /// <summary>
  124. /// 确认收货
  125. /// </summary>
  126. public void conFirmation()
  127. {
  128. ultraGrid1.UpdateData();//发货通知单行号
  129. ultraGrid2.UpdateData();//入库单储位明细表
  130. //ultraGrid5.UpdateData();//库存储位表
  131. ArrayList al_CkInBillEntity = new ArrayList();//入库单表
  132. ArrayList al_PurCkInbillPositionEntity = new ArrayList();//入库单储位明细表
  133. ArrayList al_CkStorageEntity = new ArrayList();//库存表
  134. ArrayList al_CkStoragePosEntity = new ArrayList();//库存储位表
  135. //ArrayList al_CkStatisticsEntity = new ArrayList();
  136. //循环发货通知单
  137. for (int i = 0; i < ultraGrid1.Rows.Count; i++)
  138. {
  139. if (!(bool)ultraGrid1.Rows[i].Cells["Check"].Value)
  140. { continue; }
  141. //-----------------------------------------------------------------------------入库单表
  142. //ExcDeliveryC ExcDeliveryCEntity = this.execute<ExcDeliveryC>("com.hnshituo.pur.ck.service.ExcDeliveryCService", "findById", new object[] { ultraGrid1.Rows[i].Cells["DELIVERYLINESQE"].Value.ToString() });
  143. //ExcDeliveryM ExcDeliveryMEntity = this.execute<ExcDeliveryM>("com.hnshituo.pur.ck.service.ExcDeliveryMService", "findById", new object[] { ultraGrid1.Rows[i].Cells["DELIVERYID"].Value.ToString() });
  144. PurCkInBillEntity CkInBillEntity = this.execute<PurCkInBillEntity>("com.hnshituo.pur.ck.service.CkInBillService", "findById", new object[] { ultraGrid1.Rows[i].Cells["INSTOCKNO"].Value.ToString() });//入库单表
  145. //CkInBillEntity = EntityHelper.CopyEntity<PurCkInBillEntity>(ExcDeliveryCEntity);//复制送货通知单行号中相同的字段值
  146. CkInBillEntity.RefeId = ultraGrid1.Rows[i].Cells["INSTOCKNO"].Value.ToString();//送货通知单行号
  147. CkInBillEntity.RefType = "1";//1收货单:2:送货单
  148. //CkInBillEntity.SuppCode = ExcDeliveryMEntity.SuppCode;
  149. //CkInBillEntity.SuppName = ExcDeliveryMEntity.SuppName;
  150. double b_qty = 0;
  151. double.TryParse(ultraGrid1.Rows[i].Cells["InNum"].Value.ToString(), out b_qty);
  152. CkInBillEntity.InNum = b_qty;//收货
  153. CkInBillEntity.CreateUserid = UserInfo.GetUserID();
  154. CkInBillEntity.CreateName = UserInfo.GetUserName();
  155. CkInBillEntity.UpdateName = null;
  156. CkInBillEntity.UpdateUserid = null;
  157. CkInBillEntity.UpdateTime = null;
  158. //-----------------------------------------------------------------------------库存单表
  159. CkStorage CkStorageEntity = new CkStorage();
  160. //CkStorageEntity = EntityHelper.CopyEntity<CkStorage>(ExcDeliveryCEntity);//复制发货通知单行号中相同的字段值
  161. //CkStorageEntity = EntityHelper.CopyEntity<CkStorage>(CkInBillEntity);//复制合同行号中相同的字段值
  162. //CkStorageEntity.RefeId = ultraGrid1.Rows[i].Cells["INSTOCKNO"].Value.ToString();//发货通知单行号
  163. //CkStorageEntity.RefType = "1";//1.收货单2:送货单
  164. //CkStorageEntity.Validflag = "1";
  165. //CkStorageEntity.SuppCode = ExcDeliveryMEntity.SuppCode;
  166. //CkStorageEntity.SuppName = ExcDeliveryMEntity.SuppName;
  167. CkStorageEntity.RefeId = ultraGrid1.Rows[i].Cells["INSTOCKNO"].Value.ToString();
  168. CkStorageEntity.InvQty = b_qty;//库存数量
  169. CkStorageEntity.CreateUserid = UserInfo.GetUserID();
  170. CkStorageEntity.CreateName = UserInfo.GetUserName();
  171. CkStorageEntity.UpdateName = null;
  172. CkStorageEntity.UpdateUserid = null;
  173. CkStorageEntity.UpdateTime = null;
  174. al_CkStorageEntity.Add(CkStorageEntity);
  175. //-------------------------------------------------------------------------------------------------------入库单储位明细表1
  176. //PurCkInbillPositionEntity CkInbillPositionEntity1 = new PurCkInbillPositionEntity();//入库单储位明细表
  177. //CkInbillPositionEntity1.InStockNo = ultraGrid1.Rows[i].Cells["DELIVERYLINESQE"].Value.ToString();//入库单号记录送货通知单行号,方便在后台获取入库单号
  178. //CkInbillPositionEntity1.Validflag = "1";
  179. //CkInbillPositionEntity1.InNum = b_qty;//入库量
  180. //CkInbillPositionEntity1.PackageQty = ultraGrid1.Rows[i].Cells["PackageQty"].Value.ToString();//包装数量
  181. //CkInbillPositionEntity1.PackageType = ultraGrid1.Rows[i].Cells["PackageType"].Value.ToString();//包装类型
  182. //CkInbillPositionEntity1.InvPhysic = ultraGrid1.Rows[i].Cells["INVPHYSIC"].Value.ToString();//物理库区
  183. //CkInbillPositionEntity1.InvPos = ultraGrid1.Rows[i].Cells["INVPOS"].Value.ToString();//库位
  184. //CkInbillPositionEntity1.MatBatchNo = ultraGrid1.Rows[i].Cells["MatBatchNo"].Value.ToString();//检验批号
  185. //CkInbillPositionEntity1.CreateUserid = UserInfo.GetUserID();
  186. //CkInbillPositionEntity1.CreateName = UserInfo.GetUserName();
  187. //al_PurCkInbillPositionEntity.Add(CkInbillPositionEntity1);//添加入库单储位明细表
  188. //-----------------------------------------------------------------------------------------------------库存储位明细表1
  189. //PurCkStoragePosEntity CkStoragePosEntity = new PurCkStoragePosEntity();//库存收发存表
  190. //CkStoragePosEntity.InvId = ultraGrid1.Rows[i].Cells["DELIVERYLINESQE"].Value.ToString();//库存记录号记录发货通知单行号,方便在后台获取入库单号
  191. //CkStoragePosEntity.Validflag = "1";
  192. //CkStoragePosEntity.InvOrigQty = b_qty;//入库量
  193. //CkStoragePosEntity.InvPhysic = ultraGrid1.Rows[i].Cells["INVPHYSIC"].Text.ToString();//物理库区
  194. //CkStoragePosEntity.InvPos = ultraGrid1.Rows[i].Cells["INVPOS"].Text.ToString();//库位
  195. //CkStoragePosEntity.PackageQty = ultraGrid1.Rows[i].Cells["PackageQty"].Value.ToString();//包装数量
  196. //CkStoragePosEntity.PackageType = ultraGrid1.Rows[i].Cells["PackageType"].Value.ToString();//包装类型
  197. //CkStoragePosEntity.MatBatchNo = ultraGrid1.Rows[i].Cells["MatBatchNo"].Value.ToString();//检验批号
  198. //CkStoragePosEntity.InvQty = b_qty;
  199. ////CkStorageEntity.InvOrigQty += b_InNum;//库存原始数量
  200. //al_CkStoragePosEntity.Add(CkStoragePosEntity);//添加库存单储位明细表
  201. //-----------------------------------------------------------------------------------------------------------入库单储位明细表2
  202. for (int j = 0; j < ultraGrid2.Rows.Count; j++)
  203. {
  204. if (ultraGrid1.Rows[i].Cells["InStockNo"].Value.ToString() != ultraGrid2.Rows[j].Cells["InStockNo"].Value.ToString())
  205. {
  206. continue;
  207. }
  208. PurCkInbillPositionEntity CkInbillPositionEntity = new PurCkInbillPositionEntity();//入库单储位明细表
  209. double bINNUM = 0;//入库量
  210. double.TryParse(ultraGrid2.Rows[j].Cells["INNUM"].Value.ToString().Trim(), out bINNUM);
  211. if (bINNUM > 0 && ultraGrid2.Rows[j].Cells["INVPHYSIC"].Value.ToString() != "" && ultraGrid2.Rows[j].Cells["INVPOS"].Value.ToString() != "")
  212. {
  213. //-----------------------------------------------------------------------------------------------------------入库单储位明细表2
  214. CkInbillPositionEntity.InStockNo = ultraGrid1.Rows[i].Cells["InStockNo"].Value.ToString();//入库单号记录送货通知单行号,方便在后台获取入库单号
  215. CkInbillPositionEntity.Validflag = "1";
  216. CkInbillPositionEntity.InNum = bINNUM;//入库量
  217. CkInbillPositionEntity.PackageQty = ultraGrid2.Rows[j].Cells["PackageQty"].Value.ToString();//包装数量
  218. CkInbillPositionEntity.PackageType = ultraGrid2.Rows[j].Cells["PackageType"].Value.ToString();//包装类型
  219. CkInbillPositionEntity.InvPhysic = ultraGrid2.Rows[j].Cells["INVPHYSIC"].Value.ToString();//物理库区
  220. CkInbillPositionEntity.InvPos = ultraGrid2.Rows[j].Cells["INVPOS"].Value.ToString();//库位
  221. CkInbillPositionEntity.MatBatchNo = ultraGrid2.Rows[j].Cells["MatBatchNo"].Value.ToString();//检验批号
  222. CkInbillPositionEntity.Remark = ultraGrid2.Rows[j].Cells["REMARK"].Value.ToString();
  223. CkInbillPositionEntity.CreateUserid = UserInfo.GetUserID();
  224. CkInbillPositionEntity.CreateName = UserInfo.GetUserName();
  225. //CkInBillEntity.InNum += bINNUM;//入库单表的入库量
  226. al_PurCkInbillPositionEntity.Add(CkInbillPositionEntity);//添加入库单储位明细表
  227. //---------------------------------------------------------------------------------------------------------------------------------库存储位明细表1
  228. PurCkStoragePosEntity CkStoragePosEntity1 = new PurCkStoragePosEntity();//库存收发存表
  229. CkStoragePosEntity1.InvId = ultraGrid1.Rows[i].Cells["InStockNo"].Value.ToString();//库存记录号记录发货通知单行号,方便在后台获取入库单号
  230. CkStoragePosEntity1.Validflag = "1";
  231. CkStoragePosEntity1.InvOrigQty = b_qty;//入库量
  232. CkStoragePosEntity1.InvQty = b_qty;//入库量
  233. CkStoragePosEntity1.InvPhysic = ultraGrid2.Rows[j].Cells["INVPHYSIC"].Text.ToString();//物理库区
  234. CkStoragePosEntity1.InvPos = ultraGrid2.Rows[j].Cells["INVPOS"].Text.ToString();//库位
  235. CkStoragePosEntity1.PackageQty = ultraGrid2.Rows[j].Cells["PackageQty"].Value.ToString();//包装数量
  236. //CkStoragePosEntity1.PackageType = ultraGrid2.Rows[j].Cells["PackageType"].Text.ToString();//包装类型
  237. CkStoragePosEntity1.MatBatchNo = ultraGrid2.Rows[j].Cells["MatBatchNo"].Value.ToString();//检验批号
  238. //CkStoragePosEntity1.InvQty += b_qty;
  239. CkStorageEntity.InvQty += b_qty;//库存原始数量
  240. al_CkStoragePosEntity.Add(CkStoragePosEntity1);//添加库存单储位明细表
  241. }
  242. }
  243. al_CkInBillEntity.Add(CkInBillEntity);
  244. }
  245. if (al_CkInBillEntity.Count < 1)
  246. {
  247. MessageUtil.ShowTips("请至少选择一条收货行");
  248. return;
  249. }
  250. CoreResult crt = this.execute<CoreResult>("com.hnshituo.pur.ck.service.CkInBillService", "AddCkInBill_2016417", new object[] { al_CkInBillEntity, al_PurCkInbillPositionEntity, al_CkStorageEntity, al_CkStoragePosEntity });
  251. if (crt.Resultcode != 0)
  252. {
  253. MessageUtil.ShowTips("入库失败 " + crt.Resultmsg);
  254. return;
  255. }
  256. MessageUtil.ShowTips("入库成功,入库单号:" + crt.Resultmsg);
  257. this.Close();
  258. }
  259. /// <summary>
  260. /// 激活入库单行
  261. /// </summary>
  262. /// <param name="sender"></param>
  263. /// <param name="e"></param>
  264. private void ultraGrid1_AfterRowActivate(object sender, EventArgs e)
  265. {
  266. UltraGridRow uge = ultraGrid1.ActiveRow;
  267. PurCkInbillPositionEntity CkInbillPositionEntity = new PurCkInbillPositionEntity();
  268. CkInbillPositionEntity.InStockNo = uge.Cells["InStockNo"].Value.ToString();
  269. DataTable dtCkInbillPositio = this.execute<DataTable>("com.hnshituo.pur.ck.service.CkInbillPositionService", "find", new object[] { CkInbillPositionEntity,0,0 });
  270. GridHelper.CopyDataToDatatable(dtCkInbillPositio, dataTable3, true);
  271. }
  272. private void GridBindDropDownList()
  273. {
  274. //绑定物料库区
  275. PhysicSeatEntity Phouse = new PhysicSeatEntity();
  276. Phouse.Validflag = "1";
  277. DataTable dt_Phouse = this.execute<DataTable>("com.hnshituo.pur.configure.service.ActualSeatService", "getActualSeat", new object[] { Phouse, 0, 0 });
  278. ultraChk_Phouse.DataSource = dt_Phouse;
  279. ultraChk_Phouse.DisplayMember = "invPhysicName";
  280. ultraChk_Phouse.ValueMember = "invPhysic";
  281. ultraGrid2.DisplayLayout.Bands[0].Columns["INVPHYSIC"].EditorComponent = ultraChk_Phouse;
  282. ultraGrid2.DisplayLayout.Bands[0].Columns["INVPHYSIC"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  283. ActualSeatPosEntity PosEntity = new ActualSeatPosEntity();
  284. PosEntity.Validflag = "1";
  285. //PosEntity.InvPhysic = e.Cell.Value.ToString();
  286. DataTable dt3 = this.execute<DataTable>("com.hnshituo.pur.configure.service.ActualSeatPosService", "find", new object[] { PosEntity, 0, 0 });
  287. UltraComboEditor cmb = getNewUltraComboEditor();
  288. cmb.DataSource = dt3;
  289. cmb.DisplayMember = "invPosName";
  290. cmb.ValueMember = "invPos";
  291. ultraGrid2.DisplayLayout.Bands[0].Columns["INVPOS"].EditorComponent = cmb;
  292. ultraGrid2.DisplayLayout.Bands[0].Columns["INVPOS"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  293. //包装方式
  294. DataTable dt4 = ServerHelper.GetData("com.hnshituo.pur.configure.service.impl.CoreBaseInfoNew.doQuery", new Object[] { "1107" }, this.ob);
  295. removeNotValiflagData(dt4);
  296. getUltcmbBindValueList(dt4, cmb_PACKAGE_TYPE);
  297. ultraGrid2.DisplayLayout.Bands[0].Columns["PACKAGETYPE"].EditorComponent = cmb_PACKAGE_TYPE;
  298. ultraGrid2.DisplayLayout.Bands[0].Columns["PACKAGETYPE"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  299. }
  300. /// <summary>
  301. /// 移除无效数据
  302. /// </summary>
  303. /// <param name="dt"></param>
  304. private void removeNotValiflagData(DataTable dt)
  305. {
  306. for (int i = 0; i < dt.Rows.Count; )
  307. {
  308. if (dt.Rows[i]["VALIDFLAG"].ToString() == "0")
  309. {
  310. dt.Rows.RemoveAt(i);
  311. }
  312. else
  313. {
  314. i++;
  315. }
  316. }
  317. }
  318. /// <summary>
  319. /// 绑定所有的下拉列表的数据
  320. /// </summary>
  321. private void getUltcmbBindValueList(DataTable dt, UltraComboEditor ultcmb)
  322. {
  323. for (int i = 0; i < dt.Rows.Count; i++)
  324. {
  325. ValueListItem vlItem = new ValueListItem(dt.Rows[i]["BASECODE"].ToString().Trim(), dt.Rows[i]["BASENAME"].ToString().Trim());
  326. ultcmb.Items.Add(vlItem);
  327. }
  328. }
  329. private UltraComboEditor getNewUltraComboEditor()
  330. {
  331. UltraComboEditor cmb = new UltraComboEditor();
  332. cmb.Visible = false;
  333. this.Controls.Add(cmb);
  334. return cmb;
  335. }
  336. }
  337. }