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.

5469 lines
336 KiB

3 weeks ago
  1. using Newtonsoft.Json;
  2. using Newtonsoft.Json.Linq;
  3. using NFine.Application.SystemManage;
  4. using NFine.Code;
  5. using NFine.Data.Extensions;
  6. using NFine.Domain._03_Entity.SRM;
  7. using NFine.Repository;
  8. using System;
  9. using System.Collections.Generic;
  10. using System.Configuration;
  11. using System.Data;
  12. using System.Data.Common;
  13. using System.Data.SqlClient;
  14. using System.IO;
  15. using System.Linq;
  16. using System.Net;
  17. using System.Reflection.Emit;
  18. using System.Text;
  19. using System.Threading.Tasks;
  20. namespace NFine.Application.DHAY
  21. {
  22. public class ICSCreateItemLotApp : RepositoryFactory<ICSVendor>
  23. {
  24. DataActionApp actionapp = new DataActionApp();
  25. public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam)
  26. {
  27. DataTable dt = new DataTable();
  28. var queryParam = queryJson.ToJObject();
  29. List<DbParameter> parameter = new List<DbParameter>();
  30. object Figure = GetDecimalDigits();
  31. #region [SQL]
  32. string sql = @"select a.ID,y.MOCode,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
  33. ,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
  34. ,b.EffectiveEnable,b.EffectiveDays
  35. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  36. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  37. a.EATTRIBUTE9,a.EATTRIBUTE10
  38. from ICSMOApplyNegDetail a
  39. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  40. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  41. left join (
  42. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  43. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='1'
  44. where isnull(ee.EATTRIBUTE1,'')=''
  45. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  46. )c
  47. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  48. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  49. inner JOIN ICSMOPick x ON a.SourceDetailID=x.PickID AND a.WorkPoint=x.WorkPoint
  50. left JOIN ICSMO y ON x.MODetailID=y.MODetailID AND x.WorkPoint=y.WorkPoint
  51. where d.Type='1'";
  52. sql = string.Format(sql, Figure);
  53. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  54. #endregion
  55. if (!string.IsNullOrWhiteSpace(queryJson))
  56. {
  57. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  58. {
  59. sql += " and a.ApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  60. }
  61. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  62. {
  63. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  64. }
  65. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  66. {
  67. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  68. }
  69. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  70. {
  71. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  72. }
  73. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  74. {
  75. string POStatus = queryParam["POStatus"].ToString();
  76. if (POStatus == "0")
  77. {
  78. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  79. }
  80. else if (POStatus == "1")
  81. {
  82. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  83. }
  84. else
  85. {
  86. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  87. }
  88. }
  89. }
  90. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  91. {
  92. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  93. }
  94. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  95. {
  96. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  97. }
  98. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  99. }
  100. /// <summary>
  101. /// 领料子件信息
  102. /// </summary>
  103. /// <param name="MODetailID"></param>
  104. /// <param name="workpoint"></param>
  105. /// <param name="jqgridparam"></param>
  106. /// <returns></returns>
  107. public DataTable GetICSMOPick(string MODetailID, string workpoint, ref Pagination jqgridparam)
  108. {
  109. DataTable dt = new DataTable();
  110. List<DbParameter> parameter = new List<DbParameter>();
  111. object Figure = GetDecimalDigits();
  112. #region [SQL]
  113. string sql = @"SELECT b.InvCode,c.InvName,c.InvStd,InvUnit,b.ID,b.Quantity,b.IssueQuantity FROM dbo.ICSMO a
  114. LEFT JOIN dbo.ICSMOPick b ON a.MODetailID=b.MODetailID AND a.WorkPoint=b.WorkPoint
  115. LEFT JOIN dbo.ICSInventory c ON b.InvCode=c.InvCode AND b.WorkPoint=c.WorkPoint
  116. WHERE a.MODetailID='{0}'
  117. ";
  118. sql = string.Format(sql, MODetailID);
  119. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  120. #endregion
  121. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  122. }
  123. public DataTable GetSubGridJson(string ApplyNegCode, string Sequence, string Type, ref Pagination jqgridparam)
  124. {
  125. DataTable dt = new DataTable();
  126. object Figure = GetDecimalDigits();
  127. List<DbParameter> parameter = new List<DbParameter>();
  128. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  129. string sql = @" select c.TransCode,c.TransSequence ,a.ID,a.LotNo, CAST( a.Quantity AS DECIMAL(18,{0})) as Quantity ,a.MUSERName,a.MTIME
  130. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  131. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,
  132. case when isnull(d.ID,'')='' then '' else '' end as isStorage,
  133. case when g.InvIQC='1'and isnull(e.ID,'')='' then '' when g.InvIQC='1' then '' else '' end as isInspection,
  134. case when g.InvIQC='0' then '是' else '否' end as isExemption,a.Amount,
  135. convert(varchar(20),a.ProductDate,23) as ProductDate,convert(varchar(20),a.ExpirationDate,23) as ExpirationDate ,g.EffectiveDays,a.EATTRIBUTE4,a.EATTRIBUTE5
  136. from ICSInventoryLot a
  137. left join (select count(LotNo) LotNoCount,LotNo,WorkPoint from ICSWareHouseLotInfo
  138. group by LotNo,WorkPoint)b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  139. left join ICSInventoryLotDetail c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  140. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  141. left join dbo.ICSWareHouseLotInfo d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint
  142. left join ICSInspection e on a.LotNo=e.LotNo and e.Enable='1' and a.WorkPoint=e.WorkPoint
  143. left join ICSInventory g on a.InvCode=g.InvCode and a.WorkPoint=g.WorkPoint
  144. WHERE isnull(a.EATTRIBUTE1,'')='' and a.Type='" + Type + "' and c.TransCode='" + ApplyNegCode + "' and c.TransSequence='" + Sequence + "' and a.WorkPoint in ('" + WorkPoint + "')";
  145. sql = string.Format(sql, Figure);
  146. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  147. }
  148. public DataTable GetSubGridJson1(string ApplyNegCode, string Sequence, string Type, ref Pagination jqgridparam)
  149. {
  150. DataTable dt = new DataTable();
  151. object Figure = GetDecimalDigits();
  152. List<DbParameter> parameter = new List<DbParameter>();
  153. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  154. string sql = $@" SELECT ID,TransCode,TransSequence,LotNo,Quantity,MUSERName,MTIME FROM ICSFinishedProductShipment WHERE TransCode='{ApplyNegCode}' AND TransSequence='{Sequence}' and Type='5' and WorkPoint in ('{WorkPoint}')";
  155. sql = string.Format(sql, Figure);
  156. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  157. }
  158. /// <summary>
  159. /// 点击生成条码
  160. /// </summary>
  161. public DataTable GetSubGridJsonByCreate(string ApplyNegCode, string Sequence, string WorkPoint)
  162. {
  163. DataTable dt = new DataTable();
  164. object Figure = GetDecimalDigits();
  165. List<DbParameter> parameter = new List<DbParameter>();
  166. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( a.Quantity AS DECIMAL(18,4)) as Quantity, CAST( a.Amount as DECIMAL(18,4)) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(18,4)) as CreatedQty ,
  167. CAST( (a.Quantity-ISNULL(c.LOTQTY,0)) as DECIMAL(18,4)) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,4)) as EffectiveDays,
  168. d.ProjectCode,d.BatchCode,d.Version,d.Brand,d.cFree1,d.cFree2,d.cFree3,d.cFree4,d.cFree5,d.cFree6,d.cFree7,d.cFree8,d.cFree9,d.cFree10
  169. from ICSMOApplyNegDetail a
  170. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  171. left join (
  172. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  173. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='1'
  174. where isnull(a.EATTRIBUTE1,'')=''
  175. group by b.TransCode,b.TransSequence
  176. ) c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  177. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  178. WHERE 1 =1
  179. and a.ApplyNegCode='" + ApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  180. sql += " and a.WorkPoint='" + WorkPoint + "'";
  181. sql = string.Format(sql, Figure);
  182. return Repository().FindTableBySql(sql.ToString());
  183. }
  184. public DataTable GetVendorLotNo(string VenCode, string WorkPoint)
  185. {
  186. DataTable dt = new DataTable();
  187. //var queryParam = queryJson.ToJObject();
  188. List<DbParameter> parameter = new List<DbParameter>();
  189. string dtPre = DateTime.Now.ToString("yyyyMMdd");
  190. string sql = @"EXEC Addins_GetSerialCode '" + WorkPoint + "','ICSITEMLotNo','VendorLotNo','" + VenCode + dtPre + "',2";
  191. return Repository().FindTableBySql(sql.ToString());
  192. }
  193. /// <summary>
  194. /// 生产退料生成条码
  195. /// </summary>
  196. /// <param name="POCode"></param>
  197. /// <param name="PORow"></param>
  198. /// <param name="keyValue"></param>
  199. /// 已改
  200. /// <returns></returns>
  201. public int CreateItemLotNo(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  202. {
  203. var queryParam = keyValue.ToJObject();
  204. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  205. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  206. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  207. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  208. decimal LOTQTY = minPackQty;
  209. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  210. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  211. string Pre = "MDN" + ApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  212. string sql = string.Empty;
  213. //string VendorLot = queryParam["VendorLot"].ToString();
  214. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  215. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  216. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  217. string InvCode = queryParam["ClassCode"].ToString();
  218. string Colspan = "";
  219. string sqls = string.Empty;
  220. string LotNo = string.Empty;
  221. string str1 = "";
  222. List<string> ExtensionIDList = new List<string>();
  223. for (int i = 0; i < createPageCount; i++)
  224. {
  225. if (i + 1 == createPageCount)
  226. {
  227. if (minPackQty * createPageCount > thisCreateQty)
  228. {
  229. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  230. }
  231. }
  232. 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();
  233. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  234. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  235. bool flag = true;
  236. foreach (var item in ExtensionIDList)
  237. {
  238. if (item == Colspan + WorkPoint)
  239. {
  240. flag = false;
  241. }
  242. }
  243. if (ExtensionID == null && flag == true)
  244. {
  245. str1 = Guid.NewGuid().ToString();
  246. 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)
  247. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  248. str1, 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(),
  249. MUSER, MUSERNAME, WorkPoints);
  250. }
  251. else if (ExtensionID != null)
  252. {
  253. str1 = ExtensionID.ToString();
  254. }
  255. ExtensionIDList.Add(Colspan + WorkPoint);
  256. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  257. if (AMEnable == "true")
  258. {
  259. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  260. }
  261. else
  262. {
  263. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  264. }
  265. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  266. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  267. LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  268. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  269. //{
  270. sql += string.Format(@"insert into ICSInventoryLot
  271. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  272. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  273. select
  274. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','1','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  275. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  276. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, str1, Convert.ToDecimal(Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  277. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  278. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  279. sql += "\r\n";
  280. //}
  281. }
  282. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  283. return count;
  284. }
  285. public string GetSerialCode(string workPointCode, string tbName, string colName, string Pre, int numLen)
  286. {
  287. string sql = "EXEC Addins_GetSerialCode '{0}','{1}','{2}','{3}',{4}";
  288. sql = string.Format(sql, new object[] { workPointCode, tbName, colName, Pre, numLen });
  289. //return Repository().FindTableBySql(sql.ToString());
  290. return SqlHelper.ExecuteScalar(sql).ToString();
  291. //return DbHelper.ExecuteScalar(CommandType.Text, sql).ToString();
  292. }
  293. /// <summary>
  294. /// 删除条码
  295. /// </summary>
  296. /// <param name="keyValue"></param>
  297. /// <returns></returns>
  298. public string DeleteItemLot(string keyValue)
  299. {
  300. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  301. string msg = string.Empty;
  302. string sql = string.Format(@"SELECT * FROM dbo.ICSInspection
  303. WHERE LotNo IN (SELECT LotNO FROM dbo.ICSInventoryLot WHERE ID IN ({0})) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  304. DataTable dtASN = SqlHelper.GetDataTableBySql(sql);
  305. if (dtASN != null && dtASN.Rows.Count > 0)
  306. {
  307. msg = "所选条码已生成检验单,无法删除!";
  308. }
  309. sql = string.Format(@"SELECT * FROM dbo.ICSWareHouseLotInfo WHERE LotNO IN
  310. (SELECT LotNO FROM dbo.ICSInventoryLot WHERE ID IN ({0})) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  311. DataTable dtCarton = SqlHelper.GetDataTableBySql(sql);
  312. if (dtCarton != null && dtCarton.Rows.Count > 0)
  313. {
  314. msg += "所选条码已入库,无法删除!";
  315. }
  316. if (string.IsNullOrEmpty(msg))
  317. {
  318. 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);
  319. sqls += string.Format("DELETE FROM dbo.ICSInventoryLot WHERE ID IN ({0}) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  320. SqlHelper.CmdExecuteNonQueryLi(sqls);
  321. }
  322. return msg;
  323. }
  324. /// <summary>
  325. /// 删除条码
  326. /// </summary>
  327. /// <param name="keyValue"></param>
  328. /// <returns></returns>
  329. public string DeleteMOLot(string keyValue)
  330. {
  331. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  332. string msg = string.Empty;
  333. if (string.IsNullOrEmpty(msg))
  334. {
  335. string sqls = $@"DELETE FROM ICSFinishedProductShipment WHERE ID in ({keyValue.TrimEnd(',')}) and WorkPoint in ('{WorkPoint}')";
  336. SqlHelper.CmdExecuteNonQueryLi(sqls);
  337. }
  338. return msg;
  339. }
  340. public DataTable GetGridJsonWeiWai(string queryJson, ref Pagination jqgridparam)
  341. {
  342. DataTable dt = new DataTable();
  343. var queryParam = queryJson.ToJObject();
  344. List<DbParameter> parameter = new List<DbParameter>();
  345. object Figure = GetDecimalDigits();
  346. #region [SQL]
  347. 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
  348. ,CAST(a.Amount AS DECIMAL(18,{0})) as Amount , CAST(a.IssueNegQuantity AS DECIMAL(18,{0})) as IssueNegQuantity,a.ExtensionID,a.MUSERName,a.MTIME ,
  349. CAST(c.LOTQTY AS DECIMAL(18,{0})) as LOTQTY
  350. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  351. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  352. a.EATTRIBUTE9,a.EATTRIBUTE10,oo.OOCode SourceCode
  353. from ICSOApplyNegDetail a
  354. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  355. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  356. left join (
  357. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  358. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='2'
  359. where isnull(ee.EATTRIBUTE1,'')=''
  360. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  361. )c
  362. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  363. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  364. left JOIN ICSOOPick pick ON pick.pickId=a.SourceDetailID AND a.WorkPoint=pick.WorkPoint
  365. LEFT JOIN ICSOutsourcingOrder oo ON oo.OODetailID=pick.OODetailID AND a.WorkPoint=oo.WorkPoint
  366. WHERE d.Type='1' ";
  367. sql = string.Format(sql, Figure);
  368. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  369. #endregion
  370. if (!string.IsNullOrWhiteSpace(queryJson))
  371. {
  372. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  373. {
  374. sql += " and a.OApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  375. }
  376. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  377. {
  378. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  379. }
  380. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  381. {
  382. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  383. }
  384. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  385. {
  386. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  387. }
  388. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  389. {
  390. string POStatus = queryParam["POStatus"].ToString();
  391. if (POStatus == "0")
  392. {
  393. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  394. }
  395. else if (POStatus == "1")
  396. {
  397. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  398. }
  399. else
  400. {
  401. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  402. }
  403. }
  404. }
  405. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  406. {
  407. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  408. }
  409. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  410. {
  411. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  412. }
  413. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  414. }
  415. public DataTable GetSubGridJsonWeiWai(string OApplyNegCode, string Sequence, ref Pagination jqgridparam)
  416. {
  417. DataTable dt = new DataTable();
  418. object Figure = GetDecimalDigits();
  419. //var queryParam = queryJson.ToJObject();
  420. List<DbParameter> parameter = new List<DbParameter>();
  421. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  422. string sql = @" select c.TransCode,c.TransSequence ,a.ID,a.LotNo,CAST(a.Quantity AS DECIMAL(18,{0})) as Quantity from ICSInventoryLot a
  423. left join (select count(LotNo) LotNoCount,LotNo,WorkPoint from ICSWareHouseLotInfo
  424. group by LotNo,WorkPoint)b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  425. left join ICSInventoryLotDetail c on a.LotNo=c.LotNo
  426. WHERE c.TransCode='" + OApplyNegCode + "' and c.TransSequence='" + Sequence + "' and a.WorkPoint in (" + WorkPoint + ")";
  427. sql = string.Format(sql, Figure);
  428. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  429. }
  430. /// <summary>
  431. /// 点击委外退料生成条码
  432. /// </summary>
  433. public DataTable GetSubGridJsonWeiWaiByCreate(string OApplyNegCode, string Sequence, string WorkPoint)
  434. {
  435. DataTable dt = new DataTable();
  436. object Figure = GetDecimalDigits();
  437. List<DbParameter> parameter = new List<DbParameter>();
  438. string sql = @"select a.InvCode,b.InvName,b.ClassCode,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,
  439. 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
  440. ,e.ProjectCode,e.BatchCode,e.Version,e.Brand,e.cFree1,e.cFree2,e.cFree3,e.cFree4,e.cFree5,e.cFree6,e.cFree7,e.cFree8,e.cFree9,e.cFree10
  441. from ICSOApplyNegDetail a
  442. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  443. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  444. left join (
  445. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  446. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='2'
  447. where isnull(a.EATTRIBUTE1,'')=''
  448. group by b.TransCode,b.TransSequence
  449. ) c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  450. left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  451. WHERE d.Type='1'
  452. and a.OApplyNegCode='" + OApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  453. sql += " and a.WorkPoint='" + WorkPoint + "'";
  454. sql = string.Format(sql, Figure);
  455. return Repository().FindTableBySql(sql.ToString());
  456. }
  457. /// <summary>
  458. /// 委外退料生成条码
  459. /// </summary>
  460. /// <param name="POCode"></param>
  461. /// <param name="PORow"></param>
  462. /// <param name="keyValue"></param>
  463. /// 已改
  464. /// <returns></returns>
  465. public int SubmitFormWeiWai(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint, string SourceCode, float Quantity)
  466. {
  467. var queryParam = keyValue.ToJObject();
  468. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  469. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  470. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  471. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  472. decimal LOTQTY = minPackQty;
  473. string InvCode = queryParam["InvCode"].ToString();
  474. string BatchCode = queryParam["BatchCode"].ToString();
  475. //string Pre = "OI" + OApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  476. string sql = string.Empty;
  477. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  478. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  479. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  480. string sqls = string.Empty;
  481. string Colspan = "";
  482. List<string> ExtensionIDList = new List<string>();
  483. string str1 = "";
  484. for (int i = 0; i < createPageCount; i++)
  485. {
  486. if (i + 1 == createPageCount)
  487. {
  488. if (minPackQty * createPageCount > thisCreateQty)
  489. {
  490. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  491. }
  492. }
  493. 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();
  494. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  495. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  496. bool flag = true;
  497. foreach (var item in ExtensionIDList)
  498. {
  499. if (item == Colspan + WorkPoint)
  500. {
  501. flag = false;
  502. }
  503. }
  504. if (ExtensionID == null && flag == true)
  505. {
  506. str1 = Guid.NewGuid().ToString();
  507. sql += string.Format(@"Insert into ICSExtension(ID, Colspan, ProjectCode, BatchCode, Version, Brand, cFree1, cFree2, cFree3, cFree4, cFree5, cFree6, cFree7, cFree8, cFree9, cFree10, MTIME, MUSER, MUSERName, WorkPoint)
  508. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  509. str1, Colspan, queryParam["ProjectCode"].ToString(), queryParam["BatchCode"].ToString(), queryParam["Version"].ToString(), queryParam["Brand"].ToString(), queryParam["cFree1"].ToString(), queryParam["cFree2"].ToString(), queryParam["cFree3"].ToString(), queryParam["cFree4"].ToString(), queryParam["cFree5"].ToString(), queryParam["cFree6"].ToString(), queryParam["cFree7"].ToString(), queryParam["cFree8"].ToString(), queryParam["cFree9"].ToString(), queryParam["cFree10"].ToString(),
  510. MUSER, MUSERNAME, WorkPoints);
  511. }
  512. else if (ExtensionID != null)
  513. {
  514. str1 = ExtensionID.ToString();
  515. }
  516. ExtensionIDList.Add(Colspan + WorkPoint);
  517. string Pre = InvCode + "_" + SourceCode + "_" + BatchCode + "_" + LOTQTY.ToString("G29") + "_";
  518. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 3);
  519. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  520. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  521. LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  522. sql += string.Format(@"insert into ICSInventoryLot
  523. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  524. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  525. select
  526. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','2','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  527. from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  528. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  529. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  530. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  531. sql += "\r\n";
  532. }
  533. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  534. return count;
  535. }
  536. public DataTable GetGridJsonChengPing(string queryJson, string MenuID, ref Pagination jqgridparam)
  537. {
  538. string DataActionsql = actionapp.DataActionSqlGet(MenuID);
  539. DataTable dt = new DataTable();
  540. var queryParam = queryJson.ToJObject();
  541. List<DbParameter> parameter = new List<DbParameter>();
  542. object Figure = GetDecimalDigits();
  543. #region [SQL]
  544. string sql = @" select distinct 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
  545. ,a.DueDate,a.MOStatus,a.ExtensionID,a.MUSERName,a.MTIME ,CAST(c.LOTQTY AS DECIMAL(18,{0})) as LOTQTY ,CAST( a.Quantity AS DECIMAL(18,{0})) -CAST(a.RCVQuantity AS DECIMAL(18,{0})) as ERPNum,a.MOMemo
  546. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  547. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  548. a.EATTRIBUTE9,a.EATTRIBUTE10,b.MTIME as TMTime,dep.DepName,a.CreateDateTime,a.ERPStatus
  549. from ICSMO a
  550. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  551. left join (
  552. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  553. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='3'
  554. where isnull(ee.EATTRIBUTE1,'')=''
  555. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  556. )c
  557. on a.MOCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  558. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  559. left join ICSDepartment dep ON dep.DepCode=a.DepCode and a.WorkPoint=dep.WorkPoint";
  560. sql += " WHERE 1=1 and a.MOStatus<>'3' ";
  561. sql = string.Format(sql, Figure);
  562. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  563. #endregion
  564. if (!string.IsNullOrWhiteSpace(queryJson))
  565. {
  566. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  567. {
  568. sql += " and a.MOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  569. }
  570. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  571. {
  572. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  573. }
  574. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  575. {
  576. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  577. }
  578. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  579. {
  580. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  581. }
  582. if (!string.IsNullOrWhiteSpace(queryParam["SelGDLX"].ToString()))
  583. {
  584. sql += " and a.MOType like '%" + queryParam["SelGDLX"].ToString() + "%' ";
  585. }
  586. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  587. {
  588. string POStatus = queryParam["POStatus"].ToString();
  589. if (POStatus == "0")
  590. {
  591. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  592. }
  593. else if (POStatus == "1")
  594. {
  595. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  596. }
  597. else
  598. {
  599. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)>0";
  600. }
  601. }
  602. }
  603. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  604. {
  605. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  606. }
  607. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  608. {
  609. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  610. }
  611. sql += " " + DataActionsql;
  612. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  613. }
  614. /// <summary>
  615. /// 点击成品生成条码(成品)
  616. /// </summary>
  617. public DataTable GetSubGridJsonChengPingByCreate(string MOCode, string Sequence, string WorkPoint)
  618. {
  619. DataTable dt = new DataTable();
  620. object Figure = GetDecimalDigits();
  621. List<DbParameter> parameter = new List<DbParameter>();
  622. string sql = @"select d.Enable
  623. , a.InvCode
  624. ,b.ClassCode
  625. ,b.InvName
  626. ,b.InvStd
  627. ,b.InvUnit
  628. , CAST( InvOver.Quantity AS DECIMAL(18,4)) as Quantity
  629. ,CAST( a.Amount as DECIMAL(18,4)) as Amount
  630. , CAST( isnull(c.LOTQTY,0) as DECIMAL(18,4)) as CreatedQty
  631. , CAST( (InvOver.Quantity-ISNULL(c.LOTQTY,0)-ISNULL(f.Quantity,0)) as DECIMAL(18,4)) as thisCreateQty
  632. ,isnull(b.EffectiveEnable,0) as EffectiveEnable
  633. , CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,4)) as EffectiveDays
  634. ,e.ProjectCode
  635. ,e.BatchCode
  636. ,e.Version
  637. ,e.Brand
  638. ,e.cFree1
  639. ,e.cFree2
  640. ,e.cFree3
  641. ,e.cFree4
  642. ,e.cFree5
  643. ,e.cFree6
  644. ,e.cFree7
  645. ,e.cFree8
  646. ,e.cFree9
  647. ,e.cFree10
  648. ,''as EATTRIBUTE2
  649. ,''as EATTRIBUTE3
  650. ,''as EATTRIBUTE4
  651. ,''as EATTRIBUTE5
  652. from ICSMO a
  653. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  654. left JOIN(select a.MOCode,a.Sequence,a.WorkPoint,
  655. case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
  656. from ICSMO a
  657. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint) invOver ON invOver.MOCode=a.MOCode AND invOver.Sequence=a.Sequence AND invOver.WorkPoint=a.WorkPoint
  658. left join (
  659. select b.TransCode
  660. ,b.TransSequence
  661. ,sum(isnull(Quantity,0)) LOTQTY
  662. from ICSInventoryLot a
  663. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='3'
  664. where isnull(a.EATTRIBUTE1,'')=''
  665. group by b.TransCode,b.TransSequence
  666. ) c on a.MOCode=c.TransCode and a.Sequence=c.TransSequence
  667. left join ICSConfiguration d on d.Code='CompleteVerification001' and a.WorkPoint =d.WorkPoint
  668. left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  669. LEFT JOIN md_temp f ON a.mocode=f.mdcode AND a.InvCode=f.invcode
  670. WHERE 1 =1 and a.MOStatus<>'3'
  671. and a.MOCode='" + MOCode + "' and a.Sequence='" + Sequence + "'";
  672. sql += " and a.WorkPoint='" + WorkPoint + "'";
  673. sql = string.Format(sql, Figure);
  674. return Repository().FindTableBySql(sql.ToString());
  675. }
  676. /// <summary>
  677. /// 成品生成条码
  678. /// </summary>
  679. /// <param name="POCode"></param>
  680. /// <param name="PORow"></param>
  681. /// <param name="keyValue"></param>
  682. /// 已改
  683. /// <returns></returns>
  684. ///传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  685. public int SubmitFormChengPing(string MOCode, string Sequence, string keyValue, string WorkPoint, float Quantity)
  686. {
  687. var queryParam = keyValue.ToJObject();
  688. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  689. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  690. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  691. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  692. decimal LOTQTY = minPackQty;
  693. string InvCode = queryParam["ClassCode"].ToString();
  694. string InvCodeLP = queryParam["InvCode"].ToString();
  695. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  696. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  697. var now = DateTime.Now.ToString("yyyyMMdd");
  698. //string Pre = InvCodeLP + "|" + MOCode + "|";
  699. //string Pre = "CP" + MOCode + (Convert.ToInt32(Sequence)).ToString("D4");
  700. string sql = string.Empty;
  701. //string VendorLot = queryParam["VendorLot"].ToString();
  702. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  703. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  704. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  705. string sqls = string.Empty;
  706. string Colspan = "";
  707. string str1 = "";
  708. string LotNo = string.Empty;
  709. List<string> ExtensionIDList = new List<string>();
  710. for (int i = 0; i < createPageCount; i++)
  711. {
  712. if (i + 1 == createPageCount)
  713. {
  714. if (minPackQty * createPageCount > thisCreateQty)
  715. {
  716. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  717. }
  718. }
  719. 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();
  720. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  721. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  722. bool flag = true;
  723. foreach (var item in ExtensionIDList)
  724. {
  725. if (item == Colspan + WorkPoint)
  726. {
  727. flag = false;
  728. }
  729. }
  730. if (ExtensionID == null && flag == true)
  731. {
  732. str1 = Guid.NewGuid().ToString();
  733. 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)
  734. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  735. str1, 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(),
  736. MUSER, MUSERNAME, WorkPoints);
  737. }
  738. else if (ExtensionID != null)
  739. {
  740. str1 = ExtensionID.ToString();
  741. }
  742. ExtensionIDList.Add(Colspan + WorkPoint);
  743. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  744. //if (AMEnable == "true")
  745. //{
  746. // LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  747. //}vvv
  748. //else
  749. //{
  750. string Pre = InvCodeLP + "|" + MOCode + "|" + LOTQTY.ToString().TrimEnd('0').TrimEnd('.') + "|" + DateTime.Now.ToString("yyyyMMdd") + "|";
  751. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 4);
  752. //}
  753. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  754. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  755. LotNo, MOCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  756. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  757. //{
  758. sql += string.Format(@"insert into ICSInventoryLot
  759. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  760. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  761. select
  762. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','3','{3}','{4}', getdate(),'{5}','{9}','{11}','0','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  763. from ICSMO where MOCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  764. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, MOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  765. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  766. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  767. sql += "\r\n";
  768. //}
  769. }
  770. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  771. return count;
  772. }
  773. public DataTable GetGridJsonXiaoShou(string queryJson, ref Pagination jqgridparam)
  774. {
  775. DataTable dt = new DataTable();
  776. var queryParam = queryJson.ToJObject();
  777. List<DbParameter> parameter = new List<DbParameter>();
  778. object Figure = GetDecimalDigits();
  779. #region [SQL]
  780. string sql = @" select a.ID,a.SDNCode,a.Sequence,a.WHCode,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
  781. ,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
  782. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  783. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  784. a.EATTRIBUTE9,a.EATTRIBUTE10,dep.DepName
  785. from ICSSDN a
  786. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  787. left join (
  788. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  789. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='4'
  790. where isnull(ee.EATTRIBUTE1,'')=''
  791. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  792. )c
  793. on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  794. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  795. left join ICSDepartment dep ON dep.DepCode=a.[Detp]
  796. where a.Type='2'";
  797. sql = string.Format(sql, Figure);
  798. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  799. #endregion
  800. if (!string.IsNullOrWhiteSpace(queryJson))
  801. {
  802. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  803. {
  804. sql += " and a.SDNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  805. }
  806. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  807. {
  808. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  809. }
  810. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  811. {
  812. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  813. }
  814. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  815. {
  816. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  817. }
  818. if (!string.IsNullOrWhiteSpace(queryParam["CustomerName"].ToString()))
  819. {
  820. sql += " and a.CusName like '%" + queryParam["CustomerName"].ToString() + "%' ";
  821. }
  822. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  823. {
  824. string POStatus = queryParam["POStatus"].ToString();
  825. if (POStatus == "0")
  826. {
  827. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  828. }
  829. else if (POStatus == "1")
  830. {
  831. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  832. }
  833. else
  834. {
  835. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  836. }
  837. }
  838. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  839. {
  840. sql += " and a.CreateDateTime >= '" + queryParam["TimeFrom"].ToString() + "' ";
  841. }
  842. if (!string.IsNullOrWhiteSpace(queryParam["TimeArrive"].ToString()))
  843. {
  844. sql += " and a.CreateDateTime <= '" + queryParam["TimeArrive"].ToString() + "' ";
  845. }
  846. }
  847. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  848. {
  849. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  850. }
  851. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  852. {
  853. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  854. }
  855. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  856. }
  857. /// <summary>
  858. /// 点击销售退货生成条码(销售退货)
  859. /// </summary>
  860. public DataTable GetSubGridJsonXiaoShouByCreate(string SDNCode, string Sequence, string WorkPoint)
  861. {
  862. DataTable dt = new DataTable();
  863. object Figure = GetDecimalDigits();
  864. List<DbParameter> parameter = new List<DbParameter>();
  865. string sql = @"select a.InvCode,b.InvName,b.ClassCode,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,
  866. 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
  867. ,d.ProjectCode,d.BatchCode,d.Version,d.Brand,d.cFree1,d.cFree2,d.cFree3,d.cFree4,d.cFree5,d.cFree6,d.cFree7,d.cFree8,d.cFree9,d.cFree10,'' as EATTRIBUTE2,'' as EATTRIBUTE3
  868. ,'' as EATTRIBUTE4,f.TransCode AS EATTRIBUTE5,'' as EATTRIBUTE6,'' as EATTRIBUTE7,'' as EATTRIBUTE8,'' as EATTRIBUTE9,'' as EATTRIBUTE10
  869. from ICSSDN a
  870. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  871. left join (
  872. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  873. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='4'
  874. where isnull(a.EATTRIBUTE1,'')=''
  875. group by b.TransCode,b.TransSequence
  876. ) c on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence
  877. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  878. left join ICSInventoryLot e on e.ExtensionID=d.ID and e.Type='3'
  879. left join ICSInventoryLotDetail f on f.LotNo=e.LotNo and f.WorkPoint=e.WorkPoint
  880. WHERE 1 =1
  881. and a.Type='2' and a.SDNCode='" + SDNCode + "' and a.Sequence='" + Sequence + "'";
  882. sql += " and a.WorkPoint='" + WorkPoint + "'";
  883. sql = string.Format(sql, Figure);
  884. return Repository().FindTableBySql(sql.ToString());
  885. }
  886. /// <summary>
  887. /// 销售退货生成条码
  888. /// </summary>
  889. /// <param name="POCode"></param>
  890. /// <param name="PORow"></param>
  891. /// <param name="keyValue"></param>
  892. /// 已改
  893. /// <returns></returns>
  894. public int SubmitFormXiaoShou(string SDNCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  895. {
  896. var queryParam = keyValue.ToJObject();
  897. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  898. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  899. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  900. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  901. decimal LOTQTY = minPackQty;
  902. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  903. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  904. string sql = string.Empty;
  905. //string VendorLot = queryParam["VendorLot"].ToString();
  906. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  907. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  908. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  909. string PRODUCTDATE1 = queryParam["PRODUCTDATE"].ToDate().ToString("yyyyMMdd");
  910. string InvCode = queryParam["ClassCode"].ToString();
  911. string sqls = string.Empty;
  912. string Colspan = "";
  913. string str1 = "";
  914. string LotNo = string.Empty;
  915. List<string> ExtensionIDList = new List<string>();
  916. for (int i = 0; i < createPageCount; i++)
  917. {
  918. if (i + 1 == createPageCount)
  919. {
  920. if (minPackQty * createPageCount > thisCreateQty)
  921. {
  922. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  923. }
  924. }
  925. string lt = LOTQTY.ToString().TrimEnd('0').TrimEnd('.');
  926. string Pre = queryParam["InvCode"].ToString() + "|" + lt + "|" + queryParam["BatchCode"].ToString() + "|" + PRODUCTDATE1 + "|";
  927. 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();
  928. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  929. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  930. bool flag = true;
  931. foreach (var item in ExtensionIDList)
  932. {
  933. if (item == Colspan + WorkPoint)
  934. {
  935. flag = false;
  936. }
  937. }
  938. if (ExtensionID == null && flag == true)
  939. {
  940. str1 = Guid.NewGuid().ToString();
  941. 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)
  942. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  943. str1, 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(),
  944. MUSER, MUSERNAME, WorkPoints);
  945. }
  946. else if (ExtensionID != null)
  947. {
  948. str1 = ExtensionID.ToString();
  949. }
  950. ExtensionIDList.Add(Colspan + WorkPoint);
  951. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  952. if (AMEnable == "true")
  953. {
  954. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  955. }
  956. else
  957. {
  958. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  959. }
  960. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  961. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}')",
  962. LotNo, SDNCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  963. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  964. //{
  965. sql += string.Format(@"
  966. insert into ICSInventoryLot
  967. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  968. select
  969. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','4','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  970. from ICSSDN where Type='2' and SDNCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  971. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, SDNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  972. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  973. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  974. sql += "\r\n";
  975. //}
  976. }
  977. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  978. return count;
  979. }
  980. public DataTable GetGridJsonQiTa(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 = @" select a.ID,a.InCode,a.Sequence,a.WHCode,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
  988. 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
  989. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  990. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  991. a.EATTRIBUTE9,a.EATTRIBUTE10
  992. from ICSOtherIn 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='5'
  997. where isnull(ee.EATTRIBUTE1,'')=''
  998. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  999. )c
  1000. on a.InCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  1001. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1002. where a.Status='1'";
  1003. sql = string.Format(sql, Figure);
  1004. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  1005. #endregion
  1006. if (!string.IsNullOrWhiteSpace(queryJson))
  1007. {
  1008. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1009. {
  1010. sql += " and a.InCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1011. }
  1012. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1013. {
  1014. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1015. }
  1016. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  1017. {
  1018. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  1019. }
  1020. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  1021. {
  1022. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  1023. }
  1024. if (!string.IsNullOrWhiteSpace(queryParam["U8InvCode"].ToString()))
  1025. {
  1026. sql += " and b.EATTRIBUTE2 like '%" + queryParam["U8InvCode"].ToString() + "%' ";
  1027. }
  1028. if (!string.IsNullOrWhiteSpace(queryParam["CusInvCode"].ToString()))
  1029. {
  1030. sql += " and a.EATTRIBUTE6 like '%" + queryParam["CusInvCode"].ToString() + "%' ";
  1031. }
  1032. if (!string.IsNullOrWhiteSpace(queryParam["CusBatchCode"].ToString()))
  1033. {
  1034. sql += " and f.BatchCode like '%" + queryParam["CusBatchCode"].ToString() + "%' ";
  1035. }
  1036. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  1037. {
  1038. string POStatus = queryParam["POStatus"].ToString();
  1039. if (POStatus == "0")
  1040. {
  1041. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  1042. }
  1043. else if (POStatus == "1")
  1044. {
  1045. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  1046. }
  1047. else
  1048. {
  1049. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  1050. }
  1051. }
  1052. }
  1053. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1054. {
  1055. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1056. }
  1057. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  1058. {
  1059. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  1060. }
  1061. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1062. }
  1063. /// <summary>
  1064. /// 点击销售退货生成条码(其他入库)
  1065. /// </summary>
  1066. public DataTable GetSubGridJsonQiTaByCreate(string InCode, string Sequence, string WorkPoint)
  1067. {
  1068. DataTable dt = new DataTable();
  1069. object Figure = GetDecimalDigits();
  1070. List<DbParameter> parameter = new List<DbParameter>();
  1071. string sql = @"select a.InvCode,b.InvName,b.ClassCode,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,d.BatchCode as EATTRIBUTE3,
  1072. 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
  1073. ,d.ProjectCode,d.BatchCode,d.Version,d.Brand,d.cFree1,d.cFree2,d.cFree3,d.cFree4,d.cFree5,d.cFree6,d.cFree7,d.cFree8,d.cFree9,d.cFree10--,d.BatchCode as EATTRIBUTE3
  1074. ,ISNULL(a.EATTRIBUTE5,'') AS EATTRIBUTE5,a.EATTRIBUTE6 AS EATTRIBUTE6,a.EATTRIBUTE8 AS EATTRIBUTE8
  1075. from ICSOtherIn a
  1076. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1077. left join (
  1078. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  1079. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='5'
  1080. where isnull(a.EATTRIBUTE1,'')=''
  1081. group by b.TransCode,b.TransSequence
  1082. ) c on a.InCode=c.TransCode and a.Sequence=c.TransSequence
  1083. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  1084. WHERE 1 =1
  1085. and a.InCode='" + InCode + "' and a.Sequence='" + Sequence + "'";
  1086. sql += " and a.WorkPoint='" + WorkPoint + "'";
  1087. sql = string.Format(sql, Figure);
  1088. return Repository().FindTableBySql(sql.ToString());
  1089. }
  1090. /// <summary>
  1091. /// 其他入库生成条码
  1092. /// </summary>
  1093. /// <param name="POCode"></param>
  1094. /// <param name="PORow"></param>
  1095. /// <param name="keyValue"></param>
  1096. /// 已改
  1097. /// <returns></returns>
  1098. public int SubmitFormQiTa(string InCode, string Sequence, string keyValue, string WorkPoint, string AMEnable, float Quantity)
  1099. {
  1100. var queryParam = keyValue.ToJObject();
  1101. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1102. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1103. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1104. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1105. string BatchCode = queryParam["EATTRIBUTE3"].ToString();//客户批次
  1106. decimal LOTQTY = minPackQty;
  1107. string InvCodeLP = queryParam["InvCode"].ToString();//物料
  1108. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1109. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  1110. //string Pre = "QT" + InCode + (Convert.ToInt32(Sequence)).ToString("D4");
  1111. string Pre = InvCodeLP + "|" + DateTime.Now.ToString("yyyyMMdd") + "|" + Quantity + "|" + BatchCode + "|";
  1112. string sql = string.Empty;
  1113. //string VendorLot = queryParam["VendorLot"].ToString();
  1114. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1115. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1116. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1117. string InvCode = queryParam["ClassCode"].ToString();
  1118. string sqls = string.Empty;
  1119. string Colspan = "";
  1120. string str1 = "";
  1121. string LotNo = string.Empty;
  1122. List<string> ExtensionIDList = new List<string>();
  1123. //添加是否自动检验逻辑
  1124. string checksql = $@"SELECT * FROM ICSOtherIn WHERE EATTRIBUTE2 in(
  1125. SELECT b.F_ItemCode FROM Sys_SRM_Items a
  1126. LEFT JOIN Sys_SRM_ItemsDetail b ON a.F_Id = b.F_ItemId
  1127. WHERE a.F_EnCode = 'ZSClass') AND InCode = '{InCode}' AND WorkPoint = '{WorkPoint}' AND Sequence = '{Sequence}' ";
  1128. var checkdt = SqlHelper.CmdExecuteDataTable(checksql);
  1129. for (int i = 0; i < createPageCount; i++)
  1130. {
  1131. if (i + 1 == createPageCount)
  1132. {
  1133. if (minPackQty * createPageCount > thisCreateQty)
  1134. {
  1135. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1136. }
  1137. }
  1138. 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();
  1139. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1140. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1141. bool flag = true;
  1142. foreach (var item in ExtensionIDList)
  1143. {
  1144. if (item == Colspan + WorkPoint)
  1145. {
  1146. flag = false;
  1147. }
  1148. }
  1149. if (ExtensionID == null && flag == true)
  1150. {
  1151. str1 = Guid.NewGuid().ToString();
  1152. 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)
  1153. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1154. str1, 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. MUSER, MUSERNAME, WorkPoints);
  1156. }
  1157. else if (ExtensionID != null)
  1158. {
  1159. str1 = ExtensionID.ToString();
  1160. }
  1161. ExtensionIDList.Add(Colspan + WorkPoint);
  1162. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1163. if (AMEnable == "true")
  1164. {
  1165. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  1166. }
  1167. else
  1168. {
  1169. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  1170. }
  1171. //如果配置了自动检验的条码,新增检验表数据
  1172. if (checkdt.Rows.Count > 0)
  1173. {
  1174. sql += $@" INSERT INTO [ICSInspection] ([ID], [LotNo], [InvCode], [Quantity], [QualifiedQuantity], [UnqualifiedQuantity], [WaiveQuantity], [SampleQuantity], [BCCode], [BRCode], [Type], [Result], [ExpirationDate], [FileName], [Enable], [MUSER], [MUSERName], [MTIME], [WorkPoint]) VALUES (NEWID(), N'{LotNo}', N'{checkdt.Rows[0]["InvCode"]}', '{LOTQTY}', '{LOTQTY}', 0.000000, 0.000000, NULL, N'', N'', N'4', NULL, NULL, NULL, '1', N'{MUSER}', N'{MUSERNAME}', GETDATE(), N'{WorkPoint}'); ";
  1175. }
  1176. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  1177. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  1178. LotNo, InCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  1179. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  1180. //{
  1181. sql += string.Format(@"
  1182. insert into ICSInventoryLot
  1183. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  1184. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1185. select
  1186. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','5','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1187. from ICSOtherIn where InCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  1188. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, InCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  1189. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1190. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1191. sql += "\r\n";
  1192. //}
  1193. }
  1194. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1195. return count;
  1196. }
  1197. //归还
  1198. public DataTable GetGridJsonGuiHuan(string queryJson, ref Pagination jqgridparam)
  1199. {
  1200. DataTable dt = new DataTable();
  1201. var queryParam = queryJson.ToJObject();
  1202. List<DbParameter> parameter = new List<DbParameter>();
  1203. object Figure = GetDecimalDigits();
  1204. #region [SQL]
  1205. 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
  1206. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1207. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  1208. a.EATTRIBUTE9,a.EATTRIBUTE10
  1209. from ICSReturn a
  1210. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1211. left join (
  1212. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  1213. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='6'
  1214. where isnull(ee.EATTRIBUTE1,'')=''
  1215. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  1216. ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  1217. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1218. where a.Status='2'";
  1219. sql = string.Format(sql, Figure);
  1220. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  1221. #endregion
  1222. if (!string.IsNullOrWhiteSpace(queryJson))
  1223. {
  1224. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1225. {
  1226. sql += " and a.ReturnCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1227. }
  1228. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1229. {
  1230. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1231. }
  1232. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  1233. {
  1234. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  1235. }
  1236. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  1237. {
  1238. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  1239. }
  1240. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  1241. {
  1242. string POStatus = queryParam["POStatus"].ToString();
  1243. if (POStatus == "0")
  1244. {
  1245. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  1246. }
  1247. else if (POStatus == "1")
  1248. {
  1249. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  1250. }
  1251. else
  1252. {
  1253. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  1254. }
  1255. }
  1256. }
  1257. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1258. {
  1259. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1260. }
  1261. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  1262. {
  1263. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  1264. }
  1265. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1266. }
  1267. //审核到货单(采购订单需与审核到货单一起同步)
  1268. public DataTable GetGridJsonSHDH(string queryJson, ref Pagination jqgridparam)
  1269. {
  1270. DataTable dt = new DataTable();
  1271. var queryParam = queryJson.ToJObject();
  1272. List<DbParameter> parameter = new List<DbParameter>();
  1273. object Figure = GetDecimalDigits();
  1274. #region [SQL]
  1275. string sql = @"select distinct a.ID, d.POCode,d.Sequence as POSequence,a.DNCode,a.Sequence,a.VenCode,e.VenName,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
  1276. 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
  1277. ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,{0})) as EffectiveDays
  1278. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1279. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  1280. a.EATTRIBUTE9,a.EATTRIBUTE10
  1281. from ICSDeliveryNotice a
  1282. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1283. left join (
  1284. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  1285. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='7'
  1286. where isnull(ee.EATTRIBUTE1,'')=''
  1287. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  1288. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  1289. inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  1290. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  1291. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1292. where a.DNType='1' and a.Status='2' and a.ASNCode is null
  1293. ";
  1294. sql = string.Format(sql, Figure);
  1295. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  1296. #endregion
  1297. if (!string.IsNullOrWhiteSpace(queryJson))
  1298. {
  1299. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1300. {
  1301. sql += " and a.DNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1302. }
  1303. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  1304. {
  1305. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  1306. }
  1307. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  1308. {
  1309. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  1310. }
  1311. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1312. {
  1313. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1314. }
  1315. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  1316. {
  1317. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  1318. }
  1319. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  1320. {
  1321. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  1322. }
  1323. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  1324. {
  1325. string POStatus = queryParam["POStatus"].ToString();
  1326. if (POStatus == "0")
  1327. {
  1328. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  1329. }
  1330. else if (POStatus == "1")
  1331. {
  1332. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  1333. }
  1334. else
  1335. {
  1336. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  1337. }
  1338. }
  1339. }
  1340. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1341. {
  1342. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1343. }
  1344. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  1345. {
  1346. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  1347. }
  1348. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1349. }
  1350. //审核委外到货单
  1351. public DataTable GetGridJsonWWSHDH(string queryJson, ref Pagination jqgridparam)
  1352. {
  1353. DataTable dt = new DataTable();
  1354. var queryParam = queryJson.ToJObject();
  1355. List<DbParameter> parameter = new List<DbParameter>();
  1356. object Figure = GetDecimalDigits();
  1357. #region [SQL]
  1358. 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,
  1359. CAST(c.LOTQTY AS DECIMAL(18,{0})) as LOTQTY ,d.OODetailID ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,{0})) as EffectiveDays
  1360. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1361. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10 ,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  1362. a.EATTRIBUTE9,a.EATTRIBUTE10
  1363. from ICSODeliveryNotice a
  1364. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1365. left join (
  1366. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  1367. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='8'
  1368. where isnull(ee.EATTRIBUTE1,'')=''
  1369. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  1370. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  1371. inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  1372. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  1373. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1374. where a.ODNType='1' and a.Status='2' and a.OASNCode is null";
  1375. sql = string.Format(sql, Figure);
  1376. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  1377. #endregion
  1378. if (!string.IsNullOrWhiteSpace(queryJson))
  1379. {
  1380. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1381. {
  1382. sql += " and a.ODNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1383. }
  1384. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  1385. {
  1386. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  1387. }
  1388. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  1389. {
  1390. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  1391. }
  1392. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1393. {
  1394. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1395. }
  1396. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  1397. {
  1398. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  1399. }
  1400. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  1401. {
  1402. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  1403. }
  1404. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  1405. {
  1406. string POStatus = queryParam["POStatus"].ToString();
  1407. if (POStatus == "0")
  1408. {
  1409. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  1410. }
  1411. else if (POStatus == "1")
  1412. {
  1413. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  1414. }
  1415. else
  1416. {
  1417. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  1418. }
  1419. }
  1420. }
  1421. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1422. {
  1423. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1424. }
  1425. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  1426. {
  1427. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  1428. }
  1429. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1430. }
  1431. //开立得成品入库单
  1432. public DataTable GetGridJsonKLCPRK(string queryJson, ref Pagination jqgridparam)
  1433. {
  1434. DataTable dt = new DataTable();
  1435. var queryParam = queryJson.ToJObject();
  1436. List<DbParameter> parameter = new List<DbParameter>();
  1437. object Figure = GetDecimalDigits();
  1438. #region [SQL]
  1439. string sql = @"
  1440. select a.ID,a.RCVCode,a.Sequence,g.MOCode,a.WHCode,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,CAST(a.Quantity AS DECIMAL(18,{0})) as Quantity ,
  1441. 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
  1442. ,b.EffectiveEnable,b.EffectiveDays
  1443. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1444. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  1445. a.EATTRIBUTE9,a.EATTRIBUTE10
  1446. from ICSManufactureReceive a
  1447. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1448. left join (
  1449. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  1450. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='9'
  1451. where isnull(ee.EATTRIBUTE1,'')=''
  1452. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  1453. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  1454. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1455. left join icsmo g on a.SourceCode=g.MOCode and a.WorkPoint=g.WorkPoint
  1456. where a.Status='1' and a.Type='1'";
  1457. sql = string.Format(sql, Figure);
  1458. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  1459. #endregion
  1460. if (!string.IsNullOrWhiteSpace(queryJson))
  1461. {
  1462. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1463. {
  1464. sql += " and a.RCVCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1465. }
  1466. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1467. {
  1468. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1469. }
  1470. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  1471. {
  1472. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  1473. }
  1474. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  1475. {
  1476. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  1477. }
  1478. if (!string.IsNullOrWhiteSpace(queryParam["SCode"].ToString()))
  1479. {
  1480. sql += " and g.MOCode like '%" + queryParam["SCode"].ToString() + "%' ";
  1481. }
  1482. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  1483. {
  1484. string POStatus = queryParam["POStatus"].ToString();
  1485. if (POStatus == "0")
  1486. {
  1487. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  1488. }
  1489. else if (POStatus == "1")
  1490. {
  1491. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  1492. }
  1493. else
  1494. {
  1495. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  1496. }
  1497. }
  1498. }
  1499. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1500. {
  1501. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1502. }
  1503. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  1504. {
  1505. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  1506. }
  1507. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1508. }
  1509. /// <summary>
  1510. /// 点击审核委外到货单生成条码(审核委外到货单)
  1511. /// </summary>
  1512. public DataTable GetSubGridJsonWWSHDHByCreate(string ODNCode, string Sequence, string WorkPoint)
  1513. {
  1514. DataTable dt = new DataTable();
  1515. object Figure = GetDecimalDigits();
  1516. List<DbParameter> parameter = new List<DbParameter>();
  1517. string sql = @"select e.Enable, a.InvCode,b.InvName,b.ClassCode,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,
  1518. 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
  1519. ,d.ProjectCode,d.BatchCode,d.Version,d.Brand,d.cFree1,d.cFree2,d.cFree3,d.cFree4,d.cFree5,d.cFree6,d.cFree7,d.cFree8,d.cFree9,d.cFree10
  1520. from ICSODeliveryNotice a
  1521. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1522. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  1523. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='8'
  1524. where isnull(a.EATTRIBUTE1,'')=''
  1525. group by b.TransCode,b.TransSequence
  1526. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence
  1527. left join ICSConfiguration e on e.Code='CompleteVerification002' and a.WorkPoint =e.WorkPoint
  1528. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  1529. WHERE 1 =1
  1530. and a.ODNCode='" + ODNCode + "' and a.Sequence='" + Sequence + "'";
  1531. sql += " and a.WorkPoint='" + WorkPoint + "'";
  1532. sql = string.Format(sql, Figure);
  1533. return Repository().FindTableBySql(sql.ToString());
  1534. }
  1535. /// <summary>
  1536. /// 点击开立成品入库生成条码(开立成品入库单)
  1537. /// </summary>
  1538. /// //--
  1539. public DataTable GetSubGridJsonKLCPRKByCreate(string RCVCode, string Sequence, string WorkPoint)
  1540. {
  1541. DataTable dt = new DataTable();
  1542. object Figure = GetDecimalDigits();
  1543. List<DbParameter> parameter = new List<DbParameter>();
  1544. string sql = @"select a.InvCode,b.InvName,b.ClassCode,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,
  1545. 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
  1546. ,d.ProjectCode,d.BatchCode,d.Version,d.Brand,d.cFree1,d.cFree2,d.cFree3,d.cFree4,d.cFree5,d.cFree6,d.cFree7,d.cFree8,d.cFree9,d.cFree10
  1547. from ICSManufactureReceive a
  1548. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1549. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  1550. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='9'
  1551. where isnull(a.EATTRIBUTE1,'')=''
  1552. group by b.TransCode,b.TransSequence
  1553. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence
  1554. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  1555. WHERE 1 =1
  1556. and a.RCVCode='" + RCVCode + "' and a.Sequence='" + Sequence + "'";
  1557. sql += " and a.WorkPoint='" + WorkPoint + "'";
  1558. sql = string.Format(sql, Figure);
  1559. return Repository().FindTableBySql(sql.ToString());
  1560. }
  1561. /// <summary>
  1562. /// 点击审核到货单生成条码(审核到货单)
  1563. /// </summary>
  1564. public DataTable GetSubGridJsonSHDHByCreate(string DNCode, string Sequence, string WorkPoint)
  1565. {
  1566. DataTable dt = new DataTable();
  1567. object Figure = GetDecimalDigits();
  1568. List<DbParameter> parameter = new List<DbParameter>();
  1569. string sql = @"select a.InvCode,b.InvName,b.ClassCode,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,
  1570. 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
  1571. ,d.ProjectCode,d.BatchCode,d.Version,d.Brand,d.cFree1,d.cFree2,d.cFree3,d.cFree4,d.cFree5,d.cFree6,d.cFree7,d.cFree8,d.cFree9,d.cFree10
  1572. from ICSDeliveryNotice a
  1573. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1574. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  1575. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='7'
  1576. where isnull(a.EATTRIBUTE1,'')=''
  1577. group by b.TransCode,b.TransSequence
  1578. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence
  1579. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  1580. WHERE 1 =1
  1581. and a.DNCode='" + DNCode + "' and a.Sequence='" + Sequence + "'";
  1582. sql += " and a.WorkPoint='" + WorkPoint + "'";
  1583. sql = string.Format(sql, Figure);
  1584. return Repository().FindTableBySql(sql.ToString());
  1585. }
  1586. /// <summary>
  1587. /// 点击归还生成条码(归还)
  1588. /// </summary>
  1589. public DataTable GetSubGridJsonGuiHuanByCreate(string ReturnCode, string Sequence, string WorkPoint)
  1590. {
  1591. DataTable dt = new DataTable();
  1592. object Figure = GetDecimalDigits();
  1593. List<DbParameter> parameter = new List<DbParameter>();
  1594. string sql = @"select a.InvCode,b.InvName,b.ClassCode,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,
  1595. 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
  1596. ,d.ProjectCode,d.BatchCode,d.Version,d.Brand,d.cFree1,d.cFree2,d.cFree3,d.cFree4,d.cFree5,d.cFree6,d.cFree7,d.cFree8,d.cFree9,d.cFree10
  1597. from ICSReturn a
  1598. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1599. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  1600. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='6'
  1601. where isnull(a.EATTRIBUTE1,'')=''
  1602. group by b.TransCode,b.TransSequence
  1603. ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence
  1604. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  1605. WHERE 1 =1
  1606. and a.ReturnCode='" + ReturnCode + "' and a.Sequence='" + Sequence + "'";
  1607. sql += " and a.WorkPoint='" + WorkPoint + "'";
  1608. sql = string.Format(sql, Figure);
  1609. return Repository().FindTableBySql(sql.ToString());
  1610. }
  1611. /// <summary>
  1612. /// 归还单生成条码
  1613. /// </summary>
  1614. /// <param name="POCode"></param>
  1615. /// <param name="PORow"></param>
  1616. /// <param name="keyValue"></param>
  1617. /// 已改
  1618. /// <returns></returns>
  1619. public int SubmitFormGuiHuan(string ReturnCode, string Sequence, string keyValue, string WorkPoint)
  1620. {
  1621. var queryParam = keyValue.ToJObject();
  1622. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1623. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1624. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1625. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1626. decimal LOTQTY = minPackQty;
  1627. string Pre = "GH" + ReturnCode + (Convert.ToInt32(Sequence)).ToString("D4");
  1628. string sql = string.Empty;
  1629. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1630. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1631. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1632. string sqls = string.Empty;
  1633. string Colspan = "";
  1634. string str1 = "";
  1635. List<string> ExtensionIDList = new List<string>();
  1636. for (int i = 0; i < createPageCount; i++)
  1637. {
  1638. if (i + 1 == createPageCount)
  1639. {
  1640. if (minPackQty * createPageCount > thisCreateQty)
  1641. {
  1642. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1643. }
  1644. }
  1645. 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. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1647. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1648. bool flag = true;
  1649. foreach (var item in ExtensionIDList)
  1650. {
  1651. if (item == Colspan + WorkPoint)
  1652. {
  1653. flag = false;
  1654. }
  1655. }
  1656. if (ExtensionID == null && flag == true)
  1657. {
  1658. str1 = Guid.NewGuid().ToString();
  1659. 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)
  1660. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1661. str1, 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(),
  1662. MUSER, MUSERNAME, WorkPoints);
  1663. }
  1664. else if (ExtensionID != null)
  1665. {
  1666. str1 = ExtensionID.ToString();
  1667. }
  1668. ExtensionIDList.Add(Colspan + WorkPoint);
  1669. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  1670. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  1671. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  1672. LotNo, ReturnCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  1673. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  1674. //{
  1675. sql += string.Format(@"
  1676. insert into ICSInventoryLot
  1677. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1678. select
  1679. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','6','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1680. from ICSReturn where ReturnCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  1681. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ReturnCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  1682. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1683. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1684. sql += "\r\n";
  1685. //}
  1686. }
  1687. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1688. return count;
  1689. }
  1690. /// <summary>
  1691. /// 审核到货单生成条码
  1692. /// </summary>
  1693. /// <param name="POCode"></param>
  1694. /// <param name="PORow"></param>
  1695. /// <param name="keyValue"></param>
  1696. /// 2023 1117 传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则 lacy.xu
  1697. /// <returns></returns>
  1698. public int SubmitFormSHDH(string DNCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  1699. {
  1700. var queryParam = keyValue.ToJObject();
  1701. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1702. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1703. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1704. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1705. decimal LOTQTY = minPackQty;
  1706. string Pre = "DN" + DNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  1707. string sql = string.Empty;
  1708. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1709. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1710. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1711. string InvCode = queryParam["ClassCode"].ToString();
  1712. string sqls = string.Empty;
  1713. string Colspan = "";
  1714. string str1 = "";
  1715. string LotNo = string.Empty;
  1716. List<string> ExtensionIDList = new List<string>();
  1717. for (int i = 0; i < createPageCount; i++)
  1718. {
  1719. if (i + 1 == createPageCount)
  1720. {
  1721. if (minPackQty * createPageCount > thisCreateQty)
  1722. {
  1723. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1724. }
  1725. }
  1726. 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();
  1727. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1728. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1729. bool flag = true;
  1730. foreach (var item in ExtensionIDList)
  1731. {
  1732. if (item == Colspan + WorkPoint)
  1733. {
  1734. flag = false;
  1735. }
  1736. }
  1737. if (ExtensionID == null && flag == true)
  1738. {
  1739. str1 = Guid.NewGuid().ToString();
  1740. 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)
  1741. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1742. str1, 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(),
  1743. MUSER, MUSERNAME, WorkPoints);
  1744. }
  1745. else if (ExtensionID != null)
  1746. {
  1747. str1 = ExtensionID.ToString();
  1748. }
  1749. ExtensionIDList.Add(Colspan + WorkPoint);
  1750. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1751. if (AMEnable == "true")
  1752. {
  1753. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  1754. }
  1755. else
  1756. {
  1757. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  1758. }
  1759. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  1760. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  1761. LotNo, DNCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  1762. sql += string.Format(@"
  1763. insert into ICSInventoryLot
  1764. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1765. select
  1766. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','7','{3}','{4}', getdate(),'{5}','{9}'
  1767. ,'{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1768. from ICSDeliveryNotice where DNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  1769. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, DNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  1770. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1771. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1772. sql += "\r\n";
  1773. }
  1774. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1775. return count;
  1776. }
  1777. /// <summary>
  1778. /// 审核委外到货单生成条码
  1779. /// </summary>
  1780. /// <param name="POCode"></param>
  1781. /// <param name="PORow"></param>
  1782. /// <param name="keyValue"></param>
  1783. /// 已改
  1784. /// <returns></returns>
  1785. /// 2023 1117 传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则 lacy.xu
  1786. public int SubmitFormWWSHDH(string ODNCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  1787. {
  1788. var queryParam = keyValue.ToJObject();
  1789. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1790. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1791. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1792. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1793. decimal LOTQTY = minPackQty;
  1794. string Pre = "ODN" + ODNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  1795. string sql = string.Empty;
  1796. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1797. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1798. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1799. string InvCode = queryParam["ClassCode"].ToString();
  1800. string sqls = string.Empty;
  1801. string Colspan = "";
  1802. string str1 = "";
  1803. string LotNo = string.Empty;
  1804. List<string> ExtensionIDList = new List<string>();
  1805. for (int i = 0; i < createPageCount; i++)
  1806. {
  1807. if (i + 1 == createPageCount)
  1808. {
  1809. if (minPackQty * createPageCount > thisCreateQty)
  1810. {
  1811. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1812. }
  1813. }
  1814. 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();
  1815. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1816. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1817. bool flag = true;
  1818. foreach (var item in ExtensionIDList)
  1819. {
  1820. if (item == Colspan + WorkPoint)
  1821. {
  1822. flag = false;
  1823. }
  1824. }
  1825. if (ExtensionID == null && flag == true)
  1826. {
  1827. str1 = Guid.NewGuid().ToString();
  1828. 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)
  1829. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1830. str1, 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(),
  1831. MUSER, MUSERNAME, WorkPoints);
  1832. }
  1833. else if (ExtensionID != null)
  1834. {
  1835. str1 = ExtensionID.ToString();
  1836. }
  1837. ExtensionIDList.Add(Colspan + WorkPoint);
  1838. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1839. if (AMEnable == "true")
  1840. {
  1841. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  1842. }
  1843. else
  1844. {
  1845. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  1846. }
  1847. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  1848. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  1849. LotNo, ODNCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  1850. sql += string.Format(@"
  1851. insert into ICSInventoryLot
  1852. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1853. select
  1854. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','8','{3}','{4}', getdate(),'{5}','{9}'
  1855. ,'{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1856. from ICSODeliveryNotice where ODNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  1857. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ODNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  1858. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1859. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1860. sql += "\r\n";
  1861. }
  1862. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1863. return count;
  1864. }
  1865. /// <summary>
  1866. /// 开立成品入库单
  1867. /// </summary>
  1868. /// <param name="POCode"></param>
  1869. /// <param name="PORow"></param>
  1870. /// <param name="keyValue"></param>
  1871. /// 已改
  1872. /// <returns></returns>
  1873. public int SubmitFormKLCPRK(string RCVCode, string Sequence, string keyValue, string WorkPoint)
  1874. {
  1875. var queryParam = keyValue.ToJObject();
  1876. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1877. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1878. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1879. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1880. decimal LOTQTY = minPackQty;
  1881. string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4");
  1882. string sql = string.Empty;
  1883. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1884. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1885. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1886. string sqls = string.Empty;
  1887. string Colspan = "";
  1888. string str1 = "";
  1889. List<string> ExtensionIDList = new List<string>();
  1890. for (int i = 0; i < createPageCount; i++)
  1891. {
  1892. if (i + 1 == createPageCount)
  1893. {
  1894. if (minPackQty * createPageCount > thisCreateQty)
  1895. {
  1896. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1897. }
  1898. }
  1899. 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();
  1900. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1901. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1902. bool flag = true;
  1903. foreach (var item in ExtensionIDList)
  1904. {
  1905. if (item == Colspan + WorkPoint)
  1906. {
  1907. flag = false;
  1908. }
  1909. }
  1910. if (ExtensionID == null && flag == true)
  1911. {
  1912. str1 = Guid.NewGuid().ToString();
  1913. 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)
  1914. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1915. str1, 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(),
  1916. MUSER, MUSERNAME, WorkPoints);
  1917. }
  1918. else if (ExtensionID != null)
  1919. {
  1920. str1 = ExtensionID.ToString();
  1921. }
  1922. ExtensionIDList.Add(Colspan + WorkPoint);
  1923. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  1924. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  1925. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  1926. LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  1927. sql += string.Format(@"
  1928. insert into ICSInventoryLot
  1929. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1930. select
  1931. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','9','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1932. from ICSManufactureReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  1933. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  1934. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1935. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1936. sql += "\r\n";
  1937. }
  1938. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1939. return count;
  1940. }
  1941. //委外拒收单
  1942. public DataTable GetGridJsonWWJSD(string queryJson, ref Pagination jqgridparam)
  1943. {
  1944. DataTable dt = new DataTable();
  1945. var queryParam = queryJson.ToJObject();
  1946. List<DbParameter> parameter = new List<DbParameter>();
  1947. object Figure = GetDecimalDigits();
  1948. #region [SQL]
  1949. 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,
  1950. 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
  1951. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1952. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10 ,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  1953. a.EATTRIBUTE9,a.EATTRIBUTE10
  1954. from ICSODeliveryNotice a
  1955. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1956. left join (
  1957. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  1958. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='11'
  1959. where isnull(ee.EATTRIBUTE1,'')=''
  1960. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  1961. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  1962. --inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  1963. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  1964. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1965. where a.ODNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  1966. ";
  1967. sql = string.Format(sql, Figure);
  1968. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  1969. #endregion
  1970. if (!string.IsNullOrWhiteSpace(queryJson))
  1971. {
  1972. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1973. {
  1974. sql += " and a.ODNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1975. }
  1976. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  1977. {
  1978. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  1979. }
  1980. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  1981. {
  1982. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  1983. }
  1984. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1985. {
  1986. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1987. }
  1988. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  1989. {
  1990. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  1991. }
  1992. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  1993. {
  1994. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  1995. }
  1996. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  1997. {
  1998. string POStatus = queryParam["POStatus"].ToString();
  1999. if (POStatus == "0")
  2000. {
  2001. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2002. }
  2003. else if (POStatus == "1")
  2004. {
  2005. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  2006. }
  2007. else
  2008. {
  2009. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  2010. }
  2011. }
  2012. }
  2013. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2014. {
  2015. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2016. }
  2017. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2018. {
  2019. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2020. }
  2021. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2022. }
  2023. //拒收单
  2024. public DataTable GetGridJsonJSD(string queryJson, ref Pagination jqgridparam)
  2025. {
  2026. DataTable dt = new DataTable();
  2027. var queryParam = queryJson.ToJObject();
  2028. List<DbParameter> parameter = new List<DbParameter>();
  2029. object Figure = GetDecimalDigits();
  2030. #region [SQL]
  2031. string sql = @"select a.ID,a.DNCode ,a.Sequence ,a.VenCode,e.VenName,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
  2032. 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,
  2033. CAST(c.LOTQTY AS DECIMAL(18,{0})) as LOTQTY
  2034. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2035. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  2036. a.EATTRIBUTE9,a.EATTRIBUTE10
  2037. from ICSDeliveryNotice a
  2038. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2039. left join (
  2040. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2041. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='10'
  2042. where isnull(ee.EATTRIBUTE1,'')=''
  2043. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2044. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2045. --inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  2046. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  2047. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2048. where a.DNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  2049. ";
  2050. sql = string.Format(sql, Figure);
  2051. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  2052. #endregion
  2053. if (!string.IsNullOrWhiteSpace(queryJson))
  2054. {
  2055. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2056. {
  2057. sql += " and a.DNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2058. }
  2059. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  2060. {
  2061. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  2062. }
  2063. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  2064. {
  2065. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  2066. }
  2067. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2068. {
  2069. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2070. }
  2071. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2072. {
  2073. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2074. }
  2075. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2076. {
  2077. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2078. }
  2079. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  2080. {
  2081. string POStatus = queryParam["POStatus"].ToString();
  2082. if (POStatus == "0")
  2083. {
  2084. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2085. }
  2086. else if (POStatus == "1")
  2087. {
  2088. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  2089. }
  2090. else
  2091. {
  2092. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  2093. }
  2094. }
  2095. }
  2096. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2097. {
  2098. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2099. }
  2100. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2101. {
  2102. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2103. }
  2104. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2105. }
  2106. //领料申请退料
  2107. public DataTable GetGridJsonLLSQTL(string queryJson, ref Pagination jqgridparam)
  2108. {
  2109. DataTable dt = new DataTable();
  2110. var queryParam = queryJson.ToJObject();
  2111. List<DbParameter> parameter = new List<DbParameter>();
  2112. object Figure = GetDecimalDigits();
  2113. #region [SQL]
  2114. string sql = @"select a.ID,a.ApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  2115. 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
  2116. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2117. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  2118. a.EATTRIBUTE9,a.EATTRIBUTE10
  2119. from ICSMOApplyNegDetail a
  2120. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  2121. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2122. left join (
  2123. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2124. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='12'
  2125. where isnull(ee.EATTRIBUTE1,'')=''
  2126. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2127. )c
  2128. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2129. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2130. WHERE d.Type='2'";
  2131. sql = string.Format(sql, Figure);
  2132. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  2133. #endregion
  2134. if (!string.IsNullOrWhiteSpace(queryJson))
  2135. {
  2136. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2137. {
  2138. sql += " and a.ApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2139. }
  2140. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2141. {
  2142. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2143. }
  2144. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2145. {
  2146. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2147. }
  2148. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2149. {
  2150. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2151. }
  2152. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  2153. {
  2154. string POStatus = queryParam["POStatus"].ToString();
  2155. if (POStatus == "0")
  2156. {
  2157. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2158. }
  2159. else if (POStatus == "1")
  2160. {
  2161. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  2162. }
  2163. else
  2164. {
  2165. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  2166. }
  2167. }
  2168. }
  2169. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2170. {
  2171. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2172. }
  2173. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2174. {
  2175. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2176. }
  2177. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2178. }
  2179. /// <summary>
  2180. /// 拒收生成条码
  2181. /// </summary>
  2182. /// <param name="POCode"></param>
  2183. /// <param name="PORow"></param>
  2184. /// <param name="keyValue"></param>
  2185. /// <returns></returns>
  2186. public int SubmitFormJSD(string DNCode, string Sequence, string keyValue, string WorkPoint)
  2187. {
  2188. var queryParam = keyValue.ToJObject();
  2189. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2190. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2191. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2192. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2193. decimal LOTQTY = minPackQty;
  2194. string Pre = "JS" + DNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  2195. string sql = string.Empty;
  2196. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2197. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2198. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2199. string sqls = string.Empty;
  2200. string Colspan = "";
  2201. string str1 = "";
  2202. List<string> ExtensionIDList = new List<string>();
  2203. for (int i = 0; i < createPageCount; i++)
  2204. {
  2205. if (i + 1 == createPageCount)
  2206. {
  2207. if (minPackQty * createPageCount > thisCreateQty)
  2208. {
  2209. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  2210. }
  2211. }
  2212. 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();
  2213. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  2214. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2215. bool flag = true;
  2216. foreach (var item in ExtensionIDList)
  2217. {
  2218. if (item == Colspan + WorkPoint)
  2219. {
  2220. flag = false;
  2221. }
  2222. }
  2223. if (ExtensionID == null && flag == true)
  2224. {
  2225. str1 = Guid.NewGuid().ToString();
  2226. 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)
  2227. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2228. str1, 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(),
  2229. MUSER, MUSERNAME, WorkPoints);
  2230. }
  2231. else if (ExtensionID != null)
  2232. {
  2233. str1 = ExtensionID.ToString();
  2234. }
  2235. ExtensionIDList.Add(Colspan + WorkPoint);
  2236. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  2237. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  2238. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  2239. LotNo, DNCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  2240. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  2241. //{
  2242. sql += string.Format(@"
  2243. insert into ICSInventoryLot
  2244. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  2245. select
  2246. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','10','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  2247. from ICSDeliveryNotice where DNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  2248. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, DNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  2249. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  2250. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  2251. sql += "\r\n";
  2252. //}
  2253. }
  2254. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2255. return count;
  2256. }
  2257. /// <summary>
  2258. /// 委外拒收生成条码
  2259. /// </summary>
  2260. /// <param name="POCode"></param>
  2261. /// <param name="PORow"></param>
  2262. /// <param name="keyValue"></param>
  2263. /// <returns></returns>
  2264. public int SubmitFormWWJSD(string ODNCode, string Sequence, string keyValue, string WorkPoint)
  2265. {
  2266. var queryParam = keyValue.ToJObject();
  2267. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2268. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2269. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2270. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2271. decimal LOTQTY = minPackQty;
  2272. string Pre = "OJS" + ODNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  2273. string sql = string.Empty;
  2274. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2275. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2276. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2277. string sqls = string.Empty;
  2278. string Colspan = "";
  2279. string str1 = "";
  2280. List<string> ExtensionIDList = new List<string>();
  2281. for (int i = 0; i < createPageCount; i++)
  2282. {
  2283. if (i + 1 == createPageCount)
  2284. {
  2285. if (minPackQty * createPageCount > thisCreateQty)
  2286. {
  2287. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  2288. }
  2289. }
  2290. 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();
  2291. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  2292. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2293. bool flag = true;
  2294. foreach (var item in ExtensionIDList)
  2295. {
  2296. if (item == Colspan + WorkPoint)
  2297. {
  2298. flag = false;
  2299. }
  2300. }
  2301. if (ExtensionID == null && flag == true)
  2302. {
  2303. str1 = Guid.NewGuid().ToString();
  2304. 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)
  2305. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2306. str1, 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(),
  2307. MUSER, MUSERNAME, WorkPoints);
  2308. }
  2309. else if (ExtensionID != null)
  2310. {
  2311. str1 = ExtensionID.ToString();
  2312. }
  2313. ExtensionIDList.Add(Colspan + WorkPoint);
  2314. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  2315. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  2316. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  2317. LotNo, ODNCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  2318. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  2319. //{
  2320. sql += string.Format(@"
  2321. insert into ICSInventoryLot
  2322. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  2323. select
  2324. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','11','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  2325. from ICSODeliveryNotice where ODNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  2326. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ODNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  2327. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  2328. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  2329. sql += "\r\n";
  2330. //}
  2331. }
  2332. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2333. return count;
  2334. }
  2335. /// <summary>
  2336. /// 点击审核到货单生成条码(审核到货单)
  2337. /// </summary>
  2338. public DataTable GetSubGridJsonJSDByCreate(string DNCode, string Sequence, string WorkPoint)
  2339. {
  2340. DataTable dt = new DataTable();
  2341. object Figure = GetDecimalDigits();
  2342. List<DbParameter> parameter = new List<DbParameter>();
  2343. string sql = @"select a.InvCode,b.InvName,b.ClassCode,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,
  2344. 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
  2345. ,d.ProjectCode,d.BatchCode,d.Version,d.Brand,d.cFree1,d.cFree2,d.cFree3,d.cFree4,d.cFree5,d.cFree6,d.cFree7,d.cFree8,d.cFree9,d.cFree10
  2346. from ICSDeliveryNotice a
  2347. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2348. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2349. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='10'
  2350. where isnull(a.EATTRIBUTE1,'')=''
  2351. group by b.TransCode,b.TransSequence
  2352. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence
  2353. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  2354. WHERE a.DNType='3'
  2355. and a.DNCode='" + DNCode + "' and a.Sequence='" + Sequence + "'";
  2356. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2357. sql = string.Format(sql, Figure);
  2358. return Repository().FindTableBySql(sql.ToString());
  2359. }
  2360. /// <summary>
  2361. /// 点击审核委外到货单生成条码(审核委外到货单)
  2362. /// </summary>
  2363. public DataTable GetSubGridJsonWWJSDByCreate(string ODNCode, string Sequence, string WorkPoint)
  2364. {
  2365. DataTable dt = new DataTable();
  2366. object Figure = GetDecimalDigits();
  2367. List<DbParameter> parameter = new List<DbParameter>();
  2368. string sql = @"select a.InvCode,b.InvName,b.ClassCode,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,
  2369. 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
  2370. ,d.ProjectCode,d.BatchCode,d.Version,d.Brand,d.cFree1,d.cFree2,d.cFree3,d.cFree4,d.cFree5,d.cFree6,d.cFree7,d.cFree8,d.cFree9,d.cFree10
  2371. from ICSODeliveryNotice a
  2372. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2373. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2374. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='11'
  2375. where isnull(a.EATTRIBUTE1,'')=''
  2376. group by b.TransCode,b.TransSequence
  2377. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence
  2378. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  2379. WHERE a.ODNType='3'
  2380. and a.ODNCode='" + ODNCode + "' and a.Sequence='" + Sequence + "'";
  2381. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2382. sql = string.Format(sql, Figure);
  2383. return Repository().FindTableBySql(sql.ToString());
  2384. }
  2385. public DataTable GetSubGridJsonLLSQDByCreate(string ApplyNegCode, string Sequence, string WorkPoint)
  2386. {
  2387. DataTable dt = new DataTable();
  2388. object Figure = GetDecimalDigits();
  2389. List<DbParameter> parameter = new List<DbParameter>();
  2390. string sql = @"select a.InvCode,b.InvName,b.ClassCode,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,
  2391. 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
  2392. ,e.ProjectCode,e.BatchCode,e.Version,e.Brand,e.cFree1,e.cFree2,e.cFree3,e.cFree4,e.cFree5,e.cFree6,e.cFree7,e.cFree8,e.cFree9,e.cFree10
  2393. from ICSMOApplyNegDetail a
  2394. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  2395. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2396. left join (
  2397. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2398. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='12'
  2399. where isnull(a.EATTRIBUTE1,'')=''
  2400. group by b.TransCode,b.TransSequence
  2401. ) c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  2402. left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  2403. WHERE d.Type='2'
  2404. and a.ApplyNegCode='" + ApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  2405. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2406. sql = string.Format(sql, Figure);
  2407. return Repository().FindTableBySql(sql.ToString());
  2408. }
  2409. //领料申请退料生成条码
  2410. public int SubmitFormLLSQTL(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  2411. {
  2412. var queryParam = keyValue.ToJObject();
  2413. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2414. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2415. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2416. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2417. decimal LOTQTY = minPackQty;
  2418. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  2419. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  2420. string Pre = "MA" + ApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  2421. string sql = string.Empty;
  2422. //string VendorLot = queryParam["VendorLot"].ToString();
  2423. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2424. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2425. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2426. string sqls = string.Empty;
  2427. string Colspan = "";
  2428. string str1 = "";
  2429. List<string> ExtensionIDList = new List<string>();
  2430. for (int i = 0; i < createPageCount; i++)
  2431. {
  2432. if (i + 1 == createPageCount)
  2433. {
  2434. if (minPackQty * createPageCount > thisCreateQty)
  2435. {
  2436. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  2437. }
  2438. }
  2439. 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();
  2440. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  2441. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2442. bool flag = true;
  2443. foreach (var item in ExtensionIDList)
  2444. {
  2445. if (item == Colspan + WorkPoint)
  2446. {
  2447. flag = false;
  2448. }
  2449. }
  2450. if (ExtensionID == null && flag == true)
  2451. {
  2452. str1 = Guid.NewGuid().ToString();
  2453. 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)
  2454. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2455. str1, 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(),
  2456. MUSER, MUSERNAME, WorkPoints);
  2457. }
  2458. else if (ExtensionID != null)
  2459. {
  2460. str1 = ExtensionID.ToString();
  2461. }
  2462. ExtensionIDList.Add(Colspan + WorkPoint);
  2463. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  2464. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  2465. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  2466. LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  2467. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  2468. //{
  2469. sql += string.Format(@"insert into ICSInventoryLot
  2470. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  2471. select
  2472. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','12','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  2473. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  2474. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  2475. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  2476. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  2477. sql += "\r\n";
  2478. //}
  2479. }
  2480. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2481. return count;
  2482. }
  2483. //材料出库退料
  2484. public DataTable GetGridJsonCLCK(string MenuID, string queryJson, ref Pagination jqgridparam)
  2485. {
  2486. string DataActionsql = actionapp.DataActionSqlGet(MenuID);
  2487. DataTable dt = new DataTable();
  2488. var queryParam = queryJson.ToJObject();
  2489. List<DbParameter> parameter = new List<DbParameter>();
  2490. object Figure = GetDecimalDigits();
  2491. #region [SQL]
  2492. string sql = @"
  2493. select a.ID,a.ApplyNegCode,a.Sequence,g.IssueCode as SCode,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  2494. CAST(a.Quantity AS DECIMAL(18,{0})) as Quantity ,
  2495. 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
  2496. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2497. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,g.SourceCode
  2498. from ICSMOApplyNegDetail a
  2499. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  2500. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2501. left join (
  2502. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2503. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='13'
  2504. where isnull(ee.EATTRIBUTE1,'')=''
  2505. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2506. )c
  2507. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2508. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2509. left join ICSMOIssue g on a.SourceDetailID=g.IssueDetailID and a.WorkPoint=g.WorkPoint
  2510. LEFT JOIN Sys_SRM_User h ON h.F_Account=d.CreatePerson
  2511. WHERE d.Type='3'";
  2512. sql = string.Format(sql, Figure);
  2513. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  2514. #endregion
  2515. if (!string.IsNullOrWhiteSpace(queryJson))
  2516. {
  2517. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2518. {
  2519. sql += " and a.ApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2520. }
  2521. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2522. {
  2523. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2524. }
  2525. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2526. {
  2527. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2528. }
  2529. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2530. {
  2531. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2532. }
  2533. if (!string.IsNullOrWhiteSpace(queryParam["SCode"].ToString()))
  2534. {
  2535. sql += " and g.IssueCode like '%" + queryParam["SCode"].ToString() + "%' ";
  2536. }
  2537. if (!string.IsNullOrWhiteSpace(queryParam["MOCode"].ToString()))
  2538. {
  2539. sql += " and g.SourceCode like '%" + queryParam["MOCode"].ToString() + "%' ";
  2540. }
  2541. if (!string.IsNullOrWhiteSpace(queryParam["CreateTime"].ToString()))
  2542. {
  2543. sql += " and d.CreateDateTime > '" + queryParam["CreateTime"].ToString() + " 00:00:00' and d.CreateDateTime < '" + queryParam["CreateTime"].ToString() + " 23:59:59' ";
  2544. }
  2545. if (!string.IsNullOrWhiteSpace(queryParam["Creater"].ToString()))
  2546. {
  2547. sql += " and h.F_RealName like '%" + queryParam["Creater"].ToString() + "%' ";
  2548. }
  2549. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  2550. {
  2551. string POStatus = queryParam["POStatus"].ToString();
  2552. if (POStatus == "0")
  2553. {
  2554. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2555. }
  2556. else if (POStatus == "1")
  2557. {
  2558. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  2559. }
  2560. else
  2561. {
  2562. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  2563. }
  2564. }
  2565. }
  2566. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2567. {
  2568. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2569. }
  2570. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2571. {
  2572. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2573. }
  2574. if (DataActionsql != "")
  2575. {
  2576. sql += " " + DataActionsql;
  2577. }
  2578. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2579. }
  2580. //材料出库退料
  2581. public DataTable GetSubGridJsonCLCKByCreate(string ApplyNegCode, string Sequence, string WorkPoint)
  2582. {
  2583. DataTable dt = new DataTable();
  2584. object Figure = GetDecimalDigits();
  2585. List<DbParameter> parameter = new List<DbParameter>();
  2586. string sql = @"select a.InvCode,b.InvName,b.ClassCode,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,
  2587. 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
  2588. ,f.ProjectCode,f.BatchCode,f.Version,f.Brand,f.cFree1,f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10
  2589. from ICSMOApplyNegDetail a
  2590. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  2591. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2592. left join (
  2593. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2594. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='13'
  2595. where isnull(a.EATTRIBUTE1,'')=''
  2596. group by b.TransCode,b.TransSequence
  2597. ) c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  2598. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2599. WHERE d.Type='3'
  2600. and a.ApplyNegCode='" + ApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  2601. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2602. sql = string.Format(sql, Figure);
  2603. return Repository().FindTableBySql(sql.ToString());
  2604. }
  2605. //材料出库退料生成条码
  2606. public int SubmitFormCLCKT(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint, string SourceCode, float Quantity)
  2607. {
  2608. var queryParam = keyValue.ToJObject();
  2609. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2610. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2611. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2612. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2613. decimal LOTQTY = minPackQty;
  2614. string InvCode = queryParam["InvCode"].ToString();
  2615. string BatchCode = queryParam["BatchCode"].ToString();
  2616. string sql = string.Empty;
  2617. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2618. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2619. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2620. string sqls = string.Empty;
  2621. string Colspan = "";
  2622. string str1 = "";
  2623. List<string> ExtensionIDList = new List<string>();
  2624. //增加判断逻辑 未审核的单据不允许生成条码 25.3.26
  2625. string checkSql = $"SELECT * from ICSMOApplyNeg WHERE Type=3 and ApplyNegCode='{ApplyNegCode}' AND Status='2' ";
  2626. var checkdt = SqlHelper.CmdExecuteDataTable(checkSql);
  2627. if (checkdt.Rows.Count <= 0)
  2628. {
  2629. return 0;
  2630. }
  2631. for (int i = 0; i < createPageCount; i++)
  2632. {
  2633. if (i + 1 == createPageCount)
  2634. {
  2635. if (minPackQty * createPageCount > thisCreateQty)
  2636. {
  2637. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  2638. }
  2639. }
  2640. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  2641. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  2642. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2643. bool flag = true;
  2644. foreach (var item in ExtensionIDList)
  2645. {
  2646. if (item == Colspan + WorkPoint)
  2647. {
  2648. flag = false;
  2649. }
  2650. }
  2651. if (ExtensionID == null && flag == true)
  2652. {
  2653. str1 = Guid.NewGuid().ToString();
  2654. 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)
  2655. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2656. str1, 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(),
  2657. MUSER, MUSERNAME, WorkPoints);
  2658. }
  2659. else if (ExtensionID != null)
  2660. {
  2661. str1 = ExtensionID.ToString();
  2662. }
  2663. ExtensionIDList.Add(Colspan + WorkPoint);
  2664. string Pre = InvCode + "_" + SourceCode + "_" + BatchCode + "_" + LOTQTY.ToString("G29") + "_";
  2665. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 3);
  2666. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  2667. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  2668. LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  2669. sql += string.Format(@"insert into ICSInventoryLot
  2670. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  2671. select
  2672. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','13','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  2673. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  2674. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  2675. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  2676. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  2677. sql += "\r\n";
  2678. }
  2679. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2680. return count;
  2681. }
  2682. public DataTable GetGridJsonWWLLTL(string queryJson, ref Pagination jqgridparam)
  2683. {
  2684. DataTable dt = new DataTable();
  2685. var queryParam = queryJson.ToJObject();
  2686. List<DbParameter> parameter = new List<DbParameter>();
  2687. object Figure = GetDecimalDigits();
  2688. #region [SQL]
  2689. string sql = @"select a.ID,a.OApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  2690. 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
  2691. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2692. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  2693. a.EATTRIBUTE9,a.EATTRIBUTE10
  2694. from ICSOApplyNegDetail a
  2695. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  2696. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2697. left join (
  2698. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2699. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='14'
  2700. where isnull(ee.EATTRIBUTE1,'')=''
  2701. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2702. )c
  2703. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2704. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2705. WHERE d.Type='2'";
  2706. sql = string.Format(sql, Figure);
  2707. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  2708. #endregion
  2709. if (!string.IsNullOrWhiteSpace(queryJson))
  2710. {
  2711. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2712. {
  2713. sql += " and a.OApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2714. }
  2715. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2716. {
  2717. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2718. }
  2719. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2720. {
  2721. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2722. }
  2723. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2724. {
  2725. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2726. }
  2727. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  2728. {
  2729. string POStatus = queryParam["POStatus"].ToString();
  2730. if (POStatus == "0")
  2731. {
  2732. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2733. }
  2734. else if (POStatus == "1")
  2735. {
  2736. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  2737. }
  2738. else
  2739. {
  2740. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  2741. }
  2742. }
  2743. }
  2744. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2745. {
  2746. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2747. }
  2748. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2749. {
  2750. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2751. }
  2752. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2753. }
  2754. /// <summary>
  2755. /// 点击委外领料退料生成条码
  2756. /// </summary>
  2757. public DataTable GetSubGridJsonWWLLByCreate(string OApplyNegCode, string Sequence, string WorkPoint)
  2758. {
  2759. DataTable dt = new DataTable();
  2760. object Figure = GetDecimalDigits();
  2761. List<DbParameter> parameter = new List<DbParameter>();
  2762. string sql = @"
  2763. select a.InvCode,b.InvName,b.ClassCode,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,
  2764. 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
  2765. ,e.ProjectCode,e.BatchCode,e.Version,e.Brand,e.cFree1,e.cFree2,e.cFree3,e.cFree4,e.cFree5,e.cFree6,e.cFree7,e.cFree8,e.cFree9,e.cFree10
  2766. from ICSOApplyNegDetail a
  2767. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  2768. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2769. left join (
  2770. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2771. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='14'
  2772. where isnull(a.EATTRIBUTE1,'')=''
  2773. group by b.TransCode,b.TransSequence
  2774. ) c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  2775. left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  2776. WHERE d.Type='2'
  2777. and a.OApplyNegCode='" + OApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  2778. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2779. sql = string.Format(sql, Figure);
  2780. return Repository().FindTableBySql(sql.ToString());
  2781. }
  2782. //委外领料申请退料
  2783. public int SubmitFormWWLL(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  2784. {
  2785. var queryParam = keyValue.ToJObject();
  2786. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2787. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2788. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2789. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2790. decimal LOTQTY = minPackQty;
  2791. string Pre = "OMA" + OApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  2792. string sql = string.Empty;
  2793. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2794. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2795. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2796. string sqls = string.Empty;
  2797. string Colspan = "";
  2798. string str1 = "";
  2799. List<string> ExtensionIDList = new List<string>();
  2800. for (int i = 0; i < createPageCount; i++)
  2801. {
  2802. if (i + 1 == createPageCount)
  2803. {
  2804. if (minPackQty * createPageCount > thisCreateQty)
  2805. {
  2806. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  2807. }
  2808. }
  2809. 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();
  2810. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  2811. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2812. bool flag = true;
  2813. foreach (var item in ExtensionIDList)
  2814. {
  2815. if (item == Colspan + WorkPoint)
  2816. {
  2817. flag = false;
  2818. }
  2819. }
  2820. if (ExtensionID == null && flag == true)
  2821. {
  2822. str1 = Guid.NewGuid().ToString();
  2823. 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)
  2824. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2825. str1, 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(),
  2826. MUSER, MUSERNAME, WorkPoints);
  2827. }
  2828. else if (ExtensionID != null)
  2829. {
  2830. str1 = ExtensionID.ToString();
  2831. }
  2832. ExtensionIDList.Add(Colspan + WorkPoint);
  2833. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  2834. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  2835. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  2836. LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  2837. sql += string.Format(@"insert into ICSInventoryLot
  2838. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  2839. select
  2840. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','14','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  2841. from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  2842. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  2843. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  2844. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  2845. sql += "\r\n";
  2846. }
  2847. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2848. return count;
  2849. }
  2850. //委外材料出库
  2851. public DataTable GetGridJsonWWCLCK(string queryJson, ref Pagination jqgridparam)
  2852. {
  2853. DataTable dt = new DataTable();
  2854. var queryParam = queryJson.ToJObject();
  2855. List<DbParameter> parameter = new List<DbParameter>();
  2856. object Figure = GetDecimalDigits();
  2857. #region [SQL]
  2858. string sql = @"select a.ID,a.OApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  2859. 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
  2860. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2861. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  2862. a.EATTRIBUTE9,a.EATTRIBUTE10
  2863. from ICSOApplyNegDetail a
  2864. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  2865. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2866. left join (
  2867. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2868. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='15'
  2869. where isnull(ee.EATTRIBUTE1,'')=''
  2870. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2871. )c
  2872. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2873. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2874. WHERE d.Type='3'";
  2875. sql = string.Format(sql, Figure);
  2876. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  2877. #endregion
  2878. if (!string.IsNullOrWhiteSpace(queryJson))
  2879. {
  2880. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2881. {
  2882. sql += " and a.OApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2883. }
  2884. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2885. {
  2886. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2887. }
  2888. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2889. {
  2890. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2891. }
  2892. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2893. {
  2894. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2895. }
  2896. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  2897. {
  2898. string POStatus = queryParam["POStatus"].ToString();
  2899. if (POStatus == "0")
  2900. {
  2901. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2902. }
  2903. else if (POStatus == "1")
  2904. {
  2905. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  2906. }
  2907. else
  2908. {
  2909. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  2910. }
  2911. }
  2912. }
  2913. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2914. {
  2915. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2916. }
  2917. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2918. {
  2919. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2920. }
  2921. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2922. }
  2923. //委外材料出库
  2924. public DataTable GetSubGridJsonWWCLByCreate(string OApplyNegCode, string Sequence, string WorkPoint)
  2925. {
  2926. DataTable dt = new DataTable();
  2927. object Figure = GetDecimalDigits();
  2928. List<DbParameter> parameter = new List<DbParameter>();
  2929. string sql = @"
  2930. select a.InvCode,b.InvName,b.ClassCode,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,
  2931. 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
  2932. ,f.ProjectCode,f.BatchCode,f.Version,f.Brand,f.cFree1,f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10
  2933. from ICSOApplyNegDetail a
  2934. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  2935. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2936. left join (
  2937. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2938. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='15'
  2939. where isnull(a.EATTRIBUTE1,'')=''
  2940. group by b.TransCode,b.TransSequence
  2941. ) c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  2942. left join ICSExtension f on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  2943. WHERE d.Type='3'
  2944. and a.OApplyNegCode='" + OApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  2945. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2946. sql = string.Format(sql, Figure);
  2947. return Repository().FindTableBySql(sql.ToString());
  2948. }
  2949. //委外材料出库
  2950. public int SubmitFormWWCL(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  2951. {
  2952. var queryParam = keyValue.ToJObject();
  2953. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2954. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2955. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2956. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2957. decimal LOTQTY = minPackQty;
  2958. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  2959. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  2960. string Pre = "OMD" + OApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  2961. string sql = string.Empty;
  2962. //string VendorLot = queryParam["VendorLot"].ToString();
  2963. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2964. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2965. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2966. string sqls = string.Empty;
  2967. string Colspan = "";
  2968. string str1 = "";
  2969. List<string> ExtensionIDList = new List<string>();
  2970. for (int i = 0; i < createPageCount; i++)
  2971. {
  2972. if (i + 1 == createPageCount)
  2973. {
  2974. if (minPackQty * createPageCount > thisCreateQty)
  2975. {
  2976. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  2977. }
  2978. }
  2979. 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();
  2980. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  2981. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2982. bool flag = true;
  2983. foreach (var item in ExtensionIDList)
  2984. {
  2985. if (item == Colspan + WorkPoint)
  2986. {
  2987. flag = false;
  2988. }
  2989. }
  2990. if (ExtensionID == null && flag == true)
  2991. {
  2992. str1 = Guid.NewGuid().ToString();
  2993. 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)
  2994. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2995. str1, 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(),
  2996. MUSER, MUSERNAME, WorkPoints);
  2997. }
  2998. else if (ExtensionID != null)
  2999. {
  3000. str1 = ExtensionID.ToString();
  3001. }
  3002. ExtensionIDList.Add(Colspan + WorkPoint);
  3003. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  3004. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  3005. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  3006. LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  3007. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  3008. //{
  3009. sql += string.Format(@"insert into ICSInventoryLot
  3010. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  3011. select
  3012. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','15','{3}','{4}', getdate(),'{5}','{9}'
  3013. ,'{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  3014. from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  3015. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  3016. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  3017. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  3018. sql += "\r\n";
  3019. //}
  3020. }
  3021. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  3022. return count;
  3023. }
  3024. public DataTable SelectICSExtensionEnable()
  3025. {
  3026. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3027. string sql = @"select ColCode from ICSExtensionEnable
  3028. where Enable=0 and WorkPoint='" + WorkPoints + "' order by cast(EATTRIBUTE1 as int)";
  3029. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  3030. return dt;
  3031. }
  3032. public DataTable GetComplete()
  3033. {
  3034. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3035. string sql = @"select Enable from ICSConfiguration where Code='CompleteVerification001' and WorkPoint='" + WorkPoints + "'";
  3036. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  3037. return dt;
  3038. }
  3039. public DataTable GetWWComplete()
  3040. {
  3041. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3042. string sql = @"select Enable from ICSConfiguration where Code='CompleteVerification002' and WorkPoint='" + WorkPoints + "'";
  3043. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  3044. return dt;
  3045. }
  3046. //返工工单
  3047. public DataTable GetGridJsonFGGD(string queryJson, ref Pagination jqgridparam)
  3048. {
  3049. DataTable dt = new DataTable();
  3050. var queryParam = queryJson.ToJObject();
  3051. List<DbParameter> parameter = new List<DbParameter>();
  3052. object Figure = GetDecimalDigits();
  3053. #region [SQL]
  3054. 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,
  3055. CAST(a.Quantity AS DECIMAL(18,{0})) as Quantity ,
  3056. 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
  3057. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3058. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  3059. a.EATTRIBUTE9,a.EATTRIBUTE10
  3060. from ICSMOPick a
  3061. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  3062. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3063. left join (
  3064. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3065. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='16'
  3066. where isnull(ee.EATTRIBUTE1,'')=''
  3067. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3068. )c
  3069. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3070. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3071. where a.EATTRIBUTE1='1' and d.EATTRIBUTE1='1'";
  3072. sql = string.Format(sql, Figure);
  3073. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  3074. #endregion
  3075. if (!string.IsNullOrWhiteSpace(queryJson))
  3076. {
  3077. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  3078. {
  3079. sql += " and d.MOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  3080. }
  3081. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  3082. {
  3083. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  3084. }
  3085. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  3086. {
  3087. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  3088. }
  3089. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  3090. {
  3091. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  3092. }
  3093. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  3094. {
  3095. string POStatus = queryParam["POStatus"].ToString();
  3096. if (POStatus == "0")
  3097. {
  3098. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  3099. }
  3100. else if (POStatus == "1")
  3101. {
  3102. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  3103. }
  3104. else
  3105. {
  3106. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  3107. }
  3108. }
  3109. }
  3110. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  3111. {
  3112. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  3113. }
  3114. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  3115. {
  3116. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  3117. }
  3118. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  3119. }
  3120. public DataTable GetSubGridJsonFGGDCreate(string FGGDMOCode, string Sequence, string WorkPoint)
  3121. {
  3122. DataTable dt = new DataTable();
  3123. object Figure = GetDecimalDigits();
  3124. List<DbParameter> parameter = new List<DbParameter>();
  3125. string sql = @"
  3126. select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( a.Quantity AS DECIMAL(18,{0})) as Quantity,CAST( a.Amount as DECIMAL(18,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(18,{0})) as CreatedQty,
  3127. CAST( (a.Quantity-ISNULL(c.LOTQTY,0)) as DECIMAL(18,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,{0})) as EffectiveDays
  3128. ,e.ProjectCode,e.BatchCode,e.Version,e.Brand,e.cFree1,e.cFree2,e.cFree3,e.cFree4,e.cFree5,e.cFree6,e.cFree7,e.cFree8,e.cFree9,e.cFree10
  3129. from ICSMOPick a
  3130. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  3131. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3132. left join (
  3133. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  3134. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='16'
  3135. where isnull(a.EATTRIBUTE1,'')=''
  3136. group by b.TransCode,b.TransSequence
  3137. ) c on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence
  3138. left join ICSExtension e on d.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  3139. WHERE 1=1
  3140. and d.MOCode='" + FGGDMOCode + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "'";
  3141. sql += " and a.WorkPoint='" + WorkPoint + "'";
  3142. sql = string.Format(sql, Figure);
  3143. return Repository().FindTableBySql(sql.ToString());
  3144. }
  3145. //返工工单
  3146. public int SubmitFormFGGD(string FGGDMOCode, string Sequence, string keyValue, string WorkPoint)
  3147. {
  3148. var queryParam = keyValue.ToJObject();
  3149. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3150. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  3151. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  3152. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  3153. decimal LOTQTY = minPackQty;
  3154. Sequence = Sequence.Replace("~", "");
  3155. string Pre = "FG" + FGGDMOCode + (Convert.ToInt32(Sequence)).ToString("D4");
  3156. string sql = string.Empty;
  3157. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  3158. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  3159. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  3160. string sqls = string.Empty;
  3161. string Colspan = "";
  3162. string str1 = "";
  3163. List<string> ExtensionIDList = new List<string>();
  3164. for (int i = 0; i < createPageCount; i++)
  3165. {
  3166. if (i + 1 == createPageCount)
  3167. {
  3168. if (minPackQty * createPageCount > thisCreateQty)
  3169. {
  3170. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  3171. }
  3172. }
  3173. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  3174. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  3175. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  3176. bool flag = true;
  3177. foreach (var item in ExtensionIDList)
  3178. {
  3179. if (item == Colspan + WorkPoint)
  3180. {
  3181. flag = false;
  3182. }
  3183. }
  3184. if (ExtensionID == null && flag == true)
  3185. {
  3186. str1 = Guid.NewGuid().ToString();
  3187. 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)
  3188. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  3189. str1, 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(),
  3190. MUSER, MUSERNAME, WorkPoints);
  3191. }
  3192. else if (ExtensionID != null)
  3193. {
  3194. str1 = ExtensionID.ToString();
  3195. }
  3196. ExtensionIDList.Add(Colspan + WorkPoint);
  3197. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  3198. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  3199. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  3200. LotNo, FGGDMOCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  3201. sql += string.Format(@"insert into ICSInventoryLot
  3202. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  3203. select
  3204. newid(),'{0}',a.InvCode,'{1}','{10}','{2}','{8}','16','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  3205. 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}' ",
  3206. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, FGGDMOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  3207. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  3208. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  3209. sql += "\r\n";
  3210. }
  3211. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  3212. return count;
  3213. }
  3214. public object GetDecimalDigits()
  3215. {
  3216. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3217. try
  3218. {
  3219. string sql = string.Empty;
  3220. sql = @"select Figure from ICSConfiguration where Code='Figure001' and Enable='1' and WorkPoint='" + WorkPoint + "'";
  3221. object Figure = SqlHelper.ExecuteScalar(sql);
  3222. return Figure;
  3223. }
  3224. catch (Exception ex)
  3225. {
  3226. throw new Exception(ex.Message.ToString());
  3227. }
  3228. }
  3229. /// <summary>
  3230. /// 生成条码导出
  3231. /// </summary>
  3232. /// <param name="ProductBrand"></param>
  3233. /// <param name="cCusName"></param>
  3234. /// <param name="DesignAddRate"></param>
  3235. /// <returns></returns>
  3236. public DataTable StatementExportAll(string Type, string ID)
  3237. {
  3238. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3239. string sql = string.Empty;
  3240. object Figure = GetDecimalDigits();
  3241. string TableCode = string.Empty;
  3242. #region sql语句
  3243. if (Type == "1") //生产退料
  3244. {
  3245. sql = @"select a.ApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvStd as 规格型号,b.InvUnit as 单位, CAST(a.Quantity AS DECIMAL(18,{0})) as 数量
  3246. ,CAST(a.Amount AS DECIMAL(18,{0})) as , CAST(a.IssueNegQuantity AS DECIMAL(18,{0})) as 退 ,a.MUSERName as ,a.MTIME as , CAST(c.LOTQTY AS DECIMAL(18,{0})) as
  3247. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3248. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  3249. a.EATTRIBUTE9,a.EATTRIBUTE10
  3250. from ICSMOApplyNegDetail a
  3251. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  3252. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3253. left join (
  3254. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3255. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='1'
  3256. where isnull(ee.EATTRIBUTE1,'')=''
  3257. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3258. )c
  3259. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3260. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3261. where d.Type='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  3262. TableCode = "ICSMOApplyNegDetail";
  3263. }
  3264. if (Type == "2") //委外退料
  3265. {
  3266. sql = @"select a.OApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvStd as 规格型号,b.InvUnit as 单位, CAST(a.Quantity AS DECIMAL(18,{0})) as 数量
  3267. ,CAST(a.Amount AS DECIMAL(18,{0})) as , CAST(a.IssueNegQuantity AS DECIMAL(18,{0})) as 退 ,a.MUSERName as ,a.MTIME as , CAST(c.LOTQTY AS DECIMAL(18,{0})) as
  3268. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3269. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  3270. a.EATTRIBUTE9,a.EATTRIBUTE10
  3271. from ICSOApplyNegDetail a
  3272. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  3273. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3274. left join (
  3275. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3276. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='2'
  3277. where isnull(ee.EATTRIBUTE1,'')=''
  3278. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3279. )c
  3280. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3281. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3282. WHERE d.Type='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  3283. TableCode = "ICSOApplyNegDetail";
  3284. }
  3285. if (Type == "3")//工单成品生成条码
  3286. {
  3287. sql = @"select a.MOCode as 工单号,a.Sequence as 工单行号 ,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvStd as 规格型号,b.InvUnit as 单位
  3288. ,CAST( a.Quantity AS DECIMAL(18,{0})) as ,CAST( a.Amount as DECIMAL(18,{0})) as
  3289. ,a.MUSERName as ,a.MTIME as ,CAST(c.LOTQTY AS DECIMAL(18,{0})) as
  3290. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3291. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,
  3292. a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  3293. a.EATTRIBUTE9,a.EATTRIBUTE10
  3294. from ICSMO a
  3295. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3296. left join (
  3297. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3298. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='3'
  3299. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3300. )c
  3301. on a.MOCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3302. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3303. WHERE 1=1 and a.MOStatus<>'3' and a.Quantity-ISNULL(c.LOTQTY,0)<>0 and a.ID in (" + ID.TrimEnd(',') + ")";
  3304. TableCode = "ICSMO";
  3305. }
  3306. if (Type == "4")//销售退货
  3307. {
  3308. sql = @"select a.SDNCode as 单据号,a.Sequence as 行号,a.SOCode as 销售订单号,a.SOSequence as 销售订单行号,a.CusCode as 客户代码 ,a.CusName as 客户名称 ,a.ArriveDate as 发货日期,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvStd as 规格型号,b.InvUnit as 单位,CAST(a.Quantity AS DECIMAL(18,{0})) as 数量
  3309. ,cast(a.Amount as decimal(18,{0})) as , CAST(a.SDNQuantity AS DECIMAL(18,{0})) as ,a.CreatePerson as ,a.CreateDateTime as ,CAST(c.LOTQTY AS DECIMAL(18,{0})) as
  3310. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3311. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  3312. a.EATTRIBUTE9,a.EATTRIBUTE10
  3313. from ICSSDN a
  3314. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3315. left join (
  3316. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3317. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='4'
  3318. where isnull(ee.EATTRIBUTE1,'')=''
  3319. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3320. )c
  3321. on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3322. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3323. where a.Type='2'and a.ID in (" + ID.TrimEnd(',') + ")";
  3324. TableCode = "ICSSDN";
  3325. }
  3326. if (Type == "5")//其它入库生成条码
  3327. {
  3328. sql = @"select a.InCode as 单据号,a.Sequence as 行号,a.WHCode as 仓库编码,a.InvCode as 料品编码, b.InvName as 料品名称,b.InvStd as 料品型号 ,b.InvDesc as 料品描述,b.InvUnit as 料品单位,
  3329. CAST(a.Quantity AS DECIMAL(18,{0})) as ,CAST(a.Amount AS DECIMAL(18,{0})) as , CAST(a.InQuantity AS DECIMAL(18,{0})) as ,a.CreatePerson as ,a.CreateDateTime as ,CAST(c.LOTQTY AS DECIMAL(18,{0})) as
  3330. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3331. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  3332. a.EATTRIBUTE9,a.EATTRIBUTE10
  3333. from ICSOtherIn a
  3334. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3335. left join (
  3336. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3337. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='5'
  3338. where isnull(ee.EATTRIBUTE1,'')=''
  3339. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3340. )c
  3341. on a.InCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3342. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3343. where a.Status='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  3344. TableCode = "ICSOtherIn";
  3345. }
  3346. if (Type == "6")//归还单生成条码
  3347. {
  3348. sql = @" select a.ReturnCode as 单据号,a.Sequence as 行号,a.WHCode as 仓库编码,a.InvCode as 料品编码, b.InvName as 料品名称,b.InvStd as 料品型号,b.InvDesc as 料品描述,b.InvUnit as 料品单位
  3349. ,CAST(a.Quantity AS DECIMAL(18,{0})) as ,CAST(a.Amount AS DECIMAL(18,{0})) as , CAST(a.ReturnQuantity AS DECIMAL(18,{0})) as ,a.CreatePerson as ,a.CreateDateTime as ,CAST(c.LOTQTY AS DECIMAL(18,{0})) as
  3350. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3351. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  3352. a.EATTRIBUTE9,a.EATTRIBUTE10
  3353. from ICSReturn a
  3354. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3355. left join (
  3356. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3357. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='6'
  3358. where isnull(ee.EATTRIBUTE1,'')=''
  3359. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3360. ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3361. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3362. where a.Status='2' and a.ID in (" + ID.TrimEnd(',') + ")";
  3363. TableCode = "ICSReturn";
  3364. }
  3365. if (Type == "7")//*审核到货单生成条码
  3366. {
  3367. sql = @"select d.POCode as 采购订单号,d.Sequence as 采购订单行号,a.DNCode as 单据号,a.Sequence as 行号,a.VenCode as 供应商代码,e.VenName as 供应商名称,a.InvCode as 料品编码, b.InvName as 料品名称,b.InvStd as 料品型号,b.InvDesc as 料品描述,b.InvUnit as 料品单位,
  3368. CAST(a.Quantity AS DECIMAL(18,{0})) as ,CAST(a.Amount AS DECIMAL(18,{0})) as ,CAST(a.RCVQuantity AS DECIMAL(18,{0})) as ,a.Currency as ,a.CreatePerson as ,a.CreateDateTime as ,CAST(c.LOTQTY AS DECIMAL(18,{0})) as
  3369. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3370. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  3371. a.EATTRIBUTE9,a.EATTRIBUTE10
  3372. from ICSDeliveryNotice a
  3373. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3374. left join (
  3375. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3376. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='7'
  3377. where isnull(ee.EATTRIBUTE1,'')=''
  3378. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3379. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3380. inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  3381. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  3382. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3383. where a.DNType='1' and a.Status='2' and a.ASNCode is null and a.ID in (" + ID.TrimEnd(',') + ")";
  3384. TableCode = "ICSDeliveryNotice";
  3385. }
  3386. if (Type == "8")//审核委外到货单生成条码
  3387. {
  3388. sql = @"select d.OOCode as 委外采购订单号,d.Sequence as 委外采购订单行号,a.ODNCode as 单据号,a.Sequence as 行号,a.VenCode as 供应商代码,e.VenName as 供应商名称,a.InvCode as 料品编码, b.InvName as ,b.InvStd as 料品型号,b.InvDesc as 料品描述,b.InvUnit as 料品单位,CAST(a.Quantity AS DECIMAL(18,{0})) as 数量 ,CAST(a.Amount AS DECIMAL(18,{0})) as 辅计量数量,CAST(a.RCVQuantity AS DECIMAL(18,{0})) as 入库数量,a.Currency as 币种,a.CreatePerson as 创建人,a.CreateDateTime as 创建时间,
  3389. CAST(c.LOTQTY AS DECIMAL(18,{0})) as
  3390. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3391. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10 ,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  3392. a.EATTRIBUTE9,a.EATTRIBUTE10
  3393. from ICSODeliveryNotice a
  3394. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3395. left join (
  3396. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3397. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='8'
  3398. where isnull(ee.EATTRIBUTE1,'')=''
  3399. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3400. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3401. inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  3402. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  3403. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3404. where a.ODNType='1' and a.Status='2' and a.OASNCode is null and a.ID in (" + ID.TrimEnd(',') + ")";
  3405. TableCode = "ICSODeliveryNotice";
  3406. }
  3407. if (Type == "9")//开立得成品入库单 生成条码
  3408. {
  3409. sql = @"select a.RCVCode as 单据号,a.Sequence as 行号,a.WHCode as 仓库号,a.InvCode as 料品编码, b.InvName as 料品名称,b.InvStd as 料品型号,b.InvDesc as 料品描述,b.InvUnit as 料品单位,CAST(a.Quantity AS DECIMAL(18,{0})) as 数量 ,
  3410. CAST(a.Amount AS DECIMAL(18,{0})) as ,CAST(a.RCVQuantity AS DECIMAL(18,{0})) as ,a.CreatePerson as ,a.CreateDateTime as ,CAST(c.LOTQTY AS DECIMAL(18,{0})) as
  3411. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3412. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  3413. a.EATTRIBUTE9,a.EATTRIBUTE10
  3414. from ICSManufactureReceive a
  3415. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3416. left join (
  3417. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3418. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='9'
  3419. where isnull(ee.EATTRIBUTE1,'')=''
  3420. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3421. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3422. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3423. where a.Status='1' and a.Type='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  3424. TableCode = "ICSManufactureReceive";
  3425. }
  3426. if (Type == "10")//采购拒收单
  3427. {
  3428. sql = @"select a.DNCode as 拒收单号 ,a.Sequence as 拒收单行号 ,a.VenCode as 供应商代码,e.VenName as 供应商名称,a.InvCode as 料品编码, b.InvName as 料品名称,b.InvStd as 料品型号,b.InvDesc as 料品描述,b.InvUnit as 料品单位,
  3429. CAST(a.Quantity AS DECIMAL(18,{0})) as ,CAST(a.Amount AS DECIMAL(18,{0})) as ,CAST(a.RCVQuantity AS DECIMAL(18,{0})) as ,a.Currency as ,a.CreatePerson as ,a.CreateDateTime as ,
  3430. CAST(c.LOTQTY AS DECIMAL(18,{0})) as
  3431. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3432. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  3433. a.EATTRIBUTE9,a.EATTRIBUTE10
  3434. from ICSDeliveryNotice a
  3435. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3436. left join (
  3437. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3438. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='10'
  3439. where isnull(ee.EATTRIBUTE1,'')=''
  3440. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3441. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3442. --inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  3443. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  3444. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3445. where a.DNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null and a.ID in (" + ID.TrimEnd(',') + ")";
  3446. TableCode = "ICSDeliveryNotice";
  3447. }
  3448. if (Type == "11") //委外拒收单生成条码
  3449. {
  3450. sql = @"select a.ODNCode as 委外拒收单号,a.Sequence as 委外拒收单行号,a.VenCode as 供应商代码,e.VenName as 供应商名称,a.InvCode as 料品编码, b.InvName as 料品名称,b.InvStd as 料品型号,b.InvDesc as 料品描述,b.InvUnit as 料品单位,
  3451. CAST(a.Quantity AS DECIMAL(18,{0})) as ,CAST(a.Amount AS DECIMAL(18,{0})) as ,CAST(a.RCVQuantity AS DECIMAL(18,{0})) as ,a.Currency as ,a.CreatePerson as ,a.CreateDateTime as ,CAST(c.LOTQTY AS DECIMAL(18,{0})) as
  3452. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3453. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10 ,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  3454. a.EATTRIBUTE9,a.EATTRIBUTE10
  3455. from ICSODeliveryNotice a
  3456. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3457. left join (
  3458. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3459. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='11'
  3460. where isnull(ee.EATTRIBUTE1,'')=''
  3461. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3462. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3463. --inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  3464. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  3465. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3466. where a.ODNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null and a.ID in (" + ID.TrimEnd(',') + ")";
  3467. TableCode = "ICSODeliveryNotice";
  3468. }
  3469. if (Type == "12")//领料申请退料生成条码
  3470. {
  3471. sql = @"select a.ApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品编码,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  3472. CAST(a.Quantity AS DECIMAL(18,{0})) as ,CAST(a.Amount AS DECIMAL(18,{0})) as ,CAST(a.IssueNegQuantity AS DECIMAL(18,{0})) as 退 ,a.MUSERName as ,a.MTIME as ,CAST(c.LOTQTY AS DECIMAL(18,{0})) as
  3473. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3474. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  3475. a.EATTRIBUTE9,a.EATTRIBUTE10
  3476. from ICSMOApplyNegDetail a
  3477. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  3478. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3479. left join (
  3480. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3481. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='12'
  3482. where isnull(ee.EATTRIBUTE1,'')=''
  3483. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3484. )c
  3485. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3486. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3487. WHERE d.Type='2' and a.ID in (" + ID.TrimEnd(',') + ")";
  3488. TableCode = "ICSMOApplyNegDetail";
  3489. }
  3490. if (Type == "13")//材料出库退料
  3491. {
  3492. sql = @" select a.ApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  3493. CAST(a.Quantity AS DECIMAL(18,{0})) as ,
  3494. CAST(a.Amount AS DECIMAL(18,{0})) as ,CAST(a.IssueNegQuantity AS DECIMAL(18,{0})) as 退 ,a.MUSERName as ,a.MTIME as ,CAST(c.LOTQTY AS DECIMAL(18,{0})) as
  3495. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3496. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  3497. from ICSMOApplyNegDetail a
  3498. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  3499. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3500. left join (
  3501. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3502. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='13'
  3503. where isnull(ee.EATTRIBUTE1,'')=''
  3504. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3505. )c
  3506. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3507. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3508. WHERE d.Type='3' and a.ID in (" + ID.TrimEnd(',') + ")";
  3509. TableCode = "ICSMOApplyNegDetail";
  3510. }
  3511. if (Type == "14")//委外领料申请退料
  3512. {
  3513. sql = @" select a.OApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  3514. CAST(a.Quantity AS DECIMAL(18,{0})) as ,CAST(a.Amount AS DECIMAL(18,{0})) as ,CAST(a.IssueNegQuantity AS DECIMAL(18,{0})) as 退 ,a.MUSERName as ,a.MTIME as ,CAST(c.LOTQTY AS DECIMAL(18,{0})) as
  3515. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3516. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  3517. a.EATTRIBUTE9,a.EATTRIBUTE10
  3518. from ICSOApplyNegDetail a
  3519. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  3520. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3521. left join (
  3522. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3523. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='14'
  3524. where isnull(ee.EATTRIBUTE1,'')=''
  3525. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3526. )c
  3527. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3528. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3529. WHERE d.Type='2' and a.ID in (" + ID.TrimEnd(',') + ")";
  3530. TableCode = "ICSOApplyNegDetail";
  3531. }
  3532. if (Type == "15")//委外材料出库退料
  3533. {
  3534. sql = @" select a.OApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  3535. CAST(a.Quantity AS DECIMAL(18,{0})) as ,CAST(a.Amount AS DECIMAL(18,{0})) as ,CAST(a.IssueNegQuantity AS DECIMAL(18,{0})) as 退 ,a.MUSERName as ,a.MTIME as ,CAST(c.LOTQTY AS DECIMAL(18,{0})) as
  3536. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3537. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  3538. a.EATTRIBUTE9,a.EATTRIBUTE10
  3539. from ICSOApplyNegDetail a
  3540. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  3541. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3542. left join (
  3543. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3544. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='15'
  3545. where isnull(ee.EATTRIBUTE1,'')=''
  3546. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3547. )c
  3548. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3549. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3550. WHERE d.Type='3' and a.ID in (" + ID.TrimEnd(',') + ")";
  3551. TableCode = "ICSOApplyNegDetail";
  3552. }
  3553. if (Type == "16") //返工工单
  3554. {
  3555. sql = @"select d.MOCode as 工单号,d.Sequence+'~'+ a.Sequence as 工单子件行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  3556. CAST(a.Quantity AS DECIMAL(18,{0})) as ,
  3557. CAST(a.Amount AS DECIMAL(18,{0})) as ,CAST(a.IssueQuantity AS DECIMAL(18,{0})) as ,a.MUSERName as ,a.MTIME as ,CAST(c.LOTQTY AS DECIMAL(18,{0})) as
  3558. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3559. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  3560. a.EATTRIBUTE9,a.EATTRIBUTE10
  3561. from ICSMOPick a
  3562. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  3563. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3564. left join (
  3565. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3566. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='16'
  3567. where isnull(ee.EATTRIBUTE1,'')=''
  3568. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3569. )c
  3570. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3571. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3572. where a.EATTRIBUTE1='1' and d.EATTRIBUTE1='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  3573. TableCode = "ICSMOPick";
  3574. }
  3575. if (Type == "17")//检验不合格条码重新生成
  3576. {
  3577. sql = @"select a.LotNo as 不合格条码, a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  3578. CAST(a.Quantity AS DECIMAL(18,{0})) as ,
  3579. CAST(c.Amount AS DECIMAL(18,{0})) as ,a.MUSERName,a.MUSERName as ,a.MTIME as ,CAST(c.LOTQTY AS DECIMAL(18,{0})) as
  3580. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3581. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,
  3582. a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  3583. a.EATTRIBUTE9,a.EATTRIBUTE10
  3584. from ICSInspection a
  3585. left join dbo.ICSInventoryLot d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint
  3586. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3587. left join (
  3588. select ee.LotNo,ee.EATTRIBUTE1,ee.Amount,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3589. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='17'
  3590. group by ee.LotNo,ee.EATTRIBUTE1,ee.Amount,ee.WorkPoint
  3591. )c
  3592. on c.EATTRIBUTE1=d.LotNo and a.WorkPoint=c.WorkPoint
  3593. left join ICSExtension f on d.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3594. where a.UnqualifiedQuantity>0 and a.Enable='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  3595. TableCode = "ICSInspection";
  3596. }
  3597. #endregion
  3598. sql = sql + " and a.WorkPoint='{1}'";
  3599. sql = string.Format(sql, Figure, WorkPoint);
  3600. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  3601. string sqls = @"SELECT ColCode,ColName,Enable
  3602. from ICSExtensionEnable where WorkPoint='" + WorkPoint + "'";
  3603. DataTable dtExtension = SqlHelper.GetDataTableBySql(sqls);
  3604. foreach (DataRow drE in dtExtension.Rows)
  3605. {
  3606. if (dt.Columns.Contains(drE["ColCode"].ToString()))
  3607. {
  3608. if (!Convert.ToBoolean(drE["Enable"]))
  3609. {
  3610. dt.Columns.Remove(drE["ColCode"].ToString());
  3611. }
  3612. else if (Convert.ToBoolean(drE["Enable"]))
  3613. {
  3614. dt.Columns[drE["ColCode"].ToString()].ColumnName = drE["ColName"].ToString();
  3615. }
  3616. }
  3617. }
  3618. DataTable dtColumn = ColumnEnable(TableCode);
  3619. foreach (DataRow drC in dtColumn.Rows)
  3620. {
  3621. if (dt.Columns.Contains(drC["ColumnCode"].ToString()))
  3622. {
  3623. if (!Convert.ToBoolean(drC["Enable"]))
  3624. {
  3625. dt.Columns.Remove(drC["ColumnCode"].ToString());
  3626. }
  3627. else if (Convert.ToBoolean(drC["Enable"]))
  3628. {
  3629. dt.Columns[drC["ColumnCode"].ToString()].ColumnName = drC["Name"].ToString();
  3630. }
  3631. }
  3632. }
  3633. return dt;
  3634. }
  3635. public DataTable ColumnEnable(string TableCode)
  3636. {
  3637. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3638. string sql = string.Empty;
  3639. sql = @"select ColumnCode,Name,Enable from ICSColumnEnable where TableCode='{0}' and WorkPoint='{1}'";
  3640. sql = string.Format(sql, TableCode, WorkPoint);
  3641. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  3642. return dt;
  3643. }
  3644. public object GetQiSetNum(string keyValue)
  3645. {
  3646. decimal Num = 0;
  3647. string msg = "";
  3648. string APIURL = ConfigurationManager.ConnectionStrings["ERPAPIURL"].ConnectionString + "Complete/Approve";
  3649. string result = HttpPost(APIURL, keyValue);
  3650. JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText);
  3651. string MessAge = Obj["Message"].ToString();
  3652. string Success = Obj["Success"].ToString();
  3653. if (Success.ToUpper() == "FALSE")
  3654. {
  3655. msg = MessAge;
  3656. }
  3657. else
  3658. {
  3659. if (MessAge == "U9")
  3660. {
  3661. decimal Date = Convert.ToDecimal(Obj["Data"].ToString());
  3662. int date = Convert.ToInt32(Date);
  3663. Num = date;
  3664. }
  3665. else
  3666. {
  3667. if (msg == "")
  3668. {
  3669. JArray res = (JArray)JsonConvert.DeserializeObject(Obj["Data"].ToString());
  3670. foreach (var item in res)
  3671. {
  3672. JObject jo = (JObject)item;
  3673. //var aa= jo["min_lotqty"].ToString();
  3674. Num = Convert.ToDecimal(jo["min_lotqty"].ToString());
  3675. }
  3676. }
  3677. }
  3678. }
  3679. var Header = new
  3680. {
  3681. msg = msg,
  3682. Num = Num,
  3683. };
  3684. return Header;
  3685. }
  3686. //接口api解析
  3687. public static string HttpPost(string url, string body)
  3688. {
  3689. try
  3690. {
  3691. Encoding encoding = Encoding.UTF8;
  3692. HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
  3693. request.Method = "POST";
  3694. request.Accept = "application/json, text/javascript, */*"; //"text/html, application/xhtml+xml, */*";
  3695. request.ContentType = "application/json; charset=utf-8";
  3696. byte[] buffer = encoding.GetBytes(body);
  3697. request.ContentLength = buffer.Length;
  3698. request.GetRequestStream().Write(buffer, 0, buffer.Length);
  3699. HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  3700. using (StreamReader reader = new StreamReader(response.GetResponseStream(), encoding))
  3701. {
  3702. return reader.ReadToEnd();
  3703. }
  3704. }
  3705. catch (WebException ex)
  3706. {
  3707. throw new Exception(ex.Message);
  3708. }
  3709. }
  3710. public DataTable GetLoadShow()
  3711. {
  3712. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3713. string sql = @"
  3714. select * from ICSExtensionEnable where WorkPoint='" + WorkPoints + "' order by cast(EATTRIBUTE1 as int) ";
  3715. return Repository().FindTableBySql(sql.ToString());
  3716. }
  3717. //不合格条码重新生成入库
  3718. public DataTable GetGridJsonBHGTM(string queryJson, ref Pagination jqgridparam)
  3719. {
  3720. DataTable dt = new DataTable();
  3721. var queryParam = queryJson.ToJObject();
  3722. List<DbParameter> parameter = new List<DbParameter>();
  3723. object Figure = GetDecimalDigits();
  3724. #region [SQL]
  3725. string sql = @"select a.ID,a.LotNo, a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  3726. CAST(a.UnqualifiedQuantity AS DECIMAL(18,{0})) as Quantity ,
  3727. CAST(c.Amount AS DECIMAL(18,{0})) as Amount,a.MUSERName,a.MTIME,CAST(c.LOTQTY AS DECIMAL(18,{0})) as LOTQTY,d.ExtensionID
  3728. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3729. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  3730. a.EATTRIBUTE9,a.EATTRIBUTE10
  3731. from ICSInspection a
  3732. left join dbo.ICSInventoryLot d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint
  3733. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3734. left join (
  3735. select ee.LotNo,ee.EATTRIBUTE1,ee.Amount,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3736. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='17'
  3737. group by ee.LotNo,ee.EATTRIBUTE1,ee.Amount,ee.WorkPoint
  3738. )c
  3739. on c.EATTRIBUTE1=d.LotNo and a.WorkPoint=c.WorkPoint
  3740. left join ICSExtension f on d.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3741. where a.UnqualifiedQuantity>0 and a.Enable='1'";
  3742. sql = string.Format(sql, Figure);
  3743. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  3744. #endregion
  3745. if (!string.IsNullOrWhiteSpace(queryJson))
  3746. {
  3747. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  3748. {
  3749. sql += " and a.LotNo like '%" + queryParam["POCode"].ToString() + "%' ";
  3750. }
  3751. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  3752. {
  3753. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  3754. }
  3755. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  3756. {
  3757. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  3758. }
  3759. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  3760. {
  3761. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  3762. }
  3763. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  3764. {
  3765. string POStatus = queryParam["POStatus"].ToString();
  3766. if (POStatus == "0")
  3767. {
  3768. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  3769. }
  3770. else if (POStatus == "1")
  3771. {
  3772. sql += " and a.UnqualifiedQuantity-ISNULL(c.LOTQTY,0)=0";
  3773. }
  3774. else
  3775. {
  3776. sql += " and a.UnqualifiedQuantity-ISNULL(c.LOTQTY,0)<>0";
  3777. }
  3778. }
  3779. }
  3780. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  3781. {
  3782. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  3783. }
  3784. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  3785. }
  3786. public DataTable GetSubGridJsonBHGTM(string LotNo, string Type, ref Pagination jqgridparam)
  3787. {
  3788. DataTable dt = new DataTable();
  3789. object Figure = GetDecimalDigits();
  3790. List<DbParameter> parameter = new List<DbParameter>();
  3791. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3792. string sql = @" select c.TransCode,c.TransSequence ,a.ID,a.LotNo, CAST( a.Quantity AS DECIMAL(18,{0})) as Quantity ,a.MUSERName,a.MTIME
  3793. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3794. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,
  3795. case when isnull(d.ID,'')='' then '' else '' end as isStorage,
  3796. case when isnull(e.ID,'')='' then '' else '' end as isInspection,
  3797. case when g.InvIQC='1' then '是' else '否' end as isExemption
  3798. from ICSInventoryLot a
  3799. left join (select count(LotNo) LotNoCount,LotNo,WorkPoint from ICSWareHouseLotInfo
  3800. group by LotNo,WorkPoint)b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  3801. left join ICSInventoryLotDetail c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  3802. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3803. left join dbo.ICSWareHouseLotInfo d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint
  3804. left join ICSInspection e on a.LotNo=e.LotNo and e.Enable='1' and a.WorkPoint=e.WorkPoint
  3805. left join ICSInventory g on a.InvCode=g.InvCode and a.WorkPoint=g.WorkPoint
  3806. WHERE isnull(a.EATTRIBUTE1,'')='" + LotNo + "' and a.Type='" + Type + "' and a.WorkPoint in ('" + WorkPoint + "')";
  3807. sql = string.Format(sql, Figure);
  3808. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  3809. }
  3810. public int SubmitFormBHGTM(string OldLotNo, string keyValue, string WorkPoint)
  3811. {
  3812. var queryParam = keyValue.ToJObject();
  3813. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3814. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  3815. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  3816. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  3817. decimal LOTQTY = minPackQty;
  3818. // string Pre = "DN" + DNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  3819. string sql = string.Empty;
  3820. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  3821. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  3822. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  3823. string sqls = string.Empty;
  3824. string Colspan = "";
  3825. string str1 = "";
  3826. List<string> ExtensionIDList = new List<string>();
  3827. for (int i = 0; i < createPageCount; i++)
  3828. {
  3829. if (i + 1 == createPageCount)
  3830. {
  3831. if (minPackQty * createPageCount > thisCreateQty)
  3832. {
  3833. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  3834. }
  3835. }
  3836. string LotNo = GetNewLotNo(OldLotNo);
  3837. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  3838. select '{0}',TransCode,TransSequence,'{1}','{2}',getdate(),'{3}' from ICSInventoryLotDetail where LotNo='{4}'",
  3839. LotNo, MUSER, MUSERNAME, WorkPoints, OldLotNo);
  3840. sql += string.Format(@"
  3841. insert into ICSInventoryLot
  3842. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount,EATTRIBUTE1)
  3843. select
  3844. newid(),'{0}',a.InvCode,a.ProductDate,a.ExpirationDate,b.UnqualifiedQuantity,a.ExtensionID,'17','{1}','{2}',getdate(),'{3}',a.Amount,'{4}'
  3845. from ICSInventoryLot a
  3846. inner join ICSInspection b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint and b.Enable='1'
  3847. where a.LotNo='{4}' and a.WorkPoint='{3}'",
  3848. LotNo, MUSER, MUSERNAME, WorkPoints, OldLotNo);
  3849. sql += "\r\n";
  3850. }
  3851. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  3852. return count;
  3853. }
  3854. public string GetNewLotNo(string LotNO)
  3855. {
  3856. DataTable dt = new DataTable();
  3857. List<DbParameter> parameter = new List<DbParameter>();
  3858. //string sql = @"select max(LotNo) as NewLotNo from ICSInventoryLot where EATTRIBUTE1='{0}' ";
  3859. string sql = @"SELECT TOP 1 LotNO as NewLotNo FROM ICSInventoryLot WHERE EATTRIBUTE1='{0}'
  3860. ORDER BY CAST(SUBSTRING(LotNO, (LEN(LotNO)-CHARINDEX('-',REVERSE(LotNO))+1)+1,CHARINDEX('-',REVERSE(LotNO))-1) AS INT) DESC";
  3861. sql = string.Format(sql, LotNO);
  3862. dt = Repository().FindTableBySql(sql.ToString());
  3863. if (dt == null || dt.Rows.Count == 0 || dt.Rows[0]["NewLotNo"].ToString() == "")
  3864. {
  3865. return LotNO + "-1";
  3866. }
  3867. else
  3868. {
  3869. string newLotNO = dt.Rows[0]["NewLotNo"].ToString();
  3870. int COUNT = Convert.ToInt32(newLotNO.Substring(newLotNO.LastIndexOf('-') + 1)) + 1;
  3871. return LotNO + "-" + COUNT.ToString();
  3872. }
  3873. }
  3874. public DataTable SelGDLX()
  3875. {
  3876. string sql = string.Empty;
  3877. DataTable dt = null;
  3878. sql = string.Format(@"select distinct isnull(MOType,'') as Code ,isnull(MOType,'') as Name from dbo.ICSMO where isnull(MOType,'')<>''");
  3879. dt = SqlHelper.GetDataTableBySql(sql);
  3880. return dt;
  3881. }
  3882. public DataTable GetFreeEnble()
  3883. {
  3884. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3885. string sql = @"
  3886. select * from ICSExtensionEnable where WorkPoint='" + WorkPoints + "' order by cast(EATTRIBUTE1 as int) ";
  3887. return Repository().FindTableBySql(sql.ToString());
  3888. }
  3889. public DataTable GetInvBatchEnable(string InvCode)
  3890. {
  3891. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3892. string sql = @"select distinct BatchEnable from ICSInventory where InvCode='{0}' and WorkPoint='{1}'";
  3893. sql = string.Format(sql, InvCode, WorkPoints);
  3894. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  3895. return dt;
  3896. }
  3897. //副产品
  3898. public DataTable GetGridJsonFCP(string queryJson, ref Pagination jqgridparam)
  3899. {
  3900. DataTable dt = new DataTable();
  3901. var queryParam = queryJson.ToJObject();
  3902. List<DbParameter> parameter = new List<DbParameter>();
  3903. object Figure = GetDecimalDigits();
  3904. #region [SQL]
  3905. string sql = @"select a.ID,d.MOCode,d.Sequence+'~'+ a.Sequence as Sequence,a.PickID,a.InvCode as ZInvCode,d.InvCode as MInvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  3906. CAST(a.Quantity AS DECIMAL(18,{0})) as Quantity ,
  3907. 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
  3908. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3909. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  3910. a.EATTRIBUTE9,a.EATTRIBUTE10
  3911. from ICSMOPick a
  3912. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  3913. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3914. left join (
  3915. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3916. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='18'
  3917. where isnull(ee.EATTRIBUTE1,'')=''
  3918. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3919. )c
  3920. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3921. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3922. where a.EATTRIBUTE1='1' ";
  3923. sql = string.Format(sql, Figure);
  3924. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  3925. #endregion
  3926. if (!string.IsNullOrWhiteSpace(queryJson))
  3927. {
  3928. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  3929. {
  3930. sql += " and d.MOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  3931. }
  3932. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  3933. {
  3934. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  3935. }
  3936. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  3937. {
  3938. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  3939. }
  3940. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  3941. {
  3942. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  3943. }
  3944. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  3945. {
  3946. string POStatus = queryParam["POStatus"].ToString();
  3947. if (POStatus == "0")
  3948. {
  3949. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  3950. }
  3951. else if (POStatus == "1")
  3952. {
  3953. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  3954. }
  3955. else
  3956. {
  3957. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  3958. }
  3959. }
  3960. }
  3961. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  3962. {
  3963. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  3964. }
  3965. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  3966. {
  3967. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  3968. }
  3969. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  3970. }
  3971. //生产订单生成条码
  3972. public DataTable GetGridJsonMO(string queryJson, ref Pagination jqgridparam)
  3973. {
  3974. DataTable dt = new DataTable();
  3975. var queryParam = queryJson.ToJObject();
  3976. List<DbParameter> parameter = new List<DbParameter>();
  3977. object Figure = GetDecimalDigits();
  3978. #region [SQL]
  3979. string sql = @"select d.ID,d.MOCode,d.Sequence,b.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  3980. CAST(d.Quantity AS DECIMAL(18,2)) as Quantity ,
  3981. CAST(d.Amount AS DECIMAL(18,2)) as Amount,CAST(d.RCVQuantity AS DECIMAL(18,2)) as IssueQuantity ,d.ExtensionID,d.MUSERName,d.MTIME ,CAST(c.LOTQTY AS DECIMAL(18,2)) as LOTQTY
  3982. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3983. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  3984. from ICSMO d
  3985. left join ICSInventory b on d.InvCode=b.InvCode and d.WorkPoint=b.WorkPoint
  3986. left join (SELECT TransCode,TransSequence,SUM(Quantity) as LOTQTY,WorkPoint FROM ICSFinishedProductShipment GROUP BY TransCode,TransSequence,WorkPoint)c on d.MOCode=c.TransCode and d.Sequence=c.TransSequence and d.WorkPoint=c.WorkPoint
  3987. left join ICSExtension f on d.ExtensionID=f.ID and d.WorkPoint=f.WorkPoint
  3988. where d.MOStatus<>'3' ";
  3989. sql = string.Format(sql, Figure);
  3990. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  3991. #endregion
  3992. if (!string.IsNullOrWhiteSpace(queryJson))
  3993. {
  3994. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  3995. {
  3996. sql += " and d.MOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  3997. }
  3998. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  3999. {
  4000. sql += " and b.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  4001. }
  4002. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  4003. {
  4004. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  4005. }
  4006. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  4007. {
  4008. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  4009. }
  4010. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  4011. {
  4012. string POStatus = queryParam["POStatus"].ToString();
  4013. if (POStatus == "0")
  4014. {
  4015. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  4016. }
  4017. else if (POStatus == "1")
  4018. {
  4019. sql += " and d.Quantity-ISNULL(c.LOTQTY,0)=0";
  4020. }
  4021. else
  4022. {
  4023. sql += " and d.Quantity-ISNULL(c.LOTQTY,0)<>0";
  4024. }
  4025. }
  4026. }
  4027. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  4028. {
  4029. sql += " and d.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  4030. }
  4031. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4032. }
  4033. public DataTable GetSubGridJsonMOCreate(string FCPMOCode, string Sequence, string WorkPoint)
  4034. {
  4035. DataTable dt = new DataTable();
  4036. object Figure = GetDecimalDigits();
  4037. List<DbParameter> parameter = new List<DbParameter>();
  4038. string sql = @"
  4039. select d.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( d.Quantity AS DECIMAL(18,6)) as Quantity,CAST( d.Amount as DECIMAL(18,6)) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(18,6)) as CreatedQty,
  4040. CAST( (d.Quantity-ISNULL(c.LOTQTY,0)) as DECIMAL(18,6)) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,6)) as EffectiveDays
  4041. ,e.ProjectCode,e.BatchCode,e.Version,e.Brand,e.cFree1,e.cFree2,e.cFree3,e.cFree4,e.cFree5,e.cFree6,e.cFree7,e.cFree8,e.cFree9,e.cFree10,'' as EATTRIBUTE1 ,'' as EATTRIBUTE2,'' as EATTRIBUTE3,'' as EATTRIBUTE4,'' as EATTRIBUTE5
  4042. from ICSMO d
  4043. left join ICSInventory b on d.InvCode=b.InvCode and d.WorkPoint=b.WorkPoint
  4044. left join ( SELECT TransCode,TransSequence,SUM(Quantity) as LOTQTY,WorkPoint FROM ICSFinishedProductShipment GROUP BY TransCode,TransSequence,WorkPoint)c on d.MOCode=c.TransCode and d.Sequence=c.TransSequence and d.WorkPoint=c.WorkPoint
  4045. left join ICSExtension e on d.ExtensionID=e.ID and d.WorkPoint=e.WorkPoint
  4046. WHERE d.MOStatus<>'3'
  4047. and d.MOCode='" + FCPMOCode + "' and d.Sequence='" + Sequence + "'";
  4048. sql += " and d.WorkPoint='" + WorkPoint + "'";
  4049. sql = string.Format(sql, Figure);
  4050. return Repository().FindTableBySql(sql.ToString());
  4051. }
  4052. public DataTable GetSubGridJsonFCPCreate(string FCPMOCode, string Sequence, string WorkPoint)
  4053. {
  4054. DataTable dt = new DataTable();
  4055. object Figure = GetDecimalDigits();
  4056. List<DbParameter> parameter = new List<DbParameter>();
  4057. string sql = @"
  4058. select a.InvCode,b.InvName,b.ClassCode,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,
  4059. 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
  4060. ,e.ProjectCode,e.BatchCode,e.Version,e.Brand,e.cFree1,e.cFree2,e.cFree3,e.cFree4,e.cFree5,e.cFree6,e.cFree7,e.cFree8,e.cFree9,e.cFree10,
  4061. a.EATTRIBUTE1, a.EATTRIBUTE2, a.EATTRIBUTE3, a.EATTRIBUTE4, a.EATTRIBUTE5, a.EATTRIBUTE6, a.EATTRIBUTE7, a.EATTRIBUTE8, a.EATTRIBUTE9, a.EATTRIBUTE10
  4062. from ICSMOPick a
  4063. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  4064. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4065. left join (
  4066. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  4067. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='18'
  4068. where isnull(a.EATTRIBUTE1,'')=''
  4069. group by b.TransCode,b.TransSequence
  4070. ) c on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence
  4071. left join ICSExtension e on d.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  4072. WHERE 1=1
  4073. and d.MOCode='" + FCPMOCode + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "'";
  4074. sql += " and a.WorkPoint='" + WorkPoint + "'";
  4075. sql = string.Format(sql, Figure);
  4076. return Repository().FindTableBySql(sql.ToString());
  4077. }
  4078. //副产品
  4079. public int SubmitFormFCP(string FCPMOCode, string Sequence, string keyValue, string WorkPoint)
  4080. {
  4081. var queryParam = keyValue.ToJObject();
  4082. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4083. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  4084. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  4085. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  4086. decimal LOTQTY = minPackQty;
  4087. string Sequences = Sequence.Replace("~", "");
  4088. string Pre = "FCP" + FCPMOCode + (Convert.ToInt32(Sequences)).ToString("D4");
  4089. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  4090. string sql = string.Empty;
  4091. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  4092. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  4093. string sqls = string.Empty;
  4094. string Colspan = "";
  4095. string str1 = "";
  4096. List<string> ExtensionIDList = new List<string>();
  4097. for (int i = 0; i < createPageCount; i++)
  4098. {
  4099. if (i + 1 == createPageCount)
  4100. {
  4101. if (minPackQty * createPageCount > thisCreateQty)
  4102. {
  4103. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  4104. }
  4105. }
  4106. 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();
  4107. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  4108. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  4109. bool flag = true;
  4110. foreach (var item in ExtensionIDList)
  4111. {
  4112. if (item == Colspan + WorkPoint)
  4113. {
  4114. flag = false;
  4115. }
  4116. }
  4117. if (ExtensionID == null && flag == true)
  4118. {
  4119. str1 = Guid.NewGuid().ToString();
  4120. 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)
  4121. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4122. str1, 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(),
  4123. MUSER, MUSERNAME, WorkPoints);
  4124. }
  4125. else if (ExtensionID != null)
  4126. {
  4127. str1 = ExtensionID.ToString();
  4128. }
  4129. ExtensionIDList.Add(Colspan + WorkPoint);
  4130. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4131. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  4132. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  4133. LotNo, FCPMOCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  4134. sql += string.Format(@"insert into ICSInventoryLot
  4135. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  4136. select
  4137. newid(),'{0}',a.InvCode,'{1}','{10}','{2}','{8}','18','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  4138. from ICSMOPick a left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3' where d.MOCode='{6}' and d.Sequence+'~'+a.Sequence='{7}' and a.WorkPoint='{5}' ",
  4139. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, FCPMOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  4140. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  4141. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  4142. sql += "\r\n";
  4143. }
  4144. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4145. return count;
  4146. }
  4147. //生产订单生成条码
  4148. public int SubmitFormMO(string FCPMOCode, string Sequence, string keyValue, string WorkPoint)
  4149. {
  4150. var queryParam = keyValue.ToJObject();
  4151. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4152. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  4153. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  4154. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  4155. string cusBatch = queryParam["EATTRIBUTE3"].ToString();
  4156. string LBatch = queryParam["EATTRIBUTE4"].ToString();
  4157. string remark = queryParam["EATTRIBUTE5"].ToString();
  4158. decimal LOTQTY = minPackQty;
  4159. string Sequences = Sequence.Replace("~", "");
  4160. string Pre = "MO" + FCPMOCode + (Convert.ToInt32(Sequences)).ToString("D4");
  4161. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  4162. string sql = string.Empty;
  4163. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  4164. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  4165. string sqls = string.Empty;
  4166. string Colspan = "";
  4167. string str1 = "";
  4168. List<string> ExtensionIDList = new List<string>();
  4169. for (int i = 0; i < createPageCount; i++)
  4170. {
  4171. if (i + 1 == createPageCount)
  4172. {
  4173. if (minPackQty * createPageCount > thisCreateQty)
  4174. {
  4175. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  4176. }
  4177. }
  4178. var Amount = Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY;
  4179. 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();
  4180. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  4181. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  4182. bool flag = true;
  4183. foreach (var item in ExtensionIDList)
  4184. {
  4185. if (item == Colspan + WorkPoint)
  4186. {
  4187. flag = false;
  4188. }
  4189. }
  4190. if (ExtensionID == null && flag == true)
  4191. {
  4192. str1 = Guid.NewGuid().ToString();
  4193. 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)
  4194. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4195. str1, 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(),
  4196. MUSER, MUSERNAME, WorkPoints);
  4197. }
  4198. else if (ExtensionID != null)
  4199. {
  4200. str1 = ExtensionID.ToString();
  4201. }
  4202. ExtensionIDList.Add(Colspan + WorkPoint);
  4203. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4204. sql += $@"INSERT INTO [dbo].[ICSFinishedProductShipment] ([ID], [LotNo], [InvCode], [ProductDate], [ExpirationDate], [Quantity], [Amount], [TransCode], [TransSequence], [ExtensionID], [Type], [PrintTimes], [LastPrintUser], [LastPrintTime], [MUSER], [MUSERName], [MTIME], [WorkPoint], [EATTRIBUTE1], [EATTRIBUTE2], [EATTRIBUTE3], [EATTRIBUTE4], [EATTRIBUTE5], [EATTRIBUTE6], [EATTRIBUTE7], [EATTRIBUTE8], [EATTRIBUTE9], [EATTRIBUTE10], [minPackQty]) VALUES (NEWID(), N'{LotNo}', N'{queryParam["InvCode"]}', '{queryParam["PRODUCTDATE"]}', '{queryParam["ExpirationDate"]}', {LOTQTY}, {Amount}, N'{FCPMOCode}', N'{Sequence}', NULL, N'5', NULL, NULL, NULL, N'{MUSER}', N'{MUSERNAME}', GETDATE(), N'{WorkPoint}', N'', '{cusBatch}', '{LBatch}', '{remark}', NULL, NULL, NULL, NULL, NULL, NULL, {minPackQty}); ";
  4205. }
  4206. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4207. return count;
  4208. }
  4209. public bool GetGeneratedNum(string Code, string Sequence, string Type, string thisCreateQty)
  4210. {
  4211. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4212. DataTable dt = new DataTable();
  4213. List<DbParameter> parameter = new List<DbParameter>();
  4214. string sql = string.Empty;
  4215. bool flag = true;
  4216. if (Type == "1")
  4217. {
  4218. sql = @" select distinct CAST(isnull(a.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  4219. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  4220. from ICSMOApplyNegDetail a
  4221. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  4222. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4223. left join (
  4224. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4225. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='1'
  4226. where isnull(ee.EATTRIBUTE1,'')=''
  4227. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4228. )c
  4229. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4230. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4231. where d.Type='1'
  4232. and a.ApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  4233. }
  4234. if (Type == "2")
  4235. {
  4236. sql = @" select distinct CAST(isnull(a.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  4237. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  4238. from ICSOApplyNegDetail a
  4239. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  4240. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4241. left join (
  4242. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4243. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='2'
  4244. where isnull(ee.EATTRIBUTE1,'')=''
  4245. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4246. )c
  4247. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4248. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4249. WHERE d.Type='1' and a.OApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  4250. }
  4251. if (Type == "3")
  4252. {
  4253. sql = @" select distinct CAST(isnull(invOver.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  4254. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  4255. from ICSMO a
  4256. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4257. left JOIN(select a.MOCode,a.Sequence,a.WorkPoint,
  4258. case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
  4259. from ICSMO a
  4260. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint) invOver ON invOver.MOCode=a.MOCode AND invOver.Sequence=a.Sequence AND invOver.WorkPoint=a.WorkPoint
  4261. left join (
  4262. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4263. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='3'
  4264. where isnull(ee.EATTRIBUTE1,'')=''
  4265. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4266. )c
  4267. on a.MOCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4268. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4269. WHERE 1=1 and a.MOStatus<>'3' and a.MOCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  4270. }
  4271. if (Type == "4")
  4272. {
  4273. sql = @" select distinct CAST(isnull(a.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  4274. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  4275. from ICSSDN a
  4276. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4277. left join (
  4278. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4279. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='4'
  4280. where isnull(ee.EATTRIBUTE1,'')=''
  4281. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4282. )c
  4283. on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4284. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4285. where a.Type='2'
  4286. and a.SDNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  4287. }
  4288. if (Type == "5")
  4289. {
  4290. sql = @" select distinct CAST(isnull(a.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  4291. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  4292. from ICSOtherIn a
  4293. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4294. left join (
  4295. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4296. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='5'
  4297. where isnull(ee.EATTRIBUTE1,'')=''
  4298. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4299. )c
  4300. on a.InCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4301. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4302. where a.Status='1'
  4303. and a.InCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  4304. }
  4305. if (Type == "6")
  4306. {
  4307. sql = @" select distinct CAST(isnull(a.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  4308. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  4309. from ICSReturn a
  4310. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4311. left join (
  4312. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4313. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='6'
  4314. where isnull(ee.EATTRIBUTE1,'')=''
  4315. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4316. ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4317. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4318. where a.Status='2'
  4319. and a.ReturnCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  4320. }
  4321. if (Type == "7")
  4322. {
  4323. sql = @" select distinct CAST(isnull(a.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  4324. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  4325. from ICSDeliveryNotice a
  4326. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4327. left join (
  4328. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4329. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='7'
  4330. where isnull(ee.EATTRIBUTE1,'')=''
  4331. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4332. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4333. inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  4334. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  4335. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4336. where a.DNType='1' and a.Status='2' and a.ASNCode is null
  4337. and a.DNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  4338. }
  4339. if (Type == "8")
  4340. {
  4341. sql = @" select distinct CAST(isnull(a.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  4342. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  4343. from ICSODeliveryNotice a
  4344. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4345. left join (
  4346. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4347. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='8'
  4348. where isnull(ee.EATTRIBUTE1,'')=''
  4349. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4350. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4351. inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  4352. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  4353. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4354. where a.ODNType='1' and a.Status='2' and a.OASNCode is null
  4355. and a.ODNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  4356. }
  4357. if (Type == "9")
  4358. {
  4359. sql = @" select distinct CAST(isnull(a.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  4360. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  4361. from ICSManufactureReceive a
  4362. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4363. left join (
  4364. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4365. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='9'
  4366. where isnull(ee.EATTRIBUTE1,'')=''
  4367. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4368. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4369. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4370. where a.Status='1' and a.Type='1'
  4371. and a.RCVCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  4372. }
  4373. if (Type == "10")
  4374. {
  4375. sql = @" select distinct CAST(isnull(a.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  4376. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  4377. from ICSDeliveryNotice a
  4378. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4379. left join (
  4380. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4381. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='10'
  4382. where isnull(ee.EATTRIBUTE1,'')=''
  4383. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4384. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4385. --inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  4386. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  4387. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4388. where a.DNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  4389. and a.DNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  4390. }
  4391. if (Type == "11")
  4392. {
  4393. sql = @" select distinct CAST(isnull(a.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  4394. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  4395. from ICSODeliveryNotice a
  4396. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4397. left join (
  4398. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4399. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='11'
  4400. where isnull(ee.EATTRIBUTE1,'')=''
  4401. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4402. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4403. --inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  4404. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  4405. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4406. where a.ODNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  4407. and a.ODNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  4408. }
  4409. if (Type == "12")
  4410. {
  4411. sql = @" select distinct CAST(isnull(a.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  4412. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  4413. from ICSMOApplyNegDetail a
  4414. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  4415. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4416. left join (
  4417. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4418. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='12'
  4419. where isnull(ee.EATTRIBUTE1,'')=''
  4420. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4421. )c
  4422. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4423. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4424. WHERE d.Type='2'
  4425. and a.ApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  4426. }
  4427. if (Type == "13")
  4428. {
  4429. sql = @" select distinct CAST(isnull(a.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  4430. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  4431. from ICSMOApplyNegDetail a
  4432. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  4433. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4434. left join (
  4435. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4436. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='13'
  4437. where isnull(ee.EATTRIBUTE1,'')=''
  4438. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4439. )c
  4440. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4441. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4442. WHERE d.Type='3'
  4443. and a.ApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  4444. }
  4445. if (Type == "14")
  4446. {
  4447. sql = @" select distinct CAST(isnull(a.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  4448. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  4449. from ICSOApplyNegDetail a
  4450. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  4451. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4452. left join (
  4453. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4454. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='14'
  4455. where isnull(ee.EATTRIBUTE1,'')=''
  4456. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4457. )c
  4458. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4459. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4460. WHERE d.Type='2'
  4461. and a.OApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  4462. }
  4463. if (Type == "15")
  4464. {
  4465. sql = @" select distinct CAST(isnull(a.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  4466. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  4467. from ICSOApplyNegDetail a
  4468. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  4469. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4470. left join (
  4471. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4472. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='15'
  4473. where isnull(ee.EATTRIBUTE1,'')=''
  4474. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4475. )c
  4476. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4477. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4478. WHERE d.Type='3'
  4479. and a.OApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  4480. }
  4481. if (Type == "16")
  4482. {
  4483. sql = @" select distinct CAST(isnull(a.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  4484. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  4485. from ICSMOPick a
  4486. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  4487. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4488. left join (
  4489. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4490. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='16'
  4491. where isnull(ee.EATTRIBUTE1,'')=''
  4492. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4493. )c
  4494. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4495. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4496. where a.EATTRIBUTE1='1' and d.EATTRIBUTE1='1'
  4497. and d.MOCode='" + Code + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  4498. }
  4499. if (Type == "18")
  4500. {
  4501. sql = @" select distinct CAST(isnull(a.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  4502. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  4503. from ICSMOPick a
  4504. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  4505. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4506. left join (
  4507. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4508. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='18'
  4509. where isnull(ee.EATTRIBUTE1,'')=''
  4510. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4511. )c
  4512. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4513. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4514. where a.EATTRIBUTE1='1'
  4515. and d.MOCode='" + Code + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  4516. }
  4517. dt = SqlHelper.GetDataTableBySql(sql);
  4518. decimal Quantity = Convert.ToDecimal(dt.Rows[0]["Quantity"].ToString());
  4519. decimal LOTQTY = Convert.ToDecimal(dt.Rows[0]["LOTQTY"].ToString());
  4520. decimal thisQty = Convert.ToDecimal(thisCreateQty);
  4521. if (LOTQTY + thisQty > Quantity)
  4522. {
  4523. flag = false;
  4524. }
  4525. return flag;
  4526. }
  4527. /// <summary>
  4528. /// 开立成品入库单(一键生成)
  4529. /// </summary>
  4530. public int SubmitFormKLCPRKALL(string keyValue)
  4531. {
  4532. string sql = string.Empty;
  4533. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4534. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  4535. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  4536. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  4537. foreach (var item in res)
  4538. {
  4539. JObject jo = (JObject)item;
  4540. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  4541. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  4542. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  4543. decimal LOTQTY = minPackQty;
  4544. string Pre = "KCP" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"].ToString())).ToString("D4");
  4545. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  4546. string sqls = string.Empty;
  4547. string Colspan = "";
  4548. string str1 = "";
  4549. List<string> ExtensionIDList = new List<string>();
  4550. for (int i = 0; i < createPageCount; i++)
  4551. {
  4552. if (i + 1 == createPageCount)
  4553. {
  4554. if (minPackQty * createPageCount > thisCreateQty)
  4555. {
  4556. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  4557. }
  4558. }
  4559. Colspan = jo["ProjectCode"].ToString() + "~" + jo["BatchCode"].ToString() + "~" + jo["Version"].ToString() + "~" + jo["Brand"].ToString() + "~" + jo["cFree1"].ToString() + "~" + jo["cFree2"].ToString() + "~" + jo["cFree3"].ToString() + "~" + jo["cFree4"].ToString() + "~" + jo["cFree5"].ToString() + "~" + jo["cFree6"].ToString() + "~" + jo["cFree7"].ToString() + "~" + jo["cFree8"].ToString() + "~" + jo["cFree9"].ToString() + "~" + jo["cFree10"].ToString();
  4560. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  4561. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  4562. bool flag = true;
  4563. foreach (var items in ExtensionIDList)
  4564. {
  4565. if (items == Colspan + WorkPoint)
  4566. {
  4567. flag = false;
  4568. }
  4569. }
  4570. if (ExtensionID == null && flag == true)
  4571. {
  4572. str1 = Guid.NewGuid().ToString();
  4573. 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)
  4574. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4575. str1, Colspan, jo["ProjectCode"].ToString(), jo["BatchCode"].ToString(), jo["Version"].ToString(), jo["Brand"].ToString(), jo["cFree1"].ToString(), jo["cFree2"].ToString(), jo["cFree3"].ToString(), jo["cFree4"].ToString(), jo["cFree5"].ToString(), jo["cFree6"].ToString(), jo["cFree7"].ToString(), jo["cFree8"].ToString(), jo["cFree9"].ToString(), jo["cFree10"].ToString(),
  4576. MUSER, MUSERNAME, WorkPoint);
  4577. }
  4578. else if (ExtensionID != null)
  4579. {
  4580. str1 = ExtensionID.ToString();
  4581. }
  4582. ExtensionIDList.Add(Colspan + WorkPoint);
  4583. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4584. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  4585. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  4586. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint);
  4587. sql += string.Format(@"
  4588. insert into ICSInventoryLot
  4589. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  4590. select
  4591. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','9','{3}','{4}', getdate(),'{5}','{9}'
  4592. from ICSManufactureReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  4593. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  4594. sql += "\r\n";
  4595. }
  4596. }
  4597. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4598. return count;
  4599. }
  4600. /// <summary>
  4601. /// 审核到货单生成条码(一键生成)
  4602. /// </summary>
  4603. /// <param name="POCode"></param>
  4604. /// <param name="PORow"></param>
  4605. /// <param name="keyValue"></param>
  4606. /// 已改
  4607. /// <returns></returns>
  4608. public int SubmitFormSHDHALL(string keyValue)
  4609. {
  4610. string sql = string.Empty;
  4611. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4612. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  4613. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  4614. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  4615. foreach (var resItem in res)
  4616. {
  4617. JObject jo = (JObject)resItem;
  4618. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  4619. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  4620. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  4621. decimal LOTQTY = minPackQty;
  4622. string Pre = "DN" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"])).ToString("D4");
  4623. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  4624. string sqls = string.Empty;
  4625. string Colspan = "";
  4626. string str1 = "";
  4627. List<string> ExtensionIDList = new List<string>();
  4628. for (int i = 0; i < createPageCount; i++)
  4629. {
  4630. if (i + 1 == createPageCount)
  4631. {
  4632. if (minPackQty * createPageCount > thisCreateQty)
  4633. {
  4634. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  4635. }
  4636. }
  4637. Colspan = jo["ProjectCode"].ToString() + "~" + jo["BatchCode"].ToString() + "~" + jo["Version"].ToString() + "~" + jo["Brand"].ToString() + "~" + jo["cFree1"].ToString() + "~" + jo["cFree2"].ToString() + "~" + jo["cFree3"].ToString() + "~" + jo["cFree4"].ToString() + "~" + jo["cFree5"].ToString() + "~" + jo["cFree6"].ToString() + "~" + jo["cFree7"].ToString() + "~" + jo["cFree8"].ToString() + "~" + jo["cFree9"].ToString() + "~" + jo["cFree10"].ToString();
  4638. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  4639. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  4640. bool flag = true;
  4641. foreach (var item in ExtensionIDList)
  4642. {
  4643. if (item == Colspan + WorkPoint)
  4644. {
  4645. flag = false;
  4646. }
  4647. }
  4648. if (ExtensionID == null && flag == true)
  4649. {
  4650. str1 = Guid.NewGuid().ToString();
  4651. 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)
  4652. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4653. str1, Colspan, jo["ProjectCode"].ToString(), jo["BatchCode"].ToString(), jo["Version"].ToString(), jo["Brand"].ToString(), jo["cFree1"].ToString(), jo["cFree2"].ToString(), jo["cFree3"].ToString(), jo["cFree4"].ToString(), jo["cFree5"].ToString(), jo["cFree6"].ToString(), jo["cFree7"].ToString(), jo["cFree8"].ToString(), jo["cFree9"].ToString(), jo["cFree10"].ToString(),
  4654. MUSER, MUSERNAME, WorkPoint);
  4655. }
  4656. else if (ExtensionID != null)
  4657. {
  4658. str1 = ExtensionID.ToString();
  4659. }
  4660. ExtensionIDList.Add(Colspan + WorkPoint);
  4661. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4662. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  4663. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  4664. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint);
  4665. sql += string.Format(@"
  4666. insert into ICSInventoryLot
  4667. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  4668. select
  4669. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','7','{3}','{4}', getdate(),'{5}','{9}'
  4670. from ICSDeliveryNotice where DNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  4671. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"], str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  4672. sql += "\r\n";
  4673. }
  4674. }
  4675. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4676. return count;
  4677. }
  4678. /// <summary>
  4679. /// 审核委外到货单生成条码(一键生成)
  4680. /// </summary>
  4681. /// <param name="POCode"></param>
  4682. /// <param name="PORow"></param>
  4683. /// <param name="keyValue"></param>
  4684. /// 已改
  4685. /// <returns></returns>
  4686. public int SubmitFormWWSHDHALL(string keyValue)
  4687. {
  4688. string sql = string.Empty;
  4689. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4690. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  4691. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  4692. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  4693. foreach (var resItem in res)
  4694. {
  4695. JObject jo = (JObject)resItem;
  4696. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  4697. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  4698. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  4699. decimal LOTQTY = minPackQty;
  4700. string Pre = "ODN" + jo["Code"] + (Convert.ToInt32(jo["Sequence"])).ToString("D4");
  4701. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  4702. string sqls = string.Empty;
  4703. string Colspan = "";
  4704. string str1 = "";
  4705. List<string> ExtensionIDList = new List<string>();
  4706. for (int i = 0; i < createPageCount; i++)
  4707. {
  4708. if (i + 1 == createPageCount)
  4709. {
  4710. if (minPackQty * createPageCount > thisCreateQty)
  4711. {
  4712. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  4713. }
  4714. }
  4715. Colspan = jo["ProjectCode"].ToString() + "~" + jo["BatchCode"].ToString() + "~" + jo["Version"].ToString() + "~" + jo["Brand"].ToString() + "~" + jo["cFree1"].ToString() + "~" + jo["cFree2"].ToString() + "~" + jo["cFree3"].ToString() + "~" + jo["cFree4"].ToString() + "~" + jo["cFree5"].ToString() + "~" + jo["cFree6"].ToString() + "~" + jo["cFree7"].ToString() + "~" + jo["cFree8"].ToString() + "~" + jo["cFree9"].ToString() + "~" + jo["cFree10"].ToString();
  4716. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  4717. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  4718. bool flag = true;
  4719. foreach (var item in ExtensionIDList)
  4720. {
  4721. if (item == Colspan + WorkPoint)
  4722. {
  4723. flag = false;
  4724. }
  4725. }
  4726. if (ExtensionID == null && flag == true)
  4727. {
  4728. str1 = Guid.NewGuid().ToString();
  4729. 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)
  4730. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4731. str1, Colspan, jo["ProjectCode"].ToString(), jo["BatchCode"].ToString(), jo["Version"].ToString(), jo["Brand"].ToString(), jo["cFree1"].ToString(), jo["cFree2"].ToString(), jo["cFree3"].ToString(), jo["cFree4"].ToString(), jo["cFree5"].ToString(), jo["cFree6"].ToString(), jo["cFree7"].ToString(), jo["cFree8"].ToString(), jo["cFree9"].ToString(), jo["cFree10"].ToString(),
  4732. MUSER, MUSERNAME, WorkPoint);
  4733. }
  4734. else if (ExtensionID != null)
  4735. {
  4736. str1 = ExtensionID.ToString();
  4737. }
  4738. ExtensionIDList.Add(Colspan + WorkPoint);
  4739. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4740. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  4741. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  4742. LotNo, jo["Code"], jo["Sequence"], MUSER, MUSERNAME, WorkPoint);
  4743. sql += string.Format(@"
  4744. insert into ICSInventoryLot
  4745. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  4746. select
  4747. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','8','{3}','{4}', getdate(),'{5}','{9}'
  4748. from ICSODeliveryNotice where ODNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  4749. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"], jo["Sequence"], str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  4750. sql += "\r\n";
  4751. }
  4752. }
  4753. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4754. return count;
  4755. }
  4756. public DataTable SelectICSColumnEnableForLotEnable()
  4757. {
  4758. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4759. string sql = @" select ColumnCode from ICSColumnEnable
  4760. where Enable='0' and TableCode='ICSInventoryLot' and WorkPoint='" + WorkPoints + "' order by cast(Code as int)";
  4761. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  4762. return dt;
  4763. }
  4764. public DataTable GetLoadShowForColumn()
  4765. {
  4766. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4767. string sql = @"
  4768. select * from ICSColumnEnable where TableCode='ICSInventoryLot' and WorkPoint='" + WorkPoints + "' order by cast(code as int) ";
  4769. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  4770. return dt;
  4771. }
  4772. public string GetAMEnable()
  4773. {
  4774. string Code = SqlHelper.GetItemsDetailEnabledMark("LotNoMaintenance");
  4775. return Code;
  4776. }
  4777. public DataTable SeachMeasure()
  4778. {
  4779. DataTable dt = new DataTable();
  4780. List<DbParameter> parameter = new List<DbParameter>();
  4781. string sql = @" SELECT Top 1 a.F_ItemCode as Code
  4782. FROM [dbo].[Sys_SRM_ItemsDetail] a
  4783. LEFT JOIN [dbo].[Sys_SRM_Items] b ON a.F_ItemId=b.F_Id
  4784. WHERE b.F_EnCode='CrtLot001' AND a.F_EnabledMark='1' ORDER BY a.F_ItemCode";
  4785. return Repository().FindTableBySql(sql.ToString());
  4786. }
  4787. public DataTable SeachLableofDisable()
  4788. {
  4789. DataTable dt = new DataTable();
  4790. List<DbParameter> parameter = new List<DbParameter>();
  4791. string sql = @"
  4792. SELECT a.F_ItemCode as Code,a.F_EnabledMark as Enable
  4793. FROM [dbo].[Sys_SRM_ItemsDetail] a
  4794. LEFT JOIN [dbo].[Sys_SRM_Items] b ON a.F_ItemId=b.F_Id
  4795. WHERE b.F_EnCode='Lot0001' ORDER BY a.F_SortCode";
  4796. return Repository().FindTableBySql(sql.ToString());
  4797. }
  4798. public DataTable SeachAmountEnablebyInvCode(string InvCode)
  4799. {
  4800. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4801. DataTable dt = new DataTable();
  4802. List<DbParameter> parameter = new List<DbParameter>();
  4803. string sql = @"
  4804. select isnull(AmountEnable,0) as AmountEnable from dbo.ICSInventory where InvCode='" + InvCode + "' and WorkPoint='" + WorkPoint + "'";
  4805. return Repository().FindTableBySql(sql.ToString());
  4806. }
  4807. public string LotBindCode(String savePath)
  4808. {
  4809. //数据获取
  4810. try
  4811. {
  4812. int index = 1;
  4813. string msg = "";
  4814. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  4815. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  4816. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4817. SqlConnection conn = SqlHelper.GetDataCenterConn();
  4818. string sql = "";
  4819. int count = 0;
  4820. DataTable data = FileToExcel.ExcelToTable(savePath);
  4821. foreach (DataRow dr in data.Rows)
  4822. {
  4823. index++;
  4824. //string GUID = Guid.NewGuid().ToString();
  4825. string Code = dr["单据号"].ToString().Trim().ToUpper();
  4826. string Sequence = dr["单据行号"].ToString().Trim().ToUpper();
  4827. string LotNo = dr["条码"].ToString().Trim().ToUpper();
  4828. string Quantity = dr["条码数量"].ToString().Trim().ToUpper();
  4829. if (Code == "" || Code == null)
  4830. {
  4831. throw new Exception("第 " + index + " 行单据号不能为空!");
  4832. }
  4833. if (Sequence == "" || Sequence == null)
  4834. {
  4835. throw new Exception("第 " + index + " 行单据行号不能为空!");
  4836. }
  4837. if (LotNo == "" || LotNo == null)
  4838. {
  4839. throw new Exception("第 " + index + " 行条码不能为空!");
  4840. }
  4841. if (Quantity == "" || Quantity == null)
  4842. {
  4843. throw new Exception("第 " + index + " 行条码数量不能为空!");
  4844. }
  4845. string sqlCode = @" select a.MOCode,a.Sequence, a.Quantity,a.Amount,a.InvCode,isnull(c.LOTQTY,0) as LOTQTY,
  4846. case when b.EffectiveEnable='1' then getdate()+b.EffectiveDays else '2999-12-31 00:00:00.000' end as ExpirationDate,
  4847. a.ExtensionID
  4848. from ICSMO a
  4849. left join (
  4850. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  4851. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='3'
  4852. where isnull(a.EATTRIBUTE1,'')=''
  4853. group by b.TransCode,b.TransSequence
  4854. ) c on a.MOCode=c.TransCode and a.Sequence=c.TransSequence
  4855. inner join dbo.ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint where a.MOCode='{0}' and a.Sequence='{1}' and a.WorkPoint='{2}'";
  4856. sqlCode = string.Format(sqlCode, Code, Sequence, WorkPoint);
  4857. DataTable dd = SqlHelper.CmdExecuteDataTable(sqlCode);
  4858. if (dd == null || dd.Rows.Count <= 0)
  4859. {
  4860. throw new Exception("第 " + index + "行单号: " + Code + "行号" + Sequence + " 单据不存在!");
  4861. }
  4862. string ExtensionID = dd.Rows[0]["ExtensionID"].ToString();
  4863. string ExpirationDate = dd.Rows[0]["ExpirationDate"].ToString();
  4864. string InvCode = dd.Rows[0]["InvCode"].ToString();
  4865. decimal CQuantity = Convert.ToDecimal(dd.Rows[0]["Quantity"].ToString());
  4866. decimal CAmount = Convert.ToDecimal(dd.Rows[0]["Amount"].ToString());
  4867. decimal CLOTQTY = Convert.ToDecimal(dd.Rows[0]["LOTQTY"].ToString());
  4868. if (Convert.ToDecimal(Quantity) > (CQuantity - CLOTQTY))
  4869. {
  4870. throw new Exception("第 " + index + "行单号: " + Code + "行号" + Sequence + " 所输入条码数量超出该单据可生成数量!");
  4871. }
  4872. var Amount = CAmount / CQuantity * Convert.ToDecimal(Quantity);
  4873. sql += @"Insert INto ICSInventoryLot
  4874. ( ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,Amount,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint)
  4875. Values (newid(),'{0}','{1}',getdate(),'{2}','{3}','{4}','{5}','3','{6}','{7}',getdate(),'{8}')
  4876. ";
  4877. sql += @" Insert INto ICSInventoryLotDetail
  4878. ( LotNo,TransID,TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  4879. Values ('{0}','','{9}','{10}','{6}','{7}',getdate(),'{8}')";
  4880. sql = string.Format(sql, LotNo, InvCode, ExpirationDate, Quantity, Amount, ExtensionID, MUSER, MUSERNAME, WorkPoint, Code, Sequence);
  4881. }
  4882. count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4883. if (count > 0)
  4884. {
  4885. msg = "导入成功";
  4886. }
  4887. else
  4888. {
  4889. return "无有效的导入数据。";
  4890. }
  4891. return msg;
  4892. }
  4893. catch (Exception ex)
  4894. {
  4895. return ex.Message;
  4896. }
  4897. }
  4898. /// <summary>
  4899. /// 生产退料(一键生成)
  4900. /// </summary>
  4901. public int SubmitFormGDTLALL(string keyValue)
  4902. {
  4903. string sql = string.Empty;
  4904. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4905. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  4906. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  4907. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  4908. foreach (var item in res)
  4909. {
  4910. JObject jo = (JObject)item;
  4911. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  4912. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  4913. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  4914. decimal LOTQTY = minPackQty;
  4915. string Pre = "MDN" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"].ToString())).ToString("D4");
  4916. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  4917. string sqls = string.Empty;
  4918. string Colspan = "";
  4919. string str1 = "";
  4920. List<string> ExtensionIDList = new List<string>();
  4921. for (int i = 0; i < createPageCount; i++)
  4922. {
  4923. if (i + 1 == createPageCount)
  4924. {
  4925. if (minPackQty * createPageCount > thisCreateQty)
  4926. {
  4927. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  4928. }
  4929. }
  4930. Colspan = jo["ProjectCode"].ToString() + "~" + jo["BatchCode"].ToString() + "~" + jo["Version"].ToString() + "~" + jo["Brand"].ToString() + "~" + jo["cFree1"].ToString() + "~" + jo["cFree2"].ToString() + "~" + jo["cFree3"].ToString() + "~" + jo["cFree4"].ToString() + "~" + jo["cFree5"].ToString() + "~" + jo["cFree6"].ToString() + "~" + jo["cFree7"].ToString() + "~" + jo["cFree8"].ToString() + "~" + jo["cFree9"].ToString() + "~" + jo["cFree10"].ToString();
  4931. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  4932. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  4933. bool flag = true;
  4934. foreach (var items in ExtensionIDList)
  4935. {
  4936. if (items == Colspan + WorkPoint)
  4937. {
  4938. flag = false;
  4939. }
  4940. }
  4941. if (ExtensionID == null && flag == true)
  4942. {
  4943. str1 = Guid.NewGuid().ToString();
  4944. 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)
  4945. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4946. str1, Colspan, jo["ProjectCode"].ToString(), jo["BatchCode"].ToString(), jo["Version"].ToString(), jo["Brand"].ToString(), jo["cFree1"].ToString(), jo["cFree2"].ToString(), jo["cFree3"].ToString(), jo["cFree4"].ToString(), jo["cFree5"].ToString(), jo["cFree6"].ToString(), jo["cFree7"].ToString(), jo["cFree8"].ToString(), jo["cFree9"].ToString(), jo["cFree10"].ToString(),
  4947. MUSER, MUSERNAME, WorkPoint);
  4948. }
  4949. else if (ExtensionID != null)
  4950. {
  4951. str1 = ExtensionID.ToString();
  4952. }
  4953. ExtensionIDList.Add(Colspan + WorkPoint);
  4954. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4955. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  4956. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  4957. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint);
  4958. sql += string.Format(@"
  4959. insert into ICSInventoryLot
  4960. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  4961. select
  4962. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','1','{3}','{4}', getdate(),'{5}','{9}'
  4963. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  4964. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  4965. sql += "\r\n";
  4966. }
  4967. }
  4968. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4969. return count;
  4970. }
  4971. /// <summary>
  4972. /// 自动生成批次信息
  4973. /// </summary>
  4974. /// <param name="InvCode"></param>
  4975. /// <param name="WorkPoint"></param>
  4976. /// <returns></returns>
  4977. public DataTable GetVendorBatch()
  4978. {
  4979. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4980. string pre = "C" + DateTime.Now.ToString("yyyyMMdd");
  4981. //var queryParam = queryJson.ToJObject();
  4982. //List<DbParameter> parameter = new List<DbParameter>();
  4983. //string dtPre = DateTime.Now.ToString("yyyyMMdd");
  4984. string sql = @"EXEC Addins_GetSerialCode '" + WorkPoint + "','ICSInventoryLot','BatchCode','" + pre + "',4";
  4985. return Repository().FindTableBySql(sql.ToString());
  4986. }
  4987. public DataTable GetVendorBatchBYInvCode(string InvCode, string WorkPoint)
  4988. {
  4989. DataTable dt = new DataTable();
  4990. string sqlClass = "SELECT EATTRIBUTE1 FROM ICSInventory WHERE InvCode='{0}'and WorkPoint='{1}'";
  4991. sqlClass = string.Format(sqlClass, InvCode, WorkPoint);
  4992. DataTable dtClass = SqlHelper.GetDataTableBySql(sqlClass);
  4993. string pre = dtClass.Rows[0]["EATTRIBUTE1"].ToString() + DateTime.Now.ToString("yyyyMMdd");
  4994. //var queryParam = queryJson.ToJObject();
  4995. //List<DbParameter> parameter = new List<DbParameter>();
  4996. //string dtPre = DateTime.Now.ToString("yyyyMMdd");
  4997. string sql = @"EXEC Addins_GetSerialCode '" + WorkPoint + "','ICSInventoryLot','BatchCode','" + pre + "',4";
  4998. return Repository().FindTableBySql(sql.ToString());
  4999. }
  5000. public DataTable GetVendorBatchBYInvCodeZZ(string InvCode, string WorkPoint)
  5001. {
  5002. DataTable dt = new DataTable();
  5003. string sqlClass = "SELECT EATTRIBUTE1 FROM ICSInventory WHERE InvCode='{0}'and WorkPoint='{1}'";
  5004. sqlClass = string.Format(sqlClass, InvCode, WorkPoint);
  5005. DataTable dtClass = SqlHelper.GetDataTableBySql(sqlClass);
  5006. if (dtClass.Rows.Count > 0)
  5007. {
  5008. string QZ = SqlHelper.GetZZNumber(dtClass.Rows[0]["EATTRIBUTE1"].ToString());
  5009. string pre = QZ + DateTime.Now.ToString("yyyyMMdd");
  5010. //var queryParam = queryJson.ToJObject();
  5011. //List<DbParameter> parameter = new List<DbParameter>();
  5012. //string dtPre = DateTime.Now.ToString("yyyyMMdd");
  5013. string sql = @"EXEC Addins_GetSerialCode '" + WorkPoint + "','ICSInventoryLot','BatchCode','" + pre + "',3";
  5014. return Repository().FindTableBySql(sql.ToString());
  5015. }
  5016. else
  5017. {
  5018. throw new Exception("物料档案不存在!!!");
  5019. }
  5020. }
  5021. public DataTable GetVendorBatchBYInvCodeWG(string InvCode, string WorkPoint, string InCode, string Sequence)
  5022. {
  5023. DataTable inCodetable;
  5024. //获取杂收单号信息
  5025. string inCodeSql = $@"SELECT b.BatchCode,a.EATTRIBUTE2 FROM ICSOtherIn a
  5026. left JOIN ICSExtension b ON a.ExtensionID = b.ID
  5027. WHERE a.InCode = '{InCode}' AND a.Sequence = '{Sequence}' ";
  5028. inCodetable = SqlHelper.CmdExecuteDataTable(inCodeSql);
  5029. if (inCodetable.Rows.Count < 0)
  5030. {
  5031. throw new Exception($"单据:{InvCode} 信息不存在");
  5032. }
  5033. #region 验证指定类型的单据类型批次必填
  5034. string typecheckString = @"SELECT b.F_ItemCode FROM Sys_SRM_Items a
  5035. INNER JOIN Sys_SRM_ItemsDetail b ON a.F_Id = b.F_ItemId
  5036. WHERE a.F_EnCode = 'ICSOherIn' ";
  5037. DataTable datatable = SqlHelper.CmdExecuteDataTable(typecheckString);
  5038. #endregion
  5039. var typecheck = datatable.Select("F_ItemCode = '" + inCodetable?.Rows[0]["EATTRIBUTE2"].ToString() + "'");
  5040. if (typecheck.Length > 0)
  5041. {
  5042. return inCodetable;
  5043. }
  5044. else
  5045. {
  5046. string sqlClass = "SELECT EATTRIBUTE1 FROM ICSInventory WHERE InvCode='{0}'and WorkPoint='{1}'";
  5047. sqlClass = string.Format(sqlClass, InvCode, WorkPoint);
  5048. DataTable dtClass = SqlHelper.GetDataTableBySql(sqlClass);
  5049. if (dtClass.Rows.Count > 0)
  5050. {
  5051. string QZ = SqlHelper.GetWGNumber(dtClass.Rows[0]["EATTRIBUTE1"].ToString());
  5052. string pre = QZ + DateTime.Now.ToString("yyyyMMdd");
  5053. //var queryParam = queryJson.ToJObject();
  5054. //List<DbParameter> parameter = new List<DbParameter>();
  5055. //string dtPre = DateTime.Now.ToString("yyyyMMdd");
  5056. string sql = @"EXEC Addins_GetSerialCode '" + WorkPoint + "','ICSInventoryLot','BatchCode','" + pre + "',3";
  5057. inCodetable = Repository().FindTableBySql(sql.ToString());
  5058. }
  5059. else
  5060. {
  5061. throw new Exception("物料档案不存在!!!");
  5062. }
  5063. }
  5064. return inCodetable;
  5065. }
  5066. }
  5067. }