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.

5127 lines
286 KiB

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