纽威

4333 lines
261 KiB

3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
9 months ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
9 months ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
9 months ago
3 years ago
3 years ago
3 years ago
3 years ago
9 months ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
9 months ago
3 years ago
3 years ago
3 years ago
3 years ago
9 months ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
9 months ago
3 years ago
3 years ago
3 years ago
3 years ago
9 months ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
9 months ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
9 months ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
9 months ago
9 months ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
9 months ago
9 months ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
9 months ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
1 year ago
3 years ago
3 years ago
1 year ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
9 months ago
3 years ago
3 years ago
3 years ago
3 years ago
9 months ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
2 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
2 years ago
9 months ago
9 months ago
9 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
9 months ago
3 years ago
9 months ago
3 years ago
3 years ago
3 years ago
3 years ago
9 months ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
9 months ago
3 years ago
3 years ago
3 years ago
3 years ago
9 months ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
9 months ago
3 years ago
3 years ago
9 months ago
9 months ago
3 years ago
3 years ago
9 months ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
8 months ago
2 years ago
8 months ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
9 months ago
3 years ago
3 years ago
9 months ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
9 months ago
3 years ago
3 years ago
9 months ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
9 months ago
3 years ago
3 years ago
9 months ago
3 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
3 years ago
9 months ago
3 years ago
9 months ago
3 years ago
3 years ago
8 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
2 years ago
9 months ago
3 years ago
3 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
2 years ago
2 years ago
3 years ago
3 years ago
  1. using NFine.Data.Extensions;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Data;
  5. using NFine.Code;
  6. using NFine.Repository;
  7. using System.Data.Common;
  8. using NFine.Domain._03_Entity.SRM;
  9. using System.Configuration;
  10. using System.Text;
  11. using System.Net;
  12. using Newtonsoft.Json.Linq;
  13. using Newtonsoft.Json;
  14. using System.IO;
  15. using NFine.Domain._03_Entity.WMS;
  16. namespace NFine.Application.WMS
  17. {
  18. public class WMSCreateItemLotApp : RepositoryFactory<ICSVendor>
  19. {
  20. private static log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
  21. public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam)
  22. {
  23. DataTable dt = new DataTable();
  24. var queryParam = queryJson.ToJObject();
  25. List<DbParameter> parameter = new List<DbParameter>();
  26. object Figure = GetDecimalDigits();
  27. #region [SQL]
  28. string sql = @"select a.ID,a.ApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit, CAST(a.Quantity AS DECIMAL(18,{0})) as Quantity
  29. ,CAST(a.Amount AS DECIMAL(18,{0})) as Amount , CAST(a.IssueNegQuantity AS DECIMAL(18,{0})) as IssueNegQuantity ,a.ExtensionID,a.MUSERName,a.MTIME , CAST(c.LOTQTY AS DECIMAL(18,{0})) as LOTQTY
  30. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  31. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  32. from ICSMOApplyNegDetail a
  33. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  34. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  35. left join (
  36. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  37. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='1'
  38. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  39. )c
  40. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  41. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  42. where d.Type='1'";
  43. sql = string.Format(sql, Figure);
  44. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  45. #endregion
  46. if (!string.IsNullOrWhiteSpace(queryJson))
  47. {
  48. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  49. {
  50. sql += " and a.ApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  51. }
  52. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  53. {
  54. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  55. }
  56. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  57. {
  58. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  59. }
  60. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  61. {
  62. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  63. }
  64. }
  65. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  66. {
  67. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  68. }
  69. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  70. {
  71. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  72. }
  73. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  74. }
  75. public DataTable GetSubGridJson(string ApplyNegCode, string Sequence, string Type, ref Pagination jqgridparam)
  76. {
  77. DataTable dt = new DataTable();
  78. object Figure = GetDecimalDigits();
  79. List<DbParameter> parameter = new List<DbParameter>();
  80. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  81. string sql = @" select c.TransCode,c.TransSequence ,a.ID,a.LotNo, CAST( a.Quantity AS DECIMAL(18,{0})) as Quantity ,a.MUSERName,a.MTIME
  82. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  83. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,c.EATTRIBUTE1 AS LocationCode
  84. from ICSInventoryLot a
  85. left join (select count(LotNo) LotNoCount,LotNo,WorkPoint from ICSWareHouseLotInfo
  86. group by LotNo,WorkPoint)b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  87. left join ICSInventoryLotDetail c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  88. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  89. WHERE a.LotNo not like '%-%' and a.Type='" + Type + "' and c.TransCode='" + ApplyNegCode + "' and c.TransSequence='" + Sequence + "' and a.WorkPoint in ('" + WorkPoint + "')";
  90. sql = string.Format(sql, Figure);
  91. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  92. }
  93. /// <summary>
  94. /// 点击生成条码
  95. /// </summary>
  96. public DataTable GetSubGridJsonByCreate(string ApplyNegCode, string Sequence, string WorkPoint)
  97. {
  98. DataTable dt = new DataTable();
  99. object Figure = GetDecimalDigits();
  100. List<DbParameter> parameter = new List<DbParameter>();
  101. string sql = @" select a.InvCode,b.InvName,b.InvStd,b.InvUnit, CAST( a.Quantity AS DECIMAL(18,{0})) as Quantity, CAST( a.Amount as DECIMAL(18,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(18,{0})) as CreatedQty ,
  102. CAST( (a.Quantity-ISNULL(c.LOTQTY,0)) as DECIMAL(18,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,{0})) as EffectiveDays
  103. from ICSMOApplyNegDetail a
  104. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  105. left join (
  106. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  107. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo
  108. group by b.TransCode,b.TransSequence
  109. ) c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  110. WHERE 1 =1
  111. and a.ApplyNegCode='" + ApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  112. sql += " and a.WorkPoint='" + WorkPoint + "'";
  113. sql = string.Format(sql, Figure);
  114. return Repository().FindTableBySql(sql.ToString());
  115. }
  116. public DataTable GetVendorLotNo(string VenCode, string WorkPoint)
  117. {
  118. DataTable dt = new DataTable();
  119. //var queryParam = queryJson.ToJObject();
  120. List<DbParameter> parameter = new List<DbParameter>();
  121. string dtPre = DateTime.Now.ToString("yyyyMMdd");
  122. string sql = @"EXEC Addins_GetSerialCode '" + WorkPoint + "','ICSITEMLotNo','VendorLotNo','" + VenCode + dtPre + "',2";
  123. return Repository().FindTableBySql(sql.ToString());
  124. }
  125. /// <summary>
  126. /// 生产退料生成条码
  127. /// </summary>
  128. /// <param name="POCode"></param>
  129. /// <param name="PORow"></param>
  130. /// <param name="keyValue"></param>
  131. /// 已改
  132. /// <returns></returns>
  133. public int CreateItemLotNo(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  134. {
  135. var queryParam = keyValue.ToJObject();
  136. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  137. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  138. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  139. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  140. decimal LOTQTY = minPackQty;
  141. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  142. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  143. //string Pre = "MDN" + ApplyNegCode + Sequence;
  144. DateTime MTime = DateTime.Now;
  145. var dateString = MTime.ToString("yyMMdd").Substring(1);
  146. string Pre = "MDN" + ApplyNegCode + dateString;
  147. string sql = string.Empty;
  148. //string VendorLot = queryParam["VendorLot"].ToString();
  149. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  150. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  151. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  152. string Colspan = "";
  153. string sqls = string.Empty;
  154. for (int i = 0; i < createPageCount; i++)
  155. {
  156. if (i + 1 == createPageCount)
  157. {
  158. if (minPackQty * createPageCount > thisCreateQty)
  159. {
  160. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  161. }
  162. }
  163. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  164. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  165. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  166. if (ExtensionID == null)
  167. {
  168. ExtensionID = Guid.NewGuid();
  169. sql += string.Format(@"Insert into ICSExtension(ID, Colspan, ProjectCode, BatchCode, Version, Brand, cFree1, cFree2, cFree3, cFree4, cFree5, cFree6, cFree7, cFree8, cFree9, cFree10, MTIME, MUSER, MUSERName, WorkPoint)
  170. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  171. ExtensionID, Colspan, queryParam["ProjectCode"].ToString(), queryParam["BatchCode"].ToString(), queryParam["Version"].ToString(), queryParam["Brand"].ToString(), queryParam["cFree1"].ToString(), queryParam["cFree2"].ToString(), queryParam["cFree3"].ToString(), queryParam["cFree4"].ToString(), queryParam["cFree5"].ToString(), queryParam["cFree6"].ToString(), queryParam["cFree7"].ToString(), queryParam["cFree8"].ToString(), queryParam["cFree9"].ToString(), queryParam["cFree10"].ToString(),
  172. MUSER, MUSERNAME, WorkPoints);
  173. }
  174. //string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  175. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 2);
  176. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  177. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  178. LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  179. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  180. //{
  181. sql += string.Format(@"insert into ICSInventoryLot
  182. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  183. select
  184. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','1','{3}','{4}', getdate(),'{5}','{9}'
  185. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  186. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, ExtensionID, Convert.ToDecimal(Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString());
  187. sql += "\r\n";
  188. //}
  189. }
  190. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  191. return count;
  192. }
  193. public string GetSerialCode(string workPointCode, string tbName, string colName, string Pre, int numLen)
  194. {
  195. string sql = "EXEC Addins_GetSerialCode '{0}','{1}','{2}','{3}',{4}";
  196. sql = string.Format(sql, new object[] { workPointCode, tbName, colName, Pre, numLen });
  197. return DbHelper.ExecuteScalar(CommandType.Text, sql).ToString();
  198. }
  199. /// <summary>
  200. /// 删除条码
  201. /// </summary>
  202. /// <param name="keyValue"></param>
  203. /// <returns></returns>
  204. public string DeleteItemLot(string keyValue)
  205. {
  206. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  207. string msg = string.Empty;
  208. string sql = string.Format(@"SELECT * FROM dbo.ICSInspection
  209. WHERE LotNo IN (SELECT LotNO FROM dbo.ICSInventoryLot WHERE ID IN ({0})) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  210. DataTable dtASN = SqlHelper.GetDataTableBySql(sql);
  211. if (dtASN != null && dtASN.Rows.Count > 0)
  212. {
  213. msg = "所选条码已生成检验单,无法删除!";
  214. }
  215. sql = string.Format(@"SELECT * FROM dbo.ICSWareHouseLotInfo WHERE LotNO IN
  216. (SELECT LotNO FROM dbo.ICSInventoryLot WHERE ID IN ({0})) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  217. DataTable dtCarton = SqlHelper.GetDataTableBySql(sql);
  218. if (dtCarton != null && dtCarton.Rows.Count > 0)
  219. {
  220. msg += "所选条码已入库,无法删除!";
  221. }
  222. if (string.IsNullOrEmpty(msg))
  223. {
  224. string sqls = string.Format("DELETE FROM ICSInventoryLotDetail WHERE LotNO IN (select LotNO from ICSInventoryLot where ID in ({0}) ) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  225. sqls += string.Format("DELETE FROM dbo.ICSInventoryLot WHERE ID IN ({0}) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  226. SqlHelper.CmdExecuteNonQueryLi(sqls);
  227. }
  228. return msg;
  229. }
  230. public DataTable GetGridJsonWeiWai(string queryJson, ref Pagination jqgridparam)
  231. {
  232. DataTable dt = new DataTable();
  233. var queryParam = queryJson.ToJObject();
  234. List<DbParameter> parameter = new List<DbParameter>();
  235. object Figure = GetDecimalDigits();
  236. #region [SQL]
  237. string sql = @"select a.ID,a.OApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit, CAST(a.Quantity AS DECIMAL(18,{0})) as Quantity
  238. ,CAST(a.Amount AS DECIMAL(18,{0})) as Amount , CAST(a.IssueNegQuantity AS DECIMAL(18,{0})) as IssueNegQuantity,a.ExtensionID,a.MUSERName,a.MTIME ,
  239. CAST(c.LOTQTY AS DECIMAL(18,{0})) as LOTQTY
  240. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  241. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  242. from ICSOApplyNegDetail a
  243. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  244. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  245. left join (
  246. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  247. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='2'
  248. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  249. )c
  250. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  251. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  252. WHERE d.Type='1' ";
  253. sql = string.Format(sql, Figure);
  254. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  255. #endregion
  256. if (!string.IsNullOrWhiteSpace(queryJson))
  257. {
  258. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  259. {
  260. sql += " and a.OApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  261. }
  262. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  263. {
  264. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  265. }
  266. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  267. {
  268. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  269. }
  270. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  271. {
  272. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  273. }
  274. }
  275. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  276. {
  277. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  278. }
  279. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  280. {
  281. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  282. }
  283. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  284. }
  285. public DataTable GetSubGridJsonWeiWai(string OApplyNegCode, string Sequence, ref Pagination jqgridparam)
  286. {
  287. DataTable dt = new DataTable();
  288. object Figure = GetDecimalDigits();
  289. //var queryParam = queryJson.ToJObject();
  290. List<DbParameter> parameter = new List<DbParameter>();
  291. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  292. string sql = @" select c.TransCode,c.TransSequence ,a.ID,a.LotNo,CAST(a.Quantity AS DECIMAL(18,{0})) as Quantity from ICSInventoryLot a
  293. left join (select count(LotNo) LotNoCount,LotNo,WorkPoint from ICSWareHouseLotInfo
  294. group by LotNo,WorkPoint)b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  295. left join ICSInventoryLotDetail c on a.LotNo=c.LotNo
  296. WHERE c.TransCode='" + OApplyNegCode + "' and c.TransSequence='" + Sequence + "' and a.WorkPoint in (" + WorkPoint + ")";
  297. sql = string.Format(sql, Figure);
  298. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  299. }
  300. /// <summary>
  301. /// 点击委外退料生成条码
  302. /// </summary>
  303. public DataTable GetSubGridJsonWeiWaiByCreate(string OApplyNegCode, string Sequence, string WorkPoint)
  304. {
  305. DataTable dt = new DataTable();
  306. object Figure = GetDecimalDigits();
  307. List<DbParameter> parameter = new List<DbParameter>();
  308. string sql = @"select a.InvCode,b.InvName,b.InvStd,b.InvUnit, CAST( a.Quantity AS DECIMAL(18,{0})) as Quantity,CAST( a.Amount as DECIMAL(18,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(18,{0})) as CreatedQty,
  309. CAST( (a.Quantity-ISNULL(c.LOTQTY,0)) as DECIMAL(18,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,{0})) as EffectiveDays
  310. from ICSOApplyNegDetail a
  311. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  312. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  313. left join (
  314. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  315. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo
  316. group by b.TransCode,b.TransSequence
  317. ) c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  318. WHERE d.Type='1'
  319. and a.OApplyNegCode='" + OApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  320. sql += " and a.WorkPoint='" + WorkPoint + "'";
  321. sql = string.Format(sql, Figure);
  322. return Repository().FindTableBySql(sql.ToString());
  323. }
  324. /// <summary>
  325. /// 委外退料生成条码
  326. /// </summary>
  327. /// <param name="POCode"></param>
  328. /// <param name="PORow"></param>
  329. /// <param name="keyValue"></param>
  330. /// 已改
  331. /// <returns></returns>
  332. public int SubmitFormWeiWai(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  333. {
  334. var queryParam = keyValue.ToJObject();
  335. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  336. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  337. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  338. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  339. decimal LOTQTY = minPackQty;
  340. //string Pre = "OI" + OApplyNegCode + Sequence;
  341. DateTime MTime = DateTime.Now;
  342. var dateString = MTime.ToString("yyMMdd").Substring(1);
  343. string Pre = "OI" + OApplyNegCode + dateString;
  344. string sql = string.Empty;
  345. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  346. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  347. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  348. string sqls = string.Empty;
  349. string Colspan = "";
  350. for (int i = 0; i < createPageCount; i++)
  351. {
  352. if (i + 1 == createPageCount)
  353. {
  354. if (minPackQty * createPageCount > thisCreateQty)
  355. {
  356. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  357. }
  358. }
  359. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  360. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  361. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  362. if (ExtensionID == null)
  363. {
  364. ExtensionID = Guid.NewGuid();
  365. sql += string.Format(@"Insert into ICSExtension(ID, Colspan, ProjectCode, BatchCode, Version, Brand, cFree1, cFree2, cFree3, cFree4, cFree5, cFree6, cFree7, cFree8, cFree9, cFree10, MTIME, MUSER, MUSERName, WorkPoint)
  366. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  367. ExtensionID, Colspan, queryParam["ProjectCode"].ToString(), queryParam["BatchCode"].ToString(), queryParam["Version"].ToString(), queryParam["Brand"].ToString(), queryParam["cFree1"].ToString(), queryParam["cFree2"].ToString(), queryParam["cFree3"].ToString(), queryParam["cFree4"].ToString(), queryParam["cFree5"].ToString(), queryParam["cFree6"].ToString(), queryParam["cFree7"].ToString(), queryParam["cFree8"].ToString(), queryParam["cFree9"].ToString(), queryParam["cFree10"].ToString(),
  368. MUSER, MUSERNAME, WorkPoints);
  369. }
  370. //string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  371. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 2);
  372. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  373. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  374. LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  375. sql += string.Format(@"insert into ICSInventoryLot
  376. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  377. select
  378. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','2','{3}','{4}', getdate(),'{5}','{9}'
  379. from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  380. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, ExtensionID, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString());
  381. sql += "\r\n";
  382. }
  383. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  384. return count;
  385. }
  386. public DataTable GetGridJsonChengPing(string queryJson, ref Pagination jqgridparam)
  387. {
  388. DataTable dt = new DataTable();
  389. var queryParam = queryJson.ToJObject();
  390. List<DbParameter> parameter = new List<DbParameter>();
  391. object Figure = GetDecimalDigits();
  392. #region [SQL]
  393. string sql = @" select a.ID, a.MODetailID,a.MOCode,a.Sequence, CAST(a.RCVQuantity AS DECIMAL(18,{0})) as RCVQuantity ,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,CAST( a.Quantity AS DECIMAL(18,{0})) as Quantity,CAST( a.Amount as DECIMAL(18,{0})) as Amount,a.StartDate
  394. ,a.DueDate,a.MOStatus,a.ExtensionID,a.MUSERName,a.MTIME ,CAST(c.LOTQTY AS DECIMAL(18,{0})) as LOTQTY
  395. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  396. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  397. from ICSMO a
  398. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  399. left join (
  400. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  401. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='3'
  402. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  403. )c
  404. on a.MOCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  405. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint ";
  406. sql += " WHERE 1=1";
  407. sql = string.Format(sql, Figure);
  408. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  409. #endregion
  410. if (!string.IsNullOrWhiteSpace(queryJson))
  411. {
  412. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  413. {
  414. sql += " and a.MOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  415. }
  416. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  417. {
  418. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  419. }
  420. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  421. {
  422. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  423. }
  424. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  425. {
  426. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  427. }
  428. if (!string.IsNullOrWhiteSpace(queryParam["Container"].ToString()))
  429. {
  430. if (queryParam["Container"].ToString() == "1")
  431. {
  432. sql += " and a.RCVQuantity=a.Quantity ";
  433. }
  434. else
  435. {
  436. sql += " and (a.RCVQuantity<a.Quantity Or a.Quantity<=0) ";
  437. }
  438. }
  439. }
  440. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  441. {
  442. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  443. }
  444. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  445. {
  446. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  447. }
  448. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  449. }
  450. /// <summary>
  451. /// 点击成品生成条码(成品)
  452. /// </summary>
  453. public DataTable GetSubGridJsonChengPingByCreate(string MOCode, string Sequence, string WorkPoint)
  454. {
  455. DataTable dt = new DataTable();
  456. object Figure = GetDecimalDigits();
  457. List<DbParameter> parameter = new List<DbParameter>();
  458. string sql = @"select d.Enable, a.InvCode,b.InvName,b.InvStd,b.InvUnit, CAST( a.Quantity AS DECIMAL(18,{0})) as Quantity,CAST( a.Amount as DECIMAL(18,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(18,{0})) as CreatedQty,
  459. CAST( (a.Quantity-ISNULL(c.LOTQTY,0)) as DECIMAL(18,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,{0})) as EffectiveDays
  460. from ICSMO a
  461. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  462. left join (
  463. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  464. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo
  465. group by b.TransCode,b.TransSequence
  466. ) c on a.MOCode=c.TransCode and a.Sequence=c.TransSequence
  467. left join ICSConfiguration d on d.Code='CompleteVerification'
  468. WHERE 1 =1
  469. and a.MOCode='" + MOCode + "' and a.Sequence='" + Sequence + "'";
  470. sql += " and a.WorkPoint='" + WorkPoint + "'";
  471. sql = string.Format(sql, Figure);
  472. return Repository().FindTableBySql(sql.ToString());
  473. }
  474. /// <summary>
  475. /// 成品生成条码
  476. /// </summary>
  477. /// <param name="POCode"></param>
  478. /// <param name="PORow"></param>
  479. /// <param name="keyValue"></param>
  480. /// 已改
  481. /// <returns></returns>
  482. public int SubmitFormChengPing(string MOCode, string Sequence, string keyValue, string WorkPoint)
  483. {
  484. var queryParam = keyValue.ToJObject();
  485. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  486. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  487. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  488. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  489. decimal LOTQTY = minPackQty;
  490. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  491. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  492. //string Pre = "CP" + MOCode + Sequence;
  493. DateTime MTime = DateTime.Now;
  494. var dateString = MTime.ToString("yyMMdd").Substring(1);
  495. string Pre = "CP" + MOCode + dateString;
  496. string sql = string.Empty;
  497. //string VendorLot = queryParam["VendorLot"].ToString();
  498. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  499. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  500. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  501. string sqls = string.Empty;
  502. string Colspan = "";
  503. for (int i = 0; i < createPageCount; i++)
  504. {
  505. if (i + 1 == createPageCount)
  506. {
  507. if (minPackQty * createPageCount > thisCreateQty)
  508. {
  509. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  510. }
  511. }
  512. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  513. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  514. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  515. if (ExtensionID == null)
  516. {
  517. ExtensionID = Guid.NewGuid();
  518. sql += string.Format(@"Insert into ICSExtension(ID, Colspan, ProjectCode, BatchCode, Version, Brand, cFree1, cFree2, cFree3, cFree4, cFree5, cFree6, cFree7, cFree8, cFree9, cFree10, MTIME, MUSER, MUSERName, WorkPoint)
  519. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  520. ExtensionID, Colspan, queryParam["ProjectCode"].ToString(), queryParam["BatchCode"].ToString(), queryParam["Version"].ToString(), queryParam["Brand"].ToString(), queryParam["cFree1"].ToString(), queryParam["cFree2"].ToString(), queryParam["cFree3"].ToString(), queryParam["cFree4"].ToString(), queryParam["cFree5"].ToString(), queryParam["cFree6"].ToString(), queryParam["cFree7"].ToString(), queryParam["cFree8"].ToString(), queryParam["cFree9"].ToString(), queryParam["cFree10"].ToString(),
  521. MUSER, MUSERNAME, WorkPoints);
  522. }
  523. //string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  524. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 2);
  525. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  526. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  527. LotNo, MOCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  528. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  529. //{
  530. sql += string.Format(@"insert into ICSInventoryLot
  531. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  532. select
  533. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','3','{3}','{4}', getdate(),'{5}','{9}'
  534. from ICSMO where MOCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  535. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, MOCode, Sequence, ExtensionID, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString());
  536. sql += "\r\n";
  537. //}
  538. }
  539. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  540. return count;
  541. }
  542. /// <summary>
  543. /// 销售退货单
  544. /// </summary>
  545. /// <param name="queryJson"></param>
  546. /// <param name="jqgridparam"></param>
  547. /// <returns></returns>
  548. public DataTable GetGridJsonXiaoShou(string queryJson, ref Pagination jqgridparam)
  549. {
  550. DataTable dt = new DataTable();
  551. var queryParam = queryJson.ToJObject();
  552. List<DbParameter> parameter = new List<DbParameter>();
  553. object Figure = GetDecimalDigits();
  554. #region [SQL]
  555. string sql = @" select a.ID,a.SDNCode,a.Sequence,a.SOCode,a.SOSequence,a.CusCode,a.CusName,a.Type,a.ArriveDate,a.InvCode,a.WHCode,detail.LocationCode AS Area,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,CAST(a.Quantity AS DECIMAL(18,{0})) as Quantity
  556. ,cast(a.Amount as decimal(18,{0})) as Amount, CAST(a.SDNQuantity AS DECIMAL(18,{0})) as SDNQuantity ,a.Status,a.ExtensionID,a.CreatePerson,a.CreateDateTime ,CAST(c.LOTQTY AS DECIMAL(18,{0})) as LOTQTY
  557. ,a.WorkPoint,a.Points,a.DeliveryType,a.DeliveryDescribe,a.InvDescribe,a.OtherDescribe,a.SalesUnit,a.StockIndicator,a.IsSerialNumber
  558. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  559. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  560. from ICSSDN a
  561. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  562. LEFT JOIN ICSInventoryDetail detail on b.InvCode=detail.INVCode AND a.WHCode=detail.WHCode AND a.WorkPoint=detail.WorkPoint
  563. left join (
  564. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  565. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='4' AND ee.EATTRIBUTE1 is NULL
  566. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  567. )c
  568. on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  569. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  570. where a.Type='2'";
  571. sql = string.Format(sql, Figure);
  572. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  573. #endregion
  574. if (!string.IsNullOrWhiteSpace(queryJson))
  575. {
  576. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  577. {
  578. sql += " and a.SDNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  579. }
  580. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  581. {
  582. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  583. }
  584. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  585. {
  586. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  587. }
  588. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  589. {
  590. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  591. }
  592. if (!string.IsNullOrWhiteSpace(queryParam["Location"].ToString()))
  593. {
  594. sql += " and a.WHCode like '%" + queryParam["Location"].ToString() + "%' ";
  595. }
  596. if (!string.IsNullOrWhiteSpace(queryParam["Area"].ToString()))
  597. {
  598. sql += " and detail.LocationCode like '%" + queryParam["Area"].ToString() + "%' ";
  599. }
  600. if (!string.IsNullOrWhiteSpace(queryParam["Container"].ToString()))
  601. {
  602. if (queryParam["Container"].ToString() == "1")
  603. {
  604. sql += " and a.SDNQuantity=a.Quantity ";
  605. }
  606. else
  607. {
  608. sql += " and (a.SDNQuantity<a.Quantity Or a.Quantity<=0) ";
  609. }
  610. }
  611. }
  612. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  613. {
  614. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  615. }
  616. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  617. {
  618. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  619. }
  620. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  621. }
  622. /// <summary>
  623. /// 点击销售退货生成条码(销售退货)
  624. /// </summary>
  625. public DataTable GetSubGridJsonXiaoShouByCreate(string SDNCode, string Sequence, string WorkPoint)
  626. {
  627. DataTable dt = new DataTable();
  628. object Figure = GetDecimalDigits();
  629. List<DbParameter> parameter = new List<DbParameter>();
  630. string sql = @"select a.InvCode,b.InvName,b.InvStd,b.InvUnit, CAST( a.Quantity AS DECIMAL(18,{0})) as Quantity,CAST( a.Amount as DECIMAL(18,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(18,{0})) as CreatedQty,
  631. CAST( (a.Quantity-ISNULL(c.LOTQTY,0)) as DECIMAL(18,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,{0})) as EffectiveDays
  632. from ICSSDN a
  633. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  634. left join (
  635. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  636. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo where a.LotNo NOT LIKE'%-%'
  637. group by b.TransCode,b.TransSequence
  638. ) c on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence
  639. WHERE 1 =1
  640. and a.Type='2' and a.SDNCode='" + SDNCode + "' and a.Sequence='" + Sequence + "'";
  641. sql += " and a.WorkPoint='" + WorkPoint + "'";
  642. sql = string.Format(sql, Figure);
  643. return Repository().FindTableBySql(sql.ToString());
  644. }
  645. /// <summary>
  646. /// 销售退货生成条码
  647. /// </summary>
  648. /// <param name="POCode"></param>
  649. /// <param name="PORow"></param>
  650. /// <param name="keyValue"></param>
  651. /// 已改
  652. /// <returns></returns>
  653. public int SubmitFormXiaoShou(string SDNCode, string Sequence, string keyValue, string WorkPoint)
  654. {
  655. var queryParam = keyValue.ToJObject();
  656. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  657. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  658. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  659. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  660. decimal LOTQTY = minPackQty;
  661. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  662. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  663. //string Pre = "SR" + SDNCode + Sequence;
  664. DateTime MTime = DateTime.Now;
  665. var dateString = MTime.ToString("yyMMdd").Substring(1);
  666. string Pre = "SR" + SDNCode + dateString;
  667. string sql = string.Empty;
  668. //string VendorLot = queryParam["VendorLot"].ToString();
  669. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  670. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  671. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  672. string sqls = string.Empty;
  673. string Colspan = "";
  674. for (int i = 0; i < createPageCount; i++)
  675. {
  676. if (i + 1 == createPageCount)
  677. {
  678. if (minPackQty * createPageCount > thisCreateQty)
  679. {
  680. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  681. }
  682. }
  683. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  684. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  685. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  686. if (ExtensionID == null)
  687. {
  688. ExtensionID = Guid.NewGuid();
  689. sql += string.Format(@"Insert into ICSExtension(ID, Colspan, ProjectCode, BatchCode, Version, Brand, cFree1, cFree2, cFree3, cFree4, cFree5, cFree6, cFree7, cFree8, cFree9, cFree10, MTIME, MUSER, MUSERName, WorkPoint)
  690. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  691. ExtensionID, Colspan, queryParam["ProjectCode"].ToString(), queryParam["BatchCode"].ToString(), queryParam["Version"].ToString(), queryParam["Brand"].ToString(), queryParam["cFree1"].ToString(), queryParam["cFree2"].ToString(), queryParam["cFree3"].ToString(), queryParam["cFree4"].ToString(), queryParam["cFree5"].ToString(), queryParam["cFree6"].ToString(), queryParam["cFree7"].ToString(), queryParam["cFree8"].ToString(), queryParam["cFree9"].ToString(), queryParam["cFree10"].ToString(),
  692. MUSER, MUSERNAME, WorkPoints);
  693. }
  694. //string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  695. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 2);
  696. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  697. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}')",
  698. LotNo, SDNCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  699. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  700. //{
  701. sql += string.Format(@"
  702. insert into ICSInventoryLot
  703. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  704. select
  705. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','4','{3}','{4}', getdate(),'{5}','{9}'
  706. from ICSSDN where Type='2' and SDNCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  707. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, SDNCode, Sequence, ExtensionID, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString());
  708. sql += "\r\n";
  709. //}
  710. }
  711. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  712. return count;
  713. }
  714. public DataTable GetGridJsonQiTa(string queryJson, ref Pagination jqgridparam)
  715. {
  716. DataTable dt = new DataTable();
  717. var queryParam = queryJson.ToJObject();
  718. List<DbParameter> parameter = new List<DbParameter>();
  719. object Figure = GetDecimalDigits();
  720. #region [SQL]
  721. string sql = @" select a.ID,a.InCode,a.Sequence,a.WHCode,a.InvCode,a.WorkPoint,a.OrderType,
  722. a.TypeDescribe,a.CostCenter,a.Remarks,a.PersonNumber,a.InvDescribe,
  723. a.Unit,a.StockIndicator,detail.LocationCode AS Area, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
  724. CAST(a.Quantity AS DECIMAL(18,{0})) as Quantity,CAST(a.Amount AS DECIMAL(18,{0})) as Amount, CAST(a.InQuantity AS DECIMAL(18,{0})) as InQuantity,a.CreatePerson,a.CreateDateTime,CAST(c.LOTQTY AS DECIMAL(18,{0})) as LOTQTY
  725. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  726. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  727. from ICSOtherIn a
  728. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  729. LEFT JOIN ICSInventoryDetail detail on b.InvCode=detail.INVCode AND a.WHCode=detail.WHCode AND a.WorkPoint=detail.WorkPoint
  730. left join (
  731. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  732. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='5' AND ee.EATTRIBUTE1 is NULL
  733. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  734. )c
  735. on a.InCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  736. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  737. where a.Status='1'";
  738. sql = string.Format(sql, Figure);
  739. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  740. #endregion
  741. if (!string.IsNullOrWhiteSpace(queryJson))
  742. {
  743. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  744. {
  745. sql += " and a.InCode like '%" + queryParam["POCode"].ToString() + "%' ";
  746. }
  747. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  748. {
  749. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  750. }
  751. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  752. {
  753. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  754. }
  755. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  756. {
  757. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  758. }
  759. if (!string.IsNullOrWhiteSpace(queryParam["Location"].ToString()))
  760. {
  761. sql += " and a.WHCode like '%" + queryParam["Location"].ToString() + "%' ";
  762. }
  763. if (!string.IsNullOrWhiteSpace(queryParam["Area"].ToString()))
  764. {
  765. sql += " and detail.LocationCode like '%" + queryParam["Area"].ToString() + "%' ";
  766. }
  767. if (!string.IsNullOrWhiteSpace(queryParam["Container"].ToString()))
  768. {
  769. if (queryParam["Container"].ToString() == "1")
  770. {
  771. sql += " and a.InQuantity=a.Quantity ";
  772. }
  773. else
  774. {
  775. sql += " and (a.InQuantity<a.Quantity Or a.Quantity<=0) ";
  776. }
  777. }
  778. }
  779. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  780. {
  781. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  782. }
  783. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  784. {
  785. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  786. }
  787. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  788. }
  789. /// <summary>
  790. /// 点击销售退货生成条码(其他入库)
  791. /// </summary>
  792. public DataTable GetSubGridJsonQiTaByCreate(string InCode, string Sequence, string WorkPoint)
  793. {
  794. DataTable dt = new DataTable();
  795. object Figure = GetDecimalDigits();
  796. List<DbParameter> parameter = new List<DbParameter>();
  797. string sql = @"select a.InvCode,b.InvName,b.InvStd,b.InvUnit, CAST( a.Quantity AS DECIMAL(18,{0})) as Quantity,CAST( a.Amount as DECIMAL(18,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(18,{0})) as CreatedQty,
  798. CAST( (a.Quantity-ISNULL(c.LOTQTY,0)) as DECIMAL(18,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,{0})) as EffectiveDays
  799. from ICSOtherIn a
  800. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  801. left join (
  802. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  803. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo WHERE a.LotNo NOT LIKE'%-%'
  804. group by b.TransCode,b.TransSequence
  805. ) c on a.InCode=c.TransCode and a.Sequence=c.TransSequence
  806. WHERE 1 =1
  807. and a.InCode='" + InCode + "' and a.Sequence='" + Sequence + "'";
  808. sql += " and a.WorkPoint='" + WorkPoint + "'";
  809. sql = string.Format(sql, Figure);
  810. return Repository().FindTableBySql(sql.ToString());
  811. }
  812. /// <summary>
  813. /// 其他入库生成条码
  814. /// </summary>
  815. /// <param name="POCode"></param>
  816. /// <param name="PORow"></param>
  817. /// <param name="keyValue"></param>
  818. /// 已改
  819. /// <returns></returns>
  820. public int SubmitFormQiTa(string InCode, string Sequence, string keyValue, string WorkPoint)
  821. {
  822. var queryParam = keyValue.ToJObject();
  823. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  824. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  825. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  826. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  827. decimal LOTQTY = minPackQty;
  828. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  829. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  830. //string Pre = "QT" + InCode + Sequence;
  831. DateTime MTime = DateTime.Now;
  832. var dateString = MTime.ToString("yyMMdd").Substring(1);
  833. string Pre = "QT" + InCode + dateString;
  834. string sql = string.Empty;
  835. //string VendorLot = queryParam["VendorLot"].ToString();
  836. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  837. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  838. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  839. string sqls = string.Empty;
  840. string Colspan = "";
  841. for (int i = 0; i < createPageCount; i++)
  842. {
  843. if (i + 1 == createPageCount)
  844. {
  845. if (minPackQty * createPageCount > thisCreateQty)
  846. {
  847. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  848. }
  849. }
  850. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  851. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  852. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  853. if (ExtensionID == null)
  854. {
  855. ExtensionID = Guid.NewGuid();
  856. sql += string.Format(@"Insert into ICSExtension(ID, Colspan, ProjectCode, BatchCode, Version, Brand, cFree1, cFree2, cFree3, cFree4, cFree5, cFree6, cFree7, cFree8, cFree9, cFree10, MTIME, MUSER, MUSERName, WorkPoint)
  857. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  858. ExtensionID, Colspan, queryParam["ProjectCode"].ToString(), queryParam["BatchCode"].ToString(), queryParam["Version"].ToString(), queryParam["Brand"].ToString(), queryParam["cFree1"].ToString(), queryParam["cFree2"].ToString(), queryParam["cFree3"].ToString(), queryParam["cFree4"].ToString(), queryParam["cFree5"].ToString(), queryParam["cFree6"].ToString(), queryParam["cFree7"].ToString(), queryParam["cFree8"].ToString(), queryParam["cFree9"].ToString(), queryParam["cFree10"].ToString(),
  859. MUSER, MUSERNAME, WorkPoints);
  860. }
  861. //string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  862. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 2);
  863. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  864. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  865. LotNo, InCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  866. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  867. //{
  868. sql += string.Format(@"
  869. insert into ICSInventoryLot
  870. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  871. select
  872. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','5','{3}','{4}', getdate(),'{5}','{9}'
  873. from ICSOtherIn where InCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  874. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, InCode, Sequence, ExtensionID, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString());
  875. sql += "\r\n";
  876. //}
  877. }
  878. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  879. return count;
  880. }
  881. /// <summary>
  882. /// 其他入库批量生成条码
  883. /// </summary>
  884. /// <param name="ids">主键</param>
  885. /// <returns></returns>
  886. /// <exception cref="Exception"></exception>
  887. public int SubmitFormQiTaPL(string ids)
  888. {
  889. try
  890. {
  891. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  892. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  893. DateTime MTime = DateTime.Now;
  894. string sql = $@"SELECT * FROM ICSOtherIn a WHERE ID in({ids}) AND InCode NOT IN(SELECT TransCode From ICSInventoryLotDetail b where a.Sequence=b.TransSequence) ";
  895. var dataset = Repository().FindDataSetBySql(sql);
  896. if (dataset.Tables.Count <= 0)
  897. return 0;
  898. DataTable table = dataset.Tables[0];
  899. StringBuilder sqlString = new StringBuilder();
  900. var dateString = MTime.ToString("yyMMdd").Substring(1);
  901. for (int i = 0; i < table.Rows.Count; i++)
  902. {
  903. string dnCode = table.Rows[i]["InCode"].ToString();
  904. string invCode = table.Rows[i]["InvCode"].ToString();
  905. string workPoint = table.Rows[i]["WorkPoint"].ToString();
  906. string whCode = table.Rows[i]["WHCode"].ToString();
  907. string quantity = table.Rows[i]["Quantity"].ToString();
  908. string sequence = table.Rows[i]["Sequence"].ToString();
  909. string extensionID = table.Rows[i]["ExtensionID"].ToString();
  910. string amount = table.Rows[i]["Amount"].ToString();
  911. //string code = "QT" + invCode + sequence;
  912. string code = "QT" + invCode + dateString;
  913. //条码
  914. //string LotNo = GetSerialCode(workPoint, "ICSInventoryLot", "LotNO", code, 5);
  915. string LotNo = GetSerialCode(workPoint, "ICSInventoryLot", "LotNO", code, 2);
  916. //获取推荐库位
  917. var locstionsql = $@"DECLARE @locationCodeCurrent VARCHAR(50)
  918. SET @locationCodeCurrent=(SELECT
  919. top 1 a.LocationCode
  920. FROM
  921. ICSWareHouseLotInfo a
  922. WHERE
  923. a.WorkPoint= '{workPoint}'
  924. AND a.WarehouseCode= '{whCode}'
  925. AND a.InvCode= '{invCode}'
  926. AND a.Quantity>0
  927. ORDER BY InDate DESC)
  928. PRINT(@locationCodeCurrent)
  929. IF @locationCodeCurrent is NULL
  930. BEGIN set @locationCodeCurrent=(SELECT
  931. top 1 a.LocationCode
  932. FROM
  933. ICSWareHouseLotInfo a
  934. WHERE
  935. a.WorkPoint= '{workPoint}'
  936. AND a.WarehouseCode= '{whCode}'
  937. AND a.InvCode= '{invCode}'
  938. AND a.Quantity=0
  939. ORDER BY InDate DESC)
  940. END
  941. SELECT @locationCodeCurrent";
  942. object locationCode = SqlHelper.ExecuteScalar(locstionsql);
  943. sqlString.Append($@"IF EXISTS (SELECT LotNo FROM ICSInventoryLotDetail WHERE TransCode='{dnCode}' AND WorkPoint='{workPoint}')
  944. BEGIN
  945. RAISERROR('{dnCode}',16,1);
  946. RETURN
  947. END");
  948. sqlString.Append($@" Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,EATTRIBUTE1)
  949. Values('{LotNo}','{dnCode}','{sequence}','{MUSER}','{MUSERNAME}',getdate(),'{workPoint}','{locationCode}');");
  950. sqlString.Append($@" insert into ICSInventoryLot
  951. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  952. Values(
  953. newid(),'{LotNo}','{invCode}','{MTime}','2999-12-31','{quantity}','{extensionID}','5','{MUSER}','{MUSERNAME}', getdate(),'{workPoint}','{amount}');");
  954. }
  955. if (sqlString.IsEmpty())
  956. {
  957. return 0;
  958. }
  959. int count = SqlHelper.CmdExecuteNonQueryLi(sqlString.ToString());
  960. return count;
  961. }
  962. catch (Exception ex)
  963. {
  964. throw new Exception(ex.Message);
  965. }
  966. }
  967. //归还
  968. public DataTable GetGridJsonGuiHuan(string queryJson, ref Pagination jqgridparam)
  969. {
  970. DataTable dt = new DataTable();
  971. var queryParam = queryJson.ToJObject();
  972. List<DbParameter> parameter = new List<DbParameter>();
  973. object Figure = GetDecimalDigits();
  974. #region [SQL]
  975. string sql = @"select a.ID,a.ReturnCode,a.Sequence,a.WHCode,a.InvCode, detail.LocationCode AS Area, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,CAST(a.Quantity AS DECIMAL(18,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(18,{0})) as Amount, CAST(a.ReturnQuantity AS DECIMAL(18,{0})) as ReturnQuantity,a.CreatePerson,a.CreateDateTime,CAST(c.LOTQTY AS DECIMAL(18,{0})) as LOTQTY
  976. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  977. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10 from ICSReturn a
  978. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  979. LEFT JOIN ICSInventoryDetail detail on b.InvCode=detail.INVCode AND a.WHCode=detail.WHCode AND a.WorkPoint=detail.WorkPoint
  980. left join (
  981. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  982. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='6'
  983. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  984. ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  985. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  986. where a.Status='2'";
  987. sql = string.Format(sql, Figure);
  988. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  989. #endregion
  990. if (!string.IsNullOrWhiteSpace(queryJson))
  991. {
  992. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  993. {
  994. sql += " and a.ReturnCode like '%" + queryParam["POCode"].ToString() + "%' ";
  995. }
  996. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  997. {
  998. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  999. }
  1000. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  1001. {
  1002. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  1003. }
  1004. if (!string.IsNullOrWhiteSpace(queryParam["Area"].ToString()))
  1005. {
  1006. sql += " and detail.LocationCode like '%" + queryParam["Area"].ToString() + "%' ";
  1007. }
  1008. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  1009. {
  1010. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  1011. }
  1012. }
  1013. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1014. {
  1015. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1016. }
  1017. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  1018. {
  1019. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  1020. }
  1021. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1022. }
  1023. //获取工序外协检验合格单
  1024. public DataTable GetGridJsonGXWX(string queryJson, ref Pagination jqgridparam)
  1025. {
  1026. DataTable dt = new DataTable();
  1027. var queryParam = queryJson.ToJObject();
  1028. List<DbParameter> parameter = new List<DbParameter>();
  1029. object Figure = GetDecimalDigits();
  1030. #region [SQL]
  1031. string sql = @" select a.ID, '' as 'POCode',
  1032. '' as POSequence,a.ModificationDate,a.TrackingNumber,a.NonconformingForm,a.POID,
  1033. a.DNCode,a.Sequence,a.VenCode,a.DepCode AS VenName,a.WHCode,a.InvCode,a.DNID,a.DNDetailID,a.WorkPoint,a.InspectionType,a.InvoDescribe,a.Unity,a.StockIndicator, b.InvName,b.InvStd,b.InvDesc,b.InvUnit, b.DrawingNo,
  1034. b.Version AS Version1, detail.LocationCode AS Area,
  1035. CAST(a.Quantity AS DECIMAL(18,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(18,{0})) as Amount
  1036. ,CASE When ISNULL(a.RCVQuantity,0)!=ISNULL(a.Quantity,0) Then '否' ELSE '是' END AS SAPMark,CAST(a.UnitPrice AS DECIMAL(18,{0})) as UnitPrice,a.Currency,a.CreatePerson,a.CreateDateTime,CAST(c.LOTQTY AS DECIMAL(18,{0})) as LOTQTY
  1037. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1038. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  1039. ,Case When a.WHCode+';'+detail.LocationCode in (select F_Define1+';'+F_Define2 from Sys_SRM_ItemsDetail where F_Define3='HGAreaConfig')
  1040. THEN '' ELSE '' END AS AreaType
  1041. from ICSDeliveryNotice a
  1042. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1043. LEFT JOIN ICSInventoryDetail detail on b.InvCode=detail.INVCode AND a.WHCode=detail.WHCode AND a.WorkPoint=detail.WorkPoint
  1044. left join (
  1045. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  1046. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='7' and ee.EATTRIBUTE1 is null
  1047. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  1048. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  1049. -- inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  1050. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  1051. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1052. where a.DNType='1' and a.Status='2' and a.ASNCode is null AND ISNULL(a.EATTRIBUTE2,'')='F' ";
  1053. sql = string.Format(sql, Figure);
  1054. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  1055. #endregion
  1056. if (!string.IsNullOrWhiteSpace(queryJson))
  1057. {
  1058. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1059. {
  1060. sql += " and a.DNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1061. }
  1062. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  1063. {
  1064. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  1065. }
  1066. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  1067. {
  1068. sql += " and a.DepCode like '%" + queryParam["VenName"].ToString() + "%' ";
  1069. }
  1070. if (!string.IsNullOrWhiteSpace(queryParam["Area"].ToString()))
  1071. {
  1072. sql += " and detail.LocationCode like '%" + queryParam["Area"].ToString() + "%' ";
  1073. }
  1074. if (!string.IsNullOrWhiteSpace(queryParam["Location"].ToString()))
  1075. {
  1076. sql += " and a.WHCode like '%" + queryParam["Location"].ToString() + "%' ";
  1077. }
  1078. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1079. {
  1080. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1081. }
  1082. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  1083. {
  1084. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  1085. }
  1086. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  1087. {
  1088. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  1089. }
  1090. }
  1091. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1092. {
  1093. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1094. }
  1095. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  1096. {
  1097. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  1098. }
  1099. if (!string.IsNullOrWhiteSpace(queryParam["SAPMark"].ToString()))
  1100. {
  1101. sql = $@"select * from ({sql}) c where c.SAPMark='{queryParam["SAPMark"]}' ";
  1102. }
  1103. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1104. }
  1105. //审核到货单(采购订单需与审核到货单一起同步)
  1106. public DataTable GetGridJsonSHDH(string queryJson, ref Pagination jqgridparam)
  1107. {
  1108. DataTable dt = new DataTable();
  1109. var queryParam = queryJson.ToJObject();
  1110. List<DbParameter> parameter = new List<DbParameter>();
  1111. object Figure = GetDecimalDigits();
  1112. #region [SQL]
  1113. string sql = @"select a.ID, '' as 'POCode',-- d.POCode,d.Sequence as POSequence,
  1114. '' as POSequence,a.ModificationDate,a.TrackingNumber,a.NonconformingForm,a.POID,
  1115. a.DNCode,a.Sequence,a.VenCode,a.DepCode AS VenName,a.WHCode,a.InvCode,a.DNID,a.DNDetailID,a.WorkPoint,a.InspectionType,a.InvoDescribe,a.Unity,a.StockIndicator, b.InvName,b.InvStd,b.InvDesc,b.InvUnit, b.DrawingNo,
  1116. b.Version AS Version1, detail.LocationCode AS Area,a.EATTRIBUTE3,
  1117. CAST(a.Quantity AS DECIMAL(18,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(18,{0})) as Amount,CAST(a.RCVQuantity AS DECIMAL(18,{0})) as RCVQuantity,CAST(a.UnitPrice AS DECIMAL(18,{0})) as UnitPrice,a.Currency,a.CreatePerson,a.CreateDateTime,CAST(c.LOTQTY AS DECIMAL(18,{0})) as LOTQTY
  1118. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1119. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  1120. ,Case When a.WHCode+';'+detail.LocationCode in (select F_Define1+';'+F_Define2 from Sys_SRM_ItemsDetail where F_Define3='HGAreaConfig')
  1121. THEN '' ELSE '' END AS AreaType
  1122. from ICSDeliveryNotice a
  1123. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1124. LEFT JOIN ICSInventoryDetail detail on b.InvCode=detail.INVCode AND a.WHCode=detail.WHCode AND a.WorkPoint=detail.WorkPoint
  1125. left join (
  1126. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  1127. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='7' and ee.EATTRIBUTE1 is null
  1128. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  1129. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  1130. -- inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  1131. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  1132. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1133. where a.DNType='1' and a.Status='2' and a.ASNCode is null AND ISNULL(a.EATTRIBUTE2,'')!='F'
  1134. ";
  1135. sql = string.Format(sql, Figure);
  1136. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  1137. #endregion
  1138. if (!string.IsNullOrWhiteSpace(queryJson))
  1139. {
  1140. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1141. {
  1142. sql += " and a.DNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1143. }
  1144. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  1145. {
  1146. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  1147. }
  1148. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  1149. {
  1150. sql += " and a.DepCode like '%" + queryParam["VenName"].ToString() + "%' ";
  1151. }
  1152. if (!string.IsNullOrWhiteSpace(queryParam["Area"].ToString()))
  1153. {
  1154. sql += " and detail.LocationCode like '%" + queryParam["Area"].ToString() + "%' ";
  1155. }
  1156. if (!string.IsNullOrWhiteSpace(queryParam["Location"].ToString()))
  1157. {
  1158. sql += " and a.WHCode like '%" + queryParam["Location"].ToString() + "%' ";
  1159. }
  1160. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1161. {
  1162. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1163. }
  1164. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  1165. {
  1166. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  1167. }
  1168. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  1169. {
  1170. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  1171. }
  1172. if (!string.IsNullOrWhiteSpace(queryParam["Container"].ToString()))
  1173. {
  1174. if (queryParam["Container"].ToString() == "1")
  1175. {
  1176. sql += " and a.RCVQuantity=a.Quantity and a.Quantity!=0 ";
  1177. }
  1178. else
  1179. {
  1180. sql += " and (a.RCVQuantity<a.Quantity Or a.Quantity<=0) ";
  1181. }
  1182. }
  1183. if (!string.IsNullOrWhiteSpace(queryParam["DNID"].ToString()))
  1184. {
  1185. sql += " and a.DNID like '%" + queryParam["DNID"].ToString() + "%' ";
  1186. }
  1187. }
  1188. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1189. {
  1190. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1191. }
  1192. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  1193. {
  1194. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  1195. }
  1196. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1197. }
  1198. //审核委外到货单
  1199. public DataTable GetGridJsonWWSHDH(string queryJson, ref Pagination jqgridparam)
  1200. {
  1201. DataTable dt = new DataTable();
  1202. var queryParam = queryJson.ToJObject();
  1203. List<DbParameter> parameter = new List<DbParameter>();
  1204. object Figure = GetDecimalDigits();
  1205. #region [SQL]
  1206. string sql = @"select a.ID, d.OOCode,d.Sequence as OOSequence,a.ODNCode,a.Sequence,a.VenCode,e.VenName,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,detail.LocationCode AS Area,CAST(a.Quantity AS DECIMAL(18,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(18,{0})) as Amount,CAST(a.RCVQuantity AS DECIMAL(18,{0})) as RCVQuantity,CAST(a.UnitPrice AS DECIMAL(18,{0})) as UnitPrice,a.Currency,a.CreatePerson,a.CreateDateTime,
  1207. CAST(c.LOTQTY AS DECIMAL(18,{0})) as LOTQTY
  1208. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1209. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  1210. from ICSODeliveryNotice a
  1211. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1212. LEFT JOIN ICSInventoryDetail detail on b.InvCode=detail.INVCode AND a.WHCode=detail.WHCode AND a.WorkPoint=detail.WorkPoint
  1213. left join (
  1214. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  1215. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='8'
  1216. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  1217. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  1218. inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  1219. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  1220. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1221. where a.ODNType='1' and a.Status='2' and a.OASNCode is null";
  1222. sql = string.Format(sql, Figure);
  1223. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  1224. #endregion
  1225. if (!string.IsNullOrWhiteSpace(queryJson))
  1226. {
  1227. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1228. {
  1229. sql += " and a.ODNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1230. }
  1231. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  1232. {
  1233. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  1234. }
  1235. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  1236. {
  1237. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  1238. }
  1239. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1240. {
  1241. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1242. }
  1243. if (!string.IsNullOrWhiteSpace(queryParam["Area"].ToString()))
  1244. {
  1245. sql += " and detail.LocationCode like '%" + queryParam["Area"].ToString() + "%' ";
  1246. }
  1247. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  1248. {
  1249. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  1250. }
  1251. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  1252. {
  1253. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  1254. }
  1255. }
  1256. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1257. {
  1258. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1259. }
  1260. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  1261. {
  1262. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  1263. }
  1264. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1265. }
  1266. //开立得成品入库单
  1267. public DataTable GetGridJsonKLCPRK(string queryJson, ref Pagination jqgridparam)
  1268. {
  1269. DataTable dt = new DataTable();
  1270. var queryParam = queryJson.ToJObject();
  1271. List<DbParameter> parameter = new List<DbParameter>();
  1272. object Figure = GetDecimalDigits();
  1273. #region [SQL]
  1274. string sql = @"
  1275. select a.ID,a.RCVCode,a.Sequence,a.WHCode,a.InvCode,a.EATTRIBUTE,a.WorkPoint,a.InvDescribe,a.OrderNumber,a.Desks,a.DispatcherName,
  1276. a.OrderInvCode,a.OrderInvDescribe,a.BillType,a.Remarks,a.Unit,
  1277. a.StockIndicator,a.RemarksTerm,detail.LocationCode AS Area, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,CAST(a.Quantity AS DECIMAL(18,{0})) as Quantity ,
  1278. CAST(a.Amount AS DECIMAL(18,{0})) as Amount,CAST(a.RCVQuantity AS DECIMAL(18,{0})) as RCVQuantity ,a.CreatePerson,a.CreateDateTime,CAST(c.LOTQTY AS DECIMAL(18,{0})) as LOTQTY
  1279. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1280. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  1281. ,Case When a.WHCode+';'+detail.LocationCode in (select F_Define1+';'+F_Define2 from Sys_SRM_ItemsDetail where F_Define3='HGAreaConfig')
  1282. THEN '' ELSE '' END AS AreaType
  1283. from ICSManufactureReceive a
  1284. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1285. LEFT JOIN ICSInventoryDetail detail on b.InvCode=detail.INVCode AND a.WHCode=detail.WHCode AND a.WorkPoint=detail.WorkPoint
  1286. left join (
  1287. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  1288. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='9' AND ee.EATTRIBUTE1 is NULL
  1289. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  1290. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  1291. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1292. where a.Status='1' and a.Type='1'";
  1293. sql = string.Format(sql, Figure);
  1294. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  1295. #endregion
  1296. if (!string.IsNullOrWhiteSpace(queryJson))
  1297. {
  1298. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1299. {
  1300. sql += " and a.RCVCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1301. }
  1302. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1303. {
  1304. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1305. }
  1306. if (!string.IsNullOrWhiteSpace(queryParam["OrderNumber"].ToString()))
  1307. {
  1308. sql += " and a.OrderNumber like '%" + queryParam["OrderNumber"].ToString() + "%' ";
  1309. }
  1310. if (!string.IsNullOrWhiteSpace(queryParam["Area"].ToString()))
  1311. {
  1312. sql += " and detail.LocationCode like '%" + queryParam["Area"].ToString() + "%' ";
  1313. }
  1314. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  1315. {
  1316. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  1317. }
  1318. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  1319. {
  1320. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  1321. }
  1322. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  1323. {
  1324. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  1325. }
  1326. if (!string.IsNullOrWhiteSpace(queryParam["Container"].ToString()))
  1327. {
  1328. if (queryParam["Container"].ToString() == "1")
  1329. {
  1330. sql += " and a.RCVQuantity=a.Quantity ";
  1331. }
  1332. else
  1333. {
  1334. sql += " and (a.RCVQuantity<a.Quantity Or a.Quantity<=0) ";
  1335. }
  1336. }
  1337. }
  1338. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1339. {
  1340. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1341. }
  1342. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  1343. {
  1344. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  1345. }
  1346. if (!string.IsNullOrWhiteSpace(queryParam["ProjectCode"].ToString()))
  1347. {
  1348. sql += " and f.ProjectCode like '%" + queryParam["ProjectCode"].ToString() + "%' ";
  1349. }
  1350. if (!string.IsNullOrWhiteSpace(queryParam["Brand"].ToString()))
  1351. {
  1352. sql += " and f.Brand like '%" + queryParam["Brand"].ToString() + "%' ";
  1353. }
  1354. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1355. }
  1356. /// <summary>
  1357. /// 点击审核委外到货单生成条码(审核委外到货单)
  1358. /// </summary>
  1359. public DataTable GetSubGridJsonWWSHDHByCreate(string ODNCode, string Sequence, string WorkPoint)
  1360. {
  1361. DataTable dt = new DataTable();
  1362. object Figure = GetDecimalDigits();
  1363. List<DbParameter> parameter = new List<DbParameter>();
  1364. string sql = @"select a.InvCode,b.InvName,b.InvStd,b.InvUnit, CAST( a.Quantity AS DECIMAL(18,{0})) as Quantity,CAST( a.Amount as DECIMAL(18,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(18,{0})) as CreatedQty,
  1365. CAST( (a.Quantity-ISNULL(c.LOTQTY,0)) as DECIMAL(18,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,{0})) as EffectiveDays
  1366. from ICSODeliveryNotice a
  1367. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1368. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  1369. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo
  1370. group by b.TransCode,b.TransSequence
  1371. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence
  1372. WHERE 1 =1
  1373. and a.ODNCode='" + ODNCode + "' and a.Sequence='" + Sequence + "'";
  1374. sql += " and a.WorkPoint='" + WorkPoint + "'";
  1375. sql = string.Format(sql, Figure);
  1376. return Repository().FindTableBySql(sql.ToString());
  1377. }
  1378. /// <summary>
  1379. /// 点击开立成品入库生成条码(开立成品入库单)
  1380. /// </summary>
  1381. /// //--
  1382. public DataTable GetSubGridJsonKLCPRKByCreate(string RCVCode, string Sequence, string WorkPoint)
  1383. {
  1384. DataTable dt = new DataTable();
  1385. object Figure = GetDecimalDigits();
  1386. List<DbParameter> parameter = new List<DbParameter>();
  1387. string sql = @"
  1388. select a.InvCode,b.InvName,b.InvStd,b.InvUnit, CAST( a.Quantity AS DECIMAL(18,{0})) as Quantity,CAST( a.Amount as DECIMAL(18,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(18,{0})) as CreatedQty,
  1389. CAST( (a.Quantity-ISNULL(c.LOTQTY,0)) as DECIMAL(18,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,{0})) as EffectiveDays ,e.BatchCode,e.Brand,e.ProjectCode
  1390. from ICSManufactureReceive a
  1391. left join ICSExtension e ON e.ID=a.ExtensionID
  1392. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1393. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  1394. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo WHERE a.LotNo NOT LIKE'%-%'
  1395. group by b.TransCode,b.TransSequence
  1396. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence
  1397. WHERE 1 =1
  1398. and a.RCVCode='" + RCVCode + "' and a.Sequence='" + Sequence + "'";
  1399. sql += " and a.WorkPoint='" + WorkPoint + "'";
  1400. sql = string.Format(sql, Figure);
  1401. return Repository().FindTableBySql(sql.ToString());
  1402. }
  1403. /// <summary>
  1404. /// 点击审核到货单生成条码(审核到货单)
  1405. /// </summary>
  1406. public DataTable GetSubGridJsonSHDHByCreate(string DNCode, string Sequence, string WorkPoint)
  1407. {
  1408. DataTable dt = new DataTable();
  1409. object Figure = GetDecimalDigits();
  1410. List<DbParameter> parameter = new List<DbParameter>();
  1411. string sql = @"select a.InvCode,b.InvName,b.InvStd,b.InvUnit, CAST( a.Quantity AS DECIMAL(18,{0})) as Quantity,CAST( a.Amount as DECIMAL(18,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(18,{0})) as CreatedQty,
  1412. CAST( (a.Quantity-ISNULL(c.LOTQTY,0)) as DECIMAL(18,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,{0})) as EffectiveDays ,e.BatchCode,e.Brand,e.ProjectCode
  1413. from ICSDeliveryNotice a
  1414. left join ICSExtension e ON e.ID=a.ExtensionID
  1415. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1416. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  1417. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo where a.LotNo NOT LIKE'%-%'
  1418. group by b.TransCode,b.TransSequence
  1419. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence
  1420. WHERE 1 =1
  1421. and a.DNCode='" + DNCode + "' and a.Sequence='" + Sequence + "'";
  1422. sql += " and a.WorkPoint='" + WorkPoint + "'";
  1423. sql = string.Format(sql, Figure);
  1424. return Repository().FindTableBySql(sql.ToString());
  1425. }
  1426. /// <summary>
  1427. /// 点击归还生成条码(归还)
  1428. /// </summary>
  1429. public DataTable GetSubGridJsonGuiHuanByCreate(string ReturnCode, string Sequence, string WorkPoint)
  1430. {
  1431. DataTable dt = new DataTable();
  1432. object Figure = GetDecimalDigits();
  1433. List<DbParameter> parameter = new List<DbParameter>();
  1434. string sql = @"select a.InvCode,b.InvName,b.InvStd,b.InvUnit, CAST( a.Quantity AS DECIMAL(18,{0})) as Quantity,CAST( a.Amount as DECIMAL(18,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(18,{0})) as CreatedQty,
  1435. CAST( (a.Quantity-ISNULL(c.LOTQTY,0)) as DECIMAL(18,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,{0})) as EffectiveDays
  1436. from ICSReturn a
  1437. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1438. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  1439. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo
  1440. group by b.TransCode,b.TransSequence
  1441. ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence
  1442. WHERE 1 =1
  1443. and a.ReturnCode='" + ReturnCode + "' and a.Sequence='" + Sequence + "'";
  1444. sql += " and a.WorkPoint='" + WorkPoint + "'";
  1445. sql = string.Format(sql, Figure);
  1446. return Repository().FindTableBySql(sql.ToString());
  1447. }
  1448. /// <summary>
  1449. /// 归还单生成条码
  1450. /// </summary>
  1451. /// <param name="POCode"></param>
  1452. /// <param name="PORow"></param>
  1453. /// <param name="keyValue"></param>
  1454. /// 已改
  1455. /// <returns></returns>
  1456. public int SubmitFormGuiHuan(string ReturnCode, string Sequence, string keyValue, string WorkPoint)
  1457. {
  1458. var queryParam = keyValue.ToJObject();
  1459. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1460. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1461. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1462. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1463. decimal LOTQTY = minPackQty;
  1464. //string Pre = "GH" + ReturnCode + Sequence;
  1465. DateTime MTime = DateTime.Now;
  1466. var dateString = MTime.ToString("yyMMdd").Substring(1);
  1467. string Pre = "GH" + ReturnCode + dateString;
  1468. string sql = string.Empty;
  1469. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1470. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1471. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1472. string sqls = string.Empty;
  1473. string Colspan = "";
  1474. for (int i = 0; i < createPageCount; i++)
  1475. {
  1476. if (i + 1 == createPageCount)
  1477. {
  1478. if (minPackQty * createPageCount > thisCreateQty)
  1479. {
  1480. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1481. }
  1482. }
  1483. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  1484. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  1485. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1486. if (ExtensionID == null)
  1487. {
  1488. ExtensionID = Guid.NewGuid();
  1489. sql += string.Format(@"Insert into ICSExtension(ID, Colspan, ProjectCode, BatchCode, Version, Brand, cFree1, cFree2, cFree3, cFree4, cFree5, cFree6, cFree7, cFree8, cFree9, cFree10, MTIME, MUSER, MUSERName, WorkPoint)
  1490. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1491. ExtensionID, Colspan, queryParam["ProjectCode"].ToString(), queryParam["BatchCode"].ToString(), queryParam["Version"].ToString(), queryParam["Brand"].ToString(), queryParam["cFree1"].ToString(), queryParam["cFree2"].ToString(), queryParam["cFree3"].ToString(), queryParam["cFree4"].ToString(), queryParam["cFree5"].ToString(), queryParam["cFree6"].ToString(), queryParam["cFree7"].ToString(), queryParam["cFree8"].ToString(), queryParam["cFree9"].ToString(), queryParam["cFree10"].ToString(),
  1492. MUSER, MUSERNAME, WorkPoints);
  1493. }
  1494. //string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  1495. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 2);
  1496. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  1497. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  1498. LotNo, ReturnCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  1499. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  1500. //{
  1501. sql += string.Format(@"
  1502. insert into ICSInventoryLot
  1503. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  1504. select
  1505. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','6','{3}','{4}', getdate(),'{5}','{9}'
  1506. from ICSReturn where ReturnCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  1507. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ReturnCode, Sequence, ExtensionID, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString());
  1508. sql += "\r\n";
  1509. //}
  1510. }
  1511. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1512. return count;
  1513. }
  1514. /// <summary>
  1515. /// 审核到货单生成条码
  1516. /// </summary>
  1517. /// <param name="POCode"></param>
  1518. /// <param name="PORow"></param>
  1519. /// <param name="keyValue"></param>
  1520. /// 已改
  1521. /// <returns></returns>
  1522. public int SubmitFormSHDH(string DNCode, string Sequence, string INVCode, string keyValue, string WorkPoint)
  1523. {
  1524. try
  1525. {
  1526. //string postUrlStr = System.Configuration.ConfigurationManager.AppSettings["HGDocpostUrlStr"].ToString();
  1527. var queryParam = keyValue.ToJObject();
  1528. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1529. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1530. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1531. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1532. decimal LOTQTY = minPackQty;
  1533. var dateString = DateTime.Now.ToString("yyMMdd").Substring(1);
  1534. string Pre = "DN" + DNCode + dateString;
  1535. string sql = string.Empty;
  1536. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1537. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1538. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1539. string sqls = string.Empty;
  1540. string Colspan = "";
  1541. //string InspectJosn = "";
  1542. //InspectJosn += "{";
  1543. //InspectJosn += "\"IMP_ORDINI\":[";
  1544. //InspectJosn += "{";
  1545. //InspectJosn += "\"ORD_ORDINE\":\"" + DNCode + "\",";
  1546. //InspectJosn += "货柜区域预留";
  1547. //InspectJosn += "\"ORD_DES\":\"采购入库-采购到货单\",";
  1548. //InspectJosn += "\"ORD_TIPOOP\":\"V\",";
  1549. //InspectJosn += "\"ORD_CLIENTE\":\"" + WorkPoint + "\"";
  1550. //InspectJosn += "}";
  1551. //InspectJosn += "],";
  1552. //InspectJosn += "\"IMP_ORDINI_RIGHE\":[";
  1553. for (int i = 0; i < createPageCount; i++)
  1554. {
  1555. if (i + 1 == createPageCount)
  1556. {
  1557. if (minPackQty * createPageCount > thisCreateQty)
  1558. {
  1559. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1560. }
  1561. }
  1562. //Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  1563. //sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  1564. //object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1565. sqls = $@"SELECT TOP 1 ExtensionID FROM ICSDeliveryNotice WHERE DNCode='{DNCode}'";
  1566. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1567. if (ExtensionID == null)
  1568. {
  1569. ExtensionID = Guid.NewGuid();
  1570. sql += string.Format(@"Insert into ICSExtension(ID, Colspan, ProjectCode, BatchCode, Version, Brand, cFree1, cFree2, cFree3, cFree4, cFree5, cFree6, cFree7, cFree8, cFree9, cFree10, MTIME, MUSER, MUSERName, WorkPoint)
  1571. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1572. ExtensionID, Colspan, queryParam["ProjectCode"].ToString(), queryParam["BatchCode"].ToString(), queryParam["Version"].ToString(), queryParam["Brand"].ToString(), queryParam["cFree1"].ToString(), queryParam["cFree2"].ToString(), queryParam["cFree3"].ToString(), queryParam["cFree4"].ToString(), queryParam["cFree5"].ToString(), queryParam["cFree6"].ToString(), queryParam["cFree7"].ToString(), queryParam["cFree8"].ToString(), queryParam["cFree9"].ToString(), queryParam["cFree10"].ToString(),
  1573. MUSER, MUSERNAME, WorkPoints);
  1574. }
  1575. //获取推荐库位
  1576. var locstionsql = $@"DECLARE @locationCodeCurrent VARCHAR(50)
  1577. SET @locationCodeCurrent=(SELECT
  1578. top 1 a.LocationCode
  1579. FROM
  1580. ICSWareHouseLotInfo a
  1581. WHERE
  1582. a.WorkPoint= '{WorkPoints}'
  1583. AND a.WarehouseCode= (SELECT TOP 1 WHCode FROM ICSDeliveryNotice WHERE DNCode='{DNCode}' And Sequence='{Sequence}' )
  1584. AND a.InvCode= '{INVCode}'
  1585. AND a.Quantity>0
  1586. ORDER BY InDate DESC)
  1587. PRINT(@locationCodeCurrent)
  1588. IF @locationCodeCurrent is NULL
  1589. BEGIN set @locationCodeCurrent=(SELECT
  1590. top 1 a.LocationCode
  1591. FROM
  1592. ICSWareHouseLotInfo a
  1593. WHERE
  1594. a.WorkPoint= '{WorkPoints}'
  1595. AND a.WarehouseCode= (SELECT TOP 1 WHCode FROM ICSDeliveryNotice WHERE DNCode='{DNCode}' And Sequence='{Sequence}' )
  1596. AND a.InvCode= '{INVCode}'
  1597. AND a.Quantity=0
  1598. ORDER BY InDate DESC)
  1599. END
  1600. SELECT @locationCodeCurrent";
  1601. object locationCode = SqlHelper.ExecuteScalar(locstionsql);
  1602. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 2);
  1603. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,EATTRIBUTE1)
  1604. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}')",
  1605. LotNo, DNCode, Sequence, MUSER, MUSERNAME, WorkPoints, locationCode);
  1606. sql += string.Format(@"insert into ICSInventoryLot
  1607. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  1608. select
  1609. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','7','{3}','{4}', getdate(),'{5}','{9}'
  1610. from ICSDeliveryNotice where DNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  1611. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, DNCode, Sequence, ExtensionID, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString());
  1612. sql += "\r\n";
  1613. //if (i == createPageCount - 1)
  1614. //{
  1615. // InspectJosn += "{";
  1616. // InspectJosn += "\"RIG_ORDINE\":\"" + DNCode + "\",";
  1617. // InspectJosn += "\"RIG_ARTICOLO\": \"" + INVCode + "\",";
  1618. // InspectJosn += "\"RIG_SUB1\": \"" + LotNo + "\",";
  1619. // InspectJosn += "\"RIG_SUB2\": \"\",";
  1620. // //InspectJosn += "\"RIG_OPERATORE_ASSEGNATO\": \"" + 20220968 + "\",";
  1621. // InspectJosn += "\"RIG_QTAR\": " + LOTQTY + ",";
  1622. // InspectJosn += "\"RIG_HOSTINF\": " + Sequence + "";
  1623. // InspectJosn += "}";
  1624. //}
  1625. //else
  1626. //{
  1627. // InspectJosn += "{";
  1628. // InspectJosn += "\"RIG_ORDINE\":\"" + DNCode + "\",";
  1629. // InspectJosn += "\"RIG_ARTICOLO\": \"" + INVCode + "\",";
  1630. // InspectJosn += "\"RIG_SUB1\": \"" + LotNo + "\",";
  1631. // InspectJosn += "\"RIG_SUB2\": \"\",";
  1632. // //InspectJosn += "\"RIG_OPERATORE_ASSEGNATO\": \"" + 20220968 + "\",";
  1633. // InspectJosn += "\"RIG_QTAR\": " + LOTQTY + ",";
  1634. // InspectJosn += "\"RIG_HOSTINF\": " + Sequence + "";
  1635. // InspectJosn += "},";
  1636. //}
  1637. }
  1638. //InspectJosn += "]";
  1639. //InspectJosn += "}";
  1640. //string result = "";
  1641. //#region 验证物料对应仓储区域,非货柜区域不调用接口向货柜传输数据
  1642. //string LocationCode = "";
  1643. //string InvWHCode = "";
  1644. //string chksql = @"select LocationCode,WHCode from ICSInventoryDetail
  1645. // where INVCode='{0}' and WHCode=(
  1646. // select WHCode from ICSDeliveryNotice
  1647. // where DNCode='{1}' and Sequence='{2}' and WorkPoint='{3}')";
  1648. //chksql = string.Format(chksql, INVCode, DNCode, Sequence, WorkPoint);
  1649. //DataTable chkdt = SqlHelper.GetDataTableBySql(chksql);
  1650. //if (chkdt.Rows.Count == 0)
  1651. //{
  1652. // throw new Exception("当前选中行物料在对应库存地点没有维护有效的区域,无法生成条码,请确认!");
  1653. //}
  1654. //else
  1655. //{
  1656. // LocationCode = chkdt.Rows[0]["LocationCode"].ToString();
  1657. // InvWHCode = chkdt.Rows[0]["WHCode"].ToString();
  1658. // chksql = @"select F_Id from Sys_SRM_ItemsDetail
  1659. // where F_Define3='HGAreaConfig' AND F_Define1='{0}' AND F_Define2='{1}' and F_Define4='{2}'";
  1660. // chksql = string.Format(chksql, InvWHCode, LocationCode, WorkPoint);
  1661. // chkdt = SqlHelper.GetDataTableBySql(chksql);
  1662. //}
  1663. //#endregion
  1664. //if (chkdt.Rows.Count > 0 && Convert.ToBoolean(System.Configuration.ConfigurationManager.AppSettings["UploadERP"]))
  1665. //{
  1666. // #region 货柜接口调用前日志
  1667. // object logID = Guid.NewGuid();
  1668. // string logsql = @"insert into ICSWMS_HGLog
  1669. // values
  1670. // ('{0}',GETDATE(),'{1}','{2}','{3}','{4}','{5}')";
  1671. // logsql = string.Format(logsql, logID, InspectJosn, "", WorkPoint, MUSER, MUSERNAME);
  1672. // SqlHelper.CmdExecuteNonQueryLi(logsql);
  1673. // #endregion
  1674. // InspectJosn = InspectJosn.Replace("货柜区域预留", "\"ORD_ELEAREE\":\"" + LocationCode + "\",");
  1675. // result = HTTPHelper.RestFulGet(InspectJosn, postUrlStr);
  1676. // #region 货柜接口调用后日志
  1677. // logsql = @"update ICSWMS_HGLog set ReturnResult='{0}'
  1678. // where ID='{1}'";
  1679. // logsql = string.Format(logsql, result, logID);
  1680. // SqlHelper.CmdExecuteNonQueryLi(logsql);
  1681. // #endregion
  1682. // if (!result.Contains("successo"))
  1683. // {
  1684. // ICSHGResult hgresult = JsonConvert.DeserializeObject<ICSHGResult>(result.TrimStart('[').TrimEnd(']'));
  1685. // throw new Exception("货柜单据传输接口调用报错,主要报错信息:" + hgresult.PrimaryError + ",次要报错信息:" + hgresult.SecondaryError + "");
  1686. // }
  1687. //}
  1688. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1689. return count;
  1690. }
  1691. catch (Exception ex)
  1692. {
  1693. throw new Exception(ex.Message);
  1694. }
  1695. }
  1696. /// <summary>
  1697. /// 审核到货单生成条码(批量生成)
  1698. /// </summary>
  1699. /// <param name="ids">主键</param>
  1700. /// <returns></returns>
  1701. /// <exception cref="Exception"></exception>
  1702. public int SubmitSHDH(string ids)
  1703. {
  1704. try
  1705. {
  1706. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1707. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1708. DateTime MTime = DateTime.Now;
  1709. string sql = $@"SELECT * FROM ICSDeliveryNotice a WHERE ID in({ids}) AND DNCode NOT IN(SELECT TransCode From ICSInventoryLotDetail b where a.Sequence=b.TransSequence) ";
  1710. var dataset = Repository().FindDataSetBySql(sql);
  1711. if (dataset.Tables.Count <= 0)
  1712. return 0;
  1713. DataTable table = dataset.Tables[0];
  1714. StringBuilder sqlString = new StringBuilder();
  1715. var dateString = MTime.ToString("yyMMdd").Substring(1);
  1716. for (int i = 0; i < table.Rows.Count; i++)
  1717. {
  1718. string dnCode = table.Rows[i]["DNCode"].ToString();
  1719. string invCode = table.Rows[i]["INVCode"].ToString();
  1720. string workPoint = table.Rows[i]["WorkPoint"].ToString();
  1721. string whCode = table.Rows[i]["WHCode"].ToString();
  1722. string quantity = table.Rows[i]["Quantity"].ToString();
  1723. string sequence = table.Rows[i]["Sequence"].ToString();
  1724. string extensionID = table.Rows[i]["ExtensionID"].ToString();
  1725. string amount = table.Rows[i]["Amount"].ToString();
  1726. string code = "DN" + table.Rows[i]["DNCode"].ToString() + dateString;
  1727. //条码
  1728. string LotNo = GetSerialCode(workPoint, "ICSInventoryLot", "LotNO", code, 2);
  1729. //获取推荐库位
  1730. var locstionsql = $@"DECLARE @locationCodeCurrent VARCHAR(50)
  1731. SET @locationCodeCurrent=(SELECT
  1732. top 1 a.LocationCode
  1733. FROM
  1734. ICSWareHouseLotInfo a
  1735. WHERE
  1736. a.WorkPoint= '{workPoint}'
  1737. AND a.WarehouseCode= '{whCode}'
  1738. AND a.InvCode= '{invCode}'
  1739. AND a.Quantity>0
  1740. ORDER BY InDate DESC)
  1741. PRINT(@locationCodeCurrent)
  1742. IF @locationCodeCurrent is NULL
  1743. BEGIN set @locationCodeCurrent=(SELECT
  1744. top 1 a.LocationCode
  1745. FROM
  1746. ICSWareHouseLotInfo a
  1747. WHERE
  1748. a.WorkPoint= '{workPoint}'
  1749. AND a.WarehouseCode= '{whCode}'
  1750. AND a.InvCode= '{invCode}'
  1751. AND a.Quantity=0
  1752. ORDER BY InDate DESC)
  1753. END
  1754. SELECT @locationCodeCurrent";
  1755. object locationCode = SqlHelper.ExecuteScalar(locstionsql);
  1756. sqlString.Append($@"IF EXISTS (SELECT LotNo FROM ICSInventoryLotDetail WHERE TransCode='{dnCode}' AND WorkPoint='{workPoint}')
  1757. BEGIN
  1758. RAISERROR('{dnCode}',16,1);
  1759. RETURN
  1760. END");
  1761. sqlString.Append($@" Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,EATTRIBUTE1)
  1762. Values('{LotNo}','{dnCode}','{sequence}','{MUSER}','{MUSERNAME}',getdate(),'{workPoint}','{locationCode}');");
  1763. sqlString.Append($@" insert into ICSInventoryLot
  1764. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  1765. Values(
  1766. newid(),'{LotNo}','{invCode}','{MTime}','2999-12-31','{quantity}','{extensionID}','7','{MUSER}','{MUSERNAME}', getdate(),'{workPoint}','{amount}');");
  1767. }
  1768. if (sqlString.IsEmpty())
  1769. {
  1770. return 0;
  1771. }
  1772. int count = SqlHelper.CmdExecuteNonQueryLi(sqlString.ToString());
  1773. return count;
  1774. }
  1775. catch (Exception ex)
  1776. {
  1777. throw new Exception(ex.Message);
  1778. }
  1779. }
  1780. /// <summary>
  1781. /// 检验合格单生成条码批量入库
  1782. /// </summary>
  1783. /// <param name="POCode"></param>
  1784. /// <param name="PORow"></param>
  1785. /// <param name="keyValue"></param>
  1786. /// <returns></returns>
  1787. public int BatchStockIN(string ids, string BinCode)
  1788. {
  1789. try
  1790. {
  1791. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1792. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1793. DateTime MTime = DateTime.Now;
  1794. string sql = $@"SELECT * FROM ICSDeliveryNotice a WHERE ID in({ids}) AND DNCode NOT IN(SELECT TransCode From ICSInventoryLotDetail b where a.Sequence=b.TransSequence) ";
  1795. var dataset = Repository().FindDataSetBySql(sql);
  1796. if (dataset.Tables.Count <= 0)
  1797. return 0;
  1798. DataTable table = dataset.Tables[0];
  1799. StringBuilder sqlString = new StringBuilder();
  1800. string Identification = Guid.NewGuid().ToString();
  1801. var dateString = MTime.ToString("yyMMdd").Substring(1);
  1802. for (int i = 0; i < table.Rows.Count; i++)
  1803. {
  1804. string dnCode = table.Rows[i]["DNCode"].ToString();
  1805. string invCode = table.Rows[i]["INVCode"].ToString();
  1806. string workPoint = table.Rows[i]["WorkPoint"].ToString();
  1807. string whCode = table.Rows[i]["WHCode"].ToString();
  1808. string quantity = table.Rows[i]["Quantity"].ToString();
  1809. string sequence = table.Rows[i]["Sequence"].ToString();
  1810. string extensionID = table.Rows[i]["ExtensionID"].ToString();
  1811. string amount = table.Rows[i]["Amount"].ToString();
  1812. //string code = "DN" + table.Rows[i]["DNCode"].ToString() + table.Rows[i]["Sequence"].ToString();
  1813. string code = "DN" + table.Rows[i]["DNCode"].ToString() + dateString;
  1814. //条码
  1815. //string LotNo = GetSerialCode(workPoint, "ICSInventoryLot", "LotNO", code, 5);
  1816. string LotNo = GetSerialCode(workPoint, "ICSInventoryLot", "LotNO", code, 2);
  1817. #region 验证输入库位是否满足单据要求
  1818. string binsql = $@"select LocationCode from ICSLocation
  1819. where LocationCode='{BinCode}' and WorkPoint='{workPoint}'";
  1820. var bindataset = Repository().FindDataSetBySql(binsql);
  1821. DataTable bintable = bindataset.Tables[0];
  1822. if (bintable.Rows.Count == 0)
  1823. {
  1824. throw new Exception("输入的库位不存在,无法入库!");
  1825. }
  1826. binsql = $@"select LocationCode from ICSInventoryDetail
  1827. where INVCode='{invCode}' and WHCode='{whCode}' and WorkPoint='{workPoint}'";
  1828. bindataset = Repository().FindDataSetBySql(binsql);
  1829. bintable = bindataset.Tables[0];
  1830. if (bintable.Rows.Count != 0)
  1831. {
  1832. if (BinCode.Split('-')[0].ToString() != whCode
  1833. || BinCode.Split('-')[1].ToString() != bintable.Rows[0]["LocationCode"].ToString())
  1834. {
  1835. throw new Exception("单据:" + dnCode + "的入库区域与输入的库位不符,无法入库!");
  1836. }
  1837. }
  1838. #endregion
  1839. #region 生成条码
  1840. sqlString.Append($@" Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,EATTRIBUTE1)
  1841. Values('{LotNo}','{dnCode}','{sequence}','{MUSER}','{MUSERNAME}',getdate(),'{workPoint}','')");
  1842. sqlString.Append($@" insert into ICSInventoryLot
  1843. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  1844. Values(
  1845. newid(),'{LotNo}','{invCode}','{MTime}','2999-12-31','{quantity}','{extensionID}','7','{MUSER}','{MUSERNAME}', getdate(),'{workPoint}','{amount}')");
  1846. #endregion
  1847. #region 入库
  1848. sqlString.Append($@" Update ICSDeliveryNotice set RCVQuantity=Quantity where DNCode='{dnCode}' AND WorkPoint='{workPoint}'");
  1849. sqlString.Append($@" INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint,EATTRIBUTE1)
  1850. SELECT NEWID(),a.LotNo ,e.WarehouseCode,d.LocationCode,a.InvCode ,a.Quantity,getdate(),'0',f.F_Account ,f.F_RealName ,getdate(),a.WorkPoint ,''
  1851. FROM ICSInventoryLot a
  1852. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  1853. INNER JOIN ICSLocation d ON d.LocationCode='{BinCode}' AND a.WorkPoint=d.WorkPoint
  1854. INNER JOIN ICSWarehouse e ON d.WHID=e.ID AND d.WorkPoint=e.WorkPoint
  1855. INNER JOIN Sys_SRM_User f ON f.F_Account='{MUSER}' AND a.WorkPoint=f.F_Location
  1856. WHERE a.LotNo='{LotNo}' AND a.WorkPoint='{workPoint}'");
  1857. sqlString.Append($@" INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
  1858. FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
  1859. Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
  1860. ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
  1861. MTIME,WorkPoint,EATTRIBUTE1,LogID)
  1862. SELECT NEWID(),'{Identification}',b.TransCode,b.TransSequence,a.LotNo ,a.InvCode ,
  1863. '','',c.WarehouseCode,c.LocationCode,'{quantity}',
  1864. '','0','2','2','0','',
  1865. '','','',f.F_Account ,f.F_RealName ,
  1866. SYSDATETIME() ,a.WorkPoint ,'',''
  1867. FROM ICSInventoryLot a
  1868. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  1869. INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  1870. INNER JOIN Sys_SRM_User f ON f.F_Account='{MUSER}' AND a.WorkPoint=f.F_Location
  1871. WHERE a.LotNo='{LotNo}' AND a.WorkPoint='{workPoint}'");
  1872. #endregion
  1873. }
  1874. if (sqlString.IsEmpty())
  1875. {
  1876. return 0;
  1877. }
  1878. #region 调用SAP接口(检验合格单为两层结构 一行对应一个序列号)
  1879. string IsSuccess = "";
  1880. string ErrorMessage = "";
  1881. foreach (DataRow dr in table.Rows)
  1882. {
  1883. SAPCallBackJYHGDVPN.ZWMS_SK_WS_RUKU Client = new SAPCallBackJYHGDVPN.ZWMS_SK_WS_RUKU();
  1884. SAPCallBackJYHGDVPN.ZWMS_SK_WS_RUKU1 Info = new SAPCallBackJYHGDVPN.ZWMS_SK_WS_RUKU1();
  1885. Info.NEWID = Identification;
  1886. Info.PRUEFLOS = dr["DNCode"].ToString();
  1887. Info.L_LME = System.Decimal.Round(Convert.ToDecimal(dr["Quantity"].ToString()), 3);
  1888. Info.SERNP = "";
  1889. Info.LGORT = dr["WHCode"].ToString(); ;//仓库
  1890. Info.Z_GERNR = new SAPCallBackJYHGDVPN.ZWEBS_GERNR[0];
  1891. SAPCallBackJYHGDVPN.ZWMS_SK_WS_RUKUResponse result = new SAPCallBackJYHGDVPN.ZWMS_SK_WS_RUKUResponse();
  1892. result = Client.CallZWMS_SK_WS_RUKU(Info);
  1893. if (result.Z_NULL == "N")
  1894. {
  1895. IsSuccess = "N";
  1896. ErrorMessage += result.L_MESSAGE;
  1897. }
  1898. else
  1899. {
  1900. log.Debug("批量过账返回值:" + result.Z_NULL + "批量过账返回信息:" + result.L_MESSAGE);
  1901. }
  1902. }
  1903. if (IsSuccess == "N")
  1904. {
  1905. log.Debug("批量过账返回值:" + IsSuccess + "批量过账返回信息:" + ErrorMessage);
  1906. throw new Exception(ErrorMessage);
  1907. }
  1908. #endregion
  1909. int count = SqlHelper.CmdExecuteNonQueryLi(sqlString.ToString());
  1910. return count;
  1911. }
  1912. catch (Exception ex)
  1913. {
  1914. throw new Exception(ex.Message);
  1915. }
  1916. }
  1917. /// <summary>
  1918. /// 获取批量入库区域
  1919. /// </summary>
  1920. /// <param name="POCode"></param>
  1921. /// <param name="PORow"></param>
  1922. /// <param name="keyValue"></param>
  1923. /// <returns></returns>
  1924. public string GetBatchStockINLocation()
  1925. {
  1926. try
  1927. {
  1928. string Location = "";
  1929. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1930. string sql = @" select F_Define1 from Sys_SRM_ItemsDetail
  1931. where F_ItemName='INLocation' AND F_Define4='1701'";
  1932. var dataset = Repository().FindDataSetBySql(sql);
  1933. if (dataset.Tables.Count <= 0)
  1934. return "";
  1935. DataTable table = dataset.Tables[0];
  1936. foreach (DataRow dr in table.Rows)
  1937. {
  1938. if (Location == "")
  1939. {
  1940. Location = dr["F_Define1"].ToString();
  1941. }
  1942. else
  1943. {
  1944. Location += "," + dr["F_Define1"].ToString();
  1945. }
  1946. }
  1947. return Location;
  1948. }
  1949. catch (Exception ex)
  1950. {
  1951. throw new Exception(ex.Message);
  1952. }
  1953. }
  1954. //领料申请退料生成条码
  1955. public int SubmitFormLLSQTL(string ApplyNegCode, string Sequence, string INVCode, string keyValue, string WorkPoint)
  1956. {
  1957. string postUrlStr = System.Configuration.ConfigurationManager.AppSettings["HGDocpostUrlStr"].ToString();
  1958. var queryParam = keyValue.ToJObject();
  1959. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1960. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1961. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1962. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1963. decimal LOTQTY = minPackQty;
  1964. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1965. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  1966. //string Pre = "MA" + ApplyNegCode + Sequence;
  1967. DateTime MTime = DateTime.Now;
  1968. var dateString = MTime.ToString("yyMMdd").Substring(1);
  1969. string Pre = "MA" + ApplyNegCode + dateString;
  1970. string sql = string.Empty;
  1971. //string VendorLot = queryParam["VendorLot"].ToString();
  1972. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1973. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1974. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1975. string sqls = string.Empty;
  1976. string Colspan = "";
  1977. for (int i = 0; i < createPageCount; i++)
  1978. {
  1979. if (i + 1 == createPageCount)
  1980. {
  1981. if (minPackQty * createPageCount > thisCreateQty)
  1982. {
  1983. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1984. }
  1985. }
  1986. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  1987. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  1988. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1989. if (ExtensionID == null)
  1990. {
  1991. ExtensionID = Guid.NewGuid();
  1992. sql += string.Format(@"Insert into ICSExtension(ID, Colspan, ProjectCode, BatchCode, Version, Brand, cFree1, cFree2, cFree3, cFree4, cFree5, cFree6, cFree7, cFree8, cFree9, cFree10, MTIME, MUSER, MUSERName, WorkPoint)
  1993. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1994. ExtensionID, Colspan, queryParam["ProjectCode"].ToString(), queryParam["BatchCode"].ToString(), queryParam["Version"].ToString(), queryParam["Brand"].ToString(), queryParam["cFree1"].ToString(), queryParam["cFree2"].ToString(), queryParam["cFree3"].ToString(), queryParam["cFree4"].ToString(), queryParam["cFree5"].ToString(), queryParam["cFree6"].ToString(), queryParam["cFree7"].ToString(), queryParam["cFree8"].ToString(), queryParam["cFree9"].ToString(), queryParam["cFree10"].ToString(),
  1995. MUSER, MUSERNAME, WorkPoints);
  1996. }
  1997. //string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  1998. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 2);
  1999. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  2000. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  2001. LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  2002. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  2003. //{
  2004. sql += string.Format(@"insert into ICSInventoryLot
  2005. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  2006. select
  2007. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','12','{3}','{4}', getdate(),'{5}','{9}'
  2008. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  2009. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, ExtensionID, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString());
  2010. sql += "\r\n";
  2011. //}
  2012. }
  2013. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2014. return count;
  2015. }
  2016. /// <summary>
  2017. /// 领料退料单(批量)
  2018. /// </summary>
  2019. /// <param name="POCode"></param>
  2020. /// <param name="PORow"></param>
  2021. /// <param name="keyValue"></param>
  2022. /// 已改
  2023. /// <returns></returns>
  2024. public int SubmitTLPL(string ids)
  2025. {
  2026. try
  2027. {
  2028. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2029. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2030. DateTime MTime = DateTime.Now;
  2031. string sql = $@"SELECT * FROM ICSMOApplyNegDetail a WHERE ID in({ids}) AND ApplyNegCode NOT IN(SELECT TransCode From ICSInventoryLotDetail b where a.Sequence=b.TransSequence) ";
  2032. var dataset = Repository().FindDataSetBySql(sql);
  2033. if (dataset.Tables.Count == 0)
  2034. return 0;
  2035. DataTable table = dataset.Tables[0];
  2036. StringBuilder sqlString = new StringBuilder();
  2037. string dateString = MTime.ToString("yyMMdd").Substring(1);
  2038. for (int i = 0; i < table.Rows.Count; i++)
  2039. {
  2040. string dnCode = table.Rows[i]["ApplyNegCode"].ToString();
  2041. string invCode = table.Rows[i]["INVCode"].ToString();
  2042. string workPoint = table.Rows[i]["WorkPoint"].ToString();
  2043. string whCode = table.Rows[i]["WHCode"].ToString();
  2044. string quantity = table.Rows[i]["Quantity"].ToString();
  2045. string sequence = table.Rows[i]["Sequence"].ToString();
  2046. string extensionID = table.Rows[i]["ExtensionID"].ToString();
  2047. string amount = table.Rows[i]["Amount"].ToString();
  2048. //string code = "MA" + dnCode + sequence;
  2049. string code = "MA" + dnCode + dateString;
  2050. //条码
  2051. //string LotNo = GetSerialCode(workPoint, "ICSInventoryLot", "LotNO", code, 5);
  2052. string LotNo = GetSerialCode(workPoint, "ICSInventoryLot", "LotNO", code, 2);
  2053. //获取推荐库位
  2054. var locstionsql = $@"DECLARE @locationCodeCurrent VARCHAR(50)
  2055. SET @locationCodeCurrent=(SELECT top 1 a.LocationCode FROM ICSWareHouseLotInfo a
  2056. WHERE
  2057. a.WorkPoint= '{workPoint}'
  2058. AND a.WarehouseCode= '{whCode}'
  2059. AND a.InvCode= '{invCode}'
  2060. AND a.Quantity>0
  2061. ORDER BY InDate DESC)
  2062. PRINT(@locationCodeCurrent)
  2063. IF @locationCodeCurrent is NULL
  2064. BEGIN set @locationCodeCurrent=(SELECT
  2065. top 1 a.LocationCode
  2066. FROM
  2067. ICSWareHouseLotInfo a
  2068. WHERE
  2069. a.WorkPoint= '{workPoint}'
  2070. AND a.WarehouseCode= '{whCode}'
  2071. AND a.InvCode= '{invCode}'
  2072. AND a.Quantity=0
  2073. ORDER BY InDate DESC)
  2074. END
  2075. SELECT @locationCodeCurrent";
  2076. object locationCode = SqlHelper.ExecuteScalar(locstionsql);
  2077. sqlString.Append($@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,EATTRIBUTE1)
  2078. Values('{LotNo}','{dnCode}','{sequence}','{MUSER}','{MUSERNAME}',getdate(),'{workPoint}','{locationCode}');");
  2079. sqlString.Append($@"insert into ICSInventoryLot
  2080. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  2081. Values(
  2082. newid(),'{LotNo}','{invCode}','{MTime}','2999-12-31','{quantity}','{extensionID}','12','{MUSER}','{MUSERNAME}', getdate(),'{workPoint}','{amount}');");
  2083. }
  2084. if (sqlString.IsEmpty())
  2085. {
  2086. return 0;
  2087. }
  2088. int count = SqlHelper.CmdExecuteNonQueryLi(sqlString.ToString());
  2089. return count;
  2090. }
  2091. catch (Exception ex)
  2092. {
  2093. throw new Exception(ex.Message);
  2094. }
  2095. }
  2096. /// <summary>
  2097. /// 开立成品入库单
  2098. /// </summary>
  2099. /// <param name="POCode"></param>
  2100. /// <param name="PORow"></param>
  2101. /// <param name="keyValue"></param>
  2102. /// 已改
  2103. /// <returns></returns>
  2104. public int SubmitFormKLCPRK(string RCVCode, string Sequence, string INVCode, string keyValue, string WorkPoint)
  2105. {
  2106. string postUrlStr = System.Configuration.ConfigurationManager.AppSettings["HGDocpostUrlStr"].ToString();
  2107. var queryParam = keyValue.ToJObject();
  2108. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2109. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2110. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2111. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2112. decimal LOTQTY = minPackQty;
  2113. string dateString = DateTime.Now.ToString("yyMMdd").Substring(1);
  2114. string Pre = "KCP" + RCVCode + dateString;
  2115. string sql = string.Empty;
  2116. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2117. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2118. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2119. string sqls = string.Empty;
  2120. string Colspan = "";
  2121. for (int i = 0; i < createPageCount; i++)
  2122. {
  2123. if (i + 1 == createPageCount)
  2124. {
  2125. if (minPackQty * createPageCount > thisCreateQty)
  2126. {
  2127. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  2128. }
  2129. }
  2130. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  2131. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  2132. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2133. if (ExtensionID == null)
  2134. {
  2135. ExtensionID = Guid.NewGuid();
  2136. sql += string.Format(@"Insert into ICSExtension(ID, Colspan, ProjectCode, BatchCode, Version, Brand, cFree1, cFree2, cFree3, cFree4, cFree5, cFree6, cFree7, cFree8, cFree9, cFree10, MTIME, MUSER, MUSERName, WorkPoint)
  2137. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2138. ExtensionID, Colspan, queryParam["ProjectCode"].ToString(), queryParam["BatchCode"].ToString(), queryParam["Version"].ToString(), queryParam["Brand"].ToString(), queryParam["cFree1"].ToString(), queryParam["cFree2"].ToString(), queryParam["cFree3"].ToString(), queryParam["cFree4"].ToString(), queryParam["cFree5"].ToString(), queryParam["cFree6"].ToString(), queryParam["cFree7"].ToString(), queryParam["cFree8"].ToString(), queryParam["cFree9"].ToString(), queryParam["cFree10"].ToString(),
  2139. MUSER, MUSERNAME, WorkPoints);
  2140. }
  2141. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 2);
  2142. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  2143. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  2144. LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  2145. sql += string.Format(@"
  2146. insert into ICSInventoryLot
  2147. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  2148. select
  2149. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','9','{3}','{4}', getdate(),'{5}','{9}'
  2150. from ICSManufactureReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  2151. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, ExtensionID, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString());
  2152. sql += "\r\n";
  2153. }
  2154. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2155. return count;
  2156. }
  2157. /// <summary>
  2158. /// 开立成品入库单(批量)
  2159. /// </summary>
  2160. /// <param name="POCode"></param>
  2161. /// <param name="PORow"></param>
  2162. /// <param name="keyValue"></param>
  2163. /// 已改
  2164. /// <returns></returns>
  2165. public int SubmitKLCPRK(string ids)
  2166. {
  2167. try
  2168. {
  2169. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2170. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2171. DateTime MTime = DateTime.Now;
  2172. string sql = $@"SELECT * FROM ICSManufactureReceive a WHERE ID in({ids}) AND RCVCode NOT IN(SELECT TransCode From ICSInventoryLotDetail b where a.Sequence=b.TransSequence) ";
  2173. var dataset = Repository().FindDataSetBySql(sql);
  2174. if (dataset.Tables.Count == 0)
  2175. return 0;
  2176. DataTable table = dataset.Tables[0];
  2177. StringBuilder sqlString = new StringBuilder();
  2178. string dateString = MTime.ToString("yyMMdd").Substring(1);
  2179. for (int i = 0; i < table.Rows.Count; i++)
  2180. {
  2181. string dnCode = table.Rows[i]["RCVCode"].ToString();
  2182. string invCode = table.Rows[i]["INVCode"].ToString();
  2183. string workPoint = table.Rows[i]["WorkPoint"].ToString();
  2184. string whCode = table.Rows[i]["WHCode"].ToString();
  2185. string quantity = table.Rows[i]["Quantity"].ToString();
  2186. string sequence = table.Rows[i]["Sequence"].ToString();
  2187. string extensionID = table.Rows[i]["ExtensionID"].ToString();
  2188. string amount = table.Rows[i]["Amount"].ToString();
  2189. string code = "KCP" + dnCode + dateString;
  2190. //条码
  2191. string LotNo = GetSerialCode(workPoint, "ICSInventoryLot", "LotNO", code, 2);
  2192. //获取推荐库位
  2193. var locstionsql = $@"DECLARE @locationCodeCurrent VARCHAR(50)
  2194. SET @locationCodeCurrent=(SELECT
  2195. top 1 a.LocationCode
  2196. FROM
  2197. ICSWareHouseLotInfo a
  2198. WHERE
  2199. a.WorkPoint= '{workPoint}'
  2200. AND a.WarehouseCode= '{whCode}'
  2201. AND a.InvCode= '{invCode}'
  2202. AND a.Quantity>0
  2203. ORDER BY InDate DESC)
  2204. PRINT(@locationCodeCurrent)
  2205. IF @locationCodeCurrent is NULL
  2206. BEGIN set @locationCodeCurrent=(SELECT
  2207. top 1 a.LocationCode
  2208. FROM
  2209. ICSWareHouseLotInfo a
  2210. WHERE
  2211. a.WorkPoint= '{workPoint}'
  2212. AND a.WarehouseCode= '{whCode}'
  2213. AND a.InvCode= '{invCode}'
  2214. AND a.Quantity=0
  2215. ORDER BY InDate DESC)
  2216. END
  2217. SELECT @locationCodeCurrent";
  2218. object locationCode = SqlHelper.ExecuteScalar(locstionsql);
  2219. sqlString.Append($@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,EATTRIBUTE1)
  2220. Values('{LotNo}','{dnCode}','{sequence}','{MUSER}','{MUSERNAME}',getdate(),'{workPoint}','{locationCode}');");
  2221. sqlString.Append($@"insert into ICSInventoryLot
  2222. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  2223. Values(
  2224. newid(),'{LotNo}','{invCode}','{MTime}','2999-12-31','{quantity}','{extensionID}','9','{MUSER}','{MUSERNAME}', getdate(),'{workPoint}','{amount}');");
  2225. }
  2226. if (sqlString.IsEmpty())
  2227. {
  2228. return 0;
  2229. }
  2230. int count = SqlHelper.CmdExecuteNonQueryLi(sqlString.ToString());
  2231. return count;
  2232. }
  2233. catch (Exception ex)
  2234. {
  2235. throw new Exception(ex.Message);
  2236. }
  2237. }
  2238. /// <summary>
  2239. /// 审核委外到货单生成条码
  2240. /// </summary>
  2241. /// <param name="POCode"></param>
  2242. /// <param name="PORow"></param>
  2243. /// <param name="keyValue"></param>
  2244. /// 已改
  2245. /// <returns></returns>
  2246. public int SubmitFormWWSHDH(string ODNCode, string Sequence, string keyValue, string WorkPoint)
  2247. {
  2248. var queryParam = keyValue.ToJObject();
  2249. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2250. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2251. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2252. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2253. decimal LOTQTY = minPackQty;
  2254. //string Pre = "ODN" + ODNCode + Sequence;
  2255. DateTime MTime = DateTime.Now;
  2256. var dateString = MTime.ToString("yyMMdd").Substring(1);
  2257. string Pre = "ODN" + ODNCode + dateString;
  2258. string sql = string.Empty;
  2259. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2260. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2261. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2262. string sqls = string.Empty;
  2263. string Colspan = "";
  2264. for (int i = 0; i < createPageCount; i++)
  2265. {
  2266. if (i + 1 == createPageCount)
  2267. {
  2268. if (minPackQty * createPageCount > thisCreateQty)
  2269. {
  2270. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  2271. }
  2272. }
  2273. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  2274. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  2275. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2276. if (ExtensionID == null)
  2277. {
  2278. ExtensionID = Guid.NewGuid();
  2279. sql += string.Format(@"Insert into ICSExtension(ID, Colspan, ProjectCode, BatchCode, Version, Brand, cFree1, cFree2, cFree3, cFree4, cFree5, cFree6, cFree7, cFree8, cFree9, cFree10, MTIME, MUSER, MUSERName, WorkPoint)
  2280. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2281. ExtensionID, Colspan, queryParam["ProjectCode"].ToString(), queryParam["BatchCode"].ToString(), queryParam["Version"].ToString(), queryParam["Brand"].ToString(), queryParam["cFree1"].ToString(), queryParam["cFree2"].ToString(), queryParam["cFree3"].ToString(), queryParam["cFree4"].ToString(), queryParam["cFree5"].ToString(), queryParam["cFree6"].ToString(), queryParam["cFree7"].ToString(), queryParam["cFree8"].ToString(), queryParam["cFree9"].ToString(), queryParam["cFree10"].ToString(),
  2282. MUSER, MUSERNAME, WorkPoints);
  2283. }
  2284. //string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  2285. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 2);
  2286. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  2287. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  2288. LotNo, ODNCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  2289. sql += string.Format(@"
  2290. insert into ICSInventoryLot
  2291. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  2292. select
  2293. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','8','{3}','{4}', getdate(),'{5}','{9}'
  2294. from ICSODeliveryNotice where ODNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  2295. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ODNCode, Sequence, ExtensionID, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString());
  2296. sql += "\r\n";
  2297. }
  2298. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2299. return count;
  2300. }
  2301. /// <summary>
  2302. /// 开立成品入库单
  2303. /// </summary>
  2304. /// <param name="POCode"></param>
  2305. /// <param name="PORow"></param>
  2306. /// <param name="keyValue"></param>
  2307. /// 已改
  2308. /// <returns></returns>
  2309. public int SubmitFormKLCPRK(string RCVCode, string Sequence, string keyValue, string WorkPoint)
  2310. {
  2311. var queryParam = keyValue.ToJObject();
  2312. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2313. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2314. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2315. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2316. decimal LOTQTY = minPackQty;
  2317. //string Pre = "KCP" + RCVCode + Sequence;
  2318. DateTime MTime = DateTime.Now;
  2319. var dateString = MTime.ToString("yyMMdd").Substring(1);
  2320. string Pre = "KCP" + RCVCode + dateString;
  2321. string sql = string.Empty;
  2322. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2323. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2324. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2325. string sqls = string.Empty;
  2326. string Colspan = "";
  2327. for (int i = 0; i < createPageCount; i++)
  2328. {
  2329. if (i + 1 == createPageCount)
  2330. {
  2331. if (minPackQty * createPageCount > thisCreateQty)
  2332. {
  2333. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  2334. }
  2335. }
  2336. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  2337. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  2338. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2339. if (ExtensionID == null)
  2340. {
  2341. ExtensionID = Guid.NewGuid();
  2342. sql += string.Format(@"Insert into ICSExtension(ID, Colspan, ProjectCode, BatchCode, Version, Brand, cFree1, cFree2, cFree3, cFree4, cFree5, cFree6, cFree7, cFree8, cFree9, cFree10, MTIME, MUSER, MUSERName, WorkPoint)
  2343. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2344. ExtensionID, Colspan, queryParam["ProjectCode"].ToString(), queryParam["BatchCode"].ToString(), queryParam["Version"].ToString(), queryParam["Brand"].ToString(), queryParam["cFree1"].ToString(), queryParam["cFree2"].ToString(), queryParam["cFree3"].ToString(), queryParam["cFree4"].ToString(), queryParam["cFree5"].ToString(), queryParam["cFree6"].ToString(), queryParam["cFree7"].ToString(), queryParam["cFree8"].ToString(), queryParam["cFree9"].ToString(), queryParam["cFree10"].ToString(),
  2345. MUSER, MUSERNAME, WorkPoints);
  2346. }
  2347. //string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  2348. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 2);
  2349. //获取推荐库位
  2350. var locstionsql = $@"DECLARE @locationCodeCurrent VARCHAR(50)
  2351. SET @locationCodeCurrent=(SELECT
  2352. top 1 a.LocationCode
  2353. FROM
  2354. ICSWareHouseLotInfo a
  2355. WHERE
  2356. a.WorkPoint= '{WorkPoints}'
  2357. AND a.WarehouseCode= (SELECT TOP 1 WHCode FROM ICSManufactureReceive WHERE RCVCode='{RCVCode}' And Sequence='{Sequence}' )
  2358. AND a.InvCode= (SELECT TOP 1 INVCode FROM ICSManufactureReceive WHERE RCVCode='{RCVCode}' And Sequence='{Sequence}')
  2359. AND a.Quantity>0
  2360. ORDER BY InDate DESC)
  2361. PRINT(@locationCodeCurrent)
  2362. IF @locationCodeCurrent is NULL
  2363. BEGIN set @locationCodeCurrent=(SELECT
  2364. top 1 a.LocationCode
  2365. FROM
  2366. ICSWareHouseLotInfo a
  2367. WHERE
  2368. a.WorkPoint= '{WorkPoints}'
  2369. AND a.WarehouseCode= (SELECT TOP 1 WHCode FROM ICSManufactureReceive WHERE RCVCode='{RCVCode}' And Sequence='{Sequence}' )
  2370. AND a.InvCode= (SELECT TOP 1 INVCode FROM ICSManufactureReceive WHERE RCVCode='{RCVCode}' And Sequence='{Sequence}')
  2371. AND a.Quantity=0
  2372. ORDER BY InDate DESC)
  2373. END
  2374. SELECT @locationCodeCurrent";
  2375. object locationCode = SqlHelper.ExecuteScalar(locstionsql);
  2376. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,EATTRIBUTE1)
  2377. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  2378. LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, locationCode);
  2379. sql += string.Format(@"
  2380. insert into ICSInventoryLot
  2381. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  2382. select
  2383. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','9','{3}','{4}', getdate(),'{5}','{9}'
  2384. from ICSManufactureReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  2385. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, ExtensionID, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString());
  2386. sql += "\r\n";
  2387. }
  2388. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2389. return count;
  2390. }
  2391. //委外拒收单
  2392. public DataTable GetGridJsonWWJSD(string queryJson, ref Pagination jqgridparam)
  2393. {
  2394. DataTable dt = new DataTable();
  2395. var queryParam = queryJson.ToJObject();
  2396. List<DbParameter> parameter = new List<DbParameter>();
  2397. object Figure = GetDecimalDigits();
  2398. #region [SQL]
  2399. string sql = @"select a.ID, a.ODNCode OOCode,a.Sequence OOSequence,a.VenCode,e.VenName,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
  2400. CAST(a.Quantity AS DECIMAL(18,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(18,{0})) as Amount,CAST(a.RCVQuantity AS DECIMAL(18,{0})) as RCVQuantity,CAST(a.UnitPrice AS DECIMAL(18,{0})) as UnitPrice,a.Currency,a.CreatePerson,a.CreateDateTime,CAST(c.LOTQTY AS DECIMAL(18,{0})) as LOTQTY
  2401. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2402. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  2403. from ICSODeliveryNotice a
  2404. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2405. left join (
  2406. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2407. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='11'
  2408. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2409. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2410. --inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  2411. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  2412. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2413. where a.ODNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  2414. ";
  2415. sql = string.Format(sql, Figure);
  2416. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  2417. #endregion
  2418. if (!string.IsNullOrWhiteSpace(queryJson))
  2419. {
  2420. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2421. {
  2422. sql += " and a.ODNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2423. }
  2424. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  2425. {
  2426. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  2427. }
  2428. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  2429. {
  2430. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  2431. }
  2432. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2433. {
  2434. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2435. }
  2436. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2437. {
  2438. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2439. }
  2440. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2441. {
  2442. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2443. }
  2444. }
  2445. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2446. {
  2447. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2448. }
  2449. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2450. {
  2451. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2452. }
  2453. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2454. }
  2455. //拒收单
  2456. public DataTable GetGridJsonJSD(string queryJson, ref Pagination jqgridparam)
  2457. {
  2458. DataTable dt = new DataTable();
  2459. var queryParam = queryJson.ToJObject();
  2460. List<DbParameter> parameter = new List<DbParameter>();
  2461. object Figure = GetDecimalDigits();
  2462. #region [SQL]
  2463. string sql = @"select a.ID,a.DNCode ,a.Sequence ,a.VenCode,e.VenName,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
  2464. CAST(a.Quantity AS DECIMAL(18,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(18,{0})) as Amount,CAST(a.RCVQuantity AS DECIMAL(18,{0})) as RCVQuantity,CAST( a.UnitPrice AS DECIMAL(18,{0})) as UnitPrice,a.Currency,a.CreatePerson,a.CreateDateTime,
  2465. CAST(c.LOTQTY AS DECIMAL(18,{0})) as LOTQTY
  2466. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2467. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  2468. from ICSDeliveryNotice a
  2469. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2470. left join (
  2471. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2472. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='10'
  2473. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2474. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2475. --inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  2476. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  2477. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2478. where a.DNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  2479. ";
  2480. sql = string.Format(sql, Figure);
  2481. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  2482. #endregion
  2483. if (!string.IsNullOrWhiteSpace(queryJson))
  2484. {
  2485. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2486. {
  2487. sql += " and a.DNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2488. }
  2489. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  2490. {
  2491. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  2492. }
  2493. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  2494. {
  2495. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  2496. }
  2497. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2498. {
  2499. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2500. }
  2501. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2502. {
  2503. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2504. }
  2505. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2506. {
  2507. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2508. }
  2509. }
  2510. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2511. {
  2512. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2513. }
  2514. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2515. {
  2516. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2517. }
  2518. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2519. }
  2520. //领料申请退料
  2521. public DataTable GetGridJsonLLSQTL(string queryJson, ref Pagination jqgridparam)
  2522. {
  2523. DataTable dt = new DataTable();
  2524. var queryParam = queryJson.ToJObject();
  2525. List<DbParameter> parameter = new List<DbParameter>();
  2526. object Figure = GetDecimalDigits();
  2527. #region [SQL]
  2528. string sql = @"select a.ID,a.ApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,d.CreateDateTime,
  2529. CAST(a.Quantity AS DECIMAL(18,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(18,{0})) as Amount,CAST(a.IssueNegQuantity AS DECIMAL(18,{0})) as IssueNegQuantity
  2530. ,a.ExtensionID,a.MUSERName,a.MTIME ,CAST(c.LOTQTY AS DECIMAL(18,{0})) as LOTQTY,a.EATTRIBUTE
  2531. ,a.WHCode,detail.LocationCode AS Area,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2532. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  2533. ,Case When a.WHCode+';'+detail.LocationCode in (select F_Define1+';'+F_Define2 from Sys_SRM_ItemsDetail where F_Define3='HGAreaConfig')
  2534. THEN '' ELSE '' END AS AreaType
  2535. from ICSMOApplyNegDetail a
  2536. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  2537. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2538. LEFT JOIN ICSInventoryDetail detail ON b.InvCode=detail.INVCode AND a.WHCode=detail.WHCode AND a.WorkPoint=detail.WorkPoint
  2539. left join (
  2540. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2541. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='12' AND ee.EATTRIBUTE1 is NULL
  2542. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2543. )c
  2544. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2545. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2546. WHERE d.Type='2'";
  2547. sql = string.Format(sql, Figure);
  2548. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  2549. #endregion
  2550. if (!string.IsNullOrWhiteSpace(queryJson))
  2551. {
  2552. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2553. {
  2554. sql += " and a.ApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2555. }
  2556. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2557. {
  2558. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2559. }
  2560. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2561. {
  2562. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2563. }
  2564. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2565. {
  2566. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2567. }
  2568. if (!string.IsNullOrWhiteSpace(queryParam["Location"].ToString()))
  2569. {
  2570. sql += " and a.WHCode like '%" + queryParam["Location"].ToString() + "%' ";
  2571. }
  2572. if (!string.IsNullOrWhiteSpace(queryParam["Area"].ToString()))
  2573. {
  2574. sql += " and detail.LocationCode like '%" + queryParam["Area"].ToString() + "%' ";
  2575. }
  2576. if (!string.IsNullOrWhiteSpace(queryParam["Container"].ToString()))
  2577. {
  2578. if (queryParam["Container"].ToString() == "1")
  2579. {
  2580. sql += " and a.IssueNegQuantity=a.Quantity ";
  2581. }
  2582. else
  2583. {
  2584. sql += " and (a.IssueNegQuantity<a.Quantity Or a.Quantity<=0) ";
  2585. }
  2586. }
  2587. }
  2588. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2589. {
  2590. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2591. }
  2592. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2593. {
  2594. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2595. }
  2596. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2597. }
  2598. /// <summary>
  2599. /// 拒收生成条码
  2600. /// </summary>
  2601. /// <param name="POCode"></param>
  2602. /// <param name="PORow"></param>
  2603. /// <param name="keyValue"></param>
  2604. /// <returns></returns>
  2605. public int SubmitFormJSD(string DNCode, string Sequence, string keyValue, string WorkPoint)
  2606. {
  2607. var queryParam = keyValue.ToJObject();
  2608. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2609. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2610. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2611. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2612. decimal LOTQTY = minPackQty;
  2613. //string Pre = "JS" + DNCode + Sequence;
  2614. DateTime MTime = DateTime.Now;
  2615. var dateString = MTime.ToString("yyMMdd").Substring(1);
  2616. string Pre = "JS" + DNCode + dateString;
  2617. string sql = string.Empty;
  2618. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2619. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2620. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2621. string sqls = string.Empty;
  2622. string Colspan = "";
  2623. for (int i = 0; i < createPageCount; i++)
  2624. {
  2625. if (i + 1 == createPageCount)
  2626. {
  2627. if (minPackQty * createPageCount > thisCreateQty)
  2628. {
  2629. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  2630. }
  2631. }
  2632. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  2633. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  2634. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2635. if (ExtensionID == null)
  2636. {
  2637. ExtensionID = Guid.NewGuid();
  2638. sql += string.Format(@"Insert into ICSExtension(ID, Colspan, ProjectCode, BatchCode, Version, Brand, cFree1, cFree2, cFree3, cFree4, cFree5, cFree6, cFree7, cFree8, cFree9, cFree10, MTIME, MUSER, MUSERName, WorkPoint)
  2639. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2640. ExtensionID, Colspan, queryParam["ProjectCode"].ToString(), queryParam["BatchCode"].ToString(), queryParam["Version"].ToString(), queryParam["Brand"].ToString(), queryParam["cFree1"].ToString(), queryParam["cFree2"].ToString(), queryParam["cFree3"].ToString(), queryParam["cFree4"].ToString(), queryParam["cFree5"].ToString(), queryParam["cFree6"].ToString(), queryParam["cFree7"].ToString(), queryParam["cFree8"].ToString(), queryParam["cFree9"].ToString(), queryParam["cFree10"].ToString(),
  2641. MUSER, MUSERNAME, WorkPoints);
  2642. }
  2643. //string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  2644. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 2);
  2645. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  2646. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  2647. LotNo, DNCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  2648. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  2649. //{
  2650. sql += string.Format(@"
  2651. insert into ICSInventoryLot
  2652. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  2653. select
  2654. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','10','{3}','{4}', getdate(),'{5}','{9}'
  2655. from ICSDeliveryNotice where DNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  2656. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, DNCode, Sequence, ExtensionID, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString());
  2657. sql += "\r\n";
  2658. //}
  2659. }
  2660. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2661. return count;
  2662. }
  2663. /// <summary>
  2664. /// 委外拒收生成条码
  2665. /// </summary>
  2666. /// <param name="POCode"></param>
  2667. /// <param name="PORow"></param>
  2668. /// <param name="keyValue"></param>
  2669. /// <returns></returns>
  2670. public int SubmitFormWWJSD(string ODNCode, string Sequence, string keyValue, string WorkPoint)
  2671. {
  2672. var queryParam = keyValue.ToJObject();
  2673. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2674. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2675. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2676. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2677. decimal LOTQTY = minPackQty;
  2678. //string Pre = "OJS" + ODNCode + Sequence;
  2679. DateTime MTime = DateTime.Now;
  2680. var dateString = MTime.ToString("yyMMdd").Substring(1);
  2681. string Pre = "OJS" + ODNCode + dateString;
  2682. string sql = string.Empty;
  2683. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2684. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2685. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2686. string sqls = string.Empty;
  2687. string Colspan = "";
  2688. for (int i = 0; i < createPageCount; i++)
  2689. {
  2690. if (i + 1 == createPageCount)
  2691. {
  2692. if (minPackQty * createPageCount > thisCreateQty)
  2693. {
  2694. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  2695. }
  2696. }
  2697. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  2698. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  2699. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2700. if (ExtensionID == null)
  2701. {
  2702. ExtensionID = Guid.NewGuid();
  2703. sql += string.Format(@"Insert into ICSExtension(ID, Colspan, ProjectCode, BatchCode, Version, Brand, cFree1, cFree2, cFree3, cFree4, cFree5, cFree6, cFree7, cFree8, cFree9, cFree10, MTIME, MUSER, MUSERName, WorkPoint)
  2704. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2705. ExtensionID, Colspan, queryParam["ProjectCode"].ToString(), queryParam["BatchCode"].ToString(), queryParam["Version"].ToString(), queryParam["Brand"].ToString(), queryParam["cFree1"].ToString(), queryParam["cFree2"].ToString(), queryParam["cFree3"].ToString(), queryParam["cFree4"].ToString(), queryParam["cFree5"].ToString(), queryParam["cFree6"].ToString(), queryParam["cFree7"].ToString(), queryParam["cFree8"].ToString(), queryParam["cFree9"].ToString(), queryParam["cFree10"].ToString(),
  2706. MUSER, MUSERNAME, WorkPoints);
  2707. }
  2708. //string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  2709. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 2);
  2710. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  2711. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  2712. LotNo, ODNCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  2713. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  2714. //{
  2715. sql += string.Format(@"
  2716. insert into ICSInventoryLot
  2717. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  2718. select
  2719. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','11','{3}','{4}', getdate(),'{5}','{9}'
  2720. from ICSODeliveryNotice where ODNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  2721. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ODNCode, Sequence, ExtensionID, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString());
  2722. sql += "\r\n";
  2723. //}
  2724. }
  2725. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2726. return count;
  2727. }
  2728. /// <summary>
  2729. /// 点击审核到货单生成条码(审核到货单)
  2730. /// </summary>
  2731. public DataTable GetSubGridJsonJSDByCreate(string DNCode, string Sequence, string WorkPoint)
  2732. {
  2733. DataTable dt = new DataTable();
  2734. object Figure = GetDecimalDigits();
  2735. List<DbParameter> parameter = new List<DbParameter>();
  2736. string sql = @"select a.InvCode,b.InvName,b.InvStd,b.InvUnit, CAST( a.Quantity AS DECIMAL(18,{0})) as Quantity,CAST( a.Amount as DECIMAL(18,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(18,{0})) as CreatedQty,
  2737. CAST( (a.Quantity-ISNULL(c.LOTQTY,0)) as DECIMAL(18,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,{0})) as EffectiveDays
  2738. from ICSDeliveryNotice a
  2739. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2740. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2741. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo
  2742. group by b.TransCode,b.TransSequence
  2743. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence
  2744. WHERE a.DNType='3'
  2745. and a.DNCode='" + DNCode + "' and a.Sequence='" + Sequence + "'";
  2746. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2747. sql = string.Format(sql, Figure);
  2748. return Repository().FindTableBySql(sql.ToString());
  2749. }
  2750. /// <summary>
  2751. /// 点击审核委外到货单生成条码(审核委外到货单)
  2752. /// </summary>
  2753. public DataTable GetSubGridJsonWWJSDByCreate(string ODNCode, string Sequence, string WorkPoint)
  2754. {
  2755. DataTable dt = new DataTable();
  2756. object Figure = GetDecimalDigits();
  2757. List<DbParameter> parameter = new List<DbParameter>();
  2758. string sql = @"select a.InvCode,b.InvName,b.InvStd,b.InvUnit, CAST( a.Quantity AS DECIMAL(18,{0})) as Quantity,CAST( a.Amount as DECIMAL(18,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(18,{0})) as CreatedQty,
  2759. CAST( (a.Quantity-ISNULL(c.LOTQTY,0)) as DECIMAL(18,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,{0})) as EffectiveDays
  2760. from ICSODeliveryNotice a
  2761. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2762. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2763. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo
  2764. group by b.TransCode,b.TransSequence
  2765. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence
  2766. WHERE a.ODNType='3'
  2767. and a.ODNCode='" + ODNCode + "' and a.Sequence='" + Sequence + "'";
  2768. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2769. sql = string.Format(sql, Figure);
  2770. return Repository().FindTableBySql(sql.ToString());
  2771. }
  2772. public DataTable GetSubGridJsonLLSQDByCreate(string ApplyNegCode, string Sequence, string WorkPoint)
  2773. {
  2774. DataTable dt = new DataTable();
  2775. object Figure = GetDecimalDigits();
  2776. List<DbParameter> parameter = new List<DbParameter>();
  2777. string sql = @"select a.InvCode,b.InvName,b.InvStd,b.InvUnit, CAST( a.Quantity AS DECIMAL(18,{0})) as Quantity,CAST( a.Amount as DECIMAL(18,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(18,{0})) as CreatedQty,
  2778. CAST( (a.Quantity-ISNULL(c.LOTQTY,0)) as DECIMAL(18,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,{0})) as EffectiveDays
  2779. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2780. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  2781. from ICSMOApplyNegDetail a
  2782. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  2783. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2784. left join (
  2785. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2786. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo WHERE a.LotNo NOT LIKE'%-%'
  2787. group by b.TransCode,b.TransSequence
  2788. ) c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  2789. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2790. WHERE d.Type='2'
  2791. and a.ApplyNegCode='" + ApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  2792. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2793. sql = string.Format(sql, Figure);
  2794. return Repository().FindTableBySql(sql.ToString());
  2795. }
  2796. //材料出库退料
  2797. public DataTable GetGridJsonCLCK(string queryJson, ref Pagination jqgridparam)
  2798. {
  2799. DataTable dt = new DataTable();
  2800. var queryParam = queryJson.ToJObject();
  2801. List<DbParameter> parameter = new List<DbParameter>();
  2802. object Figure = GetDecimalDigits();
  2803. #region [SQL]
  2804. string sql = @"
  2805. select a.ID,a.ApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  2806. CAST(a.Quantity AS DECIMAL(18,{0})) as Quantity,
  2807. CAST(a.Amount AS DECIMAL(18,{0})) as Amount,CAST(a.IssueNegQuantity AS DECIMAL(18,{0})) as IssueNegQuantity ,a.ExtensionID,a.MUSERName,a.MTIME ,CAST(c.LOTQTY AS DECIMAL(18,{0})) as LOTQTY
  2808. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2809. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  2810. from ICSMOApplyNegDetail a
  2811. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  2812. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2813. left join (
  2814. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2815. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='13'
  2816. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2817. )c
  2818. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2819. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2820. WHERE d.Type='3'";
  2821. sql = string.Format(sql, Figure);
  2822. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  2823. #endregion
  2824. if (!string.IsNullOrWhiteSpace(queryJson))
  2825. {
  2826. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2827. {
  2828. sql += " and a.ApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2829. }
  2830. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2831. {
  2832. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2833. }
  2834. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2835. {
  2836. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2837. }
  2838. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2839. {
  2840. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2841. }
  2842. }
  2843. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2844. {
  2845. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2846. }
  2847. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2848. {
  2849. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2850. }
  2851. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2852. }
  2853. //材料出库退料
  2854. public DataTable GetSubGridJsonCLCKByCreate(string ApplyNegCode, string Sequence, string WorkPoint)
  2855. {
  2856. DataTable dt = new DataTable();
  2857. object Figure = GetDecimalDigits();
  2858. List<DbParameter> parameter = new List<DbParameter>();
  2859. string sql = @"select a.InvCode,b.InvName,b.InvStd,b.InvUnit, CAST( a.Quantity AS DECIMAL(18,{0})) as Quantity,CAST( a.Amount as DECIMAL(18,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(18,{0})) as CreatedQty,
  2860. CAST( (a.Quantity-ISNULL(c.LOTQTY,0)) as DECIMAL(18,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,{0})) as EffectiveDays
  2861. from ICSMOApplyNegDetail a
  2862. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  2863. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2864. left join (
  2865. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2866. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo
  2867. group by b.TransCode,b.TransSequence
  2868. ) c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  2869. WHERE d.Type='3'
  2870. and a.ApplyNegCode='" + ApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  2871. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2872. sql = string.Format(sql, Figure);
  2873. return Repository().FindTableBySql(sql.ToString());
  2874. }
  2875. //材料出库退料生成条码
  2876. public int SubmitFormCLCKT(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  2877. {
  2878. var queryParam = keyValue.ToJObject();
  2879. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2880. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2881. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2882. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2883. decimal LOTQTY = minPackQty;
  2884. //string Pre = "MD" + ApplyNegCode + Sequence;
  2885. DateTime MTime = DateTime.Now;
  2886. var dateString = MTime.ToString("yyMMdd").Substring(1);
  2887. string Pre = "MD" + ApplyNegCode + dateString;
  2888. string sql = string.Empty;
  2889. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2890. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2891. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2892. string sqls = string.Empty;
  2893. string Colspan = "";
  2894. for (int i = 0; i < createPageCount; i++)
  2895. {
  2896. if (i + 1 == createPageCount)
  2897. {
  2898. if (minPackQty * createPageCount > thisCreateQty)
  2899. {
  2900. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  2901. }
  2902. }
  2903. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  2904. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  2905. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2906. if (ExtensionID == null)
  2907. {
  2908. ExtensionID = Guid.NewGuid();
  2909. sql += string.Format(@"Insert into ICSExtension(ID, Colspan, ProjectCode, BatchCode, Version, Brand, cFree1, cFree2, cFree3, cFree4, cFree5, cFree6, cFree7, cFree8, cFree9, cFree10, MTIME, MUSER, MUSERName, WorkPoint)
  2910. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2911. ExtensionID, Colspan, queryParam["ProjectCode"].ToString(), queryParam["BatchCode"].ToString(), queryParam["Version"].ToString(), queryParam["Brand"].ToString(), queryParam["cFree1"].ToString(), queryParam["cFree2"].ToString(), queryParam["cFree3"].ToString(), queryParam["cFree4"].ToString(), queryParam["cFree5"].ToString(), queryParam["cFree6"].ToString(), queryParam["cFree7"].ToString(), queryParam["cFree8"].ToString(), queryParam["cFree9"].ToString(), queryParam["cFree10"].ToString(),
  2912. MUSER, MUSERNAME, WorkPoints);
  2913. }
  2914. //string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  2915. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 2);
  2916. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  2917. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  2918. LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  2919. sql += string.Format(@"insert into ICSInventoryLot
  2920. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  2921. select
  2922. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','13','{3}','{4}', getdate(),'{5}','{9}'
  2923. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  2924. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, ExtensionID, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString());
  2925. sql += "\r\n";
  2926. }
  2927. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2928. return count;
  2929. }
  2930. public DataTable GetGridJsonWWLLTL(string queryJson, ref Pagination jqgridparam)
  2931. {
  2932. DataTable dt = new DataTable();
  2933. var queryParam = queryJson.ToJObject();
  2934. List<DbParameter> parameter = new List<DbParameter>();
  2935. object Figure = GetDecimalDigits();
  2936. #region [SQL]
  2937. string sql = @"select a.ID,a.OApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  2938. CAST(a.Quantity AS DECIMAL(18,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(18,{0})) as Amount,CAST(a.IssueNegQuantity AS DECIMAL(18,{0})) as IssueNegQuantity ,a.ExtensionID,a.MUSERName,a.MTIME ,CAST(c.LOTQTY AS DECIMAL(18,{0})) as LOTQTY
  2939. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2940. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  2941. from ICSOApplyNegDetail a
  2942. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  2943. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2944. left join (
  2945. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2946. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='14'
  2947. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2948. )c
  2949. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2950. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2951. WHERE d.Type='2'";
  2952. sql = string.Format(sql, Figure);
  2953. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  2954. #endregion
  2955. if (!string.IsNullOrWhiteSpace(queryJson))
  2956. {
  2957. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2958. {
  2959. sql += " and a.OApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2960. }
  2961. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2962. {
  2963. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2964. }
  2965. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2966. {
  2967. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2968. }
  2969. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2970. {
  2971. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2972. }
  2973. }
  2974. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2975. {
  2976. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2977. }
  2978. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2979. {
  2980. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2981. }
  2982. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2983. }
  2984. /// <summary>
  2985. /// 点击委外领料退料生成条码
  2986. /// </summary>
  2987. public DataTable GetSubGridJsonWWLLByCreate(string OApplyNegCode, string Sequence, string WorkPoint)
  2988. {
  2989. DataTable dt = new DataTable();
  2990. object Figure = GetDecimalDigits();
  2991. List<DbParameter> parameter = new List<DbParameter>();
  2992. string sql = @"
  2993. select a.InvCode,b.InvName,b.InvStd,b.InvUnit, CAST( a.Quantity AS DECIMAL(18,{0})) as Quantity,CAST( a.Amount as DECIMAL(18,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(18,{0})) as CreatedQty,
  2994. CAST( (a.Quantity-ISNULL(c.LOTQTY,0)) as DECIMAL(18,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,{0})) as EffectiveDays
  2995. from ICSOApplyNegDetail a
  2996. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  2997. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2998. left join (
  2999. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  3000. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo
  3001. group by b.TransCode,b.TransSequence
  3002. ) c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  3003. WHERE d.Type='2'
  3004. and a.OApplyNegCode='" + OApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  3005. sql += " and a.WorkPoint='" + WorkPoint + "'";
  3006. sql = string.Format(sql, Figure);
  3007. return Repository().FindTableBySql(sql.ToString());
  3008. }
  3009. //委外领料申请退料
  3010. public int SubmitFormWWLL(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  3011. {
  3012. var queryParam = keyValue.ToJObject();
  3013. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3014. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  3015. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  3016. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  3017. decimal LOTQTY = minPackQty;
  3018. //string Pre = "OMA" + OApplyNegCode + Sequence;
  3019. DateTime MTime = DateTime.Now;
  3020. var dateString = MTime.ToString("yyMMdd").Substring(1);
  3021. string Pre = "OMA" + OApplyNegCode + dateString;
  3022. string sql = string.Empty;
  3023. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  3024. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  3025. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  3026. string sqls = string.Empty;
  3027. string Colspan = "";
  3028. for (int i = 0; i < createPageCount; i++)
  3029. {
  3030. if (i + 1 == createPageCount)
  3031. {
  3032. if (minPackQty * createPageCount > thisCreateQty)
  3033. {
  3034. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  3035. }
  3036. }
  3037. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  3038. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  3039. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  3040. if (ExtensionID == null)
  3041. {
  3042. ExtensionID = Guid.NewGuid();
  3043. sql += string.Format(@"Insert into ICSExtension(ID, Colspan, ProjectCode, BatchCode, Version, Brand, cFree1, cFree2, cFree3, cFree4, cFree5, cFree6, cFree7, cFree8, cFree9, cFree10, MTIME, MUSER, MUSERName, WorkPoint)
  3044. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  3045. ExtensionID, Colspan, queryParam["ProjectCode"].ToString(), queryParam["BatchCode"].ToString(), queryParam["Version"].ToString(), queryParam["Brand"].ToString(), queryParam["cFree1"].ToString(), queryParam["cFree2"].ToString(), queryParam["cFree3"].ToString(), queryParam["cFree4"].ToString(), queryParam["cFree5"].ToString(), queryParam["cFree6"].ToString(), queryParam["cFree7"].ToString(), queryParam["cFree8"].ToString(), queryParam["cFree9"].ToString(), queryParam["cFree10"].ToString(),
  3046. MUSER, MUSERNAME, WorkPoints);
  3047. }
  3048. //string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  3049. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 2);
  3050. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  3051. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  3052. LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  3053. sql += string.Format(@"insert into ICSInventoryLot
  3054. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  3055. select
  3056. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','14','{3}','{4}', getdate(),'{5}','{9}'
  3057. from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  3058. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, ExtensionID, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString());
  3059. sql += "\r\n";
  3060. }
  3061. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  3062. return count;
  3063. }
  3064. //委外材料出库
  3065. public DataTable GetGridJsonWWCLCK(string queryJson, ref Pagination jqgridparam)
  3066. {
  3067. DataTable dt = new DataTable();
  3068. var queryParam = queryJson.ToJObject();
  3069. List<DbParameter> parameter = new List<DbParameter>();
  3070. object Figure = GetDecimalDigits();
  3071. #region [SQL]
  3072. string sql = @"select a.ID,a.OApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  3073. CAST(a.Quantity AS DECIMAL(18,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(18,{0})) as Amount,CAST(a.IssueNegQuantity AS DECIMAL(18,{0})) as IssueNegQuantity ,a.ExtensionID,a.MUSERName,a.MTIME ,CAST(c.LOTQTY AS DECIMAL(18,{0})) as LOTQTY
  3074. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3075. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  3076. from ICSOApplyNegDetail a
  3077. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  3078. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3079. left join (
  3080. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3081. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='15'
  3082. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3083. )c
  3084. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3085. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3086. WHERE d.Type='3'";
  3087. sql = string.Format(sql, Figure);
  3088. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  3089. #endregion
  3090. if (!string.IsNullOrWhiteSpace(queryJson))
  3091. {
  3092. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  3093. {
  3094. sql += " and a.OApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  3095. }
  3096. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  3097. {
  3098. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  3099. }
  3100. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  3101. {
  3102. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  3103. }
  3104. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  3105. {
  3106. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  3107. }
  3108. }
  3109. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  3110. {
  3111. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  3112. }
  3113. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  3114. {
  3115. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  3116. }
  3117. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  3118. }
  3119. //委外材料出库
  3120. public DataTable GetSubGridJsonWWCLByCreate(string OApplyNegCode, string Sequence, string WorkPoint)
  3121. {
  3122. DataTable dt = new DataTable();
  3123. object Figure = GetDecimalDigits();
  3124. List<DbParameter> parameter = new List<DbParameter>();
  3125. string sql = @"
  3126. select a.InvCode,b.InvName,b.InvStd,b.InvUnit, CAST( a.Quantity AS DECIMAL(18,{0})) as Quantity,CAST( a.Amount as DECIMAL(18,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(18,{0})) as CreatedQty,
  3127. CAST( (a.Quantity-ISNULL(c.LOTQTY,0)) as DECIMAL(18,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,{0})) as EffectiveDays
  3128. from ICSOApplyNegDetail a
  3129. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  3130. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3131. left join (
  3132. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  3133. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo
  3134. group by b.TransCode,b.TransSequence
  3135. ) c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  3136. WHERE d.Type='3'
  3137. and a.OApplyNegCode='" + OApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  3138. sql += " and a.WorkPoint='" + WorkPoint + "'";
  3139. sql = string.Format(sql, Figure);
  3140. return Repository().FindTableBySql(sql.ToString());
  3141. }
  3142. //委外材料出库
  3143. public int SubmitFormWWCL(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  3144. {
  3145. var queryParam = keyValue.ToJObject();
  3146. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3147. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  3148. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  3149. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  3150. decimal LOTQTY = minPackQty;
  3151. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  3152. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  3153. //string Pre = "OMD" + OApplyNegCode + Sequence;
  3154. DateTime MTime = DateTime.Now;
  3155. var dateString = MTime.ToString("yyMMdd").Substring(1);
  3156. string Pre = "OMD" + OApplyNegCode + dateString;
  3157. string sql = string.Empty;
  3158. //string VendorLot = queryParam["VendorLot"].ToString();
  3159. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  3160. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  3161. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  3162. string sqls = string.Empty;
  3163. string Colspan = "";
  3164. for (int i = 0; i < createPageCount; i++)
  3165. {
  3166. if (i + 1 == createPageCount)
  3167. {
  3168. if (minPackQty * createPageCount > thisCreateQty)
  3169. {
  3170. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  3171. }
  3172. }
  3173. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  3174. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  3175. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  3176. if (ExtensionID == null)
  3177. {
  3178. ExtensionID = Guid.NewGuid();
  3179. sql += string.Format(@"Insert into ICSExtension(ID, Colspan, ProjectCode, BatchCode, Version, Brand, cFree1, cFree2, cFree3, cFree4, cFree5, cFree6, cFree7, cFree8, cFree9, cFree10, MTIME, MUSER, MUSERName, WorkPoint)
  3180. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  3181. ExtensionID, Colspan, queryParam["ProjectCode"].ToString(), queryParam["BatchCode"].ToString(), queryParam["Version"].ToString(), queryParam["Brand"].ToString(), queryParam["cFree1"].ToString(), queryParam["cFree2"].ToString(), queryParam["cFree3"].ToString(), queryParam["cFree4"].ToString(), queryParam["cFree5"].ToString(), queryParam["cFree6"].ToString(), queryParam["cFree7"].ToString(), queryParam["cFree8"].ToString(), queryParam["cFree9"].ToString(), queryParam["cFree10"].ToString(),
  3182. MUSER, MUSERNAME, WorkPoints);
  3183. }
  3184. //string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  3185. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 2);
  3186. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  3187. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  3188. LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  3189. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  3190. //{
  3191. sql += string.Format(@"insert into ICSInventoryLot
  3192. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  3193. select
  3194. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','15','{3}','{4}', getdate(),'{5}','{9}'
  3195. from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  3196. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, ExtensionID, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString());
  3197. sql += "\r\n";
  3198. //}
  3199. }
  3200. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  3201. return count;
  3202. }
  3203. public DataTable SelectICSExtensionEnable(string BeginTime, string EndTime)
  3204. {
  3205. string sql = @"select ColCode from ICSExtensionEnable
  3206. where Enable=0
  3207. order by cast(EATTRIBUTE1 as int)";
  3208. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  3209. return dt;
  3210. }
  3211. //返工工单
  3212. public DataTable GetGridJsonFGGD(string queryJson, ref Pagination jqgridparam)
  3213. {
  3214. DataTable dt = new DataTable();
  3215. var queryParam = queryJson.ToJObject();
  3216. List<DbParameter> parameter = new List<DbParameter>();
  3217. object Figure = GetDecimalDigits();
  3218. #region [SQL]
  3219. string sql = @"select a.ID,d.MOCode,d.Sequence+'-'+ a.Sequence as Sequence,a.PickID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  3220. CAST(a.Quantity AS DECIMAL(18,{0})) as Quantity
  3221. CAST(a.Amount AS DECIMAL(18,{0})) as Amount,CAST(a.IssueQuantity AS DECIMAL(18,{0})) as IssueQuantity ,a.ExtensionID,a.MUSERName,a.MTIME ,CAST(c.LOTQTY AS DECIMAL(18,{0})) as LOTQTY
  3222. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3223. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  3224. from ICSMOPick a
  3225. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint
  3226. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3227. left join (
  3228. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3229. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='16'
  3230. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3231. )c
  3232. on d.MOCode=c.TransCode and d.Sequence+'-'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3233. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3234. where a.EATTRIBUTE1='1' and d.EATTRIBUTE1='1'";
  3235. sql = string.Format(sql, Figure);
  3236. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  3237. #endregion
  3238. if (!string.IsNullOrWhiteSpace(queryJson))
  3239. {
  3240. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  3241. {
  3242. sql += " and d.MOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  3243. }
  3244. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  3245. {
  3246. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  3247. }
  3248. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  3249. {
  3250. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  3251. }
  3252. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  3253. {
  3254. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  3255. }
  3256. }
  3257. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  3258. {
  3259. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  3260. }
  3261. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  3262. {
  3263. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  3264. }
  3265. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  3266. }
  3267. public DataTable GetSubGridJsonFGGDCreate(string FGGDMOCode, string Sequence, string WorkPoint)
  3268. {
  3269. DataTable dt = new DataTable();
  3270. object Figure = GetDecimalDigits();
  3271. List<DbParameter> parameter = new List<DbParameter>();
  3272. string sql = @"
  3273. select a.InvCode,b.InvName,b.InvStd,b.InvUnit, CAST( a.Quantity AS DECIMAL(18,{0})) as Quantity,CAST( a.Amount as DECIMAL(18,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(18,{0})) as CreatedQty,
  3274. CAST( (a.Quantity-ISNULL(c.LOTQTY,0)) as DECIMAL(18,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,{0})) as EffectiveDays
  3275. from ICSMOPick a
  3276. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint
  3277. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3278. left join (
  3279. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  3280. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo
  3281. group by b.TransCode,b.TransSequence
  3282. ) c on d.MOCode=c.TransCode and d.Sequence+'-'+a.Sequence=c.TransSequence
  3283. WHERE 1=1
  3284. and d.MOCode='" + FGGDMOCode + "' and d.Sequence+'-'+a.Sequence='" + Sequence + "'";
  3285. sql += " and a.WorkPoint='" + WorkPoint + "'";
  3286. sql = string.Format(sql, Figure);
  3287. return Repository().FindTableBySql(sql.ToString());
  3288. }
  3289. //返工工单
  3290. public int SubmitFormFGGD(string FGGDMOCode, string Sequence, string keyValue, string WorkPoint)
  3291. {
  3292. var queryParam = keyValue.ToJObject();
  3293. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3294. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  3295. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  3296. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  3297. decimal LOTQTY = minPackQty;
  3298. //string Pre = "FG" + FGGDMOCode + Sequence;
  3299. DateTime MTime = DateTime.Now;
  3300. var dateString = MTime.ToString("yyMMdd").Substring(1);
  3301. string Pre = "FG" + FGGDMOCode + dateString;
  3302. string sql = string.Empty;
  3303. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  3304. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  3305. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  3306. string sqls = string.Empty;
  3307. string Colspan = "";
  3308. for (int i = 0; i < createPageCount; i++)
  3309. {
  3310. if (i + 1 == createPageCount)
  3311. {
  3312. if (minPackQty * createPageCount > thisCreateQty)
  3313. {
  3314. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  3315. }
  3316. }
  3317. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  3318. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  3319. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  3320. if (ExtensionID == null)
  3321. {
  3322. ExtensionID = Guid.NewGuid();
  3323. sql += string.Format(@"Insert into ICSExtension(ID, Colspan, ProjectCode, BatchCode, Version, Brand, cFree1, cFree2, cFree3, cFree4, cFree5, cFree6, cFree7, cFree8, cFree9, cFree10, MTIME, MUSER, MUSERName, WorkPoint)
  3324. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  3325. ExtensionID, Colspan, queryParam["ProjectCode"].ToString(), queryParam["BatchCode"].ToString(), queryParam["Version"].ToString(), queryParam["Brand"].ToString(), queryParam["cFree1"].ToString(), queryParam["cFree2"].ToString(), queryParam["cFree3"].ToString(), queryParam["cFree4"].ToString(), queryParam["cFree5"].ToString(), queryParam["cFree6"].ToString(), queryParam["cFree7"].ToString(), queryParam["cFree8"].ToString(), queryParam["cFree9"].ToString(), queryParam["cFree10"].ToString(),
  3326. MUSER, MUSERNAME, WorkPoints);
  3327. }
  3328. //string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  3329. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 2);
  3330. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  3331. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  3332. LotNo, FGGDMOCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  3333. sql += string.Format(@"insert into ICSInventoryLot
  3334. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  3335. select
  3336. newid(),'{0}',a.InvCode,'{1}','{10}','{2}','{8}','16','{3}','{4}', getdate(),'{5}','{9}'
  3337. from ICSMOPick a left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint where d.MOCode='{6}' and d.Sequence+'-'+a.Sequence='{7}' and a.WorkPoint='{5}' ",
  3338. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, FGGDMOCode, Sequence, ExtensionID, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString());
  3339. sql += "\r\n";
  3340. }
  3341. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  3342. return count;
  3343. }
  3344. //工序外协检验合格单过账SAP
  3345. public string GXWXCallSAPInterFace(string DocNoList)
  3346. {
  3347. try
  3348. {
  3349. string postUrlStr = System.Configuration.ConfigurationManager.AppSettings["HGDocpostUrlStr"].ToString();
  3350. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  3351. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  3352. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3353. #region 检验合格单
  3354. string sql = @" select ID,DNCode,SAPSequence,WHCode from ICSDeliveryNotice
  3355. where DNCode in ({0}) and WorkPoint='{1}'";
  3356. sql = string.Format(sql, DocNoList.TrimEnd(','), WorkPoint);
  3357. DataTable dt = Repository().FindTableBySql(sql.ToString());
  3358. for (int i = 0; i < dt.Rows.Count; i++)
  3359. {
  3360. #region 调用SAP接口(检验合格单为两层结构 一行对应一个序列号)
  3361. string IsSuccess = "";
  3362. string ErrorMessage = "";
  3363. SAPCallBackJYHGDVPN.ZWMS_SK_WS_RUKU Client = new SAPCallBackJYHGDVPN.ZWMS_SK_WS_RUKU();
  3364. SAPCallBackJYHGDVPN.ZWMS_SK_WS_RUKU1 Info = new SAPCallBackJYHGDVPN.ZWMS_SK_WS_RUKU1();
  3365. Info.NEWID = dt.Rows[i]["ID"].ToString();
  3366. Info.PRUEFLOS = dt.Rows[i]["DNCode"].ToString();
  3367. Info.L_LME = System.Decimal.Round(Convert.ToDecimal(dt.Rows[i]["SAPSequence"].ToString()), 3);
  3368. Info.SERNP = "";
  3369. Info.LGORT = dt.Rows[i]["WHCode"].ToString(); ;//仓库
  3370. Info.Z_GERNR = new SAPCallBackJYHGDVPN.ZWEBS_GERNR[0];
  3371. SAPCallBackJYHGDVPN.ZWMS_SK_WS_RUKUResponse result = new SAPCallBackJYHGDVPN.ZWMS_SK_WS_RUKUResponse();
  3372. result = Client.CallZWMS_SK_WS_RUKU(Info);
  3373. if (result.Z_NULL == "N")
  3374. {
  3375. IsSuccess = "N";
  3376. ErrorMessage += result.L_MESSAGE;
  3377. }
  3378. else
  3379. {
  3380. log.Debug("过账返回值:" + result.Z_NULL + "过账返回信息:" + result.L_MESSAGE);
  3381. string updatesql = @"update ICSDeliveryNotice set RCVQuantity=Convert(decimal(18,6),Quantity)
  3382. where DNCode='{0}' and WorkPoint='{1}'";
  3383. updatesql = string.Format(updatesql, dt.Rows[i]["DNCode"].ToString(), WorkPoint);
  3384. SqlHelper.CmdExecuteNonQueryLi(updatesql.ToString());
  3385. }
  3386. if (IsSuccess == "N")
  3387. {
  3388. log.Error("过账返回值:" + IsSuccess + "过账返回信息:" + ErrorMessage);
  3389. throw new Exception(ErrorMessage);
  3390. }
  3391. #endregion
  3392. }
  3393. #endregion
  3394. return "";
  3395. }
  3396. catch (Exception ex)
  3397. {
  3398. return ex.Message;
  3399. }
  3400. }
  3401. //单据上传货柜
  3402. public string DocUpLoadToHG(string DocNoList, string Type)
  3403. {
  3404. try
  3405. {
  3406. string postUrlStr = System.Configuration.ConfigurationManager.AppSettings["HGDocpostUrlStr"].ToString();
  3407. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  3408. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  3409. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3410. string DocNoInfo = DocNoList.TrimEnd(',');
  3411. StringBuilder stringBuilder = new StringBuilder();
  3412. string InspectJosn = "";
  3413. List<string> DocListSave = new List<string>();
  3414. #region 检验合格单
  3415. if (Type == "7")
  3416. {
  3417. InspectJosn += "{";
  3418. InspectJosn += "\"IMP_ORDINI\":[";
  3419. foreach (string DocNO in DocNoInfo.Split(','))
  3420. {
  3421. if (!DocListSave.Contains(DocNO))
  3422. {
  3423. DocListSave.Add(DocNO);
  3424. InspectJosn += "{";
  3425. InspectJosn += "\"ORD_ORDINE\":\"" + DocNO + "\",";
  3426. InspectJosn += "\"ORD_DES\":\"采购入库-采购到货单\",";
  3427. InspectJosn += "\"ORD_TIPOOP\":\"V\",";
  3428. InspectJosn += "\"ORD_CLIENTE\":\"" + WorkPoint + "\"";
  3429. InspectJosn += "},";
  3430. }
  3431. }
  3432. InspectJosn = InspectJosn.TrimEnd(',');
  3433. InspectJosn += "],";
  3434. InspectJosn += "\"IMP_ORDINI_RIGHE\":[";
  3435. foreach (string DocNO in DocListSave)
  3436. {
  3437. string sql = @" select A.DNCode,A.Sequence,A.InvCode,ISNULL(A.SAPSequence,A.Quantity) AS Quantity,B.LocationCode AS Area from ICSDeliveryNotice A
  3438. INNER JOIN ICSInventoryDetail B ON B.WHCode=A.WHCode AND B.INVCode=A.InvCode AND B.WorkPoint=A.WorkPoint
  3439. where A.DNCode='{0}' and A.WorkPoint='{1}'";
  3440. sql = string.Format(sql, DocNO, WorkPoint);
  3441. DataTable dt = Repository().FindTableBySql(sql.ToString());
  3442. for (int i = 0; i < dt.Rows.Count; i++)
  3443. {
  3444. //RIG_ELERUOLI_GEST-区域-出入库都要
  3445. //RIG_ELEBAIE-机器出口-出库-出库才要
  3446. InspectJosn += "{";
  3447. InspectJosn += "\"RIG_ORDINE\":\"" + DocNO + "\",";
  3448. InspectJosn += "\"RIG_ARTICOLO\": \"" + dt.Rows[i]["InvCode"].ToString() + "\",";
  3449. InspectJosn += "\"RIG_SUB1\": \"\",";
  3450. InspectJosn += "\"RIG_SUB2\": \"\",";
  3451. InspectJosn += "\"RIG_ELEBAIE\": \"\",";
  3452. InspectJosn += "\"RIG_ELERUOLI_GEST\": \"" + dt.Rows[i]["Area"].ToString() + "\",";
  3453. InspectJosn += "\"RIG_QTAR\": " + dt.Rows[i]["Quantity"].ToString() + ",";
  3454. InspectJosn += "\"RIG_HOSTINF\": " + dt.Rows[i]["Sequence"].ToString() + "";
  3455. InspectJosn += "},";
  3456. }
  3457. stringBuilder.Append($@"'{DocNO}',");
  3458. }
  3459. InspectJosn = InspectJosn.TrimEnd(',');
  3460. InspectJosn += "]";
  3461. InspectJosn += "}";
  3462. }
  3463. #endregion
  3464. #region 机加工成品入库单
  3465. if (Type == "9")
  3466. {
  3467. InspectJosn += "{";
  3468. InspectJosn += "\"IMP_ORDINI\":[";
  3469. foreach (string DocNO in DocNoInfo.Split(','))
  3470. {
  3471. if (!DocListSave.Contains(DocNO))
  3472. {
  3473. DocListSave.Add(DocNO);
  3474. InspectJosn += "{";
  3475. InspectJosn += "\"ORD_ORDINE\":\"" + DocNO + "\",";
  3476. InspectJosn += "\"ORD_DES\":\"产成品入库-产成品入库单\",";
  3477. InspectJosn += "\"ORD_TIPOOP\":\"V\",";
  3478. InspectJosn += "\"ORD_CLIENTE\":\"" + WorkPoint + "\"";
  3479. InspectJosn += "},";
  3480. }
  3481. }
  3482. InspectJosn = InspectJosn.TrimEnd(',');
  3483. InspectJosn += "],";
  3484. InspectJosn += "\"IMP_ORDINI_RIGHE\":[";
  3485. foreach (string DocNO in DocListSave)
  3486. {
  3487. string sql = @" select A.RCVCode,A.Sequence,A.InvCode,A.Quantity,B.LocationCode AS Area from ICSManufactureReceive A
  3488. INNER JOIN ICSInventoryDetail B ON B.WHCode=A.WHCode AND B.INVCode=A.InvCode AND B.WorkPoint=A.WorkPoint
  3489. where A.RCVCode='{0}' and A.WorkPoint='{1}'";
  3490. sql = string.Format(sql, DocNO, WorkPoint);
  3491. DataTable dt = Repository().FindTableBySql(sql.ToString());
  3492. for (int i = 0; i < dt.Rows.Count; i++)
  3493. {
  3494. //RIG_ELERUOLI_GEST-区域-出入库都要
  3495. //RIG_ELEBAIE-机器出口-出库-出库才要
  3496. InspectJosn += "{";
  3497. InspectJosn += "\"RIG_ORDINE\":\"" + DocNO + "\",";
  3498. InspectJosn += "\"RIG_ARTICOLO\": \"" + dt.Rows[i]["InvCode"].ToString() + "\",";
  3499. InspectJosn += "\"RIG_SUB1\": \"\",";
  3500. InspectJosn += "\"RIG_SUB2\": \"\",";
  3501. InspectJosn += "\"RIG_ELEBAIE\": \"\",";
  3502. InspectJosn += "\"RIG_ELERUOLI_GEST\": \"" + dt.Rows[i]["Area"].ToString() + "\",";
  3503. InspectJosn += "\"RIG_QTAR\": " + dt.Rows[i]["Quantity"].ToString() + ",";
  3504. InspectJosn += "\"RIG_HOSTINF\": " + dt.Rows[i]["Sequence"].ToString() + "";
  3505. InspectJosn += "},";
  3506. }
  3507. }
  3508. InspectJosn = InspectJosn.TrimEnd(',');
  3509. InspectJosn += "]";
  3510. InspectJosn += "}";
  3511. }
  3512. #endregion
  3513. #region 生产退料单
  3514. if (Type == "12")
  3515. {
  3516. InspectJosn += "{";
  3517. InspectJosn += "\"IMP_ORDINI\":[";
  3518. foreach (string DocNO in DocNoInfo.Split(','))
  3519. {
  3520. if (!DocListSave.Contains(DocNO))
  3521. {
  3522. DocListSave.Add(DocNO);
  3523. InspectJosn += "{";
  3524. InspectJosn += "\"ORD_ORDINE\":\"" + DocNO + "\",";
  3525. InspectJosn += "\"ORD_DES\":\"生产退料-生产退料单-领料申请单\",";
  3526. InspectJosn += "\"ORD_TIPOOP\":\"V\",";
  3527. InspectJosn += "\"ORD_CLIENTE\":\"" + WorkPoint + "\"";
  3528. InspectJosn += "},";
  3529. }
  3530. }
  3531. InspectJosn = InspectJosn.TrimEnd(',');
  3532. InspectJosn += "],";
  3533. InspectJosn += "\"IMP_ORDINI_RIGHE\":[";
  3534. foreach (string DocNO in DocListSave)
  3535. {
  3536. string sql = @" select A.ApplyNegCode,B.Sequence,B.InvCode,B.Quantity,C.LocationCode AS Area from ICSMOApplyNeg A
  3537. INNER JOIN ICSMOApplyNegDetail B ON B.ApplyNegCode=A.ApplyNegCode AND B.WorkPoint=A.WorkPoint
  3538. INNER JOIN ICSInventoryDetail C ON C.WHCode=B.WHCode AND C.INVCode=B.InvCode AND C.WorkPoint=B.WorkPoint
  3539. where A.ApplyNegCode='{0}' and A.WorkPoint='{1}'";
  3540. sql = string.Format(sql, DocNO, WorkPoint);
  3541. DataTable dt = Repository().FindTableBySql(sql.ToString());
  3542. for (int i = 0; i < dt.Rows.Count; i++)
  3543. {
  3544. //RIG_ELERUOLI_GEST-区域-出入库都要
  3545. //RIG_ELEBAIE-机器出口-出库-出库才要
  3546. InspectJosn += "{";
  3547. InspectJosn += "\"RIG_ORDINE\":\"" + DocNO + "\",";
  3548. InspectJosn += "\"RIG_ARTICOLO\": \"" + dt.Rows[i]["InvCode"].ToString() + "\",";
  3549. InspectJosn += "\"RIG_SUB1\": \"\",";
  3550. InspectJosn += "\"RIG_SUB2\": \"\",";
  3551. InspectJosn += "\"RIG_ELEBAIE\": \"\",";
  3552. InspectJosn += "\"RIG_ELERUOLI_GEST\": \"" + dt.Rows[i]["Area"].ToString() + "\",";
  3553. InspectJosn += "\"RIG_QTAR\": " + dt.Rows[i]["Quantity"].ToString() + ",";
  3554. InspectJosn += "\"RIG_HOSTINF\": " + dt.Rows[i]["Sequence"].ToString() + "";
  3555. InspectJosn += "},";
  3556. }
  3557. stringBuilder.Append($@"'{DocNO}',");
  3558. }
  3559. InspectJosn = InspectJosn.TrimEnd(',');
  3560. InspectJosn += "]";
  3561. InspectJosn += "}";
  3562. }
  3563. #endregion
  3564. string result = "";
  3565. if (Convert.ToBoolean(System.Configuration.ConfigurationManager.AppSettings["UploadERP"]))
  3566. {
  3567. #region 货柜接口调用前日志
  3568. object logID = Guid.NewGuid();
  3569. string logsql = @"insert into ICSWMS_HGLog
  3570. values
  3571. ('{0}',GETDATE(),'{1}','{2}','{3}','{4}','{5}')";
  3572. logsql = string.Format(logsql, logID, InspectJosn, "", WorkPoint, MUSER, MUSERNAME);
  3573. SqlHelper.CmdExecuteNonQueryLi(logsql);
  3574. #endregion
  3575. result = HTTPHelper.RestFulGet(InspectJosn, postUrlStr);
  3576. #region 货柜接口调用后日志
  3577. logsql = @"update ICSWMS_HGLog set ReturnResult='{0}'
  3578. where ID='{1}'";
  3579. logsql = string.Format(logsql, result, logID);
  3580. SqlHelper.CmdExecuteNonQueryLi(logsql);
  3581. #endregion
  3582. if (!result.Contains("successo"))
  3583. {
  3584. ICSHGResult hgresult = JsonConvert.DeserializeObject<ICSHGResult>(result.TrimStart('[').TrimEnd(']'));
  3585. throw new Exception("货柜单据传输接口调用报错,主要报错信息:" + hgresult.PrimaryError + ",次要报错信息:" + hgresult.SecondaryError + "");
  3586. }
  3587. string sb = stringBuilder.ToString().TrimEnd(',');
  3588. string sqlString = string.Empty;
  3589. if (Type == "7")
  3590. {
  3591. sqlString = $@"UPDATE ICSDeliveryNotice SET EATTRIBUTE3='1' WHERE DNCode IN ({sb})";
  3592. }
  3593. if (Type == "12")
  3594. {
  3595. sqlString = $@" UPDATE ICSMOApplyNegDetail SET EATTRIBUTE='1' WHERE ApplyNegCode in ({sb});";
  3596. }
  3597. if (!sqlString.IsEmpty())
  3598. {
  3599. SqlHelper.CmdExecuteNonQueryLi(sqlString.ToString());
  3600. }
  3601. }
  3602. return "";
  3603. }
  3604. catch (Exception ex)
  3605. {
  3606. return ex.Message;
  3607. }
  3608. }
  3609. public object GetDecimalDigits()
  3610. {
  3611. try
  3612. {
  3613. string sql = string.Empty;
  3614. sql = @"select Figure from ICSConfiguration where Code='Figure001' and Enable='1'";
  3615. object Figure = SqlHelper.ExecuteScalar(sql);
  3616. return Figure;
  3617. }
  3618. catch (Exception ex)
  3619. {
  3620. throw new Exception(ex.Message.ToString());
  3621. }
  3622. }
  3623. public object GetQiSetNum(string keyValue)
  3624. {
  3625. int Num = 0;
  3626. string msg = "";
  3627. string APIURL = ConfigurationManager.ConnectionStrings["ERPAPIURL"].ConnectionString + "Complete/Approve";
  3628. string result = HttpPost(APIURL, keyValue);
  3629. JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText);
  3630. string MessAge = Obj["Message"].ToString();
  3631. string Success = Obj["Success"].ToString();
  3632. if (Success.ToUpper() == "FALSE")
  3633. {
  3634. msg = MessAge;
  3635. }
  3636. if (msg == "")
  3637. {
  3638. JArray res = (JArray)JsonConvert.DeserializeObject(Obj["Data"].ToString());
  3639. foreach (var item in res)
  3640. {
  3641. JObject jo = (JObject)item;
  3642. Num = Convert.ToInt32(jo["min_lotqty"].ToString());
  3643. }
  3644. }
  3645. var Header = new
  3646. {
  3647. msg = msg,
  3648. Num = Num,
  3649. };
  3650. return Header;
  3651. }
  3652. //接口api解析
  3653. public static string HttpPost(string url, string body)
  3654. {
  3655. try
  3656. {
  3657. Encoding encoding = Encoding.UTF8;
  3658. HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
  3659. request.Method = "POST";
  3660. request.Accept = "application/json, text/javascript, */*"; //"text/html, application/xhtml+xml, */*";
  3661. request.ContentType = "application/json; charset=utf-8";
  3662. byte[] buffer = encoding.GetBytes(body);
  3663. request.ContentLength = buffer.Length;
  3664. request.GetRequestStream().Write(buffer, 0, buffer.Length);
  3665. HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  3666. using (StreamReader reader = new StreamReader(response.GetResponseStream(), encoding))
  3667. {
  3668. return reader.ReadToEnd();
  3669. }
  3670. }
  3671. catch (WebException ex)
  3672. {
  3673. throw new Exception(ex.Message);
  3674. }
  3675. }
  3676. public bool GetGeneratedNum(string Code, string Sequence, string Type, string thisCreateQty)
  3677. {
  3678. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3679. DataTable dt = new DataTable();
  3680. List<DbParameter> parameter = new List<DbParameter>();
  3681. string sql = string.Empty;
  3682. bool flag = true;
  3683. if (Type == "1")
  3684. {
  3685. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  3686. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  3687. from ICSMOApplyNegDetail a
  3688. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  3689. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3690. left join(select a.ApplyNegCode,a.Sequence,a.WorkPoint,
  3691. case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
  3692. from ICSMOApplyNegDetail a
  3693. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint) xx on xx.ApplyNegCode=a.ApplyNegCode and xx.Sequence=a.Sequence and xx.WorkPoint=a.WorkPoint
  3694. left join (
  3695. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3696. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='1'
  3697. where isnull(ee.EATTRIBUTE1,'')=''
  3698. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3699. )c
  3700. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3701. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3702. where d.Type='1'
  3703. and a.ApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  3704. }
  3705. if (Type == "2")
  3706. {
  3707. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  3708. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  3709. from ICSOApplyNegDetail a
  3710. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  3711. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3712. left join(select a.OApplyNegCode,a.Sequence,a.WorkPoint,
  3713. case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
  3714. from ICSOApplyNegDetail a
  3715. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint) xx on xx.OApplyNegCode=a.OApplyNegCode and xx.Sequence=a.Sequence and xx.WorkPoint=a.WorkPoint
  3716. left join (
  3717. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3718. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='2'
  3719. where isnull(ee.EATTRIBUTE1,'')=''
  3720. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3721. )c
  3722. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3723. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3724. WHERE d.Type='1' and a.OApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  3725. }
  3726. if (Type == "3")
  3727. {
  3728. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  3729. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  3730. from ICSMO a
  3731. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3732. left join(select a.MODetailID,a.Sequence,a.WorkPoint,
  3733. case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
  3734. from ICSMO a
  3735. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint) xx on xx.MODetailID=a.MODetailID and xx.Sequence=a.Sequence and xx.WorkPoint=a.WorkPoint
  3736. left join (
  3737. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3738. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='3'
  3739. where isnull(ee.EATTRIBUTE1,'')=''
  3740. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3741. )c
  3742. on a.MOCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3743. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3744. WHERE 1=1 and a.MOStatus<>'3' and a.MOCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  3745. }
  3746. if (Type == "4")
  3747. {
  3748. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  3749. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  3750. from ICSSDN a
  3751. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3752. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3753. left join(select a.SDNCode,a.Sequence,a.WorkPoint,
  3754. case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
  3755. from ICSSDN a
  3756. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint) xx on xx.SDNCode=a.SDNCode and xx.Sequence=a.Sequence and xx.WorkPoint=a.WorkPoint
  3757. left join (
  3758. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3759. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='4'
  3760. where isnull(ee.EATTRIBUTE1,'')=''
  3761. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3762. )c
  3763. on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3764. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3765. where a.Type='2'
  3766. and a.SDNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  3767. }
  3768. if (Type == "5")
  3769. {
  3770. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  3771. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  3772. from ICSOtherIn a
  3773. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3774. left join(select a.InCode,a.Sequence,a.WorkPoint,
  3775. case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
  3776. from ICSOtherIn a
  3777. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint) xx on xx.InCode=a.InCode and xx.Sequence=a.Sequence and xx.WorkPoint=a.WorkPoint
  3778. left join (
  3779. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3780. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='5'
  3781. where isnull(ee.EATTRIBUTE1,'')=''
  3782. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3783. )c
  3784. on a.InCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3785. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3786. where a.Status='1'
  3787. and a.InCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  3788. }
  3789. if (Type == "6")
  3790. {
  3791. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  3792. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  3793. from ICSReturn a
  3794. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3795. left join(select a.ReturnCode,a.Sequence,a.WorkPoint,
  3796. case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
  3797. from ICSReturn a
  3798. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint) xx on xx.ReturnCode=a.ReturnCode and xx.Sequence=a.Sequence and xx.WorkPoint=a.WorkPoint
  3799. left join (
  3800. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3801. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='6'
  3802. where isnull(ee.EATTRIBUTE1,'')=''
  3803. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3804. ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3805. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3806. where a.Status='2'
  3807. and a.ReturnCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  3808. }
  3809. if (Type == "7")
  3810. {
  3811. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  3812. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  3813. from ICSDeliveryNotice a
  3814. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3815. left join(select a.DNCode,a.Sequence,a.WorkPoint,
  3816. case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
  3817. from ICSDeliveryNotice a
  3818. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint) xx on xx.DNCode=a.DNCode and xx.Sequence=a.Sequence and xx.WorkPoint=a.WorkPoint
  3819. left join (
  3820. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3821. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='7'
  3822. where isnull(ee.EATTRIBUTE1,'')=''
  3823. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3824. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3825. inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  3826. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  3827. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3828. where a.DNType='1' and a.Status='2' and a.ASNCode is null
  3829. and a.DNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  3830. }
  3831. if (Type == "8")
  3832. {
  3833. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  3834. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  3835. from ICSODeliveryNotice a
  3836. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3837. left join(select a.ODNCode,a.Sequence,a.WorkPoint,
  3838. case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
  3839. from ICSODeliveryNotice a
  3840. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint) xx on xx.ODNCode=a.ODNCode and xx.Sequence=a.Sequence and xx.WorkPoint=a.WorkPoint
  3841. left join (
  3842. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3843. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='8'
  3844. where isnull(ee.EATTRIBUTE1,'')=''
  3845. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3846. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3847. inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  3848. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  3849. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3850. where a.ODNType='1' and a.Status='2' and a.OASNCode is null
  3851. and a.ODNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  3852. }
  3853. if (Type == "9")
  3854. {
  3855. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  3856. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  3857. from ICSManufactureReceive a
  3858. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3859. left join(select a.RCVCode,a.Sequence,a.WorkPoint,
  3860. case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
  3861. from ICSManufactureReceive a
  3862. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint) xx on xx.RCVCode=a.RCVCode and xx.Sequence=a.Sequence and xx.WorkPoint=a.WorkPoint
  3863. left join (
  3864. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3865. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='9'
  3866. where isnull(ee.EATTRIBUTE1,'')=''
  3867. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3868. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3869. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3870. where a.Status='1' and a.Type='1'
  3871. and a.RCVCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  3872. }
  3873. if (Type == "10")
  3874. {
  3875. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  3876. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  3877. from ICSDeliveryNotice a
  3878. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3879. left join(select a.DNCode,a.Sequence,a.WorkPoint,
  3880. case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
  3881. from ICSDeliveryNotice a
  3882. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint) xx on xx.DNCode=a.DNCode and xx.Sequence=a.Sequence and xx.WorkPoint=a.WorkPoint
  3883. left join (
  3884. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3885. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='10'
  3886. where isnull(ee.EATTRIBUTE1,'')=''
  3887. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3888. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3889. --inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  3890. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  3891. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3892. where a.DNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  3893. and a.DNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  3894. }
  3895. if (Type == "11")
  3896. {
  3897. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  3898. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  3899. from ICSODeliveryNotice a
  3900. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3901. left join(select a.ODNCode,a.Sequence,a.WorkPoint,
  3902. case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
  3903. from ICSODeliveryNotice a
  3904. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint) xx on xx.ODNCode=a.ODNCode and xx.Sequence=a.Sequence and xx.WorkPoint=a.WorkPoint
  3905. left join (
  3906. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3907. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='11'
  3908. where isnull(ee.EATTRIBUTE1,'')=''
  3909. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3910. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3911. --inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  3912. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  3913. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3914. where a.ODNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  3915. and a.ODNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  3916. }
  3917. if (Type == "12")
  3918. {
  3919. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  3920. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  3921. from ICSMOApplyNegDetail a
  3922. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  3923. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3924. left join(select a.ApplyNegCode,a.Sequence,a.WorkPoint,
  3925. case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
  3926. from ICSMOApplyNegDetail a
  3927. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint) xx on xx.ApplyNegCode=a.ApplyNegCode and xx.Sequence=a.Sequence and xx.WorkPoint=a.WorkPoint
  3928. left join (
  3929. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3930. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='12'
  3931. where isnull(ee.EATTRIBUTE1,'')=''
  3932. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3933. )c
  3934. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3935. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3936. WHERE d.Type='2'
  3937. and a.ApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  3938. }
  3939. if (Type == "13")
  3940. {
  3941. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  3942. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  3943. from ICSMOApplyNegDetail a
  3944. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  3945. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3946. left join(select a.ApplyNegCode,a.Sequence,a.WorkPoint,
  3947. case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
  3948. from ICSMOApplyNegDetail a
  3949. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint) xx on xx.ApplyNegCode=a.ApplyNegCode and xx.Sequence=a.Sequence and xx.WorkPoint=a.WorkPoint
  3950. left join (
  3951. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3952. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='13'
  3953. where isnull(ee.EATTRIBUTE1,'')=''
  3954. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3955. )c
  3956. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3957. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3958. WHERE d.Type='3'
  3959. and a.ApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  3960. }
  3961. if (Type == "14")
  3962. {
  3963. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  3964. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  3965. from ICSOApplyNegDetail a
  3966. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  3967. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3968. left join(select a.OApplyNegCode,a.Sequence,a.WorkPoint,
  3969. case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
  3970. from ICSOApplyNegDetail a
  3971. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint) xx on xx.OApplyNegCode=a.OApplyNegCode and xx.Sequence=a.Sequence and xx.WorkPoint=a.WorkPoint
  3972. left join (
  3973. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3974. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='14'
  3975. where isnull(ee.EATTRIBUTE1,'')=''
  3976. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3977. )c
  3978. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3979. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3980. WHERE d.Type='2'
  3981. and a.OApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  3982. }
  3983. if (Type == "15")
  3984. {
  3985. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  3986. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  3987. from ICSOApplyNegDetail a
  3988. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  3989. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3990. left join(select a.OApplyNegCode,a.Sequence,a.WorkPoint,
  3991. case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
  3992. from ICSOApplyNegDetail a
  3993. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint) xx on xx.OApplyNegCode=a.OApplyNegCode and xx.Sequence=a.Sequence and xx.WorkPoint=a.WorkPoint
  3994. left join (
  3995. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3996. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='15'
  3997. where isnull(ee.EATTRIBUTE1,'')=''
  3998. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3999. )c
  4000. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4001. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4002. WHERE d.Type='3'
  4003. and a.OApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  4004. }
  4005. if (Type == "16")
  4006. {
  4007. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  4008. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  4009. from ICSMOPick a
  4010. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  4011. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4012. left join(select a.MODetailID,a.Sequence,a.WorkPoint,
  4013. case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
  4014. from ICSMOPick a
  4015. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint) xx on xx.MODetailID=a.MODetailID and xx.Sequence=a.Sequence and xx.WorkPoint=a.WorkPoint
  4016. left join (
  4017. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4018. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='16'
  4019. where isnull(ee.EATTRIBUTE1,'')=''
  4020. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4021. )c
  4022. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4023. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4024. where a.EATTRIBUTE1='1' and d.EATTRIBUTE1='1'
  4025. and d.MOCode='" + Code + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  4026. }
  4027. if (Type == "18")
  4028. {
  4029. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  4030. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  4031. from ICSMOPick a
  4032. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  4033. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4034. left join(select a.MODetailID,a.Sequence,a.WorkPoint,
  4035. case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
  4036. from ICSMOPick a
  4037. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint) xx on xx.MODetailID=a.MODetailID and xx.Sequence=a.Sequence and xx.WorkPoint=a.WorkPoint
  4038. left join (
  4039. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4040. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='18'
  4041. where isnull(ee.EATTRIBUTE1,'')=''
  4042. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4043. )c
  4044. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4045. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4046. where a.EATTRIBUTE1='1'
  4047. and d.MOCode='" + Code + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  4048. }
  4049. dt = SqlHelper.GetDataTableBySql(sql);
  4050. decimal Quantity = Convert.ToDecimal(dt.Rows[0]["Quantity"].ToString());
  4051. decimal LOTQTY = Convert.ToDecimal(dt.Rows[0]["LOTQTY"].ToString());
  4052. decimal thisQty = Convert.ToDecimal(thisCreateQty);
  4053. if (LOTQTY + thisQty > Quantity)
  4054. {
  4055. flag = false;
  4056. }
  4057. return flag;
  4058. }
  4059. }
  4060. }