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.

4954 lines
305 KiB

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. from ICSODeliveryNotice a
  1240. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1241. left join (
  1242. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  1243. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='8'
  1244. where isnull(ee.EATTRIBUTE1,'')=''
  1245. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  1246. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  1247. inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  1248. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  1249. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1250. where a.ODNType='1' and a.Status='2' and a.OASNCode is null";
  1251. sql = string.Format(sql, Figure);
  1252. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  1253. #endregion
  1254. if (!string.IsNullOrWhiteSpace(queryJson))
  1255. {
  1256. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1257. {
  1258. sql += " and a.ODNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1259. }
  1260. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  1261. {
  1262. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  1263. }
  1264. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  1265. {
  1266. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  1267. }
  1268. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1269. {
  1270. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1271. }
  1272. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  1273. {
  1274. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  1275. }
  1276. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  1277. {
  1278. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  1279. }
  1280. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  1281. {
  1282. string POStatus = queryParam["POStatus"].ToString();
  1283. if (POStatus == "0")
  1284. {
  1285. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  1286. }
  1287. else if (POStatus == "1")
  1288. {
  1289. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  1290. }
  1291. else
  1292. {
  1293. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  1294. }
  1295. }
  1296. }
  1297. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1298. {
  1299. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1300. }
  1301. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  1302. {
  1303. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  1304. }
  1305. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1306. }
  1307. //开立得成品入库单
  1308. public DataTable GetGridJsonKLCPRK(string queryJson, ref Pagination jqgridparam)
  1309. {
  1310. DataTable dt = new DataTable();
  1311. var queryParam = queryJson.ToJObject();
  1312. List<DbParameter> parameter = new List<DbParameter>();
  1313. object Figure = GetDecimalDigits();
  1314. #region [SQL]
  1315. string sql = @"
  1316. 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 ,
  1317. 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
  1318. ,b.EffectiveEnable,b.EffectiveDays
  1319. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1320. ,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,
  1321. a.EATTRIBUTE9,a.EATTRIBUTE10
  1322. from ICSManufactureReceive a
  1323. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1324. left join (
  1325. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  1326. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='9'
  1327. where isnull(ee.EATTRIBUTE1,'')=''
  1328. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  1329. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  1330. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1331. where a.Status='1' and a.Type='1'";
  1332. sql = string.Format(sql, Figure);
  1333. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  1334. #endregion
  1335. if (!string.IsNullOrWhiteSpace(queryJson))
  1336. {
  1337. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1338. {
  1339. sql += " and a.RCVCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1340. }
  1341. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1342. {
  1343. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1344. }
  1345. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  1346. {
  1347. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  1348. }
  1349. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  1350. {
  1351. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  1352. }
  1353. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  1354. {
  1355. string POStatus = queryParam["POStatus"].ToString();
  1356. if (POStatus == "0")
  1357. {
  1358. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  1359. }
  1360. else if (POStatus == "1")
  1361. {
  1362. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  1363. }
  1364. else
  1365. {
  1366. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  1367. }
  1368. }
  1369. }
  1370. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1371. {
  1372. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1373. }
  1374. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  1375. {
  1376. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  1377. }
  1378. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1379. }
  1380. /// <summary>
  1381. /// 点击审核委外到货单生成条码(审核委外到货单)
  1382. /// </summary>
  1383. public DataTable GetSubGridJsonWWSHDHByCreate(string ODNCode, string Sequence, string WorkPoint)
  1384. {
  1385. DataTable dt = new DataTable();
  1386. object Figure = GetDecimalDigits();
  1387. List<DbParameter> parameter = new List<DbParameter>();
  1388. 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,
  1389. CAST( (a.Quantity-ISNULL(c.LOTQTY,0)) as DECIMAL(18,{0})) as thisCreateQty,
  1390. 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,
  1391. isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,{0})) as EffectiveDays
  1392. ,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
  1393. from ICSODeliveryNotice a
  1394. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1395. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  1396. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='8'
  1397. where isnull(a.EATTRIBUTE1,'')=''
  1398. group by b.TransCode,b.TransSequence
  1399. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence
  1400. left join ICSConfiguration e on e.Code='CompleteVerification002' and a.WorkPoint =e.WorkPoint
  1401. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  1402. WHERE 1 =1
  1403. and a.ODNCode='" + ODNCode + "' and a.Sequence='" + Sequence + "'";
  1404. sql += " and a.WorkPoint='" + WorkPoint + "'";
  1405. sql = string.Format(sql, Figure);
  1406. return Repository().FindTableBySql(sql.ToString());
  1407. }
  1408. /// <summary>
  1409. /// 点击开立成品入库生成条码(开立成品入库单)
  1410. /// </summary>
  1411. /// //--
  1412. public DataTable GetSubGridJsonKLCPRKByCreate(string RCVCode, string Sequence, string WorkPoint)
  1413. {
  1414. DataTable dt = new DataTable();
  1415. object Figure = GetDecimalDigits();
  1416. List<DbParameter> parameter = new List<DbParameter>();
  1417. 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,
  1418. 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
  1419. ,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
  1420. from ICSManufactureReceive a
  1421. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1422. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  1423. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='9'
  1424. where isnull(a.EATTRIBUTE1,'')=''
  1425. group by b.TransCode,b.TransSequence
  1426. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence
  1427. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  1428. WHERE 1 =1
  1429. and a.RCVCode='" + RCVCode + "' and a.Sequence='" + Sequence + "'";
  1430. sql += " and a.WorkPoint='" + WorkPoint + "'";
  1431. sql = string.Format(sql, Figure);
  1432. return Repository().FindTableBySql(sql.ToString());
  1433. }
  1434. /// <summary>
  1435. /// 点击审核到货单生成条码(审核到货单)
  1436. /// </summary>
  1437. public DataTable GetSubGridJsonSHDHByCreate(string DNCode, string Sequence, string WorkPoint)
  1438. {
  1439. DataTable dt = new DataTable();
  1440. object Figure = GetDecimalDigits();
  1441. List<DbParameter> parameter = new List<DbParameter>();
  1442. 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,
  1443. CAST( (a.Quantity-ISNULL(c.LOTQTY,0)) as DECIMAL(18,{0})) as thisCreateQty,
  1444. 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,
  1445. isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,{0})) as EffectiveDays
  1446. ,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
  1447. from ICSDeliveryNotice a
  1448. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1449. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  1450. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='7'
  1451. where isnull(a.EATTRIBUTE1,'')=''
  1452. group by b.TransCode,b.TransSequence
  1453. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence
  1454. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  1455. WHERE 1 =1
  1456. and a.DNCode='" + DNCode + "' and a.Sequence='" + Sequence + "'";
  1457. sql += " and a.WorkPoint='" + WorkPoint + "'";
  1458. sql = string.Format(sql, Figure);
  1459. return Repository().FindTableBySql(sql.ToString());
  1460. }
  1461. /// <summary>
  1462. /// 点击归还生成条码(归还)
  1463. /// </summary>
  1464. public DataTable GetSubGridJsonGuiHuanByCreate(string ReturnCode, string Sequence, string WorkPoint)
  1465. {
  1466. DataTable dt = new DataTable();
  1467. object Figure = GetDecimalDigits();
  1468. List<DbParameter> parameter = new List<DbParameter>();
  1469. 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,
  1470. 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
  1471. ,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
  1472. from ICSReturn a
  1473. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1474. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  1475. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='6'
  1476. where isnull(a.EATTRIBUTE1,'')=''
  1477. group by b.TransCode,b.TransSequence
  1478. ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence
  1479. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  1480. WHERE 1 =1
  1481. and a.ReturnCode='" + ReturnCode + "' and a.Sequence='" + Sequence + "'";
  1482. sql += " and a.WorkPoint='" + WorkPoint + "'";
  1483. sql = string.Format(sql, Figure);
  1484. return Repository().FindTableBySql(sql.ToString());
  1485. }
  1486. /// <summary>
  1487. /// 归还单生成条码
  1488. /// </summary>
  1489. /// <param name="POCode"></param>
  1490. /// <param name="PORow"></param>
  1491. /// <param name="keyValue"></param>
  1492. /// 已改
  1493. /// <returns></returns>
  1494. public int SubmitFormGuiHuan(string ReturnCode, string Sequence, string keyValue, string WorkPoint)
  1495. {
  1496. var queryParam = keyValue.ToJObject();
  1497. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1498. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1499. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1500. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1501. decimal LOTQTY = minPackQty;
  1502. string Pre = "GH" + ReturnCode + (Convert.ToInt32(Sequence)).ToString("D4");
  1503. string sql = string.Empty;
  1504. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1505. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1506. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1507. string sqls = string.Empty;
  1508. string Colspan = "";
  1509. string str1="";
  1510. List<string> ExtensionIDList = new List<string>();
  1511. for (int i = 0; i < createPageCount; i++)
  1512. {
  1513. if (i + 1 == createPageCount)
  1514. {
  1515. if (minPackQty * createPageCount > thisCreateQty)
  1516. {
  1517. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1518. }
  1519. }
  1520. 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();
  1521. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1522. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1523. bool flag = true;
  1524. foreach (var item in ExtensionIDList)
  1525. {
  1526. if (item == Colspan + WorkPoint)
  1527. {
  1528. flag = false;
  1529. }
  1530. }
  1531. if (ExtensionID == null && flag == true)
  1532. {
  1533. str1 = Guid.NewGuid().ToString();
  1534. 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)
  1535. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1536. 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(),
  1537. MUSER, MUSERNAME, WorkPoints);
  1538. }
  1539. else if (ExtensionID != null)
  1540. {
  1541. str1 = ExtensionID.ToString();
  1542. }
  1543. ExtensionIDList.Add(Colspan + WorkPoint);
  1544. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  1545. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  1546. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  1547. LotNo, ReturnCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  1548. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  1549. //{
  1550. sql += string.Format(@"
  1551. insert into ICSInventoryLot
  1552. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1553. select
  1554. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','6','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1555. from ICSReturn where ReturnCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  1556. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ReturnCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString())/ minPackQty* LOTQTY, queryParam["ExpirationDate"].ToString()
  1557. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1558. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1559. sql += "\r\n";
  1560. //}
  1561. }
  1562. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1563. return count;
  1564. }
  1565. /// <summary>
  1566. /// 审核到货单生成条码
  1567. /// </summary>
  1568. /// <param name="POCode"></param>
  1569. /// <param name="PORow"></param>
  1570. /// <param name="keyValue"></param>
  1571. /// 2023 1117 传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则 lacy.xu
  1572. /// <returns></returns>
  1573. public int SubmitFormSHDH(string DNCode, string Sequence, string keyValue, string WorkPoint,string AMEnable)
  1574. {
  1575. var queryParam = keyValue.ToJObject();
  1576. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1577. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1578. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1579. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1580. decimal LOTQTY = minPackQty;
  1581. string Pre = "DN" + DNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  1582. string sql = string.Empty;
  1583. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1584. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1585. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1586. string InvCode = queryParam["ClassCode"].ToString();
  1587. string sqls = string.Empty;
  1588. string Colspan = "";
  1589. string str1 = "";
  1590. string LotNo = string.Empty;
  1591. List<string> ExtensionIDList = new List<string>();
  1592. for (int i = 0; i < createPageCount; i++)
  1593. {
  1594. if (i + 1 == createPageCount)
  1595. {
  1596. if (minPackQty * createPageCount > thisCreateQty)
  1597. {
  1598. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1599. }
  1600. }
  1601. 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();
  1602. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1603. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1604. bool flag = true;
  1605. foreach (var item in ExtensionIDList)
  1606. {
  1607. if (item == Colspan + WorkPoint)
  1608. {
  1609. flag = false;
  1610. }
  1611. }
  1612. if (ExtensionID == null && flag == true)
  1613. {
  1614. str1 = Guid.NewGuid().ToString();
  1615. 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)
  1616. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1617. 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(),
  1618. MUSER, MUSERNAME, WorkPoints);
  1619. }
  1620. else if (ExtensionID != null)
  1621. {
  1622. str1 = ExtensionID.ToString();
  1623. }
  1624. ExtensionIDList.Add(Colspan + WorkPoint);
  1625. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1626. if (AMEnable == "true")
  1627. {
  1628. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  1629. }
  1630. else
  1631. {
  1632. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  1633. }
  1634. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  1635. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  1636. LotNo, DNCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  1637. sql += string.Format(@"
  1638. insert into ICSInventoryLot
  1639. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1640. select
  1641. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','7','{3}','{4}', getdate(),'{5}','{9}'
  1642. ,'{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1643. from ICSDeliveryNotice where DNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  1644. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, DNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString())/ minPackQty* LOTQTY, queryParam["ExpirationDate"].ToString()
  1645. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1646. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1647. sql += "\r\n";
  1648. }
  1649. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1650. return count;
  1651. }
  1652. /// <summary>
  1653. /// 审核委外到货单生成条码
  1654. /// </summary>
  1655. /// <param name="POCode"></param>
  1656. /// <param name="PORow"></param>
  1657. /// <param name="keyValue"></param>
  1658. /// 已改
  1659. /// <returns></returns>
  1660. /// 2023 1117 传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则 lacy.xu
  1661. public int SubmitFormWWSHDH(string ODNCode, string Sequence, string keyValue, string WorkPoint,string AMEnable)
  1662. {
  1663. var queryParam = keyValue.ToJObject();
  1664. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1665. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1666. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1667. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1668. decimal LOTQTY = minPackQty;
  1669. string Pre = "ODN" + ODNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  1670. string sql = string.Empty;
  1671. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1672. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1673. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1674. string InvCode = queryParam["ClassCode"].ToString();
  1675. string sqls = string.Empty;
  1676. string Colspan = "";
  1677. string str1 = "";
  1678. string LotNo = string.Empty;
  1679. List<string> ExtensionIDList = new List<string>();
  1680. for (int i = 0; i < createPageCount; i++)
  1681. {
  1682. if (i + 1 == createPageCount)
  1683. {
  1684. if (minPackQty * createPageCount > thisCreateQty)
  1685. {
  1686. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1687. }
  1688. }
  1689. 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();
  1690. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1691. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1692. bool flag = true;
  1693. foreach (var item in ExtensionIDList)
  1694. {
  1695. if (item == Colspan + WorkPoint)
  1696. {
  1697. flag = false;
  1698. }
  1699. }
  1700. if (ExtensionID == null && flag == true)
  1701. {
  1702. str1 = Guid.NewGuid().ToString();
  1703. 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)
  1704. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1705. 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(),
  1706. MUSER, MUSERNAME, WorkPoints);
  1707. }
  1708. else if (ExtensionID != null)
  1709. {
  1710. str1 = ExtensionID.ToString();
  1711. }
  1712. ExtensionIDList.Add(Colspan + WorkPoint);
  1713. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1714. if (AMEnable == "true")
  1715. {
  1716. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  1717. }
  1718. else
  1719. {
  1720. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  1721. }
  1722. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  1723. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  1724. LotNo, ODNCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  1725. sql += string.Format(@"
  1726. insert into ICSInventoryLot
  1727. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1728. select
  1729. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','8','{3}','{4}', getdate(),'{5}','{9}'
  1730. ,'{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1731. from ICSODeliveryNotice where ODNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  1732. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ODNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString())/ minPackQty* LOTQTY, queryParam["ExpirationDate"].ToString()
  1733. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1734. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1735. sql += "\r\n";
  1736. }
  1737. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1738. return count;
  1739. }
  1740. /// <summary>
  1741. /// 开立成品入库单
  1742. /// </summary>
  1743. /// <param name="POCode"></param>
  1744. /// <param name="PORow"></param>
  1745. /// <param name="keyValue"></param>
  1746. /// 已改
  1747. /// <returns></returns>
  1748. public int SubmitFormKLCPRK(string RCVCode, string Sequence, string keyValue, string WorkPoint)
  1749. {
  1750. var queryParam = keyValue.ToJObject();
  1751. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1752. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1753. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1754. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1755. decimal LOTQTY = minPackQty;
  1756. string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4");
  1757. string sql = string.Empty;
  1758. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1759. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1760. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1761. string sqls = string.Empty;
  1762. string Colspan = "";
  1763. string str1 = "";
  1764. List<string> ExtensionIDList = new List<string>();
  1765. for (int i = 0; i < createPageCount; i++)
  1766. {
  1767. if (i + 1 == createPageCount)
  1768. {
  1769. if (minPackQty * createPageCount > thisCreateQty)
  1770. {
  1771. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1772. }
  1773. }
  1774. 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();
  1775. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1776. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1777. bool flag = true;
  1778. foreach (var item in ExtensionIDList)
  1779. {
  1780. if (item == Colspan + WorkPoint)
  1781. {
  1782. flag = false;
  1783. }
  1784. }
  1785. if (ExtensionID == null && flag == true)
  1786. {
  1787. str1 = Guid.NewGuid().ToString();
  1788. 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)
  1789. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1790. 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(),
  1791. MUSER, MUSERNAME, WorkPoints);
  1792. }
  1793. else if (ExtensionID != null)
  1794. {
  1795. str1 = ExtensionID.ToString();
  1796. }
  1797. ExtensionIDList.Add(Colspan + WorkPoint);
  1798. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  1799. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  1800. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  1801. LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  1802. sql += string.Format(@"
  1803. insert into ICSInventoryLot
  1804. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1805. select
  1806. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','9','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1807. from ICSManufactureReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  1808. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString())/ minPackQty* LOTQTY, queryParam["ExpirationDate"].ToString()
  1809. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1810. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1811. sql += "\r\n";
  1812. }
  1813. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1814. return count;
  1815. }
  1816. //委外拒收单
  1817. public DataTable GetGridJsonWWJSD(string queryJson, ref Pagination jqgridparam)
  1818. {
  1819. DataTable dt = new DataTable();
  1820. var queryParam = queryJson.ToJObject();
  1821. List<DbParameter> parameter = new List<DbParameter>();
  1822. object Figure = GetDecimalDigits();
  1823. #region [SQL]
  1824. 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,
  1825. 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
  1826. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1827. ,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,
  1828. a.EATTRIBUTE9,a.EATTRIBUTE10
  1829. from ICSODeliveryNotice a
  1830. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1831. left join (
  1832. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  1833. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='11'
  1834. where isnull(ee.EATTRIBUTE1,'')=''
  1835. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  1836. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  1837. --inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  1838. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  1839. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1840. where a.ODNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  1841. ";
  1842. sql = string.Format(sql, Figure);
  1843. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  1844. #endregion
  1845. if (!string.IsNullOrWhiteSpace(queryJson))
  1846. {
  1847. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1848. {
  1849. sql += " and a.ODNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1850. }
  1851. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  1852. {
  1853. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  1854. }
  1855. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  1856. {
  1857. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  1858. }
  1859. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1860. {
  1861. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1862. }
  1863. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  1864. {
  1865. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  1866. }
  1867. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  1868. {
  1869. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  1870. }
  1871. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  1872. {
  1873. string POStatus = queryParam["POStatus"].ToString();
  1874. if (POStatus == "0")
  1875. {
  1876. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  1877. }
  1878. else if (POStatus == "1")
  1879. {
  1880. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  1881. }
  1882. else
  1883. {
  1884. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  1885. }
  1886. }
  1887. }
  1888. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1889. {
  1890. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1891. }
  1892. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  1893. {
  1894. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  1895. }
  1896. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1897. }
  1898. //拒收单
  1899. public DataTable GetGridJsonJSD(string queryJson, ref Pagination jqgridparam)
  1900. {
  1901. DataTable dt = new DataTable();
  1902. var queryParam = queryJson.ToJObject();
  1903. List<DbParameter> parameter = new List<DbParameter>();
  1904. object Figure = GetDecimalDigits();
  1905. #region [SQL]
  1906. string sql = @"select a.ID,a.DNCode ,a.Sequence ,a.VenCode,e.VenName,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
  1907. 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,
  1908. CAST(c.LOTQTY AS DECIMAL(18,{0})) as LOTQTY
  1909. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1910. ,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,
  1911. a.EATTRIBUTE9,a.EATTRIBUTE10
  1912. from ICSDeliveryNotice a
  1913. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1914. left join (
  1915. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  1916. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='10'
  1917. where isnull(ee.EATTRIBUTE1,'')=''
  1918. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  1919. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  1920. --inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  1921. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  1922. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1923. where a.DNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  1924. ";
  1925. sql = string.Format(sql, Figure);
  1926. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  1927. #endregion
  1928. if (!string.IsNullOrWhiteSpace(queryJson))
  1929. {
  1930. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1931. {
  1932. sql += " and a.DNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1933. }
  1934. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  1935. {
  1936. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  1937. }
  1938. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  1939. {
  1940. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  1941. }
  1942. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1943. {
  1944. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1945. }
  1946. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  1947. {
  1948. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  1949. }
  1950. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  1951. {
  1952. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  1953. }
  1954. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  1955. {
  1956. string POStatus = queryParam["POStatus"].ToString();
  1957. if (POStatus == "0")
  1958. {
  1959. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  1960. }
  1961. else if (POStatus == "1")
  1962. {
  1963. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  1964. }
  1965. else
  1966. {
  1967. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  1968. }
  1969. }
  1970. }
  1971. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1972. {
  1973. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1974. }
  1975. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  1976. {
  1977. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  1978. }
  1979. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1980. }
  1981. //领料申请退料
  1982. public DataTable GetGridJsonLLSQTL(string queryJson, ref Pagination jqgridparam)
  1983. {
  1984. DataTable dt = new DataTable();
  1985. var queryParam = queryJson.ToJObject();
  1986. List<DbParameter> parameter = new List<DbParameter>();
  1987. object Figure = GetDecimalDigits();
  1988. #region [SQL]
  1989. string sql = @"select a.ID,a.ApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  1990. 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
  1991. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1992. ,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,
  1993. a.EATTRIBUTE9,a.EATTRIBUTE10
  1994. from ICSMOApplyNegDetail a
  1995. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  1996. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1997. left join (
  1998. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  1999. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='12'
  2000. where isnull(ee.EATTRIBUTE1,'')=''
  2001. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2002. )c
  2003. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2004. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2005. WHERE d.Type='2'";
  2006. sql = string.Format(sql, Figure);
  2007. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  2008. #endregion
  2009. if (!string.IsNullOrWhiteSpace(queryJson))
  2010. {
  2011. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2012. {
  2013. sql += " and a.ApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2014. }
  2015. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2016. {
  2017. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2018. }
  2019. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2020. {
  2021. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2022. }
  2023. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2024. {
  2025. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2026. }
  2027. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  2028. {
  2029. string POStatus = queryParam["POStatus"].ToString();
  2030. if (POStatus == "0")
  2031. {
  2032. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2033. }
  2034. else if (POStatus == "1")
  2035. {
  2036. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  2037. }
  2038. else
  2039. {
  2040. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  2041. }
  2042. }
  2043. }
  2044. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2045. {
  2046. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2047. }
  2048. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2049. {
  2050. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2051. }
  2052. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2053. }
  2054. /// <summary>
  2055. /// 拒收生成条码
  2056. /// </summary>
  2057. /// <param name="POCode"></param>
  2058. /// <param name="PORow"></param>
  2059. /// <param name="keyValue"></param>
  2060. /// <returns></returns>
  2061. public int SubmitFormJSD(string DNCode, string Sequence, string keyValue, string WorkPoint)
  2062. {
  2063. var queryParam = keyValue.ToJObject();
  2064. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2065. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2066. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2067. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2068. decimal LOTQTY = minPackQty;
  2069. string Pre = "JS" + DNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  2070. string sql = string.Empty;
  2071. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2072. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2073. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2074. string sqls = string.Empty;
  2075. string Colspan = "";
  2076. string str1 = "";
  2077. List<string> ExtensionIDList = new List<string>();
  2078. for (int i = 0; i < createPageCount; i++)
  2079. {
  2080. if (i + 1 == createPageCount)
  2081. {
  2082. if (minPackQty * createPageCount > thisCreateQty)
  2083. {
  2084. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  2085. }
  2086. }
  2087. 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();
  2088. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  2089. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2090. bool flag = true;
  2091. foreach (var item in ExtensionIDList)
  2092. {
  2093. if (item == Colspan + WorkPoint)
  2094. {
  2095. flag = false;
  2096. }
  2097. }
  2098. if (ExtensionID == null && flag == true)
  2099. {
  2100. str1 = Guid.NewGuid().ToString();
  2101. 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)
  2102. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2103. 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(),
  2104. MUSER, MUSERNAME, WorkPoints);
  2105. }
  2106. else if (ExtensionID != null)
  2107. {
  2108. str1 = ExtensionID.ToString();
  2109. }
  2110. ExtensionIDList.Add(Colspan + WorkPoint);
  2111. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  2112. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  2113. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  2114. LotNo, DNCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  2115. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  2116. //{
  2117. sql += string.Format(@"
  2118. insert into ICSInventoryLot
  2119. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  2120. select
  2121. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','10','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  2122. from ICSDeliveryNotice where DNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  2123. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, DNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString())/ minPackQty* LOTQTY, queryParam["ExpirationDate"].ToString()
  2124. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  2125. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  2126. sql += "\r\n";
  2127. //}
  2128. }
  2129. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2130. return count;
  2131. }
  2132. /// <summary>
  2133. /// 委外拒收生成条码
  2134. /// </summary>
  2135. /// <param name="POCode"></param>
  2136. /// <param name="PORow"></param>
  2137. /// <param name="keyValue"></param>
  2138. /// <returns></returns>
  2139. public int SubmitFormWWJSD(string ODNCode, string Sequence, string keyValue, string WorkPoint)
  2140. {
  2141. var queryParam = keyValue.ToJObject();
  2142. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2143. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2144. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2145. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2146. decimal LOTQTY = minPackQty;
  2147. string Pre = "OJS" + ODNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  2148. string sql = string.Empty;
  2149. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2150. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2151. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2152. string sqls = string.Empty;
  2153. string Colspan = "";
  2154. string str1 = "";
  2155. List<string> ExtensionIDList = new List<string>();
  2156. for (int i = 0; i < createPageCount; i++)
  2157. {
  2158. if (i + 1 == createPageCount)
  2159. {
  2160. if (minPackQty * createPageCount > thisCreateQty)
  2161. {
  2162. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  2163. }
  2164. }
  2165. 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();
  2166. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  2167. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2168. bool flag = true;
  2169. foreach (var item in ExtensionIDList)
  2170. {
  2171. if (item == Colspan + WorkPoint)
  2172. {
  2173. flag = false;
  2174. }
  2175. }
  2176. if (ExtensionID == null && flag == true)
  2177. {
  2178. str1 = Guid.NewGuid().ToString();
  2179. 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)
  2180. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2181. 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(),
  2182. MUSER, MUSERNAME, WorkPoints);
  2183. }
  2184. else if (ExtensionID != null)
  2185. {
  2186. str1 = ExtensionID.ToString();
  2187. }
  2188. ExtensionIDList.Add(Colspan + WorkPoint);
  2189. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  2190. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  2191. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  2192. LotNo, ODNCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  2193. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  2194. //{
  2195. sql += string.Format(@"
  2196. insert into ICSInventoryLot
  2197. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  2198. select
  2199. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','11','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  2200. from ICSODeliveryNotice where ODNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  2201. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ODNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString())/ minPackQty* LOTQTY, queryParam["ExpirationDate"].ToString()
  2202. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  2203. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  2204. sql += "\r\n";
  2205. //}
  2206. }
  2207. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2208. return count;
  2209. }
  2210. /// <summary>
  2211. /// 点击审核到货单生成条码(审核到货单)
  2212. /// </summary>
  2213. public DataTable GetSubGridJsonJSDByCreate(string DNCode, string Sequence, string WorkPoint)
  2214. {
  2215. DataTable dt = new DataTable();
  2216. object Figure = GetDecimalDigits();
  2217. List<DbParameter> parameter = new List<DbParameter>();
  2218. 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,
  2219. 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
  2220. ,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
  2221. from ICSDeliveryNotice a
  2222. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2223. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2224. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='10'
  2225. where isnull(a.EATTRIBUTE1,'')=''
  2226. group by b.TransCode,b.TransSequence
  2227. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence
  2228. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  2229. WHERE a.DNType='3'
  2230. and a.DNCode='" + DNCode + "' and a.Sequence='" + Sequence + "'";
  2231. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2232. sql = string.Format(sql, Figure);
  2233. return Repository().FindTableBySql(sql.ToString());
  2234. }
  2235. /// <summary>
  2236. /// 点击审核委外到货单生成条码(审核委外到货单)
  2237. /// </summary>
  2238. public DataTable GetSubGridJsonWWJSDByCreate(string ODNCode, string Sequence, string WorkPoint)
  2239. {
  2240. DataTable dt = new DataTable();
  2241. object Figure = GetDecimalDigits();
  2242. List<DbParameter> parameter = new List<DbParameter>();
  2243. 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,
  2244. 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
  2245. ,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
  2246. from ICSODeliveryNotice a
  2247. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2248. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2249. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='11'
  2250. where isnull(a.EATTRIBUTE1,'')=''
  2251. group by b.TransCode,b.TransSequence
  2252. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence
  2253. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  2254. WHERE a.ODNType='3'
  2255. and a.ODNCode='" + ODNCode + "' and a.Sequence='" + Sequence + "'";
  2256. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2257. sql = string.Format(sql, Figure);
  2258. return Repository().FindTableBySql(sql.ToString());
  2259. }
  2260. public DataTable GetSubGridJsonLLSQDByCreate(string ApplyNegCode, string Sequence, string WorkPoint)
  2261. {
  2262. DataTable dt = new DataTable();
  2263. object Figure = GetDecimalDigits();
  2264. List<DbParameter> parameter = new List<DbParameter>();
  2265. 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,
  2266. 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
  2267. ,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
  2268. from ICSMOApplyNegDetail a
  2269. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  2270. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2271. left join (
  2272. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2273. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='12'
  2274. where isnull(a.EATTRIBUTE1,'')=''
  2275. group by b.TransCode,b.TransSequence
  2276. ) c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  2277. left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  2278. WHERE d.Type='2'
  2279. and a.ApplyNegCode='" + ApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  2280. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2281. sql = string.Format(sql, Figure);
  2282. return Repository().FindTableBySql(sql.ToString());
  2283. }
  2284. //领料申请退料生成条码
  2285. public int SubmitFormLLSQTL(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  2286. {
  2287. var queryParam = keyValue.ToJObject();
  2288. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2289. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2290. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2291. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2292. decimal LOTQTY = minPackQty;
  2293. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  2294. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  2295. string Pre = "MA" + ApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  2296. string sql = string.Empty;
  2297. //string VendorLot = queryParam["VendorLot"].ToString();
  2298. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2299. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2300. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2301. string sqls = string.Empty;
  2302. string Colspan = "";
  2303. string str1 = "";
  2304. List<string> ExtensionIDList = new List<string>();
  2305. for (int i = 0; i < createPageCount; i++)
  2306. {
  2307. if (i + 1 == createPageCount)
  2308. {
  2309. if (minPackQty * createPageCount > thisCreateQty)
  2310. {
  2311. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  2312. }
  2313. }
  2314. 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();
  2315. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  2316. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2317. bool flag = true;
  2318. foreach (var item in ExtensionIDList)
  2319. {
  2320. if (item == Colspan + WorkPoint)
  2321. {
  2322. flag = false;
  2323. }
  2324. }
  2325. if (ExtensionID == null && flag == true)
  2326. {
  2327. str1 = Guid.NewGuid().ToString();
  2328. 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)
  2329. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2330. 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(),
  2331. MUSER, MUSERNAME, WorkPoints);
  2332. }
  2333. else if (ExtensionID != null)
  2334. {
  2335. str1 = ExtensionID.ToString();
  2336. }
  2337. ExtensionIDList.Add(Colspan + WorkPoint);
  2338. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  2339. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  2340. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  2341. LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  2342. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  2343. //{
  2344. sql += string.Format(@"insert into ICSInventoryLot
  2345. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  2346. select
  2347. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','12','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  2348. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  2349. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString())/ minPackQty* LOTQTY, queryParam["ExpirationDate"].ToString()
  2350. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  2351. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  2352. sql += "\r\n";
  2353. //}
  2354. }
  2355. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2356. return count;
  2357. }
  2358. //材料出库退料
  2359. public DataTable GetGridJsonCLCK(string queryJson, ref Pagination jqgridparam)
  2360. {
  2361. DataTable dt = new DataTable();
  2362. var queryParam = queryJson.ToJObject();
  2363. List<DbParameter> parameter = new List<DbParameter>();
  2364. object Figure = GetDecimalDigits();
  2365. #region [SQL]
  2366. string sql = @"
  2367. select a.ID,a.ApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  2368. CAST(a.Quantity AS DECIMAL(18,{0})) as Quantity ,
  2369. 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
  2370. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2371. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  2372. from ICSMOApplyNegDetail a
  2373. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  2374. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2375. left join (
  2376. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2377. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='13'
  2378. where isnull(ee.EATTRIBUTE1,'')=''
  2379. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2380. )c
  2381. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2382. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2383. WHERE d.Type='3'";
  2384. sql = string.Format(sql, Figure);
  2385. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  2386. #endregion
  2387. if (!string.IsNullOrWhiteSpace(queryJson))
  2388. {
  2389. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2390. {
  2391. sql += " and a.ApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2392. }
  2393. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2394. {
  2395. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2396. }
  2397. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2398. {
  2399. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2400. }
  2401. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2402. {
  2403. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2404. }
  2405. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  2406. {
  2407. string POStatus = queryParam["POStatus"].ToString();
  2408. if (POStatus == "0")
  2409. {
  2410. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2411. }
  2412. else if (POStatus == "1")
  2413. {
  2414. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  2415. }
  2416. else
  2417. {
  2418. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  2419. }
  2420. }
  2421. }
  2422. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2423. {
  2424. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2425. }
  2426. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2427. {
  2428. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2429. }
  2430. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2431. }
  2432. //材料出库退料
  2433. public DataTable GetSubGridJsonCLCKByCreate(string ApplyNegCode, string Sequence, string WorkPoint)
  2434. {
  2435. DataTable dt = new DataTable();
  2436. object Figure = GetDecimalDigits();
  2437. List<DbParameter> parameter = new List<DbParameter>();
  2438. 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,
  2439. 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
  2440. ,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
  2441. from ICSMOApplyNegDetail a
  2442. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  2443. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2444. left join (
  2445. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2446. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='13'
  2447. where isnull(a.EATTRIBUTE1,'')=''
  2448. group by b.TransCode,b.TransSequence
  2449. ) c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  2450. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2451. WHERE d.Type='3'
  2452. and a.ApplyNegCode='" + ApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  2453. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2454. sql = string.Format(sql, Figure);
  2455. return Repository().FindTableBySql(sql.ToString());
  2456. }
  2457. //材料出库退料生成条码
  2458. public int SubmitFormCLCKT(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  2459. {
  2460. var queryParam = keyValue.ToJObject();
  2461. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2462. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2463. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2464. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2465. decimal LOTQTY = minPackQty;
  2466. string Pre = "MD" + ApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  2467. string sql = string.Empty;
  2468. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2469. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2470. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2471. string sqls = string.Empty;
  2472. string Colspan = "";
  2473. string str1 = "";
  2474. List<string> ExtensionIDList = new List<string>();
  2475. for (int i = 0; i < createPageCount; i++)
  2476. {
  2477. if (i + 1 == createPageCount)
  2478. {
  2479. if (minPackQty * createPageCount > thisCreateQty)
  2480. {
  2481. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  2482. }
  2483. }
  2484. 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();
  2485. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  2486. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2487. bool flag = true;
  2488. foreach (var item in ExtensionIDList)
  2489. {
  2490. if (item == Colspan + WorkPoint)
  2491. {
  2492. flag = false;
  2493. }
  2494. }
  2495. if (ExtensionID == null && flag == true)
  2496. {
  2497. str1 = Guid.NewGuid().ToString();
  2498. 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)
  2499. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2500. 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(),
  2501. MUSER, MUSERNAME, WorkPoints);
  2502. }
  2503. else if (ExtensionID != null)
  2504. {
  2505. str1 = ExtensionID.ToString();
  2506. }
  2507. ExtensionIDList.Add(Colspan + WorkPoint);
  2508. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  2509. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  2510. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  2511. LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  2512. sql += string.Format(@"insert into ICSInventoryLot
  2513. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  2514. select
  2515. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','13','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  2516. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  2517. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString())/ minPackQty* LOTQTY, queryParam["ExpirationDate"].ToString()
  2518. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  2519. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  2520. sql += "\r\n";
  2521. }
  2522. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2523. return count;
  2524. }
  2525. public DataTable GetGridJsonWWLLTL(string queryJson, ref Pagination jqgridparam)
  2526. {
  2527. DataTable dt = new DataTable();
  2528. var queryParam = queryJson.ToJObject();
  2529. List<DbParameter> parameter = new List<DbParameter>();
  2530. object Figure = GetDecimalDigits();
  2531. #region [SQL]
  2532. string sql = @"select a.ID,a.OApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  2533. 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
  2534. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2535. ,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,
  2536. a.EATTRIBUTE9,a.EATTRIBUTE10
  2537. from ICSOApplyNegDetail a
  2538. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  2539. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2540. left join (
  2541. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2542. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='14'
  2543. where isnull(ee.EATTRIBUTE1,'')=''
  2544. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2545. )c
  2546. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2547. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2548. WHERE d.Type='2'";
  2549. sql = string.Format(sql, Figure);
  2550. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  2551. #endregion
  2552. if (!string.IsNullOrWhiteSpace(queryJson))
  2553. {
  2554. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2555. {
  2556. sql += " and a.OApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2557. }
  2558. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2559. {
  2560. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2561. }
  2562. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2563. {
  2564. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2565. }
  2566. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2567. {
  2568. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2569. }
  2570. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  2571. {
  2572. string POStatus = queryParam["POStatus"].ToString();
  2573. if (POStatus == "0")
  2574. {
  2575. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2576. }
  2577. else if (POStatus == "1")
  2578. {
  2579. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  2580. }
  2581. else
  2582. {
  2583. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  2584. }
  2585. }
  2586. }
  2587. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2588. {
  2589. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2590. }
  2591. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2592. {
  2593. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2594. }
  2595. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2596. }
  2597. /// <summary>
  2598. /// 点击委外领料退料生成条码
  2599. /// </summary>
  2600. public DataTable GetSubGridJsonWWLLByCreate(string OApplyNegCode, string Sequence, string WorkPoint)
  2601. {
  2602. DataTable dt = new DataTable();
  2603. object Figure = GetDecimalDigits();
  2604. List<DbParameter> parameter = new List<DbParameter>();
  2605. string sql = @"
  2606. 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,
  2607. 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
  2608. ,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
  2609. from ICSOApplyNegDetail a
  2610. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  2611. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2612. left join (
  2613. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2614. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='14'
  2615. where isnull(a.EATTRIBUTE1,'')=''
  2616. group by b.TransCode,b.TransSequence
  2617. ) c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  2618. left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  2619. WHERE d.Type='2'
  2620. and a.OApplyNegCode='" + OApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  2621. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2622. sql = string.Format(sql, Figure);
  2623. return Repository().FindTableBySql(sql.ToString());
  2624. }
  2625. //委外领料申请退料
  2626. public int SubmitFormWWLL(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  2627. {
  2628. var queryParam = keyValue.ToJObject();
  2629. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2630. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2631. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2632. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2633. decimal LOTQTY = minPackQty;
  2634. string Pre = "OMA" + OApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  2635. string sql = string.Empty;
  2636. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2637. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2638. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2639. string sqls = string.Empty;
  2640. string Colspan = "";
  2641. string str1 = "";
  2642. List<string> ExtensionIDList = new List<string>();
  2643. for (int i = 0; i < createPageCount; i++)
  2644. {
  2645. if (i + 1 == createPageCount)
  2646. {
  2647. if (minPackQty * createPageCount > thisCreateQty)
  2648. {
  2649. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  2650. }
  2651. }
  2652. 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();
  2653. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  2654. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2655. bool flag = true;
  2656. foreach (var item in ExtensionIDList)
  2657. {
  2658. if (item == Colspan + WorkPoint)
  2659. {
  2660. flag = false;
  2661. }
  2662. }
  2663. if (ExtensionID == null && flag == true)
  2664. {
  2665. str1 = Guid.NewGuid().ToString();
  2666. 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)
  2667. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2668. 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(),
  2669. MUSER, MUSERNAME, WorkPoints);
  2670. }
  2671. else if (ExtensionID != null)
  2672. {
  2673. str1 = ExtensionID.ToString();
  2674. }
  2675. ExtensionIDList.Add(Colspan + WorkPoint);
  2676. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  2677. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  2678. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  2679. LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  2680. sql += string.Format(@"insert into ICSInventoryLot
  2681. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  2682. select
  2683. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','14','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  2684. from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  2685. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString())/ minPackQty* LOTQTY, queryParam["ExpirationDate"].ToString()
  2686. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  2687. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  2688. sql += "\r\n";
  2689. }
  2690. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2691. return count;
  2692. }
  2693. //委外材料出库
  2694. public DataTable GetGridJsonWWCLCK(string queryJson, ref Pagination jqgridparam)
  2695. {
  2696. DataTable dt = new DataTable();
  2697. var queryParam = queryJson.ToJObject();
  2698. List<DbParameter> parameter = new List<DbParameter>();
  2699. object Figure = GetDecimalDigits();
  2700. #region [SQL]
  2701. string sql = @"select a.ID,a.OApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  2702. 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
  2703. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2704. ,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,
  2705. a.EATTRIBUTE9,a.EATTRIBUTE10
  2706. from ICSOApplyNegDetail a
  2707. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  2708. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2709. left join (
  2710. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2711. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='15'
  2712. where isnull(ee.EATTRIBUTE1,'')=''
  2713. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2714. )c
  2715. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2716. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2717. WHERE d.Type='3'";
  2718. sql = string.Format(sql, Figure);
  2719. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  2720. #endregion
  2721. if (!string.IsNullOrWhiteSpace(queryJson))
  2722. {
  2723. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2724. {
  2725. sql += " and a.OApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2726. }
  2727. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2728. {
  2729. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2730. }
  2731. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2732. {
  2733. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2734. }
  2735. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2736. {
  2737. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2738. }
  2739. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  2740. {
  2741. string POStatus = queryParam["POStatus"].ToString();
  2742. if (POStatus == "0")
  2743. {
  2744. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2745. }
  2746. else if (POStatus == "1")
  2747. {
  2748. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  2749. }
  2750. else
  2751. {
  2752. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  2753. }
  2754. }
  2755. }
  2756. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2757. {
  2758. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2759. }
  2760. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2761. {
  2762. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2763. }
  2764. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2765. }
  2766. //委外材料出库
  2767. public DataTable GetSubGridJsonWWCLByCreate(string OApplyNegCode, string Sequence, string WorkPoint)
  2768. {
  2769. DataTable dt = new DataTable();
  2770. object Figure = GetDecimalDigits();
  2771. List<DbParameter> parameter = new List<DbParameter>();
  2772. string sql = @"
  2773. 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,
  2774. 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
  2775. ,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
  2776. from ICSOApplyNegDetail a
  2777. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  2778. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2779. left join (
  2780. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2781. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='15'
  2782. where isnull(a.EATTRIBUTE1,'')=''
  2783. group by b.TransCode,b.TransSequence
  2784. ) c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  2785. left join ICSExtension f on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  2786. WHERE d.Type='3'
  2787. and a.OApplyNegCode='" + OApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  2788. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2789. sql = string.Format(sql, Figure);
  2790. return Repository().FindTableBySql(sql.ToString());
  2791. }
  2792. //委外材料出库
  2793. public int SubmitFormWWCL(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  2794. {
  2795. var queryParam = keyValue.ToJObject();
  2796. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2797. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2798. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2799. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2800. decimal LOTQTY = minPackQty;
  2801. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  2802. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  2803. string Pre = "OMD" + OApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  2804. string sql = string.Empty;
  2805. //string VendorLot = queryParam["VendorLot"].ToString();
  2806. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2807. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2808. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2809. string sqls = string.Empty;
  2810. string Colspan = "";
  2811. string str1 = "";
  2812. List<string> ExtensionIDList = new List<string>();
  2813. for (int i = 0; i < createPageCount; i++)
  2814. {
  2815. if (i + 1 == createPageCount)
  2816. {
  2817. if (minPackQty * createPageCount > thisCreateQty)
  2818. {
  2819. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  2820. }
  2821. }
  2822. 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();
  2823. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  2824. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2825. bool flag = true;
  2826. foreach (var item in ExtensionIDList)
  2827. {
  2828. if (item == Colspan + WorkPoint)
  2829. {
  2830. flag = false;
  2831. }
  2832. }
  2833. if (ExtensionID == null && flag == true)
  2834. {
  2835. str1 = Guid.NewGuid().ToString();
  2836. 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)
  2837. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2838. 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(),
  2839. MUSER, MUSERNAME, WorkPoints);
  2840. }
  2841. else if (ExtensionID != null)
  2842. {
  2843. str1 = ExtensionID.ToString();
  2844. }
  2845. ExtensionIDList.Add(Colspan + WorkPoint);
  2846. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  2847. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  2848. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  2849. LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  2850. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  2851. //{
  2852. sql += string.Format(@"insert into ICSInventoryLot
  2853. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  2854. select
  2855. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','15','{3}','{4}', getdate(),'{5}','{9}'
  2856. ,'{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  2857. from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  2858. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString())/ minPackQty* LOTQTY, queryParam["ExpirationDate"].ToString()
  2859. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  2860. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  2861. sql += "\r\n";
  2862. //}
  2863. }
  2864. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2865. return count;
  2866. }
  2867. public DataTable SelectICSExtensionEnable()
  2868. {
  2869. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2870. string sql = @"select ColCode from ICSExtensionEnable
  2871. where Enable=0 and WorkPoint='"+ WorkPoints + "' order by cast(EATTRIBUTE1 as int)";
  2872. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  2873. return dt;
  2874. }
  2875. public DataTable GetComplete()
  2876. {
  2877. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2878. string sql = @"select Enable from ICSConfiguration where Code='CompleteVerification001' and WorkPoint='" + WorkPoints + "'";
  2879. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  2880. return dt;
  2881. }
  2882. public DataTable GetWWComplete()
  2883. {
  2884. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2885. string sql = @"select Enable from ICSConfiguration where Code='CompleteVerification002' and WorkPoint='" + WorkPoints + "'";
  2886. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  2887. return dt;
  2888. }
  2889. //返工工单
  2890. public DataTable GetGridJsonFGGD(string queryJson, ref Pagination jqgridparam)
  2891. {
  2892. DataTable dt = new DataTable();
  2893. var queryParam = queryJson.ToJObject();
  2894. List<DbParameter> parameter = new List<DbParameter>();
  2895. object Figure = GetDecimalDigits();
  2896. #region [SQL]
  2897. 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,
  2898. CAST(a.Quantity AS DECIMAL(18,{0})) as Quantity ,
  2899. 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
  2900. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2901. ,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,
  2902. a.EATTRIBUTE9,a.EATTRIBUTE10
  2903. from ICSMOPick a
  2904. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  2905. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2906. left join (
  2907. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2908. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='16'
  2909. where isnull(ee.EATTRIBUTE1,'')=''
  2910. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2911. )c
  2912. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2913. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2914. where a.EATTRIBUTE1='1' and d.EATTRIBUTE1='1'";
  2915. sql = string.Format(sql, Figure);
  2916. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  2917. #endregion
  2918. if (!string.IsNullOrWhiteSpace(queryJson))
  2919. {
  2920. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2921. {
  2922. sql += " and d.MOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2923. }
  2924. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2925. {
  2926. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2927. }
  2928. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2929. {
  2930. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2931. }
  2932. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2933. {
  2934. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2935. }
  2936. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  2937. {
  2938. string POStatus = queryParam["POStatus"].ToString();
  2939. if (POStatus == "0")
  2940. {
  2941. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2942. }
  2943. else if (POStatus == "1")
  2944. {
  2945. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  2946. }
  2947. else
  2948. {
  2949. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  2950. }
  2951. }
  2952. }
  2953. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2954. {
  2955. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2956. }
  2957. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2958. {
  2959. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2960. }
  2961. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2962. }
  2963. public DataTable GetSubGridJsonFGGDCreate(string FGGDMOCode, string Sequence, string WorkPoint)
  2964. {
  2965. DataTable dt = new DataTable();
  2966. object Figure = GetDecimalDigits();
  2967. List<DbParameter> parameter = new List<DbParameter>();
  2968. string sql = @"
  2969. 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,
  2970. 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
  2971. ,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
  2972. from ICSMOPick a
  2973. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  2974. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2975. left join (
  2976. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2977. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='16'
  2978. where isnull(a.EATTRIBUTE1,'')=''
  2979. group by b.TransCode,b.TransSequence
  2980. ) c on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence
  2981. left join ICSExtension e on d.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  2982. WHERE 1=1
  2983. and d.MOCode='" + FGGDMOCode + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "'";
  2984. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2985. sql = string.Format(sql, Figure);
  2986. return Repository().FindTableBySql(sql.ToString());
  2987. }
  2988. //返工工单
  2989. public int SubmitFormFGGD(string FGGDMOCode, string Sequence, string keyValue, string WorkPoint)
  2990. {
  2991. var queryParam = keyValue.ToJObject();
  2992. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2993. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2994. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2995. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2996. decimal LOTQTY = minPackQty;
  2997. Sequence = Sequence.Replace("~", "");
  2998. string Pre = "FG" + FGGDMOCode + (Convert.ToInt32(Sequence)).ToString("D4");
  2999. string sql = string.Empty;
  3000. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  3001. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  3002. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  3003. string sqls = string.Empty;
  3004. string Colspan = "";
  3005. string str1 = "";
  3006. List<string> ExtensionIDList = new List<string>();
  3007. for (int i = 0; i < createPageCount; i++)
  3008. {
  3009. if (i + 1 == createPageCount)
  3010. {
  3011. if (minPackQty * createPageCount > thisCreateQty)
  3012. {
  3013. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  3014. }
  3015. }
  3016. 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();
  3017. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  3018. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  3019. bool flag = true;
  3020. foreach (var item in ExtensionIDList)
  3021. {
  3022. if (item == Colspan + WorkPoint)
  3023. {
  3024. flag = false;
  3025. }
  3026. }
  3027. if (ExtensionID == null && flag == true)
  3028. {
  3029. str1 = Guid.NewGuid().ToString();
  3030. 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)
  3031. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  3032. 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(),
  3033. MUSER, MUSERNAME, WorkPoints);
  3034. }
  3035. else if (ExtensionID != null)
  3036. {
  3037. str1 = ExtensionID.ToString();
  3038. }
  3039. ExtensionIDList.Add(Colspan + WorkPoint);
  3040. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  3041. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  3042. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  3043. LotNo, FGGDMOCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  3044. sql += string.Format(@"insert into ICSInventoryLot
  3045. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  3046. select
  3047. newid(),'{0}',a.InvCode,'{1}','{10}','{2}','{8}','16','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  3048. 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}' ",
  3049. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, FGGDMOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString())/ minPackQty* LOTQTY, queryParam["ExpirationDate"].ToString()
  3050. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  3051. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  3052. sql += "\r\n";
  3053. }
  3054. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  3055. return count;
  3056. }
  3057. public object GetDecimalDigits()
  3058. {
  3059. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3060. try
  3061. {
  3062. string sql = string.Empty;
  3063. sql = @"select Figure from ICSConfiguration where Code='Figure001' and Enable='1' and WorkPoint='" + WorkPoint + "'";
  3064. object Figure = SqlHelper.ExecuteScalar(sql);
  3065. return Figure;
  3066. }
  3067. catch (Exception ex)
  3068. {
  3069. throw new Exception(ex.Message.ToString());
  3070. }
  3071. }
  3072. /// <summary>
  3073. /// 生成条码导出
  3074. /// </summary>
  3075. /// <param name="ProductBrand"></param>
  3076. /// <param name="cCusName"></param>
  3077. /// <param name="DesignAddRate"></param>
  3078. /// <returns></returns>
  3079. public DataTable StatementExportAll(string Type,string ID)
  3080. {
  3081. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3082. string sql = string.Empty;
  3083. object Figure = GetDecimalDigits();
  3084. string TableCode = string.Empty;
  3085. #region sql语句
  3086. if (Type == "1") //生产退料
  3087. {
  3088. 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 数量
  3089. ,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
  3090. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3091. ,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,
  3092. a.EATTRIBUTE9,a.EATTRIBUTE10
  3093. from ICSMOApplyNegDetail a
  3094. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  3095. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3096. left join (
  3097. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3098. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='1'
  3099. where isnull(ee.EATTRIBUTE1,'')=''
  3100. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3101. )c
  3102. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3103. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3104. where d.Type='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  3105. TableCode = "ICSMOApplyNegDetail";
  3106. }
  3107. if (Type == "2") //委外退料
  3108. {
  3109. 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 数量
  3110. ,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
  3111. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3112. ,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,
  3113. a.EATTRIBUTE9,a.EATTRIBUTE10
  3114. from ICSOApplyNegDetail a
  3115. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  3116. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3117. left join (
  3118. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3119. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='2'
  3120. where isnull(ee.EATTRIBUTE1,'')=''
  3121. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3122. )c
  3123. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3124. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3125. WHERE d.Type='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  3126. TableCode = "ICSOApplyNegDetail";
  3127. }
  3128. if (Type == "3")//工单成品生成条码
  3129. {
  3130. sql = @"select a.MOCode as 工单号,a.Sequence as 工单行号 ,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvStd as 规格型号,b.InvUnit as 单位
  3131. ,CAST( a.Quantity AS DECIMAL(18,{0})) as ,CAST( a.Amount as DECIMAL(18,{0})) as
  3132. ,a.MUSERName as ,a.MTIME as ,CAST(c.LOTQTY AS DECIMAL(18,{0})) as
  3133. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3134. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,
  3135. a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  3136. a.EATTRIBUTE9,a.EATTRIBUTE10
  3137. from ICSMO a
  3138. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3139. left join (
  3140. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3141. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='3'
  3142. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3143. )c
  3144. on a.MOCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3145. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3146. WHERE 1=1 and a.MOStatus<>'3' and a.Quantity-ISNULL(c.LOTQTY,0)<>0 and a.ID in (" + ID.TrimEnd(',') + ")";
  3147. TableCode = "ICSMO";
  3148. }
  3149. if (Type == "4")//销售退货
  3150. {
  3151. 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 数量
  3152. ,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
  3153. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3154. ,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,
  3155. a.EATTRIBUTE9,a.EATTRIBUTE10
  3156. from ICSSDN a
  3157. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3158. left join (
  3159. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3160. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='4'
  3161. where isnull(ee.EATTRIBUTE1,'')=''
  3162. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3163. )c
  3164. on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3165. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3166. where a.Type='2'and a.ID in (" + ID.TrimEnd(',') + ")";
  3167. TableCode = "ICSSDN";
  3168. }
  3169. if (Type == "5")//其它入库生成条码
  3170. {
  3171. 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 料品单位,
  3172. 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
  3173. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3174. ,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,
  3175. a.EATTRIBUTE9,a.EATTRIBUTE10
  3176. from ICSOtherIn a
  3177. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3178. left join (
  3179. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3180. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='5'
  3181. where isnull(ee.EATTRIBUTE1,'')=''
  3182. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3183. )c
  3184. on a.InCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3185. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3186. where a.Status='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  3187. TableCode = "ICSOtherIn";
  3188. }
  3189. if (Type == "6")//归还单生成条码
  3190. {
  3191. 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 料品单位
  3192. ,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
  3193. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3194. ,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,
  3195. a.EATTRIBUTE9,a.EATTRIBUTE10
  3196. from ICSReturn a
  3197. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3198. left join (
  3199. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3200. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='6'
  3201. where isnull(ee.EATTRIBUTE1,'')=''
  3202. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3203. ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3204. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3205. where a.Status='2' and a.ID in (" + ID.TrimEnd(',') + ")";
  3206. TableCode = "ICSReturn";
  3207. }
  3208. if (Type == "7")//*审核到货单生成条码
  3209. {
  3210. 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 料品单位,
  3211. 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
  3212. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3213. ,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,
  3214. a.EATTRIBUTE9,a.EATTRIBUTE10
  3215. from ICSDeliveryNotice a
  3216. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3217. left join (
  3218. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3219. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='7'
  3220. where isnull(ee.EATTRIBUTE1,'')=''
  3221. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3222. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3223. inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  3224. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  3225. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3226. where a.DNType='1' and a.Status='2' and a.ASNCode is null and a.ID in (" + ID.TrimEnd(',') + ")";
  3227. TableCode = "ICSDeliveryNotice";
  3228. }
  3229. if (Type == "8")//审核委外到货单生成条码
  3230. {
  3231. 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 创建时间,
  3232. CAST(c.LOTQTY AS DECIMAL(18,{0})) as
  3233. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3234. ,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,
  3235. a.EATTRIBUTE9,a.EATTRIBUTE10
  3236. from ICSODeliveryNotice a
  3237. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3238. left join (
  3239. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3240. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='8'
  3241. where isnull(ee.EATTRIBUTE1,'')=''
  3242. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3243. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3244. inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  3245. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  3246. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3247. where a.ODNType='1' and a.Status='2' and a.OASNCode is null and a.ID in (" + ID.TrimEnd(',') + ")";
  3248. TableCode = "ICSODeliveryNotice";
  3249. }
  3250. if (Type == "9")//开立得成品入库单 生成条码
  3251. {
  3252. 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 数量 ,
  3253. 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
  3254. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3255. ,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,
  3256. a.EATTRIBUTE9,a.EATTRIBUTE10
  3257. from ICSManufactureReceive a
  3258. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3259. left join (
  3260. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3261. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='9'
  3262. where isnull(ee.EATTRIBUTE1,'')=''
  3263. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3264. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3265. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3266. where a.Status='1' and a.Type='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  3267. TableCode = "ICSManufactureReceive";
  3268. }
  3269. if (Type == "10")//采购拒收单
  3270. {
  3271. 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 料品单位,
  3272. 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 ,
  3273. CAST(c.LOTQTY AS DECIMAL(18,{0})) as
  3274. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3275. ,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,
  3276. a.EATTRIBUTE9,a.EATTRIBUTE10
  3277. from ICSDeliveryNotice a
  3278. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3279. left join (
  3280. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3281. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='10'
  3282. where isnull(ee.EATTRIBUTE1,'')=''
  3283. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3284. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3285. --inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  3286. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  3287. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3288. where a.DNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null and a.ID in (" + ID.TrimEnd(',') + ")";
  3289. TableCode = "ICSDeliveryNotice";
  3290. }
  3291. if (Type == "11") //委外拒收单生成条码
  3292. {
  3293. 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 料品单位,
  3294. 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
  3295. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3296. ,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,
  3297. a.EATTRIBUTE9,a.EATTRIBUTE10
  3298. from ICSODeliveryNotice a
  3299. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3300. left join (
  3301. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3302. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='11'
  3303. where isnull(ee.EATTRIBUTE1,'')=''
  3304. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3305. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3306. --inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  3307. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  3308. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3309. where a.ODNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null and a.ID in (" + ID.TrimEnd(',') + ")";
  3310. TableCode = "ICSODeliveryNotice";
  3311. }
  3312. if (Type == "12")//领料申请退料生成条码
  3313. {
  3314. sql = @"select a.ApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品编码,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  3315. 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
  3316. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3317. ,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,
  3318. a.EATTRIBUTE9,a.EATTRIBUTE10
  3319. from ICSMOApplyNegDetail a
  3320. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  3321. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3322. left join (
  3323. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3324. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='12'
  3325. where isnull(ee.EATTRIBUTE1,'')=''
  3326. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3327. )c
  3328. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3329. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3330. WHERE d.Type='2' and a.ID in (" + ID.TrimEnd(',') + ")";
  3331. TableCode = "ICSMOApplyNegDetail";
  3332. }
  3333. if (Type == "13")//材料出库退料
  3334. {
  3335. sql = @" select a.ApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  3336. CAST(a.Quantity AS DECIMAL(18,{0})) as ,
  3337. 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
  3338. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3339. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  3340. from ICSMOApplyNegDetail a
  3341. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  3342. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3343. left join (
  3344. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3345. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='13'
  3346. where isnull(ee.EATTRIBUTE1,'')=''
  3347. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3348. )c
  3349. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3350. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3351. WHERE d.Type='3' and a.ID in (" + ID.TrimEnd(',') + ")";
  3352. TableCode = "ICSMOApplyNegDetail";
  3353. }
  3354. if (Type == "14")//委外领料申请退料
  3355. {
  3356. sql = @" select a.OApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  3357. 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
  3358. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3359. ,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,
  3360. a.EATTRIBUTE9,a.EATTRIBUTE10
  3361. from ICSOApplyNegDetail a
  3362. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  3363. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3364. left join (
  3365. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3366. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='14'
  3367. where isnull(ee.EATTRIBUTE1,'')=''
  3368. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3369. )c
  3370. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3371. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3372. WHERE d.Type='2' and a.ID in (" + ID.TrimEnd(',') + ")";
  3373. TableCode = "ICSOApplyNegDetail";
  3374. }
  3375. if (Type == "15")//委外材料出库退料
  3376. {
  3377. sql = @" select a.OApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  3378. 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
  3379. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3380. ,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,
  3381. a.EATTRIBUTE9,a.EATTRIBUTE10
  3382. from ICSOApplyNegDetail a
  3383. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  3384. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3385. left join (
  3386. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3387. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='15'
  3388. where isnull(ee.EATTRIBUTE1,'')=''
  3389. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3390. )c
  3391. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3392. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3393. WHERE d.Type='3' and a.ID in (" + ID.TrimEnd(',') + ")";
  3394. TableCode = "ICSOApplyNegDetail";
  3395. }
  3396. if (Type == "16") //返工工单
  3397. {
  3398. 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 单位,
  3399. CAST(a.Quantity AS DECIMAL(18,{0})) as ,
  3400. 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
  3401. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3402. ,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,
  3403. a.EATTRIBUTE9,a.EATTRIBUTE10
  3404. from ICSMOPick a
  3405. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  3406. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3407. left join (
  3408. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3409. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='16'
  3410. where isnull(ee.EATTRIBUTE1,'')=''
  3411. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3412. )c
  3413. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3414. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3415. where a.EATTRIBUTE1='1' and d.EATTRIBUTE1='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  3416. TableCode = "ICSMOPick";
  3417. }
  3418. if (Type == "17")//检验不合格条码重新生成
  3419. {
  3420. sql = @"select a.LotNo as 不合格条码, a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  3421. CAST(a.Quantity AS DECIMAL(18,{0})) as ,
  3422. CAST(c.Amount AS DECIMAL(18,{0})) as ,a.MUSERName,a.MUSERName as ,a.MTIME as ,CAST(c.LOTQTY AS DECIMAL(18,{0})) as
  3423. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3424. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,
  3425. a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  3426. a.EATTRIBUTE9,a.EATTRIBUTE10
  3427. from ICSInspection a
  3428. left join dbo.ICSInventoryLot d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint
  3429. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3430. left join (
  3431. select ee.LotNo,ee.EATTRIBUTE1,ee.Amount,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3432. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='17'
  3433. group by ee.LotNo,ee.EATTRIBUTE1,ee.Amount,ee.WorkPoint
  3434. )c
  3435. on c.EATTRIBUTE1=d.LotNo and a.WorkPoint=c.WorkPoint
  3436. left join ICSExtension f on d.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3437. where a.UnqualifiedQuantity>0 and a.Enable='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  3438. TableCode = "ICSInspection";
  3439. }
  3440. #endregion
  3441. sql = sql + " and a.WorkPoint='{1}'";
  3442. sql = string.Format(sql, Figure, WorkPoint);
  3443. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  3444. string sqls = @"SELECT ColCode,ColName,Enable
  3445. from ICSExtensionEnable where WorkPoint='" + WorkPoint + "'";
  3446. DataTable dtExtension = SqlHelper.GetDataTableBySql(sqls);
  3447. foreach (DataRow drE in dtExtension.Rows)
  3448. {
  3449. if (dt.Columns.Contains(drE["ColCode"].ToString()) )
  3450. {
  3451. if (!Convert.ToBoolean(drE["Enable"]))
  3452. {
  3453. dt.Columns.Remove(drE["ColCode"].ToString());
  3454. }
  3455. else if (Convert.ToBoolean(drE["Enable"]))
  3456. {
  3457. dt.Columns[drE["ColCode"].ToString()].ColumnName = drE["ColName"].ToString();
  3458. }
  3459. }
  3460. }
  3461. DataTable dtColumn = ColumnEnable(TableCode);
  3462. foreach (DataRow drC in dtColumn.Rows)
  3463. {
  3464. if (dt.Columns.Contains(drC["ColumnCode"].ToString()))
  3465. {
  3466. if (!Convert.ToBoolean(drC["Enable"]))
  3467. {
  3468. dt.Columns.Remove(drC["ColumnCode"].ToString());
  3469. }
  3470. else if (Convert.ToBoolean(drC["Enable"]))
  3471. {
  3472. dt.Columns[drC["ColumnCode"].ToString()].ColumnName = drC["Name"].ToString();
  3473. }
  3474. }
  3475. }
  3476. return dt;
  3477. }
  3478. public DataTable ColumnEnable(string TableCode)
  3479. {
  3480. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3481. string sql = string.Empty;
  3482. sql = @"select ColumnCode,Name,Enable from ICSColumnEnable where TableCode='{0}' and WorkPoint='{1}'";
  3483. sql = string.Format(sql, TableCode, WorkPoint);
  3484. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  3485. return dt;
  3486. }
  3487. public object GetQiSetNum(string keyValue)
  3488. {
  3489. decimal Num = 0;
  3490. string msg = "";
  3491. string APIURL = ConfigurationManager.ConnectionStrings["ERPAPIURL"].ConnectionString + "Complete/Approve";
  3492. string result = HttpPost(APIURL, keyValue);
  3493. JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText);
  3494. string MessAge = Obj["Message"].ToString();
  3495. string Success = Obj["Success"].ToString();
  3496. if (Success.ToUpper() == "FALSE")
  3497. {
  3498. msg = MessAge;
  3499. }
  3500. else
  3501. {
  3502. if (MessAge == "U9")
  3503. {
  3504. decimal Date = Convert.ToDecimal(Obj["Data"].ToString());
  3505. int date = Convert.ToInt32(Date);
  3506. Num = date;
  3507. }
  3508. else
  3509. {
  3510. if (msg == "")
  3511. {
  3512. JArray res = (JArray)JsonConvert.DeserializeObject(Obj["Data"].ToString());
  3513. foreach (var item in res)
  3514. {
  3515. JObject jo = (JObject)item;
  3516. //var aa= jo["min_lotqty"].ToString();
  3517. Num = Convert.ToDecimal(jo["min_lotqty"].ToString());
  3518. }
  3519. }
  3520. }
  3521. }
  3522. var Header = new
  3523. {
  3524. msg = msg,
  3525. Num = Num,
  3526. };
  3527. return Header;
  3528. }
  3529. //接口api解析
  3530. public static string HttpPost(string url, string body)
  3531. {
  3532. try
  3533. {
  3534. Encoding encoding = Encoding.UTF8;
  3535. HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
  3536. request.Method = "POST";
  3537. request.Accept = "application/json, text/javascript, */*"; //"text/html, application/xhtml+xml, */*";
  3538. request.ContentType = "application/json; charset=utf-8";
  3539. byte[] buffer = encoding.GetBytes(body);
  3540. request.ContentLength = buffer.Length;
  3541. request.GetRequestStream().Write(buffer, 0, buffer.Length);
  3542. HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  3543. using (StreamReader reader = new StreamReader(response.GetResponseStream(), encoding))
  3544. {
  3545. return reader.ReadToEnd();
  3546. }
  3547. }
  3548. catch (WebException ex)
  3549. {
  3550. throw new Exception(ex.Message);
  3551. }
  3552. }
  3553. public DataTable GetLoadShow()
  3554. {
  3555. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3556. string sql = @"
  3557. select * from ICSExtensionEnable where WorkPoint='" + WorkPoints + "' order by cast(EATTRIBUTE1 as int) ";
  3558. return Repository().FindTableBySql(sql.ToString());
  3559. }
  3560. //不合格条码重新生成入库
  3561. public DataTable GetGridJsonBHGTM(string queryJson, ref Pagination jqgridparam)
  3562. {
  3563. DataTable dt = new DataTable();
  3564. var queryParam = queryJson.ToJObject();
  3565. List<DbParameter> parameter = new List<DbParameter>();
  3566. object Figure = GetDecimalDigits();
  3567. #region [SQL]
  3568. string sql = @"select a.ID,a.LotNo, a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  3569. CAST(a.UnqualifiedQuantity AS DECIMAL(18,{0})) as Quantity ,
  3570. CAST(c.Amount AS DECIMAL(18,{0})) as Amount,a.MUSERName,a.MTIME,CAST(c.LOTQTY AS DECIMAL(18,{0})) as LOTQTY,d.ExtensionID
  3571. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3572. ,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,
  3573. a.EATTRIBUTE9,a.EATTRIBUTE10
  3574. from ICSInspection a
  3575. left join dbo.ICSInventoryLot d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint
  3576. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3577. left join (
  3578. select ee.LotNo,ee.EATTRIBUTE1,ee.Amount,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3579. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='17'
  3580. group by ee.LotNo,ee.EATTRIBUTE1,ee.Amount,ee.WorkPoint
  3581. )c
  3582. on c.EATTRIBUTE1=d.LotNo and a.WorkPoint=c.WorkPoint
  3583. left join ICSExtension f on d.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3584. where a.UnqualifiedQuantity>0 and a.Enable='1'";
  3585. sql = string.Format(sql, Figure);
  3586. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  3587. #endregion
  3588. if (!string.IsNullOrWhiteSpace(queryJson))
  3589. {
  3590. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  3591. {
  3592. sql += " and a.LotNo like '%" + queryParam["POCode"].ToString() + "%' ";
  3593. }
  3594. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  3595. {
  3596. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  3597. }
  3598. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  3599. {
  3600. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  3601. }
  3602. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  3603. {
  3604. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  3605. }
  3606. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  3607. {
  3608. string POStatus = queryParam["POStatus"].ToString();
  3609. if (POStatus == "0")
  3610. {
  3611. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  3612. }
  3613. else if (POStatus == "1")
  3614. {
  3615. sql += " and a.UnqualifiedQuantity-ISNULL(c.LOTQTY,0)=0";
  3616. }
  3617. else
  3618. {
  3619. sql += " and a.UnqualifiedQuantity-ISNULL(c.LOTQTY,0)<>0";
  3620. }
  3621. }
  3622. }
  3623. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  3624. {
  3625. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  3626. }
  3627. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  3628. }
  3629. public DataTable GetSubGridJsonBHGTM(string LotNo, string Type, ref Pagination jqgridparam)
  3630. {
  3631. DataTable dt = new DataTable();
  3632. object Figure = GetDecimalDigits();
  3633. List<DbParameter> parameter = new List<DbParameter>();
  3634. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3635. string sql = @" select c.TransCode,c.TransSequence ,a.ID,a.LotNo, CAST( a.Quantity AS DECIMAL(18,{0})) as Quantity ,a.MUSERName,a.MTIME
  3636. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3637. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,
  3638. case when isnull(d.ID,'')='' then '' else '' end as isStorage,
  3639. case when isnull(e.ID,'')='' then '' else '' end as isInspection,
  3640. case when g.InvIQC='1' then '是' else '否' end as isExemption
  3641. from ICSInventoryLot a
  3642. left join (select count(LotNo) LotNoCount,LotNo,WorkPoint from ICSWareHouseLotInfo
  3643. group by LotNo,WorkPoint)b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  3644. left join ICSInventoryLotDetail c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  3645. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3646. left join dbo.ICSWareHouseLotInfo d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint
  3647. left join ICSInspection e on a.LotNo=e.LotNo and e.Enable='1' and a.WorkPoint=e.WorkPoint
  3648. left join ICSInventory g on a.InvCode=g.InvCode and a.WorkPoint=g.WorkPoint
  3649. WHERE isnull(a.EATTRIBUTE1,'')='" + LotNo+"' and a.Type='" + Type + "' and a.WorkPoint in ('" + WorkPoint + "')";
  3650. sql = string.Format(sql, Figure);
  3651. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  3652. }
  3653. public int SubmitFormBHGTM(string OldLotNo, string keyValue, string WorkPoint)
  3654. {
  3655. var queryParam = keyValue.ToJObject();
  3656. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3657. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  3658. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  3659. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  3660. decimal LOTQTY = minPackQty;
  3661. // string Pre = "DN" + DNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  3662. string sql = string.Empty;
  3663. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  3664. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  3665. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  3666. string sqls = string.Empty;
  3667. string Colspan = "";
  3668. string str1 = "";
  3669. List<string> ExtensionIDList = new List<string>();
  3670. for (int i = 0; i < createPageCount; i++)
  3671. {
  3672. if (i + 1 == createPageCount)
  3673. {
  3674. if (minPackQty * createPageCount > thisCreateQty)
  3675. {
  3676. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  3677. }
  3678. }
  3679. string LotNo = GetNewLotNo(OldLotNo);
  3680. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  3681. select '{0}',TransCode,TransSequence,'{1}','{2}',getdate(),'{3}' from ICSInventoryLotDetail where LotNo='{4}'",
  3682. LotNo, MUSER, MUSERNAME, WorkPoints, OldLotNo);
  3683. sql += string.Format(@"
  3684. insert into ICSInventoryLot
  3685. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount,EATTRIBUTE1)
  3686. select
  3687. newid(),'{0}',a.InvCode,a.ProductDate,a.ExpirationDate,b.UnqualifiedQuantity,a.ExtensionID,'17','{1}','{2}',getdate(),'{3}',a.Amount,'{4}'
  3688. from ICSInventoryLot a
  3689. inner join ICSInspection b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint and b.Enable='1'
  3690. where a.LotNo='{4}' and a.WorkPoint='{3}'",
  3691. LotNo, MUSER, MUSERNAME, WorkPoints, OldLotNo);
  3692. sql += "\r\n";
  3693. }
  3694. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  3695. return count;
  3696. }
  3697. public string GetNewLotNo(string LotNO)
  3698. {
  3699. DataTable dt = new DataTable();
  3700. List<DbParameter> parameter = new List<DbParameter>();
  3701. //string sql = @"select max(LotNo) as NewLotNo from ICSInventoryLot where EATTRIBUTE1='{0}' ";
  3702. string sql = @"SELECT TOP 1 LotNO as NewLotNo FROM ICSInventoryLot WHERE EATTRIBUTE1='{0}'
  3703. ORDER BY CAST(SUBSTRING(LotNO, (LEN(LotNO)-CHARINDEX('-',REVERSE(LotNO))+1)+1,CHARINDEX('-',REVERSE(LotNO))-1) AS INT) DESC";
  3704. sql = string.Format(sql, LotNO);
  3705. dt = Repository().FindTableBySql(sql.ToString());
  3706. if (dt == null || dt.Rows.Count == 0 || dt.Rows[0]["NewLotNo"].ToString() == "")
  3707. {
  3708. return LotNO + "-1";
  3709. }
  3710. else
  3711. {
  3712. string newLotNO = dt.Rows[0]["NewLotNo"].ToString();
  3713. int COUNT = Convert.ToInt32(newLotNO.Substring(newLotNO.LastIndexOf('-') + 1)) + 1;
  3714. return LotNO + "-" + COUNT.ToString();
  3715. }
  3716. }
  3717. public DataTable SelGDLX()
  3718. {
  3719. string sql = string.Empty;
  3720. DataTable dt = null;
  3721. sql = string.Format(@"select distinct isnull(MOType,'') as Code ,isnull(MOType,'') as Name from dbo.ICSMO where isnull(MOType,'')<>''");
  3722. dt = SqlHelper.GetDataTableBySql(sql);
  3723. return dt;
  3724. }
  3725. public DataTable GetFreeEnble()
  3726. {
  3727. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3728. string sql = @"
  3729. select * from ICSExtensionEnable where WorkPoint='" + WorkPoints + "' order by cast(EATTRIBUTE1 as int) ";
  3730. return Repository().FindTableBySql(sql.ToString());
  3731. }
  3732. public DataTable GetInvBatchEnable(string InvCode)
  3733. {
  3734. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3735. string sql = @"select distinct BatchEnable from ICSInventory where InvCode='{0}' and WorkPoint='{1}'";
  3736. sql = string.Format(sql,InvCode, WorkPoints);
  3737. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  3738. return dt;
  3739. }
  3740. //副产品
  3741. public DataTable GetGridJsonFCP(string queryJson, ref Pagination jqgridparam)
  3742. {
  3743. DataTable dt = new DataTable();
  3744. var queryParam = queryJson.ToJObject();
  3745. List<DbParameter> parameter = new List<DbParameter>();
  3746. object Figure = GetDecimalDigits();
  3747. #region [SQL]
  3748. 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,
  3749. CAST(a.Quantity AS DECIMAL(18,{0})) as Quantity ,
  3750. 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
  3751. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3752. ,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,
  3753. a.EATTRIBUTE9,a.EATTRIBUTE10
  3754. from ICSMOPick a
  3755. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  3756. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3757. left join (
  3758. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3759. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='18'
  3760. where isnull(ee.EATTRIBUTE1,'')=''
  3761. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3762. )c
  3763. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3764. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3765. where a.EATTRIBUTE1='1' ";
  3766. sql = string.Format(sql, Figure);
  3767. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  3768. #endregion
  3769. if (!string.IsNullOrWhiteSpace(queryJson))
  3770. {
  3771. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  3772. {
  3773. sql += " and d.MOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  3774. }
  3775. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  3776. {
  3777. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  3778. }
  3779. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  3780. {
  3781. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  3782. }
  3783. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  3784. {
  3785. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  3786. }
  3787. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  3788. {
  3789. string POStatus = queryParam["POStatus"].ToString();
  3790. if (POStatus == "0")
  3791. {
  3792. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  3793. }
  3794. else if (POStatus == "1")
  3795. {
  3796. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  3797. }
  3798. else
  3799. {
  3800. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  3801. }
  3802. }
  3803. }
  3804. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  3805. {
  3806. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  3807. }
  3808. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  3809. {
  3810. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  3811. }
  3812. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  3813. }
  3814. public DataTable GetSubGridJsonFCPCreate(string FCPMOCode, string Sequence, string WorkPoint)
  3815. {
  3816. DataTable dt = new DataTable();
  3817. object Figure = GetDecimalDigits();
  3818. List<DbParameter> parameter = new List<DbParameter>();
  3819. string sql = @"
  3820. 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,
  3821. 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
  3822. ,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
  3823. from ICSMOPick a
  3824. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  3825. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3826. left join (
  3827. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  3828. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='18'
  3829. where isnull(a.EATTRIBUTE1,'')=''
  3830. group by b.TransCode,b.TransSequence
  3831. ) c on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence
  3832. left join ICSExtension e on d.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  3833. WHERE 1=1
  3834. and d.MOCode='" + FCPMOCode + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "'";
  3835. sql += " and a.WorkPoint='" + WorkPoint + "'";
  3836. sql = string.Format(sql, Figure);
  3837. return Repository().FindTableBySql(sql.ToString());
  3838. }
  3839. //副产品
  3840. public int SubmitFormFCP(string FCPMOCode, string Sequence, string keyValue, string WorkPoint)
  3841. {
  3842. var queryParam = keyValue.ToJObject();
  3843. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3844. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  3845. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  3846. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  3847. decimal LOTQTY = minPackQty;
  3848. string Sequences = Sequence.Replace("~", "");
  3849. string Pre = "FCP" + FCPMOCode + (Convert.ToInt32(Sequences)).ToString("D4");
  3850. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  3851. string sql = string.Empty;
  3852. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  3853. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  3854. string sqls = string.Empty;
  3855. string Colspan = "";
  3856. string str1 = "";
  3857. List<string> ExtensionIDList = new List<string>();
  3858. for (int i = 0; i < createPageCount; i++)
  3859. {
  3860. if (i + 1 == createPageCount)
  3861. {
  3862. if (minPackQty * createPageCount > thisCreateQty)
  3863. {
  3864. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  3865. }
  3866. }
  3867. 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();
  3868. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  3869. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  3870. bool flag = true;
  3871. foreach (var item in ExtensionIDList)
  3872. {
  3873. if (item == Colspan + WorkPoint)
  3874. {
  3875. flag = false;
  3876. }
  3877. }
  3878. if (ExtensionID == null && flag == true)
  3879. {
  3880. str1 = Guid.NewGuid().ToString();
  3881. 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)
  3882. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  3883. 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(),
  3884. MUSER, MUSERNAME, WorkPoints);
  3885. }
  3886. else if (ExtensionID != null)
  3887. {
  3888. str1 = ExtensionID.ToString();
  3889. }
  3890. ExtensionIDList.Add(Colspan + WorkPoint);
  3891. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  3892. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  3893. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  3894. LotNo, FCPMOCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  3895. sql += string.Format(@"insert into ICSInventoryLot
  3896. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  3897. select
  3898. newid(),'{0}',a.InvCode,'{1}','{10}','{2}','{8}','18','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  3899. 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}' ",
  3900. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, FCPMOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  3901. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  3902. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  3903. sql += "\r\n";
  3904. }
  3905. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  3906. return count;
  3907. }
  3908. public bool GetGeneratedNum(string Code, string Sequence, string Type, string thisCreateQty)
  3909. {
  3910. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3911. DataTable dt = new DataTable();
  3912. List<DbParameter> parameter = new List<DbParameter>();
  3913. string sql = string.Empty;
  3914. bool flag = true;
  3915. if (Type=="1")
  3916. {
  3917. sql = @" select distinct CAST(isnull(a.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  3918. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  3919. from ICSMOApplyNegDetail a
  3920. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  3921. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3922. left join (
  3923. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3924. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='1'
  3925. where isnull(ee.EATTRIBUTE1,'')=''
  3926. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3927. )c
  3928. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3929. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3930. where d.Type='1'
  3931. and a.ApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  3932. }
  3933. if (Type=="2")
  3934. {
  3935. sql = @" select distinct CAST(isnull(a.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  3936. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  3937. from ICSOApplyNegDetail a
  3938. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  3939. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3940. left join (
  3941. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3942. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='2'
  3943. where isnull(ee.EATTRIBUTE1,'')=''
  3944. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3945. )c
  3946. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3947. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3948. WHERE d.Type='1' and a.OApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  3949. }
  3950. if (Type == "3")
  3951. {
  3952. sql = @" select distinct CAST(isnull(a.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  3953. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  3954. from ICSMO a
  3955. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3956. left join (
  3957. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3958. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='3'
  3959. where isnull(ee.EATTRIBUTE1,'')=''
  3960. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3961. )c
  3962. on a.MOCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3963. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3964. WHERE 1=1 and a.MOStatus<>'3' and a.MOCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  3965. }
  3966. if (Type == "4")
  3967. {
  3968. sql = @" select distinct CAST(isnull(a.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  3969. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  3970. from ICSSDN a
  3971. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3972. left join (
  3973. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3974. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='4'
  3975. where isnull(ee.EATTRIBUTE1,'')=''
  3976. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3977. )c
  3978. on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3979. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3980. where a.Type='2'
  3981. and a.SDNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  3982. }
  3983. if (Type == "5")
  3984. {
  3985. sql = @" select distinct CAST(isnull(a.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  3986. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  3987. from ICSOtherIn a
  3988. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3989. left join (
  3990. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3991. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='5'
  3992. where isnull(ee.EATTRIBUTE1,'')=''
  3993. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3994. )c
  3995. on a.InCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3996. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3997. where a.Status='1'
  3998. and a.InCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  3999. }
  4000. if (Type == "6")
  4001. {
  4002. sql = @" select distinct CAST(isnull(a.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  4003. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  4004. from ICSReturn a
  4005. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4006. left join (
  4007. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4008. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='6'
  4009. where isnull(ee.EATTRIBUTE1,'')=''
  4010. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4011. ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4012. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4013. where a.Status='2'
  4014. and a.ReturnCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  4015. }
  4016. if (Type == "7")
  4017. {
  4018. sql = @" select distinct CAST(isnull(a.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  4019. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  4020. from ICSDeliveryNotice a
  4021. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4022. left join (
  4023. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4024. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='7'
  4025. where isnull(ee.EATTRIBUTE1,'')=''
  4026. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4027. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4028. inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  4029. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  4030. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4031. where a.DNType='1' and a.Status='2' and a.ASNCode is null
  4032. and a.DNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  4033. }
  4034. if (Type == "8")
  4035. {
  4036. sql = @" select distinct CAST(isnull(a.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  4037. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  4038. from ICSODeliveryNotice a
  4039. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4040. left join (
  4041. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4042. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='8'
  4043. where isnull(ee.EATTRIBUTE1,'')=''
  4044. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4045. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4046. inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  4047. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  4048. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4049. where a.ODNType='1' and a.Status='2' and a.OASNCode is null
  4050. and a.ODNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  4051. }
  4052. if (Type == "9")
  4053. {
  4054. sql = @" select distinct CAST(isnull(a.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  4055. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  4056. from ICSManufactureReceive a
  4057. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4058. left join (
  4059. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4060. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='9'
  4061. where isnull(ee.EATTRIBUTE1,'')=''
  4062. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4063. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4064. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4065. where a.Status='1' and a.Type='1'
  4066. and a.RCVCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  4067. }
  4068. if (Type == "10")
  4069. {
  4070. sql = @" select distinct CAST(isnull(a.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  4071. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  4072. from ICSDeliveryNotice a
  4073. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4074. left join (
  4075. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4076. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='10'
  4077. where isnull(ee.EATTRIBUTE1,'')=''
  4078. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4079. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4080. --inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  4081. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  4082. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4083. where a.DNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  4084. and a.DNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  4085. }
  4086. if (Type == "11")
  4087. {
  4088. sql = @" select distinct CAST(isnull(a.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  4089. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  4090. from ICSODeliveryNotice a
  4091. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4092. left join (
  4093. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4094. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='11'
  4095. where isnull(ee.EATTRIBUTE1,'')=''
  4096. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4097. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4098. --inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  4099. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  4100. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4101. where a.ODNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  4102. and a.ODNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  4103. }
  4104. if (Type == "12")
  4105. {
  4106. sql = @" select distinct CAST(isnull(a.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  4107. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  4108. from ICSMOApplyNegDetail a
  4109. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  4110. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4111. left join (
  4112. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4113. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='12'
  4114. where isnull(ee.EATTRIBUTE1,'')=''
  4115. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4116. )c
  4117. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4118. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4119. WHERE d.Type='2'
  4120. and a.ApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  4121. }
  4122. if (Type == "13")
  4123. {
  4124. sql = @" select distinct CAST(isnull(a.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  4125. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  4126. from ICSMOApplyNegDetail a
  4127. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  4128. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4129. left join (
  4130. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4131. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='13'
  4132. where isnull(ee.EATTRIBUTE1,'')=''
  4133. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4134. )c
  4135. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4136. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4137. WHERE d.Type='3'
  4138. and a.ApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  4139. }
  4140. if (Type == "14")
  4141. {
  4142. sql = @" select distinct CAST(isnull(a.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  4143. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  4144. from ICSOApplyNegDetail a
  4145. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  4146. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4147. left join (
  4148. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4149. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='14'
  4150. where isnull(ee.EATTRIBUTE1,'')=''
  4151. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4152. )c
  4153. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4154. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4155. WHERE d.Type='2'
  4156. and a.OApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  4157. }
  4158. if (Type == "15")
  4159. {
  4160. sql = @" select distinct CAST(isnull(a.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  4161. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  4162. from ICSOApplyNegDetail a
  4163. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  4164. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4165. left join (
  4166. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4167. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='15'
  4168. where isnull(ee.EATTRIBUTE1,'')=''
  4169. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4170. )c
  4171. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4172. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4173. WHERE d.Type='3'
  4174. and a.OApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  4175. }
  4176. if (Type == "16")
  4177. {
  4178. sql = @" select distinct CAST(isnull(a.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  4179. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  4180. from ICSMOPick a
  4181. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  4182. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4183. left join (
  4184. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4185. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='16'
  4186. where isnull(ee.EATTRIBUTE1,'')=''
  4187. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4188. )c
  4189. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4190. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4191. where a.EATTRIBUTE1='1' and d.EATTRIBUTE1='1'
  4192. and d.MOCode='" + Code + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  4193. }
  4194. if (Type == "18")
  4195. {
  4196. sql = @" select distinct CAST(isnull(a.Quantity,0) AS DECIMAL(18,4)) as Quantity ,
  4197. CAST(isnull(c.LOTQTY,0) AS DECIMAL(18,4)) as LOTQTY
  4198. from ICSMOPick a
  4199. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  4200. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4201. left join (
  4202. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4203. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='18'
  4204. where isnull(ee.EATTRIBUTE1,'')=''
  4205. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4206. )c
  4207. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4208. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4209. where a.EATTRIBUTE1='1'
  4210. and d.MOCode='" + Code + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  4211. }
  4212. dt = SqlHelper.GetDataTableBySql(sql);
  4213. decimal Quantity= Convert.ToDecimal(dt.Rows[0]["Quantity"].ToString());
  4214. decimal LOTQTY = Convert.ToDecimal(dt.Rows[0]["LOTQTY"].ToString());
  4215. decimal thisQty = Convert.ToDecimal(thisCreateQty);
  4216. if (LOTQTY+ thisQty> Quantity)
  4217. {
  4218. flag = false;
  4219. }
  4220. return flag;
  4221. }
  4222. /// <summary>
  4223. /// 开立成品入库单(一键生成)
  4224. /// </summary>
  4225. public int SubmitFormKLCPRKALL (string keyValue)
  4226. {
  4227. string sql = string.Empty;
  4228. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4229. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  4230. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  4231. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  4232. foreach (var item in res)
  4233. {
  4234. JObject jo = (JObject)item;
  4235. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  4236. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  4237. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  4238. decimal LOTQTY = minPackQty;
  4239. string Pre = "KCP" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"].ToString())).ToString("D4");
  4240. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  4241. string sqls = string.Empty;
  4242. string Colspan = "";
  4243. string str1 = "";
  4244. List<string> ExtensionIDList = new List<string>();
  4245. for (int i = 0; i < createPageCount; i++)
  4246. {
  4247. if (i + 1 == createPageCount)
  4248. {
  4249. if (minPackQty * createPageCount > thisCreateQty)
  4250. {
  4251. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  4252. }
  4253. }
  4254. 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();
  4255. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  4256. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  4257. bool flag = true;
  4258. foreach (var items in ExtensionIDList)
  4259. {
  4260. if (items == Colspan + WorkPoint)
  4261. {
  4262. flag = false;
  4263. }
  4264. }
  4265. if (ExtensionID == null && flag == true)
  4266. {
  4267. str1 = Guid.NewGuid().ToString();
  4268. 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)
  4269. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4270. 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(),
  4271. MUSER, MUSERNAME, WorkPoint);
  4272. }
  4273. else if (ExtensionID != null)
  4274. {
  4275. str1 = ExtensionID.ToString();
  4276. }
  4277. ExtensionIDList.Add(Colspan + WorkPoint);
  4278. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4279. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  4280. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  4281. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint);
  4282. sql += string.Format(@"
  4283. insert into ICSInventoryLot
  4284. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  4285. select
  4286. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','9','{3}','{4}', getdate(),'{5}','{9}'
  4287. from ICSManufactureReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  4288. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  4289. sql += "\r\n";
  4290. }
  4291. }
  4292. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4293. return count;
  4294. }
  4295. /// <summary>
  4296. /// 审核到货单生成条码(一键生成)
  4297. /// </summary>
  4298. /// <param name="POCode"></param>
  4299. /// <param name="PORow"></param>
  4300. /// <param name="keyValue"></param>
  4301. /// 已改
  4302. /// <returns></returns>
  4303. public int SubmitFormSHDHALL(string keyValue)
  4304. {
  4305. string sql = string.Empty;
  4306. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4307. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  4308. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  4309. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  4310. foreach (var resItem in res)
  4311. {
  4312. JObject jo = (JObject)resItem;
  4313. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  4314. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  4315. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  4316. decimal LOTQTY = minPackQty;
  4317. string Pre = "DN" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"])).ToString("D4");
  4318. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  4319. string sqls = string.Empty;
  4320. string Colspan = "";
  4321. string str1 = "";
  4322. List<string> ExtensionIDList = new List<string>();
  4323. for (int i = 0; i < createPageCount; i++)
  4324. {
  4325. if (i + 1 == createPageCount)
  4326. {
  4327. if (minPackQty * createPageCount > thisCreateQty)
  4328. {
  4329. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  4330. }
  4331. }
  4332. 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();
  4333. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  4334. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  4335. bool flag = true;
  4336. foreach (var item in ExtensionIDList)
  4337. {
  4338. if (item == Colspan + WorkPoint)
  4339. {
  4340. flag = false;
  4341. }
  4342. }
  4343. if (ExtensionID == null && flag == true)
  4344. {
  4345. str1 = Guid.NewGuid().ToString();
  4346. 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)
  4347. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4348. 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(),
  4349. MUSER, MUSERNAME, WorkPoint);
  4350. }
  4351. else if (ExtensionID != null)
  4352. {
  4353. str1 = ExtensionID.ToString();
  4354. }
  4355. ExtensionIDList.Add(Colspan + WorkPoint);
  4356. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4357. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  4358. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  4359. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint);
  4360. sql += string.Format(@"
  4361. insert into ICSInventoryLot
  4362. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  4363. select
  4364. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','7','{3}','{4}', getdate(),'{5}','{9}'
  4365. from ICSDeliveryNotice where DNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  4366. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"], str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  4367. sql += "\r\n";
  4368. }
  4369. }
  4370. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4371. return count;
  4372. }
  4373. /// <summary>
  4374. /// 审核委外到货单生成条码(一键生成)
  4375. /// </summary>
  4376. /// <param name="POCode"></param>
  4377. /// <param name="PORow"></param>
  4378. /// <param name="keyValue"></param>
  4379. /// 已改
  4380. /// <returns></returns>
  4381. public int SubmitFormWWSHDHALL(string keyValue)
  4382. {
  4383. string sql = string.Empty;
  4384. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4385. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  4386. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  4387. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  4388. foreach (var resItem in res)
  4389. {
  4390. JObject jo = (JObject)resItem;
  4391. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  4392. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  4393. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  4394. decimal LOTQTY = minPackQty;
  4395. string Pre = "ODN" + jo["Code"] + (Convert.ToInt32(jo["Sequence"])).ToString("D4");
  4396. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  4397. string sqls = string.Empty;
  4398. string Colspan = "";
  4399. string str1 = "";
  4400. List<string> ExtensionIDList = new List<string>();
  4401. for (int i = 0; i < createPageCount; i++)
  4402. {
  4403. if (i + 1 == createPageCount)
  4404. {
  4405. if (minPackQty * createPageCount > thisCreateQty)
  4406. {
  4407. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  4408. }
  4409. }
  4410. 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();
  4411. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  4412. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  4413. bool flag = true;
  4414. foreach (var item in ExtensionIDList)
  4415. {
  4416. if (item == Colspan + WorkPoint)
  4417. {
  4418. flag = false;
  4419. }
  4420. }
  4421. if (ExtensionID == null && flag == true)
  4422. {
  4423. str1 = Guid.NewGuid().ToString();
  4424. 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)
  4425. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4426. 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(),
  4427. MUSER, MUSERNAME, WorkPoint);
  4428. }
  4429. else if (ExtensionID != null)
  4430. {
  4431. str1 = ExtensionID.ToString();
  4432. }
  4433. ExtensionIDList.Add(Colspan + WorkPoint);
  4434. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4435. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  4436. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  4437. LotNo, jo["Code"], jo["Sequence"], MUSER, MUSERNAME, WorkPoint);
  4438. sql += string.Format(@"
  4439. insert into ICSInventoryLot
  4440. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  4441. select
  4442. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','8','{3}','{4}', getdate(),'{5}','{9}'
  4443. from ICSODeliveryNotice where ODNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  4444. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"], jo["Sequence"], str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  4445. sql += "\r\n";
  4446. }
  4447. }
  4448. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4449. return count;
  4450. }
  4451. public DataTable SelectICSColumnEnableForLotEnable()
  4452. {
  4453. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4454. string sql = @" select ColumnCode from ICSColumnEnable
  4455. where Enable='0' and TableCode='ICSInventoryLot' and WorkPoint='" + WorkPoints + "' order by cast(Code as int)";
  4456. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  4457. return dt;
  4458. }
  4459. public DataTable GetLoadShowForColumn()
  4460. {
  4461. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4462. string sql = @"
  4463. select * from ICSColumnEnable where TableCode='ICSInventoryLot' and WorkPoint='" + WorkPoints + "' order by cast(code as int) ";
  4464. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  4465. return dt;
  4466. }
  4467. public string GetAMEnable()
  4468. {
  4469. string Code = SqlHelper.GetItemsDetailEnabledMark("LotNoMaintenance");
  4470. return Code;
  4471. }
  4472. public DataTable SeachMeasure()
  4473. {
  4474. DataTable dt = new DataTable();
  4475. List<DbParameter> parameter = new List<DbParameter>();
  4476. string sql = @" SELECT Top 1 a.F_ItemCode as Code
  4477. FROM [dbo].[Sys_SRM_ItemsDetail] a
  4478. LEFT JOIN [dbo].[Sys_SRM_Items] b ON a.F_ItemId=b.F_Id
  4479. WHERE b.F_EnCode='CrtLot001' AND a.F_EnabledMark='1' ORDER BY a.F_ItemCode";
  4480. return Repository().FindTableBySql(sql.ToString());
  4481. }
  4482. public DataTable SeachLableofDisable()
  4483. {
  4484. DataTable dt = new DataTable();
  4485. List<DbParameter> parameter = new List<DbParameter>();
  4486. string sql = @"
  4487. SELECT a.F_ItemCode as Code,a.F_EnabledMark as Enable
  4488. FROM [dbo].[Sys_SRM_ItemsDetail] a
  4489. LEFT JOIN [dbo].[Sys_SRM_Items] b ON a.F_ItemId=b.F_Id
  4490. WHERE b.F_EnCode='Lot0001' ORDER BY a.F_SortCode";
  4491. return Repository().FindTableBySql(sql.ToString());
  4492. }
  4493. public DataTable SeachAmountEnablebyInvCode(string InvCode)
  4494. {
  4495. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4496. DataTable dt = new DataTable();
  4497. List<DbParameter> parameter = new List<DbParameter>();
  4498. string sql = @"
  4499. select isnull(AmountEnable,0) as AmountEnable ,ClassCode,isnull(EATTRIBUTE1,'1') as EATTRIBUTE1,InvName,InvStd from dbo.ICSInventory where InvCode='" + InvCode + "' and WorkPoint='"+ WorkPoint + "'";
  4500. return Repository().FindTableBySql(sql.ToString());
  4501. }
  4502. public string LotBindCode(String savePath)
  4503. {
  4504. //数据获取
  4505. try
  4506. {
  4507. int index = 1;
  4508. string msg = "";
  4509. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  4510. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  4511. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4512. SqlConnection conn = SqlHelper.GetDataCenterConn();
  4513. string sql = "";
  4514. int count = 0;
  4515. DataTable data = FileToExcel.ExcelToTable(savePath);
  4516. foreach (DataRow dr in data.Rows)
  4517. {
  4518. index++;
  4519. //string GUID = Guid.NewGuid().ToString();
  4520. string Code = dr["单据号"].ToString().Trim().ToUpper();
  4521. string Sequence = dr["单据行号"].ToString().Trim().ToUpper();
  4522. string LotNo = dr["条码"].ToString().Trim().ToUpper();
  4523. string Quantity = dr["条码数量"].ToString().Trim().ToUpper();
  4524. if (Code == "" || Code == null)
  4525. {
  4526. throw new Exception("第 " + index + " 行单据号不能为空!");
  4527. }
  4528. if (Sequence == "" || Sequence == null)
  4529. {
  4530. throw new Exception("第 " + index + " 行单据行号不能为空!");
  4531. }
  4532. if (LotNo == "" || LotNo == null)
  4533. {
  4534. throw new Exception("第 " + index + " 行条码不能为空!");
  4535. }
  4536. if (Quantity == "" || Quantity == null)
  4537. {
  4538. throw new Exception("第 " + index + " 行条码数量不能为空!");
  4539. }
  4540. string sqlCode = @" select a.MOCode,a.Sequence, a.Quantity,a.Amount,a.InvCode,isnull(c.LOTQTY,0) as LOTQTY,
  4541. case when b.EffectiveEnable='1' then getdate()+b.EffectiveDays else '2999-12-31 00:00:00.000' end as ExpirationDate,
  4542. a.ExtensionID
  4543. from ICSMO a
  4544. left join (
  4545. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  4546. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='3'
  4547. where isnull(a.EATTRIBUTE1,'')=''
  4548. group by b.TransCode,b.TransSequence
  4549. ) c on a.MOCode=c.TransCode and a.Sequence=c.TransSequence
  4550. 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}'";
  4551. sqlCode = string.Format(sqlCode, Code, Sequence, WorkPoint);
  4552. DataTable dd = SqlHelper.CmdExecuteDataTable(sqlCode);
  4553. if (dd == null || dd.Rows.Count <= 0)
  4554. {
  4555. throw new Exception("第 " + index + "行单号: " + Code + "行号" + Sequence + " 单据不存在!");
  4556. }
  4557. string ExtensionID = dd.Rows[0]["ExtensionID"].ToString();
  4558. string ExpirationDate= dd.Rows[0]["ExpirationDate"].ToString();
  4559. string InvCode = dd.Rows[0]["InvCode"].ToString();
  4560. decimal CQuantity = Convert.ToDecimal(dd.Rows[0]["Quantity"].ToString());
  4561. decimal CAmount = Convert.ToDecimal(dd.Rows[0]["Amount"].ToString());
  4562. decimal CLOTQTY = Convert.ToDecimal(dd.Rows[0]["LOTQTY"].ToString());
  4563. if (Convert.ToDecimal(Quantity) > (CQuantity- CLOTQTY))
  4564. {
  4565. throw new Exception("第 " + index + "行单号: " + Code + "行号" + Sequence + " 所输入条码数量超出该单据可生成数量!");
  4566. }
  4567. var Amount = CAmount / CQuantity * Convert.ToDecimal(Quantity);
  4568. sql += @"Insert INto ICSInventoryLot
  4569. ( ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,Amount,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint)
  4570. Values (newid(),'{0}','{1}',getdate(),'{2}','{3}','{4}','{5}','3','{6}','{7}',getdate(),'{8}')
  4571. ";
  4572. sql += @" Insert INto ICSInventoryLotDetail
  4573. ( LotNo,TransID,TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  4574. Values ('{0}','','{9}','{10}','{6}','{7}',getdate(),'{8}')";
  4575. sql = string.Format(sql, LotNo, InvCode, ExpirationDate, Quantity, Amount, ExtensionID, MUSER, MUSERNAME, WorkPoint, Code, Sequence);
  4576. }
  4577. count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4578. if (count > 0)
  4579. {
  4580. msg = "导入成功";
  4581. }
  4582. else
  4583. {
  4584. return "无有效的导入数据。";
  4585. }
  4586. return msg;
  4587. }
  4588. catch (Exception ex)
  4589. {
  4590. return ex.Message;
  4591. }
  4592. }
  4593. }
  4594. }