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

1289 lines
50 KiB

5 months ago
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using ICSSoft.Frame.Data.Entity;
  6. using ICSSoft.Base.Config.AppConfig;
  7. using System.Data;
  8. using System.Data.Sql;
  9. using System.Data.Linq;
  10. using ICSSoft.Base.Config.DBHelper;
  11. using System.Data.SqlClient;
  12. namespace ICSSoft.Frame.Data.DAL
  13. {
  14. public class ICSWareHouseLotInfoLogDAL
  15. {
  16. #region 入库
  17. public static void towh(List<FormICSWareHouseLotInfoUIModel> shiftInfoList, string dsconn)
  18. {
  19. FramDataContext db = new FramDataContext(dsconn);
  20. db.Connection.Open();
  21. db.Transaction = db.Connection.BeginTransaction();
  22. try
  23. {
  24. foreach (FormICSWareHouseLotInfoUIModel shiftInfo in shiftInfoList)
  25. {
  26. bool isNew = false;
  27. var line = db.ICSWareHouseLotInfo.SingleOrDefault(a => a.ID == shiftInfo.ID);
  28. if (line == null)
  29. {
  30. isNew = true;
  31. line = new ICSWareHouseLotInfo();
  32. line.ID = AppConfig.GetGuid();
  33. }
  34. //var codes = db.ICSWareHouseLotInfo.Where(a => a.SHIFTSEQ == shiftInfo.SHIFTSEQ && a.SHIFTTYPEID == shiftInfo.SHIFTTYPEID && a.ID != line.ID);
  35. //if (codes.ToList().Count > 0)
  36. //{
  37. // throw new Exception("班次次序在该班制中已存在");
  38. //}
  39. line.ID = shiftInfo.ID;
  40. line.LotNO = shiftInfo.LotNO;
  41. line.WHGUID = shiftInfo.WHGUID;
  42. line.WHCode = shiftInfo.WHCode;
  43. line.BinGUID = shiftInfo.BinGUID;
  44. line.BinCode = shiftInfo.BinCode;
  45. line.INVGUID = shiftInfo.INVGUID;
  46. line.INVCode = shiftInfo.INVCode;
  47. line.LotQty = shiftInfo.LotQty;
  48. line.ReceiveDate = Convert.ToDateTime(shiftInfo.ReceiveDate);
  49. line.MUSER = shiftInfo.MUSER;
  50. line.MUSERName = shiftInfo.MUSERName;
  51. line.MTIME = Convert.ToDateTime(shiftInfo.MTIME);
  52. line.WorkPoint = shiftInfo.WorkPoint;
  53. line.EATTRIBUTE1 = shiftInfo.EATTRIBUTE1;
  54. if (isNew)
  55. db.ICSWareHouseLotInfo.InsertOnSubmit(line);
  56. db.SubmitChanges();
  57. }
  58. db.SubmitChanges();
  59. db.Transaction.Commit();
  60. }
  61. catch (Exception ex)
  62. {
  63. db.Transaction.Rollback();
  64. throw new Exception(ex.Message);
  65. }
  66. }
  67. #endregion
  68. #region 库存信息表
  69. public static void WareHouseInfo(ICSWareHouseInfo ItemLot, string Appconstr)
  70. {
  71. FramDataContext db = new FramDataContext(Appconstr);
  72. db.Connection.Open();
  73. db.Transaction = db.Connection.BeginTransaction();
  74. try
  75. {
  76. bool isNew = false;
  77. var line = db.ICSWareHouseInfo.SingleOrDefault(a => a.WHGUID == ItemLot.WHGUID && a.BinGUID == ItemLot.BinGUID && a.INVGUID == ItemLot.INVGUID);
  78. if (line == null)
  79. {
  80. isNew = true;
  81. line = new ICSWareHouseInfo();
  82. line.WHGUID = ItemLot.WHGUID;
  83. line.WHCode = ItemLot.WHCode;
  84. line.BinGUID = ItemLot.BinGUID;
  85. line.BinCode = ItemLot.BinCode;
  86. line.INVGUID = ItemLot.INVGUID;
  87. line.INVCode = ItemLot.INVCode;
  88. }
  89. line.QTY = ItemLot.QTY;
  90. line.WorkPoint = AppConfig.WorkPointCode; ;
  91. line.MUSER = ItemLot.MUSER;
  92. line.MUSERName = ItemLot.MUSERName;
  93. line.MTIME = ItemLot.MTIME;
  94. line.EATTRIBUTE1 = ItemLot.EATTRIBUTE1;
  95. if (isNew) db.ICSWareHouseInfo.InsertOnSubmit(line);
  96. db.SubmitChanges();
  97. db.Transaction.Commit();
  98. }
  99. catch (Exception ex)
  100. {
  101. db.Transaction.Rollback();
  102. throw new Exception(ex.Message);
  103. }
  104. }
  105. #endregion
  106. #region 物料收发交易记录表
  107. public static void trans(ICSITEMTrans ItemLot, string Appconstr)
  108. {
  109. FramDataContext db = new FramDataContext(Appconstr);
  110. db.Connection.Open();
  111. db.Transaction = db.Connection.BeginTransaction();
  112. try
  113. {
  114. ICSITEMTrans line = new ICSITEMTrans();
  115. line.ID = ItemLot.ID;
  116. line.TransNO = ItemLot.TransNO;
  117. line.TransLine = ItemLot.TransLine;
  118. line.ITEMCODE = ItemLot.ITEMCODE;
  119. line.FRMStorageCODE = ItemLot.FRMStorageCODE;
  120. line.FRMStackCODE = ItemLot.FRMStackCODE;
  121. line.TOStorageCODE = ItemLot.TOStorageCODE;
  122. line.TOStackCODE = ItemLot.TOStackCODE;
  123. line.TransQTY = ItemLot.TransQTY;
  124. line.Memo = ItemLot.Memo;
  125. line.TransType = ItemLot.TransType;
  126. line.BusinessCode = ItemLot.BusinessCode;
  127. line.WorkPoint = AppConfig.WorkPointCode; ;
  128. line.MUSER = ItemLot.MUSER;
  129. line.MUSERName = ItemLot.MUSERName;
  130. line.MTIME = ItemLot.MTIME;
  131. line.EATTRIBUTE1 = ItemLot.EATTRIBUTE1;
  132. db.ICSITEMTrans.InsertOnSubmit(line);
  133. db.SubmitChanges();
  134. db.Transaction.Commit();
  135. }
  136. catch (Exception ex)
  137. {
  138. db.Transaction.Rollback();
  139. throw new Exception(ex.Message);
  140. }
  141. }
  142. #endregion
  143. #region 物料收发交易批号记录表
  144. public static void transLOT(ICSITEMTransLot ItemLot, string Appconstr)
  145. {
  146. FramDataContext db = new FramDataContext(Appconstr);
  147. db.Connection.Open();
  148. db.Transaction = db.Connection.BeginTransaction();
  149. try
  150. {
  151. ICSITEMTransLot line = new ICSITEMTransLot();
  152. line.ID = ItemLot.ID;
  153. line.ITEMTransID = ItemLot.ITEMTransID;
  154. line.LotNO = ItemLot.LotNO;
  155. line.ITEMCODE = ItemLot.ITEMCODE;
  156. line.TransQTY = ItemLot.TransQTY;
  157. line.Memo = ItemLot.Memo;
  158. line.WorkPoint = AppConfig.WorkPointCode; ;
  159. line.MUSER = ItemLot.MUSER;
  160. line.MUSERName = ItemLot.MUSERName;
  161. line.MTIME = ItemLot.MTIME;
  162. db.ICSITEMTransLot.InsertOnSubmit(line);
  163. db.SubmitChanges();
  164. db.Transaction.Commit();
  165. }
  166. catch (Exception ex)
  167. {
  168. db.Transaction.Rollback();
  169. throw new Exception(ex.Message);
  170. }
  171. }
  172. #endregion
  173. #region 物料收发交易详细记录表
  174. public static void transLOTDetail(ICSITEMTransLotDetail ItemLot, string Appconstr)
  175. {
  176. FramDataContext db = new FramDataContext(Appconstr);
  177. db.Connection.Open();
  178. db.Transaction = db.Connection.BeginTransaction();
  179. try
  180. {
  181. ICSITEMTransLotDetail line = new ICSITEMTransLotDetail();
  182. line.ID = ItemLot.ID;
  183. line.ITEMTransLotID = ItemLot.ITEMTransLotID;
  184. line.LotNO = ItemLot.LotNO;
  185. line.ITEMCODE = ItemLot.ITEMCODE;
  186. line.SERIALNO = ItemLot.SERIALNO;
  187. line.WorkPoint = AppConfig.WorkPointCode; ;
  188. line.MUSER = ItemLot.MUSER;
  189. line.MUSERName = ItemLot.MUSERName;
  190. line.MTIME = ItemLot.MTIME;
  191. line.EATTRIBUTE1 = ItemLot.EATTRIBUTE1;
  192. db.ICSITEMTransLotDetail.InsertOnSubmit(line);
  193. db.SubmitChanges();
  194. db.Transaction.Commit();
  195. }
  196. catch (Exception ex)
  197. {
  198. db.Transaction.Rollback();
  199. throw new Exception(ex.Message);
  200. }
  201. }
  202. #endregion
  203. #region 送检单子表
  204. public static void iqcdetail(ICSASNIQCDETAIL ItemLot, string Appconstr)
  205. {
  206. FramDataContext db = new FramDataContext(Appconstr);
  207. db.Connection.Open();
  208. db.Transaction = db.Connection.BeginTransaction();
  209. try
  210. {
  211. ICSASNIQCDETAIL line = new ICSASNIQCDETAIL();
  212. line.STDSTATUS = ItemLot.STDSTATUS;
  213. line.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd hh:mm:ss");
  214. line.WORKPOINT = AppConfig.WorkPointCode;
  215. db.SubmitChanges();
  216. db.Transaction.Commit();
  217. }
  218. catch (Exception ex)
  219. {
  220. db.Transaction.Rollback();
  221. throw new Exception(ex.Message);
  222. }
  223. }
  224. #endregion
  225. #region 物料,产品详细信息
  226. public static void itemlotdetail(ICSITEMLotDetail ItemLot, string Appconstr)
  227. {
  228. FramDataContext db = new FramDataContext(Appconstr);
  229. db.Connection.Open();
  230. db.Transaction = db.Connection.BeginTransaction();
  231. try
  232. {
  233. ICSITEMLotDetail line = new ICSITEMLotDetail();
  234. line.SerialStatus = ItemLot.SerialStatus;
  235. line.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd hh:mm:ss");
  236. line.WorkPoint = AppConfig.WorkPointCode;
  237. db.SubmitChanges();
  238. db.Transaction.Commit();
  239. }
  240. catch (Exception ex)
  241. {
  242. db.Transaction.Rollback();
  243. throw new Exception(ex.Message);
  244. }
  245. }
  246. #endregion
  247. #region 到货单详细表
  248. public static void receiptdetail(ICSINVReceiptDetail ItemLot, string Appconstr)
  249. {
  250. FramDataContext db = new FramDataContext(Appconstr);
  251. db.Connection.Open();
  252. db.Transaction = db.Connection.BeginTransaction();
  253. try
  254. {
  255. ICSINVReceiptDetail line = new ICSINVReceiptDetail();
  256. line.RECSTATUS = ItemLot.RECSTATUS;
  257. line.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd hh:mm:ss");
  258. line.WorkPoint = AppConfig.WorkPointCode;
  259. db.SubmitChanges();
  260. db.Transaction.Commit();
  261. }
  262. catch (Exception ex)
  263. {
  264. db.Transaction.Rollback();
  265. throw new Exception(ex.Message);
  266. }
  267. }
  268. #endregion
  269. #region 送检单主表
  270. public static void asniqc(ICSASNIQC ItemLot, string Appconstr)
  271. {
  272. FramDataContext db = new FramDataContext(Appconstr);
  273. db.Connection.Open();
  274. db.Transaction = db.Connection.BeginTransaction();
  275. try
  276. {
  277. ICSASNIQC line = new ICSASNIQC();
  278. line.STATUS = ItemLot.STATUS;
  279. line.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd hh:mm:ss");
  280. line.WorkPoint = AppConfig.WorkPointCode;
  281. db.SubmitChanges();
  282. db.Transaction.Commit();
  283. }
  284. catch (Exception ex)
  285. {
  286. db.Transaction.Rollback();
  287. throw new Exception(ex.Message);
  288. }
  289. }
  290. #endregion
  291. #region 到货单主表
  292. public static void invreceipt(ICSINVReceipt ItemLot, string Appconstr)
  293. {
  294. FramDataContext db = new FramDataContext(Appconstr);
  295. db.Connection.Open();
  296. db.Transaction = db.Connection.BeginTransaction();
  297. try
  298. {
  299. ICSINVReceipt line = new ICSINVReceipt();
  300. line.RECSTATUS = ItemLot.RECSTATUS;
  301. line.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd hh:mm:ss");
  302. line.WorkPoint = AppConfig.WorkPointCode;
  303. db.SubmitChanges();
  304. db.Transaction.Commit();
  305. }
  306. catch (Exception ex)
  307. {
  308. db.Transaction.Rollback();
  309. throw new Exception(ex.Message);
  310. }
  311. }
  312. #endregion
  313. #region 查询库位信息
  314. public static List<FormICSStackUIModel> SearchStackInfoList(string storageid, string dsconn)
  315. {
  316. try
  317. {
  318. List<FormICSStackUIModel> returnstack = new List<FormICSStackUIModel>();
  319. string sql = @"select [Serial],[StackCode],[StackName]
  320. from [ICSStack]
  321. where Storage_Serial='" + storageid + "'";
  322. sql = string.Format(sql);
  323. DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
  324. foreach (DataRow dr in dt.Rows)
  325. {
  326. FormICSStackUIModel itemmodel = new FormICSStackUIModel();
  327. itemmodel.Serial = dr["Serial"].ToString();
  328. itemmodel.StackCode = dr["StackCode"].ToString();
  329. itemmodel.StackName = dr["StackName"].ToString();
  330. if (!returnstack.Contains(itemmodel))
  331. returnstack.Add(itemmodel);
  332. }
  333. return returnstack;
  334. }
  335. catch (Exception ex)
  336. {
  337. throw ex;
  338. }
  339. }
  340. #endregion
  341. #region 根据入库单号、入库单行号查询物料批号
  342. public static DataTable SelectLotNO(string no, int line)
  343. {
  344. string sql = @"select LotNO
  345. from dbo.ICSITEMLot
  346. where TransNO='" + no + "'and TransLine="+line+" and WorkPoint='" + AppConfig.WorkPointCode + "'";
  347. sql = string.Format(sql);
  348. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  349. return dt;
  350. }
  351. #endregion
  352. #region 根据批号查找产品序列号
  353. public static DataTable SelectSeriaNO(string lotNO)
  354. {
  355. string sql = @"select SERIALNO
  356. from dbo.ICSITEMLotDetail
  357. where LotNO='" + lotNO + "' and WorkPoint='" + AppConfig.WorkPointCode + "'";
  358. sql = string.Format(sql);
  359. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  360. return dt;
  361. }
  362. #endregion
  363. #region 根据批号查找原始批次数量
  364. public static DataTable SelectLOTQTY(string lotNO)
  365. {
  366. string sql = @"select LOTQTY
  367. from dbo.ICSITEMLot
  368. where LotNO='" + lotNO + "' and WorkPoint='" + AppConfig.WorkPointCode + "'";
  369. sql = string.Format(sql);
  370. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  371. return dt;
  372. }
  373. #endregion
  374. #region 根据库房代码查询库房id
  375. public static DataTable SelectStorageID(string storagecode)
  376. {
  377. string sql = @"select Serial
  378. from dbo.ICSStorage
  379. where StorageCode='" + storagecode + "'";
  380. sql = string.Format(sql);
  381. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  382. return dt;
  383. }
  384. #endregion
  385. #region 根据库位代码查询库位id
  386. public static DataTable SelectStackID(string stackcode)
  387. {
  388. string sql = @"select Serial
  389. from dbo.ICSStack
  390. where StackCode='" + stackcode + "'";
  391. sql = string.Format(sql);
  392. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  393. return dt;
  394. }
  395. #endregion
  396. #region 根据物料代码查询物料id
  397. public static DataTable SelectItemID(string itemcode)
  398. {
  399. string sql = @"select ID
  400. from dbo.ICSINVENTORY
  401. where INVCODE='" + itemcode + "'";
  402. sql = string.Format(sql);
  403. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  404. return dt;
  405. }
  406. #endregion
  407. #region 根据单号、单行号查询物料收发交易记录表id
  408. public static DataTable SelectTransID(string transno,int transline)
  409. {
  410. string sql = @"select ID
  411. from dbo.ICSITEMTrans
  412. where TransNO='" + transno + "'and TransLine= '" + transline + "'";
  413. sql = string.Format(sql);
  414. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  415. return dt;
  416. }
  417. #endregion
  418. #region 根据批号查找交易批号记录表id
  419. public static DataTable SelectTransLotID(string lotNO)
  420. {
  421. string sql = @"select ID
  422. from dbo.ICSITEMTransLot
  423. where LotNO='" + lotNO + "'";
  424. sql = string.Format(sql);
  425. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  426. return dt;
  427. }
  428. #endregion
  429. #region 根据库房库位id、库位id、物料id查询库存信息表中的库存数量
  430. public static DataTable SelectQTY(string storageid,string stackid,string itemid)
  431. {
  432. string sql = @"select QTY
  433. from dbo.ICSWareHouseInfo
  434. where WHGUID='" + storageid + "' and BinGUID='" + stackid + "' and INVGUID='" + itemid + "'";
  435. sql = string.Format(sql);
  436. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  437. return dt;
  438. }
  439. #endregion
  440. #region 更新送检单详细表的行状态
  441. public static void updateSTDSTATUS(string stno, int stline)
  442. {
  443. string sql = @"update dbo.ICSASNIQCDETAIL
  444. set STDSTATUS=''
  445. where STNO='" + stno + "' and STLINE=" + stline + "";
  446. sql = string.Format(sql);
  447. DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql);
  448. }
  449. #endregion
  450. #region 更新物料,产品详细信息产品状态
  451. public static void updateSerialStatus(string serialno, string itemcode)
  452. {
  453. string sql = @"update dbo.ICSITEMLotDetail
  454. set SerialStatus=''
  455. where SERIALNO='" + serialno + "' and ItemCode=" + itemcode + "";
  456. sql = string.Format(sql);
  457. DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql);
  458. }
  459. #endregion
  460. #region 更新到货单详细表的到货单状态
  461. public static void updateRECSTATUS(string stno, int stline)
  462. {
  463. string sql = @"update dbo.ICSINVReceiptDetail
  464. set RECSTATUS=''
  465. where ReceiptNO='" + stno + "' and ReceiptLine=" + stline + "";
  466. sql = string.Format(sql);
  467. DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql);
  468. }
  469. #endregion
  470. #region 更新送检单主表的单据状态
  471. public static void updateSTATUS(string stno,int stline)
  472. {
  473. string sql = @"update dbo.ICSASNIQC
  474. set STATUS=''
  475. where STNO='" + stno + "'and STNO_SEQ=" + stline + "";
  476. sql = string.Format(sql);
  477. DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql);
  478. }
  479. #endregion
  480. #region 更新到货单主表的单据状态
  481. public static void updatereceiptRECSTATUS(string stno)
  482. {
  483. string sql = @"update dbo.ICSINVReceipt
  484. set RECSTATUS=''
  485. where ReceiptNO='" + stno + "'";
  486. sql = string.Format(sql);
  487. DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql);
  488. }
  489. #endregion
  490. #region 根据单号、单行号查询送检单子表信息
  491. public static ICSASNIQCDETAIL selectIQCDetail(String stno, int stline, String Appconstr)
  492. {
  493. FramDataContext db = new FramDataContext(Appconstr);
  494. db.Connection.Open();
  495. db.Transaction = db.Connection.BeginTransaction();
  496. ICSASNIQCDETAIL entity = new ICSASNIQCDETAIL();
  497. try
  498. {
  499. var line = db.ICSASNIQCDETAIL.SingleOrDefault(a => a.STNO == stno && a.STLINE == stline);
  500. return (ICSASNIQCDETAIL)line;
  501. }
  502. catch (Exception ex)
  503. {
  504. throw new Exception(ex.Message);
  505. }
  506. }
  507. #endregion
  508. #region 根据产品序列号、存货编码查询物料产品详细表
  509. public static ICSITEMLotDetail selectitemlotdetail(String serailno, string itemcode, String Appconstr)
  510. {
  511. FramDataContext db = new FramDataContext(Appconstr);
  512. db.Connection.Open();
  513. db.Transaction = db.Connection.BeginTransaction();
  514. ICSITEMLotDetail entity = new ICSITEMLotDetail();
  515. try
  516. {
  517. var line = db.ICSITEMLotDetail.SingleOrDefault(a => a.SERIALNO == serailno && a.ItemCode == itemcode);
  518. return (ICSITEMLotDetail)line;
  519. }
  520. catch (Exception ex)
  521. {
  522. throw new Exception(ex.Message);
  523. }
  524. }
  525. #endregion
  526. #region 根据单号、行号查询送检单信息
  527. public static ICSASNIQC selectASNIQC(String stno,int stline, String Appconstr)
  528. {
  529. FramDataContext db = new FramDataContext(Appconstr);
  530. db.Connection.Open();
  531. db.Transaction = db.Connection.BeginTransaction();
  532. ICSASNIQC entity = new ICSASNIQC();
  533. try
  534. {
  535. var line = db.ICSASNIQC.SingleOrDefault(a => a.STNO == stno && a.STNO_SEQ == stline);
  536. return (ICSASNIQC)line;
  537. }
  538. catch (Exception ex)
  539. {
  540. throw new Exception(ex.Message);
  541. }
  542. }
  543. #endregion
  544. #region 根据单号查询到货单主表信息
  545. public static ICSINVReceipt selectreceipt(String stno, String Appconstr)
  546. {
  547. FramDataContext db = new FramDataContext(Appconstr);
  548. db.Connection.Open();
  549. db.Transaction = db.Connection.BeginTransaction();
  550. ICSINVReceipt entity = new ICSINVReceipt();
  551. try
  552. {
  553. var line = db.ICSINVReceipt.SingleOrDefault(a => a.ReceiptNO == stno);
  554. return (ICSINVReceipt)line;
  555. }
  556. catch (Exception ex)
  557. {
  558. throw new Exception(ex.Message);
  559. }
  560. }
  561. #endregion
  562. #region 根据单号、单行号查询到货单详细信息
  563. public static ICSINVReceiptDetail selectReceiptDetail(String stno, int stline, String Appconstr)
  564. {
  565. FramDataContext db = new FramDataContext(Appconstr);
  566. db.Connection.Open();
  567. db.Transaction = db.Connection.BeginTransaction();
  568. ICSINVReceiptDetail entity = new ICSINVReceiptDetail();
  569. try
  570. {
  571. var line = db.ICSINVReceiptDetail.SingleOrDefault(a => a.ReceiptNO == stno && a.ReceiptLine == stline);
  572. return (ICSINVReceiptDetail)line;
  573. }
  574. catch (Exception ex)
  575. {
  576. throw new Exception(ex.Message);
  577. }
  578. }
  579. #endregion
  580. #region 根据单号、单行号查询生成的批次信息
  581. public static ICSITEMLot selectICSITEMLot(String stno, string stline, String Appconstr)
  582. {
  583. FramDataContext db = new FramDataContext(Appconstr);
  584. db.Connection.Open();
  585. db.Transaction = db.Connection.BeginTransaction();
  586. ICSITEMLot entity = new ICSITEMLot();
  587. try
  588. {
  589. var line = db.ICSITEMLot.SingleOrDefault(a => a.TransNO == stno && a.TransLine == stline);
  590. return (ICSITEMLot)line;
  591. }
  592. catch (Exception ex)
  593. {
  594. throw new Exception(ex.Message);
  595. }
  596. }
  597. #endregion
  598. #region 判断某个送检单所有子表的行状态是否关闭
  599. public static bool IsSTDSTATUSclose(string stno, string dsconn)
  600. {
  601. FramDataContext db = new FramDataContext(dsconn);
  602. db.Connection.Open();
  603. db.Transaction = db.Connection.BeginTransaction();
  604. try
  605. {
  606. var line = db.ICSASNIQCDETAIL.SingleOrDefault(a => a.STNO == stno && a.STDSTATUS == "已检已入");
  607. if (line == null)
  608. return true;
  609. else
  610. return false;
  611. }
  612. catch (Exception ex)
  613. {
  614. db.Transaction.Rollback();
  615. throw ex;
  616. }
  617. }
  618. #endregion
  619. #region 判断某个到货单所有子表的到货单状态是否关闭
  620. public static bool IsRECSTATUSclose(string stno, string dsconn)
  621. {
  622. FramDataContext db = new FramDataContext(dsconn);
  623. db.Connection.Open();
  624. db.Transaction = db.Connection.BeginTransaction();
  625. try
  626. {
  627. var line = db.ICSINVReceiptDetail.SingleOrDefault(a => a.ReceiptNO == stno && a.RECSTATUS == "已经完成");
  628. if (line == null)
  629. return true;
  630. else
  631. return false;
  632. }
  633. catch (Exception ex)
  634. {
  635. db.Transaction.Rollback();
  636. throw ex;
  637. }
  638. }
  639. #endregion
  640. #region 状态更新
  641. public static void updatestatus(string receiptno, int receiptline)
  642. {
  643. FramDataContext db = new FramDataContext(AppConfig.AppConnectString);
  644. db.Connection.Open();
  645. db.Transaction = db.Connection.BeginTransaction();
  646. try
  647. {
  648. //var line = db.ICSASNIQC.SingleOrDefault(a => a.STNO == receiptno && a.STNO_SEQ == receiptline && a.WorkPoint == AppConfig.WorkPointCode);
  649. //var lines = db.ICSASNIQCDETAIL.SingleOrDefault(a => a.STNO == receiptno && a.STLINE == receiptline && a.WORKPOINT == AppConfig.WorkPointCode);
  650. //line.STATUS = "已检已入";
  651. //lines.STDSTATUS = "已检已入";
  652. var itemTransQty = db.ICSITEMTrans.Where(a => a.TransNO == receiptno && a.TransLine == receiptline && a.TransType=="收" && a.WorkPoint == AppConfig.WorkPointCode).Sum(a=>a.TransQTY);
  653. var INVReceiptDetail = db.ICSINVReceiptDetail.SingleOrDefault(a => a.ReceiptNO == receiptno && a.ReceiptLine == receiptline && a.WorkPoint == AppConfig.WorkPointCode);
  654. if (itemTransQty != null && INVReceiptDetail != null && itemTransQty == INVReceiptDetail.PLANQTY)
  655. {
  656. INVReceiptDetail.RECSTATUS = "已经完成";
  657. db.SubmitChanges();
  658. }
  659. var ptDetail = db.ICSINVReceiptDetail.Where(a => a.ReceiptNO == receiptno && a.WorkPoint == AppConfig.WorkPointCode && a.RECSTATUS != "已经完成");
  660. if (ptDetail.Count() == 0 || ptDetail == null)
  661. {
  662. var ICSINVReceipt = db.ICSINVReceipt.SingleOrDefault(a => a.ReceiptNO == receiptno && a.WorkPoint == AppConfig.WorkPointCode);
  663. ICSINVReceipt.RECSTATUS = "已经完成";
  664. }
  665. db.SubmitChanges();
  666. db.Transaction.Commit();
  667. }
  668. catch (Exception ex)
  669. {
  670. db.Transaction.Rollback();
  671. throw ex;
  672. }
  673. }
  674. #endregion
  675. #region 期初导入
  676. public static void Insert(List<ICSITEMLot> tbinfoList, List<FormICSWareHouseLotInfoUIModel> shiftInfoList, List<ICSWareHouseInfo> WareHouseInfoList, List<ICSWareHouseLotInfoLog> ICSWareHouseLogList, string dsconn)
  677. {
  678. #region 写入WMS
  679. FramDataContext db = new FramDataContext(dsconn);
  680. db.Connection.Open();
  681. db.Transaction = db.Connection.BeginTransaction();
  682. try
  683. {
  684. #region ICSITEMLot
  685. foreach (ICSITEMLot tbinfo in tbinfoList)
  686. {
  687. bool isNew = false;
  688. var line = db.ICSITEMLot.SingleOrDefault(a => a.ID == tbinfo.ID);
  689. if (line == null)
  690. {
  691. isNew = true;
  692. line = new ICSITEMLot();
  693. line.ID = AppConfig.GetGuid();
  694. }
  695. line.LotNO = tbinfo.LotNO;
  696. line.ItemCode = tbinfo.ItemCode;
  697. line.TransNO = tbinfo.TransNO;
  698. line.TransLine = tbinfo.TransLine;
  699. line.VENDORITEMCODE = tbinfo.VENDORITEMCODE;
  700. line.VENDORCODE = tbinfo.VENDORCODE;
  701. line.VenderLotNO = tbinfo.VenderLotNO;
  702. line.PRODUCTDATE = tbinfo.PRODUCTDATE;
  703. line.LOTQTY = tbinfo.LOTQTY;
  704. line.ACTIVE = tbinfo.ACTIVE;
  705. line.Exdate = tbinfo.Exdate;
  706. line.TYPE = tbinfo.TYPE;
  707. line.VoucherNO = tbinfo.VoucherNO;//零件号
  708. line.VoucherRow = tbinfo.VoucherRow;//工艺要求
  709. line.TwoMUSER = tbinfo.TwoMUSER;//工程号
  710. line.WorkPoint = tbinfo.WorkPoint;
  711. line.MUSER = tbinfo.MUSER;
  712. line.MUSERName = tbinfo.MUSERName;
  713. line.MTIME = tbinfo.MTIME;
  714. line.EATTRIBUTE1 = tbinfo.EATTRIBUTE1;
  715. line.EATTRIBUTE3 = tbinfo.EATTRIBUTE3;
  716. if (isNew)
  717. db.ICSITEMLot.InsertOnSubmit(line);
  718. db.SubmitChanges();
  719. }
  720. #endregion
  721. #region FormICSWareHouseLotInfoUIModel
  722. foreach (FormICSWareHouseLotInfoUIModel shiftInfo in shiftInfoList)
  723. {
  724. bool isNew = false;
  725. var line = db.ICSWareHouseLotInfo.SingleOrDefault(a => a.ID == shiftInfo.ID);
  726. if (line == null)
  727. {
  728. isNew = true;
  729. line = new ICSWareHouseLotInfo();
  730. line.ID = AppConfig.GetGuid();
  731. }
  732. //var codes = db.ICSWareHouseLotInfo.Where(a => a.SHIFTSEQ == shiftInfo.SHIFTSEQ && a.SHIFTTYPEID == shiftInfo.SHIFTTYPEID && a.ID != line.ID);
  733. //if (codes.ToList().Count > 0)
  734. //{
  735. // throw new Exception("班次次序在该班制中已存在");
  736. //}
  737. line.ID = shiftInfo.ID;
  738. line.LotNO = shiftInfo.LotNO;
  739. line.WHGUID = shiftInfo.WHGUID;
  740. line.WHCode = shiftInfo.WHCode;
  741. line.BinGUID = shiftInfo.BinGUID;
  742. line.BinCode = shiftInfo.BinCode;
  743. line.INVGUID = shiftInfo.INVGUID;
  744. line.INVCode = shiftInfo.INVCode;
  745. line.LotQty = shiftInfo.LotQty;
  746. line.ReceiveDate = Convert.ToDateTime(shiftInfo.ReceiveDate);
  747. line.MUSER = shiftInfo.MUSER;
  748. line.MUSERName = shiftInfo.MUSERName;
  749. line.MTIME = Convert.ToDateTime(shiftInfo.MTIME);
  750. line.WorkPoint = shiftInfo.WorkPoint;
  751. line.EATTRIBUTE1 = shiftInfo.EATTRIBUTE1;
  752. if (isNew)
  753. db.ICSWareHouseLotInfo.InsertOnSubmit(line);
  754. db.SubmitChanges();
  755. }
  756. #endregion
  757. #region ICSWareHouseInfo
  758. foreach (ICSWareHouseInfo ItemLot in WareHouseInfoList)
  759. {
  760. bool isNew = false;
  761. var line = db.ICSWareHouseInfo.SingleOrDefault(a => a.WHGUID == ItemLot.WHGUID && a.BinGUID == ItemLot.BinGUID && a.INVGUID == ItemLot.INVGUID);
  762. if (line == null)
  763. {
  764. isNew = true;
  765. line = new ICSWareHouseInfo();
  766. line.WHGUID = ItemLot.WHGUID;
  767. line.WHCode = ItemLot.WHCode;
  768. line.BinGUID = ItemLot.BinGUID;
  769. line.BinCode = ItemLot.BinCode;
  770. line.INVGUID = ItemLot.INVGUID;
  771. line.INVCode = ItemLot.INVCode;
  772. //line.QTY = ItemLot.QTY;
  773. }
  774. line.QTY += ItemLot.QTY;
  775. line.WorkPoint = AppConfig.WorkPointCode; ;
  776. line.MUSER = ItemLot.MUSER;
  777. line.MUSERName = ItemLot.MUSERName;
  778. line.MTIME = ItemLot.MTIME;
  779. line.EATTRIBUTE1 = ItemLot.EATTRIBUTE1;
  780. if (isNew) db.ICSWareHouseInfo.InsertOnSubmit(line);
  781. db.SubmitChanges();
  782. }
  783. #endregion
  784. #region ICSITEMTrans
  785. //foreach (ICSITEMTrans ItemLot in TransList)
  786. //{
  787. // ICSITEMTrans line = new ICSITEMTrans();
  788. // line.ID = ItemLot.ID;
  789. // line.TransNO = ItemLot.TransNO;
  790. // line.TransLine = ItemLot.TransLine;
  791. // line.ITEMCODE = ItemLot.ITEMCODE;
  792. // line.FRMStorageCODE = ItemLot.FRMStorageCODE;
  793. // line.FRMStackCODE = ItemLot.FRMStackCODE;
  794. // line.TOStorageCODE = ItemLot.TOStorageCODE;
  795. // line.TOStackCODE = ItemLot.TOStackCODE;
  796. // line.TransQTY = ItemLot.TransQTY;
  797. // line.Memo = ItemLot.Memo;
  798. // line.TransType = ItemLot.TransType;
  799. // line.BusinessCode = ItemLot.BusinessCode;
  800. // line.WorkPoint = AppConfig.WorkPointCode; ;
  801. // line.MUSER = ItemLot.MUSER;
  802. // line.MUSERName = ItemLot.MUSERName;
  803. // line.MTIME = ItemLot.MTIME;
  804. // line.EATTRIBUTE1 = ItemLot.EATTRIBUTE1;
  805. // db.ICSITEMTrans.InsertOnSubmit(line);
  806. // db.SubmitChanges();
  807. //}
  808. #endregion
  809. #region ICSITEMTransLot
  810. //foreach (ICSITEMTransLot ItemLot in ItemLotList)
  811. //{
  812. // ICSITEMTransLot line = new ICSITEMTransLot();
  813. // line.ID = ItemLot.ID;
  814. // line.ITEMTransID = ItemLot.ITEMTransID;
  815. // line.LotNO = ItemLot.LotNO;
  816. // line.ITEMCODE = ItemLot.ITEMCODE;
  817. // line.TransQTY = ItemLot.TransQTY;
  818. // line.Memo = ItemLot.Memo;
  819. // line.WorkPoint = AppConfig.WorkPointCode; ;
  820. // line.MUSER = ItemLot.MUSER;
  821. // line.MUSERName = ItemLot.MUSERName;
  822. // line.MTIME = ItemLot.MTIME;
  823. // db.ICSITEMTransLot.InsertOnSubmit(line);
  824. // db.SubmitChanges();
  825. //}
  826. #endregion
  827. #region ICSWareHouseLotInfoLog
  828. foreach (ICSWareHouseLotInfoLog LogList in ICSWareHouseLogList)
  829. {
  830. ICSWareHouseLotInfoLog line = new ICSWareHouseLotInfoLog();
  831. line.ID = LogList.ID;
  832. line.TransNO = LogList.TransNO;
  833. line.TransLine = LogList.TransLine;
  834. line.ITEMCODE = LogList.ITEMCODE;
  835. line.LotNO = LogList.LotNO;
  836. line.FRMStorageCODE = LogList.FRMStorageCODE;
  837. line.FRMStackCODE = LogList.FRMStackCODE;
  838. line.TOStorageCODE = LogList.TOStorageCODE;
  839. line.TOStackCODE = LogList.TOStackCODE;
  840. line.TransQTY = LogList.TransQTY;
  841. line.Memo = LogList.Memo;
  842. line.TransType = LogList.TransType;
  843. line.BusinessCode = LogList.BusinessCode;
  844. line.WorkPoint = AppConfig.WorkPointCode; ;
  845. line.MUSER = LogList.MUSER;
  846. line.MUSERName = LogList.MUSERName;
  847. line.MTIME = LogList.MTIME;
  848. line.EATTRIBUTE1 = LogList.EATTRIBUTE1;
  849. db.ICSWareHouseLotInfoLog.InsertOnSubmit(line);
  850. db.SubmitChanges();
  851. }
  852. #endregion
  853. db.Transaction.Commit();
  854. }
  855. catch (Exception ex)
  856. {
  857. db.Transaction.Rollback();
  858. throw new Exception(ex.Message);
  859. }
  860. #endregion
  861. }
  862. #endregion
  863. #region 审核ERP入库单
  864. public static string updateRd10(List<Rdrecord10> dataContext, List<FormICSWareHouseLotInfoUIModel> shiftInfoList, List<ICSWareHouseInfo> WareHouseInfoList, List<ICSITEMTrans> TransList, List<ICSITEMTransLot> ItemLotList, string dsconn)
  865. {
  866. string conStr = "";
  867. if (dataContext.Count == 0)
  868. {
  869. return "";
  870. }
  871. else
  872. {
  873. conStr = dataContext[0].ERPConStr;
  874. }
  875. SqlConnection conn = new System.Data.SqlClient.SqlConnection(conStr);
  876. conn.Open();
  877. SqlTransaction sqlTran = conn.BeginTransaction();
  878. SqlCommand cmd = new SqlCommand();
  879. cmd.Transaction = sqlTran;
  880. cmd.Connection = conn;
  881. try
  882. {
  883. #region 更新ERP
  884. foreach (Rdrecord10 Context in dataContext)
  885. {
  886. string sql = @"
  887. IF NOT EXISTS(SELECT a.ID FROM rdrecord10 a
  888. INNER JOIN rdrecords10 b ON a.ID = b.ID
  889. WHERE b.AutoID = '{0}' AND a.cWhCode = '{3}')
  890. BEGIN
  891. RAISERROR('!!',16,0);
  892. END
  893. IF EXISTS(SELECT a.ID FROM rdrecord10 a
  894. INNER JOIN rdrecords10 b ON a.ID = b.ID
  895. WHERE b.AutoID = '{0}' AND b.iQuantity > ISNULL(iFQuantity,0))
  896. BEGIN
  897. UPDATE rdrecords10 SET iFQuantity = ISNULL(iFQuantity,0) + '{1}'
  898. WHERE AutoID = '{0}'
  899. UPDATE b SET b.cHandler = '{2}',b.dnverifytime = GETDATE(),
  900. b.dVeriDate = CONVERT(NVARCHAR(20),GETDATE(),23)
  901. FROM rdrecords10 a INNER JOIN rdrecord10 b ON a.ID = b.ID
  902. WHERE a.AutoID = '{0}'
  903. IF EXISTS (SELECT AutoID FROM dbo.CurrentStock
  904. WHERE cWhCode = '{3}' AND cInvCode = '{4}')
  905. BEGIN
  906. UPDATE dbo.CurrentStock SET iQuantity = iQuantity + '{1}'
  907. WHERE cWhCode = '{3}' AND cInvCode = '{4}'
  908. END
  909. ELSE
  910. BEGIN
  911. INSERT INTO dbo.CurrentStock
  912. (cWhCode,cInvCode,ItemId,cBatch,iSoType,iSodid,iQuantity,
  913. iNum,cFree1,fOutQuantity,fOutNum,fInQuantity,fInNum,cFree2,
  914. cFree3,bStopFlag,fTransInQuantity,fTransInNum,
  915. fTransOutQuantity,fTransOutNum,fPlanQuantity,fPlanNum,fDisableQuantity,
  916. fDisableNum,fAvaQuantity,fAvaNum,BGSPSTOP,fStopQuantity,
  917. fStopNum,ipeqty,ipenum)
  918. SELECT '{3}','{4}',(SELECT Id FROM dbo.SCM_Item WHERE cInvCode = '{4}'),'','0','','{1}',
  919. '0','','0','0','0','0','',
  920. '','0','0','0','0','0','0','0','0',
  921. '0','0','0','0','0','0','0','0'
  922. END
  923. END
  924. ELSE
  925. BEGIN
  926. RAISERROR('ERP入库单已经入库完成!!',16,0);
  927. END";
  928. sql = string.Format(sql, Context.rdsID, Context.Quantity, Context.UserName, Context.whCode, Context.cInvCode);
  929. cmd.CommandText = sql;
  930. cmd.ExecuteNonQuery();
  931. }
  932. #endregion
  933. #region 写入WMS
  934. FramDataContext db = new FramDataContext(dsconn);
  935. db.Connection.Open();
  936. db.Transaction = db.Connection.BeginTransaction();
  937. try
  938. {
  939. #region FormICSWareHouseLotInfoUIModel
  940. foreach (FormICSWareHouseLotInfoUIModel shiftInfo in shiftInfoList)
  941. {
  942. bool isNew = false;
  943. var line = db.ICSWareHouseLotInfo.SingleOrDefault(a => a.ID == shiftInfo.ID);
  944. if (line == null)
  945. {
  946. isNew = true;
  947. line = new ICSWareHouseLotInfo();
  948. line.ID = AppConfig.GetGuid();
  949. }
  950. //var codes = db.ICSWareHouseLotInfo.Where(a => a.SHIFTSEQ == shiftInfo.SHIFTSEQ && a.SHIFTTYPEID == shiftInfo.SHIFTTYPEID && a.ID != line.ID);
  951. //if (codes.ToList().Count > 0)
  952. //{
  953. // throw new Exception("班次次序在该班制中已存在");
  954. //}
  955. line.ID = shiftInfo.ID;
  956. line.LotNO = shiftInfo.LotNO;
  957. line.WHGUID = shiftInfo.WHGUID;
  958. line.WHCode = shiftInfo.WHCode;
  959. line.BinGUID = shiftInfo.BinGUID;
  960. line.BinCode = shiftInfo.BinCode;
  961. line.INVGUID = shiftInfo.INVGUID;
  962. line.INVCode = shiftInfo.INVCode;
  963. line.LotQty = shiftInfo.LotQty;
  964. line.ReceiveDate = Convert.ToDateTime(shiftInfo.ReceiveDate);
  965. line.MUSER = shiftInfo.MUSER;
  966. line.MUSERName = shiftInfo.MUSERName;
  967. line.MTIME = Convert.ToDateTime(shiftInfo.MTIME);
  968. line.WorkPoint = shiftInfo.WorkPoint;
  969. line.EATTRIBUTE1 = shiftInfo.EATTRIBUTE1;
  970. if (isNew)
  971. db.ICSWareHouseLotInfo.InsertOnSubmit(line);
  972. db.SubmitChanges();
  973. }
  974. #endregion
  975. #region ICSWareHouseInfo
  976. foreach (ICSWareHouseInfo ItemLot in WareHouseInfoList)
  977. {
  978. bool isNew = false;
  979. var line = db.ICSWareHouseInfo.SingleOrDefault(a => a.WHGUID == ItemLot.WHGUID && a.BinGUID == ItemLot.BinGUID && a.INVGUID == ItemLot.INVGUID);
  980. if (line == null)
  981. {
  982. isNew = true;
  983. line = new ICSWareHouseInfo();
  984. line.WHGUID = ItemLot.WHGUID;
  985. line.WHCode = ItemLot.WHCode;
  986. line.BinGUID = ItemLot.BinGUID;
  987. line.BinCode = ItemLot.BinCode;
  988. line.INVGUID = ItemLot.INVGUID;
  989. line.INVCode = ItemLot.INVCode;
  990. //line.QTY = ItemLot.QTY;
  991. }
  992. line.QTY += ItemLot.QTY;
  993. line.WorkPoint = AppConfig.WorkPointCode; ;
  994. line.MUSER = ItemLot.MUSER;
  995. line.MUSERName = ItemLot.MUSERName;
  996. line.MTIME = ItemLot.MTIME;
  997. line.EATTRIBUTE1 = ItemLot.EATTRIBUTE1;
  998. if (isNew) db.ICSWareHouseInfo.InsertOnSubmit(line);
  999. db.SubmitChanges();
  1000. }
  1001. #endregion
  1002. #region ICSITEMTrans
  1003. foreach (ICSITEMTrans ItemLot in TransList)
  1004. {
  1005. ICSITEMTrans line = new ICSITEMTrans();
  1006. line.ID = ItemLot.ID;
  1007. line.TransNO = ItemLot.TransNO;
  1008. line.TransLine = ItemLot.TransLine;
  1009. line.ITEMCODE = ItemLot.ITEMCODE;
  1010. line.FRMStorageCODE = ItemLot.FRMStorageCODE;
  1011. line.FRMStackCODE = ItemLot.FRMStackCODE;
  1012. line.TOStorageCODE = ItemLot.TOStorageCODE;
  1013. line.TOStackCODE = ItemLot.TOStackCODE;
  1014. line.TransQTY = ItemLot.TransQTY;
  1015. line.Memo = ItemLot.Memo;
  1016. line.TransType = ItemLot.TransType;
  1017. line.BusinessCode = ItemLot.BusinessCode;
  1018. line.WorkPoint = AppConfig.WorkPointCode; ;
  1019. line.MUSER = ItemLot.MUSER;
  1020. line.MUSERName = ItemLot.MUSERName;
  1021. line.MTIME = ItemLot.MTIME;
  1022. line.EATTRIBUTE1 = ItemLot.EATTRIBUTE1;
  1023. db.ICSITEMTrans.InsertOnSubmit(line);
  1024. db.SubmitChanges();
  1025. }
  1026. #endregion
  1027. #region ICSITEMTransLot
  1028. foreach (ICSITEMTransLot ItemLot in ItemLotList)
  1029. {
  1030. ICSITEMTransLot line = new ICSITEMTransLot();
  1031. line.ID = ItemLot.ID;
  1032. line.ITEMTransID = ItemLot.ITEMTransID;
  1033. line.LotNO = ItemLot.LotNO;
  1034. line.ITEMCODE = ItemLot.ITEMCODE;
  1035. line.TransQTY = ItemLot.TransQTY;
  1036. line.Memo = ItemLot.Memo;
  1037. line.WorkPoint = AppConfig.WorkPointCode; ;
  1038. line.MUSER = ItemLot.MUSER;
  1039. line.MUSERName = ItemLot.MUSERName;
  1040. line.MTIME = ItemLot.MTIME;
  1041. db.ICSITEMTransLot.InsertOnSubmit(line);
  1042. db.SubmitChanges();
  1043. }
  1044. #endregion
  1045. db.Transaction.Commit();
  1046. }
  1047. catch (Exception ex)
  1048. {
  1049. db.Transaction.Rollback();
  1050. throw new Exception(ex.Message);
  1051. }
  1052. #endregion
  1053. cmd.Transaction.Commit();
  1054. return "OK";
  1055. }
  1056. catch (Exception ex)
  1057. {
  1058. cmd.Transaction.Rollback();
  1059. throw ex;
  1060. }
  1061. }
  1062. #endregion
  1063. #region 根据库位代码查询库位id,仓库
  1064. public static DataTable SelectStack(string stackcode)
  1065. {
  1066. string sql = @"SELECT
  1067. a.Serial,b.StorageCode,b.Serial AS StorageID
  1068. FROM
  1069. dbo.ICSStack a
  1070. INNER JOIN ICSStorage b ON a.Storage_Serial=b.Serial AND a.WorkPoint=b.WorkPoint
  1071. WHERE a.StackCode='{0}' AND a.WorkPoint='{1}'";
  1072. sql = string.Format(sql,stackcode,AppConfig.WorkPointCode);
  1073. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  1074. return dt;
  1075. }
  1076. #endregion
  1077. #region 根据存货编码判断批号是否批次管理
  1078. public static DataTable SelectLotNo(string invcode)
  1079. {
  1080. string sql = @"SELECT INVCODE,INVCONTROLTYPE
  1081. FROM ICSINVENTORY
  1082. WHERE INVCODE='{0}'";
  1083. sql = string.Format(sql, invcode, AppConfig.WorkPointCode);
  1084. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  1085. return dt;
  1086. }
  1087. #endregion
  1088. #region 根据物料代码查询物料
  1089. public static DataTable SelectItem(string itemcode)
  1090. {
  1091. string sql = @"select ID,INVCLASS,CASE SUBSTRING(INVCLASS, 1, 1) WHEN '2' THEN '半成品' WHEN '3' THEN '成品' ELSE '原材料' END AS Type
  1092. from dbo.ICSINVENTORY
  1093. where INVCODE='" + itemcode + "'";
  1094. sql = string.Format(sql);
  1095. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  1096. return dt;
  1097. }
  1098. #endregion
  1099. }
  1100. }