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.

4960 lines
305 KiB

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