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.

5094 lines
285 KiB

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