frmChildAddWmsInPutAway.cs 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309
  1. using ComponentFactory.Krypton.Toolkit;
  2. using NXWMS.Client.FrmCustom;
  3. using NXWMS.Client.Model.AppModels.Condition.Instock;
  4. using NXWMS.Client.Model.AppModels.Result.Common;
  5. using NXWMS.Client.Model.AppModels.Result.Instock;
  6. using NXWMS.Client.Model.CoreModels;
  7. using NXWMS.Commons;
  8. using NXWMS.Services;
  9. using System;
  10. using System.Collections.Generic;
  11. using System.ComponentModel;
  12. using System.Data;
  13. using System.Drawing;
  14. using System.Linq;
  15. using System.Text;
  16. using System.Web.UI.WebControls;
  17. using System.Windows.Forms;
  18. using static NXWMS.Client.FrmCustom.CustomEventMsg;
  19. namespace NXWMS.Forms.Instock.frmInstockChild
  20. {
  21. /// <summary>
  22. /// 新增上架单
  23. /// </summary>
  24. public partial class frmChildAddWmsInPutAway : KryptonForm
  25. {
  26. /// <summary>
  27. /// 窗体构造函数
  28. /// </summary>
  29. public frmChildAddWmsInPutAway()
  30. {
  31. InitializeComponent();
  32. }
  33. #region 全局变量
  34. private string CurrSourceNo { get; set; }
  35. private string CurrTrayCode { get; set; }
  36. #endregion
  37. #region 初始化数据
  38. /// <summary>
  39. /// 窗体加载函数
  40. /// </summary>
  41. /// <param name="sender"></param>
  42. /// <param name="e"></param>
  43. private void frmChildAddWmsInPutAway_Load(object sender, EventArgs e)
  44. {
  45. InitComboBoxItemData();
  46. InitCusPalletNoCmbMsg();
  47. }
  48. /// <summary>
  49. /// 初始化下拉列表数据
  50. /// </summary>
  51. private void InitComboBoxItemData()
  52. {
  53. /*
  54. ToDo:后续把下拉列表转为 后台获取数据,目前是写死的。
  55. 1:收货组盘自动上架;2:退料组盘自动上架;3:WMS端手动上架;4:手持端入库上架;5:质检入库上架;6:盘点入库上架
  56. */
  57. List<BasDictionaryResult> results = new List<BasDictionaryResult>();
  58. #region 单据类型
  59. results = BasDictionaryUtil.basDictionaryResultLst.FindAll(x => x.DICTIONARY_CODE == "PutAwayTypeDesc");
  60. if (results.Count > 0)
  61. {
  62. kcmb_PutAwayType.Items.Clear();
  63. foreach (var item in results)
  64. {
  65. kcmb_PutAwayType.Items.Add(new ListItem
  66. {
  67. Value = item.DICTIONARY_ITEM_CODE,
  68. Text = item.DICTIONARY_ITEM_NAME,
  69. });
  70. }
  71. kcmb_PutAwayType.SelectedIndex = 0;
  72. }
  73. else
  74. {
  75. KryptonMessageBox.Show("未找到上架单类型的字典项数据!");
  76. }
  77. #endregion
  78. }
  79. /// <summary>
  80. /// 自定义到货通知单下拉列表的数据行选择事件
  81. /// </summary>
  82. /// <param name="sender"></param>
  83. /// <param name="e"></param>
  84. void CusPalletNo_AfterSelector(object sender, AfterSelectorEventArgs e)
  85. {
  86. try
  87. {
  88. DataGridViewRow row = e.Value as DataGridViewRow;
  89. DataRowView dataRow = row.DataBoundItem as DataRowView;
  90. string palletNoMsg = dataRow["托盘号"].ToString().Trim();
  91. string billNoMsg = dataRow["单据号"].ToString().Trim();
  92. string billTypeMsg = dataRow["单据类型"].ToString().Trim();
  93. kdgv_PutAwayDtlData.Rows.Clear();
  94. if (billTypeMsg == "收货单")
  95. {
  96. var result = WmsInstockService.wmsInReceiptService.GetWmsInReceiptRecordListForPage(new WmsInReceiptRecordSearchMd
  97. {
  98. ReceiptNoMsg = billNoMsg,
  99. PalletNoMsg = palletNoMsg,
  100. ReceiptRecordStatus = "0",
  101. PageNum = 1,
  102. EveryPageQty =100
  103. });
  104. if (result.Status == OperateStatus.Success)
  105. {
  106. CurrSourceNo = result.Data[0].RECEIPT_NO;
  107. CurrTrayCode = result.Data[0].TRAY_CODE;
  108. foreach (WmsInReceiptRecordResult item in result.Data)
  109. {
  110. int index = kdgv_PutAwayDtlData.Rows.Add();
  111. kdgv_PutAwayDtlData.Rows[index].Cells[0].Value = index + 1;
  112. kdgv_PutAwayDtlData.Rows[index].Cells[1].Value = item.MATERIEL_CODE;
  113. kdgv_PutAwayDtlData.Rows[index].Cells[2].Value = item.MATERIEL_NAME;
  114. kdgv_PutAwayDtlData.Rows[index].Cells[3].Value = item.MATERIEL_BARCODE;
  115. kdgv_PutAwayDtlData.Rows[index].Cells[4].Value = item.MATERIEL_SPEC;
  116. kdgv_PutAwayDtlData.Rows[index].Cells[5].Value = item.BATCH_NO;
  117. kdgv_PutAwayDtlData.Rows[index].Cells[6].Value = item.RECEIPT_QTY;
  118. kdgv_PutAwayDtlData.Rows[index].Cells[7].Value = item.UNIT_CODE;
  119. kdgv_PutAwayDtlData.Rows[index].Cells[8].Value = item.PACKAGE_CODE;
  120. kdgv_PutAwayDtlData.Rows[index].Cells[9].Value = item.SUPPLIER_CODE;
  121. kdgv_PutAwayDtlData.Rows[index].Cells[10].Value = item.SUPPLIER_NAME;
  122. kdgv_PutAwayDtlData.Rows[index].Cells[11].Value = item.PRODUCT_DATE;
  123. kdgv_PutAwayDtlData.Rows[index].Cells[12].Value = item.EXP_DATE;
  124. kdgv_PutAwayDtlData.Rows[index].Cells[13].Value = item.INSPECTION_RESULT_NAME;
  125. kdgv_PutAwayDtlData.Rows[index].Cells[14].Value = item.ITEM_STATUS_NAME;
  126. kdgv_PutAwayDtlData.Rows[index].Cells[15].Value = item.RECEIPT_RECORD_ID;
  127. kdgv_PutAwayDtlData.Rows[index].Cells[16].Value = item.INSPECTION_RESULT;
  128. kdgv_PutAwayDtlData.Rows[index].Cells[17].Value = item.ITEM_STATUS;
  129. }
  130. kcmb_PutAwayType.SelectedItem = new ListItem
  131. {
  132. Value = "1",
  133. Text = "收货组盘自动上架",
  134. };
  135. }
  136. }
  137. else
  138. {
  139. var result = WmsInstockService.wmsInRetreatService.GetWmsInRetreatRecordListForPage(new WmsInRetreatRecordSearchMd
  140. {
  141. RetreatNoMsg = billNoMsg,
  142. PalletNoMsg = palletNoMsg,
  143. RetreatRecordStatus = "0",
  144. PageNum = 1,
  145. EveryPageQty = 100,
  146. });
  147. if (result.Status == OperateStatus.Success)
  148. {
  149. CurrSourceNo = result.Data[0].RETREAT_NO;
  150. CurrTrayCode = result.Data[0].TRAY_CODE;
  151. foreach (WmsInRetreatRecordResult item in result.Data)
  152. {
  153. int index = kdgv_PutAwayDtlData.Rows.Add();
  154. kdgv_PutAwayDtlData.Rows[index].Cells[0].Value = index + 1;
  155. kdgv_PutAwayDtlData.Rows[index].Cells[1].Value = item.MATERIEL_CODE;
  156. kdgv_PutAwayDtlData.Rows[index].Cells[2].Value = item.MATERIEL_NAME;
  157. kdgv_PutAwayDtlData.Rows[index].Cells[3].Value = item.MATERIEL_BARCODE;
  158. kdgv_PutAwayDtlData.Rows[index].Cells[4].Value = item.MATERIEL_SPEC;
  159. kdgv_PutAwayDtlData.Rows[index].Cells[5].Value = item.BATCH_NO;
  160. kdgv_PutAwayDtlData.Rows[index].Cells[6].Value = item.RETREAT_QTY;
  161. kdgv_PutAwayDtlData.Rows[index].Cells[7].Value = item.UNIT_CODE;
  162. kdgv_PutAwayDtlData.Rows[index].Cells[8].Value = item.PACKAGE_CODE;
  163. kdgv_PutAwayDtlData.Rows[index].Cells[9].Value = item.SUPPLIER_CODE;
  164. kdgv_PutAwayDtlData.Rows[index].Cells[10].Value = item.SUPPLIER_NAME;
  165. kdgv_PutAwayDtlData.Rows[index].Cells[11].Value = item.PRODUCT_DATE;
  166. kdgv_PutAwayDtlData.Rows[index].Cells[12].Value = item.EXP_DATE;
  167. kdgv_PutAwayDtlData.Rows[index].Cells[13].Value = item.INSPECTION_RESULT_NAME;
  168. kdgv_PutAwayDtlData.Rows[index].Cells[14].Value = item.ITEM_STATUS_NAME;
  169. kdgv_PutAwayDtlData.Rows[index].Cells[15].Value = item.RETREAT_RECORD_ID;
  170. kdgv_PutAwayDtlData.Rows[index].Cells[16].Value = item.INSPECTION_RESULT;
  171. kdgv_PutAwayDtlData.Rows[index].Cells[17].Value = item.ITEM_STATUS;
  172. }
  173. kcmb_PutAwayType.SelectedItem = new ListItem
  174. {
  175. Value = "2",
  176. Text = "退料组盘自动上架",
  177. };
  178. }
  179. }
  180. }
  181. catch (Exception ex)
  182. {
  183. MessageBox.Show(ex.Message);
  184. }
  185. }
  186. /// <summary>
  187. /// 初始化自定义到货通知单下拉列表的数据
  188. /// </summary>
  189. private void InitCusPalletNoCmbMsg()
  190. {
  191. cmb_CusPalletNo.sDisplayField = "托盘号,单据类型,单据号";
  192. cmb_CusPalletNo.DisplayMember = "托盘号";
  193. cmb_CusPalletNo.sKeyWords = "托盘号";
  194. cmb_CusPalletNo.DataSource = CreateCusPalletNoTable();
  195. cmb_CusPalletNo.RowFilterVisible = true;
  196. cmb_CusPalletNo.AfterSelector += new AfterSelectorEventHandler(CusPalletNo_AfterSelector); ;
  197. }
  198. /// <summary>
  199. /// 创建数据源表格
  200. /// </summary>
  201. /// <returns></returns>
  202. private DataTable CreateCusPalletNoTable()
  203. {
  204. DataTable dt = new DataTable();
  205. DataColumn dc = new DataColumn("托盘号");
  206. dt.Columns.Add(dc);
  207. dc = new DataColumn("单据类型");
  208. dt.Columns.Add(dc);
  209. dc = new DataColumn("单据号");
  210. dt.Columns.Add(dc);
  211. var result = WmsInstockService.wmsInPutAwayService.GetPutAwayPalletMsgList();
  212. if (result.Status == OperateStatus.Success)
  213. {
  214. DataRow dr1 = dt.NewRow();
  215. foreach (WmsInPutAwayPalletMsgResult item in result.Data)
  216. {
  217. DataRow dr = dt.NewRow();
  218. dr["托盘号"] = item.PALLET_CODE;
  219. dr["单据类型"] = item.BillType;
  220. dr["单据号"] = item.BillNo;
  221. dt.Rows.Add(dr);
  222. }
  223. }
  224. return dt;
  225. }
  226. #endregion
  227. #region 按钮事件
  228. /// <summary>
  229. /// 确认按钮事件
  230. /// 提交添加完成的上架单数据
  231. /// </summary>
  232. /// <param name="sender"></param>
  233. /// <param name="e"></param>
  234. private void btnConfirm_Click(object sender, EventArgs e)
  235. {
  236. /*
  237. * ToDo: 后续增加托盘校验: 是否已经存在上架单信息。
  238. */
  239. WmsInPutAwayResult wmsInPutAwayResult = new WmsInPutAwayResult();
  240. wmsInPutAwayResult.SOURCE_NO = CurrSourceNo;
  241. wmsInPutAwayResult.TRAY_CODE = CurrTrayCode;
  242. wmsInPutAwayResult.PALLET_CODE = cmb_CusPalletNo.Text;
  243. wmsInPutAwayResult.PUTAWAY_TYPE = Convert.ToInt32(((ListItem)kcmb_PutAwayType.SelectedItem).Value);
  244. wmsInPutAwayResult.PUTAWAY_PRIORITY = Convert.ToInt32(knud_PutAwayPriority.Value);
  245. wmsInPutAwayResult.EBIN_CODE = ktb_EbinNo.Text;
  246. wmsInPutAwayResult.DESCRIBE = ktb_Describe.Text;
  247. wmsInPutAwayResult.CREATE_BY = AppConfig.UserLoginResult.UserInfo.UserId;
  248. wmsInPutAwayResult.UPDATE_BY = AppConfig.UserLoginResult.UserInfo.UserId;
  249. List<WmsInPutAwayDtlResult> wmsInPutAwayDtlList = new List<WmsInPutAwayDtlResult>();
  250. foreach (DataGridViewRow item in kdgv_PutAwayDtlData.Rows)
  251. {
  252. wmsInPutAwayDtlList.Add(new WmsInPutAwayDtlResult {
  253. MATERIEL_CODE = item.Cells[1].Value.ToString(),
  254. MATERIEL_NAME = item.Cells[2].Value.ToString(),
  255. MATERIEL_BARCODE = item.Cells[3].Value == null ? null : item.Cells[3].Value.ToString(),
  256. MATERIEL_SPEC = item.Cells[4].Value == null ? null : item.Cells[4].Value.ToString(),
  257. BATCH_NO = item.Cells[5].Value.ToString(),
  258. PUTAWAY_QTY = Convert.ToDecimal(item.Cells[6].Value),
  259. UNIT_CODE = item.Cells[7].Value.ToString(),
  260. PACKAGE_CODE = item.Cells[8].Value == null ? null: item.Cells[8].Value.ToString(),
  261. SUPPLIER_CODE = item.Cells[9].Value == null ? null : item.Cells[9].Value.ToString(),
  262. SUPPLIER_NAME = item.Cells[10].Value == null ? null : item.Cells[10].Value.ToString(),
  263. PRODUCT_DATE = Convert.ToDateTime(item.Cells[11].Value),
  264. EXP_DATE = Convert.ToDateTime(item.Cells[12].Value),
  265. INSPECTION_RESULT = item.Cells[16].Value.ToString(),
  266. ITEM_STATUS = Convert.ToInt32(item.Cells[17].Value),
  267. CREATE_BY = AppConfig.UserLoginResult.UserInfo.UserId,
  268. UPDATE_BY = AppConfig.UserLoginResult.UserInfo.UserId
  269. });
  270. }
  271. wmsInPutAwayResult.WmsInPutAwayDtlList = wmsInPutAwayDtlList;
  272. var result = WmsInstockService.wmsInPutAwayService.AddWmsInPutAwayData(wmsInPutAwayResult);
  273. if (result.Status == OperateStatus.Success)
  274. {
  275. KryptonMessageBox.Show(result.Message);
  276. frmWmsInPutAway.RefreshFrmHost();
  277. this.Close();
  278. }
  279. else
  280. {
  281. KryptonMessageBox.Show(result.Message);
  282. }
  283. }
  284. /// <summary>
  285. /// 取消按钮事件
  286. /// 退出新增界面
  287. /// </summary>
  288. /// <param name="sender"></param>
  289. /// <param name="e"></param>
  290. private void btnCancel_Click(object sender, EventArgs e)
  291. {
  292. this.Close();
  293. }
  294. #endregion
  295. #region DataGridView相关事件
  296. private void kdgv_PutAwayDtlData_DataError(object sender, DataGridViewDataErrorEventArgs e)
  297. {
  298. }
  299. #endregion
  300. }
  301. }