纽威
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

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