华恒Mes鼎捷代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

820 lines
35 KiB

5 months ago
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Windows.Forms;
  8. using DevExpress.XtraEditors;
  9. using ICSSoft.Frame.User.BLL;
  10. using ICSSoft.Base.Language.Tool;
  11. using ICSSoft.Base.UserControl.MessageControl;
  12. using ICSSoft.Frame.Data.BLL;
  13. using System.Data.SqlClient;
  14. using ICSSoft.Base.Config.AppConfig;
  15. using ICSSoft.Frame.Data.Entity;
  16. using ICSSoft.Base.Report.Filter;
  17. using ICSSoft.Base.Config.DBHelper;
  18. using ICSSoft.Base.UserControl.FormControl;
  19. using ICSSoft.Base.ReferForm.AppReferForm;
  20. using ICSSoft.Base.Lable.PrintTool;
  21. using System.Threading;
  22. namespace ICSSoft.Frame.APP
  23. {
  24. public partial class FormICSWBSSpecialLog : DevExpress.XtraEditors.XtraForm
  25. {
  26. private string sqltxt = "";
  27. private string sqlconn = "";
  28. String guid = AppConfig.GetGuid();
  29. private DataTable dataSource = null;
  30. #region 构造函数
  31. public FormICSWBSSpecialLog()
  32. {
  33. InitializeComponent();
  34. this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
  35. this.WindowState = FormWindowState.Maximized;
  36. }
  37. #endregion
  38. #region 移动窗体
  39. private const int WM_NCHITTEST = 0x84;
  40. private const int HTCLIENT = 0x1;
  41. private const int HTCAPTION = 0x2;
  42. //首先必须了解Windows的消息传递机制,当有鼠标活动消息时,
  43. //系统发送WM_NCHITTEST 消息给窗体作为判断消息发生地的根据。 nchittest
  44. //假如你点击的是标题栏,窗体收到的消息值就是 HTCAPTION ,
  45. //同样地,若接受到的消息是 HTCLIENT,说明用户点击的是客户区,也就是鼠标消息发生在客户区。
  46. //重写窗体,使窗体可以不通过自带标题栏实现移动
  47. protected override void WndProc(ref Message m)
  48. {
  49. //当重载窗体的 WndProc 方法时,可以截获 WM_NCHITTEST 消息并改些该消息,
  50. //当判断鼠标事件发生在客户区时,改写改消息,发送 HTCAPTION 给窗体,
  51. //这样,窗体收到的消息就时 HTCAPTION ,在客户区通过鼠标来拖动窗体就如同通过标题栏来拖动一样。
  52. //注意:当你重载 WndProc 并改写鼠标事件后,整个窗体的鼠标事件也就随之改变了。
  53. switch (m.Msg)
  54. {
  55. case WM_NCHITTEST:
  56. base.WndProc(ref m);
  57. if ((int)m.Result == HTCLIENT)
  58. m.Result = (IntPtr)HTCAPTION;
  59. return;
  60. }
  61. //拦截双击标题栏、移动窗体的系统消息
  62. if (m.Msg != 0xA3)
  63. {
  64. base.WndProc(ref m);
  65. }
  66. }
  67. #endregion
  68. #region SystemOptition
  69. /// <summary>
  70. /// 操作权限
  71. /// </summary>
  72. /// <returns></returns>
  73. public DataTable RightOfExute()
  74. {
  75. DataTable rData = new DataTable();
  76. rData.Columns.Add("BtnName");
  77. rData.Columns.Add("ActionName");
  78. //查看权限(必须有)
  79. DataRow seeRow = rData.NewRow();
  80. seeRow["BtnName"] = "see";
  81. seeRow["ActionName"] = "查看";
  82. rData.Rows.Add(seeRow);
  83. List<Control> ControlList = new List<Control>();
  84. ControlList.Add(BtnPrint);
  85. ControlList.Add(btnWBSTransfer);
  86. //ControlList.Add(btnExit);
  87. foreach (Control ctr in ControlList)
  88. {
  89. if (ctr.GetType() == typeof(SimpleButton))
  90. {
  91. DataRow dr = rData.NewRow();
  92. dr["BtnName"] = ctr.Name;
  93. dr["ActionName"] = ctr.Text;
  94. rData.Rows.Add(dr);
  95. }
  96. }
  97. rData.AcceptChanges();
  98. return rData;
  99. }
  100. /// <summary>
  101. /// 数据权限
  102. /// </summary>
  103. /// <returns></returns>
  104. public DataTable RightOfData()
  105. {
  106. DataTable rData = new DataTable();
  107. rData.Columns.Add("BodyName");
  108. rData.Columns.Add("ControlName");
  109. rData.Columns.Add("ControlCaption");
  110. rData.AcceptChanges();
  111. return rData;
  112. }
  113. #endregion
  114. #region 退出
  115. private void btnClose_Click(object sender, EventArgs e)
  116. {
  117. AppConfig.CloseFormShow(this.Text);
  118. this.Close();
  119. }
  120. private void btnExit_Click(object sender, EventArgs e)
  121. {
  122. AppConfig.CloseFormShow(this.Text);
  123. this.Close();
  124. }
  125. #endregion
  126. #region 过滤
  127. private string tempTableName = "";
  128. private void btnFilter_Click(object sender, EventArgs e)
  129. {
  130. FormFilter filter = new FormFilter(AppConfig.GetSourceId(this.Tag.ToString(), btnConfig.Name));
  131. filter.OldTempTableName = tempTableName;
  132. if (filter.ShowDialog() == DialogResult.OK)
  133. {
  134. DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm("正在查找...请稍等...");
  135. try
  136. {
  137. _wait.Show();
  138. tempTableName = filter.NewTempTableName;
  139. sqltxt = filter.SqlText;
  140. sqlconn = filter.FilterConnectString;
  141. dataSource = filter.FilterData.Tables[0];
  142. grdDetail.DataSource = dataSource;
  143. grvDetail.BestFitColumns();
  144. rptPage.RecordNum = dataSource.Rows.Count;
  145. rptPage.PageSize = 499;
  146. rptPage.PageIndex = 1;
  147. rptPage.ReLoad();
  148. rptPage.PageSize = 499;
  149. rptPage.PageIndex = 1;
  150. rptPage.ReLoad();
  151. rptPage.PageSize = 500;
  152. rptPage.PageIndex = 1;
  153. rptPage.ReLoad();
  154. _wait.Close();
  155. }
  156. catch (Exception ex)
  157. {
  158. MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
  159. _wait.Close();
  160. }
  161. }
  162. }
  163. #endregion
  164. #region 绑定数据源
  165. private void btnConfig_Click(object sender, EventArgs e)//绑定数据源
  166. {
  167. if (AppConfig.UserCode.ToLower() != "demo")
  168. {
  169. //ICSBaseSimpleCode.AppshowMessageBox("您没有权限设置数据源,请联系软件提供商!");
  170. return;
  171. }
  172. FormDataSource fdata = new FormDataSource(AppConfig.GetMenuId(this.Tag.ToString()), btnConfig.Name);
  173. fdata.ShowDialog();
  174. }
  175. #endregion
  176. #region 全选
  177. private void btnSelectAll_Click(object sender, EventArgs e)
  178. {
  179. for (int i = 0; i < grvDetail.RowCount; i++)
  180. {
  181. grvDetail.SetRowCellValue(i, colisSelect, true);
  182. }
  183. }
  184. #endregion
  185. #region 全消
  186. private void btnCancelAll_Click(object sender, EventArgs e)
  187. {
  188. for (int i = 0; i < grvDetail.RowCount; i++)
  189. {
  190. grvDetail.SetRowCellValue(i, colisSelect, false);
  191. }
  192. }
  193. #endregion
  194. #region 双击
  195. private void grvDetail_DoubleClick(object sender, EventArgs e)
  196. {
  197. if (grvDetail.FocusedRowHandle < 0)
  198. {
  199. return;
  200. }
  201. if (grvDetail.FocusedColumn == colisSelect)
  202. {
  203. if (grvDetail.GetRowCellValue(grvDetail.FocusedRowHandle, colisSelect).ToString() == "")
  204. {
  205. grvDetail.SetRowCellValue(grvDetail.FocusedRowHandle, colisSelect, "Y");
  206. }
  207. else
  208. {
  209. grvDetail.SetRowCellValue(grvDetail.FocusedRowHandle, colisSelect, "");
  210. }
  211. }
  212. }
  213. #endregion
  214. #region 刷新
  215. private void btnFalsh_Click(object sender, EventArgs e)
  216. {
  217. if (sqlconn == null || sqlconn == "")
  218. {
  219. return;
  220. }
  221. DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm("正在查找...请稍等...");
  222. try
  223. {
  224. _wait.Show();
  225. FormFilter filter = new FormFilter(AppConfig.GetSourceId(this.Tag.ToString(), btnConfig.Name), false);
  226. filter.OldTempTableName = tempTableName;
  227. //tempTableName = filter.NewTempTableName;
  228. //DataTable data = DBHelper.ExecuteDataset(AppConfig.FrameConnectString, CommandType.Text, "select * from " + tempTableName).Tables[0];
  229. dataSource = DBHelper.ExecuteDataset(sqlconn, CommandType.Text, sqltxt).Tables[0];
  230. grdDetail.DataSource = dataSource;
  231. rptPage.RecordNum = dataSource.Rows.Count;
  232. rptPage.PageIndex = 1;
  233. rptPage.ReLoad();
  234. _wait.Close();
  235. }
  236. catch (Exception ex)
  237. {
  238. MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
  239. _wait.Close();
  240. }
  241. }
  242. #endregion
  243. #region 列表
  244. private void grvDetail_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
  245. {
  246. if (e.Info.IsRowIndicator && e.RowHandle >= 0)
  247. e.Info.DisplayText = (e.RowHandle + 1).ToString();
  248. }
  249. #endregion
  250. #region 过滤方法
  251. private void FormICSStack_FormClosing(object sender, FormClosingEventArgs e)
  252. {
  253. AppConfig.DropTemTable(tempTableName);
  254. }
  255. #endregion
  256. #region 分页
  257. private void rptPage_PageIndexChanged(object Sender, EventArgs e)
  258. {
  259. DataTable data = AppConfig.GetPageData(dataSource, rptPage.PageIndex, rptPage.PageSize).Copy();
  260. //DataTable data = AppConfig.GetPageDataByDb(tempTableName, "pagerowindex", rptPage.PageSize, rptPage.PageIndex, dataSource.Rows.Count);
  261. grdDetail.DataSource = data;
  262. }
  263. #endregion
  264. private void grdDetail_Click(object sender, EventArgs e)
  265. {
  266. DataTable dt = new DataTable();
  267. dt.Columns.Add();
  268. }
  269. private void FormICSSum_Manday_Load_1(object sender, EventArgs e)
  270. {
  271. btnFilter_Click(sender, e);
  272. }
  273. private void btnOutPut_Click(object sender, EventArgs e)
  274. {
  275. SimpleButton btntemp = (SimpleButton)sender;
  276. if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
  277. {
  278. ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
  279. return;
  280. }
  281. FormOutExcel foe = new FormOutExcel();
  282. if (foe.ShowDialog() == DialogResult.OK)
  283. {
  284. try
  285. {
  286. string outtype = foe._OutType;
  287. string exceltype = foe._ExcelType;
  288. string filename = foe._FileName;
  289. string url = foe._Url;
  290. string sheetname = foe._SheetName;
  291. if (outtype.ToLower() == "excel")
  292. {
  293. DevExpress.XtraPrinting.XlsExportOptions op = new DevExpress.XtraPrinting.XlsExportOptions();
  294. op.SheetName = sheetname;
  295. grdDetail.MainView.ExportToXls((url + "\\" + filename + (exceltype == "2003" ? ".xls" : ".xlsx")), op);
  296. }
  297. else
  298. {
  299. grdDetail.MainView.ExportToPdf(url + "\\" + filename + ".pdf");
  300. }
  301. MessageBox.Show("导出成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  302. }
  303. catch (Exception ex)
  304. {
  305. MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
  306. }
  307. }
  308. }
  309. #region 导入
  310. private void btnImportData_Click(object sender, EventArgs e)
  311. {
  312. SimpleButton btntemp = (SimpleButton)sender;
  313. if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
  314. {
  315. ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
  316. return;
  317. }
  318. DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm();
  319. _wait.Hide();
  320. try
  321. {
  322. FormReadExcel fre = new FormReadExcel();
  323. if (fre.ShowDialog() != DialogResult.OK)
  324. {
  325. return;
  326. }
  327. DataTable dataSource = fre._excelData;
  328. if (dataSource == null)
  329. {
  330. throw new Exception("excel数据取得失败");
  331. }
  332. _wait.Show();
  333. _wait.Caption = "判断模版是否正确......";
  334. #region 判断模版是否正确
  335. List<FormReadExcelUIModelColumns> colNameList = new List<FormReadExcelUIModelColumns>();
  336. //colNameList.Add(new FormReadExcelUIModelColumns("条码", true));
  337. colNameList.Add(new FormReadExcelUIModelColumns("物料编码", true));
  338. colNameList.Add(new FormReadExcelUIModelColumns("库位", true));
  339. colNameList.Add(new FormReadExcelUIModelColumns("库位数量或最小包装数量", true));
  340. colNameList.Add(new FormReadExcelUIModelColumns("整盘数", true));
  341. colNameList.Add(new FormReadExcelUIModelColumns("入库日期", false));
  342. foreach (FormReadExcelUIModelColumns columnsName in colNameList)
  343. {
  344. if (!dataSource.Columns.Contains(columnsName.columnsName))
  345. {
  346. throw new Exception("模版不正确,缺少列" + columnsName.columnsName);
  347. }
  348. }
  349. #endregion
  350. _wait.Caption = "数据整理中......";
  351. List<ICSITEMTrans> ItemTransList = new List<ICSITEMTrans>();
  352. List<ICSITEMTransLot> ItemTransLotList = new List<ICSITEMTransLot>();
  353. List<FormICSWareHouseLotInfoUIModel> ICSWareHouseLotInfoList = new List<FormICSWareHouseLotInfoUIModel>();
  354. List<ICSWareHouseInfo> ICSWareHouseInfoList = new List<ICSWareHouseInfo>();
  355. List<ICSITEMLot> InfoList = new List<ICSITEMLot>();
  356. int index = 1;
  357. foreach (DataRow dr in dataSource.Rows)
  358. {
  359. index++;
  360. ///判断必输项目是否为空
  361. foreach (FormReadExcelUIModelColumns columnsName in colNameList)
  362. {
  363. if (string.IsNullOrWhiteSpace(dr[columnsName.columnsName].ToString()) == true && columnsName.NotNull == true)
  364. {
  365. throw new Exception("第 " + index + " 行,列" + columnsName.columnsName + "没有输入值");
  366. }
  367. }
  368. //string LotNO = dr["条码"].ToString();
  369. string ItemCode = dr["物料编码"].ToString();
  370. string StackCode = dr["库位"].ToString();
  371. string Date = dr["入库日期"].ToString();
  372. DateTime dataTime;
  373. if (Date == "")
  374. {
  375. dataTime = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  376. }
  377. //else if (Date.Contains("2099"))
  378. //{
  379. // dataTime = Convert.ToDateTime("2099-12-31" + " " + AppConfig.GetSeverDateTime("HH:mm:ss").ToString("HH:mm:ss"));
  380. //}
  381. else
  382. {
  383. dataTime = Convert.ToDateTime(Convert.ToDateTime(Date).ToString("yyyy-MM-dd") + " " + AppConfig.GetSeverDateTime("HH:mm:ss").ToString("HH:mm:ss"));
  384. }
  385. string Type = "";
  386. decimal QTY = 0;
  387. bool result = decimal.TryParse(dr["库位数量或最小包装数量"].ToString(), out QTY);
  388. if (!result)
  389. {
  390. throw new Exception("第 " + index + " 行,库位数量或最小包装数量:" + dr["库位数量或最小包装数量"].ToString() + " 格式不正确!");
  391. }
  392. int count = 0;
  393. bool resultCount = int.TryParse(dr["整盘数"].ToString(), out count);
  394. if (!resultCount)
  395. {
  396. throw new Exception("第 " + index + " 行,整盘数:" + dr["整盘数"].ToString() + " 格式不正确!");
  397. }
  398. DataTable ddt3 = ICSSoft.Frame.Data.BLL.ICSWareHouseLotInfoLogBLL.SelectItem(ItemCode);
  399. if (ddt3 == null || ddt3.Rows.Count <= 0)
  400. {
  401. throw new Exception("第 " + index + " 行,物料编码:" + ItemCode + " 不存在!");
  402. }
  403. else
  404. {
  405. Type = ddt3.Rows[0]["Type"].ToString();
  406. }
  407. string StorageCode = "";
  408. DataTable ddt2 = ICSSoft.Frame.Data.BLL.ICSWareHouseLotInfoLogBLL.SelectStack(StackCode);
  409. if (ddt2 == null || ddt2.Rows.Count <= 0)
  410. {
  411. throw new Exception("第 " + index + " 行,库位:" + StackCode + " 不存在!");
  412. }
  413. else
  414. {
  415. StorageCode = ddt2.Rows[0]["StorageCode"].ToString();
  416. }
  417. DateTime time = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  418. string Time = time.ToString("yyyyMMddHHmmss");
  419. for (int i = count; i > 0; i--)
  420. {
  421. string LotNO = Time + (count - i + 1).ToString().PadLeft(3, '0');
  422. #region 批次信息表
  423. ICSITEMLot Info = new ICSITEMLot();
  424. Info.ID = "";
  425. Info.LotNO = LotNO;
  426. Info.LOTQTY = Convert.ToDecimal(QTY);
  427. Info.MCODE = ItemCode;
  428. //Info.TransNO = RecInfo.rdrecord.ReceiptNO;
  429. //Info.TransLine = RecInfo.rdrecord.ReceiptLine;
  430. //if (!string.IsNullOrWhiteSpace(RecInfo.VenderLotNO))
  431. // Info.VenderLotNO = RecInfo.VenderLotNO;
  432. //else
  433. Info.VenderLotNO = Time.Substring(2, 6) + (count - i + 1).ToString().PadLeft(3, '0'); //生产批号,每个工单一个
  434. Info.PRODUCTDATE = time;
  435. Info.ACTIVE = "Y";
  436. Info.Exdate = Convert.ToDateTime("2999-12-31");
  437. Info.TYPE = Type;
  438. Info.WorkPoint = AppConfig.WorkPointCode;
  439. Info.MUSER = AppConfig.UserId;
  440. Info.MUSERName = AppConfig.UserName;
  441. Info.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  442. Info.EATTRIBUTE1 = "期初";
  443. InfoList.Add(Info);
  444. #endregion
  445. #region 存入库存信息表
  446. ICSWareHouseInfo lotinfo = new ICSWareHouseInfo();
  447. if (ddt2 != null && ddt2.Rows.Count > 0)
  448. {
  449. lotinfo.WHGUID = ddt2.Rows[0]["StorageID"].ToString();
  450. }
  451. lotinfo.WHCode = StorageCode;
  452. if (ddt2 != null && ddt2.Rows.Count > 0)
  453. {
  454. lotinfo.BinGUID = ddt2.Rows[0][0].ToString();
  455. }
  456. lotinfo.BinCode = StackCode;
  457. if (ddt3 != null && ddt3.Rows.Count > 0)
  458. {
  459. lotinfo.INVGUID = ddt3.Rows[0][0].ToString();
  460. }
  461. lotinfo.INVCode = ItemCode;
  462. //if (!string.IsNullOrEmpty(QTY))
  463. //{
  464. lotinfo.QTY = Convert.ToDecimal(QTY);
  465. //}
  466. lotinfo.WorkPoint = AppConfig.WorkPointCode;
  467. lotinfo.MUSER = AppConfig.UserId;
  468. lotinfo.MUSERName = AppConfig.UserName;
  469. lotinfo.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  470. lotinfo.EATTRIBUTE1 = "期初";
  471. ICSWareHouseInfoList.Add(lotinfo);
  472. #endregion
  473. #region 存入物料,产品批次的库存信息
  474. FormICSWareHouseLotInfoUIModel lotinfo2 = new FormICSWareHouseLotInfoUIModel();
  475. lotinfo2.ID = AppConfig.GetGuid();
  476. lotinfo2.LotNO = LotNO;
  477. if (ddt2 != null && ddt2.Rows.Count > 0)
  478. {
  479. lotinfo2.WHGUID = ddt2.Rows[0]["StorageID"].ToString();
  480. }
  481. lotinfo2.WHCode = StorageCode;
  482. if (ddt2 != null && ddt2.Rows.Count > 0)
  483. {
  484. lotinfo2.BinGUID = ddt2.Rows[0][0].ToString();
  485. }
  486. lotinfo2.BinCode = StackCode;
  487. if (ddt3 != null && ddt3.Rows.Count > 0)
  488. {
  489. lotinfo2.INVGUID = ddt3.Rows[0][0].ToString();
  490. }
  491. lotinfo2.INVCode = ItemCode;
  492. lotinfo2.LotQty = Convert.ToDecimal(QTY);
  493. //lotinfo2.ReceiveDate = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  494. lotinfo2.WorkPoint = AppConfig.WorkPointCode;
  495. lotinfo2.MUSER = AppConfig.UserId;
  496. lotinfo2.MUSERName = AppConfig.UserName;
  497. lotinfo2.MTIME = dataTime;
  498. lotinfo2.ReceiveDate = dataTime;
  499. //if (Date == "")
  500. //{
  501. // lotinfo2.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  502. // lotinfo2.ReceiveDate = lotinfo2.MTIME;
  503. //}
  504. //else if (Date.Contains("2099"))
  505. //{
  506. // lotinfo2.MTIME = Convert.ToDateTime("2999-12-31" + " " + AppConfig.GetSeverDateTime("HH:mm:ss").ToString("HH:mm:ss"));
  507. // lotinfo2.ReceiveDate = lotinfo2.MTIME;
  508. //}
  509. //else
  510. //{
  511. // lotinfo2.MTIME = Convert.ToDateTime(Convert.ToDateTime(Date).ToString("yyyy-MM-dd") + " " + AppConfig.GetSeverDateTime("HH:mm:ss").ToString("HH:mm:ss"));
  512. // lotinfo2.ReceiveDate = lotinfo2.MTIME;
  513. //}
  514. lotinfo2.EATTRIBUTE1 = "期初";
  515. ICSWareHouseLotInfoList.Add(lotinfo2);
  516. #endregion
  517. #region 存入物料收发交易记录表
  518. ICSITEMTrans lotinfo3 = new ICSITEMTrans();
  519. lotinfo3.ID = AppConfig.GetGuid();
  520. //lotinfo3.TransNO = txtCode.Text.Trim().ToString();
  521. //if (!string.IsNullOrEmpty(grvDetail.GetRowCellValue(i, colRdrecordSEQ).ToString()))
  522. //{
  523. // lotinfo3.TransLine = Convert.ToInt32(grvDetail.GetRowCellValue(i, colRdrecordSEQ));
  524. //}
  525. lotinfo3.ITEMCODE = ItemCode;
  526. lotinfo3.FRMStorageCODE = "";
  527. lotinfo3.FRMStackCODE = "";
  528. lotinfo3.TOStorageCODE = StorageCode;
  529. lotinfo3.TOStackCODE = StackCode;
  530. //if (!string.IsNullOrEmpty(QTY))
  531. //{
  532. lotinfo3.TransQTY = Convert.ToDecimal(QTY);
  533. //}
  534. lotinfo3.Memo = "";
  535. lotinfo3.TransType = "收";
  536. lotinfo3.BusinessCode = "";
  537. lotinfo3.WorkPoint = AppConfig.WorkPointCode;
  538. lotinfo3.MUSER = AppConfig.UserId;
  539. lotinfo3.MUSERName = AppConfig.UserName;
  540. lotinfo3.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  541. lotinfo3.EATTRIBUTE1 = "期初";
  542. ItemTransList.Add(lotinfo3);
  543. #endregion
  544. #region 存入物料收发交易批号记录表
  545. ICSITEMTransLot lotinfo4 = new ICSITEMTransLot();
  546. lotinfo4.ID = AppConfig.GetGuid();
  547. lotinfo4.ITEMTransID = lotinfo3.ID;
  548. lotinfo4.LotNO = LotNO;
  549. lotinfo4.ITEMCODE = ItemCode;
  550. lotinfo4.TransQTY = Convert.ToDecimal(QTY);
  551. lotinfo4.Memo = "期初";
  552. lotinfo4.WorkPoint = AppConfig.WorkPointCode;
  553. lotinfo4.MUSER = AppConfig.UserId;
  554. lotinfo4.MUSERName = AppConfig.UserName;
  555. lotinfo4.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  556. ItemTransLotList.Add(lotinfo4);
  557. #endregion
  558. Thread.Sleep(1000);
  559. }
  560. }
  561. _wait.Caption = "导入数据......";
  562. //ICSWareHouseLotInfoLogBLL.Insert(InfoList, ICSWareHouseLotInfoList, ICSWareHouseInfoList, ItemTransList, ItemTransLotList, AppConfig.AppConnectString);
  563. _wait.Close();
  564. ICSBaseSimpleCode.AppshowMessageBox("数据导入成功!");
  565. btnFalsh_Click(null, null);
  566. }
  567. catch (Exception ex)
  568. {
  569. _wait.Close();
  570. ICSBaseSimpleCode.AppshowMessageBox("数据导入失败:" + ex.Message);
  571. }
  572. }
  573. #endregion
  574. #region 导入模板下载
  575. private void btnImportMould_Click(object sender, EventArgs e)
  576. {
  577. DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm();
  578. _wait.Hide();
  579. string anjianExcelFileName = Environment.CommandLine.Substring(1, Environment.CommandLine.LastIndexOf("\\")) + "Output\\";
  580. try
  581. {
  582. _wait.Show();
  583. _wait.Caption = "模板下载中......";
  584. SaveFileDialog dlgSaveFileDialog = new SaveFileDialog(); //弹框提示保存
  585. dlgSaveFileDialog.InitialDirectory = anjianExcelFileName; //默认打开目录
  586. dlgSaveFileDialog.FilterIndex = 1;
  587. dlgSaveFileDialog.RestoreDirectory = true;
  588. dlgSaveFileDialog.FileName = "期初导入模板.xlsx"; //默认保存名称
  589. dlgSaveFileDialog.Filter = "Excel文件(*.xlsx)|*.xlsx";
  590. if (dlgSaveFileDialog.ShowDialog() == DialogResult.OK)
  591. {
  592. string fileName = dlgSaveFileDialog.FileName; //获取弹出框选择或填写的文件名称
  593. List<FormReadExcelUIModelColumns> colNameList = new List<FormReadExcelUIModelColumns>();
  594. colNameList.Add(new FormReadExcelUIModelColumns("物料编码", true));
  595. colNameList.Add(new FormReadExcelUIModelColumns("库位", true));
  596. colNameList.Add(new FormReadExcelUIModelColumns("WBS", false));
  597. colNameList.Add(new FormReadExcelUIModelColumns("库位数量或最小包装数量", true));
  598. colNameList.Add(new FormReadExcelUIModelColumns("整盘数", true));
  599. colNameList.Add(new FormReadExcelUIModelColumns("入库日期", false));
  600. FileUtil.exportToExcelFile(fileName, colNameList);
  601. _wait.Close();
  602. ICSBaseSimpleCode.AppshowMessageBox("模板下载成功!");
  603. }
  604. _wait.Close();
  605. }
  606. catch (Exception ex)
  607. {
  608. _wait.Close();
  609. ICSBaseSimpleCode.AppshowMessageBox("模板下载失败:" + ex.Message);
  610. }
  611. }
  612. #endregion
  613. #region 形态转换
  614. private void btnWBSTransfer_Click(object sender, EventArgs e)
  615. {
  616. int count = 0;
  617. int sum = 0;
  618. string IDCode = "";
  619. string LotCode = "";
  620. string QtyCode = "";
  621. SimpleButton btntemp = (SimpleButton)sender;
  622. if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
  623. {
  624. ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
  625. return;
  626. }
  627. try
  628. {
  629. for (int i = 0; i < grvDetail.RowCount; i++)
  630. {
  631. if (Convert.ToBoolean(grvDetail.GetRowCellValue(i, colisSelect).ToString()))
  632. {
  633. count++;
  634. if (grvDetail.GetRowCellValue(i, collotStatus).ToString()=="已审核")
  635. {
  636. sum++;
  637. }
  638. }
  639. }
  640. if (count != 1)
  641. {
  642. ICSBaseSimpleCode.AppshowMessageBox("请选择一条数据进行保存!");
  643. return;
  644. }
  645. if (sum > 0)
  646. {
  647. ICSBaseSimpleCode.AppshowMessageBox("存在物料条码已审核!");
  648. return;
  649. }
  650. for (int i = 0; i < grvDetail.RowCount; i++)
  651. {
  652. if (Convert.ToBoolean(grvDetail.GetRowCellValue(i, colisSelect).ToString()))
  653. {
  654. if (LotCode == "")
  655. {
  656. IDCode = "" + grvDetail.GetRowCellValue(i, colID).ToString() + "";
  657. LotCode = "" + grvDetail.GetRowCellValue(i, LotNoOld).ToString() + "";
  658. QtyCode = "" + grvDetail.GetRowCellValue(i, colLotQty).ToString() + "";
  659. }
  660. else
  661. {
  662. IDCode += "," + grvDetail.GetRowCellValue(i, colID).ToString() + "";
  663. LotCode += "," + grvDetail.GetRowCellValue(i, LotNoOld).ToString() + "";
  664. QtyCode += "," + grvDetail.GetRowCellValue(i, colLotQty).ToString() + "";
  665. }
  666. }
  667. }
  668. using (SqlConnection conn = new SqlConnection(AppConfig.AppConnectString))
  669. {
  670. conn.Open();
  671. using (SqlTransaction trans = conn.BeginTransaction())
  672. {
  673. try
  674. {
  675. ICSWBSSpecailTransferBLL.UpdateWBS(conn, trans, LotCode, QtyCode, IDCode,AppConfig.AppConnectString);
  676. trans.Commit();
  677. }
  678. catch (Exception ex)
  679. {
  680. trans.Rollback();
  681. MessageBox.Show("转换异常:" + ex.Message);
  682. return;
  683. }
  684. }
  685. conn.Close();
  686. }
  687. }
  688. catch (Exception ex)
  689. {
  690. MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
  691. return;
  692. }
  693. ICSBaseSimpleCode.AppshowMessageBox("保存成功!");
  694. btnFalsh_Click(null, null);
  695. }
  696. #endregion
  697. private void BtnPrint_Click(object sender, EventArgs e)
  698. {
  699. int sum = 0;
  700. try
  701. {
  702. SimpleButton btntemp = (SimpleButton)sender;
  703. if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
  704. {
  705. ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
  706. return;
  707. }
  708. for (int i = 0; i < grvDetail.RowCount; i++)
  709. {
  710. if (Convert.ToBoolean(grvDetail.GetRowCellValue(i, colisSelect).ToString()))
  711. {
  712. if (grvDetail.GetRowCellValue(i, collotStatus).ToString() == "待审核")
  713. {
  714. sum++;
  715. }
  716. }
  717. }
  718. if (sum > 0)
  719. {
  720. ICSBaseSimpleCode.AppshowMessageBox("存在条码未审核,不能打印!");
  721. return;
  722. }
  723. List<PrintPara> parasList = new List<PrintPara>();
  724. List<ICSITEMLot> InfoList = new List<ICSITEMLot>();
  725. for (int i = 0; i < grvDetail.RowCount; i++)
  726. {
  727. if (Convert.ToBoolean(grvDetail.GetRowCellValue(i, colisSelect).ToString()))
  728. {
  729. PrintPara para = new PrintPara();
  730. para.PrintKey = "LOTNO";
  731. para.PrintValues = new object[] { grvDetail.GetRowCellValue(i, LotNoNew).ToString()};
  732. parasList.Add(para);
  733. ICSITEMLot Info = new ICSITEMLot();
  734. Info.LotNO = grvDetail.GetRowCellValue(i, LotNoNew).ToString();
  735. Info.lastPrintUSERID = AppConfig.UserId;
  736. Info.lastPrintTime = AppConfig.GetSeverDateTime("yyyy-MM-dd hh:mm:ss");
  737. Info.WorkPoint = AppConfig.WorkPointCode;
  738. InfoList.Add(Info);
  739. }
  740. }
  741. if (parasList.Count == 0)
  742. {
  743. ICSBaseSimpleCode.AppshowMessageBox("请选择数据!");
  744. return;
  745. }
  746. FormPrintDialog f = new FormPrintDialog("001", this.Text, parasList, false, null);
  747. f.ShowDialog();
  748. //更新打印信息
  749. //ICSRdrecord2LOTBLL.updatePrint(InfoList, AppConfig.AppConnectString);
  750. }
  751. catch (Exception ex)
  752. {
  753. MessageBox.Show(ex.ToString());
  754. }
  755. }
  756. }
  757. }