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

176 lines
7.3 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. namespace ICSSoft.Frame.Data.DAL
  12. {
  13. public class ICSInvTransferDal
  14. {
  15. #region AddandEdit
  16. public static void AddandEdit(List<FormICSInvTransferUIModel> ItemLot, string Appconstr)
  17. {
  18. FramDataContext db = new FramDataContext(Appconstr);
  19. db.Connection.Open();
  20. db.Transaction = db.Connection.BeginTransaction();
  21. try
  22. {
  23. foreach (FormICSInvTransferUIModel Item in ItemLot)
  24. {
  25. bool isNew = false;
  26. var line = db.ICSInvTransfer.SingleOrDefault(a => a.ID == Item.ID);
  27. if (line == null)
  28. {
  29. isNew = true;
  30. line = new ICSInvTransfer();
  31. line.ID = AppConfig.GetGuid();
  32. }
  33. var codes = db.ICSInvTransfer.Where(a => a.TransferNO == Item.TransferNO && a.ID != line.ID);
  34. if (codes.ToList().Count > 0)
  35. {
  36. throw new Exception("转移单号已存在");
  37. }
  38. line.TransferNO = Item.TransferNO;
  39. line.FRMStorageID = Item.FRMStorageID;
  40. line.TOStorageID = Item.TOStorageID;
  41. line.FRMStorageCode = Item.FRMStorageCode;
  42. line.TOStorageCode = Item.TOStorageCode;
  43. line.TransferSTATUS = Item.TransferSTATUS;
  44. line.RECTYPE = Item.RECTYPE;
  45. line.TIMETYPE = Item.TIMETYPE;
  46. line.MEMO = Item.MEMO;
  47. line.CreateTIME = Convert.ToDateTime(Item.CreateTIME);
  48. line.CreateUSER = Item.CreateUSER;
  49. line.EffectedTIME = Convert.ToDateTime(Item.EffectedTIME);
  50. line.EffectedUSER = Item.EffectedUSER;
  51. line.MUSER = Item.MUSER;
  52. line.MUSERName = Item.MUSERName;
  53. line.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd hh:mm:ss");
  54. line.WorkPoint = AppConfig.WorkPointCode;
  55. line.EATTRIBUTE1 = null;
  56. if (isNew) db.ICSInvTransfer.InsertOnSubmit(line);
  57. db.SubmitChanges();
  58. db.Transaction.Commit();
  59. }
  60. }
  61. catch (Exception ex)
  62. {
  63. db.Transaction.Rollback();
  64. throw new Exception(ex.Message);
  65. }
  66. }
  67. #endregion
  68. #region 通过入库转移单id查询
  69. public static List<FormICSInvTransferUIModel> SearchInfoByID(string guid, string dsconn)
  70. {
  71. List<FormICSInvTransferUIModel> InvTransfer = new List<FormICSInvTransferUIModel>();
  72. string sql = @"select a.ID as ID,a.TransferNO as TransferNO,b.Serial as FRMStorageID,c.Serial as TOStorageID,b.StorageCode as FRMStorageCode,
  73. c.StorageCode as TOStorageCode,a.TransferSTATUS as TransferSTATUS,a.RECTYPE as RECTYPE,a.TIMETYPE as TIMETYPE,a.MEMO as MEMO,a.CreateTIME as CreateTIME,a.CreateUSER as CreateUSER,
  74. a.EffectedTIME as EffectedTIME,a.EffectedUSER as EffectedUSER,a.MUSERName as MUSERName,a.MTIME as MTIME
  75. from dbo.ICSInvTransfer a
  76. left join ICSStorage b on a.FRMStorageID=b.Serial
  77. left join ICSStorage c on a.TOStorageID=c.Serial
  78. where a.ID='{0}'";
  79. sql = string.Format(sql, guid);
  80. DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
  81. foreach (DataRow dr in dt.Rows)
  82. {
  83. FormICSInvTransferUIModel returnInfo = new FormICSInvTransferUIModel();
  84. returnInfo.ID = dr["ID"].ToString();
  85. returnInfo.TransferNO = dr["TransferNO"].ToString();
  86. returnInfo.storage1 = new FormICSStorageUIModel();
  87. returnInfo.storage1.Serial = dr["FRMStorageID"].ToString();
  88. returnInfo.storage1.StorageCode = dr["FRMStorageCode"].ToString();
  89. returnInfo.storage2 = new FormICSStorageUIModel();
  90. returnInfo.storage2.Serial = dr["TOStorageID"].ToString();
  91. returnInfo.storage2.StorageCode = dr["TOStorageCode"].ToString();
  92. returnInfo.RECTYPE = dr["RECTYPE"].ToString();
  93. returnInfo.TransferSTATUS = dr["TransferSTATUS"].ToString();
  94. returnInfo.TIMETYPE = dr["TIMETYPE"].ToString();
  95. returnInfo.MEMO = dr["MEMO"].ToString();
  96. returnInfo.CreateTIME = dr["CreateTIME"].ToString();
  97. returnInfo.CreateUSER = dr["CreateUSER"].ToString();
  98. returnInfo.EffectedTIME = dr["EffectedTIME"].ToString();
  99. returnInfo.EffectedUSER = dr["EffectedUSER"].ToString();
  100. returnInfo.MUSERName = dr["MUSERName"].ToString();
  101. returnInfo.MTIME = System.DateTime.Parse(dr["MTIME"].ToString());
  102. if (!InvTransfer.Contains(returnInfo))
  103. {
  104. InvTransfer.Add(returnInfo);
  105. }
  106. }
  107. return InvTransfer;
  108. }
  109. #endregion
  110. #region delete
  111. public static void delete(List<String> guidList,List<string> noList)
  112. {
  113. FramDataContext db = new FramDataContext(AppConfig.AppConnectString);
  114. db.Connection.Open();
  115. db.Transaction = db.Connection.BeginTransaction();
  116. try
  117. {
  118. var lines = db.ICSInvTransfer.Where(a => guidList.Contains(a.ID));
  119. var line = db.ICSInvTransferDetail.Where(a => noList.Contains(a.TransferNO));
  120. if (line.Count() != 0)
  121. {
  122. throw new Exception("该转移单已经生成转移单详细表,无法删除!");
  123. }
  124. db.ICSInvTransfer.DeleteAllOnSubmit(lines);
  125. db.SubmitChanges();
  126. db.Transaction.Commit();
  127. }
  128. catch (Exception ex)
  129. {
  130. db.Transaction.Rollback();
  131. throw ex;
  132. }
  133. }
  134. #endregion
  135. #region 根据转移源库别代码查找转移源库别代码id
  136. public static DataTable SelectFRMStorageId(string str, string wp)
  137. {
  138. string sql = @"select Serial
  139. from dbo.ICSStorage
  140. where StorageCode='" + str + "' and WorkPoint='" + wp + "'";
  141. sql = string.Format(sql);
  142. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  143. return dt;
  144. }
  145. #endregion
  146. #region 根据转移目标库别代码查找转移目标库别代码id
  147. public static DataTable TOStorageId(string str, string wp)
  148. {
  149. string sql = @"select Serial
  150. from dbo.ICSStorage
  151. where StorageCode='" + str + "'and WorkPoint='" + wp + "'";
  152. sql = string.Format(sql);
  153. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  154. return dt;
  155. }
  156. #endregion
  157. }
  158. }