锐腾搅拌上料功能
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.

823 lines
36 KiB

5 months ago
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Data.Linq;
  6. using System.Linq;
  7. using System.Drawing;
  8. using System.Text;
  9. using System.Windows.Forms;
  10. using DevExpress.XtraEditors;
  11. using DevExpress.XtraGrid.Views.BandedGrid;
  12. using DevExpress.XtraGrid.Columns;
  13. using DevExpress.XtraGrid;
  14. using System.IO;
  15. using System.Threading;
  16. using ICSSoft.Base.Language.Tool;
  17. using ICSSoft.Base.Config.AppConfig;
  18. using ICSSoft.Base.UserControl.MessageControl;
  19. using ICSSoft.Base.Config.DBHelper;
  20. using ICSSoft.Base.Report.Filter;
  21. using ICSSoft.Base.Lable.PrintTool;
  22. using ICSSoft.Base.UserControl.FormControl;
  23. using ICSSoft.Base.Report.GridReport;
  24. using ICSSoft.Base.ReferForm.AppReferForm;
  25. using ICSSoft.Frame.Data.BLL;
  26. using ICSSoft.Frame.Data.Entity;
  27. namespace ICSSoft.Frame.APP
  28. {
  29. public partial class FormICSWareHouseLotInfo : DevExpress.XtraEditors.XtraForm
  30. {
  31. private string sqltxt = "";
  32. private string sqlconn = "";
  33. String guid = AppConfig.GetGuid();
  34. private DataTable dataSource = null;
  35. #region 构造函数
  36. public FormICSWareHouseLotInfo()
  37. {
  38. InitializeComponent();
  39. this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
  40. this.WindowState = FormWindowState.Maximized;
  41. }
  42. #endregion
  43. #region 操作权限
  44. public DataTable RightOfExute()
  45. {
  46. DataTable rData = new DataTable();
  47. rData.Columns.Add("BtnName");
  48. rData.Columns.Add("ActionName");
  49. //查看权限(必须有)
  50. DataRow seeRow = rData.NewRow();
  51. seeRow["BtnName"] = "see";
  52. seeRow["ActionName"] = "查看";
  53. rData.Rows.Add(seeRow);
  54. List<Control> ControlList = new List<Control>();
  55. ControlList.Add(fenpi);
  56. ControlList.Add(hepi);
  57. ControlList.Add(btnPrint);
  58. ControlList.Add(btnOutPut);
  59. ControlList.Add(btnDel);
  60. ControlList.Add(btnEdit);
  61. foreach (Control ctr in ControlList)
  62. {
  63. if (ctr.GetType() == typeof(SimpleButton))
  64. {
  65. DataRow dr = rData.NewRow();
  66. dr["BtnName"] = ctr.Name;
  67. dr["ActionName"] = ctr.Text;
  68. rData.Rows.Add(dr);
  69. }
  70. }
  71. rData.AcceptChanges();
  72. return rData;
  73. }
  74. public DataTable RightOfData()// 数据权限
  75. {
  76. DataTable rData = new DataTable();
  77. rData.Columns.Add("BodyName");
  78. rData.Columns.Add("ControlName");
  79. rData.Columns.Add("ControlCaption");
  80. rData.AcceptChanges();
  81. return rData;
  82. }
  83. #endregion
  84. #region 退出
  85. private void btnClose_Click(object sender, EventArgs e)
  86. {
  87. AppConfig.CloseFormShow(this.Text);
  88. this.Close();
  89. }
  90. private void btnExit_Click(object sender, EventArgs e)
  91. {
  92. AppConfig.CloseFormShow(this.Text);
  93. this.Close();
  94. }
  95. #endregion
  96. #region 移动窗体
  97. private const int WM_NCHITTEST = 0x84;
  98. private const int HTCLIENT = 0x1;
  99. private const int HTCAPTION = 0x2;
  100. //首先必须了解Windows的消息传递机制,当有鼠标活动消息时,
  101. //系统发送WM_NCHITTEST 消息给窗体作为判断消息发生地的根据。 nchittest
  102. //假如你点击的是标题栏,窗体收到的消息值就是 HTCAPTION ,
  103. //同样地,若接受到的消息是 HTCLIENT,说明用户点击的是客户区,也就是鼠标消息发生在客户区。
  104. //重写窗体,使窗体可以不通过自带标题栏实现移动
  105. protected override void WndProc(ref Message m)
  106. {
  107. //当重载窗体的 WndProc 方法时,可以截获 WM_NCHITTEST 消息并改些该消息,
  108. //当判断鼠标事件发生在客户区时,改写改消息,发送 HTCAPTION 给窗体,
  109. //这样,窗体收到的消息就时 HTCAPTION ,在客户区通过鼠标来拖动窗体就如同通过标题栏来拖动一样。
  110. //注意:当你重载 WndProc 并改写鼠标事件后,整个窗体的鼠标事件也就随之改变了。
  111. switch (m.Msg)
  112. {
  113. case WM_NCHITTEST:
  114. base.WndProc(ref m);
  115. if ((int)m.Result == HTCLIENT)
  116. m.Result = (IntPtr)HTCAPTION;
  117. return;
  118. }
  119. //拦截双击标题栏、移动窗体的系统消息
  120. if (m.Msg != 0xA3)
  121. {
  122. base.WndProc(ref m);
  123. }
  124. }
  125. #endregion
  126. #region 列表
  127. private void grvDetail_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
  128. {
  129. if (e.Info.IsRowIndicator && e.RowHandle >= 0)
  130. e.Info.DisplayText = (e.RowHandle + 1).ToString();
  131. }
  132. #endregion
  133. #region 过滤
  134. private string tempTableName = "";
  135. private void btnFilter_Click(object sender, EventArgs e)
  136. {
  137. FormFilter filter = new FormFilter(AppConfig.GetSourceId(this.Tag.ToString(), btnConfig.Name));
  138. filter.OldTempTableName = tempTableName;
  139. if (filter.ShowDialog() == DialogResult.OK)
  140. {
  141. DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm("正在查找...请稍等...");
  142. try
  143. {
  144. _wait.Show();
  145. tempTableName = filter.NewTempTableName;
  146. sqltxt = filter.SqlText;
  147. sqlconn = filter.FilterConnectString;
  148. dataSource = filter.FilterData.Tables[0];
  149. grdDetail.DataSource = dataSource;
  150. grvDetail.BestFitColumns();
  151. rptPage.RecordNum = dataSource.Rows.Count;
  152. rptPage.PageSize = 499;
  153. rptPage.PageIndex = 1;
  154. rptPage.ReLoad();
  155. rptPage.PageSize = 500;
  156. rptPage.PageIndex = 1;
  157. rptPage.ReLoad();
  158. _wait.Close();
  159. }
  160. catch (Exception ex)
  161. {
  162. MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
  163. _wait.Close();
  164. }
  165. }
  166. }
  167. #endregion
  168. #region 绑定数据源
  169. private void btnConfig_Click(object sender, EventArgs e)
  170. {
  171. if (AppConfig.UserCode.ToLower() != "demo")
  172. {
  173. ICSBaseSimpleCode.AppshowMessageBox("您没有权限设置数据源,请联系软件提供商!");
  174. return;
  175. }
  176. FormDataSource fdata = new FormDataSource(AppConfig.GetMenuId(this.Tag.ToString()), btnConfig.Name);
  177. fdata.ShowDialog();
  178. }
  179. #endregion
  180. #region 分页
  181. private void rptPage_PageIndexChanged(object Sender, EventArgs e)
  182. {
  183. DataTable data = AppConfig.GetPageData(dataSource, rptPage.PageIndex, rptPage.PageSize).Copy();
  184. //DataTable data = AppConfig.GetPageDataByDb(tempTableName, "pagerowindex", rptPage.PageSize, rptPage.PageIndex, dataSource.Rows.Count);
  185. grdDetail.DataSource = data;
  186. }
  187. #endregion
  188. #region 过滤方法
  189. private void FormContainerManager_FormClosing(object sender, FormClosingEventArgs e)
  190. {
  191. AppConfig.DropTemTable(tempTableName);
  192. }
  193. #endregion
  194. #region 全选
  195. private void btnSelectAll_Click(object sender, EventArgs e)
  196. {
  197. grvDetail.PostEditor();
  198. this.Validate();
  199. for (int i = 0; i < grvDetail.RowCount; i++)
  200. {
  201. grvDetail.SetRowCellValue(i, colisSelect, "Y");
  202. }
  203. }
  204. #endregion
  205. #region 全消
  206. private void btnCancelAll_Click(object sender, EventArgs e)
  207. {
  208. grvDetail.PostEditor();
  209. this.Validate();
  210. for (int i = 0; i < grvDetail.RowCount; i++)
  211. {
  212. grvDetail.SetRowCellValue(i, colisSelect, "");
  213. }
  214. }
  215. #endregion
  216. #region 双击
  217. private void grvDetail_DoubleClick(object sender, EventArgs e)
  218. {
  219. if (grvDetail.FocusedRowHandle < 0)
  220. {
  221. return;
  222. }
  223. if (grvDetail.FocusedColumn == colisSelect)
  224. {
  225. if (grvDetail.GetRowCellValue(grvDetail.FocusedRowHandle, colisSelect).ToString() == "")
  226. {
  227. grvDetail.SetRowCellValue(grvDetail.FocusedRowHandle, colisSelect, "Y");
  228. }
  229. else
  230. {
  231. grvDetail.SetRowCellValue(grvDetail.FocusedRowHandle, colisSelect, "");
  232. }
  233. }
  234. }
  235. #endregion
  236. #region 导出
  237. private void btnOutPut_Click(object sender, EventArgs e)
  238. {
  239. SimpleButton btntemp = (SimpleButton)sender;
  240. if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
  241. {
  242. ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
  243. return;
  244. }
  245. FormOutExcel foe = new FormOutExcel(this.Tag.ToString(), grdDetail);
  246. foe.ShowDialog();
  247. }
  248. #endregion
  249. #region 刷新
  250. private void btnRefresh_Click(object sender, EventArgs e)
  251. {
  252. DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm("正在查找...请稍等...");
  253. try
  254. {
  255. _wait.Show();
  256. FormFilter filter = new FormFilter(AppConfig.GetSourceId(this.Tag.ToString(), btnConfig.Name), false);
  257. filter.OldTempTableName = tempTableName;
  258. //tempTableName = filter.NewTempTableName;
  259. //DataTable data = DBHelper.ExecuteDataset(AppConfig.FrameConnectString, CommandType.Text, "select * from " + tempTableName).Tables[0];
  260. dataSource = DBHelper.ExecuteDataset(sqlconn, CommandType.Text, sqltxt).Tables[0];
  261. grdDetail.DataSource = dataSource;
  262. grvDetail.BestFitColumns();
  263. rptPage.RecordNum = dataSource.Rows.Count;
  264. rptPage.PageIndex = 1;
  265. rptPage.ReLoad();
  266. _wait.Close();
  267. }
  268. catch (Exception ex)
  269. {
  270. MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
  271. _wait.Close();
  272. }
  273. }
  274. #endregion
  275. private void ICSItemLot_FormClosing(object sender, FormClosingEventArgs e)
  276. {
  277. AppConfig.DropTemTable(tempTableName);
  278. }
  279. private void FormICSWareHouseLotInfo_Load(object sender, EventArgs e)
  280. {
  281. btnFilter_Click(sender, e);
  282. }
  283. private void grvDetail_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
  284. {
  285. if (e.RowHandle >= 0 && e.Column.FieldName == "DCTCODE")
  286. {
  287. //e.DisplayText = FormatHelper.
  288. e.CellValue = "cccc";
  289. }
  290. }
  291. private void fenpi_Click(object sender, EventArgs e)
  292. {
  293. SimpleButton btntemp = (SimpleButton)sender;
  294. if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
  295. {
  296. ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
  297. return;
  298. }
  299. int count = 0;
  300. for (int i = 0; i < grvDetail.RowCount; i++)
  301. {
  302. if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
  303. {
  304. count++;
  305. }
  306. }
  307. if (count != 1)
  308. {
  309. ICSBaseSimpleCode.AppshowMessageBox("请选择数据,且只能选择一条进行编辑!!!");
  310. return;
  311. }
  312. for (int i = 0; i < grvDetail.RowCount; i++)
  313. {
  314. if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
  315. {
  316. if (grvDetail.GetRowCellValue(i, colLotQty).ToString().Equals("1.00"))
  317. {
  318. ICSBaseSimpleCode.AppshowMessageBox("数量为1,不能分批");
  319. return;
  320. }
  321. }
  322. }
  323. try
  324. {
  325. FormICSWareHouseLotInfoUIModel lotmodel = new FormICSWareHouseLotInfoUIModel();
  326. for (int i = 0; i < grvDetail.RowCount; i++)
  327. {
  328. if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
  329. {
  330. lotmodel.ID = grvDetail.GetRowCellValue(i, colID).ToString();
  331. lotmodel.LotNO = grvDetail.GetRowCellValue(i, colLotNO).ToString();
  332. lotmodel.WHGUID = grvDetail.GetRowCellValue(i, colWHGUID).ToString();
  333. lotmodel.WHCode = grvDetail.GetRowCellValue(i, colWHCode).ToString();
  334. lotmodel.BinGUID = grvDetail.GetRowCellValue(i, colBinGUID).ToString();
  335. lotmodel.BinCode = grvDetail.GetRowCellValue(i, colBinCode).ToString();
  336. lotmodel.INVGUID = grvDetail.GetRowCellValue(i, colINVGUID).ToString();
  337. lotmodel.INVCode = grvDetail.GetRowCellValue(i, colINVCode).ToString();
  338. lotmodel.LotQty = Convert.ToDecimal(grvDetail.GetRowCellValue(i, colLotQty).ToString());
  339. lotmodel.ReceiveDate = Convert.ToDateTime(grvDetail.GetRowCellValue(i, colReceiveDate).ToString());
  340. lotmodel.MTIME = Convert.ToDateTime(grvDetail.GetRowCellValue(i, colMTIME).ToString());
  341. string itemname = grvDetail.GetRowCellValue(i, colINVNAME).ToString();
  342. string type = grvDetail.GetRowCellValue(i, colTYPE).ToString();
  343. string invStd = grvDetail.GetRowCellValue(i, colINVSTD).ToString();
  344. string lotnoNew = "";
  345. string TransNO = grvDetail.GetRowCellValue(i, colTransNO).ToString();
  346. string TransLine = grvDetail.GetRowCellValue(i, colTransLine).ToString();
  347. string EATTRIBUTE1 = grvDetail.GetRowCellValue(i, colEATTRIBUTE1).ToString();
  348. #region
  349. //if (EATTRIBUTE1 != "期初")
  350. //{
  351. // if (TransNO == "" || grvDetail.GetRowCellValue(i, colTransLine).ToString() == "")
  352. // {
  353. // ICSBaseSimpleCode.AppshowMessageBox("交易单号,交易单行号不能为空");
  354. // return;
  355. // }
  356. // #region
  357. // //int n = 0;
  358. // //if (!int.TryParse(grvDetail.GetRowCellValue(i, colTransLine).ToString(), out TransLine))
  359. // //{
  360. // // ICSBaseSimpleCode.AppshowMessageBox("交易单行号格式不正确");
  361. // // return;
  362. // //}
  363. // #endregion
  364. //}
  365. #endregion
  366. if (EATTRIBUTE1.Equals("期初"))
  367. {
  368. string strtime = "8" + DateTime.Now.ToString("yyyy");
  369. string sql = @"SELECT CONVERT(INT,RIGHT(MAX(A.LotNO),5)) AS MAXLOT FROM ICSITEMLot A WHERE A.LotNO LIKE '{0}%'";
  370. sql = string.Format(sql, strtime);
  371. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  372. if (dt == null || dt.Rows.Count <= 0)
  373. {
  374. lotnoNew = strtime + "00001";
  375. }
  376. else if (dt.Rows[0][0].ToString() == null || dt.Rows[0][0].ToString() == "")
  377. {
  378. lotnoNew = strtime + "00001";
  379. }
  380. else
  381. {
  382. lotnoNew = strtime + (Convert.ToInt32(dt.Rows[0][0]) + 1).ToString().PadLeft(5, '0');
  383. }
  384. //lotnoNew = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss").ToString("yyyyMMddHHmmss") + "0001"; //逻辑更改
  385. }
  386. else if (type.Equals("半成品") || type.Equals("成品"))
  387. {
  388. #region 逻辑变更
  389. //FormICSRdrecord2LOTUIModel RecInfo = ICSRdrecord2LOTBLL.SearchInfo(TransNO, TransLine, AppConfig.AppConnectString);
  390. //int num = RecInfo.MaxNo;
  391. //lotnoNew = RecInfo.rdrecord.MOCODE + RecInfo.rdrecord.MOSEQ + (num + 1).ToString().PadLeft(5, '0');
  392. #endregion
  393. string sql = @"SELECT CONVERT(INT,RIGHT(MAX(a.LotNO),4)) AS maxLot FROM dbo.ICSITEMLot a
  394. WHERE a.TransNO = '{0}' AND a.TransLine= '{1}' GROUP BY a.TransNO, a.TransLine";
  395. sql = string.Format(sql, TransNO, TransLine);
  396. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  397. if (dt == null || dt.Rows.Count <= 0)
  398. {
  399. lotnoNew = TransNO.Substring(1, 6) + "0001";
  400. }
  401. else if (dt.Rows[0][0].ToString() == null || dt.Rows[0][0].ToString() == "")
  402. {
  403. lotnoNew = TransNO.Substring(1, 6) + "0001";
  404. }
  405. else
  406. {
  407. lotnoNew=TransNO + TransLine + (Convert.ToInt32(dt.Rows[0][0]) + 1).ToString().PadLeft(5, '0');
  408. }
  409. }
  410. #region
  411. //else if ()
  412. // lotnoNew = invStd + RecInfo.rdrecord.MOCODE + RecInfo.rdrecord.MOSEQ + (num + 1).ToString().PadLeft(5, '0');
  413. #endregion
  414. else //if (type.Equals("原料"))
  415. {
  416. #region 逻辑更改
  417. // string sql = @"SELECT CONVERT(INT,RIGHT(MAX(a.LotNO),4)) AS maxLot FROM dbo.ICSITEMLot a
  418. // WHERE a.TransNO = '{0}' AND a.TransLine= '{1}' AND a.WorkPoint='{2}' GROUP BY a.TransNO,a.TransLine";
  419. // sql = string.Format(sql, TransNO, TransLine, AppConfig.WorkPointCode);
  420. // DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  421. // if (dt == null || dt.Rows.Count <= 0)
  422. // return;
  423. // lotnoNew = TransNO + TransLine + (Convert.ToInt32(dt.Rows[0][0]) + 1).ToString().PadLeft(4, '0');
  424. #endregion
  425. #region
  426. //string strtime = DateTime.Now.ToString("yyMMdd");
  427. //string sql = @"SELECT CONVERT(INT,RIGHT(MAX(A.LotNO),4)) AS MAXLOT FROM ICSITEMLot A WHERE A.LotNO LIKE '{0}%'";
  428. //sql = string.Format(sql, strtime);
  429. //DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  430. //if (dt == null || dt.Rows.Count <= 0)
  431. //{
  432. // lotnoNew = strtime + "0001";
  433. //}
  434. //else if (dt.Rows[0][0].ToString() == null || dt.Rows[0][0].ToString() == "")
  435. //{
  436. // lotnoNew = strtime + "0001";
  437. //}
  438. //else
  439. //{
  440. // lotnoNew = strtime + (Convert.ToInt32(dt.Rows[0][0]) + 1).ToString().PadLeft(4, '0');
  441. //}
  442. #endregion
  443. #region
  444. //string strtime = DateTime.Now.ToString("yyMMdd");
  445. //lotnoNew = this.GetSerialCode(AppConfig.WorkPointCode, "ICSITEMLot", "LotNO", strtime, 4);
  446. #endregion
  447. string str = grvDetail.GetRowCellValue(i, colLotNO).ToString();
  448. string strtime = str.Substring(0, str.Length - 5);
  449. string sql = @"SELECT CONVERT(INT,RIGHT(MAX(A.LotNO),5)) AS MAXLOT FROM ICSITEMLot A WHERE A.LotNO LIKE '{0}%'";
  450. sql = string.Format(sql, strtime);
  451. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  452. if (dt == null || dt.Rows.Count <= 0)
  453. {
  454. lotnoNew = strtime + "00001";
  455. }
  456. else if (dt.Rows[0][0].ToString() == null || dt.Rows[0][0].ToString() == "")
  457. {
  458. lotnoNew = strtime + "00001";
  459. }
  460. else
  461. {
  462. lotnoNew = strtime + (Convert.ToInt32(dt.Rows[0][0]) + 1).ToString().PadLeft(5, '0');
  463. }
  464. }
  465. FormICSWareHouseLotAdd add = new FormICSWareHouseLotAdd(lotmodel,lotnoNew, itemname);
  466. add.ShowDialog();
  467. }
  468. }
  469. btnRefresh_Click(null, null);
  470. }
  471. catch (Exception ex)
  472. {
  473. //throw ex;
  474. ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
  475. }
  476. }
  477. private void hepi_Click(object sender, EventArgs e)
  478. {
  479. SimpleButton btntemp = (SimpleButton)sender;
  480. if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
  481. {
  482. ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
  483. return;
  484. }
  485. int count = 0;
  486. for (int i = 0; i < grvDetail.RowCount; i++)
  487. {
  488. if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
  489. {
  490. count++;
  491. }
  492. }
  493. if (count < 2 ? true : false)
  494. {
  495. ICSBaseSimpleCode.AppshowMessageBox("请选择2条及以上数据进行进行编辑!!!");
  496. return;
  497. }
  498. //List<string> lotidList = new List<string>();
  499. //List<string> whguidlist = new List<string>();
  500. //List<string> binguidlist= new List<string>();
  501. //List<string> invguidlist = new List<string>();
  502. //List<string> venguidlist = new List<string>();
  503. //string lotid = "";
  504. string whguid = "";
  505. string binguid = "";
  506. string invguid = "";
  507. string venguid = "";
  508. string ratioid = "";
  509. ////for (int i = 0; i < grvDetail.RowCount; i++)
  510. //{
  511. // if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
  512. // {
  513. // lotidList.Add(grvDetail.GetRowCellValue(i, colID).ToString());
  514. // whguidlist.Add(grvDetail.GetRowCellValue(i, colWHGUID).ToString());
  515. // binguidlist.Add(grvDetail.GetRowCellValue(i, colBinGUID).ToString());
  516. // invguidlist.Add(grvDetail.GetRowCellValue(i, colINVGUID).ToString());
  517. // venguidlist.Add(grvDetail.GetRowCellValue(i, colVenderLotNO).ToString());
  518. // }
  519. //}
  520. List<FormICSWareHouseLotInfoUIModel> lotmodellist = new List<FormICSWareHouseLotInfoUIModel>();
  521. for (int i = 0; i < grvDetail.RowCount; i++)
  522. {
  523. if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
  524. {
  525. if (!string.IsNullOrEmpty(binguid) && binguid != grvDetail.GetRowCellValue(i, colBinGUID).ToString())
  526. {
  527. ICSBaseSimpleCode.AppshowMessageBox("库位不一致");
  528. return;
  529. }
  530. else if (!string.IsNullOrEmpty(whguid) && whguid != grvDetail.GetRowCellValue(i, colWHGUID).ToString())
  531. {
  532. ICSBaseSimpleCode.AppshowMessageBox("库房不一致");
  533. return;
  534. }
  535. else if (!string.IsNullOrEmpty(invguid) && invguid != grvDetail.GetRowCellValue(i, colINVGUID).ToString())
  536. {
  537. ICSBaseSimpleCode.AppshowMessageBox("物料不一致");
  538. return;
  539. }
  540. else if (!string.IsNullOrEmpty(ratioid) && ratioid != grvDetail.GetRowCellValue(i, colAuxiliaryRatio).ToString())
  541. {
  542. ICSBaseSimpleCode.AppshowMessageBox("辅计量单位比率不一致");
  543. return;
  544. }
  545. else if (!string.IsNullOrEmpty(venguid) && venguid != grvDetail.GetRowCellValue(i, colVenderLotNO).ToString())
  546. {
  547. ICSBaseSimpleCode.AppshowMessageBox("物料批号不一致");
  548. return;
  549. }
  550. whguid = grvDetail.GetRowCellValue(i, colWHGUID).ToString();
  551. binguid = grvDetail.GetRowCellValue(i, colBinGUID).ToString();
  552. invguid = grvDetail.GetRowCellValue(i, colINVGUID).ToString();
  553. venguid = grvDetail.GetRowCellValue(i, colVenderLotNO).ToString();
  554. ratioid = grvDetail.GetRowCellValue(i, colAuxiliaryRatio).ToString();
  555. FormICSWareHouseLotInfoUIModel lotmodel = new FormICSWareHouseLotInfoUIModel();
  556. lotmodel.ID = grvDetail.GetRowCellValue(i, colID).ToString();
  557. lotmodel.LotNO = grvDetail.GetRowCellValue(i, colLotNO).ToString();
  558. lotmodel.WHGUID = grvDetail.GetRowCellValue(i, colWHGUID).ToString();
  559. lotmodel.WHCode = grvDetail.GetRowCellValue(i, colWHCode).ToString();
  560. lotmodel.BinGUID = grvDetail.GetRowCellValue(i, colBinGUID).ToString();
  561. lotmodel.BinCode = grvDetail.GetRowCellValue(i, colBinCode).ToString();
  562. lotmodel.INVGUID = grvDetail.GetRowCellValue(i, colINVGUID).ToString();
  563. lotmodel.INVCode = grvDetail.GetRowCellValue(i, colINVCode).ToString();
  564. lotmodel.VenderLotNO = grvDetail.GetRowCellValue(i, colVenderLotNO).ToString();
  565. lotmodel.LotQty = Convert.ToDecimal(grvDetail.GetRowCellValue(i, colLotQty).ToString());
  566. lotmodel.ReceiveDate = Convert.ToDateTime(grvDetail.GetRowCellValue(i, colReceiveDate).ToString());
  567. if (!lotmodellist.Contains(lotmodel))
  568. lotmodellist.Add(lotmodel);
  569. }
  570. }
  571. if (lotmodellist.Count == 0 || lotmodellist == null)
  572. {
  573. ICSBaseSimpleCode.AppshowMessageBox("请选择数据");
  574. return;
  575. }
  576. #region
  577. if (ICSBaseSimpleCode.AppshowMessageBoxRepose("确定合批吗?合批后无法恢复,确定吗?") != DialogResult.OK)
  578. {
  579. btnCancelAll_Click(sender, e);
  580. return;
  581. }
  582. #endregion
  583. try
  584. {
  585. //#region 判断是否符合合批条件
  586. //string whlist = whguidlist[0];
  587. //for (int i = 1; i < whguidlist.Count(); i++)
  588. //{
  589. // if (!whlist.Equals(whguidlist[i]))
  590. // {
  591. // ICSBaseSimpleCode.AppshowMessageBox("库房不一致");
  592. // return;
  593. // }
  594. //}
  595. //string binlist = binguidlist[0];
  596. //for (int i = 1; i < binguidlist.Count(); i++)
  597. //{
  598. // if (!binlist.Equals(binguidlist[i]))
  599. // {
  600. // ICSBaseSimpleCode.AppshowMessageBox("库位不一致");
  601. // return;
  602. // }
  603. //}
  604. //string invlist = invguidlist[0];
  605. //for (int i = 1; i < invguidlist.Count(); i++)
  606. //{
  607. // if (!invlist.Equals(invguidlist[i]))
  608. // {
  609. // ICSBaseSimpleCode.AppshowMessageBox("物料不一致");
  610. // return;
  611. // }
  612. //}
  613. //string venlist = venguidlist[0];
  614. //for (int i = 1; i < venguidlist.Count(); i++)
  615. //{
  616. // if (!invlist.Equals(venguidlist[i]))
  617. // {
  618. // ICSBaseSimpleCode.AppshowMessageBox("零件号不一致");
  619. // return;
  620. // }
  621. //}
  622. //#endregion
  623. FormICSWareHouseLotMinus add = new FormICSWareHouseLotMinus(lotmodellist);
  624. add.ShowDialog();
  625. }
  626. catch (Exception ex)
  627. {
  628. ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
  629. }
  630. btnRefresh_Click(null, null);
  631. }
  632. public string GetSerialCode(string workPointCode, string tbName, string colName, string Pre, int numLen)
  633. {
  634. string sql = "EXEC Addins_GetSerialCode '{0}','{1}','{2}','{3}',{4}";
  635. sql = string.Format(sql, new object[] { workPointCode, tbName, colName, Pre, numLen });
  636. return DBHelper.ExecuteScalar(AppConfig.AppConnectString, CommandType.Text, sql).ToString();
  637. }
  638. #region 打印
  639. private void btnPrint_Click(object sender, EventArgs e)
  640. {
  641. SimpleButton btntemp = (SimpleButton)sender;
  642. if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
  643. {
  644. ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
  645. return;
  646. }
  647. if (grvDetail.FocusedRowHandle < 0)
  648. {
  649. return;
  650. }
  651. try
  652. {
  653. List<PrintPara> barCodeList = new List<PrintPara>();
  654. for (int i = 0; i < grvDetail.RowCount; i++)
  655. {
  656. if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
  657. {
  658. string barCode = grvDetail.GetRowCellValue(i, colLotNO).ToString();
  659. PrintPara printInfo = new PrintPara();
  660. printInfo.PrintKey = "LotNO";
  661. printInfo.PrintValues = new object[] { barCode };
  662. barCodeList.Add(printInfo);
  663. }
  664. }
  665. if (barCodeList.Count == 0)
  666. {
  667. ICSBaseSimpleCode.AppshowMessageBox("没有选择数据");
  668. return;
  669. }
  670. FormPrintDialog printDialog = new FormPrintDialog("018", "ICSProduct", barCodeList, false, null);
  671. printDialog.ShowDialog();
  672. }
  673. catch (Exception ex)
  674. {
  675. ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
  676. }
  677. }
  678. #endregion
  679. #region 删除
  680. private void btnDel_Click(object sender, EventArgs e)
  681. {
  682. SimpleButton btntemp = (SimpleButton)sender;
  683. if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
  684. {
  685. ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
  686. return;
  687. }
  688. List<string> LOTList = new List<string>();
  689. List<string> LOToList = new List<string>();
  690. for (int i = 0; i < grvDetail.RowCount; i++)
  691. {
  692. if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
  693. {
  694. LOTList.Add(grvDetail.GetRowCellValue(i, colID).ToString());
  695. LOToList.Add(grvDetail.GetRowCellValue(i, colLotNO).ToString());
  696. }
  697. }
  698. if (LOTList.Count == 0 || LOTList == null)
  699. {
  700. ICSBaseSimpleCode.AppshowMessageBox("请选择数据");
  701. return;
  702. }
  703. if (ICSBaseSimpleCode.AppshowMessageBoxRepose("确定删除该批次吗?批次删除后无法恢复,确定吗?") != DialogResult.OK)
  704. {
  705. btnCancelAll_Click(sender, e);
  706. return;
  707. }
  708. try
  709. {
  710. ICSPalletBLL.UpItemLotInfo(LOToList, AppConfig.AppConnectString);
  711. ICSPalletBLL.Lotdelete(LOTList);
  712. ICSBaseSimpleCode.AppshowMessageBox("删除成功");
  713. }
  714. catch (Exception ex)
  715. {
  716. ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
  717. }
  718. btnRefresh_Click(null, null);
  719. }
  720. #endregion
  721. private void btnEdit_Click(object sender, EventArgs e)
  722. {
  723. String id = "";
  724. String TransNo = "";
  725. String line = "";
  726. SimpleButton btntemp = (SimpleButton)sender;
  727. if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
  728. {
  729. ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
  730. return;
  731. }
  732. List<string> LOTList = new List<string>();
  733. for (int i = 0; i < grvDetail.RowCount; i++)
  734. {
  735. if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
  736. {
  737. id = grvDetail.GetRowCellValue(i, colID).ToString();
  738. TransNo = grvDetail.GetRowCellValue(i,colTransNO).ToString();
  739. line = grvDetail.GetRowCellValue(i, colTransLine).ToString();
  740. LOTList.Add(id);
  741. }
  742. }
  743. if (LOTList.Count != 1 || id == "")
  744. {
  745. ICSBaseSimpleCode.AppshowMessageBox("请选择数据,且只能选择一条进行编辑!!!");
  746. return;
  747. }
  748. try
  749. {
  750. FormICSWareHouseLotInfoEdit add = new FormICSWareHouseLotInfoEdit(id, TransNo, line);
  751. add.ShowDialog();
  752. btnRefresh_Click(null, null);
  753. }
  754. catch (Exception ex)
  755. {
  756. ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
  757. }
  758. }
  759. }
  760. }