华恒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.

719 lines
28 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 System.Data;
  7. using ICSSoft.Base.Config.DBHelper;
  8. using ICSSoft.Base.Config.AppConfig;
  9. namespace ICSSoft.Frame.Data.DAL
  10. {
  11. public class ICSPickingDAL
  12. {
  13. public static List<FormICSStorageUIModel> SearchStorageInfoList(string dsconn)
  14. {
  15. try
  16. {
  17. List<FormICSStorageUIModel> returns = new List<FormICSStorageUIModel>();
  18. string sql = @"select [Serial],[StorageCode],[StorageName]
  19. from [ICSStorage]";
  20. sql = string.Format(sql);
  21. DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
  22. foreach (DataRow dr in dt.Rows)
  23. {
  24. FormICSStorageUIModel smodel = new FormICSStorageUIModel();
  25. smodel.Serial = dr["Serial"].ToString();
  26. smodel.StorageCode = dr["StorageCode"].ToString();
  27. smodel.StorageName = dr["StorageName"].ToString();
  28. if (!returns.Contains(smodel))
  29. returns.Add(smodel);
  30. }
  31. return returns;
  32. }
  33. catch (Exception ex)
  34. {
  35. throw ex;
  36. }
  37. }
  38. public static List<FormICSVendorUIModel> SearchVendorInfoList(string dsconn)
  39. {
  40. try
  41. {
  42. List<FormICSVendorUIModel> returnv = new List<FormICSVendorUIModel>();
  43. string sql = @"select [ID],[VendorCode],[VendorName]
  44. from [ICSVendor]";
  45. sql = string.Format(sql);
  46. DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
  47. foreach (DataRow dr in dt.Rows)
  48. {
  49. FormICSVendorUIModel vmodel = new FormICSVendorUIModel();
  50. vmodel.ID = dr["ID"].ToString();
  51. vmodel.VendorCode = dr["VendorCode"].ToString();
  52. vmodel.VendorName = dr["VendorName"].ToString();
  53. if (!returnv.Contains(vmodel))
  54. returnv.Add(vmodel);
  55. }
  56. return returnv;
  57. }
  58. catch (Exception ex)
  59. {
  60. throw ex;
  61. }
  62. }
  63. #region 新增和修改
  64. public static string Add(List<FormICSPickingModel> INVInfoList, string dsconn)
  65. {
  66. FramDataContext db = new FramDataContext(dsconn);
  67. db.Connection.Open();
  68. db.Transaction = db.Connection.BeginTransaction();
  69. try
  70. {
  71. string guid = "";
  72. foreach (FormICSPickingModel info in INVInfoList)
  73. {
  74. bool isNew = false;
  75. var line = db.ICSMaterial.SingleOrDefault(a => a.ID == info.ID);
  76. if (line == null)
  77. {
  78. isNew = true;
  79. line = new ICSMaterial();
  80. line.ID = AppConfig.GetGuid();
  81. line.VouchCode = info.VouchCode;
  82. line.PickingSTATUS = "新建";
  83. line.ISALLINSTORAGE = "N";
  84. line.IsMROItem = info.IsMROItem;
  85. line.AuditMan = info.AuditMan;
  86. line.AuditTime = info.AuditTime;
  87. line.IsMROItem = info.IsMROItem;
  88. line.IsPickingOrBack = info.IsPickingOrBack;
  89. guid = line.ID;
  90. }
  91. line.PickingTYPE = info.PickingTYPE;
  92. //if (info.ven != null)
  93. // line.VENDORCODE = info.ven.ID;
  94. //else
  95. // line.VENDORCODE = null;
  96. line.MEMO = info.MEMO;
  97. line.CreateTIME = info.CreateTIME;
  98. line.CreateUSER = info.CreateUSER;
  99. line.MUSER = AppConfig.UserId;
  100. line.MUSERName = AppConfig.UserName;
  101. line.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd hh:mm:ss");
  102. line.WorkPoint = AppConfig.WorkPointCode;
  103. line.AuditMan = info.AuditMan;
  104. line.AuditTime = info.AuditTime;
  105. line.PickingSTATUS = info.PickingSTATUS;
  106. //20190708ZM
  107. line.IsMROItem = info.IsMROItem;
  108. line.IsPickingOrBack = info.IsPickingOrBack;
  109. //line.OutCategory = info.OutCategory;
  110. if (isNew)
  111. {
  112. db.ICSMaterial.InsertOnSubmit(line);
  113. }
  114. db.SubmitChanges();
  115. }
  116. db.Transaction.Commit();
  117. return guid;
  118. }
  119. catch (Exception ex)
  120. {
  121. db.Transaction.Rollback();
  122. throw ex;
  123. }
  124. }
  125. /// <summary>
  126. /// 新增明细 MRO领料单
  127. /// </summary>
  128. public static string AddAndEditDetail(FormICSPickingModel Picking, string dsconn)
  129. {
  130. FramDataContext db = new FramDataContext(dsconn);
  131. db.Connection.Open();
  132. db.Transaction = db.Connection.BeginTransaction();
  133. try
  134. {
  135. bool isNew = false;
  136. #region 201907705注释 ZM表头信息变更没有保存
  137. //var line = db.ICSMaterial.SingleOrDefault(a => a.ID == Picking.ID);
  138. //if (line == null)
  139. //{
  140. // isNew = true;
  141. // line = new ICSMaterial();
  142. // line.ID = AppConfig.GetGuid();
  143. // line.VouchCode = Picking.VouchCode;
  144. // line.PickingSTATUS = "新建";
  145. // line.ISALLINSTORAGE = "N";
  146. // line.CreateTIME = Picking.CreateTIME;
  147. // line.CreateUSER = Picking.CreateUSER;
  148. // line.MUSER = AppConfig.UserId;
  149. // line.MUSERName = AppConfig.UserName;
  150. // line.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd hh:mm:ss");
  151. // line.WorkPoint = AppConfig.WorkPointCode;
  152. // line.IsMROItem = Picking.IsMROItem;
  153. // line.AuditMan = Picking.AuditMan;
  154. // line.AuditTime = Picking.AuditTime;
  155. // line.MEMO = Picking.MEMO;
  156. //}
  157. #endregion
  158. var line = db.ICSMaterial.SingleOrDefault(a => a.ID == Picking.ID);
  159. if (line == null)
  160. {
  161. isNew = true;
  162. line = new ICSMaterial();
  163. line.ID = AppConfig.GetGuid();
  164. }
  165. line.VouchCode = Picking.VouchCode;
  166. line.PickingSTATUS = "新建";
  167. line.ISALLINSTORAGE = "N";
  168. line.CreateTIME = Picking.CreateTIME;
  169. line.CreateUSER = Picking.CreateUSER;
  170. line.MUSER = AppConfig.UserId;
  171. line.MUSERName = AppConfig.UserName;
  172. line.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd hh:mm:ss");
  173. line.WorkPoint = AppConfig.WorkPointCode;
  174. line.IsMROItem = Picking.IsMROItem;
  175. line.AuditMan = Picking.AuditMan;
  176. line.AuditTime = Picking.AuditTime;
  177. line.MEMO = Picking.MEMO;
  178. line.IsPickingOrBack = Picking.IsPickingOrBack;
  179. line.OutCategory = Picking.OutCategory;
  180. line.VENDORCODE = Picking.VENDORCODE;
  181. //line.IsMROItem = Picking.IsMROItem;
  182. //line.IsPickingOrBack = Picking.IsPickingOrBack;
  183. if (isNew)
  184. {
  185. db.ICSMaterial.InsertOnSubmit(line);
  186. }
  187. foreach (FormICSPickingDetailModel ICSMaterialPick in Picking.FormICSPickingDetail)
  188. {
  189. //20191111之前的
  190. //var codes = db.ICSMaterialPick.Where(a => a.SubInvCode == ICSMaterialPick.SubInvCode && a.VouchCode == ICSMaterialPick.VouchCode && a.ID != Convert.ToInt32(ICSMaterialPick.ID));
  191. //if (codes != null && codes.Count() > 0)
  192. //{
  193. // throw new Exception("该物料已存在,不能重复添加");
  194. //}
  195. //20191111修改
  196. var codes = db.ICSMaterialPick.Where(a => a.SubInvCode == ICSMaterialPick.SubInvCode && a.VouchCode == ICSMaterialPick.VouchCode && a.ID != Convert.ToInt32(ICSMaterialPick.ID)&&a.VoucherNO==ICSMaterialPick.VoucherNO);
  197. if (codes != null && codes.Count() > 0)
  198. {
  199. throw new Exception("该物料已存在,不能重复添加");
  200. }
  201. bool detailIsNew = false;
  202. var detailLine = db.ICSMaterialPick.SingleOrDefault(a => a.ID == Convert.ToInt32(ICSMaterialPick.ID));
  203. if (detailLine == null)
  204. {
  205. detailIsNew = true;
  206. detailLine = new ICSMaterialPick();
  207. }
  208. detailLine.VoucherNO = ICSMaterialPick.VoucherNO;
  209. detailLine.VouchRow = ICSMaterialPick.VouchRow;
  210. detailLine.VouchCode = ICSMaterialPick.VouchCode;
  211. detailLine.SubInvCode = ICSMaterialPick.SubInvCode;
  212. detailLine.InvCode = ICSMaterialPick.SubInvCode;
  213. detailLine.WHCode = ICSMaterialPick.WHCode;
  214. detailLine.HasQuantity = 0;
  215. detailLine.SupplyQuantity = ICSMaterialPick.SupplyQuantity;//20190911新增总单重
  216. if (line.IsPickingOrBack == 3)
  217. {
  218. detailLine.MoveType = "退料";//"退料"; 退料单可能关联工单
  219. detailLine.MOCode = ICSMaterialPick.MOCode;
  220. detailLine.MORow = ICSMaterialPick.MORow;
  221. }
  222. else
  223. {
  224. detailLine.MoveType = "领料";//"领料不关联工单
  225. //detailLine.MOCode = ICSMaterialPick.MOCode; //20190705ZM拿掉关联工单
  226. //detailLine.MORow = ICSMaterialPick.MORow; //20190705ZM拿掉
  227. detailLine.MOCode = "";
  228. detailLine.MORow = "";
  229. }
  230. //detailLine.MOCode = ICSMaterialPick.MOCode; //20190705ZM拿掉关联工单
  231. //detailLine.MORow = ICSMaterialPick.MORow; //20190705ZM拿掉
  232. //detailLine.MOCode = "";
  233. //detailLine.MORow = "";
  234. detailLine.Quantity = Convert.ToDecimal(ICSMaterialPick.Quantity);//应退数量
  235. //detailLine.HasQuantity = Convert.ToInt32(ICSMaterialPick.HasQuantity);//已退数量
  236. //detailLine.MUSERName = AppConfig.UserName;//入库用户
  237. detailLine.MUSER = AppConfig.UserCode;
  238. detailLine.MUSERName = AppConfig.UserName;
  239. detailLine.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd hh:mm:ss");
  240. detailLine.VoucherDate = AppConfig.GetSeverDateTime("yyyy-MM-dd hh:mm:ss");
  241. detailLine.WorkPoint = AppConfig.WorkPointCode;
  242. detailLine.Remarks = ICSMaterialPick.Remarks;
  243. detailLine.DDNo = ICSMaterialPick.DDNo;
  244. //ZM增加部门、出库类型
  245. detailLine.Dept = ICSMaterialPick.Dept;
  246. detailLine.OutCategory = ICSMaterialPick.OutCategory;
  247. detailLine.RDCode = ICSMaterialPick.RDCode;
  248. if (detailIsNew)
  249. {
  250. db.ICSMaterialPick.InsertOnSubmit(detailLine);
  251. }
  252. }
  253. db.SubmitChanges();
  254. db.Transaction.Commit();
  255. return line.ID;
  256. }
  257. catch (Exception ex)
  258. {
  259. db.Transaction.Rollback();
  260. throw ex;
  261. }
  262. }
  263. /// <summary>
  264. /// 获取领料单号
  265. /// </summary>
  266. /// <param name="dsconn"></param>
  267. /// <returns></returns>
  268. public static string GetOutInNo(string dsconn)
  269. {
  270. FramDataContext db = new FramDataContext(dsconn);
  271. db.Connection.Open();
  272. DateTime now = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  273. string date = now.Year.ToString() + (now.Month < 10 ? "0" + now.Month : now.Month.ToString()) + (now.Day < 10 ? "0" + now.Day : now.Day.ToString());
  274. var ITEMLot = db.ICSMaterial.Where(a => a.VouchCode.Contains(date)).OrderByDescending(a => a.VouchCode);
  275. string count = "001";
  276. if (ITEMLot != null && ITEMLot.Count() > 0)
  277. {
  278. string VouchCode = ITEMLot.First().VouchCode;
  279. count = (Convert.ToInt64(VouchCode) + 1).ToString().PadLeft(2, '0');
  280. }
  281. else
  282. {
  283. count = date + "001";
  284. }
  285. db.Connection.Close();
  286. return count;
  287. }
  288. /// <summary>
  289. /// 获取领料单行号
  290. /// </summary>
  291. /// <param name="dsconn"></param>
  292. /// <returns></returns>
  293. public static string GetPickingRowNo(string VouchCode, string dsconn)
  294. {
  295. FramDataContext db = new FramDataContext(dsconn);
  296. db.Connection.Open();
  297. string count = "1";
  298. if (!string.IsNullOrWhiteSpace(VouchCode))
  299. {
  300. var ITEMLot = db.ICSMaterialPick.Where(a => a.VouchCode.Contains(VouchCode)).OrderByDescending(a => a.VouchRow);
  301. if (ITEMLot != null && ITEMLot.Count() > 0)
  302. {
  303. count = (Convert.ToInt64(ITEMLot.First().VouchRow) + 1).ToString();
  304. }
  305. }
  306. db.Connection.Close();
  307. return count;
  308. }
  309. #endregion
  310. #region 入库单代码是否存在
  311. public static bool IsIncluding(string noCODE, string workpoint, string dsconn)
  312. {
  313. FramDataContext db = new FramDataContext(dsconn);
  314. db.Connection.Open();
  315. db.Transaction = db.Connection.BeginTransaction();
  316. try
  317. {
  318. var line = db.ICSMaterial.SingleOrDefault(a => a.VouchCode == noCODE && a.WorkPoint == workpoint);
  319. if (line == null)
  320. return true;
  321. else
  322. return false;
  323. }
  324. catch (Exception ex)
  325. {
  326. db.Transaction.Rollback();
  327. throw ex;
  328. }
  329. }
  330. #endregion
  331. #region 通过入库代码查询
  332. public static List<FormICSPickingModel> SearchInfoByID(string Rguid, string dsconn)
  333. {
  334. List<FormICSPickingModel> INVR = new List<FormICSPickingModel>();
  335. string sql = @"select DISTINCT(i.ID),
  336. i.[VouchCode] as VouchCode,
  337. j.WHCode,
  338. i.MUSERName as MUSER,
  339. j.Dept,
  340. --j.OutCategory,
  341. i.MEMO,
  342. i.OutCategory,
  343. i.IsMROItem,
  344. i.IsPickingOrBack,
  345. i.MTIME,j.RDCode,i.VENDORCODE
  346. from ICSMaterial i
  347. LEFT JOIN ICSMaterialPick j ON i.VouchCode=j.VouchCode
  348. where i.ID='{0}'";
  349. sql = string.Format(sql, Rguid);
  350. DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
  351. foreach (DataRow dr in dt.Rows)
  352. {
  353. FormICSPickingModel returnInfo = new FormICSPickingModel();
  354. returnInfo.WHCode = dr["WHCode"].ToString();
  355. returnInfo.VouchCode = dr["VouchCode"].ToString();
  356. returnInfo.MTIME = Convert.ToDateTime(dr["MTIME"].ToString());
  357. returnInfo.MUSERName = dr["MUSER"].ToString();
  358. //20190705 ZM
  359. returnInfo.Dept = dr["Dept"].ToString();
  360. returnInfo.OutCategory = dr["OutCategory"].ToString();
  361. returnInfo.MEMO = dr["MEMO"].ToString();
  362. returnInfo.IsMROItem = bool.Parse(dr["IsMROItem"].ToString());
  363. returnInfo.RDCode = dr["RDCode"].ToString();
  364. returnInfo.VENDORCODE = dr["VENDORCODE"].ToString();
  365. if (!INVR.Contains(returnInfo))
  366. {
  367. INVR.Add(returnInfo);
  368. }
  369. }
  370. //}
  371. return INVR;
  372. }
  373. #endregion
  374. #region 删除
  375. public static void deleteInfo(List<ICSMaterial> RIDList, string dsconn)
  376. {
  377. FramDataContext db = new FramDataContext(dsconn);
  378. db.Connection.Open();
  379. db.Transaction = db.Connection.BeginTransaction();
  380. try
  381. {
  382. //foreach (ICSMaterial item2route in RIDList)
  383. //{
  384. // var lines = db.ICSMaterial.Where(a => a.VouchCode == item2route.VouchCode);
  385. // db.ICSMaterial.DeleteAllOnSubmit(lines);
  386. // db.SubmitChanges();
  387. //}
  388. //db.Transaction.Commit();
  389. foreach (ICSMaterial item2route in RIDList)
  390. {
  391. var lines = db.ICSMaterial.Where(a => a.VouchCode == item2route.VouchCode);
  392. var _lines = db.ICSMaterialPick.Where(a => a.VouchCode == item2route.VouchCode);
  393. db.ICSMaterial.DeleteAllOnSubmit(lines);
  394. db.ICSMaterialPick.DeleteAllOnSubmit(_lines);
  395. db.SubmitChanges();
  396. }
  397. db.Transaction.Commit();
  398. }
  399. catch (Exception ex)
  400. {
  401. db.Transaction.Rollback();
  402. throw ex;
  403. }
  404. }
  405. /// <summary>
  406. /// 删除入库单明细
  407. /// </summary>
  408. /// <param name="RIDList"></param>
  409. /// <param name="dsconn"></param>
  410. public static void deleteDetailInfo(List<string> RIDList, string dsconn)
  411. {
  412. FramDataContext db = new FramDataContext(dsconn);
  413. db.Connection.Open();
  414. db.Transaction = db.Connection.BeginTransaction();
  415. try
  416. {
  417. var lines = db.ICSMaterialPick.Where(a => RIDList.Contains(a.ID.ToString()));
  418. db.ICSMaterialPick.DeleteAllOnSubmit(lines);
  419. db.SubmitChanges();
  420. db.Transaction.Commit();
  421. }
  422. catch (Exception ex)
  423. {
  424. db.Transaction.Rollback();
  425. throw ex;
  426. }
  427. }
  428. public static bool IsIncludingDetail(List<string> RIDList, string dsconn)
  429. {
  430. FramDataContext db = new FramDataContext(dsconn);
  431. db.Connection.Open();
  432. db.Transaction = db.Connection.BeginTransaction();
  433. try
  434. {
  435. bool flag = false;
  436. var lines = db.ICSMaterialPick.Where(a => RIDList.Contains(a.ID.ToString()));
  437. if (lines.Count() != 0)
  438. flag = true;
  439. return flag;
  440. }
  441. catch (Exception ex)
  442. {
  443. db.Transaction.Rollback();
  444. throw ex;
  445. }
  446. }
  447. #endregion
  448. #region 子件资料信息
  449. public static DataTable GetDetail(string MoSql)
  450. {
  451. try
  452. {
  453. string sql = @"SELECT
  454. a.ID,
  455. a.VouchCode,
  456. A.VouchRow,
  457. a.MOCODE,
  458. a.MORow,
  459. a.SubInvCode,
  460. a.Quantity,
  461. a.HasQuantity,
  462. a.WHCode,
  463. c.StorageName,
  464. b.INVNAME,
  465. b.INVSTD,
  466. b.INVUOM,
  467. a.MTIME,
  468. a.MUSERName as MUSER,
  469. a.VoucherNO as MoverCode, a.RDCode
  470. FROM
  471. ICSMaterialPick a
  472. LEFT JOIN ICSINVENTORY b ON a.InvCode=b.INVCODE AND a.WorkPoint=b.WorkPoint
  473. LEFT JOIN ICSStorage c ON a.WHCode=c.StorageCode AND a.WorkPoint = c.WorkPoint
  474. where VouchCode IN (SELECT a.VouchCode FROM(" + MoSql + ")a) AND a.WorkPoint ='" + AppConfig.WorkPointCode + @"'
  475. order by VouchCode,VouchRow ";
  476. sql = string.Format(sql);
  477. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  478. return dt;
  479. }
  480. catch (Exception ex)
  481. {
  482. throw ex;
  483. }
  484. }
  485. public static DataTable GetDetailList(string VouchCode)
  486. {
  487. try
  488. {
  489. string sql = @"SELECT a.ID,'' as isSelect,
  490. a.WHCode,
  491. m.StorageName,
  492. j.OutCategory,
  493. k.cRdName,
  494. a.Dept,
  495. n.cDepName,
  496. a.Remarks,
  497. a.SupplyQuantity,
  498. a.VouchCode,
  499. a.VouchRow,
  500. a.MOCode as MOCode,
  501. a.MORow as MORow,
  502. a.SubInvCode as cInvCode,
  503. a.Quantity as iQuantity,
  504. a.HasQuantity as HasQuantity,
  505. b.INVNAME as cInvName,
  506. b.INVSTD as cInvStd,
  507. b.INVUOM as INVUOM,
  508. a.MUSERName as cMaker,
  509. a.MTIME as dDate,
  510. a.VoucherNO as MoverCode, a.RDCode
  511. FROM
  512. ICSMaterialPick a
  513. LEFT JOIN ICSINVENTORY b ON a.SubInvCode=b.INVCODE AND a.WorkPoint=b.WorkPoint
  514. LEFT JOIN ICSMaterial j ON a.VouchCode=j.VouchCode
  515. LEFT JOIN ICSRdStyle k ON k.cRdCode=j.OutCategory
  516. LEFT JOIN ICSStorage m ON m.StorageCode=a.WHCode
  517. LEFT JOIN ICSDepartment n ON n.cDepCode=a.Dept
  518. where a.VouchCode = '{0}' AND a.WorkPoint ='" + AppConfig.WorkPointCode + @"'
  519. order by VouchRow";
  520. sql = string.Format(sql, VouchCode);
  521. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  522. return dt;
  523. }
  524. catch (Exception ex)
  525. {
  526. throw ex;
  527. }
  528. }
  529. public static DataTable GetDetailInfo(string id)
  530. {
  531. try
  532. {
  533. string sql = @"SELECT a.ID,'' as isSelect,
  534. a.WHCode,
  535. c.OutCategory,
  536. a.VoucherNO,--
  537. a.DDNo,--
  538. a.Remarks,
  539. a.VouchCode,
  540. a.VouchRow,
  541. a.SubInvCode as cInvCode,
  542. a.Quantity iQuantity,
  543. a.MOCode as MOCode,
  544. a.MORow as MORow,
  545. a.WHCode as iWHCode,
  546. b.INVNAME cInvName,
  547. b.INVSTD cInvStd,
  548. b.INVUOM INVUOM,
  549. a.MUSERName cMaker,
  550. a.MTIME dDate,
  551. a.SupplyQuantity,a.RDCode FROM
  552. ICSMaterialPick a
  553. LEFT JOIN ICSINVENTORY b ON a.SubInvCode=b.INVCODE AND a.WorkPoint=b.WorkPoint
  554. LEFT JOIN ICSMaterial c ON c.VouchCode=a.VouchCode AND c.WorkPoint=a.WorkPoint
  555. where a.ID = '{0}' AND a.WorkPoint ='" + AppConfig.WorkPointCode + "'";
  556. sql = string.Format(sql, id);
  557. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  558. return dt;
  559. }
  560. catch (Exception ex)
  561. {
  562. throw ex;
  563. }
  564. }
  565. #endregion
  566. #region MRO领料单审核
  567. public static void Check(string id, string dsconn)
  568. {
  569. FramDataContext db = new FramDataContext(dsconn);
  570. db.Connection.Open();
  571. db.Transaction = db.Connection.BeginTransaction();
  572. try
  573. {
  574. var line = db.ICSMaterial.SingleOrDefault(a => a.ID == id);
  575. line.PickingSTATUS = "已审核";
  576. line.AuditMan = AppConfig.UserCode;
  577. line.AuditTime = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  578. db.SubmitChanges();
  579. db.Transaction.Commit();
  580. }
  581. catch (Exception ex)
  582. {
  583. db.Transaction.Rollback();
  584. throw ex;
  585. }
  586. }
  587. #endregion
  588. #region 弃审
  589. public static void DiscardedTrialCheck(string id, string dsconn)
  590. {
  591. FramDataContext db = new FramDataContext(dsconn);
  592. db.Connection.Open();
  593. db.Transaction = db.Connection.BeginTransaction();
  594. try
  595. {
  596. var line = db.ICSMaterial.SingleOrDefault(a => a.ID == id);
  597. line.PickingSTATUS = "新增";
  598. line.AuditMan = null;
  599. line.AuditTime = null;
  600. //line.AuditMan = AppConfig.UserCode;
  601. //line.AuditTime = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  602. db.SubmitChanges();
  603. db.Transaction.Commit();
  604. }
  605. catch (Exception ex)
  606. {
  607. db.Transaction.Rollback();
  608. throw ex;
  609. }
  610. }
  611. #endregion
  612. //RefuseCheck
  613. #region 拒绝
  614. public static void RefuseCheck(string id, string dsconn)
  615. {
  616. FramDataContext db = new FramDataContext(dsconn);
  617. db.Connection.Open();
  618. db.Transaction = db.Connection.BeginTransaction();
  619. try
  620. {
  621. var line = db.ICSMaterial.SingleOrDefault(a => a.ID == id);
  622. line.PickingSTATUS = "拒绝";
  623. line.AuditMan = AppConfig.UserCode;
  624. line.AuditTime = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  625. db.SubmitChanges();
  626. db.Transaction.Commit();
  627. }
  628. catch (Exception ex)
  629. {
  630. db.Transaction.Rollback();
  631. throw ex;
  632. }
  633. }
  634. #endregion
  635. #region 通过ID查询
  636. public static DataTable searchInfoByID(string ID, string dsconn)
  637. {
  638. #region 原SQL
  639. // string sql = @"
  640. //SELECT A.ID, A.VouchCode, A.WHCode, A.PickingSTATUS, A.VENDORCODE, A.PickingTYPE, A.MEMO, A.CreateTIME,
  641. //A.CreateUSER, A.WorkPoint, A.MUSER, A.MUSERName, A.MTIME, A.EATTRIBUTE1, A.ISALLINSTORAGE, A.AuditMan, A.AuditTime, B.HasQuantity
  642. //FROM ICSMaterial A INNER JOIN ICSMaterialPick B ON A.VouchCode = B.VouchCode WHERE A.ID = '{0}' ";
  643. #endregion
  644. #region 现SQL
  645. string sql = @"
  646. SELECT A.ID, A.VouchCode, A.WHCode, A.PickingSTATUS, A.VENDORCODE, A.PickingTYPE, A.MEMO, A.CreateTIME,
  647. A.CreateUSER, A.WorkPoint, A.MUSER, A.MUSERName, A.MTIME, A.EATTRIBUTE1, A.ISALLINSTORAGE,
  648. A.AuditMan, A.AuditTime, SUM(ISNULL(B.HasQuantity, 0)) HasQuantity
  649. FROM ICSMaterial A INNER JOIN ICSMaterialPick B ON A.VouchCode = B.VouchCode WHERE A.ID = '{0}'
  650. GROUP BY A.ID, A.VouchCode, A.WHCode, A.PickingSTATUS, A.VENDORCODE, A.PickingTYPE, A.MEMO, A.CreateTIME,
  651. A.CreateUSER, A.WorkPoint, A.MUSER, A.MUSERName, A.MTIME, A.EATTRIBUTE1, A.ISALLINSTORAGE,
  652. A.AuditMan, A.AuditTime ORDER BY A.VouchCode ";
  653. #endregion
  654. sql = string.Format(sql, ID);
  655. DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
  656. return dt;
  657. }
  658. #endregion
  659. }
  660. }