纽威
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.

2590 lines
161 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
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
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
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
2 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
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
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
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
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
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
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
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
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
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
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
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
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
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
2 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
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
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
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
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
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
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 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. namespace NFine.Application.WMS
  16. {
  17. public class WMSCreateItemLotApp : RepositoryFactory<ICSVendor>
  18. {
  19. public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam)
  20. {
  21. DataTable dt = new DataTable();
  22. var queryParam = queryJson.ToJObject();
  23. List<DbParameter> parameter = new List<DbParameter>();
  24. object Figure = GetDecimalDigits();
  25. #region [SQL]
  26. 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
  27. ,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
  28. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  29. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  30. from ICSMOApplyNegDetail a
  31. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  32. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  33. left join (
  34. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  35. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='1'
  36. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  37. )c
  38. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  39. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  40. where d.Type='1'";
  41. sql = string.Format(sql, Figure);
  42. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  43. #endregion
  44. if (!string.IsNullOrWhiteSpace(queryJson))
  45. {
  46. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  47. {
  48. sql += " and a.ApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  49. }
  50. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  51. {
  52. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  53. }
  54. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  55. {
  56. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  57. }
  58. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  59. {
  60. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  61. }
  62. }
  63. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  64. {
  65. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  66. }
  67. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  68. {
  69. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  70. }
  71. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  72. }
  73. public DataTable GetSubGridJson(string ApplyNegCode, string Sequence, string Type, ref Pagination jqgridparam)
  74. {
  75. DataTable dt = new DataTable();
  76. object Figure = GetDecimalDigits();
  77. List<DbParameter> parameter = new List<DbParameter>();
  78. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  79. string sql = @" select c.TransCode,c.TransSequence ,a.ID,a.LotNo, CAST( a.Quantity AS DECIMAL(18,{0})) as Quantity ,a.MUSERName,a.MTIME
  80. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  81. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  82. from ICSInventoryLot a
  83. left join (select count(LotNo) LotNoCount,LotNo,WorkPoint from ICSWareHouseLotInfo
  84. group by LotNo,WorkPoint)b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  85. left join ICSInventoryLotDetail c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  86. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  87. WHERE a.Type='" + Type + "' and c.TransCode='" + ApplyNegCode + "' and c.TransSequence='" + Sequence + "' and a.WorkPoint in ('" + WorkPoint + "')";
  88. sql = string.Format(sql, Figure);
  89. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  90. }
  91. /// <summary>
  92. /// 点击生成条码
  93. /// </summary>
  94. public DataTable GetSubGridJsonByCreate(string ApplyNegCode, string Sequence, string WorkPoint)
  95. {
  96. DataTable dt = new DataTable();
  97. object Figure = GetDecimalDigits();
  98. List<DbParameter> parameter = new List<DbParameter>();
  99. 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 ,
  100. 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
  101. from ICSMOApplyNegDetail a
  102. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  103. left join (
  104. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  105. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo
  106. group by b.TransCode,b.TransSequence
  107. ) c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  108. WHERE 1 =1
  109. and a.ApplyNegCode='" + ApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  110. sql += " and a.WorkPoint='" + WorkPoint + "'";
  111. sql = string.Format(sql, Figure);
  112. return Repository().FindTableBySql(sql.ToString());
  113. }
  114. public DataTable GetVendorLotNo(string VenCode, string WorkPoint)
  115. {
  116. DataTable dt = new DataTable();
  117. //var queryParam = queryJson.ToJObject();
  118. List<DbParameter> parameter = new List<DbParameter>();
  119. string dtPre = DateTime.Now.ToString("yyyyMMdd");
  120. string sql = @"EXEC Addins_GetSerialCode '" + WorkPoint + "','ICSITEMLotNo','VendorLotNo','" + VenCode + dtPre + "',2";
  121. return Repository().FindTableBySql(sql.ToString());
  122. }
  123. /// <summary>
  124. /// 生产退料生成条码
  125. /// </summary>
  126. /// <param name="POCode"></param>
  127. /// <param name="PORow"></param>
  128. /// <param name="keyValue"></param>
  129. /// 已改
  130. /// <returns></returns>
  131. public int CreateItemLotNo(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  132. {
  133. var queryParam = keyValue.ToJObject();
  134. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  135. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  136. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  137. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  138. decimal LOTQTY = minPackQty;
  139. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  140. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  141. string Pre = "MDN" + ApplyNegCode + Sequence;
  142. string sql = string.Empty;
  143. //string VendorLot = queryParam["VendorLot"].ToString();
  144. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  145. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  146. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  147. string Colspan = "";
  148. string sqls = string.Empty;
  149. for (int i = 0; i < createPageCount; i++)
  150. {
  151. if (i + 1 == createPageCount)
  152. {
  153. if (minPackQty * createPageCount > thisCreateQty)
  154. {
  155. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  156. }
  157. }
  158. 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();
  159. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  160. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  161. if (ExtensionID == null)
  162. {
  163. ExtensionID = Guid.NewGuid();
  164. 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)
  165. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  166. 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(),
  167. MUSER, MUSERNAME, WorkPoints);
  168. }
  169. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  170. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  171. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  172. LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  173. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  174. //{
  175. sql += string.Format(@"insert into ICSInventoryLot
  176. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  177. select
  178. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','1','{3}','{4}', getdate(),'{5}','{9}'
  179. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  180. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, ExtensionID, Convert.ToDecimal( Convert.ToDecimal(queryParam["Amount"].ToString())/ minPackQty* LOTQTY)/ minPackQty* LOTQTY, queryParam["ExpirationDate"].ToString());
  181. sql += "\r\n";
  182. //}
  183. }
  184. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  185. return count;
  186. }
  187. public string GetSerialCode(string workPointCode, string tbName, string colName, string Pre, int numLen)
  188. {
  189. string sql = "EXEC Addins_GetSerialCode '{0}','{1}','{2}','{3}',{4}";
  190. sql = string.Format(sql, new object[] { workPointCode, tbName, colName, Pre, numLen });
  191. return DbHelper.ExecuteScalar(CommandType.Text, sql).ToString();
  192. }
  193. /// <summary>
  194. /// 删除条码
  195. /// </summary>
  196. /// <param name="keyValue"></param>
  197. /// <returns></returns>
  198. public string DeleteItemLot(string keyValue)
  199. {
  200. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  201. string msg = string.Empty;
  202. string sql = string.Format(@"SELECT * FROM dbo.ICSInspection
  203. WHERE LotNo IN (SELECT LotNO FROM dbo.ICSInventoryLot WHERE ID IN ({0})) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  204. DataTable dtASN = SqlHelper.GetDataTableBySql(sql);
  205. if (dtASN != null && dtASN.Rows.Count > 0)
  206. {
  207. msg = "所选条码已生成检验单,无法删除!";
  208. }
  209. sql = string.Format(@"SELECT * FROM dbo.ICSWareHouseLotInfo WHERE LotNO IN
  210. (SELECT LotNO FROM dbo.ICSInventoryLot WHERE ID IN ({0})) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  211. DataTable dtCarton = SqlHelper.GetDataTableBySql(sql);
  212. if (dtCarton != null && dtCarton.Rows.Count > 0)
  213. {
  214. msg += "所选条码已入库,无法删除!";
  215. }
  216. if (string.IsNullOrEmpty(msg))
  217. {
  218. 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);
  219. sqls += string.Format("DELETE FROM dbo.ICSInventoryLot WHERE ID IN ({0}) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  220. SqlHelper.CmdExecuteNonQueryLi(sqls);
  221. }
  222. return msg;
  223. }
  224. public DataTable GetGridJsonWeiWai(string queryJson, ref Pagination jqgridparam)
  225. {
  226. DataTable dt = new DataTable();
  227. var queryParam = queryJson.ToJObject();
  228. List<DbParameter> parameter = new List<DbParameter>();
  229. object Figure = GetDecimalDigits();
  230. #region [SQL]
  231. 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
  232. ,CAST(a.Amount AS DECIMAL(18,{0})) as Amount , CAST(a.IssueNegQuantity AS DECIMAL(18,{0})) as IssueNegQuantity,a.ExtensionID,a.MUSERName,a.MTIME ,
  233. CAST(c.LOTQTY AS DECIMAL(18,{0})) as LOTQTY
  234. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  235. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  236. from ICSOApplyNegDetail a
  237. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  238. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  239. left join (
  240. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  241. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='2'
  242. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  243. )c
  244. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  245. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  246. WHERE d.Type='1' ";
  247. sql = string.Format(sql, Figure);
  248. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  249. #endregion
  250. if (!string.IsNullOrWhiteSpace(queryJson))
  251. {
  252. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  253. {
  254. sql += " and a.OApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  255. }
  256. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  257. {
  258. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  259. }
  260. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  261. {
  262. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  263. }
  264. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  265. {
  266. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  267. }
  268. }
  269. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  270. {
  271. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  272. }
  273. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  274. {
  275. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  276. }
  277. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  278. }
  279. public DataTable GetSubGridJsonWeiWai(string OApplyNegCode, string Sequence, ref Pagination jqgridparam)
  280. {
  281. DataTable dt = new DataTable();
  282. object Figure = GetDecimalDigits();
  283. //var queryParam = queryJson.ToJObject();
  284. List<DbParameter> parameter = new List<DbParameter>();
  285. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  286. string sql = @" select c.TransCode,c.TransSequence ,a.ID,a.LotNo,CAST(a.Quantity AS DECIMAL(18,{0})) as Quantity from ICSInventoryLot a
  287. left join (select count(LotNo) LotNoCount,LotNo,WorkPoint from ICSWareHouseLotInfo
  288. group by LotNo,WorkPoint)b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  289. left join ICSInventoryLotDetail c on a.LotNo=c.LotNo
  290. WHERE c.TransCode='" + OApplyNegCode + "' and c.TransSequence='" + Sequence + "' and a.WorkPoint in (" + WorkPoint + ")";
  291. sql = string.Format(sql, Figure);
  292. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  293. }
  294. /// <summary>
  295. /// 点击委外退料生成条码
  296. /// </summary>
  297. public DataTable GetSubGridJsonWeiWaiByCreate(string OApplyNegCode, string Sequence, string WorkPoint)
  298. {
  299. DataTable dt = new DataTable();
  300. object Figure = GetDecimalDigits();
  301. List<DbParameter> parameter = new List<DbParameter>();
  302. 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,
  303. 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
  304. from ICSOApplyNegDetail a
  305. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  306. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  307. left join (
  308. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  309. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo
  310. group by b.TransCode,b.TransSequence
  311. ) c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  312. WHERE d.Type='1'
  313. and a.OApplyNegCode='" + OApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  314. sql += " and a.WorkPoint='" + WorkPoint + "'";
  315. sql = string.Format(sql, Figure);
  316. return Repository().FindTableBySql(sql.ToString());
  317. }
  318. /// <summary>
  319. /// 委外退料生成条码
  320. /// </summary>
  321. /// <param name="POCode"></param>
  322. /// <param name="PORow"></param>
  323. /// <param name="keyValue"></param>
  324. /// 已改
  325. /// <returns></returns>
  326. public int SubmitFormWeiWai(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  327. {
  328. var queryParam = keyValue.ToJObject();
  329. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  330. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  331. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  332. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  333. decimal LOTQTY = minPackQty;
  334. string Pre = "OI" + OApplyNegCode + Sequence;
  335. string sql = string.Empty;
  336. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  337. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  338. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  339. string sqls = string.Empty;
  340. string Colspan = "";
  341. for (int i = 0; i < createPageCount; i++)
  342. {
  343. if (i + 1 == createPageCount)
  344. {
  345. if (minPackQty * createPageCount > thisCreateQty)
  346. {
  347. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  348. }
  349. }
  350. 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();
  351. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  352. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  353. if (ExtensionID == null)
  354. {
  355. ExtensionID = Guid.NewGuid();
  356. 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)
  357. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  358. 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(),
  359. MUSER, MUSERNAME, WorkPoints);
  360. }
  361. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  362. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  363. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  364. LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  365. sql += string.Format(@"insert into ICSInventoryLot
  366. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  367. select
  368. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','2','{3}','{4}', getdate(),'{5}','{9}'
  369. from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  370. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, ExtensionID, Convert.ToDecimal(queryParam["Amount"].ToString())/ minPackQty* LOTQTY, queryParam["ExpirationDate"].ToString());
  371. sql += "\r\n";
  372. }
  373. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  374. return count;
  375. }
  376. public DataTable GetGridJsonChengPing(string queryJson, ref Pagination jqgridparam)
  377. {
  378. DataTable dt = new DataTable();
  379. var queryParam = queryJson.ToJObject();
  380. List<DbParameter> parameter = new List<DbParameter>();
  381. object Figure = GetDecimalDigits();
  382. #region [SQL]
  383. 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
  384. ,a.DueDate,a.MOStatus,a.ExtensionID,a.MUSERName,a.MTIME ,CAST(c.LOTQTY AS DECIMAL(18,{0})) as LOTQTY
  385. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  386. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  387. from ICSMO a
  388. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  389. left join (
  390. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  391. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='3'
  392. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  393. )c
  394. on a.MOCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  395. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint ";
  396. sql += " WHERE 1=1";
  397. sql = string.Format(sql, Figure);
  398. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  399. #endregion
  400. if (!string.IsNullOrWhiteSpace(queryJson))
  401. {
  402. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  403. {
  404. sql += " and a.MOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  405. }
  406. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  407. {
  408. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  409. }
  410. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  411. {
  412. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  413. }
  414. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  415. {
  416. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  417. }
  418. }
  419. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  420. {
  421. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  422. }
  423. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  424. {
  425. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  426. }
  427. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  428. }
  429. /// <summary>
  430. /// 点击成品生成条码(成品)
  431. /// </summary>
  432. public DataTable GetSubGridJsonChengPingByCreate(string MOCode, string Sequence, string WorkPoint)
  433. {
  434. DataTable dt = new DataTable();
  435. object Figure = GetDecimalDigits();
  436. List<DbParameter> parameter = new List<DbParameter>();
  437. 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,
  438. 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
  439. from ICSMO a
  440. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  441. left join (
  442. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  443. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo
  444. group by b.TransCode,b.TransSequence
  445. ) c on a.MOCode=c.TransCode and a.Sequence=c.TransSequence
  446. left join ICSConfiguration d on d.Code='CompleteVerification'
  447. WHERE 1 =1
  448. and a.MOCode='" + MOCode + "' and a.Sequence='" + Sequence + "'";
  449. sql += " and a.WorkPoint='" + WorkPoint + "'";
  450. sql = string.Format(sql, Figure);
  451. return Repository().FindTableBySql(sql.ToString());
  452. }
  453. /// <summary>
  454. /// 成品生成条码
  455. /// </summary>
  456. /// <param name="POCode"></param>
  457. /// <param name="PORow"></param>
  458. /// <param name="keyValue"></param>
  459. /// 已改
  460. /// <returns></returns>
  461. public int SubmitFormChengPing(string MOCode, string Sequence, string keyValue, string WorkPoint)
  462. {
  463. var queryParam = keyValue.ToJObject();
  464. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  465. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  466. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  467. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  468. decimal LOTQTY = minPackQty;
  469. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  470. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  471. string Pre = "CP" + MOCode + Sequence;
  472. string sql = string.Empty;
  473. //string VendorLot = queryParam["VendorLot"].ToString();
  474. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  475. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  476. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  477. string sqls = string.Empty;
  478. string Colspan = "";
  479. for (int i = 0; i < createPageCount; i++)
  480. {
  481. if (i + 1 == createPageCount)
  482. {
  483. if (minPackQty * createPageCount > thisCreateQty)
  484. {
  485. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  486. }
  487. }
  488. 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();
  489. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  490. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  491. if (ExtensionID == null)
  492. {
  493. ExtensionID = Guid.NewGuid();
  494. 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)
  495. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  496. 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(),
  497. MUSER, MUSERNAME, WorkPoints);
  498. }
  499. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  500. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  501. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  502. LotNo, MOCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  503. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  504. //{
  505. sql += string.Format(@"insert into ICSInventoryLot
  506. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  507. select
  508. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','3','{3}','{4}', getdate(),'{5}','{9}'
  509. from ICSMO where MOCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  510. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, MOCode, Sequence, ExtensionID, Convert.ToDecimal(queryParam["Amount"].ToString())/ minPackQty* LOTQTY, queryParam["ExpirationDate"].ToString());
  511. sql += "\r\n";
  512. //}
  513. }
  514. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  515. return count;
  516. }
  517. public DataTable GetGridJsonXiaoShou(string queryJson, ref Pagination jqgridparam)
  518. {
  519. DataTable dt = new DataTable();
  520. var queryParam = queryJson.ToJObject();
  521. List<DbParameter> parameter = new List<DbParameter>();
  522. object Figure = GetDecimalDigits();
  523. #region [SQL]
  524. string sql = @" select a.ID,a.SDNCode,a.Sequence,a.SOCode,a.SOSequence,a.CusCode,a.CusName,a.Type,a.ArriveDate,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,CAST(a.Quantity AS DECIMAL(18,{0})) as Quantity
  525. ,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
  526. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  527. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  528. from ICSSDN a
  529. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  530. left join (
  531. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  532. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='4'
  533. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  534. )c
  535. on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  536. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  537. where a.Type='2'";
  538. sql = string.Format(sql, Figure);
  539. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  540. #endregion
  541. if (!string.IsNullOrWhiteSpace(queryJson))
  542. {
  543. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  544. {
  545. sql += " and a.SDNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  546. }
  547. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  548. {
  549. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  550. }
  551. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  552. {
  553. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  554. }
  555. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  556. {
  557. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  558. }
  559. }
  560. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  561. {
  562. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  563. }
  564. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  565. {
  566. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  567. }
  568. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  569. }
  570. /// <summary>
  571. /// 点击销售退货生成条码(销售退货)
  572. /// </summary>
  573. public DataTable GetSubGridJsonXiaoShouByCreate(string SDNCode, string Sequence, string WorkPoint)
  574. {
  575. DataTable dt = new DataTable();
  576. object Figure = GetDecimalDigits();
  577. List<DbParameter> parameter = new List<DbParameter>();
  578. 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,
  579. 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
  580. from ICSSDN a
  581. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  582. left join (
  583. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  584. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo
  585. group by b.TransCode,b.TransSequence
  586. ) c on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence
  587. WHERE 1 =1
  588. and a.Type='2' and a.SDNCode='" + SDNCode + "' and a.Sequence='" + Sequence + "'";
  589. sql += " and a.WorkPoint='" + WorkPoint + "'";
  590. sql = string.Format(sql, Figure);
  591. return Repository().FindTableBySql(sql.ToString());
  592. }
  593. /// <summary>
  594. /// 销售退货生成条码
  595. /// </summary>
  596. /// <param name="POCode"></param>
  597. /// <param name="PORow"></param>
  598. /// <param name="keyValue"></param>
  599. /// 已改
  600. /// <returns></returns>
  601. public int SubmitFormXiaoShou(string SDNCode, string Sequence, string keyValue, string WorkPoint)
  602. {
  603. var queryParam = keyValue.ToJObject();
  604. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  605. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  606. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  607. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  608. decimal LOTQTY = minPackQty;
  609. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  610. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  611. string Pre = "SR" + SDNCode + Sequence;
  612. string sql = string.Empty;
  613. //string VendorLot = queryParam["VendorLot"].ToString();
  614. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  615. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  616. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  617. string sqls = string.Empty;
  618. string Colspan = "";
  619. for (int i = 0; i < createPageCount; i++)
  620. {
  621. if (i + 1 == createPageCount)
  622. {
  623. if (minPackQty * createPageCount > thisCreateQty)
  624. {
  625. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  626. }
  627. }
  628. 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();
  629. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  630. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  631. if (ExtensionID == null)
  632. {
  633. ExtensionID = Guid.NewGuid();
  634. 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)
  635. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  636. 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(),
  637. MUSER, MUSERNAME, WorkPoints);
  638. }
  639. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  640. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  641. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}')",
  642. LotNo, SDNCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  643. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  644. //{
  645. sql += string.Format(@"
  646. insert into ICSInventoryLot
  647. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  648. select
  649. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','4','{3}','{4}', getdate(),'{5}','{9}'
  650. from ICSSDN where Type='2' and SDNCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  651. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, SDNCode, Sequence, ExtensionID, Convert.ToDecimal(queryParam["Amount"].ToString())/ minPackQty* LOTQTY, queryParam["ExpirationDate"].ToString());
  652. sql += "\r\n";
  653. //}
  654. }
  655. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  656. return count;
  657. }
  658. public DataTable GetGridJsonQiTa(string queryJson, ref Pagination jqgridparam)
  659. {
  660. DataTable dt = new DataTable();
  661. var queryParam = queryJson.ToJObject();
  662. List<DbParameter> parameter = new List<DbParameter>();
  663. object Figure = GetDecimalDigits();
  664. #region [SQL]
  665. string sql = @" select a.ID,a.InCode,a.Sequence,a.WHCode,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
  666. 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
  667. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  668. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  669. from ICSOtherIn a
  670. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  671. left join (
  672. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  673. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='5'
  674. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  675. )c
  676. on a.InCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  677. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  678. where a.Status='1'";
  679. sql = string.Format(sql, Figure);
  680. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  681. #endregion
  682. if (!string.IsNullOrWhiteSpace(queryJson))
  683. {
  684. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  685. {
  686. sql += " and a.InCode like '%" + queryParam["POCode"].ToString() + "%' ";
  687. }
  688. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  689. {
  690. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  691. }
  692. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  693. {
  694. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  695. }
  696. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  697. {
  698. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  699. }
  700. }
  701. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  702. {
  703. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  704. }
  705. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  706. {
  707. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  708. }
  709. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  710. }
  711. /// <summary>
  712. /// 点击销售退货生成条码(其他入库)
  713. /// </summary>
  714. public DataTable GetSubGridJsonQiTaByCreate(string InCode, string Sequence, string WorkPoint)
  715. {
  716. DataTable dt = new DataTable();
  717. object Figure = GetDecimalDigits();
  718. List<DbParameter> parameter = new List<DbParameter>();
  719. 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,
  720. 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
  721. from ICSOtherIn a
  722. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  723. left join (
  724. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  725. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo
  726. group by b.TransCode,b.TransSequence
  727. ) c on a.InCode=c.TransCode and a.Sequence=c.TransSequence
  728. WHERE 1 =1
  729. and a.InCode='" + InCode + "' and a.Sequence='" + Sequence + "'";
  730. sql += " and a.WorkPoint='" + WorkPoint + "'";
  731. sql = string.Format(sql, Figure);
  732. return Repository().FindTableBySql(sql.ToString());
  733. }
  734. /// <summary>
  735. /// 其他入库生成条码
  736. /// </summary>
  737. /// <param name="POCode"></param>
  738. /// <param name="PORow"></param>
  739. /// <param name="keyValue"></param>
  740. /// 已改
  741. /// <returns></returns>
  742. public int SubmitFormQiTa(string InCode, string Sequence, string keyValue, string WorkPoint)
  743. {
  744. var queryParam = keyValue.ToJObject();
  745. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  746. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  747. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  748. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  749. decimal LOTQTY = minPackQty;
  750. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  751. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  752. string Pre = "QT" + InCode + Sequence;
  753. string sql = string.Empty;
  754. //string VendorLot = queryParam["VendorLot"].ToString();
  755. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  756. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  757. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  758. string sqls = string.Empty;
  759. string Colspan = "";
  760. for (int i = 0; i < createPageCount; i++)
  761. {
  762. if (i + 1 == createPageCount)
  763. {
  764. if (minPackQty * createPageCount > thisCreateQty)
  765. {
  766. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  767. }
  768. }
  769. 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();
  770. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  771. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  772. if (ExtensionID == null)
  773. {
  774. ExtensionID = Guid.NewGuid();
  775. 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)
  776. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  777. 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(),
  778. MUSER, MUSERNAME, WorkPoints);
  779. }
  780. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  781. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  782. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  783. LotNo, InCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  784. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  785. //{
  786. sql += string.Format(@"
  787. insert into ICSInventoryLot
  788. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  789. select
  790. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','5','{3}','{4}', getdate(),'{5}','{9}'
  791. from ICSOtherIn where InCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  792. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, InCode, Sequence, ExtensionID, Convert.ToDecimal(queryParam["Amount"].ToString())/ minPackQty* LOTQTY, queryParam["ExpirationDate"].ToString());
  793. sql += "\r\n";
  794. //}
  795. }
  796. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  797. return count;
  798. }
  799. //归还
  800. public DataTable GetGridJsonGuiHuan(string queryJson, ref Pagination jqgridparam)
  801. {
  802. DataTable dt = new DataTable();
  803. var queryParam = queryJson.ToJObject();
  804. List<DbParameter> parameter = new List<DbParameter>();
  805. object Figure = GetDecimalDigits();
  806. #region [SQL]
  807. string sql = @"select a.ID,a.ReturnCode,a.Sequence,a.WHCode,a.InvCode, 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
  808. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  809. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10 from ICSReturn a
  810. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  811. left join (
  812. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  813. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='6'
  814. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  815. ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  816. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  817. where a.Status='2'";
  818. sql = string.Format(sql, Figure);
  819. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  820. #endregion
  821. if (!string.IsNullOrWhiteSpace(queryJson))
  822. {
  823. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  824. {
  825. sql += " and a.ReturnCode like '%" + queryParam["POCode"].ToString() + "%' ";
  826. }
  827. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  828. {
  829. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  830. }
  831. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  832. {
  833. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  834. }
  835. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  836. {
  837. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  838. }
  839. }
  840. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  841. {
  842. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  843. }
  844. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  845. {
  846. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  847. }
  848. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  849. }
  850. //审核到货单(采购订单需与审核到货单一起同步)
  851. public DataTable GetGridJsonSHDH(string queryJson, ref Pagination jqgridparam)
  852. {
  853. DataTable dt = new DataTable();
  854. var queryParam = queryJson.ToJObject();
  855. List<DbParameter> parameter = new List<DbParameter>();
  856. object Figure = GetDecimalDigits();
  857. #region [SQL]
  858. string sql = @"select a.ID, '' as 'POCode',-- d.POCode,d.Sequence as POSequence,
  859. '' as POSequence,
  860. a.DNCode,a.Sequence,a.VenCode,e.VenName,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
  861. 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
  862. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  863. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  864. from ICSDeliveryNotice a
  865. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  866. left join (
  867. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  868. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='7'
  869. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  870. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  871. -- inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  872. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  873. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  874. where a.DNType='1' and a.Status='2' and a.ASNCode is null
  875. ";
  876. sql = string.Format(sql, Figure);
  877. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  878. #endregion
  879. if (!string.IsNullOrWhiteSpace(queryJson))
  880. {
  881. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  882. {
  883. sql += " and a.DNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  884. }
  885. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  886. {
  887. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  888. }
  889. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  890. {
  891. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  892. }
  893. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  894. {
  895. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  896. }
  897. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  898. {
  899. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  900. }
  901. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  902. {
  903. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  904. }
  905. }
  906. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  907. {
  908. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  909. }
  910. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  911. {
  912. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  913. }
  914. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  915. }
  916. //审核委外到货单
  917. public DataTable GetGridJsonWWSHDH(string queryJson, ref Pagination jqgridparam)
  918. {
  919. DataTable dt = new DataTable();
  920. var queryParam = queryJson.ToJObject();
  921. List<DbParameter> parameter = new List<DbParameter>();
  922. object Figure = GetDecimalDigits();
  923. #region [SQL]
  924. 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,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,
  925. CAST(c.LOTQTY AS DECIMAL(18,{0})) as LOTQTY
  926. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  927. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  928. from ICSODeliveryNotice a
  929. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  930. left join (
  931. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  932. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='8'
  933. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  934. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  935. inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  936. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  937. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  938. where a.ODNType='1' and a.Status='2' and a.OASNCode is null";
  939. sql = string.Format(sql, Figure);
  940. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  941. #endregion
  942. if (!string.IsNullOrWhiteSpace(queryJson))
  943. {
  944. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  945. {
  946. sql += " and a.ODNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  947. }
  948. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  949. {
  950. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  951. }
  952. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  953. {
  954. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  955. }
  956. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  957. {
  958. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  959. }
  960. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  961. {
  962. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  963. }
  964. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  965. {
  966. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  967. }
  968. }
  969. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  970. {
  971. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  972. }
  973. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  974. {
  975. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  976. }
  977. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  978. }
  979. //开立得成品入库单
  980. public DataTable GetGridJsonKLCPRK(string queryJson, ref Pagination jqgridparam)
  981. {
  982. DataTable dt = new DataTable();
  983. var queryParam = queryJson.ToJObject();
  984. List<DbParameter> parameter = new List<DbParameter>();
  985. object Figure = GetDecimalDigits();
  986. #region [SQL]
  987. string sql = @"
  988. select a.ID,a.RCVCode,a.Sequence,a.WHCode,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,CAST(a.Quantity AS DECIMAL(18,{0})) as Quantity ,
  989. 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
  990. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  991. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  992. from ICSManufactureReceive a
  993. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  994. left join (
  995. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  996. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='9'
  997. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  998. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  999. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1000. where a.Status='1' and a.Type='1'";
  1001. sql = string.Format(sql, Figure);
  1002. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  1003. #endregion
  1004. if (!string.IsNullOrWhiteSpace(queryJson))
  1005. {
  1006. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1007. {
  1008. sql += " and a.RCVCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1009. }
  1010. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1011. {
  1012. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1013. }
  1014. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  1015. {
  1016. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  1017. }
  1018. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  1019. {
  1020. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  1021. }
  1022. }
  1023. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1024. {
  1025. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1026. }
  1027. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  1028. {
  1029. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  1030. }
  1031. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1032. }
  1033. /// <summary>
  1034. /// 点击审核委外到货单生成条码(审核委外到货单)
  1035. /// </summary>
  1036. public DataTable GetSubGridJsonWWSHDHByCreate(string ODNCode, string Sequence, string WorkPoint)
  1037. {
  1038. DataTable dt = new DataTable();
  1039. object Figure = GetDecimalDigits();
  1040. List<DbParameter> parameter = new List<DbParameter>();
  1041. 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,
  1042. 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
  1043. from ICSODeliveryNotice a
  1044. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1045. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  1046. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo
  1047. group by b.TransCode,b.TransSequence
  1048. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence
  1049. WHERE 1 =1
  1050. and a.ODNCode='" + ODNCode + "' and a.Sequence='" + Sequence + "'";
  1051. sql += " and a.WorkPoint='" + WorkPoint + "'";
  1052. sql = string.Format(sql, Figure);
  1053. return Repository().FindTableBySql(sql.ToString());
  1054. }
  1055. /// <summary>
  1056. /// 点击开立成品入库生成条码(开立成品入库单)
  1057. /// </summary>
  1058. /// //--
  1059. public DataTable GetSubGridJsonKLCPRKByCreate(string RCVCode, string Sequence, string WorkPoint)
  1060. {
  1061. DataTable dt = new DataTable();
  1062. object Figure = GetDecimalDigits();
  1063. List<DbParameter> parameter = new List<DbParameter>();
  1064. 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,
  1065. 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
  1066. from ICSManufactureReceive a
  1067. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1068. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  1069. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo
  1070. group by b.TransCode,b.TransSequence
  1071. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence
  1072. WHERE 1 =1
  1073. and a.RCVCode='" + RCVCode + "' and a.Sequence='" + Sequence + "'";
  1074. sql += " and a.WorkPoint='" + WorkPoint + "'";
  1075. sql = string.Format(sql, Figure);
  1076. return Repository().FindTableBySql(sql.ToString());
  1077. }
  1078. /// <summary>
  1079. /// 点击审核到货单生成条码(审核到货单)
  1080. /// </summary>
  1081. public DataTable GetSubGridJsonSHDHByCreate(string DNCode, string Sequence, string WorkPoint)
  1082. {
  1083. DataTable dt = new DataTable();
  1084. object Figure = GetDecimalDigits();
  1085. List<DbParameter> parameter = new List<DbParameter>();
  1086. 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,
  1087. 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
  1088. from ICSDeliveryNotice a
  1089. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1090. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  1091. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo
  1092. group by b.TransCode,b.TransSequence
  1093. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence
  1094. WHERE 1 =1
  1095. and a.DNCode='" + DNCode + "' and a.Sequence='" + Sequence + "'";
  1096. sql += " and a.WorkPoint='" + WorkPoint + "'";
  1097. sql = string.Format(sql, Figure);
  1098. return Repository().FindTableBySql(sql.ToString());
  1099. }
  1100. /// <summary>
  1101. /// 点击归还生成条码(归还)
  1102. /// </summary>
  1103. public DataTable GetSubGridJsonGuiHuanByCreate(string ReturnCode, string Sequence, string WorkPoint)
  1104. {
  1105. DataTable dt = new DataTable();
  1106. object Figure = GetDecimalDigits();
  1107. List<DbParameter> parameter = new List<DbParameter>();
  1108. 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,
  1109. 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
  1110. from ICSReturn a
  1111. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1112. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  1113. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo
  1114. group by b.TransCode,b.TransSequence
  1115. ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence
  1116. WHERE 1 =1
  1117. and a.ReturnCode='" + ReturnCode + "' and a.Sequence='" + Sequence + "'";
  1118. sql += " and a.WorkPoint='" + WorkPoint + "'";
  1119. sql = string.Format(sql, Figure);
  1120. return Repository().FindTableBySql(sql.ToString());
  1121. }
  1122. /// <summary>
  1123. /// 归还单生成条码
  1124. /// </summary>
  1125. /// <param name="POCode"></param>
  1126. /// <param name="PORow"></param>
  1127. /// <param name="keyValue"></param>
  1128. /// 已改
  1129. /// <returns></returns>
  1130. public int SubmitFormGuiHuan(string ReturnCode, string Sequence, string keyValue, string WorkPoint)
  1131. {
  1132. var queryParam = keyValue.ToJObject();
  1133. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1134. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1135. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1136. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1137. decimal LOTQTY = minPackQty;
  1138. string Pre = "GH" + ReturnCode + Sequence;
  1139. string sql = string.Empty;
  1140. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1141. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1142. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1143. string sqls = string.Empty;
  1144. string Colspan = "";
  1145. for (int i = 0; i < createPageCount; i++)
  1146. {
  1147. if (i + 1 == createPageCount)
  1148. {
  1149. if (minPackQty * createPageCount > thisCreateQty)
  1150. {
  1151. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1152. }
  1153. }
  1154. 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();
  1155. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  1156. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1157. if (ExtensionID == null)
  1158. {
  1159. ExtensionID = Guid.NewGuid();
  1160. 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)
  1161. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1162. 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(),
  1163. MUSER, MUSERNAME, WorkPoints);
  1164. }
  1165. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  1166. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  1167. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  1168. LotNo, ReturnCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  1169. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  1170. //{
  1171. sql += string.Format(@"
  1172. insert into ICSInventoryLot
  1173. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  1174. select
  1175. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','6','{3}','{4}', getdate(),'{5}','{9}'
  1176. from ICSReturn where ReturnCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  1177. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ReturnCode, Sequence, ExtensionID, Convert.ToDecimal(queryParam["Amount"].ToString())/ minPackQty* LOTQTY, queryParam["ExpirationDate"].ToString());
  1178. sql += "\r\n";
  1179. //}
  1180. }
  1181. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1182. return count;
  1183. }
  1184. /// <summary>
  1185. /// 审核到货单生成条码
  1186. /// </summary>
  1187. /// <param name="POCode"></param>
  1188. /// <param name="PORow"></param>
  1189. /// <param name="keyValue"></param>
  1190. /// 已改
  1191. /// <returns></returns>
  1192. public int SubmitFormSHDH(string DNCode, string Sequence, string keyValue, string WorkPoint)
  1193. {
  1194. var queryParam = keyValue.ToJObject();
  1195. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1196. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1197. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1198. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1199. decimal LOTQTY = minPackQty;
  1200. string Pre = "DN" + DNCode + Sequence;
  1201. string sql = string.Empty;
  1202. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1203. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1204. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1205. string sqls = string.Empty;
  1206. string Colspan = "";
  1207. for (int i = 0; i < createPageCount; i++)
  1208. {
  1209. if (i + 1 == createPageCount)
  1210. {
  1211. if (minPackQty * createPageCount > thisCreateQty)
  1212. {
  1213. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1214. }
  1215. }
  1216. 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();
  1217. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  1218. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1219. if (ExtensionID == null)
  1220. {
  1221. ExtensionID = Guid.NewGuid();
  1222. 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)
  1223. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1224. 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(),
  1225. MUSER, MUSERNAME, WorkPoints);
  1226. }
  1227. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  1228. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  1229. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  1230. LotNo, DNCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  1231. sql += string.Format(@"
  1232. insert into ICSInventoryLot
  1233. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  1234. select
  1235. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','7','{3}','{4}', getdate(),'{5}','{9}'
  1236. from ICSDeliveryNotice where DNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  1237. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, DNCode, Sequence, ExtensionID, Convert.ToDecimal(queryParam["Amount"].ToString())/ minPackQty* LOTQTY, queryParam["ExpirationDate"].ToString());
  1238. sql += "\r\n";
  1239. }
  1240. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1241. return count;
  1242. }
  1243. /// <summary>
  1244. /// 审核委外到货单生成条码
  1245. /// </summary>
  1246. /// <param name="POCode"></param>
  1247. /// <param name="PORow"></param>
  1248. /// <param name="keyValue"></param>
  1249. /// 已改
  1250. /// <returns></returns>
  1251. public int SubmitFormWWSHDH(string ODNCode, string Sequence, string keyValue, string WorkPoint)
  1252. {
  1253. var queryParam = keyValue.ToJObject();
  1254. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1255. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1256. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1257. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1258. decimal LOTQTY = minPackQty;
  1259. string Pre = "ODN" + ODNCode + Sequence;
  1260. string sql = string.Empty;
  1261. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1262. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1263. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1264. string sqls = string.Empty;
  1265. string Colspan = "";
  1266. for (int i = 0; i < createPageCount; i++)
  1267. {
  1268. if (i + 1 == createPageCount)
  1269. {
  1270. if (minPackQty * createPageCount > thisCreateQty)
  1271. {
  1272. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1273. }
  1274. }
  1275. 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();
  1276. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  1277. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1278. if (ExtensionID == null)
  1279. {
  1280. ExtensionID = Guid.NewGuid();
  1281. 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)
  1282. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1283. 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(),
  1284. MUSER, MUSERNAME, WorkPoints);
  1285. }
  1286. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  1287. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  1288. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  1289. LotNo, ODNCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  1290. sql += string.Format(@"
  1291. insert into ICSInventoryLot
  1292. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  1293. select
  1294. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','8','{3}','{4}', getdate(),'{5}','{9}'
  1295. from ICSODeliveryNotice where ODNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  1296. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ODNCode, Sequence, ExtensionID, Convert.ToDecimal(queryParam["Amount"].ToString())/ minPackQty* LOTQTY, queryParam["ExpirationDate"].ToString());
  1297. sql += "\r\n";
  1298. }
  1299. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1300. return count;
  1301. }
  1302. /// <summary>
  1303. /// 开立成品入库单
  1304. /// </summary>
  1305. /// <param name="POCode"></param>
  1306. /// <param name="PORow"></param>
  1307. /// <param name="keyValue"></param>
  1308. /// 已改
  1309. /// <returns></returns>
  1310. public int SubmitFormKLCPRK(string RCVCode, string Sequence, string keyValue, string WorkPoint)
  1311. {
  1312. var queryParam = keyValue.ToJObject();
  1313. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1314. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1315. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1316. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1317. decimal LOTQTY = minPackQty;
  1318. string Pre = "KCP" + RCVCode + Sequence;
  1319. string sql = string.Empty;
  1320. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1321. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1322. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1323. string sqls = string.Empty;
  1324. string Colspan = "";
  1325. for (int i = 0; i < createPageCount; i++)
  1326. {
  1327. if (i + 1 == createPageCount)
  1328. {
  1329. if (minPackQty * createPageCount > thisCreateQty)
  1330. {
  1331. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1332. }
  1333. }
  1334. 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();
  1335. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  1336. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1337. if (ExtensionID == null)
  1338. {
  1339. ExtensionID = Guid.NewGuid();
  1340. 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)
  1341. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1342. 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(),
  1343. MUSER, MUSERNAME, WorkPoints);
  1344. }
  1345. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  1346. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  1347. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  1348. LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  1349. sql += string.Format(@"
  1350. insert into ICSInventoryLot
  1351. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  1352. select
  1353. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','9','{3}','{4}', getdate(),'{5}','{9}'
  1354. from ICSManufactureReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  1355. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, ExtensionID, Convert.ToDecimal(queryParam["Amount"].ToString())/ minPackQty* LOTQTY, queryParam["ExpirationDate"].ToString());
  1356. sql += "\r\n";
  1357. }
  1358. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1359. return count;
  1360. }
  1361. //委外拒收单
  1362. public DataTable GetGridJsonWWJSD(string queryJson, ref Pagination jqgridparam)
  1363. {
  1364. DataTable dt = new DataTable();
  1365. var queryParam = queryJson.ToJObject();
  1366. List<DbParameter> parameter = new List<DbParameter>();
  1367. object Figure = GetDecimalDigits();
  1368. #region [SQL]
  1369. 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,
  1370. 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
  1371. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1372. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  1373. from ICSODeliveryNotice a
  1374. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1375. left join (
  1376. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  1377. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='11'
  1378. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  1379. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  1380. --inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  1381. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  1382. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1383. where a.ODNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  1384. ";
  1385. sql = string.Format(sql, Figure);
  1386. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  1387. #endregion
  1388. if (!string.IsNullOrWhiteSpace(queryJson))
  1389. {
  1390. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1391. {
  1392. sql += " and a.ODNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1393. }
  1394. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  1395. {
  1396. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  1397. }
  1398. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  1399. {
  1400. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  1401. }
  1402. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1403. {
  1404. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1405. }
  1406. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  1407. {
  1408. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  1409. }
  1410. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  1411. {
  1412. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  1413. }
  1414. }
  1415. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1416. {
  1417. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1418. }
  1419. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  1420. {
  1421. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  1422. }
  1423. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1424. }
  1425. //拒收单
  1426. public DataTable GetGridJsonJSD(string queryJson, ref Pagination jqgridparam)
  1427. {
  1428. DataTable dt = new DataTable();
  1429. var queryParam = queryJson.ToJObject();
  1430. List<DbParameter> parameter = new List<DbParameter>();
  1431. object Figure = GetDecimalDigits();
  1432. #region [SQL]
  1433. string sql = @"select a.ID,a.DNCode ,a.Sequence ,a.VenCode,e.VenName,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
  1434. 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,
  1435. CAST(c.LOTQTY AS DECIMAL(18,{0})) as LOTQTY
  1436. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1437. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  1438. from ICSDeliveryNotice a
  1439. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1440. left join (
  1441. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  1442. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='10'
  1443. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  1444. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  1445. --inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  1446. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  1447. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1448. where a.DNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  1449. ";
  1450. sql = string.Format(sql, Figure);
  1451. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  1452. #endregion
  1453. if (!string.IsNullOrWhiteSpace(queryJson))
  1454. {
  1455. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1456. {
  1457. sql += " and a.DNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1458. }
  1459. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  1460. {
  1461. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  1462. }
  1463. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  1464. {
  1465. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  1466. }
  1467. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1468. {
  1469. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1470. }
  1471. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  1472. {
  1473. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  1474. }
  1475. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  1476. {
  1477. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  1478. }
  1479. }
  1480. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1481. {
  1482. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1483. }
  1484. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  1485. {
  1486. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  1487. }
  1488. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1489. }
  1490. //领料申请退料
  1491. public DataTable GetGridJsonLLSQTL(string queryJson, ref Pagination jqgridparam)
  1492. {
  1493. DataTable dt = new DataTable();
  1494. var queryParam = queryJson.ToJObject();
  1495. List<DbParameter> parameter = new List<DbParameter>();
  1496. object Figure = GetDecimalDigits();
  1497. #region [SQL]
  1498. string sql = @"select a.ID,a.ApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  1499. 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
  1500. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1501. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  1502. from ICSMOApplyNegDetail a
  1503. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  1504. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1505. left join (
  1506. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  1507. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='12'
  1508. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  1509. )c
  1510. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  1511. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1512. WHERE d.Type='2'";
  1513. sql = string.Format(sql, Figure);
  1514. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  1515. #endregion
  1516. if (!string.IsNullOrWhiteSpace(queryJson))
  1517. {
  1518. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1519. {
  1520. sql += " and a.ApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1521. }
  1522. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1523. {
  1524. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1525. }
  1526. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  1527. {
  1528. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  1529. }
  1530. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  1531. {
  1532. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  1533. }
  1534. }
  1535. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1536. {
  1537. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1538. }
  1539. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  1540. {
  1541. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  1542. }
  1543. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1544. }
  1545. /// <summary>
  1546. /// 拒收生成条码
  1547. /// </summary>
  1548. /// <param name="POCode"></param>
  1549. /// <param name="PORow"></param>
  1550. /// <param name="keyValue"></param>
  1551. /// <returns></returns>
  1552. public int SubmitFormJSD(string DNCode, string Sequence, string keyValue, string WorkPoint)
  1553. {
  1554. var queryParam = keyValue.ToJObject();
  1555. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1556. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1557. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1558. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1559. decimal LOTQTY = minPackQty;
  1560. string Pre = "JS" + DNCode + Sequence;
  1561. string sql = string.Empty;
  1562. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1563. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1564. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1565. string sqls = string.Empty;
  1566. string Colspan = "";
  1567. for (int i = 0; i < createPageCount; i++)
  1568. {
  1569. if (i + 1 == createPageCount)
  1570. {
  1571. if (minPackQty * createPageCount > thisCreateQty)
  1572. {
  1573. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1574. }
  1575. }
  1576. 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();
  1577. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  1578. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1579. if (ExtensionID == null)
  1580. {
  1581. ExtensionID = Guid.NewGuid();
  1582. 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)
  1583. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1584. 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(),
  1585. MUSER, MUSERNAME, WorkPoints);
  1586. }
  1587. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  1588. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  1589. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  1590. LotNo, DNCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  1591. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  1592. //{
  1593. sql += string.Format(@"
  1594. insert into ICSInventoryLot
  1595. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  1596. select
  1597. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','10','{3}','{4}', getdate(),'{5}','{9}'
  1598. from ICSDeliveryNotice where DNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  1599. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, DNCode, Sequence, ExtensionID, Convert.ToDecimal(queryParam["Amount"].ToString())/ minPackQty* LOTQTY, queryParam["ExpirationDate"].ToString());
  1600. sql += "\r\n";
  1601. //}
  1602. }
  1603. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1604. return count;
  1605. }
  1606. /// <summary>
  1607. /// 委外拒收生成条码
  1608. /// </summary>
  1609. /// <param name="POCode"></param>
  1610. /// <param name="PORow"></param>
  1611. /// <param name="keyValue"></param>
  1612. /// <returns></returns>
  1613. public int SubmitFormWWJSD(string ODNCode, string Sequence, string keyValue, string WorkPoint)
  1614. {
  1615. var queryParam = keyValue.ToJObject();
  1616. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1617. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1618. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1619. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1620. decimal LOTQTY = minPackQty;
  1621. string Pre = "OJS" + ODNCode + Sequence;
  1622. string sql = string.Empty;
  1623. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1624. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1625. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1626. string sqls = string.Empty;
  1627. string Colspan = "";
  1628. for (int i = 0; i < createPageCount; i++)
  1629. {
  1630. if (i + 1 == createPageCount)
  1631. {
  1632. if (minPackQty * createPageCount > thisCreateQty)
  1633. {
  1634. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1635. }
  1636. }
  1637. 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();
  1638. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  1639. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1640. if (ExtensionID == null)
  1641. {
  1642. ExtensionID = Guid.NewGuid();
  1643. 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)
  1644. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1645. 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(),
  1646. MUSER, MUSERNAME, WorkPoints);
  1647. }
  1648. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  1649. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  1650. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  1651. LotNo, ODNCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  1652. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  1653. //{
  1654. sql += string.Format(@"
  1655. insert into ICSInventoryLot
  1656. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  1657. select
  1658. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','11','{3}','{4}', getdate(),'{5}','{9}'
  1659. from ICSODeliveryNotice where ODNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  1660. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ODNCode, Sequence, ExtensionID, Convert.ToDecimal(queryParam["Amount"].ToString())/ minPackQty* LOTQTY, queryParam["ExpirationDate"].ToString());
  1661. sql += "\r\n";
  1662. //}
  1663. }
  1664. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1665. return count;
  1666. }
  1667. /// <summary>
  1668. /// 点击审核到货单生成条码(审核到货单)
  1669. /// </summary>
  1670. public DataTable GetSubGridJsonJSDByCreate(string DNCode, string Sequence, string WorkPoint)
  1671. {
  1672. DataTable dt = new DataTable();
  1673. object Figure = GetDecimalDigits();
  1674. List<DbParameter> parameter = new List<DbParameter>();
  1675. 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,
  1676. 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
  1677. from ICSDeliveryNotice a
  1678. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1679. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  1680. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo
  1681. group by b.TransCode,b.TransSequence
  1682. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence
  1683. WHERE a.DNType='3'
  1684. and a.DNCode='" + DNCode + "' and a.Sequence='" + Sequence + "'";
  1685. sql += " and a.WorkPoint='" + WorkPoint + "'";
  1686. sql = string.Format(sql, Figure);
  1687. return Repository().FindTableBySql(sql.ToString());
  1688. }
  1689. /// <summary>
  1690. /// 点击审核委外到货单生成条码(审核委外到货单)
  1691. /// </summary>
  1692. public DataTable GetSubGridJsonWWJSDByCreate(string ODNCode, string Sequence, string WorkPoint)
  1693. {
  1694. DataTable dt = new DataTable();
  1695. object Figure = GetDecimalDigits();
  1696. List<DbParameter> parameter = new List<DbParameter>();
  1697. 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,
  1698. 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
  1699. from ICSODeliveryNotice a
  1700. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1701. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  1702. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo
  1703. group by b.TransCode,b.TransSequence
  1704. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence
  1705. WHERE a.ODNType='3'
  1706. and a.ODNCode='" + ODNCode + "' and a.Sequence='" + Sequence + "'";
  1707. sql += " and a.WorkPoint='" + WorkPoint + "'";
  1708. sql = string.Format(sql, Figure);
  1709. return Repository().FindTableBySql(sql.ToString());
  1710. }
  1711. public DataTable GetSubGridJsonLLSQDByCreate(string ApplyNegCode, string Sequence, string WorkPoint)
  1712. {
  1713. DataTable dt = new DataTable();
  1714. object Figure = GetDecimalDigits();
  1715. List<DbParameter> parameter = new List<DbParameter>();
  1716. 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,
  1717. 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
  1718. from ICSMOApplyNegDetail a
  1719. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  1720. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1721. left join (
  1722. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  1723. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo
  1724. group by b.TransCode,b.TransSequence
  1725. ) c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  1726. WHERE d.Type='2'
  1727. and a.ApplyNegCode='" + ApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  1728. sql += " and a.WorkPoint='" + WorkPoint + "'";
  1729. sql = string.Format(sql, Figure);
  1730. return Repository().FindTableBySql(sql.ToString());
  1731. }
  1732. //领料申请退料生成条码
  1733. public int SubmitFormLLSQTL(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  1734. {
  1735. var queryParam = keyValue.ToJObject();
  1736. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1737. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1738. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1739. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1740. decimal LOTQTY = minPackQty;
  1741. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1742. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  1743. string Pre = "MA" + ApplyNegCode + Sequence;
  1744. string sql = string.Empty;
  1745. //string VendorLot = queryParam["VendorLot"].ToString();
  1746. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1747. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1748. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1749. string sqls = string.Empty;
  1750. string Colspan = "";
  1751. for (int i = 0; i < createPageCount; i++)
  1752. {
  1753. if (i + 1 == createPageCount)
  1754. {
  1755. if (minPackQty * createPageCount > thisCreateQty)
  1756. {
  1757. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1758. }
  1759. }
  1760. 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();
  1761. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  1762. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1763. if (ExtensionID == null)
  1764. {
  1765. ExtensionID = Guid.NewGuid();
  1766. 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)
  1767. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1768. 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(),
  1769. MUSER, MUSERNAME, WorkPoints);
  1770. }
  1771. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  1772. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  1773. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  1774. LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  1775. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  1776. //{
  1777. sql += string.Format(@"insert into ICSInventoryLot
  1778. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  1779. select
  1780. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','12','{3}','{4}', getdate(),'{5}','{9}'
  1781. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  1782. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, ExtensionID, Convert.ToDecimal(queryParam["Amount"].ToString())/ minPackQty* LOTQTY, queryParam["ExpirationDate"].ToString());
  1783. sql += "\r\n";
  1784. //}
  1785. }
  1786. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1787. return count;
  1788. }
  1789. //材料出库退料
  1790. public DataTable GetGridJsonCLCK(string queryJson, ref Pagination jqgridparam)
  1791. {
  1792. DataTable dt = new DataTable();
  1793. var queryParam = queryJson.ToJObject();
  1794. List<DbParameter> parameter = new List<DbParameter>();
  1795. object Figure = GetDecimalDigits();
  1796. #region [SQL]
  1797. string sql = @"
  1798. select a.ID,a.ApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  1799. CAST(a.Quantity AS DECIMAL(18,{0})) as Quantity
  1800. 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
  1801. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1802. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  1803. from ICSMOApplyNegDetail a
  1804. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  1805. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1806. left join (
  1807. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  1808. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='13'
  1809. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  1810. )c
  1811. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  1812. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1813. WHERE d.Type='3'";
  1814. sql = string.Format(sql, Figure);
  1815. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  1816. #endregion
  1817. if (!string.IsNullOrWhiteSpace(queryJson))
  1818. {
  1819. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1820. {
  1821. sql += " and a.ApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1822. }
  1823. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1824. {
  1825. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1826. }
  1827. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  1828. {
  1829. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  1830. }
  1831. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  1832. {
  1833. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  1834. }
  1835. }
  1836. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1837. {
  1838. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1839. }
  1840. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  1841. {
  1842. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  1843. }
  1844. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1845. }
  1846. //材料出库退料
  1847. public DataTable GetSubGridJsonCLCKByCreate(string ApplyNegCode, string Sequence, string WorkPoint)
  1848. {
  1849. DataTable dt = new DataTable();
  1850. object Figure = GetDecimalDigits();
  1851. List<DbParameter> parameter = new List<DbParameter>();
  1852. 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,
  1853. 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
  1854. from ICSMOApplyNegDetail a
  1855. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  1856. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1857. left join (
  1858. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  1859. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo
  1860. group by b.TransCode,b.TransSequence
  1861. ) c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  1862. WHERE d.Type='3'
  1863. and a.ApplyNegCode='" + ApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  1864. sql += " and a.WorkPoint='" + WorkPoint + "'";
  1865. sql = string.Format(sql, Figure);
  1866. return Repository().FindTableBySql(sql.ToString());
  1867. }
  1868. //材料出库退料生成条码
  1869. public int SubmitFormCLCKT(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  1870. {
  1871. var queryParam = keyValue.ToJObject();
  1872. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1873. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1874. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1875. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1876. decimal LOTQTY = minPackQty;
  1877. string Pre = "MD" + ApplyNegCode + Sequence;
  1878. string sql = string.Empty;
  1879. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1880. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1881. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1882. string sqls = string.Empty;
  1883. string Colspan = "";
  1884. for (int i = 0; i < createPageCount; i++)
  1885. {
  1886. if (i + 1 == createPageCount)
  1887. {
  1888. if (minPackQty * createPageCount > thisCreateQty)
  1889. {
  1890. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1891. }
  1892. }
  1893. 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();
  1894. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  1895. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1896. if (ExtensionID == null)
  1897. {
  1898. ExtensionID = Guid.NewGuid();
  1899. 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)
  1900. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1901. 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(),
  1902. MUSER, MUSERNAME, WorkPoints);
  1903. }
  1904. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  1905. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  1906. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  1907. LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  1908. sql += string.Format(@"insert into ICSInventoryLot
  1909. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  1910. select
  1911. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','13','{3}','{4}', getdate(),'{5}','{9}'
  1912. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  1913. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, ExtensionID, Convert.ToDecimal(queryParam["Amount"].ToString())/ minPackQty* LOTQTY, queryParam["ExpirationDate"].ToString());
  1914. sql += "\r\n";
  1915. }
  1916. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1917. return count;
  1918. }
  1919. public DataTable GetGridJsonWWLLTL(string queryJson, ref Pagination jqgridparam)
  1920. {
  1921. DataTable dt = new DataTable();
  1922. var queryParam = queryJson.ToJObject();
  1923. List<DbParameter> parameter = new List<DbParameter>();
  1924. object Figure = GetDecimalDigits();
  1925. #region [SQL]
  1926. string sql = @"select a.ID,a.OApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  1927. 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
  1928. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1929. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  1930. from ICSOApplyNegDetail a
  1931. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  1932. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1933. left join (
  1934. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  1935. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='14'
  1936. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  1937. )c
  1938. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  1939. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1940. WHERE d.Type='2'";
  1941. sql = string.Format(sql, Figure);
  1942. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  1943. #endregion
  1944. if (!string.IsNullOrWhiteSpace(queryJson))
  1945. {
  1946. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1947. {
  1948. sql += " and a.OApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1949. }
  1950. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1951. {
  1952. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1953. }
  1954. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  1955. {
  1956. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  1957. }
  1958. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  1959. {
  1960. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  1961. }
  1962. }
  1963. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1964. {
  1965. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1966. }
  1967. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  1968. {
  1969. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  1970. }
  1971. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1972. }
  1973. /// <summary>
  1974. /// 点击委外领料退料生成条码
  1975. /// </summary>
  1976. public DataTable GetSubGridJsonWWLLByCreate(string OApplyNegCode, string Sequence, string WorkPoint)
  1977. {
  1978. DataTable dt = new DataTable();
  1979. object Figure = GetDecimalDigits();
  1980. List<DbParameter> parameter = new List<DbParameter>();
  1981. string sql = @"
  1982. 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,
  1983. 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
  1984. from ICSOApplyNegDetail a
  1985. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  1986. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1987. left join (
  1988. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  1989. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo
  1990. group by b.TransCode,b.TransSequence
  1991. ) c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  1992. WHERE d.Type='2'
  1993. and a.OApplyNegCode='" + OApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  1994. sql += " and a.WorkPoint='" + WorkPoint + "'";
  1995. sql = string.Format(sql, Figure);
  1996. return Repository().FindTableBySql(sql.ToString());
  1997. }
  1998. //委外领料申请退料
  1999. public int SubmitFormWWLL(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  2000. {
  2001. var queryParam = keyValue.ToJObject();
  2002. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2003. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2004. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2005. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2006. decimal LOTQTY = minPackQty;
  2007. string Pre = "OMA" + OApplyNegCode + Sequence;
  2008. string sql = string.Empty;
  2009. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2010. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2011. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2012. string sqls = string.Empty;
  2013. string Colspan = "";
  2014. for (int i = 0; i < createPageCount; i++)
  2015. {
  2016. if (i + 1 == createPageCount)
  2017. {
  2018. if (minPackQty * createPageCount > thisCreateQty)
  2019. {
  2020. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  2021. }
  2022. }
  2023. 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();
  2024. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  2025. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2026. if (ExtensionID == null)
  2027. {
  2028. ExtensionID = Guid.NewGuid();
  2029. 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)
  2030. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2031. 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(),
  2032. MUSER, MUSERNAME, WorkPoints);
  2033. }
  2034. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  2035. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  2036. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  2037. LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  2038. sql += string.Format(@"insert into ICSInventoryLot
  2039. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  2040. select
  2041. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','14','{3}','{4}', getdate(),'{5}','{9}'
  2042. from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  2043. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, ExtensionID, Convert.ToDecimal(queryParam["Amount"].ToString())/ minPackQty* LOTQTY, queryParam["ExpirationDate"].ToString());
  2044. sql += "\r\n";
  2045. }
  2046. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2047. return count;
  2048. }
  2049. //委外材料出库
  2050. public DataTable GetGridJsonWWCLCK(string queryJson, ref Pagination jqgridparam)
  2051. {
  2052. DataTable dt = new DataTable();
  2053. var queryParam = queryJson.ToJObject();
  2054. List<DbParameter> parameter = new List<DbParameter>();
  2055. object Figure = GetDecimalDigits();
  2056. #region [SQL]
  2057. string sql = @"select a.ID,a.OApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  2058. 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
  2059. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2060. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  2061. from ICSOApplyNegDetail a
  2062. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  2063. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2064. left join (
  2065. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2066. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='15'
  2067. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2068. )c
  2069. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2070. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2071. WHERE d.Type='3'";
  2072. sql = string.Format(sql, Figure);
  2073. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  2074. #endregion
  2075. if (!string.IsNullOrWhiteSpace(queryJson))
  2076. {
  2077. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2078. {
  2079. sql += " and a.OApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2080. }
  2081. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2082. {
  2083. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2084. }
  2085. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2086. {
  2087. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2088. }
  2089. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2090. {
  2091. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2092. }
  2093. }
  2094. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2095. {
  2096. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2097. }
  2098. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2099. {
  2100. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2101. }
  2102. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2103. }
  2104. //委外材料出库
  2105. public DataTable GetSubGridJsonWWCLByCreate(string OApplyNegCode, string Sequence, string WorkPoint)
  2106. {
  2107. DataTable dt = new DataTable();
  2108. object Figure = GetDecimalDigits();
  2109. List<DbParameter> parameter = new List<DbParameter>();
  2110. string sql = @"
  2111. 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,
  2112. 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
  2113. from ICSOApplyNegDetail a
  2114. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  2115. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2116. left join (
  2117. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2118. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo
  2119. group by b.TransCode,b.TransSequence
  2120. ) c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  2121. WHERE d.Type='3'
  2122. and a.OApplyNegCode='" + OApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  2123. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2124. sql = string.Format(sql, Figure);
  2125. return Repository().FindTableBySql(sql.ToString());
  2126. }
  2127. //委外材料出库
  2128. public int SubmitFormWWCL(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  2129. {
  2130. var queryParam = keyValue.ToJObject();
  2131. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2132. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2133. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2134. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2135. decimal LOTQTY = minPackQty;
  2136. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  2137. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  2138. string Pre = "OMD" + OApplyNegCode + Sequence;
  2139. string sql = string.Empty;
  2140. //string VendorLot = queryParam["VendorLot"].ToString();
  2141. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2142. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2143. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2144. string sqls = string.Empty;
  2145. string Colspan = "";
  2146. for (int i = 0; i < createPageCount; i++)
  2147. {
  2148. if (i + 1 == createPageCount)
  2149. {
  2150. if (minPackQty * createPageCount > thisCreateQty)
  2151. {
  2152. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  2153. }
  2154. }
  2155. 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();
  2156. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  2157. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2158. if (ExtensionID == null)
  2159. {
  2160. ExtensionID = Guid.NewGuid();
  2161. 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)
  2162. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2163. 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(),
  2164. MUSER, MUSERNAME, WorkPoints);
  2165. }
  2166. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  2167. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  2168. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  2169. LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  2170. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  2171. //{
  2172. sql += string.Format(@"insert into ICSInventoryLot
  2173. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  2174. select
  2175. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','15','{3}','{4}', getdate(),'{5}','{9}'
  2176. from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  2177. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, ExtensionID, Convert.ToDecimal(queryParam["Amount"].ToString())/ minPackQty* LOTQTY, queryParam["ExpirationDate"].ToString());
  2178. sql += "\r\n";
  2179. //}
  2180. }
  2181. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2182. return count;
  2183. }
  2184. public DataTable SelectICSExtensionEnable(string BeginTime, string EndTime)
  2185. {
  2186. string sql = @"select ColCode from ICSExtensionEnable
  2187. where Enable=0
  2188. order by cast(EATTRIBUTE1 as int)";
  2189. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  2190. return dt;
  2191. }
  2192. //返工工单
  2193. public DataTable GetGridJsonFGGD(string queryJson, ref Pagination jqgridparam)
  2194. {
  2195. DataTable dt = new DataTable();
  2196. var queryParam = queryJson.ToJObject();
  2197. List<DbParameter> parameter = new List<DbParameter>();
  2198. object Figure = GetDecimalDigits();
  2199. #region [SQL]
  2200. 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,
  2201. CAST(a.Quantity AS DECIMAL(18,{0})) as Quantity
  2202. 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
  2203. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2204. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  2205. from ICSMOPick a
  2206. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint
  2207. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2208. left join (
  2209. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2210. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='16'
  2211. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2212. )c
  2213. on d.MOCode=c.TransCode and d.Sequence+'-'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2214. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2215. where a.EATTRIBUTE1='1' and d.EATTRIBUTE1='1'";
  2216. sql = string.Format(sql, Figure);
  2217. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  2218. #endregion
  2219. if (!string.IsNullOrWhiteSpace(queryJson))
  2220. {
  2221. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2222. {
  2223. sql += " and d.MOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2224. }
  2225. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2226. {
  2227. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2228. }
  2229. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2230. {
  2231. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2232. }
  2233. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2234. {
  2235. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2236. }
  2237. }
  2238. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2239. {
  2240. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2241. }
  2242. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2243. {
  2244. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2245. }
  2246. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2247. }
  2248. public DataTable GetSubGridJsonFGGDCreate(string FGGDMOCode, string Sequence, string WorkPoint)
  2249. {
  2250. DataTable dt = new DataTable();
  2251. object Figure = GetDecimalDigits();
  2252. List<DbParameter> parameter = new List<DbParameter>();
  2253. string sql = @"
  2254. 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,
  2255. 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
  2256. from ICSMOPick a
  2257. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint
  2258. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2259. left join (
  2260. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2261. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo
  2262. group by b.TransCode,b.TransSequence
  2263. ) c on d.MOCode=c.TransCode and d.Sequence+'-'+a.Sequence=c.TransSequence
  2264. WHERE 1=1
  2265. and d.MOCode='" + FGGDMOCode + "' and d.Sequence+'-'+a.Sequence='" + Sequence + "'";
  2266. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2267. sql = string.Format(sql, Figure);
  2268. return Repository().FindTableBySql(sql.ToString());
  2269. }
  2270. //返工工单
  2271. public int SubmitFormFGGD(string FGGDMOCode, string Sequence, string keyValue, string WorkPoint)
  2272. {
  2273. var queryParam = keyValue.ToJObject();
  2274. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2275. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2276. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2277. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2278. decimal LOTQTY = minPackQty;
  2279. string Pre = "FG" + FGGDMOCode + Sequence;
  2280. string sql = string.Empty;
  2281. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2282. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2283. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2284. string sqls = string.Empty;
  2285. string Colspan = "";
  2286. for (int i = 0; i < createPageCount; i++)
  2287. {
  2288. if (i + 1 == createPageCount)
  2289. {
  2290. if (minPackQty * createPageCount > thisCreateQty)
  2291. {
  2292. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  2293. }
  2294. }
  2295. 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();
  2296. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  2297. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2298. if (ExtensionID == null)
  2299. {
  2300. ExtensionID = Guid.NewGuid();
  2301. 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)
  2302. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2303. 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(),
  2304. MUSER, MUSERNAME, WorkPoints);
  2305. }
  2306. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  2307. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  2308. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  2309. LotNo, FGGDMOCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  2310. sql += string.Format(@"insert into ICSInventoryLot
  2311. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  2312. select
  2313. newid(),'{0}',a.InvCode,'{1}','{10}','{2}','{8}','16','{3}','{4}', getdate(),'{5}','{9}'
  2314. 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}' ",
  2315. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, FGGDMOCode, Sequence, ExtensionID, Convert.ToDecimal(queryParam["Amount"].ToString())/ minPackQty* LOTQTY, queryParam["ExpirationDate"].ToString());
  2316. sql += "\r\n";
  2317. }
  2318. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2319. return count;
  2320. }
  2321. public object GetDecimalDigits()
  2322. {
  2323. try
  2324. {
  2325. string sql = string.Empty;
  2326. sql = @"select Figure from ICSConfiguration where Code='Figure001' and Enable='1'";
  2327. object Figure = SqlHelper.ExecuteScalar(sql);
  2328. return Figure;
  2329. }
  2330. catch (Exception ex)
  2331. {
  2332. throw new Exception(ex.Message.ToString());
  2333. }
  2334. }
  2335. public object GetQiSetNum(string keyValue)
  2336. {
  2337. int Num = 0;
  2338. string msg = "";
  2339. string APIURL = ConfigurationManager.ConnectionStrings["ERPAPIURL"].ConnectionString + "Complete/Approve";
  2340. string result = HttpPost(APIURL, keyValue);
  2341. JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText);
  2342. string MessAge = Obj["Message"].ToString();
  2343. string Success = Obj["Success"].ToString();
  2344. if (Success.ToUpper() == "FALSE")
  2345. {
  2346. msg = MessAge;
  2347. }
  2348. if (msg=="")
  2349. {
  2350. JArray res = (JArray)JsonConvert.DeserializeObject(Obj["Data"].ToString());
  2351. foreach (var item in res)
  2352. {
  2353. JObject jo = (JObject)item;
  2354. Num = Convert.ToInt32(jo["min_lotqty"].ToString());
  2355. }
  2356. }
  2357. var Header =new {
  2358. msg=msg,
  2359. Num= Num,
  2360. };
  2361. return Header;
  2362. }
  2363. //接口api解析
  2364. public static string HttpPost(string url, string body)
  2365. {
  2366. try
  2367. {
  2368. Encoding encoding = Encoding.UTF8;
  2369. HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
  2370. request.Method = "POST";
  2371. request.Accept = "application/json, text/javascript, */*"; //"text/html, application/xhtml+xml, */*";
  2372. request.ContentType = "application/json; charset=utf-8";
  2373. byte[] buffer = encoding.GetBytes(body);
  2374. request.ContentLength = buffer.Length;
  2375. request.GetRequestStream().Write(buffer, 0, buffer.Length);
  2376. HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  2377. using (StreamReader reader = new StreamReader(response.GetResponseStream(), encoding))
  2378. {
  2379. return reader.ReadToEnd();
  2380. }
  2381. }
  2382. catch (WebException ex)
  2383. {
  2384. throw new Exception(ex.Message);
  2385. }
  2386. }
  2387. }
  2388. }