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

3263 lines
172 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
2 years ago
3 years ago
  1. using NFine.Data.Extensions;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Data;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using NFine.Code;
  9. using NFine.Repository;
  10. using System.Data.Common;
  11. using NFine.Domain._03_Entity.SRM;
  12. using ICS.Application.Entity;
  13. using Newtonsoft.Json;
  14. using System.Configuration;
  15. using System.Data.SqlClient;
  16. using ICS.Data;
  17. using NFine.Domain._03_Entity.WMS;
  18. namespace NFine.Application.WMS
  19. {
  20. public class PickMaterialApp : RepositoryFactory<ICSVendor>
  21. {
  22. public static DataTable Invmes = new DataTable();
  23. //工单备料(工单子件)
  24. public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam)
  25. {
  26. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  27. DataTable dt = new DataTable();
  28. var queryParam = queryJson.ToJObject();
  29. List<DbParameter> parameter = new List<DbParameter>();
  30. StringBuilder sqlstring = new StringBuilder();
  31. #region [SQL]
  32. // 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,
  33. //case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  34. //from ICSMOPick a
  35. //left join ICSMO b on a.MODetailID=b.MODetailID and a.WorkPoint=b.WorkPoint
  36. //left join ICSWarehouse c on a.WHCode=c.WarehouseCode and a.WorkPoint=c.WorkPoint
  37. //left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  38. //left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  39. // sql += " WHERE 1=1 and e.ID is null";
  40. sqlstring.Append($@"select a.MOCode as Code,a.CreateDateTime as MTIME,a.createperson as MUSER,
  41. case when max(d.SourceID) is null then '' else '' end as IsNew,
  42. f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,
  43. f.cFree2 ,f.cFree3 ,f.cFree4 ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  44. from ICSMO a
  45. inner join ICSMOPick b on b.MODetailID=a.MODetailID and b.WorkPoint=a.WorkPoint
  46. left join ICSMOPickMerge d on d.SourceID=b.ID and d.WorkPoint=b.WorkPoint
  47. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  48. where a.WorkPoint='{WorkPoint}' ");
  49. if (!string.IsNullOrWhiteSpace(queryJson))
  50. {
  51. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  52. {
  53. sqlstring.Append($" and a.MOCode like '%{queryParam["POCode"]}%' ");
  54. }
  55. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  56. {
  57. sqlstring.Append($" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  58. }
  59. }
  60. sqlstring.Append(@" group by a.MOCode, a.WorkPoint,a.CreateDateTime,a.createperson,f.Colspan,f.ProjectCode,
  61. f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4,
  62. f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10");
  63. #endregion
  64. return Repository().FindTablePageBySql(sqlstring.ToString(), parameter.ToArray(), ref jqgridparam);
  65. }
  66. //工单备料(工单子件)子表查询
  67. public DataTable GetSubGridJson1(string Code)
  68. {
  69. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  70. DataTable dt = new DataTable();
  71. //var queryParam = queryJson.ToJObject();
  72. List<DbParameter> parameter = new List<DbParameter>();
  73. 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,
  74. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  75. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  76. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.IssueQuantity as IssueQuantity
  77. from ICSMOPick a
  78. left join ICSMO b on a.MODetailID=b.MODetailID and a.WorkPoint=b.WorkPoint
  79. left join ICSWarehouse c on a.WHCode=c.WarehouseCode and a.WorkPoint=c.WorkPoint
  80. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  81. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  82. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  83. where b.MOCode='{0}' and a.WorkPoint='{1}'";
  84. sql = string.Format(sql, Code, WorkPoint);
  85. return Repository().FindTableBySql(sql.ToString());
  86. }
  87. //工单领料(发料申请)
  88. public DataTable GetGridJson2(string queryJson, ref Pagination jqgridparam)
  89. {
  90. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  91. DataTable dt = new DataTable();
  92. var queryParam = queryJson.ToJObject();
  93. List<DbParameter> parameter = new List<DbParameter>();
  94. StringBuilder sqlString = new StringBuilder();
  95. #region [SQL]
  96. // 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,
  97. //case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  98. // from ICSMOApply a
  99. // left join ICSWarehouse b on a.WHCode = b.WarehouseCode and a.WorkPoint = b.WorkPoint
  100. // left join ICSInventory d on a.InvCode = d.InvCode and a.WorkPoint = d.WorkPoint
  101. // left join ICSMOPickMerge e on a.ID = e.SourceID and a.WorkPoint = e.WorkPoint
  102. sqlString.Append($@"
  103. SELECT * from(select row_number() over(partition by a.ApplyCode ORDER BY a.ApplyCode) as row,
  104. a.ApplyCode as Code,CONVERT(varchar(100),a.CreateDateTime,23) as MTIME,a.createperson as MUSER,a.WHCode,detail.LocationCode AS Area,
  105. a.EATTRIBUTE,a.Sets,a.OrderInvCode,a.OrderInvDescribe,a.BillType,a.Remarks,a.Desks,a.DispatchNumber,a.DispatcherName,
  106. a.ReceiverNumber,a.ReceiverName,a.Urgency,a.NeedDate,a.NeedTime,a.RemarksTerm,a.TextNumber,a.Unit,a.StockIndicator,
  107. case when max(e.SourceID) is null then '' else '' end as IsNew,f.Colspan ,
  108. g.Status,
  109. case when max(k.TransCode) is null then '' else '' end as IsOccupy,
  110. --case when sum(a.Quantity) =sum(IssueQuantity) and a.MUSERName != 'JOB' then ''
  111. --else (case when sum(a.Quantity) =sum(IssueQuantity) and a.MUSERName = 'JOB' then '' else '' end) end as Status,
  112. f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,
  113. f.cFree4 ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,
  114. case when a.MUSER!= 'JOB' then a.MUSER else '' end AS PickName
  115. from ICSMOApply a
  116. left JOIN ICSInventory b ON b.InvCode=a.InvCode
  117. LEFT JOIN ICSInventoryDetail detail ON b.InvCode=detail.INVCode AND a.WHCode=detail.WHCode AND a.WorkPoint=detail.WorkPoint
  118. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  119. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  120. left join (SELECT ApplyCode,
  121. case when sum(Quantity) =sum(IssueQuantity) and MUSERName != 'JOB' then ''
  122. else (case when sum(Quantity) =sum(IssueQuantity) and MUSERName = 'JOB' AND sum(IssueQuantity)>0 then ''
  123. else '' end) end as Status
  124. from ICSMOApply where WorkPoint='{WorkPoint}' and EATTRIBUTE!='17' group by ApplyCode,MUSERName) g on a.ApplyCode = g.ApplyCode
  125. 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'
  126. where a.WorkPoint='{WorkPoint}' and a.EATTRIBUTE!='17'");
  127. if (!string.IsNullOrWhiteSpace(queryJson))
  128. {
  129. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  130. {
  131. sqlString.Append($@" and a.ApplyCode like '%{queryParam["POCode"]}%' ");
  132. }
  133. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  134. {
  135. sqlString.Append($@" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  136. }
  137. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  138. {
  139. sqlString.Append($@" and a.WHCode like '%{queryParam["WHCode"]}%' ");
  140. }
  141. if (!string.IsNullOrWhiteSpace(queryParam["Area"].ToString()))
  142. {
  143. sqlString.Append($@" and detail.LocationCode like '%{queryParam["Area"]}%' ");
  144. }
  145. if (!string.IsNullOrWhiteSpace(queryParam["Order"].ToString()))
  146. {
  147. sqlString.Append($@" and a.OrderNumber like '%{queryParam["Order"]}%' ");
  148. }
  149. if (!string.IsNullOrWhiteSpace(queryParam["Container"].ToString()) && queryParam["Container"].ToString() == "2")
  150. {
  151. sqlString.Append($@" and (detail.LocationCode not in (SELECT F_Define2 FROM Sys_SRM_ItemsDetail
  152. WHERE
  153. F_Define3='HGAreaConfig' AND F_Define1=a.WHCode AND F_Define4=a.WorkPoint) OR detail.LocationCode is null OR detail.LocationCode='') ");
  154. }
  155. if (!string.IsNullOrWhiteSpace(queryParam["CreateDate"].ToString()))
  156. {
  157. sqlString.Append($@" and a.CreateDateTime >='{queryParam["CreateDate"].ToDate()}' and a.CreateDateTime <'{queryParam["CreateDate"].ToDate().AddDays(+1)}' ");
  158. }
  159. if (!string.IsNullOrWhiteSpace(queryParam["NeedDate"].ToString()))
  160. {
  161. sqlString.Append($@" and a.NeedDate like '%{queryParam["NeedDate"]}%' ");
  162. }
  163. }
  164. sqlString.Append(@"group by a.ApplyCode, a.WorkPoint,a.CreateDateTime,a.createperson,
  165. f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,f.cFree1,f.cFree2,
  166. f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10,g.Status,
  167. a.WHCode,detail.LocationCode,a.EATTRIBUTE,a.Sets,a.OrderInvCode,a.OrderInvDescribe,a.BillType,a.Remarks,a.Desks,a.DispatchNumber,a.DispatcherName,
  168. a.ReceiverNumber,a.ReceiverName,a.Urgency,a.NeedDate,a.NeedTime,a.RemarksTerm,a.TextNumber,a.Unit,a.StockIndicator,a.MUSERName,a.MUSER) as t where t.row=1");
  169. if (!string.IsNullOrWhiteSpace(queryParam["Status"].ToString()))
  170. {
  171. if (queryParam["Status"].ToString() == "3")
  172. {
  173. sqlString.Append($@" AND t.Status='已过账' ");
  174. }
  175. else if (queryParam["Status"].ToString() == "2")
  176. {
  177. sqlString.Append($@" AND t.Status='已配料' ");
  178. }
  179. else if (queryParam["Status"].ToString() == "1")
  180. {
  181. sqlString.Append($@" AND t.Status='未配料' ");
  182. }
  183. }
  184. #endregion
  185. return Repository().FindTablePageBySql(sqlString.ToString(), parameter.ToArray(), ref jqgridparam);
  186. }
  187. //工单领料(发料申请)子表查询
  188. public DataTable GetSubGridJson2(string queryJson, string Code, ref Pagination jqgridparam)
  189. {
  190. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  191. DataTable dt = new DataTable();
  192. var queryParam = queryJson.ToJObject();
  193. List<DbParameter> parameter = new List<DbParameter>();
  194. string sql = @"SELECT * FROM (select row_number() over(partition by a.ApplyCode,a.InvCode,a.Sequence ORDER BY a.ApplyCode) as row,
  195. a.ID,a.ApplyCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName ,a.InvCode,a.OrderNumber,
  196. a.EATTRIBUTE,a.Sets,a.OrderInvCode,a.OrderInvDescribe,a.BillType,a.Remarks,a.Desks,a.DispatchNumber,a.DispatcherName,
  197. a.ReceiverNumber,a.ReceiverName,a.Urgency,a.NeedDate,a.NeedTime,a.RemarksTerm,a.TextNumber,a.InvDescribe,a.Unit,a.StockIndicator,
  198. d.InvName,d.InvDesc,d.InvStd,d.InvUnit,detail.LocationCode AS Area,
  199. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  200. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  201. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.IssueQuantity as IssueQuantity
  202. from ICSMOApply a
  203. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  204. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  205. LEFT JOIN ICSInventoryDetail detail ON d.InvCode=detail.INVCode AND a.WHCode=detail.WHCode AND a.WorkPoint=detail.WorkPoint
  206. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  207. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  208. where a.ApplyCode='{0}' and a.WorkPoint='{1}' and a.EATTRIBUTE!='17'";
  209. if (!string.IsNullOrWhiteSpace(queryJson))
  210. {
  211. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  212. {
  213. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  214. }
  215. if (!string.IsNullOrWhiteSpace(queryParam["Area"].ToString()))
  216. {
  217. sql += " and detail.LocationCode like '%" + queryParam["Area"].ToString() + "%' ";
  218. }
  219. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  220. {
  221. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  222. }
  223. if (!string.IsNullOrWhiteSpace(queryParam["Order"].ToString()))
  224. {
  225. sql += $@" and a.OrderNumber like '%{queryParam["Order"]}%' ";
  226. }
  227. if (!string.IsNullOrWhiteSpace(queryParam["Container"].ToString()) && queryParam["Container"].ToString() == "2")
  228. {
  229. sql += $@" and (detail.LocationCode not in (SELECT F_Define2 FROM Sys_SRM_ItemsDetail
  230. WHERE
  231. F_Define3='HGAreaConfig' AND F_Define1=a.WHCode AND F_Define4=a.WorkPoint) OR detail.LocationCode is null OR detail.LocationCode='') ";
  232. }
  233. if (!string.IsNullOrWhiteSpace(queryParam["CreateDate"].ToString()))
  234. {
  235. sql += $@" and a.CreateDateTime like '%{queryParam["CreateDate"]}%' ";
  236. }
  237. if (!string.IsNullOrWhiteSpace(queryParam["NeedDate"].ToString()))
  238. {
  239. sql += $@" and a.NeedDate like '%{queryParam["NeedDate"]}%' ";
  240. }
  241. }
  242. sql += " ) c WHERE c.row=1 ";
  243. sql = string.Format(sql, Code, WorkPoint);
  244. //return Repository().FindTableBySql(sql.ToString());
  245. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  246. }
  247. //售后领料
  248. public DataTable GetGridJson12(string queryJson, ref Pagination jqgridparam)
  249. {
  250. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  251. DataTable dt = new DataTable();
  252. var queryParam = queryJson.ToJObject();
  253. List<DbParameter> parameter = new List<DbParameter>();
  254. StringBuilder sqlString = new StringBuilder();
  255. #region [SQL]
  256. // 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,
  257. //case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  258. // from ICSMOApply a
  259. // left join ICSWarehouse b on a.WHCode = b.WarehouseCode and a.WorkPoint = b.WorkPoint
  260. // left join ICSInventory d on a.InvCode = d.InvCode and a.WorkPoint = d.WorkPoint
  261. // left join ICSMOPickMerge e on a.ID = e.SourceID and a.WorkPoint = e.WorkPoint
  262. sqlString.Append($@"
  263. SELECT * from(select row_number() over(partition by a.ApplyCode ORDER BY a.ApplyCode) as row,
  264. a.ApplyCode as Code,CONVERT(varchar(100),a.CreateDateTime,23) as MTIME,a.createperson as MUSER,a.WHCode,detail.LocationCode AS Area,
  265. a.EATTRIBUTE,a.Sets,a.OrderInvCode,a.OrderInvDescribe,a.BillType,a.Remarks,a.Desks,a.DispatchNumber,a.DispatcherName,
  266. a.ReceiverNumber,a.ReceiverName,a.Urgency,a.NeedDate,a.NeedTime,a.RemarksTerm,a.TextNumber,a.Unit,a.StockIndicator,
  267. case when max(e.SourceID) is null then '' else '' end as IsNew,f.Colspan ,
  268. g.Status,
  269. case when max(k.TransCode) is null then '' else '' end as IsOccupy,
  270. f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,
  271. f.cFree4 ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,
  272. case when a.MUSER!= 'JOB' then a.MUSER else '' end AS PickName
  273. from ICSMOApply a
  274. left JOIN ICSInventory b ON b.InvCode=a.InvCode
  275. LEFT JOIN ICSInventoryDetail detail ON b.InvCode=detail.INVCode AND a.WHCode=detail.WHCode AND a.WorkPoint=detail.WorkPoint
  276. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  277. left join (SELECT ApplyCode,
  278. case when sum(Quantity) =sum(IssueQuantity) and MUSERName != 'JOB' then ''
  279. else (case when sum(Quantity) =sum(IssueQuantity) and MUSERName = 'JOB'AND sum(IssueQuantity)>0 then ''
  280. else '' end) end as Status
  281. from ICSMOApply where WorkPoint='{WorkPoint}' and EATTRIBUTE='17' group by ApplyCode,MUSERName) g on a.ApplyCode = g.ApplyCode
  282. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  283. 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'
  284. where a.WorkPoint='{WorkPoint}' and a.EATTRIBUTE='17' ");
  285. if (!string.IsNullOrWhiteSpace(queryJson))
  286. {
  287. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  288. {
  289. sqlString.Append($@" and a.ApplyCode like '%{queryParam["POCode"]}%' ");
  290. }
  291. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  292. {
  293. sqlString.Append($@" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  294. }
  295. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  296. {
  297. sqlString.Append($@" and a.WHCode like '%{queryParam["WHCode"]}%' ");
  298. }
  299. if (!string.IsNullOrWhiteSpace(queryParam["Area"].ToString()))
  300. {
  301. sqlString.Append($@" and detail.LocationCode like '%{queryParam["Area"]}%' ");
  302. }
  303. if (!string.IsNullOrWhiteSpace(queryParam["Order"].ToString()))
  304. {
  305. sqlString.Append($@" and a.OrderNumber like '%{queryParam["Order"]}%' ");
  306. }
  307. if (!string.IsNullOrWhiteSpace(queryParam["Container"].ToString()) && queryParam["Container"].ToString() == "2")
  308. {
  309. sqlString.Append($@" and (detail.LocationCode not in (SELECT F_Define2 FROM Sys_SRM_ItemsDetail
  310. WHERE
  311. F_Define3='HGAreaConfig' AND F_Define1=a.WHCode AND F_Define4=a.WorkPoint) OR detail.LocationCode is null OR detail.LocationCode='') ");
  312. }
  313. if (!string.IsNullOrWhiteSpace(queryParam["CreateDate"].ToString()))
  314. {
  315. sqlString.Append($@" and a.CreateDateTime >='{queryParam["CreateDate"].ToDate()}' and a.CreateDateTime <'{queryParam["CreateDate"].ToDate().AddDays(+1)}' ");
  316. }
  317. if (!string.IsNullOrWhiteSpace(queryParam["NeedDate"].ToString()))
  318. {
  319. sqlString.Append($@" and a.NeedDate like '%{queryParam["NeedDate"]}%' ");
  320. }
  321. }
  322. sqlString.Append(@"group by a.ApplyCode, a.WorkPoint,a.CreateDateTime,a.createperson,
  323. f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,f.cFree1,f.cFree2,
  324. f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10,g.Status,
  325. a.WHCode,detail.LocationCode,a.EATTRIBUTE,a.Sets,a.OrderInvCode,a.OrderInvDescribe,a.BillType,a.Remarks,a.Desks,a.DispatchNumber,a.DispatcherName,
  326. a.ReceiverNumber,a.ReceiverName,a.Urgency,a.NeedDate,a.NeedTime,a.RemarksTerm,a.TextNumber,a.Unit,a.StockIndicator,a.MUSERName,a.MUSER) as t where t.row=1");
  327. if (!string.IsNullOrWhiteSpace(queryParam["Status"].ToString()))
  328. {
  329. if (queryParam["Status"].ToString() == "3")
  330. {
  331. sqlString.Append($@" AND t.Status='已过账' ");
  332. }
  333. else if (queryParam["Status"].ToString() == "2")
  334. {
  335. sqlString.Append($@" AND t.Status='已配料' ");
  336. }
  337. else if (queryParam["Status"].ToString() == "1")
  338. {
  339. sqlString.Append($@" AND t.Status='未配料' ");
  340. }
  341. }
  342. #endregion
  343. return Repository().FindTablePageBySql(sqlString.ToString(), parameter.ToArray(), ref jqgridparam);
  344. }
  345. //售后领料(子表查询)
  346. public DataTable GetSubGridJson12(string queryJson, string Code)
  347. {
  348. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  349. DataTable dt = new DataTable();
  350. var queryParam = queryJson.ToJObject();
  351. List<DbParameter> parameter = new List<DbParameter>();
  352. string sql = @"SELECT * FROM (select row_number() over(partition by a.ApplyCode,a.InvCode,a.Sequence ORDER BY a.ApplyCode) as row,
  353. a.ID,a.ApplyCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName ,a.InvCode,a.OrderNumber,
  354. a.EATTRIBUTE,a.Sets,a.OrderInvCode,a.OrderInvDescribe,a.BillType,a.Remarks,a.Desks,a.DispatchNumber,a.DispatcherName,
  355. a.ReceiverNumber,a.ReceiverName,a.Urgency,a.NeedDate,a.NeedTime,a.RemarksTerm,a.TextNumber,a.InvDescribe,a.Unit,a.StockIndicator,
  356. d.InvName,d.InvDesc,d.InvStd,d.InvUnit,detail.LocationCode AS Area,
  357. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  358. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  359. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.IssueQuantity as IssueQuantity
  360. from ICSMOApply a
  361. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  362. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  363. LEFT JOIN ICSInventoryDetail detail ON d.InvCode=detail.INVCode AND a.WHCode=detail.WHCode AND a.WorkPoint=detail.WorkPoint
  364. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  365. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  366. where a.ApplyCode='{0}' and a.WorkPoint='{1}' and a.EATTRIBUTE='17'";
  367. if (!string.IsNullOrWhiteSpace(queryJson))
  368. {
  369. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  370. {
  371. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  372. }
  373. if (!string.IsNullOrWhiteSpace(queryParam["Area"].ToString()))
  374. {
  375. sql += " and detail.LocationCode like '%" + queryParam["Area"].ToString() + "%' ";
  376. }
  377. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  378. {
  379. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  380. }
  381. if (!string.IsNullOrWhiteSpace(queryParam["Order"].ToString()))
  382. {
  383. sql += $@" and a.OrderNumber like '%{queryParam["Order"]}%' ";
  384. }
  385. if (!string.IsNullOrWhiteSpace(queryParam["Container"].ToString()) && queryParam["Container"].ToString() == "2")
  386. {
  387. sql += $@" and (detail.LocationCode not in (SELECT F_Define2 FROM Sys_SRM_ItemsDetail
  388. WHERE
  389. F_Define3='HGAreaConfig' AND F_Define1=a.WHCode AND F_Define4=a.WorkPoint) OR detail.LocationCode is null OR detail.LocationCode='') ";
  390. }
  391. if (!string.IsNullOrWhiteSpace(queryParam["CreateDate"].ToString()))
  392. {
  393. sql += $@" and a.CreateDateTime like '%{queryParam["CreateDate"]}%' ";
  394. }
  395. if (!string.IsNullOrWhiteSpace(queryParam["NeedDate"].ToString()))
  396. {
  397. sql += $@" and a.NeedDate like '%{queryParam["NeedDate"]}%' ";
  398. }
  399. }
  400. sql += " ) c WHERE c.row=1 ";
  401. sql = string.Format(sql, Code, WorkPoint);
  402. return Repository().FindTableBySql(sql.ToString());
  403. }
  404. //工单材料出库(材料出库)
  405. public DataTable GetGridJson3(string queryJson, ref Pagination jqgridparam)
  406. {
  407. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  408. DataTable dt = new DataTable();
  409. var queryParam = queryJson.ToJObject();
  410. List<DbParameter> parameter = new List<DbParameter>();
  411. StringBuilder sqlString = new StringBuilder();
  412. #region [SQL]
  413. // 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,
  414. // case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  415. // from ICSMOIssue a
  416. //left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  417. //left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  418. //left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint ";
  419. // sql += " WHERE 1=1 and e.ID is null";
  420. sqlString.Append($@"SELECT * FROM(SELECT row_number ( ) OVER ( partition BY a.IssueCode ORDER BY a.IssueCode ) AS row,
  421. a.IssueCode as Code,a.CreateDateTime as MTIME,a.createperson as MUSER,
  422. case when max(e.SourceID) is null then '' else ''
  423. end as IsNew,f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,f.cFree1,f.cFree2,
  424. f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10
  425. from ICSMOIssue a
  426. left join ICSMOPickMerge e on a.ID = e.SourceID and a.WorkPoint = e.WorkPoint
  427. left join ICSExtension f on a.ExtensionID = f.ID and a.WorkPoint = f.WorkPoint
  428. where a.WorkPoint = '{WorkPoint}' ");
  429. if (!string.IsNullOrWhiteSpace(queryJson))
  430. {
  431. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  432. {
  433. sqlString.Append($@" and a.IssueCode like '%{queryParam["POCode"]}%' ");
  434. }
  435. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  436. {
  437. sqlString.Append($@" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  438. }
  439. }
  440. sqlString.Append(@"group by a.IssueCode,a.CreateDateTime,a.createperson,f.Colspan,f.ProjectCode,f.BatchCode,
  441. f.Version,f.Brand,f.cFree1,f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,
  442. f.cFree8, f.cFree9, f.cFree10 ) AS t WHERE t.row= 1 ");
  443. #endregion
  444. return Repository().FindTablePageBySql(sqlString.ToString(), parameter.ToArray(), ref jqgridparam);
  445. }
  446. //工单材料出库(材料出库)子表查询
  447. public DataTable GetSubGridJson3(string Code)
  448. {
  449. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  450. DataTable dt = new DataTable();
  451. //var queryParam = queryJson.ToJObject();
  452. List<DbParameter> parameter = new List<DbParameter>();
  453. 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,
  454. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  455. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  456. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.IssueQuantity as IssueQuantity
  457. from ICSMOIssue a
  458. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.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 a.IssueCode='{0}' and a.WorkPoint='{1}'";
  463. sql = string.Format(sql, Code, WorkPoint);
  464. return Repository().FindTableBySql(sql.ToString());
  465. }
  466. //委外备料(委外备料)
  467. public DataTable GetGridJson4(string queryJson, ref Pagination jqgridparam)
  468. {
  469. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  470. DataTable dt = new DataTable();
  471. var queryParam = queryJson.ToJObject();
  472. List<DbParameter> parameter = new List<DbParameter>();
  473. StringBuilder sqlString = new StringBuilder();
  474. #region [SQL]
  475. sqlString.Append($@"select * from (select row_number() over(partition by b.OOCode order by b.OOCode) row, b.OOCode as Code,
  476. b.CreateDateTime as MTIME,
  477. b.CreatePerson as MUSER,
  478. case
  479. when max(e.SourceID) is null then ''
  480. else ''
  481. end as IsNew,
  482. f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,f.cFree1,f.cFree2,
  483. f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10
  484. from ICSOOPick a
  485. inner join ICSOutsourcingOrder b on a.OODetailID = b.OODetailID and a.WorkPoint = b.WorkPoint
  486. left join ICSMOPickMerge e on a.ID = e.SourceID and a.WorkPoint = e.WorkPoint
  487. left join ICSExtension f on a.ExtensionID = f.ID and a.WorkPoint = f.WorkPoint
  488. WHERE b.WorkPoint = '{WorkPoint}' ");
  489. if (!string.IsNullOrWhiteSpace(queryJson))
  490. {
  491. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  492. {
  493. sqlString.Append($@" and a.OOCode like '%{queryParam["POCode"]}%' ");
  494. }
  495. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  496. {
  497. sqlString.Append($@" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  498. }
  499. }
  500. sqlString.Append(@" group by b.OOCode,b.CreateDateTime,b.CreatePerson,f.Colspan ,f.ProjectCode ,
  501. f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4,
  502. f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10) t where t.row=1");
  503. #endregion
  504. return Repository().FindTablePageBySql(sqlString.ToString(), parameter.ToArray(), ref jqgridparam);
  505. }
  506. //委外备料(委外备料)子表查询
  507. public DataTable GetSubGridJson4(string Code)
  508. {
  509. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  510. DataTable dt = new DataTable();
  511. //var queryParam = queryJson.ToJObject();
  512. List<DbParameter> parameter = new List<DbParameter>();
  513. 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,
  514. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  515. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  516. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.IssueQuantity as IssueQuantity
  517. from ICSOOPick a
  518. left join ICSOutsourcingOrder b on a.OODetailID=b.OODetailID and a.WorkPoint=b.WorkPoint
  519. left join ICSWarehouse c on a.WHCode=c.WarehouseCode and a.WorkPoint=c.WorkPoint
  520. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  521. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  522. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  523. where b.OOCode='{0}' and b.WorkPoint='{1}'";
  524. sql = string.Format(sql, Code, WorkPoint);
  525. return Repository().FindTableBySql(sql.ToString());
  526. }
  527. //委外领料(委外发料申请)
  528. public DataTable GetGridJson5(string queryJson, ref Pagination jqgridparam)
  529. {
  530. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  531. DataTable dt = new DataTable();
  532. var queryParam = queryJson.ToJObject();
  533. List<DbParameter> parameter = new List<DbParameter>();
  534. StringBuilder sqlString = new StringBuilder();
  535. #region [SQL]
  536. // 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,
  537. //case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  538. // from ICSOApply a
  539. //left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  540. //left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  541. //left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  542. // sql += " WHERE 1=1 and e.ID is null";
  543. sqlString.Append($@"select * from (select row_number() over (partition by a.ApplyCode order by a.ApplyCode ) row, a.ApplyCode as Code,CONVERT(varchar(100),a.CreateDateTime,23) as MTIME,a.CreatePerson as MUSER,
  544. case when max(e.SourceID) is null then ''
  545. else ''
  546. end as IsNew,
  547. case when max(k.TransCode) is null then '' else '' end as IsOccupy,
  548. g.Status as Status1,
  549. f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,f.cFree1,
  550. f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10,a.ID
  551. from ICSOApply a
  552. left join ICSMOPickMerge e on a.ID = e.SourceID and a.WorkPoint = e.WorkPoint
  553. left join ICSExtension f on a.ExtensionID = f.ID and a.WorkPoint = f.WorkPoint
  554. left join (SELECT ApplyCode,
  555. case when sum(Quantity) =sum(IssueQuantity) AND sum(IssueQuantity)>0 then ''
  556. else '' end as Status
  557. from ICSOApply
  558. where WorkPoint='{WorkPoint}'
  559. group by ApplyCode) g on a.ApplyCode = g.ApplyCode
  560. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  561. LEFT JOIN ICSInventoryDetail detail ON d.InvCode=detail.INVCode AND a.WHCode=detail.WHCode AND a.WorkPoint=detail.WorkPoint
  562. 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'
  563. where a.WorkPoint = '{WorkPoint}'");
  564. if (!string.IsNullOrWhiteSpace(queryJson))
  565. {
  566. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  567. {
  568. sqlString.Append($@" and a.ApplyCode like '%{queryParam["POCode"]}%' ");
  569. }
  570. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  571. {
  572. sqlString.Append($@" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  573. }
  574. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  575. {
  576. sqlString.Append($@" and a.WHCode like '%{queryParam["WHCode"]}%' ");
  577. }
  578. if (!string.IsNullOrWhiteSpace(queryParam["Area"].ToString()))
  579. {
  580. sqlString.Append($@" and detail.LocationCode like '%{queryParam["Area"]}%' ");
  581. }
  582. if (!string.IsNullOrWhiteSpace(queryParam["Container"].ToString()) && queryParam["Container"].ToString() == "2")
  583. {
  584. sqlString.Append($@" and (detail.LocationCode not in (SELECT F_Define2 FROM Sys_SRM_ItemsDetail
  585. WHERE
  586. F_Define3='HGAreaConfig' AND F_Define1=a.WHCode AND F_Define4=a.WorkPoint) OR detail.LocationCode is null OR detail.LocationCode='') ");
  587. }
  588. }
  589. sqlString.Append(@"group by a.ApplyCode,a.CreateDateTime,a.CreatePerson,f.Colspan,f.ProjectCode,
  590. f.BatchCode,f.Version,f.Brand,f.cFree1,f.cFree2,f.cFree3,f.cFree4,f.cFree5,
  591. f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10,a.ID,g.Status ) t where row=1");
  592. if (!string.IsNullOrWhiteSpace(queryParam["Status"].ToString()))
  593. {
  594. if (queryParam["Status1"].ToString() == "1")
  595. {
  596. sqlString.Append($@" AND t.Status1='已过账' ");
  597. }
  598. else
  599. {
  600. sqlString.Append($@" AND t.Status1='未过账' ");
  601. }
  602. }
  603. #endregion
  604. return Repository().FindTablePageBySql(sqlString.ToString(), parameter.ToArray(), ref jqgridparam);
  605. }
  606. //委外领料(委外发料申请)子表查询
  607. public DataTable GetSubGridJson5(string Code, string queryJson, ref Pagination jqgridparam)
  608. {
  609. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  610. DataTable dt = new DataTable();
  611. var queryParam = queryJson.ToJObject();
  612. List<DbParameter> parameter = new List<DbParameter>();
  613. string sql = @"SELECT * FROM (select row_number() over(partition by a.ApplyCode,a.InvCode,a.Sequence ORDER BY a.ApplyCode) as row,
  614. a.ID,a.ApplyCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode, a.SourceCode,a.SourceSequence,a.VenCode,a.VenName,
  615. b.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  616. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity,detail.LocationCode AS Area,
  617. f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  618. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.IssueQuantity as IssueQuantity
  619. from ICSOApply a
  620. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  621. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  622. LEFT JOIN ICSInventoryDetail detail ON d.InvCode=detail.INVCode AND a.WHCode=detail.WHCode AND a.WorkPoint=detail.WorkPoint
  623. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  624. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  625. where a.ApplyCode='{0}' and a.WorkPoint='{1}'";
  626. if (!string.IsNullOrWhiteSpace(queryJson))
  627. {
  628. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  629. {
  630. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  631. }
  632. if (!string.IsNullOrWhiteSpace(queryParam["Area"].ToString()))
  633. {
  634. sql += " and detail.LocationCode like '%" + queryParam["Area"].ToString() + "%' ";
  635. }
  636. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  637. {
  638. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  639. }
  640. if (!string.IsNullOrWhiteSpace(queryParam["Container"].ToString()) && queryParam["Container"].ToString() == "2")
  641. {
  642. sql += $@" and (detail.LocationCode not in (SELECT F_Define2 FROM Sys_SRM_ItemsDetail
  643. WHERE
  644. F_Define3='HGAreaConfig' AND F_Define1=a.WHCode AND F_Define4=a.WorkPoint) OR detail.LocationCode is null OR detail.LocationCode='') ";
  645. }
  646. }
  647. sql += " ) c WHERE c.row=1 ";
  648. sql = string.Format(sql, Code, WorkPoint);
  649. //return Repository().FindTableBySql(sql.ToString());
  650. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  651. }
  652. //委外材料出库(委外发料申请)
  653. public DataTable GetGridJson6(string queryJson, ref Pagination jqgridparam)
  654. {
  655. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  656. DataTable dt = new DataTable();
  657. var queryParam = queryJson.ToJObject();
  658. List<DbParameter> parameter = new List<DbParameter>();
  659. StringBuilder sqlString = new StringBuilder();
  660. #region [SQL]
  661. // 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,
  662. //case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  663. // from ICSOIssue a
  664. //left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  665. //left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  666. //left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  667. // sql += " WHERE 1=1 and e.ID is null";
  668. sqlString.Append($@"select * from(select row_number() over(partition by a.IssueCode order by a.IssueCode) row, a.IssueCode as Code,
  669. a.CreateDateTime as MTIME,
  670. a.CreatePerson as MUSER,
  671. case
  672. when max(e.SourceID) is null then ''
  673. else ''
  674. end as IsNew,f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,
  675. f.cFree1,f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,
  676. f.cFree8,f.cFree9,f.cFree10
  677. from ICSOIssue a
  678. left join ICSMOPickMerge e on a.ID = e.SourceID and a.WorkPoint = e.WorkPoint
  679. left join ICSExtension f on a.ExtensionID = f.ID and a.WorkPoint = f.WorkPoint
  680. where a.WorkPoint = '{WorkPoint}'");
  681. if (!string.IsNullOrWhiteSpace(queryJson))
  682. {
  683. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  684. {
  685. sqlString.Append($@" and a.IssueCode like '%{queryParam["POCode"]}%' ");
  686. }
  687. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  688. {
  689. sqlString.Append($@" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  690. }
  691. }
  692. sqlString.Append(@"group by a.IssueCode,a.CreateDateTime,a.CreatePerson,f.Colspan,f.ProjectCode,
  693. f.BatchCode,f.Version,f.Brand,f.cFree1,f.cFree2,f.cFree3,f.cFree4,f.cFree5,
  694. f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10) t where t.row=1");
  695. #endregion
  696. return Repository().FindTablePageBySql(sqlString.ToString(), parameter.ToArray(), ref jqgridparam);
  697. }
  698. //委外材料出库(委外发料申请)子表查询
  699. public DataTable GetSubGridJson6(string Code)
  700. {
  701. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  702. DataTable dt = new DataTable();
  703. //var queryParam = queryJson.ToJObject();
  704. List<DbParameter> parameter = new List<DbParameter>();
  705. 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,
  706. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  707. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  708. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.IssueQuantity as IssueQuantity
  709. from ICSOIssue a
  710. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  711. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  712. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  713. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  714. where a.IssueCode='{0}' and a.WorkPoint='{1}'";
  715. sql = string.Format(sql, Code, WorkPoint);
  716. return Repository().FindTableBySql(sql.ToString());
  717. }
  718. //销售发货(销售发货)
  719. public DataTable GetGridJson7(string queryJson, ref Pagination jqgridparam)
  720. {
  721. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  722. DataTable dt = new DataTable();
  723. var queryParam = queryJson.ToJObject();
  724. List<DbParameter> parameter = new List<DbParameter>();
  725. StringBuilder sqlString = new StringBuilder();
  726. #region [SQL]
  727. // 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,
  728. //case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  729. // from ICSSDN a
  730. //left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  731. //left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  732. //left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  733. // sql += " WHERE 1=1 and a.Type='1' and e.ID is null";
  734. sqlString.Append($@"SELECT * from (SELECT Row_Number() over(partition by a.SDNCode Order by a.SDNCode) as r, a.SDNCode AS Code,
  735. CONVERT(varchar(100),a.CreateDateTime,23) AS MTIME,
  736. a.CreatePerson AS MUSER,
  737. a.CusCode,a.CusName,
  738. (CASE WHEN max(e.SourceID) IS NULL THEN '' ELSE '' END) AS IsNew,
  739. case when max(k.TransCode) is null then '' else '' end as IsOccupy,
  740. case when sum(a.Quantity) =sum(SDNQuantity) then ''
  741. when sum(a.Quantity)!=sum(SDNQuantity) AND sum(SDNQuantity)>0 then ''
  742. else '' end as Status,
  743. f.Colspan, f.ProjectCode, f.BatchCode, f.Version, f.Brand,
  744. f.cFree1, f.cFree2, f.cFree3, f.cFree4, f.cFree5, f.cFree6, f.cFree7, f.cFree8, f.cFree9, f.cFree10,a.ID
  745. FROM ICSSDN a
  746. LEFT JOIN ICSMOPickMerge e ON a.ID = e.SourceID AND a.WorkPoint = e.WorkPoint
  747. LEFT JOIN ICSExtension f ON a.ExtensionID = f.ID AND a.WorkPoint = f.WorkPoint
  748. LEFT JOIN ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  749. LEFT JOIN ICSInventoryDetail detail ON d.InvCode=detail.INVCode AND a.WHCode=detail.WHCode AND a.WorkPoint=detail.WorkPoint
  750. 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'
  751. WHERE a.WorkPoint = '{WorkPoint}' ");
  752. if (!string.IsNullOrWhiteSpace(queryJson))
  753. {
  754. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  755. {
  756. sqlString.Append($" and a.SDNCode like '%{queryParam["POCode"]}%' ");
  757. }
  758. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  759. {
  760. sqlString.Append($" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  761. }
  762. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  763. {
  764. sqlString.Append($@" and a.WHCode like '%{queryParam["WHCode"]}%' ");
  765. }
  766. if (!string.IsNullOrWhiteSpace(queryParam["Area"].ToString()))
  767. {
  768. sqlString.Append($@" and detail.LocationCode like '%{queryParam["Area"]}%' ");
  769. }
  770. if (!string.IsNullOrWhiteSpace(queryParam["CusCode"].ToString()))
  771. {
  772. sqlString.Append($@" and a.CusCode like '%{queryParam["CusCode"]}%' ");
  773. }
  774. if (!string.IsNullOrWhiteSpace(queryParam["CusName"].ToString()))
  775. {
  776. sqlString.Append($@" and a.CusName like '%{queryParam["CusName"]}%' ");
  777. }
  778. if (!string.IsNullOrWhiteSpace(queryParam["Container"].ToString()) && queryParam["Container"].ToString() == "2")
  779. {
  780. sqlString.Append($@" and (detail.LocationCode not in (SELECT F_Define2 FROM Sys_SRM_ItemsDetail
  781. WHERE
  782. F_Define3='HGAreaConfig' AND F_Define1=a.WHCode AND F_Define4=a.WorkPoint) OR detail.LocationCode is null OR detail.LocationCode='') ");
  783. }
  784. }
  785. sqlString.Append(@"GROUP BY a.SDNCode, a.CreateDateTime, a.CreatePerson, f.Colspan, f.ProjectCode, f.BatchCode, f.Version, f.Brand,
  786. f.cFree1, f.cFree2, f.cFree3, f.cFree4, f.cFree5, f.cFree6, f.cFree7, f.cFree8, f.cFree9, f.cFree10,a.ID,a.CusCode,a.CusName) t WHERE t.r=1");
  787. #endregion
  788. return Repository().FindTablePageBySql(sqlString.ToString(), parameter.ToArray(), ref jqgridparam);
  789. }
  790. //销售发货(销售发货)子表查询
  791. public DataTable GetSubGridJson7(string Code, string queryJson, ref Pagination jqgridparam)
  792. {
  793. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  794. DataTable dt = new DataTable();
  795. var queryParam = queryJson.ToJObject();
  796. List<DbParameter> parameter = new List<DbParameter>();
  797. string sql = @"SELECT * FROM (select row_number() over(partition by a.SDNCode,a.InvCode,a.Sequence ORDER BY a.SDNCode) as row,
  798. a.ID,a.SDNCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName,a.InvCode
  799. ,a.WorkPoint,a.Points,a.DeliveryType,a.DeliveryDescribe,a.InvDescribe,a.OtherDescribe,a.CusCode,a.CusName,
  800. a.SalesUnit,a.StockIndicator,a.IsSerialNumber,
  801. d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  802. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity,detail.LocationCode AS Area
  803. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  804. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.SDNQuantity as IssueQuantity
  805. from ICSSDN a
  806. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  807. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  808. LEFT JOIN ICSInventoryDetail detail ON d.InvCode=detail.INVCode AND a.WHCode=detail.WHCode AND a.WorkPoint=detail.WorkPoint
  809. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  810. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  811. where a.SDNCode='{0}' and a.WorkPoint='{1}'";
  812. if (!string.IsNullOrWhiteSpace(queryJson))
  813. {
  814. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  815. {
  816. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  817. }
  818. if (!string.IsNullOrWhiteSpace(queryParam["Area"].ToString()))
  819. {
  820. sql += " and detail.LocationCode like '%" + queryParam["Area"].ToString() + "%' ";
  821. }
  822. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  823. {
  824. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  825. }
  826. if (!string.IsNullOrWhiteSpace(queryParam["CusCode"].ToString()))
  827. {
  828. sql += $@" and a.CusCode like '%{queryParam["CusCode"]}%' ";
  829. }
  830. if (!string.IsNullOrWhiteSpace(queryParam["CusName"].ToString()))
  831. {
  832. sql += $@" and a.CusName like '%{queryParam["CusName"]}%' ";
  833. }
  834. if (!string.IsNullOrWhiteSpace(queryParam["Container"].ToString()) && queryParam["Container"].ToString() == "2")
  835. {
  836. sql += $@" and (detail.LocationCode not in (SELECT F_Define2 FROM Sys_SRM_ItemsDetail
  837. WHERE
  838. F_Define3='HGAreaConfig' AND F_Define1=a.WHCode AND F_Define4=a.WorkPoint) OR detail.LocationCode is null OR detail.LocationCode='') ";
  839. }
  840. }
  841. sql += " ) c WHERE c.row=1 ";
  842. sql = string.Format(sql, Code, WorkPoint);
  843. //return Repository().FindTableBySql(sql.ToString());
  844. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  845. }
  846. //其它出库(其它出库)
  847. public DataTable GetGridJson8(string queryJson, ref Pagination jqgridparam)
  848. {
  849. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  850. DataTable dt = new DataTable();
  851. var queryParam = queryJson.ToJObject();
  852. List<DbParameter> parameter = new List<DbParameter>();
  853. StringBuilder sqlString = new StringBuilder();
  854. #region [SQL]
  855. // 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,
  856. //case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  857. //from ICSOtherOut a
  858. //left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  859. //left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  860. //left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  861. // sql += " WHERE 1=1 and e.ID is null ";
  862. sqlString.Append($@"select * from(select row_number() over(partition by a.OutCode order by a.OutCode) row, a.OutCode as Code,
  863. CONVERT(varchar(100),a.CreateDateTime,23) as MTIME,
  864. a.CreatePerson as MUSER,
  865. case
  866. when max(e.SourceID) is null then ''
  867. else ''
  868. end as IsNew,
  869. case when max(k.TransCode) is null then '' else '' end as IsOccupy,
  870. g.Status as Status1,
  871. f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,f.cFree1,
  872. f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10,a.ID
  873. from ICSOtherOut a
  874. left join ICSMOPickMerge e on a.ID = e.SourceID and a.WorkPoint = e.WorkPoint
  875. left join (SELECT OutCode,case when sum(Quantity) =sum(OutQuantity) AND sum(OutQuantity)>0 then '' else '' end as Status
  876. from ICSOtherOut where WorkPoint='{WorkPoint}' group by OutCode) g on a.OutCode = g.OutCode
  877. left join ICSExtension f on a.ExtensionID = f.ID and a.WorkPoint = f.WorkPoint
  878. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  879. LEFT JOIN ICSInventoryDetail detail ON d.InvCode=detail.INVCode AND a.WHCode=detail.WHCode AND a.WorkPoint=detail.WorkPoint
  880. 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'
  881. where a.WorkPoint = '{WorkPoint}'");
  882. #endregion
  883. if (!string.IsNullOrWhiteSpace(queryJson))
  884. {
  885. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  886. {
  887. sqlString.Append($@" and a.OutCode like '%{queryParam["POCode"]}%' ");
  888. }
  889. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  890. {
  891. sqlString.Append($@" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  892. }
  893. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  894. {
  895. sqlString.Append($@" and a.WHCode like '%{queryParam["WHCode"]}%' ");
  896. }
  897. if (!string.IsNullOrWhiteSpace(queryParam["Area"].ToString()))
  898. {
  899. sqlString.Append($@" and detail.LocationCode like '%{queryParam["Area"]}%' ");
  900. }
  901. if (!string.IsNullOrWhiteSpace(queryParam["Container"].ToString()) && queryParam["Container"].ToString() == "2")
  902. {
  903. sqlString.Append($@" and (detail.LocationCode not in (SELECT F_Define2 FROM Sys_SRM_ItemsDetail
  904. WHERE
  905. F_Define3='HGAreaConfig' AND F_Define1=a.WHCode AND F_Define4=a.WorkPoint) OR detail.LocationCode is null OR detail.LocationCode='') ");
  906. }
  907. }
  908. sqlString.Append(@" group by a.OutCode,a.CreateDateTime,a.CreatePerson,f.Colspan,f.ProjectCode,f.BatchCode,
  909. f.Version,f.Brand,f.cFree1,f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,
  910. f.cFree7,f.cFree8,f.cFree9,f.cFree10,a.ID,g.Status) t where t.row=1");
  911. if (!string.IsNullOrWhiteSpace(queryParam["Status"].ToString()))
  912. {
  913. if (queryParam["Status1"].ToString() == "1")
  914. {
  915. sqlString.Append($@" AND t.Status1='已过账' ");
  916. }
  917. else
  918. {
  919. sqlString.Append($@" AND t.Status1='未过账' ");
  920. }
  921. }
  922. return Repository().FindTablePageBySql(sqlString.ToString(), parameter.ToArray(), ref jqgridparam);
  923. }
  924. //其它出库(其它出库)子表查询
  925. public DataTable GetSubGridJson8(string Code, string queryJson, ref Pagination jqgridparam)
  926. {
  927. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  928. DataTable dt = new DataTable();
  929. var queryParam = queryJson.ToJObject();
  930. List<DbParameter> parameter = new List<DbParameter>();
  931. string sql = @"SELECT * FROM (select row_number() over(partition by a.OutCode,a.InvCode,a.Sequence ORDER BY a.OutCode) as row,
  932. a.ID,a.OutCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName,a.Quantity,
  933. a.InvCode,a.WorkPoint,a.OrderType, a.TypeDescribe,a.CostCenter,a.Remarks,a.PersonNumber,a.InvDescribe,
  934. a.Unit,a.StockIndicator,
  935. d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  936. case when e.SourceID is null then '' else '' end as IsNew,detail.LocationCode AS Area
  937. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  938. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.OutQuantity as IssueQuantity
  939. from ICSOtherOut a
  940. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  941. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  942. LEFT JOIN ICSInventoryDetail detail ON d.InvCode=detail.INVCode AND a.WHCode=detail.WHCode AND a.WorkPoint=detail.WorkPoint
  943. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  944. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  945. where a.OutCode='{0}' and a.WorkPoint='{1}'";
  946. if (!string.IsNullOrWhiteSpace(queryJson))
  947. {
  948. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  949. {
  950. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  951. }
  952. if (!string.IsNullOrWhiteSpace(queryParam["Area"].ToString()))
  953. {
  954. sql += " and detail.LocationCode like '%" + queryParam["Area"].ToString() + "%' ";
  955. }
  956. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  957. {
  958. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  959. }
  960. if (!string.IsNullOrWhiteSpace(queryParam["Container"].ToString()) && queryParam["Container"].ToString() == "2")
  961. {
  962. sql += $@" and (detail.LocationCode not in (SELECT F_Define2 FROM Sys_SRM_ItemsDetail
  963. WHERE
  964. F_Define3='HGAreaConfig' AND F_Define1=a.WHCode AND F_Define4=a.WorkPoint) OR detail.LocationCode is null OR detail.LocationCode='') ";
  965. }
  966. }
  967. sql += " ) c WHERE c.row=1 ";
  968. sql = string.Format(sql, Code, WorkPoint);
  969. return Repository().FindTableBySql(sql.ToString());
  970. }
  971. //借用(借用)
  972. public DataTable GetGridJson9(string queryJson, ref Pagination jqgridparam)
  973. {
  974. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  975. DataTable dt = new DataTable();
  976. var queryParam = queryJson.ToJObject();
  977. List<DbParameter> parameter = new List<DbParameter>();
  978. StringBuilder sqlString = new StringBuilder();
  979. #region [SQL]
  980. // sql = @"
  981. //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,
  982. // case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  983. // from ICSBrrow a
  984. // left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  985. // left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  986. // left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  987. // sql += " WHERE 1=1 and e.ID is null ";
  988. sqlString.Append($@"select * from(select row_number() over(partition by a.BrrowCode order by a.BrrowCode) row, a.BrrowCode as Code,
  989. a.CreateDateTime as MTIME,
  990. a.CreatePerson as MUSER,
  991. case
  992. when max(e.SourceID) is null then ''
  993. else ''
  994. end as IsNew,f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,
  995. f.cFree1,f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,
  996. f.cFree8,f.cFree9,f.cFree10
  997. from ICSBrrow a
  998. left join ICSMOPickMerge e on a.ID = e.SourceID and a.WorkPoint = e.WorkPoint
  999. left join ICSExtension f on a.ExtensionID = f.ID and a.WorkPoint = f.WorkPoint
  1000. where a.WorkPoint = '{WorkPoint}'");
  1001. if (!string.IsNullOrWhiteSpace(queryJson))
  1002. {
  1003. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1004. {
  1005. sqlString.Append($@" and a.BrrowCode like '%{queryParam["POCode"]}%' ");
  1006. }
  1007. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1008. {
  1009. sqlString.Append($@" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  1010. }
  1011. }
  1012. sqlString.Append(@"group by a.BrrowCode,a.CreateDateTime,a.CreatePerson,f.Colspan,f.ProjectCode,
  1013. f.BatchCode,f.Version,f.Brand,f.cFree1,f.cFree2,f.cFree3,f.cFree4,
  1014. f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,
  1015. f.cFree10) t where t.row=1");
  1016. #endregion
  1017. return Repository().FindTablePageBySql(sqlString.ToString(), parameter.ToArray(), ref jqgridparam);
  1018. }
  1019. //借用(借用)子表查询
  1020. public DataTable GetSubGridJson9(string Code)
  1021. {
  1022. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1023. DataTable dt = new DataTable();
  1024. //var queryParam = queryJson.ToJObject();
  1025. List<DbParameter> parameter = new List<DbParameter>();
  1026. 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,
  1027. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  1028. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1029. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.BrrowQuantity as IssueQuantity
  1030. from ICSBrrow a
  1031. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  1032. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  1033. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  1034. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1035. where a.BrrowCode='{0}' and a.WorkPoint='{1}'";
  1036. sql = string.Format(sql, Code, WorkPoint);
  1037. return Repository().FindTableBySql(sql.ToString());
  1038. }
  1039. //物料调拨
  1040. public DataTable GetGridJson10(string queryJson, ref Pagination jqgridparam)
  1041. {
  1042. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1043. DataTable dt = new DataTable();
  1044. var queryParam = queryJson.ToJObject();
  1045. List<DbParameter> parameter = new List<DbParameter>();
  1046. StringBuilder sqlString = new StringBuilder();
  1047. #region [SQL]
  1048. // sql = @"
  1049. //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,
  1050. // case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  1051. // from ICSBrrow a
  1052. // left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  1053. // left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  1054. // left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  1055. // sql += " WHERE 1=1 and e.ID is null ";
  1056. sqlString.Append($@"select * from (select row_number() over(partition by a.TransferNO order by a.TransferNO) row,
  1057. a.TransferNO as Code,a.ID,CONVERT(varchar(100),a.CreateDateTime,23) as MTIME,a.CreatePerson as MUSER,
  1058. g.Status as Status1,f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,f.cFree1,
  1059. case when max(k.TransCode) is null then '' else '' end as IsOccupy,
  1060. f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10
  1061. from ICSTransfer a
  1062. left join ICSMOPickMerge e on a.ID = e.SourceID and a.WorkPoint = e.WorkPoint
  1063. left join ICSExtension f on a.ExtensionID = f.ID and a.WorkPoint = f.WorkPoint
  1064. left join (SELECT TransferNO,case when sum(Quantity) =sum(TransferQuantity) AND sum(TransferQuantity)>0 then '' else '' end as Status
  1065. from ICSTransfer where WorkPoint='{WorkPoint}' group by TransferNO) g on a.TransferNO = g.TransferNO
  1066. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  1067. LEFT JOIN ICSInventoryDetail detail ON d.InvCode=detail.INVCode AND a.FromWarehouseCode=detail.WHCode AND a.WorkPoint=detail.WorkPoint
  1068. 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'
  1069. where a.WorkPoint = '{WorkPoint}' and a.Status = '2'");
  1070. if (!string.IsNullOrWhiteSpace(queryJson))
  1071. {
  1072. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1073. {
  1074. sqlString.Append($@" and a.TransferNO like '%{queryParam["POCode"]}%' ");
  1075. }
  1076. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1077. {
  1078. sqlString.Append($@" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  1079. }
  1080. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  1081. {
  1082. sqlString.Append($@" and a.ToWarehouseCode like '%{queryParam["WHCode"]}%' ");
  1083. }
  1084. if (!string.IsNullOrWhiteSpace(queryParam["Area"].ToString()))
  1085. {
  1086. sqlString.Append($@" and detail.LocationCode like '%{queryParam["Area"]}%' ");
  1087. }
  1088. if (!string.IsNullOrWhiteSpace(queryParam["Container"].ToString()) && queryParam["Container"].ToString() == "2")
  1089. {
  1090. sqlString.Append($@" and (detail.LocationCode not in (SELECT F_Define2 FROM Sys_SRM_ItemsDetail
  1091. WHERE
  1092. F_Define3='HGAreaConfig' AND F_Define1=a.FromWarehouseCode AND F_Define4=a.WorkPoint) OR detail.LocationCode is null OR detail.LocationCode='') ");
  1093. }
  1094. }
  1095. sqlString.Append(@"group by a.TransferNO,a.CreateDateTime,a.CreatePerson,f.Colspan,f.ProjectCode,
  1096. f.BatchCode,f.Version,f.Brand,f.cFree1,f.cFree2,f.cFree3,f.cFree4,
  1097. f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10,a.ID,a.TransferQuantity,g.Status) t where t.row=1");
  1098. if (!string.IsNullOrWhiteSpace(queryParam["Status"].ToString()))
  1099. {
  1100. if (queryParam["Status1"].ToString() == "1")
  1101. {
  1102. sqlString.Append($@" AND t.Status1='已过账' ");
  1103. }
  1104. else
  1105. {
  1106. sqlString.Append($@" AND t.Status1='未过账' ");
  1107. }
  1108. }
  1109. #endregion
  1110. return Repository().FindTablePageBySql(sqlString.ToString(), parameter.ToArray(), ref jqgridparam);
  1111. }
  1112. //物料调拨子表查询
  1113. public DataTable GetSubGridJson10(string Code, string queryJson, ref Pagination jqgridparam)
  1114. {
  1115. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1116. DataTable dt = new DataTable();
  1117. var queryParam = queryJson.ToJObject();
  1118. List<DbParameter> parameter = new List<DbParameter>();
  1119. string sql = @"SELECT * from (select row_number() over(partition by a.TransferNO,a.InvCode,
  1120. a.Sequence ORDER BY a.TransferNO) as row, a.ID,a.TransferNO as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.FromWarehouseCode as WHCode,b.WarehouseName,detail.LocationCode AS Area,
  1121. a.InvCode,a.ToWarehouseCode,a.EATTRIBUTE1 AS ReceiveWork,a.WorkPoint,a.OrderType,
  1122. a.TypeDescribe,a.Remarks,a.PersonNumber,a.InvDescribe,
  1123. a.Unit,a.StockIndicator,a.ReceiveInvCode,a.ReceiveInvDescribe,
  1124. a.ReceiveStock,a.ReceiveSales,a.ReceiveSequence,a.Remark2,
  1125. d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  1126. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  1127. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1128. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.TransferQuantity as IssueQuantity
  1129. from ICSTransfer a
  1130. left join ICSWarehouse b on a.FromWarehouseCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  1131. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  1132. LEFT JOIN ICSInventoryDetail detail ON d.InvCode=detail.INVCode AND a.FromWarehouseCode=detail.WHCode AND a.WorkPoint=detail.WorkPoint
  1133. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  1134. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1135. where a.TransferNO='{0}' and b.WorkPoint='{1}'";
  1136. if (!string.IsNullOrWhiteSpace(queryJson))
  1137. {
  1138. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  1139. {
  1140. sql += " and a.ToWarehouseCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  1141. }
  1142. if (!string.IsNullOrWhiteSpace(queryParam["Area"].ToString()))
  1143. {
  1144. sql += " and detail.LocationCode like '%" + queryParam["Area"].ToString() + "%' ";
  1145. }
  1146. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1147. {
  1148. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1149. }
  1150. if (!string.IsNullOrWhiteSpace(queryParam["Container"].ToString()) && queryParam["Container"].ToString() == "2")
  1151. {
  1152. sql += $@" and (detail.LocationCode not in (SELECT F_Define2 FROM Sys_SRM_ItemsDetail
  1153. WHERE
  1154. F_Define3='HGAreaConfig' AND F_Define1=a.FromWarehouseCode AND F_Define4=a.WorkPoint) OR detail.LocationCode is null OR detail.LocationCode='') ";
  1155. }
  1156. }
  1157. sql += " ) as t where t.row=1";
  1158. sql = string.Format(sql, Code, WorkPoint);
  1159. //return Repository().FindTableBySql(sql.ToString());
  1160. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1161. }
  1162. //两步调拨
  1163. public DataTable GetGridJson11(string queryJson, ref Pagination jqgridparam)
  1164. {
  1165. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1166. DataTable dt = new DataTable();
  1167. var queryParam = queryJson.ToJObject();
  1168. List<DbParameter> parameter = new List<DbParameter>();
  1169. StringBuilder sqlString = new StringBuilder();
  1170. #region [SQL]
  1171. // sql = @"
  1172. //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,
  1173. // case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  1174. // from ICSBrrow a
  1175. // left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  1176. // left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  1177. // left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  1178. // sql += " WHERE 1=1 and e.ID is null ";
  1179. sqlString.Append($@"select * from (select row_number() over(partition by a.OutCode order by a.OutCode)row, a.OutCode as Code, a.CreateDateTime as MTIME, a.CreatePerson as MUSER,
  1180. case when max(e.SourceID) is null then '' else '' end as IsNew,a.EATTRIBUTE1 AS ReceiveWork,tra.ToWarehouseCode,
  1181. f.Colspan, f.ProjectCode, f.BatchCode, f.Version, f.Brand,
  1182. f.cFree1, f.cFree2, f.cFree3, f.cFree4, f.cFree5, f.cFree6, f.cFree7, f.cFree8, f.cFree9, f.cFree10
  1183. FROM ICSOtherOut a
  1184. INNER JOIN ICSTransfer tra ON a.TransferDetailID = tra.TransferDetailID AND a.WorkPoint = tra.WorkPoint
  1185. left join ICSMOPickMerge e on a.ID = e.SourceID and a.WorkPoint = e.WorkPoint
  1186. left join ICSExtension f on a.ExtensionID = f.ID and a.WorkPoint = f.WorkPoint
  1187. where a.WorkPoint = '{WorkPoint}'
  1188. and a.Status = '2' ");
  1189. if (!string.IsNullOrWhiteSpace(queryJson))
  1190. {
  1191. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1192. {
  1193. sqlString.Append($@" and a.OutCode like '%{queryParam["POCode"]}%' ");
  1194. }
  1195. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1196. {
  1197. sqlString.Append($@" and a.InvCode like '%{queryParam["InvCode"]}%' ");
  1198. }
  1199. }
  1200. sqlString.Append(@" group by a.OutCode, a.CreateDateTime, a.CreatePerson,a.EATTRIBUTE1 ,tra.ToWarehouseCode, f.Colspan ,f.ProjectCode ,
  1201. f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4 ,
  1202. f.cFree5, f.cFree6, f.cFree7, f.cFree8, f.cFree9, f.cFree10) t where t.row=1");
  1203. #endregion
  1204. return Repository().FindTablePageBySql(sqlString.ToString(), parameter.ToArray(), ref jqgridparam);
  1205. }
  1206. //两步调拨子表查询
  1207. public DataTable GetSubGridJson11(string Code)
  1208. {
  1209. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1210. DataTable dt = new DataTable();
  1211. //var queryParam = queryJson.ToJObject();
  1212. List<DbParameter> parameter = new List<DbParameter>();
  1213. 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,
  1214. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  1215. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1216. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.OutQuantity as IssueQuantity
  1217. FROM ICSOtherOut a
  1218. INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  1219. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  1220. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  1221. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  1222. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1223. where a.OutCode='{0}' and a.WorkPoint='{1}'";
  1224. sql = string.Format(sql, Code, WorkPoint);
  1225. return Repository().FindTableBySql(sql.ToString());
  1226. }
  1227. // public DataTable GetICSMOPickMergeTemp(string ID,string Type)
  1228. // {
  1229. // string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1230. // ID = string.IsNullOrWhiteSpace(ID) ? "''" : ID.TrimEnd(',');
  1231. // #region sql
  1232. // string sql = @"SELECT row_number() over (order by c.Code,c.InvCode,d.MTIME,d.LotNO) AS rowNo,
  1233. // c.Code,
  1234. // c.InvCode,
  1235. // c.InvName,
  1236. // c.InvStd,
  1237. // c.InvUnit,
  1238. // FLOOR(c.iQuantity) AS iQuantity,
  1239. // d.WarehouseCode,
  1240. // m.LotNO,
  1241. // (case when m.LotNo is null then 0 else FLOOR(ISNULL(d.Quantity, 0)) end) AS QTY,
  1242. // (case when m.LotNo is null then null else d.LocationCode end) AS LocationCode,
  1243. // CONVERT(varchar(100),d.MTIME, 23) MTIME,
  1244. // FLOOR(f.QTYTotal) QTYTotal INTO #temp
  1245. // FROM
  1246. // ({0}) c
  1247. // LEFT JOIN ICSWareHouseLotInfo d ON c.InvCode=d.INVCode AND c.WhCode=d.WarehouseCode AND d.WorkPoint='{1}' AND d.Quantity>0
  1248. // left join ICSInventoryLot m on d.LotNo=m.LotNo and d.WorkPoint=m.WorkPoint and c.ExtensionID=m.ExtensionID
  1249. // 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
  1250. //DECLARE @ItemCode VARCHAR(50),
  1251. // @QTY DECIMAL(18,3),
  1252. // @ItemCodeCurrent VARCHAR(50),
  1253. // @Lotno VARCHAR(50),
  1254. // @QTYCurrent DECIMAL(18,3),
  1255. // @iQuantityCurrent DECIMAL(18,3),
  1256. // @CanDelete BIT,
  1257. // @Row INT,
  1258. // @rowCurrent INT
  1259. //SET @Row = @@rowcount
  1260. //SET @rowCurrent=1
  1261. //SET @CanDelete=0
  1262. //SET @ItemCode=''
  1263. //SET @Lotno = ''
  1264. //WHILE @rowCurrent<=@Row
  1265. // BEGIN
  1266. // SELECT @ItemCodeCurrent=InvCode,@QTYCurrent=QTY,@iQuantityCurrent=iQuantity,@Lotno = Lotno FROM #temp WHERE rowNo=@rowCurrent
  1267. //PRINT(@rowCurrent)
  1268. // IF @ItemCode<>@ItemCodeCurrent
  1269. // BEGIN
  1270. // SET @ItemCode=@ItemCodeCurrent
  1271. // SET @QTY=0
  1272. // SET @CanDelete=0
  1273. // END
  1274. // IF @CanDelete=1
  1275. // BEGIN
  1276. // DELETE FROM #temp WHERE rowNo=@rowCurrent
  1277. // SET @rowCurrent += 1
  1278. // CONTINUE
  1279. // END
  1280. // SET @QTY += @QTYCurrent
  1281. // IF @LotNo is null or @QTY>=@iQuantityCurrent
  1282. // BEGIN
  1283. // SET @CanDelete=1
  1284. // END
  1285. // SET @rowCurrent += 1
  1286. // END
  1287. //SELECT * FROM #temp
  1288. //DROP TABLE #temp
  1289. //";
  1290. // #endregion
  1291. // string sqls = "";
  1292. // if (Type=="1")
  1293. // {
  1294. // #region 工单备料sql
  1295. // sqls = @" SELECT
  1296. // c.MOCode as Code,
  1297. // a.InvCode,
  1298. // b.InvName,
  1299. // b.InvStd,
  1300. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1301. // a.WhCode,
  1302. // b.InvUnit,
  1303. // a.ExtensionID
  1304. // FROM
  1305. // ICSMOPick a
  1306. // inner join ICSMO c on a.MODetailID=c.MODetailID and a.WorkPoint=c.WorkPoint
  1307. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1308. // WHERE c.MOCode in ({0}) AND a.WorkPoint = '{1}'
  1309. // GROUP BY c.MOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1310. // #endregion
  1311. // }
  1312. // if (Type == "2")
  1313. // {
  1314. // return GetICSMOPickMergeByWorkorder(ID, WorkPoint);
  1315. // }
  1316. // if (Type=="3")
  1317. // {
  1318. // #region 工单材料出库SQL
  1319. // sqls = @" select
  1320. // a.IssueCode as Code,
  1321. // a.InvCode,
  1322. // b.InvName,
  1323. // b.InvStd,
  1324. // b.InvUnit,
  1325. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1326. // a.WhCode,
  1327. // a.ExtensionID
  1328. // FROM
  1329. // ICSMOIssue a
  1330. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1331. // WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  1332. // GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1333. // #endregion
  1334. // }
  1335. // if (Type=="4")
  1336. // {
  1337. // #region 委外备料SQL
  1338. // sqls = @" select
  1339. // c.OOCode as Code,
  1340. // a.InvCode,
  1341. // b.InvName,
  1342. // b.InvStd,
  1343. // b.InvUnit,
  1344. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1345. // a.WhCode,
  1346. // a.ExtensionID
  1347. // FROM
  1348. // ICSOOPick a
  1349. // left join ICSOutsourcingOrder c on a.OODetailID=c.OODetailID and a.WorkPoint=c.WorkPoint
  1350. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1351. // WHERE c.OOCode in ({0}) AND a.WorkPoint = '{1}'
  1352. // GROUP BY c.OOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode, a.ExtensionID";
  1353. // #endregion
  1354. // }
  1355. // if (Type=="5")
  1356. // {
  1357. // #region 委外领料SQL
  1358. // sqls = @" select
  1359. // a.ApplyCode as Code,
  1360. // a.InvCode,
  1361. // b.InvName,
  1362. // b.InvStd,
  1363. //b.InvUnit,
  1364. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1365. // a.WhCode,
  1366. // a.ExtensionID
  1367. // FROM
  1368. // ICSOApply a
  1369. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1370. // WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}'
  1371. // GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1372. // #endregion
  1373. // }
  1374. // if (Type=="6")
  1375. // {
  1376. // #region 委外材料出库SQL
  1377. // sqls = @" select
  1378. // a.IssueCode as Code,
  1379. // a.InvCode,
  1380. // b.InvName,
  1381. // b.InvStd,
  1382. //b.InvUnit,
  1383. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1384. // a.WhCode,
  1385. //a.ExtensionID
  1386. // FROM
  1387. // ICSOIssue a
  1388. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1389. // WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  1390. // GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1391. // #endregion
  1392. // }
  1393. // if (Type=="7")
  1394. // {
  1395. // #region 销售发货SQL
  1396. // sqls = @" select
  1397. // a.SDNCode as Code,
  1398. // a.InvCode,
  1399. // b.InvName,
  1400. // b.InvStd,
  1401. //b.InvUnit,
  1402. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1403. // a.WhCode,
  1404. //a.ExtensionID
  1405. // FROM
  1406. // ICSSDN a
  1407. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1408. // WHERE a.SDNCode in ({0}) AND a.WorkPoint = '{1}'
  1409. // GROUP BY a.SDNCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1410. // #endregion
  1411. // }
  1412. // if (Type=="8")
  1413. // {
  1414. // #region 其它出库SQL
  1415. // sqls = @" select
  1416. // a.OutCode as Code,
  1417. // a.InvCode,
  1418. // b.InvName,
  1419. // b.InvStd,
  1420. // b.InvUnit,
  1421. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1422. // a.WhCode,
  1423. // a.ExtensionID
  1424. // FROM
  1425. // ICSOtherOut a
  1426. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1427. // WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  1428. // GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1429. // #endregion
  1430. // }
  1431. // if (Type == "9")
  1432. // {
  1433. // #region 借用SQL
  1434. // sqls = @"select
  1435. // a.BrrowCode as Code,
  1436. // a.InvCode,
  1437. // b.InvName,
  1438. // b.InvStd,
  1439. //b.InvUnit,
  1440. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1441. // a.WhCode,
  1442. //a.ExtensionID
  1443. // FROM
  1444. // ICSBrrow a
  1445. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1446. // WHERE a.BrrowCode in ({0}) AND a.WorkPoint = '{1}'
  1447. // GROUP BY a.BrrowCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1448. // #endregion
  1449. // }
  1450. // if (Type == "10")
  1451. // {
  1452. // #region 物料调拨
  1453. // sqls = @" select
  1454. // a.TransferNO as Code,
  1455. // a.InvCode,
  1456. // b.InvName,
  1457. // b.InvStd,
  1458. //b.InvUnit,
  1459. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1460. // a.FromWarehouseCode as WhCode,
  1461. //a.ExtensionID
  1462. // FROM
  1463. // ICSTransfer a
  1464. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1465. // WHERE a.TransferNO in ({0}) AND a.WorkPoint = '{1}'
  1466. // GROUP BY a.TransferNO,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.FromWarehouseCode,a.ExtensionID";
  1467. // #endregion
  1468. // }
  1469. // if (Type == "11")
  1470. // {
  1471. // #region 两步调出
  1472. // sqls = @"select
  1473. // a.OutCode as Code,
  1474. // a.InvCode,
  1475. // b.InvName,
  1476. // b.InvStd,
  1477. //b.InvUnit,
  1478. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1479. // a.WHCode ,
  1480. //a.ExtensionID
  1481. // from ICSOtherOut a
  1482. // INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  1483. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1484. // WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  1485. // GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WHCode,a.ExtensionID";
  1486. // #endregion
  1487. // }
  1488. // sqls = string.Format(sqls, ID,WorkPoint);
  1489. // sql = string.Format(sql, sqls, WorkPoint);
  1490. // DataTable table = Repository().FindDataSetBySql(sql).Tables[0];
  1491. // DataTable dtCloned = table.Clone();
  1492. // foreach (DataColumn col in dtCloned.Columns)
  1493. // {
  1494. // col.DataType = typeof(string);
  1495. // }
  1496. // foreach (DataRow row in table.Rows)
  1497. // {
  1498. // DataRow newrow = dtCloned.NewRow();
  1499. // foreach (DataColumn column in dtCloned.Columns)
  1500. // {
  1501. // newrow[column.ColumnName] = row[column.ColumnName].ToString();
  1502. // }
  1503. // dtCloned.Rows.Add(newrow);
  1504. // }
  1505. // if (Invmes.Rows.Count > 0)
  1506. // {
  1507. // dtCloned.Merge(Invmes, false);
  1508. // }
  1509. // return dtCloned;
  1510. // }
  1511. public DataTable GetICSMOPickMergeTemp(string ID, string Type)
  1512. {
  1513. string postUrlStr = System.Configuration.ConfigurationManager.AppSettings["HGDocpostUrlStr"].ToString();
  1514. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1515. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1516. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1517. ID = string.IsNullOrWhiteSpace(ID) ? "''" : ID.TrimEnd(',');
  1518. #region sql
  1519. #endregion
  1520. string sqls = "";
  1521. if (Type == "1")
  1522. {
  1523. #region 工单备料sql
  1524. sqls = @" SELECT
  1525. c.MOCode as Code,
  1526. c.Sequence+'~'+a.Sequence as Sequence,
  1527. a.InvCode,
  1528. b.InvName,
  1529. b.InvStd,
  1530. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1531. a.WhCode,
  1532. b.InvUnit,
  1533. a.ExtensionID
  1534. FROM
  1535. ICSMOPick a
  1536. inner join ICSMO c on a.MODetailID=c.MODetailID and a.WorkPoint=c.WorkPoint
  1537. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1538. WHERE c.MOCode in ({0}) AND a.WorkPoint = '{1}'
  1539. GROUP BY c.MOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,c.Sequence+'~'+a.Sequence";
  1540. #endregion
  1541. }
  1542. if (Type == "2" || Type == "12")
  1543. {
  1544. sqls = @"select
  1545. 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
  1546. FROM
  1547. ICSMOApply a
  1548. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1549. WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}' AND ISNULL(a.Quantity, 0)>ISNULL(a.IssueQuantity, 0)
  1550. GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,a.Sequence";
  1551. }
  1552. if (Type == "3")
  1553. {
  1554. #region 工单材料出库SQL
  1555. sqls = @" select
  1556. a.IssueCode as Code,
  1557. a.Sequence,
  1558. a.InvCode,
  1559. b.InvName,
  1560. b.InvStd,
  1561. b.InvUnit,
  1562. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1563. a.WhCode,
  1564. a.ExtensionID
  1565. FROM
  1566. ICSMOIssue a
  1567. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1568. WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  1569. GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,a.Sequence";
  1570. #endregion
  1571. }
  1572. if (Type == "4")
  1573. {
  1574. #region 委外备料SQL
  1575. sqls = @" select
  1576. c.OOCode as Code,
  1577. c.Sequence+'~'+a.Sequence as Sequence,
  1578. a.InvCode,
  1579. b.InvName,
  1580. b.InvStd,
  1581. b.InvUnit,
  1582. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1583. a.WhCode,
  1584. a.ExtensionID
  1585. FROM
  1586. ICSOOPick a
  1587. left join ICSOutsourcingOrder c on a.OODetailID=c.OODetailID and a.WorkPoint=c.WorkPoint
  1588. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1589. WHERE c.OOCode in ({0}) AND a.WorkPoint = '{1}'
  1590. GROUP BY c.OOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode, a.ExtensionID,c.Sequence+'~'+a.Sequence";
  1591. #endregion
  1592. }
  1593. if (Type == "5")
  1594. {
  1595. #region 委外领料SQL
  1596. sqls = @"select
  1597. a.ApplyCode as Code,
  1598. a.Sequence,
  1599. a.InvCode,
  1600. b.InvName,
  1601. b.InvStd,
  1602. b.InvUnit,
  1603. (SUM(ISNULL(a.Quantity, 0))-SUM(ISNULL(a.IssueQuantity,0))) AS iQuantity,
  1604. a.WhCode,a.ExtensionID
  1605. FROM
  1606. ICSOApply a
  1607. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1608. WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}' AND ISNULL(a.Quantity, 0)>ISNULL(a.IssueQuantity, 0)
  1609. GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,a.Sequence";
  1610. #endregion
  1611. }
  1612. if (Type == "6")
  1613. {
  1614. #region 委外材料出库SQL
  1615. sqls = @" select
  1616. a.IssueCode as Code,
  1617. a.Sequence,
  1618. a.InvCode,
  1619. b.InvName,
  1620. b.InvStd,
  1621. b.InvUnit,
  1622. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1623. a.WhCode,
  1624. a.ExtensionID
  1625. FROM
  1626. ICSOIssue a
  1627. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1628. WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  1629. GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,a.Sequence";
  1630. #endregion
  1631. }
  1632. if (Type == "7")
  1633. {
  1634. #region 销售发货SQL
  1635. sqls = @" select
  1636. a.SDNCode as Code,
  1637. a.Sequence,
  1638. a.InvCode,
  1639. b.InvName,
  1640. b.InvStd,
  1641. b.InvUnit,
  1642. (SUM(ISNULL(a.Quantity, 0))-SUM(ISNULL(a.SDNQuantity, 0))) AS iQuantity,
  1643. a.WhCode,
  1644. a.ExtensionID
  1645. FROM
  1646. ICSSDN a
  1647. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1648. WHERE a.SDNCode in ({0}) AND a.WorkPoint = '{1}' AND ISNULL(a.Quantity, 0)>ISNULL(a.SDNQuantity, 0)
  1649. GROUP BY a.SDNCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,a.Sequence";
  1650. #endregion
  1651. }
  1652. if (Type == "8")
  1653. {
  1654. #region 其它出库SQL
  1655. sqls = @" select
  1656. a.OutCode as Code,
  1657. a.Sequence,
  1658. a.InvCode,
  1659. b.InvName,
  1660. b.InvStd,
  1661. b.InvUnit,
  1662. (SUM(ISNULL(a.Quantity, 0))-SUM(ISNULL(a.OutQuantity, 0))) AS iQuantity,
  1663. a.WhCode,
  1664. a.ExtensionID
  1665. FROM
  1666. ICSOtherOut a
  1667. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1668. WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}' AND ISNULL(a.Quantity, 0)>ISNULL(a.OutQuantity, 0)
  1669. GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,a.Sequence";
  1670. #endregion
  1671. }
  1672. if (Type == "9")
  1673. {
  1674. #region 借用SQL
  1675. sqls = @"select
  1676. a.BrrowCode as Code,
  1677. a.Sequence,
  1678. a.InvCode,
  1679. b.InvName,
  1680. b.InvStd,
  1681. b.InvUnit,
  1682. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1683. a.WhCode,
  1684. a.ExtensionID
  1685. FROM
  1686. ICSBrrow a
  1687. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1688. WHERE a.BrrowCode in ({0}) AND a.WorkPoint = '{1}'
  1689. GROUP BY a.BrrowCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,a.Sequence";
  1690. #endregion
  1691. }
  1692. if (Type == "10")
  1693. {
  1694. #region 物料调拨
  1695. sqls = @"select
  1696. a.TransferNO as Code,
  1697. a.Sequence,
  1698. a.InvCode,
  1699. b.InvName,
  1700. b.InvStd,
  1701. b.InvUnit,
  1702. (SUM(ISNULL(a.Quantity, 0))-SUM(ISNULL(a.TransferQuantity, 0))) AS iQuantity,
  1703. a.FromWarehouseCode as WhCode,
  1704. a.ExtensionID
  1705. FROM
  1706. ICSTransfer a
  1707. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1708. WHERE a.TransferNO in ({0}) AND a.WorkPoint = '{1}' AND ISNULL(a.Quantity, 0)>ISNULL(a.TransferQuantity, 0)
  1709. GROUP BY a.TransferNO,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.FromWarehouseCode,a.ExtensionID,a.Sequence";
  1710. #endregion
  1711. }
  1712. if (Type == "11")
  1713. {
  1714. #region 两步调出
  1715. sqls = @"select
  1716. a.OutCode as Code,
  1717. a.Sequence,
  1718. a.InvCode,
  1719. b.InvName,
  1720. b.InvStd,
  1721. b.InvUnit,
  1722. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1723. a.WHCode ,
  1724. a.ExtensionID
  1725. from ICSOtherOut a
  1726. INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  1727. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1728. WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  1729. GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WHCode,a.ExtensionID,a.Sequence";
  1730. #endregion
  1731. }
  1732. sqls = string.Format(sqls, ID, WorkPoint);
  1733. string sql = $@"SELECT row_number() over ( order by c.Code,c.InvCode,d.MTIME,d.LotNO) AS rowNo,
  1734. c.Code,
  1735. c.Sequence,
  1736. c.InvCode,
  1737. c.InvName,
  1738. c.InvStd,
  1739. c.InvUnit,
  1740. c.iQuantity AS iQuantity,
  1741. c.WHCode AS WarehouseCode,
  1742. d.LotNO,
  1743. ISNULL(d.Quantity, 0) AS QTY,
  1744. ISNULL(d.Quantity, 0) AS QTYLeft,
  1745. CONVERT(decimal(18,6),0) AS SendQTY,
  1746. d.LocationCode AS LocationCode,
  1747. CONVERT(varchar(100),d.MTIME, 23) MTIME,
  1748. f.QTYTotal QTYTotal,c.ExtensionID
  1749. FROM
  1750. ({sqls}) c
  1751. left join (select d.WarehouseCode,d.Quantity-d.LockQuantity as Quantity,d.INVCode, m.LotNo, d.MTIME,d.LocationCode,m.ExtensionID
  1752. from ICSWareHouseLotInfo d ,ICSInventoryLot m
  1753. where d.LotNo=m.LotNo and d.WorkPoint=m.WorkPoint
  1754. and d.WorkPoint='{WorkPoint}' AND d.Quantity-d.LockQuantity>0
  1755. --AND SUBSTRING( SUBSTRING(d.LocationCode, CHARINDEX('-',d.LocationCode)+1, LEN(d.LocationCode)),0,CHARINDEX('-', SUBSTRING(d.LocationCode, CHARINDEX('-',d.LocationCode)+1, LEN(d.LocationCode)))) Not IN(SELECT F_Define2 FROM Sys_SRM_ItemsDetail
  1756. --WHERE F_Define3='HGAreaConfig' AND F_Define1=d.WarehouseCode AND F_Define4=d.WorkPoint)
  1757. ) d
  1758. on c.InvCode=d.INVCode AND c.WhCode=d.WarehouseCode and d.ExtensionID=c.ExtensionID
  1759. 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
  1760. order by c.Code,Convert(int,c.Sequence),d.MTIME,d.LotNO ";
  1761. var dataset = Repository().FindDataSetBySql(sql);
  1762. if (dataset.Tables.Count == 0)
  1763. return null;
  1764. DataTable table = dataset.Tables[0];
  1765. decimal qtyCount = 0;
  1766. bool remove = false;
  1767. List<int> removeList = new List<int>();
  1768. for (int i = 0; i < table.Rows.Count; i++)
  1769. {
  1770. if (i != 0
  1771. && (!table.Rows[i]["InvCode"].ToString().Equals(table.Rows[i - 1]["InvCode"].ToString())
  1772. || !table.Rows[i]["Sequence"].ToString().Equals(table.Rows[i - 1]["Sequence"].ToString())
  1773. || !table.Rows[i]["Code"].ToString().Equals(table.Rows[i - 1]["Code"].ToString())
  1774. || !table.Rows[i]["ExtensionID"].ToString().Equals(table.Rows[i - 1]["ExtensionID"].ToString()))
  1775. )
  1776. {
  1777. qtyCount = 0;
  1778. remove = false;
  1779. }
  1780. if (table.Rows[i]["QTYLeft"].ToString().ToDecimal() == 0)
  1781. {
  1782. removeList.Add(i);
  1783. continue;
  1784. }
  1785. if (remove)
  1786. {
  1787. removeList.Add(i);
  1788. }
  1789. else
  1790. {
  1791. var lotQty = table.Rows[i]["QTYLeft"].ToString().ToDecimal();
  1792. var orderQty = table.Rows[i]["iQuantity"].ToString().ToDecimal();
  1793. qtyCount += lotQty;
  1794. foreach (DataRow dr in table.Rows)
  1795. {
  1796. if (dr["LotNO"].ToString() == table.Rows[i]["LotNO"].ToString())
  1797. {
  1798. if (qtyCount > orderQty)
  1799. {
  1800. dr["QTYLeft"] = Convert.ToDecimal(qtyCount) - Convert.ToDecimal(orderQty);
  1801. }
  1802. else
  1803. {
  1804. dr["QTYLeft"] = 0;
  1805. }
  1806. }
  1807. }
  1808. if (qtyCount >= orderQty)
  1809. {
  1810. table.Rows[i]["SendQTY"] = Convert.ToDecimal(lotQty) - (Convert.ToDecimal(qtyCount) - Convert.ToDecimal(orderQty));
  1811. remove = true;
  1812. }
  1813. else
  1814. {
  1815. table.Rows[i]["SendQTY"] = lotQty;
  1816. }
  1817. }
  1818. }
  1819. if (removeList.Count > 0)
  1820. {
  1821. removeList.Reverse();
  1822. foreach (var item in removeList)
  1823. {
  1824. table.Rows.RemoveAt(item);
  1825. }
  1826. }
  1827. try
  1828. {
  1829. //#region 占料前增加验证,如果条码数量超出实际需要领料数量,直接报错。
  1830. //string chksql = @"select InvCode,WHCode,SUM(Quantity) as Quantity from ICSMOApply
  1831. // where ApplyCode in ({0}) and WorkPoint='{1}'
  1832. // GROUP BY InvCode,WHCode";
  1833. //chksql = string.Format(chksql, ID, WorkPoint);
  1834. //var chkdata = Repository().FindDataSetBySql(chksql);
  1835. //DataTable chktable = dataset.Tables[0];
  1836. //foreach (DataRow chkdr in chktable.Rows)
  1837. //{
  1838. // decimal ZLQty = 0;
  1839. // for (int i = 0; i < table.Rows.Count; i++)
  1840. // {
  1841. // if (table.Rows[i]["WarehouseCode"].ToString() == chkdr["WarehouseCode"].ToString()
  1842. // && table.Rows[i]["InvCode"].ToString() == chkdr["InvCode"].ToString())
  1843. // {
  1844. // ZLQty += Convert.ToDecimal(table.Rows[i]["SendQTY"].ToString());
  1845. // }
  1846. // }
  1847. // if (Convert.ToDecimal(chkdr["iQuantity"]) < ZLQty)
  1848. // {
  1849. // throw new Exception("物料:"+ chkdr["InvCode"].ToString() + "实际拣料数量大于单据需求数量,请尝试重新拣料。");
  1850. // }
  1851. //}
  1852. //#endregion
  1853. if (table.Rows.Count != 0)
  1854. {
  1855. #region 拣料时增加条码出入库记录,修改库存锁定数量,以作占料处理
  1856. int Count = 1;
  1857. string BusinessCode = string.Empty;
  1858. string TransType = "";
  1859. if (Type == "2") { BusinessCode = "13"; TransType = "生产发料-领料申请单"; }
  1860. if (Type == "12") { BusinessCode = "14"; TransType = "生产发料-领料申请单"; }
  1861. if (Type == "5") { BusinessCode = "6"; TransType = "委外发料-委外领料申请单"; }
  1862. if (Type == "7") { BusinessCode = "19"; TransType = "销售发货-销售发货单"; }
  1863. if (Type == "8") { BusinessCode = "24"; TransType = "杂发"; }
  1864. if (Type == "10") { BusinessCode = "47"; TransType = "调拨申请单"; }
  1865. string Identification = Guid.NewGuid().ToString();
  1866. var pikTbLogTime = DateTime.Now;
  1867. string pikTbLogsql = string.Empty;
  1868. List<string> DocNoList = new List<string>();
  1869. #region 货柜
  1870. string InspectJosn = "";
  1871. string InspectJosnHead = "";
  1872. string InspectJosnBody = "";
  1873. InspectJosn += "{";
  1874. InspectJosn += "\"IMP_ORDINI\":[";
  1875. InspectJosn += "货柜主表区域预留";
  1876. InspectJosn += "],";
  1877. InspectJosn += "\"IMP_ORDINI_RIGHE\":[";
  1878. InspectJosn += "货柜子表区域预留";
  1879. InspectJosn += "]";
  1880. InspectJosn += "}";
  1881. for (int i = 0; i < table.Rows.Count; i++)
  1882. {
  1883. string hgsql = @"select A.InvCode,A.LocationCode,B.F_Define3,C.LocationCode AS Area
  1884. from ICSWareHouseLotInfo A
  1885. INNER JOIN Sys_SRM_ItemsDetail B ON B.F_Define2=A.LocationCode AND F_Define4=A.WorkPoint AND F_ItemName='HG_Location'
  1886. INNER JOIN ICSInventoryDetail C ON C.INVCode=A.InvCode AND C.WHCode=A.WarehouseCode AND C.WorkPoint=A.WorkPoint
  1887. where A.LotNo='{0}' AND A.WorkPoint='{1}'";
  1888. hgsql = string.Format(hgsql, table.Rows[i]["LotNO"].ToString(), WorkPoint);
  1889. var hgds = Repository().FindDataSetBySql(hgsql);
  1890. if (hgds.Tables.Count == 0)
  1891. return null;
  1892. DataTable hgtable = hgds.Tables[0];
  1893. if (hgtable.Rows.Count > 0)
  1894. {
  1895. if (!DocNoList.Contains(table.Rows[i]["Code"].ToString()))
  1896. {
  1897. DocNoList.Add(table.Rows[i]["Code"].ToString());
  1898. }
  1899. InspectJosnBody += "{";
  1900. InspectJosnBody += "\"RIG_ORDINE\":\"" + table.Rows[i]["Code"].ToString() + "\",";
  1901. InspectJosnBody += "\"RIG_ARTICOLO\": \"" + hgtable.Rows[0]["InvCode"].ToString() + "\",";
  1902. InspectJosnBody += "\"RIG_SUB1\": \"\",";
  1903. InspectJosnBody += "\"RIG_SUB2\": \"\",";
  1904. InspectJosnBody += "\"RIG_ELERUOLI_GEST\": \"" + hgtable.Rows[0]["Area"].ToString() + "\",";
  1905. InspectJosnBody += "\"RIG_ELEBAIE\": \"" + hgtable.Rows[0]["F_Define3"].ToString() + "\",";
  1906. InspectJosnBody += "\"RIG_QTAR\": " + table.Rows[i]["SendQTY"].ToString() + ",";
  1907. if (i == 0)
  1908. {
  1909. InspectJosnBody += "\"RIG_HOSTINF\": \"" + table.Rows[i]["Sequence"].ToString() + "\"";
  1910. }
  1911. else
  1912. {
  1913. if (table.Rows[i]["Code"].ToString() == table.Rows[i - 1]["Code"].ToString() &&
  1914. table.Rows[i]["Sequence"].ToString() == table.Rows[i - 1]["Sequence"].ToString())
  1915. {
  1916. InspectJosnBody += "\"RIG_HOSTINF\": \"" + table.Rows[i]["Sequence"].ToString() + Count.ToString() + "\"";
  1917. Count++;
  1918. }
  1919. else
  1920. {
  1921. InspectJosnBody += "\"RIG_HOSTINF\": \"" + table.Rows[i]["Sequence"].ToString() + "\"";
  1922. Count = 1;
  1923. }
  1924. }
  1925. InspectJosnBody += "},";
  1926. }
  1927. }
  1928. InspectJosnBody.TrimEnd(',');
  1929. foreach (string DocNo in DocNoList)
  1930. {
  1931. InspectJosnHead += "{";
  1932. InspectJosnHead += "\"ORD_ORDINE\":\"" + DocNo.TrimStart('\'').TrimEnd('\'') + "\",";
  1933. InspectJosnHead += "\"ORD_DES\":\"" + TransType + "\",";
  1934. InspectJosnHead += "\"ORD_TIPOOP\":\"P\",";
  1935. InspectJosnHead += "\"ORD_CLIENTE\":\"" + WorkPoint + "\"";
  1936. InspectJosnHead += "},";
  1937. }
  1938. InspectJosnHead.TrimEnd(',');
  1939. if (InspectJosnBody != "")
  1940. {
  1941. InspectJosn = InspectJosn.Replace("货柜主表区域预留", InspectJosnHead);
  1942. InspectJosn = InspectJosn.Replace("货柜子表区域预留", InspectJosnBody);
  1943. if (Convert.ToBoolean(System.Configuration.ConfigurationManager.AppSettings["UploadERP"]))
  1944. {
  1945. string callresult = "";
  1946. #region 货柜接口调用前日志
  1947. object logID = Guid.NewGuid();
  1948. string logsql = @"insert into ICSWMS_HGLog
  1949. values
  1950. ('{0}',GETDATE(),'{1}','{2}','{3}','{4}','{5}')";
  1951. logsql = string.Format(logsql, logID, InspectJosn, "", WorkPoint, MUSER, MUSERNAME);
  1952. SqlHelper.CmdExecuteNonQueryLi(logsql);
  1953. #endregion
  1954. callresult = HTTPHelper.RestFulGet(InspectJosn, postUrlStr);
  1955. #region 货柜接口调用后日志
  1956. logsql = @"update ICSWMS_HGLog set ReturnResult='{0}'
  1957. where ID='{1}'";
  1958. logsql = string.Format(logsql, callresult, logID);
  1959. SqlHelper.CmdExecuteNonQueryLi(logsql);
  1960. #endregion
  1961. //if (!callresult.Contains("successo"))
  1962. //{
  1963. // ICSHGResult hgresult = JsonConvert.DeserializeObject<ICSHGResult>(callresult.TrimStart('[').TrimEnd(']'));
  1964. // throw new Exception("货柜单据传输接口调用报错,主要报错信息:" + hgresult.PrimaryError + ",次要报错信息:" + hgresult.SecondaryError + "");
  1965. //}
  1966. }
  1967. }
  1968. #endregion
  1969. foreach (DataRow PickLog in table.Rows)
  1970. {
  1971. pikTbLogsql += @" IF NOT EXISTS(SELECT TransCode FROM ICSWareHouseLotInfoLog WHERE TransCode='{1}' AND TransSequence='{2}' AND LotNo='{9}' AND WorkPoint='{8}' AND TransType='15')
  1972. BEGIN
  1973. INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
  1974. FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
  1975. Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
  1976. ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
  1977. MTIME,WorkPoint,EATTRIBUTE1)
  1978. SELECT NEWID(),'{0}','{1}','{2}',a.LotNo ,a.InvCode ,
  1979. a.WarehouseCode,a.LocationCode,'','','{3}',
  1980. '','1','15','{4}','0','',
  1981. '','','','{5}' ,'{6}' ,
  1982. '{7}' ,'{8}' ,''
  1983. FROM ICSWareHouseLotInfo a
  1984. WHERE a.LotNo='{9}' AND a.WorkPoint='{8}'
  1985. update ICSWareHouseLotInfo set LockQuantity=LockQuantity+'{3}' where LotNo='{9}' AND WorkPoint='{8}'
  1986. END
  1987. UPDATE ICSMOApply SET MUSER='{6}' WHERE ApplyCode='{1}' and Sequence='{2}' ; ";
  1988. pikTbLogsql = string.Format(pikTbLogsql, Identification, PickLog["Code"].ToString(), PickLog["Sequence"].ToString(), PickLog["SendQTY"].ToString()
  1989. , BusinessCode, MUSER, MUSERNAME, pikTbLogTime, WorkPoint, PickLog["LotNO"].ToString());
  1990. }
  1991. SqlHelper.CmdExecuteNonQueryLi(pikTbLogsql);
  1992. #endregion
  1993. }
  1994. var result = ConvertCellToString(table);
  1995. if (Invmes.Rows.Count > 0)
  1996. {
  1997. result.Merge(Invmes, false);
  1998. }
  1999. return result;
  2000. }
  2001. catch (Exception ex)
  2002. {
  2003. throw new Exception(ex.Message);
  2004. }
  2005. }
  2006. /// <summary>
  2007. /// 工单领料推荐
  2008. /// </summary>
  2009. /// <param name="Id"></param>
  2010. /// <param name="workPoint"></param>
  2011. /// <returns></returns>
  2012. public DataTable GetICSMOPickMergeByWorkorder(string Id, string workPoint)
  2013. {
  2014. string sql = $@"SELECT row_number() over (partition by c.Code,c.InvCode order by c.Code,c.InvCode,d.MTIME) AS rowNo,
  2015. c.Code,
  2016. c.InvCode,
  2017. c.InvName,
  2018. c.InvStd,
  2019. c.InvUnit,
  2020. FLOOR(c.iQuantity) AS iQuantity,
  2021. d.WarehouseCode,
  2022. d.LotNO,
  2023. FLOOR(ISNULL(d.Quantity, 0)) AS QTY,
  2024. d.LocationCode LocationCode,
  2025. CONVERT(varchar(100),d.MTIME, 23) MTIME,
  2026. FLOOR(f.QTYTotal) QTYTotal
  2027. FROM
  2028. (select
  2029. a.ApplyCode as Code, a.InvCode, b.InvName, b.InvStd, b.InvUnit, SUM(ISNULL(a.Quantity, 0)) AS iQuantity, a.WhCode,a.ExtensionID
  2030. FROM
  2031. ICSMOApply a
  2032. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2033. WHERE a.ApplyCode in ({Id}) AND a.WorkPoint = '{workPoint}'
  2034. GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID) c
  2035. left join (select d.WarehouseCode,d.Quantity,d.INVCode, m.LotNo, d.MTIME,d.LocationCode,m.ExtensionID from ICSWareHouseLotInfo d ,ICSInventoryLot m
  2036. where d.LotNo=m.LotNo and d.WorkPoint=m.WorkPoint
  2037. and d.WorkPoint='{workPoint}' AND d.Quantity>0 ) d on c.InvCode=d.INVCode AND c.WhCode=d.WarehouseCode and d.ExtensionID=c.ExtensionID
  2038. LEFT JOIN (SELECT INVCode,WarehouseCode,SUM(Quantity) AS QTYTotal FROM ICSWareHouseLotInfo WHERE WorkPoint='1701' GROUP BY INVCode,WarehouseCode) f ON c.InvCode=f.INVCode AND c.WhCode=f.WarehouseCode
  2039. order by c.Code,c.InvCode,d.MTIME";
  2040. var dataset = Repository().FindDataSetBySql(sql);
  2041. if (dataset.Tables.Count == 0)
  2042. return null;
  2043. DataTable table = dataset.Tables[0];
  2044. decimal qtyCount = 0;
  2045. bool remove = false;
  2046. List<int> removeList = new List<int>();
  2047. for (int i = 0; i < table.Rows.Count; i++)
  2048. {
  2049. if (i != 0
  2050. && !table.Rows[i]["InvCode"].ToString().Equals(table.Rows[i - 1]["InvCode"].ToString()))
  2051. {
  2052. qtyCount = 0;
  2053. remove = false;
  2054. }
  2055. if (remove)
  2056. {
  2057. removeList.Add(i);
  2058. }
  2059. else
  2060. {
  2061. var lotQty = table.Rows[i]["QTY"].ToString().ToDecimal();
  2062. var orderQty = table.Rows[i]["iQuantity"].ToString().ToDecimal();
  2063. qtyCount += lotQty;
  2064. if (qtyCount >= orderQty)
  2065. {
  2066. remove = true;
  2067. }
  2068. }
  2069. }
  2070. if (removeList.Count > 0)
  2071. {
  2072. removeList.Reverse();
  2073. foreach (var item in removeList)
  2074. {
  2075. table.Rows.RemoveAt(item);
  2076. }
  2077. }
  2078. var result = ConvertCellToString(table);
  2079. if (Invmes.Rows.Count > 0)
  2080. {
  2081. result.Merge(Invmes, false);
  2082. }
  2083. return result;
  2084. }
  2085. public DataTable ConvertCellToString(DataTable data)
  2086. {
  2087. DataTable dtCloned = data.Clone();
  2088. foreach (DataColumn col in dtCloned.Columns)
  2089. {
  2090. col.DataType = typeof(string);
  2091. }
  2092. foreach (DataRow row in data.Rows)
  2093. {
  2094. DataRow newrow = dtCloned.NewRow();
  2095. foreach (DataColumn column in dtCloned.Columns)
  2096. {
  2097. newrow[column.ColumnName] = row[column.ColumnName].ToString();
  2098. }
  2099. dtCloned.Rows.Add(newrow);
  2100. }
  2101. return dtCloned;
  2102. }
  2103. // public DataTable GetICSMOPickMergeTemp2(string ID, string Type)
  2104. // {
  2105. // string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  2106. // #region sql
  2107. // string sql = @"SELECT row_number() over (order by c.Code,c.InvCode,d.MTIME,d.LotNO) AS rowNo,
  2108. // c.MergeID,
  2109. // c.Code,
  2110. // c.InvCode,
  2111. // c.InvName,
  2112. // c.InvStd,
  2113. //c.InvUnit,
  2114. // FLOOR(c.iQuantity) AS iQuantity,
  2115. // d.WarehouseCode,
  2116. // d.LocationCode,
  2117. // d.LotNO,
  2118. // FLOOR(ISNULL(d.Quantity, 0)) AS QTY,
  2119. // CONVERT(varchar(100),d.MTIME, 23) MTIME,
  2120. // FLOOR(f.QTYTotal) QTYTotal INTO #temp
  2121. // FROM
  2122. // ({0}) c
  2123. // LEFT JOIN ICSWareHouseLotInfo d ON c.InvCode=d.INVCode AND c.WhCode=d.WarehouseCode AND d.WorkPoint='{1}' AND d.Quantity>0
  2124. // left join ICSInventoryLot m on d.LotNo=m.LotNo and d.WorkPoint=m.WorkPoint and c.ExtensionID=m.ExtensionID
  2125. // 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
  2126. //DECLARE @ItemCode VARCHAR(50),
  2127. // @QTY DECIMAL(18,3),
  2128. // @ItemCodeCurrent VARCHAR(50),
  2129. // @QTYCurrent DECIMAL(18,3),
  2130. // @iQuantityCurrent DECIMAL(18,3),
  2131. // @CanDelete BIT,
  2132. // @Row INT,
  2133. // @rowCurrent INT
  2134. //SET @Row = @@rowcount
  2135. //SET @rowCurrent=1
  2136. //SET @CanDelete=0
  2137. //SET @ItemCode=''
  2138. //WHILE @rowCurrent<=@Row
  2139. // BEGIN
  2140. // SELECT @ItemCodeCurrent=InvCode,@QTYCurrent=QTY,@iQuantityCurrent=iQuantity FROM #temp WHERE rowNo=@rowCurrent
  2141. //PRINT(@rowCurrent)
  2142. // IF @ItemCode<>@ItemCodeCurrent
  2143. // BEGIN
  2144. // SET @ItemCode=@ItemCodeCurrent
  2145. // SET @QTY=0
  2146. // SET @CanDelete=0
  2147. // END
  2148. // IF @CanDelete=1
  2149. // BEGIN
  2150. // DELETE FROM #temp WHERE rowNo=@rowCurrent
  2151. // SET @rowCurrent += 1
  2152. // CONTINUE
  2153. // END
  2154. // SET @QTY += @QTYCurrent
  2155. // IF @QTY>=@iQuantityCurrent
  2156. // BEGIN
  2157. // SET @CanDelete=1
  2158. // END
  2159. // SET @rowCurrent += 1
  2160. // END
  2161. //SELECT * FROM #temp
  2162. //DROP TABLE #temp
  2163. //";
  2164. // #endregion
  2165. // string sqls = "";
  2166. // if (Type == "1")
  2167. // {
  2168. // #region 工单备料sql
  2169. // sqls = @" select
  2170. // x.MergeID,
  2171. // c.MOCode as Code,
  2172. // a.InvCode,
  2173. // b.InvName,
  2174. // b.InvStd,
  2175. //b.InvUnit,
  2176. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2177. // a.WhCode,
  2178. //a.ExtensionID
  2179. // FROM
  2180. // ICSMOPick a
  2181. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2182. // inner join ICSMO c on a.MODetailID=c.MODetailID and a.WorkPoint=c.WorkPoint
  2183. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2184. // WHERE c.MOCode in ({0}) AND a.WorkPoint = '{1}'
  2185. // GROUP BY c.MOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,x.MergeID,a.ExtensionID";
  2186. // #endregion
  2187. // }
  2188. // if (Type == "2")
  2189. // {
  2190. // #region 工单领料SQL
  2191. // sqls = @" select
  2192. // x.MergeID,
  2193. // a.ApplyCode as Code,
  2194. // a.InvCode,
  2195. // b.InvName,
  2196. // b.InvStd,
  2197. //b.InvUnit,
  2198. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2199. // a.WhCode,
  2200. // a.ExtensionID
  2201. // FROM
  2202. // ICSMOApply a
  2203. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2204. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2205. // WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}'
  2206. // GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,x.MergeID,a.ExtensionID";
  2207. // #endregion
  2208. // }
  2209. // if (Type == "3")
  2210. // {
  2211. // #region 工单材料出库SQL
  2212. // sqls = @" select
  2213. // x.MergeID,
  2214. // a.IssueCode as Code,
  2215. // a.InvCode,
  2216. // b.InvName,
  2217. // b.InvStd,
  2218. //b.InvUnit,
  2219. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2220. // a.WhCode,
  2221. //a.ExtensionID
  2222. // FROM
  2223. // ICSMOIssue a
  2224. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2225. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2226. // WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  2227. // GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  2228. // #endregion
  2229. // }
  2230. // if (Type == "4")
  2231. // {
  2232. // #region 委外备料SQL
  2233. // sqls = @" select
  2234. // x.MergeID,
  2235. // c.OOCode as Code,
  2236. // a.InvCode,
  2237. // b.InvName,
  2238. // b.InvStd,
  2239. //b.InvUnit,
  2240. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2241. // a.WhCode,
  2242. //a.ExtensionID
  2243. // FROM
  2244. // ICSOOPick a
  2245. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2246. // left join ICSOutsourcingOrder c on a.OODetailID=c.OODetailID and a.WorkPoint=c.WorkPoint
  2247. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2248. // WHERE c.OOCode in ({0}) AND a.WorkPoint = '{1}'
  2249. // GROUP BY c.OOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID, x.MergeID";
  2250. // #endregion
  2251. // }
  2252. // if (Type == "5")
  2253. // {
  2254. // #region 委外领料SQL
  2255. // sqls = @" select
  2256. // x.MergeID,
  2257. // a.ApplyCode as Code,
  2258. // a.InvCode,
  2259. // b.InvName,
  2260. // b.InvStd,
  2261. //b.InvUnit,
  2262. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2263. // a.WhCode,
  2264. //a.ExtensionID
  2265. // FROM
  2266. // ICSOApply a
  2267. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2268. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2269. // WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}'
  2270. // GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  2271. // #endregion
  2272. // }
  2273. // if (Type == "6")
  2274. // {
  2275. // #region 委外材料出库SQL
  2276. // sqls = @" select
  2277. // x.MergeID,
  2278. // a.IssueCode as Code,
  2279. // a.InvCode,
  2280. // b.InvName,
  2281. // b.InvStd,
  2282. //b.InvUnit,
  2283. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2284. // a.WhCode,
  2285. //a.ExtensionID
  2286. // FROM
  2287. // ICSOIssue a
  2288. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2289. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2290. // WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  2291. // GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  2292. // #endregion
  2293. // }
  2294. // if (Type == "7")
  2295. // {
  2296. // #region 销售发货SQL
  2297. // sqls = @" select
  2298. // x.MergeID,
  2299. // a.SDNCode as Code,
  2300. // a.InvCode,
  2301. // b.InvName,
  2302. // b.InvStd,
  2303. //b.InvUnit,
  2304. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2305. // a.WhCode,
  2306. //a.ExtensionID
  2307. // FROM
  2308. // ICSSDN a
  2309. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2310. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2311. // WHERE a.SDNCode in ({0}) AND a.WorkPoint = '{1}'
  2312. // GROUP BY a.SDNCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  2313. // #endregion
  2314. // }
  2315. // if (Type == "8")
  2316. // {
  2317. // #region 其它出库SQL
  2318. // sqls = @" select
  2319. // x.MergeID,
  2320. // a.OutCode as Code,
  2321. // a.InvCode,
  2322. // b.InvName,
  2323. // b.InvStd,
  2324. //b.InvUnit,
  2325. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2326. // a.WhCode,
  2327. //a.ExtensionID
  2328. // FROM
  2329. // ICSOtherOut a
  2330. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2331. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2332. // WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  2333. // GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  2334. // #endregion
  2335. // }
  2336. // if (Type == "9")
  2337. // {
  2338. // #region 借用SQL
  2339. // sqls = @" select
  2340. // x.MergeID,
  2341. // a.BrrowCode as Code,
  2342. // a.InvCode,
  2343. // b.InvName,
  2344. // b.InvStd,
  2345. //b.InvUnit,
  2346. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2347. // a.WhCode,
  2348. //a.ExtensionID
  2349. // FROM
  2350. // ICSBrrow a
  2351. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2352. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2353. // WHERE a.BrrowCode in ({0}) AND a.WorkPoint = '{1}'
  2354. // GROUP BY a.BrrowCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  2355. // #endregion
  2356. // }
  2357. // if (Type == "10")
  2358. // {
  2359. // #region 物料调拨
  2360. // sqls = @" select
  2361. // x.MergeID,
  2362. // a.TransferNO as Code,
  2363. // a.InvCode,
  2364. // b.InvName,
  2365. // b.InvStd,
  2366. //b.InvUnit,
  2367. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2368. // a.FromWarehouseCode as WhCode,
  2369. //a.ExtensionID
  2370. // FROM
  2371. // ICSTransfer a
  2372. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2373. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2374. // WHERE a.TransferNO in ({0}) AND a.WorkPoint = '{1}'
  2375. // GROUP BY a.TransferNO,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.FromWarehouseCode,a.ExtensionID,x.MergeID";
  2376. // #endregion
  2377. // }
  2378. // if (Type == "11")
  2379. // {
  2380. // #region 两步调出
  2381. // sqls = @"select
  2382. // x.MergeID,
  2383. // a.OutCode as Code,
  2384. // a.InvCode,
  2385. // b.InvName,
  2386. // b.InvStd,
  2387. // b.InvUnit,
  2388. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2389. // a.WHCode as WhCode,
  2390. // a.ExtensionID
  2391. // FROM
  2392. // ICSOtherOut a
  2393. // INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  2394. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2395. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2396. // WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  2397. // GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WHCode,a.ExtensionID,x.MergeID";
  2398. // #endregion
  2399. // }
  2400. // sqls = string.Format(sqls, string.IsNullOrWhiteSpace(ID) ? "''" : ID.TrimEnd(','), WorkPoint);
  2401. // sql = string.Format(sql, sqls, WorkPoint);
  2402. // DataTable table = Repository().FindDataSetBySql(sql).Tables[0];
  2403. // DataTable dtCloned = table.Clone();
  2404. // foreach (DataColumn col in dtCloned.Columns)
  2405. // {
  2406. // col.DataType = typeof(string);
  2407. // }
  2408. // foreach (DataRow row in table.Rows)
  2409. // {
  2410. // DataRow newrow = dtCloned.NewRow();
  2411. // foreach (DataColumn column in dtCloned.Columns)
  2412. // {
  2413. // newrow[column.ColumnName] = row[column.ColumnName].ToString();
  2414. // }
  2415. // dtCloned.Rows.Add(newrow);
  2416. // }
  2417. // if (Invmes.Rows.Count > 0)
  2418. // {
  2419. // dtCloned.Merge(Invmes, false);
  2420. // }
  2421. // return dtCloned;
  2422. // }
  2423. public DataTable GetICSMOPickMergeTemp2(string ID, string Type)
  2424. {
  2425. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  2426. string sqls = "";
  2427. if (Type == "1")
  2428. {
  2429. #region 工单备料sql
  2430. sqls = @" select
  2431. x.MergeID,
  2432. c.MOCode as Code,
  2433. a.InvCode,
  2434. b.InvName,
  2435. b.InvStd,
  2436. b.InvUnit,
  2437. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2438. a.WhCode,
  2439. a.ExtensionID
  2440. FROM
  2441. ICSMOPick a
  2442. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2443. inner join ICSMO c on a.MODetailID=c.MODetailID and a.WorkPoint=c.WorkPoint
  2444. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2445. WHERE c.MOCode in ({0}) AND a.WorkPoint = '{1}'
  2446. GROUP BY c.MOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,x.MergeID,a.ExtensionID";
  2447. #endregion
  2448. }
  2449. if (Type == "2" || Type == "12")
  2450. {
  2451. #region 工单领料SQL
  2452. sqls = @" select
  2453. x.MergeID,
  2454. a.ApplyCode as Code,
  2455. a.InvCode,
  2456. b.InvName,
  2457. b.InvStd,
  2458. b.InvUnit,
  2459. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2460. a.WhCode,
  2461. a.ExtensionID
  2462. FROM
  2463. ICSMOApply a
  2464. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2465. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2466. WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}'
  2467. GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,x.MergeID,a.ExtensionID";
  2468. #endregion
  2469. }
  2470. if (Type == "3")
  2471. {
  2472. #region 工单材料出库SQL
  2473. sqls = @" select
  2474. x.MergeID,
  2475. a.IssueCode as Code,
  2476. a.InvCode,
  2477. b.InvName,
  2478. b.InvStd,
  2479. b.InvUnit,
  2480. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2481. a.WhCode,
  2482. a.ExtensionID
  2483. FROM
  2484. ICSMOIssue a
  2485. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2486. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2487. WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  2488. GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  2489. #endregion
  2490. }
  2491. if (Type == "4")
  2492. {
  2493. #region 委外备料SQL
  2494. sqls = @" select
  2495. x.MergeID,
  2496. c.OOCode as Code,
  2497. a.InvCode,
  2498. b.InvName,
  2499. b.InvStd,
  2500. b.InvUnit,
  2501. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2502. a.WhCode,
  2503. a.ExtensionID
  2504. FROM
  2505. ICSOOPick a
  2506. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2507. left join ICSOutsourcingOrder c on a.OODetailID=c.OODetailID and a.WorkPoint=c.WorkPoint
  2508. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2509. WHERE c.OOCode in ({0}) AND a.WorkPoint = '{1}'
  2510. GROUP BY c.OOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID, x.MergeID";
  2511. #endregion
  2512. }
  2513. if (Type == "5")
  2514. {
  2515. #region 委外领料SQL
  2516. sqls = @" select
  2517. x.MergeID,
  2518. a.ApplyCode as Code,
  2519. a.InvCode,
  2520. b.InvName,
  2521. b.InvStd,
  2522. b.InvUnit,
  2523. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2524. a.WhCode,
  2525. a.ExtensionID
  2526. FROM
  2527. ICSOApply a
  2528. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2529. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2530. WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}'
  2531. GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  2532. #endregion
  2533. }
  2534. if (Type == "6")
  2535. {
  2536. #region 委外材料出库SQL
  2537. sqls = @" select
  2538. x.MergeID,
  2539. a.IssueCode as Code,
  2540. a.InvCode,
  2541. b.InvName,
  2542. b.InvStd,
  2543. b.InvUnit,
  2544. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2545. a.WhCode,
  2546. a.ExtensionID
  2547. FROM
  2548. ICSOIssue a
  2549. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2550. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2551. WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  2552. GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  2553. #endregion
  2554. }
  2555. if (Type == "7")
  2556. {
  2557. #region 销售发货SQL
  2558. sqls = @" select
  2559. x.MergeID,
  2560. a.SDNCode as Code,
  2561. a.InvCode,
  2562. b.InvName,
  2563. b.InvStd,
  2564. b.InvUnit,
  2565. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2566. a.WhCode,
  2567. a.ExtensionID
  2568. FROM
  2569. ICSSDN a
  2570. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2571. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2572. WHERE a.SDNCode in ({0}) AND a.WorkPoint = '{1}' AND a.Type='1'
  2573. GROUP BY a.SDNCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  2574. #endregion
  2575. }
  2576. if (Type == "8")
  2577. {
  2578. #region 其它出库SQL
  2579. sqls = @" select
  2580. x.MergeID,
  2581. a.OutCode as Code,
  2582. a.InvCode,
  2583. b.InvName,
  2584. b.InvStd,
  2585. b.InvUnit,
  2586. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2587. a.WhCode,
  2588. a.ExtensionID
  2589. FROM
  2590. ICSOtherOut a
  2591. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2592. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2593. WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  2594. GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  2595. #endregion
  2596. }
  2597. if (Type == "9")
  2598. {
  2599. #region 借用SQL
  2600. sqls = @" select
  2601. x.MergeID,
  2602. a.BrrowCode as Code,
  2603. a.InvCode,
  2604. b.InvName,
  2605. b.InvStd,
  2606. b.InvUnit,
  2607. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2608. a.WhCode,
  2609. a.ExtensionID
  2610. FROM
  2611. ICSBrrow a
  2612. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2613. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2614. WHERE a.BrrowCode in ({0}) AND a.WorkPoint = '{1}'
  2615. GROUP BY a.BrrowCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  2616. #endregion
  2617. }
  2618. if (Type == "10")
  2619. {
  2620. #region 物料调拨
  2621. sqls = @" select
  2622. x.MergeID,
  2623. a.TransferNO as Code,
  2624. a.InvCode,
  2625. b.InvName,
  2626. b.InvStd,
  2627. b.InvUnit,
  2628. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2629. a.FromWarehouseCode as WhCode,
  2630. a.ExtensionID
  2631. FROM
  2632. ICSTransfer a
  2633. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2634. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2635. WHERE a.TransferNO in ({0}) AND a.WorkPoint = '{1}'
  2636. GROUP BY a.TransferNO,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.FromWarehouseCode,a.ExtensionID,x.MergeID";
  2637. #endregion
  2638. }
  2639. if (Type == "11")
  2640. {
  2641. #region 两步调出
  2642. sqls = @" select
  2643. x.MergeID,
  2644. a.OutCode as Code,
  2645. a.InvCode,
  2646. b.InvName,
  2647. b.InvStd,
  2648. b.InvUnit,
  2649. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2650. a.WHCode as WhCode,
  2651. a.ExtensionID
  2652. FROM
  2653. ICSOtherOut a
  2654. INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  2655. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2656. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2657. WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  2658. GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WHCode,a.ExtensionID,x.MergeID";
  2659. #endregion
  2660. }
  2661. sqls = string.Format(sqls, string.IsNullOrWhiteSpace(ID) ? "''" : ID.TrimEnd(','), WorkPoint);
  2662. #region sql
  2663. string sql = $@"SELECT row_number() over (order by c.Code,c.InvCode,d.MTIME,d.LotNO) AS rowNo,
  2664. c.MergeID,
  2665. c.Code,
  2666. c.InvCode,
  2667. c.InvName,
  2668. c.InvStd,
  2669. c.InvUnit,
  2670. FLOOR(c.iQuantity) AS iQuantity,
  2671. d.WarehouseCode,
  2672. d.LocationCode,
  2673. d.LotNO,
  2674. FLOOR(ISNULL(d.Quantity, 0)) AS QTY,
  2675. CONVERT(varchar(100),d.MTIME, 23) MTIME,
  2676. FLOOR(f.QTYTotal) QTYTotal
  2677. FROM
  2678. ({sqls}) c
  2679. left join (select d.WarehouseCode,d.Quantity,d.INVCode, m.LotNo, d.MTIME,d.LocationCode,m.ExtensionID
  2680. from ICSWareHouseLotInfo d ,ICSInventoryLot m
  2681. where d.LotNo=m.LotNo and d.WorkPoint=m.WorkPoint
  2682. and d.WorkPoint='{WorkPoint}' AND d.Quantity>0 ) d
  2683. on c.InvCode=d.INVCode AND c.WhCode=d.WarehouseCode and d.ExtensionID=c.ExtensionID
  2684. 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
  2685. order by c.Code,c.InvCode,d.MTIME ";
  2686. #endregion
  2687. var dataset = Repository().FindDataSetBySql(sql);
  2688. if (dataset.Tables.Count == 0)
  2689. return null;
  2690. DataTable table = dataset.Tables[0];
  2691. decimal qtyCount = 0;
  2692. bool remove = false;
  2693. List<int> removeList = new List<int>();
  2694. for (int i = 0; i < table.Rows.Count; i++)
  2695. {
  2696. if (i != 0
  2697. && (!table.Rows[i]["InvCode"].ToString().Equals(table.Rows[i - 1]["InvCode"].ToString())
  2698. || !table.Rows[i]["Code"].ToString().Equals(table.Rows[i - 1]["Code"].ToString()))
  2699. )
  2700. {
  2701. qtyCount = 0;
  2702. remove = false;
  2703. }
  2704. if (remove)
  2705. {
  2706. removeList.Add(i);
  2707. }
  2708. else
  2709. {
  2710. var lotQty = table.Rows[i]["QTY"].ToString().ToDecimal();
  2711. var orderQty = table.Rows[i]["iQuantity"].ToString().ToDecimal();
  2712. qtyCount += lotQty;
  2713. if (qtyCount >= orderQty)
  2714. {
  2715. remove = true;
  2716. }
  2717. }
  2718. }
  2719. if (removeList.Count > 0)
  2720. {
  2721. removeList.Reverse();
  2722. foreach (var item in removeList)
  2723. {
  2724. table.Rows.RemoveAt(item);
  2725. }
  2726. }
  2727. var result = ConvertCellToString(table);
  2728. if (Invmes.Rows.Count > 0)
  2729. {
  2730. result.Merge(Invmes, false);
  2731. }
  2732. return result;
  2733. }
  2734. public string MergeMaterial(string keyValue, string Type)
  2735. {
  2736. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2737. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2738. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  2739. string msg = "";
  2740. string sql = string.Empty;
  2741. string dataList = string.Empty;
  2742. List<string> arry = keyValue.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList();
  2743. if (arry.Count > 0)
  2744. {
  2745. StringBuilder stringBuilder = new StringBuilder();
  2746. foreach (var i in arry)
  2747. {
  2748. stringBuilder.Append($@"'{i}',");
  2749. }
  2750. dataList = stringBuilder.ToString(0, stringBuilder.Length - 1);
  2751. }
  2752. Int64 Merge_ID = 0;
  2753. DateTime time = DateTime.Now;
  2754. string Tday = time.ToString("yyyyMMdd");
  2755. string sqls = string.Format(@"SELECT MAX(A.MergeID) AS SourceID FROM ICSMOPickMerge A WHERE A.MergeID LIKE '{0}%' AND LEN(a.MergeID) = 13", Tday);
  2756. DataSet ds = SqlHelper.GetDataSetBySql(sqls);
  2757. DataTable dts = ds.Tables[0];
  2758. if (dts != null && dts.Rows.Count > 0)
  2759. {
  2760. string lot = dts.Rows[0]["SourceID"].ToString();
  2761. if (!string.IsNullOrWhiteSpace(lot))
  2762. Merge_ID = Convert.ToInt64(lot.Substring(lot.Length - 5));
  2763. }
  2764. string MergeID = Tday + (Merge_ID + 1).ToString().PadLeft(5, '0');
  2765. string order = string.Empty;
  2766. string orderCode = string.Empty;
  2767. string quantity = string.Empty;
  2768. string sqlString1 = string.Empty;
  2769. string sqlString2 = string.Empty;
  2770. if (Type == "1")//工单备料
  2771. {
  2772. sql += @"INSERT INTO dbo.ICSMOPickMerge
  2773. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  2774. select NEWID(),'{0}',b.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  2775. from ICSMO a inner join ICSMOPick b on b.MODetailID=a.MODetailID and b.WorkPoint=a.WorkPoint
  2776. where a.MOCode in ({5})
  2777. ";
  2778. }
  2779. if (Type == "2")//工单发料
  2780. {
  2781. order = "ICSMOApply";
  2782. orderCode = "b.ApplyCode";
  2783. quantity = "b.IssueQuantity";
  2784. sql += @"INSERT INTO dbo.ICSMOPickMerge
  2785. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint,EATTRIBUTE1)
  2786. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}',a.ApplyCode
  2787. from ICSMOApply a
  2788. where a.ApplyCode in ({5})";
  2789. }
  2790. if (Type == "3")//材料出库
  2791. {
  2792. sql += @"INSERT INTO dbo.ICSMOPickMerge
  2793. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  2794. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  2795. from ICSMOIssue a
  2796. where a.IssueCode in ({5}) ";
  2797. }
  2798. if (Type == "4")//委外备料
  2799. {
  2800. sql += @"INSERT INTO dbo.ICSMOPickMerge
  2801. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  2802. select NEWID(),'{0}',b.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  2803. from ICSOutsourcingOrder a inner join ICSOOPick b on a.OODetailID=b.OODetailID and b.WorkPoint=a.WorkPoint
  2804. where a.OOCode in ({5})";
  2805. }
  2806. if (Type == "5")//委外领料
  2807. {
  2808. order = "ICSOApply";
  2809. orderCode = "b.ApplyCode";
  2810. quantity = "b.IssueQuantity";
  2811. sql += @"INSERT INTO dbo.ICSMOPickMerge
  2812. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint,EATTRIBUTE1)
  2813. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}',a.ApplyCode
  2814. from ICSOApply a
  2815. where a.ApplyCode in ({5})";
  2816. }
  2817. if (Type == "6")//委外材料出库
  2818. {
  2819. sql += @"INSERT INTO dbo.ICSMOPickMerge
  2820. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  2821. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  2822. from ICSOIssue a
  2823. where a.IssueCode in ({5})";
  2824. }
  2825. if (Type == "7")//销售发货
  2826. {
  2827. order = "ICSSDN";
  2828. orderCode = "b.SDNCode";
  2829. quantity = "b.SDNQuantity";
  2830. sql += @"INSERT INTO dbo.ICSMOPickMerge
  2831. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint,EATTRIBUTE1)
  2832. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}',a.SDNCode
  2833. from ICSSDN a
  2834. where a.SDNCode in ({5}) AND a.Type='1' ";
  2835. }
  2836. if (Type == "8")//其它出库
  2837. {
  2838. order = "ICSOtherOut";
  2839. orderCode = "b.OutCode";
  2840. quantity = "b.OutQuantity";
  2841. sql += @"INSERT INTO dbo.ICSMOPickMerge
  2842. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint,EATTRIBUTE1)
  2843. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}',a.OutCode
  2844. from ICSOtherOut a
  2845. where a.OutCode in ({5})";
  2846. }
  2847. if (Type == "9")//借用单
  2848. {
  2849. sql += @"INSERT INTO dbo.ICSMOPickMerge
  2850. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  2851. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  2852. from ICSBrrow a
  2853. where a.BrrowCode in ({5})";
  2854. }
  2855. if (Type == "10")//物料调拨
  2856. {
  2857. order = "ICSTransfer";
  2858. orderCode = "b.TransferNO";
  2859. quantity = "b.TransferQuantity";
  2860. sql += @"INSERT INTO dbo.ICSMOPickMerge
  2861. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint,EATTRIBUTE1)
  2862. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}',a.TransferNO
  2863. from ICSTransfer a
  2864. where a.TransferNO in ({5})
  2865. ";
  2866. }
  2867. if (Type == "11")//两步调出
  2868. {
  2869. sql += @" INSERT INTO dbo.ICSMOPickMerge
  2870. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  2871. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  2872. from ICSOtherOut a
  2873. INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  2874. where a.OutCode in ({5})
  2875. ";
  2876. }
  2877. sql = string.Format(sql, MergeID, Type, MUSER, MUSERNAME, WorkPoint, dataList);
  2878. sqlString1 += $@" SELECT a.ID FROM ICSMOPickMerge a WHERE a.SourceID IN (SELECT b.ID FROM {order} b WHERE {orderCode} IN({dataList}) )";
  2879. sqlString2 += $@" SELECT b.ID FROM {order} b WHERE {orderCode} IN({dataList}) AND {quantity}>0";
  2880. DataSet ds1 = SqlHelper.GetDataSetBySql(sqlString1);
  2881. DataSet ds2 = SqlHelper.GetDataSetBySql(sqlString2);
  2882. DataTable dts1 = ds1.Tables[0];
  2883. DataTable dts2 = ds2.Tables[0];
  2884. if ((dts1 != null && dts1.Rows.Count > 0))
  2885. {
  2886. }
  2887. else if (dts2 != null && dts2.Rows.Count > 0)
  2888. {
  2889. msg = "当前选择单据号存在已出库的单据号,合并 失败";
  2890. }
  2891. else
  2892. {
  2893. try
  2894. {
  2895. if (SqlHelper.CmdExecuteNonQueryLi(sql) == 0)
  2896. {
  2897. msg = "新增失败";
  2898. }
  2899. }
  2900. catch (Exception ex)
  2901. {
  2902. throw new Exception(ex.Message);
  2903. }
  2904. }
  2905. return msg;
  2906. }
  2907. public string CancelMergeMaterial(string keyValue, string Type)
  2908. {
  2909. string msg = "";
  2910. string sql = string.Empty;
  2911. keyValue = keyValue.TrimEnd(',');
  2912. List<string> arry = keyValue.Split(',').ToList();
  2913. string dataList = string.Empty;
  2914. if (arry.Count > 0)
  2915. {
  2916. foreach (var i in arry)
  2917. {
  2918. dataList += $@"'{i}',";
  2919. }
  2920. if (dataList.Any())
  2921. {
  2922. dataList = dataList.TrimEnd(',');
  2923. }
  2924. }
  2925. string sqls = $@" SELECT SourceID FROM ICSMOPickMerge WHERE EATTRIBUTE1 IN({dataList}) ";
  2926. DataSet ds = SqlHelper.GetDataSetBySql(sqls);
  2927. DataTable dts = ds.Tables[0];
  2928. if (dts == null || dts.Rows.Count <= 0)
  2929. {
  2930. msg = "当前单据未合并拣料,取消合并拣料失败";
  2931. return msg;
  2932. }
  2933. string sqlStrring = string.Empty;
  2934. if (Type == "2")//工单发料
  2935. {
  2936. sqlStrring = $@"select ID from ICSMOApply a where a.ID in ({sqls}) and a.IssueQuantity=0 ";
  2937. }
  2938. if (Type == "5")//委外领料
  2939. {
  2940. sqlStrring = $@"select ID from ICSOApply a where a.ID in ({sqls}) and a.IssueQuantity=0 ";
  2941. }
  2942. if (Type == "7")//销售发货
  2943. {
  2944. sqlStrring = $@"select ID from ICSSDN a where a.ID in ({sqls}) and a.SDNQuantity=0 AND a.Type='1' ";
  2945. }
  2946. if (Type == "8")//其它出库
  2947. {
  2948. sqlStrring = $@"select ID
  2949. from ICSOtherOut a
  2950. where a.ID in ({sqls}) and a.OutQuantity=0";
  2951. }
  2952. if (Type == "10")//物料调拨
  2953. {
  2954. sqlStrring = $@"select ID from ICSTransfer a where a.ID in ({sqls}) and a.TransferQuantity=0 ";
  2955. }
  2956. DataSet dsdata = SqlHelper.GetDataSetBySql(sqlStrring);
  2957. DataTable dtdsdatas = dsdata.Tables[0];
  2958. if (dtdsdatas == null || dtdsdatas.Rows.Count <= 0)
  2959. {
  2960. msg = "当前物料已经出库,取消合并失败";
  2961. return msg;
  2962. }
  2963. sql = $@"DELETE FROM ICSMOPickMerge WHERE SourceID IN({sqls})";
  2964. try
  2965. {
  2966. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  2967. {
  2968. }
  2969. else
  2970. {
  2971. msg = "取消合并失败";
  2972. }
  2973. }
  2974. catch (Exception ex)
  2975. {
  2976. throw new Exception(ex.Message);
  2977. }
  2978. return msg;
  2979. }
  2980. public string CheckQty(string objArr)
  2981. {
  2982. objArr = objArr.TrimEnd(',');
  2983. string sql = @"select * from ICSMOPickMerge a
  2984. left join ICSMOPick b on a.SourceID=b.ID and a.WorkPoint=b.WorkPoint
  2985. left join ICSMO c on b.MODetailID=c.MODetailID and b.WorkPoint=c.WorkPoint
  2986. where MOCode in ({0})";
  2987. sql = string.Format(sql, objArr);
  2988. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  2989. if (dt != null && dt.Rows.Count > 0)
  2990. {
  2991. return "1";
  2992. }
  2993. return "0";
  2994. }
  2995. //删除占料
  2996. public string DelPickLog(string objCode)
  2997. {
  2998. //站点信息
  2999. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  3000. string msg = "";
  3001. objCode = objCode.Substring(1, objCode.Length - 2);
  3002. string sql = string.Empty;
  3003. // sql += string.Format(@"update b set b.LockQuantity=convert(decimal(18,6),b.LockQuantity)-convert(decimal(18,6),a.Quantity )
  3004. //from dbo.ICSWareHouseLotInfoLog a
  3005. //left join dbo.ICSWareHouseLotInfo b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  3006. // where a.TransCode in ({0}) and a.TransType='15' and a.WorkPoint='{1}'", objCode.TrimEnd(','), WorkPoint);
  3007. sql += string.Format(@" update b set b.LockQuantity=convert(decimal(18,6),b.LockQuantity)-convert(decimal(18,6),c.Quantity )
  3008. from dbo.ICSWareHouseLotInfo b
  3009. inner join (select sum(Quantity) as Quantity, LotNo from ICSWareHouseLotInfolog where TransCode in ({0})and TransType='15' and WorkPoint='{1}' group by LotNo) c
  3010. on c.LotNo =b.LotNo ", objCode.TrimEnd(','), WorkPoint);
  3011. sql += string.Format(@" delete dbo.ICSWareHouseLotInfoLog where TransCode in({0}) and TransType='15' and WorkPoint='{1}'", objCode.TrimEnd(','), WorkPoint);
  3012. try
  3013. {
  3014. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  3015. {
  3016. }
  3017. }
  3018. catch (Exception ex)
  3019. {
  3020. throw new Exception(ex.Message);
  3021. }
  3022. return msg;
  3023. }
  3024. public int SeachPickLog(string objCode)
  3025. {
  3026. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  3027. objCode = objCode.TrimEnd(',');
  3028. string[] parameters = objCode.Split(',');
  3029. int parameterCount = parameters.Length;
  3030. string sql = @" select distinct a.TransCode from dbo.ICSWareHouseLotInfoLog a
  3031. left join dbo.ICSWareHouseLotInfo b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  3032. where a.TransCode in ({0}) and a.TransType='15' and a.WorkPoint='{1}'";
  3033. sql = string.Format(sql, objCode, WorkPoint);
  3034. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  3035. int count = dt.Rows.Count;
  3036. return count;
  3037. }
  3038. public DataTable GetPickLogInfo(string ID)
  3039. {
  3040. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  3041. DataTable dt = new DataTable();
  3042. List<DbParameter> parameter = new List<DbParameter>();
  3043. string sql = @"
  3044. select '' 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,
  3045. a.FromWarehouseCode as WarehouseCode,a.FromLocationCode as LocationCode,a.LotNO,a.MTIME,c.Quantity as QTY
  3046. from dbo.ICSWareHouseLotInfoLog a
  3047. left join dbo.ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3048. left join dbo.ICSWareHouseLotInfo c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  3049. where a.TransCode in ({0}) and a.TransType='15' and a.WorkPoint='{1}'";
  3050. sql = string.Format(sql, ID.TrimEnd(','), WorkPoint);
  3051. return Repository().FindTableBySql(sql.ToString());
  3052. }
  3053. }
  3054. }