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

1630 lines
78 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
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
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
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
  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. namespace NFine.Application.WMS
  18. {
  19. public class PickMaterialApp : RepositoryFactory<ICSVendor>
  20. {
  21. public static DataTable Invmes = new DataTable();
  22. //工单备料(工单子件)
  23. public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam)
  24. {
  25. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  26. DataTable dt = new DataTable();
  27. var queryParam = queryJson.ToJObject();
  28. List<DbParameter> parameter = new List<DbParameter>();
  29. string sql = "";
  30. #region [SQL]
  31. // 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,
  32. //case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  33. //from ICSMOPick a
  34. //left join ICSMO b on a.MODetailID=b.MODetailID and a.WorkPoint=b.WorkPoint
  35. //left join ICSWarehouse c on a.WHCode=c.WarehouseCode and a.WorkPoint=c.WorkPoint
  36. //left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  37. //left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  38. // sql += " WHERE 1=1 and e.ID is null";
  39. sql = @"select
  40. a.MOCode as Code,a.CreateDateTime as MTIME,a.createperson as MUSER,case when max(d.SourceID) is null then '' else '' end as IsNew
  41. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4 ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  42. from ICSMO a
  43. inner join ICSMOPick b on b.MODetailID=a.MODetailID and b.WorkPoint=a.WorkPoint
  44. left join ICSMOPickMerge d on d.SourceID=b.ID and d.WorkPoint=b.WorkPoint
  45. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  46. where a.WorkPoint='{0}'
  47. group by a.MOCode, a.WorkPoint,a.CreateDateTime,a.createperson,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  48. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  49. sql = string.Format(sql, WorkPoint);
  50. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  51. #endregion
  52. if (!string.IsNullOrWhiteSpace(queryJson))
  53. {
  54. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  55. {
  56. sql += " and b.MOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  57. }
  58. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  59. {
  60. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  61. }
  62. }
  63. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  64. }
  65. //工单备料(工单子件)子表查询
  66. public DataTable GetSubGridJson1(string Code)
  67. {
  68. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  69. DataTable dt = new DataTable();
  70. //var queryParam = queryJson.ToJObject();
  71. List<DbParameter> parameter = new List<DbParameter>();
  72. 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,
  73. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  74. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  75. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.IssueQuantity as IssueQuantity
  76. from ICSMOPick a
  77. left join ICSMO b on a.MODetailID=b.MODetailID and a.WorkPoint=b.WorkPoint
  78. left join ICSWarehouse c on a.WHCode=c.WarehouseCode and a.WorkPoint=c.WorkPoint
  79. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  80. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  81. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  82. where b.MOCode='{0}' and a.WorkPoint='{1}'";
  83. sql = string.Format(sql, Code, WorkPoint);
  84. return Repository().FindTableBySql(sql.ToString());
  85. }
  86. //工单领料(发料申请)
  87. public DataTable GetGridJson2(string queryJson, ref Pagination jqgridparam)
  88. {
  89. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  90. DataTable dt = new DataTable();
  91. var queryParam = queryJson.ToJObject();
  92. List<DbParameter> parameter = new List<DbParameter>();
  93. string sql = "";
  94. #region [SQL]
  95. // 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,
  96. //case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  97. // from ICSMOApply a
  98. // left join ICSWarehouse b on a.WHCode = b.WarehouseCode and a.WorkPoint = b.WorkPoint
  99. // left join ICSInventory d on a.InvCode = d.InvCode and a.WorkPoint = d.WorkPoint
  100. // left join ICSMOPickMerge e on a.ID = e.SourceID and a.WorkPoint = e.WorkPoint
  101. sql = @"
  102. select a.ApplyCode as Code,a.CreateDateTime as MTIME,a.createperson as MUSER,
  103. case when max(e.SourceID) is null then '' else '' end as IsNew,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4 ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  104. from ICSMOApply a
  105. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  106. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  107. where a.WorkPoint='{0}'
  108. group by a.ApplyCode, a.WorkPoint,a.CreateDateTime,a.createperson,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  109. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  110. sql = string.Format(sql, WorkPoint);
  111. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  112. #endregion
  113. if (!string.IsNullOrWhiteSpace(queryJson))
  114. {
  115. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  116. {
  117. sql += " and a.ApplyCode like '%" + queryParam["POCode"].ToString() + "%' ";
  118. }
  119. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  120. {
  121. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  122. }
  123. }
  124. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  125. }
  126. //工单领料(发料申请)子表查询
  127. public DataTable GetSubGridJson2(string Code)
  128. {
  129. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  130. DataTable dt = new DataTable();
  131. //var queryParam = queryJson.ToJObject();
  132. List<DbParameter> parameter = new List<DbParameter>();
  133. string sql = @"select a.ID,a.ApplyCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName ,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  134. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  135. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  136. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.IssueQuantity as IssueQuantity
  137. from ICSMOApply a
  138. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  139. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  140. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  141. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  142. where a.ApplyCode='{0}' and a.WorkPoint='{1}'";
  143. sql = string.Format(sql, Code, WorkPoint);
  144. return Repository().FindTableBySql(sql.ToString());
  145. }
  146. //工单材料出库(材料出库)
  147. public DataTable GetGridJson3(string queryJson, ref Pagination jqgridparam)
  148. {
  149. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  150. DataTable dt = new DataTable();
  151. var queryParam = queryJson.ToJObject();
  152. List<DbParameter> parameter = new List<DbParameter>();
  153. string sql = "";
  154. #region [SQL]
  155. // 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,
  156. // case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  157. // from ICSMOIssue a
  158. //left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  159. //left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  160. //left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint ";
  161. // sql += " WHERE 1=1 and e.ID is null";
  162. sql = @"select a.IssueCode as Code,a.CreateDateTime as MTIME,a.createperson as MUSER,
  163. case when max(e.SourceID) is null then '' else '' end as IsNew
  164. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  165. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  166. from ICSMOIssue a
  167. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  168. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  169. where a.WorkPoint='{0}'
  170. group by a.IssueCode, a.CreateDateTime,a.createperson,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  171. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  172. sql = string.Format(sql, WorkPoint);
  173. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  174. #endregion
  175. if (!string.IsNullOrWhiteSpace(queryJson))
  176. {
  177. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  178. {
  179. sql += " and a.IssueCode like '%" + queryParam["POCode"].ToString() + "%' ";
  180. }
  181. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  182. {
  183. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  184. }
  185. }
  186. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  187. {
  188. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  189. }
  190. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  191. }
  192. //工单材料出库(材料出库)子表查询
  193. public DataTable GetSubGridJson3(string Code)
  194. {
  195. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  196. DataTable dt = new DataTable();
  197. //var queryParam = queryJson.ToJObject();
  198. List<DbParameter> parameter = new List<DbParameter>();
  199. 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,
  200. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  201. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  202. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.IssueQuantity as IssueQuantity
  203. from ICSMOIssue a
  204. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  205. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.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.IssueCode='{0}' and a.WorkPoint='{1}'";
  209. sql = string.Format(sql, Code, WorkPoint);
  210. return Repository().FindTableBySql(sql.ToString());
  211. }
  212. //委外备料(委外备料)
  213. public DataTable GetGridJson4(string queryJson, ref Pagination jqgridparam)
  214. {
  215. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  216. DataTable dt = new DataTable();
  217. var queryParam = queryJson.ToJObject();
  218. List<DbParameter> parameter = new List<DbParameter>();
  219. string sql = "";
  220. #region [SQL]
  221. sql = @"select b.OOCode as Code, b.CreateDateTime as MTIME,b.CreatePerson as MUSER,
  222. case when max(e.SourceID) is null then '' else '' end as IsNew
  223. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  224. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  225. from ICSOOPick a
  226. inner join ICSOutsourcingOrder b on a.OODetailID=b.OODetailID and a.WorkPoint=b.WorkPoint
  227. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  228. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  229. WHERE b.WorkPoint='{0}'
  230. group by b.OOCode,b.CreateDateTime,b.CreatePerson,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  231. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  232. sql = string.Format(sql, WorkPoint);
  233. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  234. #endregion
  235. if (!string.IsNullOrWhiteSpace(queryJson))
  236. {
  237. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  238. {
  239. sql += " and a.OOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  240. }
  241. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  242. {
  243. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  244. }
  245. }
  246. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  247. {
  248. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  249. }
  250. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  251. }
  252. //委外备料(委外备料)子表查询
  253. public DataTable GetSubGridJson4(string Code)
  254. {
  255. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  256. DataTable dt = new DataTable();
  257. //var queryParam = queryJson.ToJObject();
  258. List<DbParameter> parameter = new List<DbParameter>();
  259. 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,
  260. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  261. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  262. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.IssueQuantity as IssueQuantity
  263. from ICSOOPick a
  264. left join ICSOutsourcingOrder b on a.OODetailID=b.OODetailID and a.WorkPoint=b.WorkPoint
  265. left join ICSWarehouse c on a.WHCode=c.WarehouseCode and a.WorkPoint=c.WorkPoint
  266. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  267. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  268. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  269. where b.OOCode='{0}' and b.WorkPoint='{1}'";
  270. sql = string.Format(sql, Code, WorkPoint);
  271. return Repository().FindTableBySql(sql.ToString());
  272. }
  273. //委外领料(委外发料申请)
  274. public DataTable GetGridJson5(string queryJson, ref Pagination jqgridparam)
  275. {
  276. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  277. DataTable dt = new DataTable();
  278. var queryParam = queryJson.ToJObject();
  279. List<DbParameter> parameter = new List<DbParameter>();
  280. string sql = "";
  281. #region [SQL]
  282. // 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,
  283. //case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  284. // from ICSOApply a
  285. //left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  286. //left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  287. //left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  288. // sql += " WHERE 1=1 and e.ID is null";
  289. sql = @"select a.ApplyCode as Code, a.CreateDateTime as MTIME,a.CreatePerson as MUSER,
  290. case when max(e.SourceID) is null then '' else '' end as IsNew
  291. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  292. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  293. from ICSOApply a
  294. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  295. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  296. where a.WorkPoint='{0}'
  297. group by a.ApplyCode,a.CreateDateTime,a.CreatePerson,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  298. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  299. sql = string.Format(sql, WorkPoint);
  300. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  301. #endregion
  302. if (!string.IsNullOrWhiteSpace(queryJson))
  303. {
  304. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  305. {
  306. sql += " and a.ApplyCode like '%" + queryParam["POCode"].ToString() + "%' ";
  307. }
  308. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  309. {
  310. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  311. }
  312. }
  313. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  314. {
  315. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  316. }
  317. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  318. }
  319. //委外领料(委外发料申请)子表查询
  320. public DataTable GetSubGridJson5(string Code)
  321. {
  322. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  323. DataTable dt = new DataTable();
  324. //var queryParam = queryJson.ToJObject();
  325. List<DbParameter> parameter = new List<DbParameter>();
  326. string sql = @"select a.ID,a.ApplyCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  327. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  328. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  329. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.IssueQuantity as IssueQuantity
  330. from ICSOApply a
  331. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  332. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  333. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  334. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  335. where a.ApplyCode='{0}' and b.WorkPoint='{1}'";
  336. sql = string.Format(sql, Code, WorkPoint);
  337. return Repository().FindTableBySql(sql.ToString());
  338. }
  339. //委外材料出库(委外发料申请)
  340. public DataTable GetGridJson6(string queryJson, ref Pagination jqgridparam)
  341. {
  342. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  343. DataTable dt = new DataTable();
  344. var queryParam = queryJson.ToJObject();
  345. List<DbParameter> parameter = new List<DbParameter>();
  346. string sql = "";
  347. #region [SQL]
  348. // 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,
  349. //case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  350. // from ICSOIssue a
  351. //left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  352. //left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  353. //left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  354. // sql += " WHERE 1=1 and e.ID is null";
  355. sql = @"select a.IssueCode as Code, a.CreateDateTime as MTIME,a.CreatePerson as MUSER,
  356. case when max(e.SourceID) is null then '' else '' end as IsNew
  357. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  358. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  359. from ICSOIssue a
  360. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  361. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  362. where a.WorkPoint='{0}'
  363. group by a.IssueCode,a.CreateDateTime,a.CreatePerson,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  364. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  365. sql = string.Format(sql, WorkPoint);
  366. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  367. #endregion
  368. if (!string.IsNullOrWhiteSpace(queryJson))
  369. {
  370. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  371. {
  372. sql += " and a.IssueCode like '%" + queryParam["POCode"].ToString() + "%' ";
  373. }
  374. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  375. {
  376. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  377. }
  378. }
  379. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  380. {
  381. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  382. }
  383. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  384. }
  385. //委外材料出库(委外发料申请)子表查询
  386. public DataTable GetSubGridJson6(string Code)
  387. {
  388. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  389. DataTable dt = new DataTable();
  390. //var queryParam = queryJson.ToJObject();
  391. List<DbParameter> parameter = new List<DbParameter>();
  392. 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,
  393. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  394. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  395. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.IssueQuantity as IssueQuantity
  396. from ICSOIssue a
  397. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  398. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  399. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  400. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  401. where a.IssueCode='{0}' and b.WorkPoint='{1}'";
  402. sql = string.Format(sql, Code, WorkPoint);
  403. return Repository().FindTableBySql(sql.ToString());
  404. }
  405. //销售发货(销售发货)
  406. public DataTable GetGridJson7(string queryJson, ref Pagination jqgridparam)
  407. {
  408. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  409. DataTable dt = new DataTable();
  410. var queryParam = queryJson.ToJObject();
  411. List<DbParameter> parameter = new List<DbParameter>();
  412. string sql = "";
  413. #region [SQL]
  414. // 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,
  415. //case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  416. // from ICSSDN a
  417. //left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  418. //left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  419. //left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  420. // sql += " WHERE 1=1 and a.Type='1' and e.ID is null";
  421. sql = @"select a.SDNCode as Code, a.CreateDateTime as MTIME,a.CreatePerson as MUSER,
  422. case when max(e.SourceID) is null then '' else '' end as IsNew
  423. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  424. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  425. from ICSSDN 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='{0}'
  429. group by a.SDNCode,a.CreateDateTime,a.CreatePerson,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  430. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  431. sql = string.Format(sql, WorkPoint);
  432. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  433. #endregion
  434. if (!string.IsNullOrWhiteSpace(queryJson))
  435. {
  436. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  437. {
  438. sql += " and a.SDNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  439. }
  440. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  441. {
  442. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  443. }
  444. }
  445. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  446. {
  447. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  448. }
  449. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  450. }
  451. //销售发货(销售发货)子表查询
  452. public DataTable GetSubGridJson7(string Code)
  453. {
  454. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  455. DataTable dt = new DataTable();
  456. //var queryParam = queryJson.ToJObject();
  457. List<DbParameter> parameter = new List<DbParameter>();
  458. string sql = @"select a.ID,a.SDNCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  459. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  460. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  461. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.SDNQuantity as IssueQuantity
  462. from ICSSDN a
  463. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  464. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  465. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  466. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  467. where a.SDNCode='{0}' and b.WorkPoint='{1}'";
  468. sql = string.Format(sql, Code, WorkPoint);
  469. return Repository().FindTableBySql(sql.ToString());
  470. }
  471. //其它出库(其它出库)
  472. public DataTable GetGridJson8(string queryJson, ref Pagination jqgridparam)
  473. {
  474. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  475. DataTable dt = new DataTable();
  476. var queryParam = queryJson.ToJObject();
  477. List<DbParameter> parameter = new List<DbParameter>();
  478. string sql = "";
  479. #region [SQL]
  480. // 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,
  481. //case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  482. //from ICSOtherOut a
  483. //left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  484. //left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  485. //left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  486. // sql += " WHERE 1=1 and e.ID is null ";
  487. sql = @"select a.OutCode as Code, a.CreateDateTime as MTIME,a.CreatePerson as MUSER,
  488. case when max(e.SourceID) is null then '' else '' end as IsNew
  489. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  490. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  491. from ICSOtherOut a
  492. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  493. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  494. where a.WorkPoint='{0}'
  495. group by a.OutCode,a.CreateDateTime,a.CreatePerson,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  496. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  497. sql = string.Format(sql, WorkPoint);
  498. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  499. #endregion
  500. if (!string.IsNullOrWhiteSpace(queryJson))
  501. {
  502. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  503. {
  504. sql += " and a.OutCode like '%" + queryParam["POCode"].ToString() + "%' ";
  505. }
  506. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  507. {
  508. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  509. }
  510. }
  511. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  512. {
  513. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  514. }
  515. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  516. }
  517. //其它出库(其它出库)子表查询
  518. public DataTable GetSubGridJson8(string Code)
  519. {
  520. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  521. DataTable dt = new DataTable();
  522. //var queryParam = queryJson.ToJObject();
  523. List<DbParameter> parameter = new List<DbParameter>();
  524. 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,
  525. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  526. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  527. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.OutQuantity as IssueQuantity
  528. from ICSOtherOut a
  529. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  530. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  531. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  532. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  533. where a.OutCode='{0}' and b.WorkPoint='{1}'";
  534. sql = string.Format(sql, Code, WorkPoint);
  535. return Repository().FindTableBySql(sql.ToString());
  536. }
  537. //借用(借用)
  538. public DataTable GetGridJson9(string queryJson, ref Pagination jqgridparam)
  539. {
  540. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  541. DataTable dt = new DataTable();
  542. var queryParam = queryJson.ToJObject();
  543. List<DbParameter> parameter = new List<DbParameter>();
  544. string sql = "";
  545. #region [SQL]
  546. // sql = @"
  547. //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,
  548. // case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  549. // from ICSBrrow a
  550. // left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  551. // left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  552. // left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  553. // sql += " WHERE 1=1 and e.ID is null ";
  554. sql = @"select a.BrrowCode as Code, a.CreateDateTime as MTIME,a.CreatePerson as MUSER,
  555. case when max(e.SourceID) is null then '' else '' end as IsNew
  556. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  557. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  558. from ICSBrrow a
  559. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  560. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  561. where a.WorkPoint='{0}'
  562. group by a.BrrowCode,a.CreateDateTime,a.CreatePerson,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  563. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  564. sql = string.Format(sql, WorkPoint);
  565. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  566. #endregion
  567. if (!string.IsNullOrWhiteSpace(queryJson))
  568. {
  569. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  570. {
  571. sql += " and a.BrrowCode like '%" + queryParam["POCode"].ToString() + "%' ";
  572. }
  573. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  574. {
  575. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  576. }
  577. }
  578. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  579. {
  580. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  581. }
  582. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  583. }
  584. //借用(借用)子表查询
  585. public DataTable GetSubGridJson9(string Code)
  586. {
  587. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  588. DataTable dt = new DataTable();
  589. //var queryParam = queryJson.ToJObject();
  590. List<DbParameter> parameter = new List<DbParameter>();
  591. 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,
  592. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  593. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  594. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.BrrowQuantity as IssueQuantity
  595. from ICSBrrow a
  596. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  597. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  598. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  599. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  600. where a.OutCode='{0}' and b.WorkPoint='{1}'";
  601. sql = string.Format(sql, Code, WorkPoint);
  602. return Repository().FindTableBySql(sql.ToString());
  603. }
  604. //物料调拨
  605. public DataTable GetGridJson10(string queryJson, ref Pagination jqgridparam)
  606. {
  607. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  608. DataTable dt = new DataTable();
  609. var queryParam = queryJson.ToJObject();
  610. List<DbParameter> parameter = new List<DbParameter>();
  611. string sql = "";
  612. #region [SQL]
  613. // sql = @"
  614. //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,
  615. // case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  616. // from ICSBrrow a
  617. // left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  618. // left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  619. // left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  620. // sql += " WHERE 1=1 and e.ID is null ";
  621. sql = @"select a.TransferNO as Code, a.CreateDateTime as MTIME,a.CreatePerson as MUSER,
  622. case when max(e.SourceID) is null then '' else '' end as IsNew
  623. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  624. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  625. from ICSTransfer a
  626. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  627. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  628. where a.WorkPoint='{0}' and a.Status='1'
  629. group by a.TransferNO,a.CreateDateTime,a.CreatePerson,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  630. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  631. sql = string.Format(sql, WorkPoint);
  632. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  633. #endregion
  634. if (!string.IsNullOrWhiteSpace(queryJson))
  635. {
  636. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  637. {
  638. sql += " and a.BrrowCode like '%" + queryParam["POCode"].ToString() + "%' ";
  639. }
  640. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  641. {
  642. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  643. }
  644. }
  645. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  646. {
  647. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  648. }
  649. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  650. }
  651. //物料调拨子表查询
  652. public DataTable GetSubGridJson10(string Code)
  653. {
  654. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  655. DataTable dt = new DataTable();
  656. //var queryParam = queryJson.ToJObject();
  657. List<DbParameter> parameter = new List<DbParameter>();
  658. string sql = @"select a.ID,a.TransferNO as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.FromWarehouseCode as WHCode,b.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  659. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  660. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  661. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.TransferQuantity as IssueQuantity
  662. from ICSTransfer a
  663. left join ICSWarehouse b on a.FromWarehouseCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  664. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  665. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  666. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  667. where a.TransferNO='{0}' and b.WorkPoint='{1}'";
  668. sql = string.Format(sql, Code, WorkPoint);
  669. return Repository().FindTableBySql(sql.ToString());
  670. }
  671. //两步调拨
  672. public DataTable GetGridJson11(string queryJson, ref Pagination jqgridparam)
  673. {
  674. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  675. DataTable dt = new DataTable();
  676. var queryParam = queryJson.ToJObject();
  677. List<DbParameter> parameter = new List<DbParameter>();
  678. string sql = "";
  679. #region [SQL]
  680. // sql = @"
  681. //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,
  682. // case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  683. // from ICSBrrow a
  684. // left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  685. // left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  686. // left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  687. // sql += " WHERE 1=1 and e.ID is null ";
  688. sql = @"select a.OutCode as Code, a.CreateDateTime as MTIME,a.CreatePerson as MUSER,
  689. case when max(e.SourceID) is null then '' else '' end as IsNew
  690. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  691. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  692. FROM ICSOtherOut a
  693. INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  694. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  695. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  696. where a.WorkPoint='{0}' and a.Status='2'
  697. group by a.OutCode,a.CreateDateTime,a.CreatePerson,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  698. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  699. sql = string.Format(sql, WorkPoint);
  700. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  701. #endregion
  702. if (!string.IsNullOrWhiteSpace(queryJson))
  703. {
  704. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  705. {
  706. sql += " and a.BrrowCode like '%" + queryParam["POCode"].ToString() + "%' ";
  707. }
  708. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  709. {
  710. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  711. }
  712. }
  713. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  714. {
  715. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  716. }
  717. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  718. }
  719. //两步调拨子表查询
  720. public DataTable GetSubGridJson11(string Code)
  721. {
  722. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  723. DataTable dt = new DataTable();
  724. //var queryParam = queryJson.ToJObject();
  725. List<DbParameter> parameter = new List<DbParameter>();
  726. 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,
  727. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  728. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  729. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.OutQuantity as IssueQuantity
  730. FROM ICSOtherOut a
  731. INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  732. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  733. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  734. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  735. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  736. where a.OutCode='{0}' and b.WorkPoint='{1}'";
  737. sql = string.Format(sql, Code, WorkPoint);
  738. return Repository().FindTableBySql(sql.ToString());
  739. }
  740. public DataTable GetICSMOPickMergeTemp(string ID,string Type)
  741. {
  742. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  743. #region sql
  744. string sql = @"SELECT row_number() over (order by c.Code,c.InvCode,d.MTIME,d.LotNO) AS rowNo,
  745. c.Code,
  746. c.InvCode,
  747. c.InvName,
  748. c.InvStd,
  749. c.InvUnit,
  750. FLOOR(c.iQuantity) AS iQuantity,
  751. d.WarehouseCode,
  752. d.LocationCode,
  753. d.LotNO,
  754. FLOOR(ISNULL(d.Quantity, 0)) AS QTY,
  755. CONVERT(varchar(100),d.MTIME, 23) MTIME,
  756. FLOOR(f.QTYTotal) QTYTotal INTO #temp
  757. FROM
  758. ({0}) c
  759. LEFT JOIN ICSWareHouseLotInfo d ON c.InvCode=d.INVCode AND c.WhCode=d.WarehouseCode AND d.WorkPoint='{1}' AND d.Quantity>0
  760. left join ICSInventoryLot m on d.LotNo=m.LotNo and d.WorkPoint=m.WorkPoint and c.ExtensionID=m.ExtensionID
  761. 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
  762. DECLARE @ItemCode VARCHAR(50),
  763. @QTY DECIMAL(18,3),
  764. @ItemCodeCurrent VARCHAR(50),
  765. @QTYCurrent DECIMAL(18,3),
  766. @iQuantityCurrent DECIMAL(18,3),
  767. @CanDelete BIT,
  768. @Row INT,
  769. @rowCurrent INT
  770. SET @Row = @@rowcount
  771. SET @rowCurrent=1
  772. SET @CanDelete=0
  773. SET @ItemCode=''
  774. WHILE @rowCurrent<=@Row
  775. BEGIN
  776. SELECT @ItemCodeCurrent=InvCode,@QTYCurrent=QTY,@iQuantityCurrent=iQuantity FROM #temp WHERE rowNo=@rowCurrent
  777. PRINT(@rowCurrent)
  778. IF @ItemCode<>@ItemCodeCurrent
  779. BEGIN
  780. SET @ItemCode=@ItemCodeCurrent
  781. SET @QTY=0
  782. SET @CanDelete=0
  783. END
  784. IF @CanDelete=1
  785. BEGIN
  786. DELETE FROM #temp WHERE rowNo=@rowCurrent
  787. SET @rowCurrent += 1
  788. CONTINUE
  789. END
  790. SET @QTY += @QTYCurrent
  791. IF @QTY>=@iQuantityCurrent
  792. BEGIN
  793. SET @CanDelete=1
  794. END
  795. SET @rowCurrent += 1
  796. END
  797. SELECT * FROM #temp
  798. DROP TABLE #temp
  799. ";
  800. #endregion
  801. string sqls = "";
  802. if (Type=="1")
  803. {
  804. #region 工单备料sql
  805. sqls = @" SELECT
  806. c.MOCode as Code,
  807. a.InvCode,
  808. b.InvName,
  809. b.InvStd,
  810. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  811. a.WhCode,
  812. b.InvUnit,
  813. a.ExtensionID
  814. FROM
  815. ICSMOPick a
  816. inner join ICSMO c on a.MODetailID=c.MODetailID and a.WorkPoint=c.WorkPoint
  817. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  818. WHERE c.MOCode in ({0}) AND a.WorkPoint = '{1}'
  819. GROUP BY c.MOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  820. #endregion
  821. }
  822. if (Type == "2")
  823. {
  824. #region 工单领料SQL
  825. sqls = @" select
  826. a.ApplyCode as Code,
  827. a.InvCode,
  828. b.InvName,
  829. b.InvStd,
  830. b.InvUnit,
  831. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  832. a.WhCode,
  833. a.ExtensionID
  834. FROM
  835. ICSMOApply a
  836. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  837. WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}'
  838. GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  839. #endregion
  840. }
  841. if (Type=="3")
  842. {
  843. #region 工单材料出库SQL
  844. sqls = @" select
  845. a.IssueCode as Code,
  846. a.InvCode,
  847. b.InvName,
  848. b.InvStd,
  849. b.InvUnit,
  850. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  851. a.WhCode,
  852. a.ExtensionID
  853. FROM
  854. ICSMOIssue a
  855. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  856. WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  857. GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  858. #endregion
  859. }
  860. if (Type=="4")
  861. {
  862. #region 委外备料SQL
  863. sqls = @" select
  864. c.OOCode as Code,
  865. a.InvCode,
  866. b.InvName,
  867. b.InvStd,
  868. b.InvUnit,
  869. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  870. a.WhCode,
  871. a.ExtensionID
  872. FROM
  873. ICSOOPick a
  874. left join ICSOutsourcingOrder c on a.OODetailID=c.OODetailID and a.WorkPoint=c.WorkPoint
  875. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  876. WHERE c.OOCode in ({0}) AND a.WorkPoint = '{1}'
  877. GROUP BY c.OOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode, a.ExtensionID";
  878. #endregion
  879. }
  880. if (Type=="5")
  881. {
  882. #region 委外领料SQL
  883. sqls = @" select
  884. a.ApplyCode as Code,
  885. a.InvCode,
  886. b.InvName,
  887. b.InvStd,
  888. b.InvUnit,
  889. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  890. a.WhCode,
  891. a.ExtensionID
  892. FROM
  893. ICSOApply a
  894. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  895. WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}'
  896. GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  897. #endregion
  898. }
  899. if (Type=="6")
  900. {
  901. #region 委外材料出库SQL
  902. sqls = @" select
  903. a.IssueCode as Code,
  904. a.InvCode,
  905. b.InvName,
  906. b.InvStd,
  907. b.InvUnit,
  908. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  909. a.WhCode,
  910. a.ExtensionID
  911. FROM
  912. ICSOIssue a
  913. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  914. WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  915. GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  916. #endregion
  917. }
  918. if (Type=="7")
  919. {
  920. #region 销售发货SQL
  921. sqls = @" select
  922. a.SDNCode as Code,
  923. a.InvCode,
  924. b.InvName,
  925. b.InvStd,
  926. b.InvUnit,
  927. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  928. a.WhCode,
  929. a.ExtensionID
  930. FROM
  931. ICSSDN a
  932. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  933. WHERE a.SDNCode in ({0}) AND a.WorkPoint = '{1}'
  934. GROUP BY a.SDNCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  935. #endregion
  936. }
  937. if (Type=="8")
  938. {
  939. #region 其它出库SQL
  940. sqls = @" select
  941. a.OutCode as Code,
  942. a.InvCode,
  943. b.InvName,
  944. b.InvStd,
  945. b.InvUnit,
  946. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  947. a.WhCode,
  948. a.ExtensionID
  949. FROM
  950. ICSOtherOut a
  951. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  952. WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  953. GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  954. #endregion
  955. }
  956. if (Type == "9")
  957. {
  958. #region 借用SQL
  959. sqls = @"select
  960. a.BrrowCode as Code,
  961. a.InvCode,
  962. b.InvName,
  963. b.InvStd,
  964. b.InvUnit,
  965. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  966. a.WhCode,
  967. a.ExtensionID
  968. FROM
  969. ICSBrrow a
  970. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  971. WHERE a.BrrowCode in ({0}) AND a.WorkPoint = '{1}'
  972. GROUP BY a.BrrowCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  973. #endregion
  974. }
  975. if (Type == "10")
  976. {
  977. #region 物料调拨
  978. sqls = @" select
  979. a.TransferNO as Code,
  980. a.InvCode,
  981. b.InvName,
  982. b.InvStd,
  983. b.InvUnit,
  984. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  985. a.FromWarehouseCode as WhCode,
  986. a.ExtensionID
  987. FROM
  988. ICSTransfer a
  989. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  990. WHERE a.TransferNO in ({0}) AND a.WorkPoint = '{1}'
  991. GROUP BY a.TransferNO,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.FromWarehouseCode,a.ExtensionID";
  992. #endregion
  993. }
  994. if (Type == "11")
  995. {
  996. #region 两步调出
  997. sqls = @"select
  998. a.OutCode as Code,
  999. a.InvCode,
  1000. b.InvName,
  1001. b.InvStd,
  1002. b.InvUnit,
  1003. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1004. a.WHCode ,
  1005. a.ExtensionID
  1006. from ICSOtherOut a
  1007. INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  1008. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1009. WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  1010. GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WHCode,a.ExtensionID";
  1011. #endregion
  1012. }
  1013. sqls = string.Format(sqls, string.IsNullOrWhiteSpace(ID)?"''":ID.TrimEnd(','),WorkPoint);
  1014. sql = string.Format(sql, sqls, WorkPoint);
  1015. DataTable table = Repository().FindDataSetBySql(sql).Tables[0];
  1016. DataTable dtCloned = table.Clone();
  1017. foreach (DataColumn col in dtCloned.Columns)
  1018. {
  1019. col.DataType = typeof(string);
  1020. }
  1021. foreach (DataRow row in table.Rows)
  1022. {
  1023. DataRow newrow = dtCloned.NewRow();
  1024. foreach (DataColumn column in dtCloned.Columns)
  1025. {
  1026. newrow[column.ColumnName] = row[column.ColumnName].ToString();
  1027. }
  1028. dtCloned.Rows.Add(newrow);
  1029. }
  1030. if (Invmes.Rows.Count > 0)
  1031. {
  1032. dtCloned.Merge(Invmes, false);
  1033. }
  1034. return dtCloned;
  1035. }
  1036. public DataTable GetICSMOPickMergeTemp2(string ID, string Type)
  1037. {
  1038. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1039. #region sql
  1040. string sql = @"SELECT row_number() over (order by c.Code,c.InvCode,d.MTIME,d.LotNO) AS rowNo,
  1041. c.MergeID,
  1042. c.Code,
  1043. c.InvCode,
  1044. c.InvName,
  1045. c.InvStd,
  1046. c.InvUnit,
  1047. FLOOR(c.iQuantity) AS iQuantity,
  1048. d.WarehouseCode,
  1049. d.LocationCode,
  1050. d.LotNO,
  1051. FLOOR(ISNULL(d.Quantity, 0)) AS QTY,
  1052. CONVERT(varchar(100),d.MTIME, 23) MTIME,
  1053. FLOOR(f.QTYTotal) QTYTotal INTO #temp
  1054. FROM
  1055. ({0}) c
  1056. LEFT JOIN ICSWareHouseLotInfo d ON c.InvCode=d.INVCode AND c.WhCode=d.WarehouseCode AND d.WorkPoint='{1}' AND d.Quantity>0
  1057. left join ICSInventoryLot m on d.LotNo=m.LotNo and d.WorkPoint=m.WorkPoint and c.ExtensionID=m.ExtensionID
  1058. 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
  1059. DECLARE @ItemCode VARCHAR(50),
  1060. @QTY DECIMAL(18,3),
  1061. @ItemCodeCurrent VARCHAR(50),
  1062. @QTYCurrent DECIMAL(18,3),
  1063. @iQuantityCurrent DECIMAL(18,3),
  1064. @CanDelete BIT,
  1065. @Row INT,
  1066. @rowCurrent INT
  1067. SET @Row = @@rowcount
  1068. SET @rowCurrent=1
  1069. SET @CanDelete=0
  1070. SET @ItemCode=''
  1071. WHILE @rowCurrent<=@Row
  1072. BEGIN
  1073. SELECT @ItemCodeCurrent=InvCode,@QTYCurrent=QTY,@iQuantityCurrent=iQuantity FROM #temp WHERE rowNo=@rowCurrent
  1074. PRINT(@rowCurrent)
  1075. IF @ItemCode<>@ItemCodeCurrent
  1076. BEGIN
  1077. SET @ItemCode=@ItemCodeCurrent
  1078. SET @QTY=0
  1079. SET @CanDelete=0
  1080. END
  1081. IF @CanDelete=1
  1082. BEGIN
  1083. DELETE FROM #temp WHERE rowNo=@rowCurrent
  1084. SET @rowCurrent += 1
  1085. CONTINUE
  1086. END
  1087. SET @QTY += @QTYCurrent
  1088. IF @QTY>=@iQuantityCurrent
  1089. BEGIN
  1090. SET @CanDelete=1
  1091. END
  1092. SET @rowCurrent += 1
  1093. END
  1094. SELECT * FROM #temp
  1095. DROP TABLE #temp
  1096. ";
  1097. #endregion
  1098. string sqls = "";
  1099. if (Type == "1")
  1100. {
  1101. #region 工单备料sql
  1102. sqls = @" select
  1103. x.MergeID,
  1104. c.MOCode as Code,
  1105. a.InvCode,
  1106. b.InvName,
  1107. b.InvStd,
  1108. b.InvUnit,
  1109. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1110. a.WhCode,
  1111. a.ExtensionID
  1112. FROM
  1113. ICSMOPick a
  1114. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1115. inner join ICSMO c on a.MODetailID=c.MODetailID and a.WorkPoint=c.WorkPoint
  1116. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1117. WHERE c.MOCode in ({0}) AND a.WorkPoint = '{1}'
  1118. GROUP BY c.MOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,x.MergeID,a.ExtensionID";
  1119. #endregion
  1120. }
  1121. if (Type == "2")
  1122. {
  1123. #region 工单领料SQL
  1124. sqls = @" select
  1125. x.MergeID,
  1126. a.ApplyCode as Code,
  1127. a.InvCode,
  1128. b.InvName,
  1129. b.InvStd,
  1130. b.InvUnit,
  1131. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1132. a.WhCode,
  1133. a.ExtensionID
  1134. FROM
  1135. ICSMOApply a
  1136. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1137. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1138. WHERE x.SourceID in ({0}) AND a.WorkPoint = '{1}'
  1139. GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,x.MergeID,a.ExtensionID";
  1140. #endregion
  1141. }
  1142. if (Type == "3")
  1143. {
  1144. #region 工单材料出库SQL
  1145. sqls = @" select
  1146. x.MergeID,
  1147. a.IssueCode as Code,
  1148. a.InvCode,
  1149. b.InvName,
  1150. b.InvStd,
  1151. b.InvUnit,
  1152. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1153. a.WhCode,
  1154. a.ExtensionID
  1155. FROM
  1156. ICSMOIssue a
  1157. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1158. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1159. WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  1160. GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  1161. #endregion
  1162. }
  1163. if (Type == "4")
  1164. {
  1165. #region 委外备料SQL
  1166. sqls = @" select
  1167. x.MergeID,
  1168. c.OOCode as Code,
  1169. a.InvCode,
  1170. b.InvName,
  1171. b.InvStd,
  1172. b.InvUnit,
  1173. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1174. a.WhCode,
  1175. a.ExtensionID
  1176. FROM
  1177. ICSOOPick a
  1178. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1179. left join ICSOutsourcingOrder c on a.OODetailID=c.OODetailID and a.WorkPoint=c.WorkPoint
  1180. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1181. WHERE c.OOCode in ({0}) AND a.WorkPoint = '{1}'
  1182. GROUP BY c.OOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID, x.MergeID";
  1183. #endregion
  1184. }
  1185. if (Type == "5")
  1186. {
  1187. #region 委外领料SQL
  1188. sqls = @" select
  1189. x.MergeID,
  1190. a.ApplyCode as Code,
  1191. a.InvCode,
  1192. b.InvName,
  1193. b.InvStd,
  1194. b.InvUnit,
  1195. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1196. a.WhCode,
  1197. a.ExtensionID
  1198. FROM
  1199. ICSOApply a
  1200. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1201. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1202. WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}'
  1203. GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  1204. #endregion
  1205. }
  1206. if (Type == "6")
  1207. {
  1208. #region 委外材料出库SQL
  1209. sqls = @" select
  1210. x.MergeID,
  1211. a.IssueCode as Code,
  1212. a.InvCode,
  1213. b.InvName,
  1214. b.InvStd,
  1215. b.InvUnit,
  1216. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1217. a.WhCode,
  1218. a.ExtensionID
  1219. FROM
  1220. ICSOIssue a
  1221. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1222. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1223. WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  1224. GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  1225. #endregion
  1226. }
  1227. if (Type == "7")
  1228. {
  1229. #region 销售发货SQL
  1230. sqls = @" select
  1231. x.MergeID,
  1232. a.SDNCode as Code,
  1233. a.InvCode,
  1234. b.InvName,
  1235. b.InvStd,
  1236. b.InvUnit,
  1237. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1238. a.WhCode,
  1239. a.ExtensionID
  1240. FROM
  1241. ICSSDN a
  1242. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1243. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1244. WHERE a.SDNCode in ({0}) AND a.WorkPoint = '{1}'
  1245. GROUP BY a.SDNCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  1246. #endregion
  1247. }
  1248. if (Type == "8")
  1249. {
  1250. #region 其它出库SQL
  1251. sqls = @" select
  1252. x.MergeID,
  1253. a.OutCode as Code,
  1254. a.InvCode,
  1255. b.InvName,
  1256. b.InvStd,
  1257. b.InvUnit,
  1258. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1259. a.WhCode,
  1260. a.ExtensionID
  1261. FROM
  1262. ICSOtherOut a
  1263. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1264. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1265. WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  1266. GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  1267. #endregion
  1268. }
  1269. if (Type == "9")
  1270. {
  1271. #region 借用SQL
  1272. sqls = @" select
  1273. x.MergeID,
  1274. a.BrrowCode as Code,
  1275. a.InvCode,
  1276. b.InvName,
  1277. b.InvStd,
  1278. b.InvUnit,
  1279. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1280. a.WhCode,
  1281. a.ExtensionID
  1282. FROM
  1283. ICSBrrow a
  1284. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1285. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1286. WHERE a.BrrowCode in ({0}) AND a.WorkPoint = '{1}'
  1287. GROUP BY a.BrrowCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  1288. #endregion
  1289. }
  1290. if (Type == "10")
  1291. {
  1292. #region 物料调拨
  1293. sqls = @" select
  1294. x.MergeID,
  1295. a.TransferNO as Code,
  1296. a.InvCode,
  1297. b.InvName,
  1298. b.InvStd,
  1299. b.InvUnit,
  1300. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1301. a.FromWarehouseCode as WhCode,
  1302. a.ExtensionID
  1303. FROM
  1304. ICSTransfer a
  1305. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1306. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1307. WHERE a.TransferNO in ({0}) AND a.WorkPoint = '{1}'
  1308. GROUP BY a.TransferNO,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.FromWarehouseCode,a.ExtensionID,x.MergeID";
  1309. #endregion
  1310. }
  1311. if (Type == "10")
  1312. {
  1313. #region 两步调出
  1314. sqls = @"select
  1315. x.MergeID,
  1316. a.OutCode as Code,
  1317. a.InvCode,
  1318. b.InvName,
  1319. b.InvStd,
  1320. b.InvUnit,
  1321. SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1322. a.WHCode as WhCode,
  1323. a.ExtensionID
  1324. FROM
  1325. ICSOtherOut a
  1326. INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  1327. inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  1328. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1329. WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  1330. GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WHCode,a.ExtensionID,x.MergeID";
  1331. #endregion
  1332. }
  1333. sqls = string.Format(sqls, string.IsNullOrWhiteSpace(ID) ? "''" : ID.TrimEnd(','), WorkPoint);
  1334. sql = string.Format(sql, sqls, WorkPoint);
  1335. DataTable table = Repository().FindDataSetBySql(sql).Tables[0];
  1336. DataTable dtCloned = table.Clone();
  1337. foreach (DataColumn col in dtCloned.Columns)
  1338. {
  1339. col.DataType = typeof(string);
  1340. }
  1341. foreach (DataRow row in table.Rows)
  1342. {
  1343. DataRow newrow = dtCloned.NewRow();
  1344. foreach (DataColumn column in dtCloned.Columns)
  1345. {
  1346. newrow[column.ColumnName] = row[column.ColumnName].ToString();
  1347. }
  1348. dtCloned.Rows.Add(newrow);
  1349. }
  1350. if (Invmes.Rows.Count > 0)
  1351. {
  1352. dtCloned.Merge(Invmes, false);
  1353. }
  1354. return dtCloned;
  1355. }
  1356. public string MergeMaterial(string keyValue,string Type)
  1357. {
  1358. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1359. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1360. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1361. string msg = "";
  1362. string sql = string.Empty;
  1363. keyValue = keyValue.TrimEnd(',');
  1364. DateTime time = DateTime.Now;
  1365. string Tday = time.ToString("yyyyMMdd");
  1366. string sqls = string.Format(@"SELECT MAX(A.SourceID) AS SourceID FROM ICSMOPickMerge A WHERE A.SourceID LIKE '{0}%' AND LEN(a.SourceID) = 13", Tday);
  1367. DataSet ds = SqlHelper.GetDataSetBySql(sqls);
  1368. string MergeID = "";
  1369. Int64 Merge_ID = 0;
  1370. DataTable dts = ds.Tables[0];
  1371. if (dts != null && dts.Rows.Count > 0)
  1372. {
  1373. string lot = dts.Rows[0]["SourceID"].ToString();
  1374. if (!string.IsNullOrWhiteSpace(lot))
  1375. Merge_ID = Convert.ToInt64(lot.Substring(lot.Length - 5));
  1376. }
  1377. MergeID = Tday + (Merge_ID + 1).ToString().PadLeft(5, '0');
  1378. if (Type == "1")//工单备料
  1379. {
  1380. sql += @"INSERT INTO dbo.ICSMOPickMerge
  1381. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  1382. select NEWID(),'{0}',b.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  1383. from ICSMO a inner join ICSMOPick b on b.MODetailID=a.MODetailID and b.WorkPoint=a.WorkPoint
  1384. where a.MOCode in ({5})
  1385. ";
  1386. }
  1387. if (Type == "2")//工单发料
  1388. {
  1389. sql += @"INSERT INTO dbo.ICSMOPickMerge
  1390. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  1391. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  1392. from ICSMOApply a
  1393. where a.ApplyCode in ({5})";
  1394. }
  1395. if (Type == "3")//材料出库
  1396. {
  1397. sql += @"INSERT INTO dbo.ICSMOPickMerge
  1398. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  1399. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  1400. from ICSMOIssue a
  1401. where a.IssueCode in ({5}) ";
  1402. }
  1403. if (Type == "4")//委外备料
  1404. {
  1405. sql += @"INSERT INTO dbo.ICSMOPickMerge
  1406. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  1407. select NEWID(),'{0}',b.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  1408. from ICSOutsourcingOrder a inner join ICSOOPick b on a.OODetailID=b.OODetailID and b.WorkPoint=a.WorkPoint
  1409. where a.OOCode in ({5})";
  1410. }
  1411. if (Type == "5")//委外领料
  1412. {
  1413. sql += @"INSERT INTO dbo.ICSMOPickMerge
  1414. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  1415. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  1416. from ICSOApply a
  1417. where a.ApplyCode in ({5})";
  1418. }
  1419. if (Type == "6")//委外材料出库
  1420. {
  1421. sql += @"INSERT INTO dbo.ICSMOPickMerge
  1422. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  1423. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  1424. from ICSOIssue a
  1425. where a.IssueCode in ('{5}')";
  1426. }
  1427. if (Type == "7")//销售发货
  1428. {
  1429. sql += @"INSERT INTO dbo.ICSMOPickMerge
  1430. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  1431. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  1432. from ICSOIssue a
  1433. where a.IssueCode in ({5})";
  1434. }
  1435. if (Type == "8")//其它出库
  1436. {
  1437. sql += @"INSERT INTO dbo.ICSMOPickMerge
  1438. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  1439. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  1440. from ICSSDN a
  1441. where a.SDNCode in ({5})";
  1442. }
  1443. if (Type == "9")//借用单
  1444. {
  1445. sql += @"INSERT INTO dbo.ICSMOPickMerge
  1446. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  1447. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  1448. from ICSOtherOut a
  1449. where a.OutCode in ({5})";
  1450. }
  1451. if (Type == "10")//物料调拨
  1452. {
  1453. sql += @"INSERT INTO dbo.ICSMOPickMerge
  1454. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  1455. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  1456. from ICSTransfer a
  1457. where a.TransferNO in ({5})
  1458. ";
  1459. }
  1460. if (Type == "11")//两步调出
  1461. {
  1462. sql += @" INSERT INTO dbo.ICSMOPickMerge
  1463. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  1464. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  1465. from ICSOtherOut a
  1466. INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  1467. where a.OutCode in ({5})
  1468. ";
  1469. }
  1470. sql = string.Format(sql, MergeID, Type, MUSER, MUSERNAME, WorkPoint, keyValue);
  1471. try
  1472. {
  1473. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  1474. {
  1475. }
  1476. else
  1477. {
  1478. msg = "新增失败";
  1479. }
  1480. }
  1481. catch (Exception ex)
  1482. {
  1483. throw new Exception(ex.Message);
  1484. }
  1485. return msg;
  1486. }
  1487. public string CheckQty(string objArr)
  1488. {
  1489. objArr= objArr.TrimEnd(',');
  1490. string sql = @"select * from ICSMOPickMerge a
  1491. left join ICSMOPick b on a.SourceID=b.ID and a.WorkPoint=b.WorkPoint
  1492. left join ICSMO c on b.MODetailID=c.MODetailID and b.WorkPoint=c.WorkPoint
  1493. where MOCode in ({0})";
  1494. sql = string.Format(sql, objArr);
  1495. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1496. if (dt != null&&dt.Rows.Count>0)
  1497. {
  1498. return "1";
  1499. }
  1500. return "0";
  1501. }
  1502. }
  1503. }