frmChildAddWmsOutPutDown.cs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. using ComponentFactory.Krypton.Toolkit;
  2. using NXWMS.Client.FrmCustom;
  3. using NXWMS.Client.Model.AppModels.Condition.OutStock;
  4. using NXWMS.Client.Model.AppModels.Result.Common;
  5. using NXWMS.Client.Model.AppModels.Result.OutStock;
  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.OutStock.frmOutstockChild
  20. {
  21. /// <summary>
  22. /// 新增下架单
  23. /// </summary>
  24. public partial class frmChildAddWmsOutPutDown : KryptonForm
  25. {
  26. /// <summary>
  27. /// 窗体构造函数
  28. /// </summary>
  29. public frmChildAddWmsOutPutDown()
  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 frmChildAddWmsOutPutDown_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:WMS端自动下架;2:WMS端手动下架;3:手持端出库下架;4:质检出库下架;5:盘点出库下架。
  56. */
  57. List<BasDictionaryResult> results = new List<BasDictionaryResult>();
  58. #region 单据类型
  59. results = BasDictionaryUtil.basDictionaryResultLst.FindAll(x => x.DICTIONARY_CODE == "PutDownTypeDesc");
  60. if (results.Count > 0)
  61. {
  62. kcmb_PutDownType.Items.Clear();
  63. foreach (var item in results)
  64. {
  65. kcmb_PutDownType.Items.Add(new ListItem
  66. {
  67. Value = item.DICTIONARY_ITEM_CODE,
  68. Text = item.DICTIONARY_ITEM_NAME,
  69. });
  70. }
  71. kcmb_PutDownType.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_PutDownDtlData.Rows.Clear();
  94. if (billTypeMsg == "发货单")
  95. {
  96. var result = WmsInvoiceService.wmsOutInvoiceService.GetWmsOutInvoiceRecordListForPage(new WmsOutInvoiceRecordSearchMd
  97. {
  98. InvoiceNoMsg = billNoMsg,
  99. PalletNoMsg = palletNoMsg,
  100. InvoiceRecordStatus = "0",
  101. PageNum = 1,
  102. EveryPageQty = 100
  103. });
  104. if (result.Status == OperateStatus.Success)
  105. {
  106. CurrSourceNo = result.Data[0].INVOICE_NO;
  107. CurrTrayCode = result.Data[0].TRAY_CODE;
  108. ktb_SbinNo.Text = result.Data[0].BIN_CODE;
  109. ktb_SbinNo.Enabled = false;
  110. foreach (WmsOutInvoiceRecordResult item in result.Data)
  111. {
  112. int index = kdgv_PutDownDtlData.Rows.Add();
  113. kdgv_PutDownDtlData.Rows[index].Cells[0].Value = index + 1;
  114. kdgv_PutDownDtlData.Rows[index].Cells[1].Value = item.MATERIEL_CODE;
  115. kdgv_PutDownDtlData.Rows[index].Cells[2].Value = item.MATERIEL_NAME;
  116. kdgv_PutDownDtlData.Rows[index].Cells[3].Value = item.MATERIEL_BARCODE;
  117. kdgv_PutDownDtlData.Rows[index].Cells[4].Value = item.MATERIEL_SPEC;
  118. kdgv_PutDownDtlData.Rows[index].Cells[5].Value = item.BATCH_NO;
  119. kdgv_PutDownDtlData.Rows[index].Cells[6].Value = item.INVOICE_QTY;
  120. kdgv_PutDownDtlData.Rows[index].Cells[7].Value = item.UNIT_CODE;
  121. kdgv_PutDownDtlData.Rows[index].Cells[8].Value = item.PACKAGE_CODE;
  122. kdgv_PutDownDtlData.Rows[index].Cells[9].Value = item.SUPPLIER_CODE;
  123. kdgv_PutDownDtlData.Rows[index].Cells[10].Value = item.SUPPLIER_NAME;
  124. kdgv_PutDownDtlData.Rows[index].Cells[11].Value = item.PRODUCT_DATE;
  125. kdgv_PutDownDtlData.Rows[index].Cells[12].Value = item.EXP_DATE;
  126. kdgv_PutDownDtlData.Rows[index].Cells[13].Value = item.INSPECTION_RESULT_NAME;
  127. kdgv_PutDownDtlData.Rows[index].Cells[14].Value = item.ITEM_STATUS_NAME;
  128. kdgv_PutDownDtlData.Rows[index].Cells[15].Value = item.INVOICE_RECORD_ID;
  129. kdgv_PutDownDtlData.Rows[index].Cells[16].Value = item.INSPECTION_RESULT;
  130. kdgv_PutDownDtlData.Rows[index].Cells[17].Value = item.ITEM_STATUS;
  131. }
  132. kcmb_PutDownType.SelectedItem = new ListItem
  133. {
  134. Value = "1",
  135. Text = "WMS端自动下架",
  136. };
  137. }
  138. }
  139. }
  140. catch (Exception ex)
  141. {
  142. MessageBox.Show(ex.Message);
  143. }
  144. }
  145. /// <summary>
  146. /// 初始化自定义到货通知单下拉列表的数据
  147. /// </summary>
  148. private void InitCusPalletNoCmbMsg()
  149. {
  150. cmb_CusPalletNo.sDisplayField = "托盘号,单据类型,单据号";
  151. cmb_CusPalletNo.DisplayMember = "托盘号";
  152. cmb_CusPalletNo.sKeyWords = "托盘号";
  153. cmb_CusPalletNo.DataSource = CreateCusPalletNoTable();
  154. cmb_CusPalletNo.RowFilterVisible = true;
  155. cmb_CusPalletNo.AfterSelector += new AfterSelectorEventHandler(CusPalletNo_AfterSelector); ;
  156. }
  157. /// <summary>
  158. /// 创建数据源表格
  159. /// </summary>
  160. /// <returns></returns>
  161. private DataTable CreateCusPalletNoTable()
  162. {
  163. DataTable dt = new DataTable();
  164. DataColumn dc = new DataColumn("托盘号");
  165. dt.Columns.Add(dc);
  166. dc = new DataColumn("单据类型");
  167. dt.Columns.Add(dc);
  168. dc = new DataColumn("单据号");
  169. dt.Columns.Add(dc);
  170. var result = WmsInvoiceService.wmsOutPutDownService.GetPutDownPalletMsgList();
  171. if (result.Status == OperateStatus.Success)
  172. {
  173. DataRow dr1 = dt.NewRow();
  174. foreach (WmsOutPutDownPalletMsgResult item in result.Data)
  175. {
  176. DataRow dr = dt.NewRow();
  177. dr["托盘号"] = item.PALLET_CODE;
  178. dr["单据类型"] = item.BillType;
  179. dr["单据号"] = item.BillNo;
  180. dt.Rows.Add(dr);
  181. }
  182. }
  183. return dt;
  184. }
  185. #endregion
  186. #region 按钮事件
  187. /// <summary>
  188. /// 确认按钮事件
  189. /// 提交添加完成的上架单数据
  190. /// </summary>
  191. /// <param name="sender"></param>
  192. /// <param name="e"></param>
  193. private void btnConfirm_Click(object sender, EventArgs e)
  194. {
  195. /*
  196. * ToDo: 后续增加托盘校验: 是否已经存在下架单信息。
  197. */
  198. WmsOutPutDownResult wmsOutPutDownResult = new WmsOutPutDownResult();
  199. wmsOutPutDownResult.PALLET_CODE = cmb_CusPalletNo.Text;
  200. wmsOutPutDownResult.PUTDOWN_TYPE = Convert.ToInt32(((ListItem)kcmb_PutDownType.SelectedItem).Value);
  201. wmsOutPutDownResult.PUTDOWN_PRIORITY = Convert.ToInt32(knud_PutDownPriority.Value);
  202. wmsOutPutDownResult.SBIN_CODE = ktb_SbinNo.Text;
  203. wmsOutPutDownResult.TRAY_CODE = CurrTrayCode;
  204. wmsOutPutDownResult.SOURCE_NO = CurrSourceNo;
  205. wmsOutPutDownResult.DESCRIBE = ktb_Describe.Text;
  206. wmsOutPutDownResult.CREATE_BY = AppConfig.UserLoginResult.UserInfo.UserId;
  207. wmsOutPutDownResult.UPDATE_BY = AppConfig.UserLoginResult.UserInfo.UserId;
  208. List<WmsOutPutDownDtlResult> wmsOutPutDownDtlList = new List<WmsOutPutDownDtlResult>();
  209. foreach (DataGridViewRow item in kdgv_PutDownDtlData.Rows)
  210. {
  211. wmsOutPutDownDtlList.Add(new WmsOutPutDownDtlResult
  212. {
  213. MATERIEL_CODE = item.Cells[1].Value.ToString(),
  214. MATERIEL_NAME = item.Cells[2].Value.ToString(),
  215. MATERIEL_BARCODE = item.Cells[3].Value == null ? null : item.Cells[3].Value.ToString(),
  216. MATERIEL_SPEC = item.Cells[4].Value == null ? null : item.Cells[4].Value.ToString(),
  217. BATCH_NO = item.Cells[5].Value.ToString(),
  218. PUTDOWN_QTY = Convert.ToDecimal(item.Cells[6].Value),
  219. UNIT_CODE = item.Cells[7].Value.ToString(),
  220. PACKAGE_CODE = item.Cells[8].Value == null ? null : item.Cells[8].Value.ToString(),
  221. SUPPLIER_CODE = item.Cells[9].Value == null ? null : item.Cells[9].Value.ToString(),
  222. SUPPLIER_NAME = item.Cells[10].Value == null ? null : item.Cells[10].Value.ToString(),
  223. PRODUCT_DATE = Convert.ToDateTime(item.Cells[11].Value),
  224. EXP_DATE = Convert.ToDateTime(item.Cells[12].Value),
  225. INSPECTION_RESULT = item.Cells[16].Value.ToString(),
  226. ITEM_STATUS = Convert.ToInt32(item.Cells[17].Value),
  227. CREATE_BY = AppConfig.UserLoginResult.UserInfo.UserId,
  228. UPDATE_BY = AppConfig.UserLoginResult.UserInfo.UserId
  229. });
  230. }
  231. wmsOutPutDownResult.WmsOutPutDownDtlList = wmsOutPutDownDtlList;
  232. var result = WmsInvoiceService.wmsOutPutDownService.AddWmsOutPutDownData(wmsOutPutDownResult);
  233. if (result.Status == OperateStatus.Success)
  234. {
  235. KryptonMessageBox.Show(result.Message);
  236. frmWmsOutPutDown.RefreshFrmHost();
  237. this.Close();
  238. }
  239. else
  240. {
  241. KryptonMessageBox.Show(result.Message);
  242. }
  243. }
  244. /// <summary>
  245. /// 取消按钮事件
  246. /// 退出新增界面
  247. /// </summary>
  248. /// <param name="sender"></param>
  249. /// <param name="e"></param>
  250. private void btnCancel_Click(object sender, EventArgs e)
  251. {
  252. this.Close();
  253. }
  254. #endregion
  255. }
  256. }