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.

1836 lines
94 KiB

4 days 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.Domain.Entity.ProductManage;
  7. using NFine.Domain.IRepository.ProductManage;
  8. using NFine.Repository;
  9. using NFine.Repository.ProductManage;
  10. using System;
  11. using System.Collections.Generic;
  12. using System.Configuration;
  13. using System.Data;
  14. using System.Data.Common;
  15. using System.Linq;
  16. using System.Text;
  17. namespace NFine.Application
  18. {
  19. public class ASNManageApp : RepositoryFactory<ICSVendor>
  20. {
  21. public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam)
  22. {
  23. string ParentId = "";
  24. //加载前删除空白单据
  25. // string sqlDelete = @"DELETE a FROM dbo.ICSASN a
  26. // LEFT JOIN dbo.ICSASNDETAIL b ON a.ASNCode=b.ASNCode
  27. // WHERE b.ASNCode IS NULL";
  28. // SqlHelper.ExecuteNonQuery(sqlDelete);
  29. DataTable dt = new DataTable();
  30. var queryParam = queryJson.ToJObject();
  31. string sqlAccount = string.Empty;
  32. List<DbParameter> parameter = new List<DbParameter>();
  33. string sql = @"SELECT distinct a.ID, a.ASNCode,a.VenCode,b.VenName AS VENDORNAME,w.WorkPointName,w.WorkPointCode,a.MUSERName,
  34. a.MTIME,CONVERT(NVARCHAR(50),a.PlanArriveDate,23) as EXPARRIVALDATE,
  35. CASE WHEN c.DNCode IS NULL THEN a.Status ELSE '3' END AS STATUS
  36. ,a.EATTRIBUTE1,
  37. CASE WHEN c.DNCode IS NULL THEN a.Status ELSE '3' END AS STATUSHidden
  38. ,a.EATTRIBUTE2,a.EATTRIBUTE10,ISNULL(d.Quantity,0) AS Quantity,ISNULL(d.CountNum,0) as CountNum,convert(nvarchar(20),c.MTIME,120) DMTIME
  39. FROM dbo.ICSASN a
  40. LEFT JOIN (SELECT ISNULL(SUM(Quantity),0) AS Quantity,COUNT(*) AS CountNum,ASNCode,WorkPoint FROM ICSASNDetail
  41. GROUP BY ASNCode,WorkPoint) d on a.ASNCode=d.ASNCode and a.WorkPoint=d.WorkPoint
  42. LEFT JOIN ICSASNDetail e on a.ASNCode=e.ASNCode and a.WorkPoint=e.WorkPoint
  43. left join ICSInventoryLotDetail f on e.LotNo=f.LotNo and e.WorkPoint=f.WorkPoint
  44. left join ICSPurchaseOrder g on f.TransCode=g.POCode and f.TransSequence=g.Sequence and f.WorkPoint=g.WorkPoint
  45. LEFT JOIN dbo.ICSVendor b ON a.VenCode=b.VenCode and a.WOrkPoint=b.WorkPoint
  46. LEFT JOIN ICSDeliveryNotice c ON a.ASNCode = c.ASNCode
  47. LEFT JOIN Sys_WorkPoint w on a.WorkPoint=w.WorkPointCode
  48. WHERE 1=1";
  49. if (!string.IsNullOrWhiteSpace(queryJson))
  50. {
  51. if (!string.IsNullOrWhiteSpace(queryParam["STNO"].ToString()))
  52. {
  53. sql += " and a.ASNCode like '%" + queryParam["STNO"].ToString() + "%' ";
  54. }
  55. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  56. {
  57. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  58. }
  59. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  60. {
  61. sql += " and b.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  62. }
  63. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  64. {
  65. sql += " and a.MTIME >= '" + queryParam["TimeFrom"].ToString() + "' ";
  66. }
  67. if (!string.IsNullOrWhiteSpace(queryParam["TimeTo"].ToString()))
  68. {
  69. sql += " and a.MTIME <= '" + queryParam["TimeTo"].ToString() + "' ";
  70. }
  71. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  72. {
  73. sql += " and g.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  74. }
  75. if (!string.IsNullOrWhiteSpace(queryParam["PoCode"].ToString()))
  76. {
  77. sql += " and g.POCode like '%" + queryParam["PoCode"].ToString() + "%' ";
  78. }
  79. if (!string.IsNullOrWhiteSpace(queryParam["MUSERName"].ToString()))
  80. {
  81. sql += " and a.MUSERName like '%" + queryParam["MUSERName"].ToString() + "%' ";
  82. }
  83. if (!string.IsNullOrWhiteSpace(queryParam["ReleaseState"].ToString()))
  84. {
  85. string ReleaseState = queryParam["ReleaseState"].ToString();
  86. if (ReleaseState == "0")
  87. sql += " AND CASE WHEN c.DNCode IS NULL THEN a.Status ELSE '3' END = '0'";
  88. else if (ReleaseState == "1")
  89. sql += " and CASE WHEN c.DNCode IS NULL THEN a.Status ELSE '3' END = '1'";
  90. else if (ReleaseState == "2")
  91. sql += " and CASE WHEN c.DNCode IS NULL THEN a.Status ELSE '3' END = '2'";
  92. else if (ReleaseState == "3")
  93. {
  94. sql += " and CASE WHEN c.DNCode IS NULL THEN a.Status ELSE '3' END='3'";
  95. }
  96. else if (ReleaseState == "4")
  97. sql += " and CASE WHEN c.DNCode IS NULL THEN a.Status ELSE '3' END = '4'";
  98. }
  99. }
  100. //多站点
  101. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  102. {
  103. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  104. }
  105. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  106. {
  107. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode + "'";
  108. }
  109. ParentId = SqlHelper.Organize_F_ParentId(NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
  110. if (!string.IsNullOrWhiteSpace(ParentId) && ParentId != "0" && NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "Vendor")
  111. {
  112. return SqlHelper.FindTablePageBySql_OtherTemp(sql.ToString(), sql, ParentId, parameter.ToArray(), ref jqgridparam);
  113. }
  114. else
  115. {
  116. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  117. }
  118. }
  119. public DataTable GetGridJsonAdmin(string queryJson, ref Pagination jqgridparam)
  120. {
  121. string ParentId = "";
  122. DataTable dt = new DataTable();
  123. var queryParam = queryJson.ToJObject();
  124. List<DbParameter> parameter = new List<DbParameter>();
  125. string sql = @"SELECT distinct a.ID, a.ASNCode,a.venCode,b.VenName ,CONVERT(NVARCHAR(50),a.Mtime,23) as CREATETIME,w.WorkPointName,w.WorkPointCode,ISNULL(d.Quantity,0) AS Quantity,
  126. a.MUserName,
  127. CASE WHEN c.DNCode IS NULL THEN a.Status ELSE '3' END AS STATUS,
  128. CASE WHEN c.DNCode IS NULL THEN a.Status ELSE '3' END AS STATUSHidden
  129. ,a.EATTRIBUTE10,ISNULL(d.CountNum,0) as CountNum
  130. ,CASE WHEN p.LotNo IS NULL THEN '否' ELSE '是' END ISRK
  131. FROM dbo.ICSASN a
  132. LEFT JOIN (SELECT ISNULL(SUM(Quantity),0) AS Quantity,COUNT(*) AS CountNum,ASNCode,WorkPoint
  133. FROM ICSASNDetail
  134. GROUP BY ASNCode,WorkPoint) d on a.ASNCode=d.ASNCode and a.WorkPoint=d.WorkPoint
  135. LEFT JOIN ICSASNDetail e on a.ASNCode=e.ASNCode and a.WorkPoint=e.WorkPoint
  136. LEFT JOIN dbo.ICSVendor b ON a.venCOde=b.venCOde and a.WOrkPoint=b.WorkPoint
  137. LEFT JOIN (SELECT ASNCode,WorkPoint,DNCode
  138. FROM ICSDeliveryNotice)
  139. c ON a.ASNCode = c.ASNCode AND a.WorkPoint=c.WorkPoint
  140. LEFT JOIN Sys_WorkPoint w on a.WorkPoint=w.WorkPointCode
  141. LEFT join ICSInventoryLotDetail m on e.LotNo=m.LotNo and e.WorkPoint=m.WorkPoint
  142. LEFT JOIN dbo.ICSPurchaseOrder n ON m.TransCode=n.POCode AND m.TransSequence=n.Sequence AND a.WorkPoint=n.WorkPoint
  143. LEFT JOIN dbo.ICSInventory o ON n.InvCode=o.InvCode AND n.WorkPoint=o.WorkPoint
  144. LEFT JOIN dbo.ICSWareHouseLotInfoLog p ON e.LotNo=p.LotNo AND e.WorkPoint=p.WorkPoint
  145. WHERE 1=1 and a.status in ( '1','2')";
  146. if (!string.IsNullOrWhiteSpace(queryJson))
  147. {
  148. if (!string.IsNullOrWhiteSpace(queryParam["STNO"].ToString()))
  149. {
  150. sql += " and a.ASNCode like '%" + queryParam["STNO"].ToString() + "%' ";
  151. }
  152. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  153. sql += " and a.venCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  154. }
  155. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  156. {
  157. sql += " and b.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  158. }
  159. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  160. {
  161. sql += " and o.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  162. }
  163. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  164. {
  165. sql += " and o.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  166. }
  167. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  168. {
  169. sql += " and a.Mtime >= '" + queryParam["TimeFrom"].ToString() + "' ";
  170. }
  171. if (!string.IsNullOrWhiteSpace(queryParam["TimeTo"].ToString()))
  172. {
  173. sql += " and a.Mtime <= '" + queryParam["TimeTo"].ToString() + "' ";
  174. }
  175. if (!string.IsNullOrWhiteSpace(queryParam["ReleaseState"].ToString()))
  176. {
  177. string ReleaseState = queryParam["ReleaseState"].ToString();
  178. if (ReleaseState == "1")
  179. sql += " and CASE WHEN c.DNCode IS NULL THEN a.Status ELSE '3' END = '1'";
  180. else if (ReleaseState == "2")
  181. sql += " and CASE WHEN c.DNCode IS NULL THEN a.Status ELSE '3' END = '2'";
  182. else if (ReleaseState == "3")
  183. sql += " and CASE WHEN c.DNCode IS NULL THEN a.Status ELSE '3' END= '3'";
  184. }
  185. //多站点
  186. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  187. {
  188. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  189. }
  190. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  191. {
  192. sql += " and a.venCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode + "'";
  193. }
  194. ParentId = SqlHelper.Organize_F_ParentId(NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
  195. if (!string.IsNullOrWhiteSpace(ParentId) && ParentId != "0" && NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "Vendor")
  196. {
  197. return SqlHelper.FindTablePageBySql_OtherTemp(sql.ToString(), sql, ParentId, parameter.ToArray(), ref jqgridparam);
  198. }
  199. else
  200. {
  201. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  202. }
  203. }
  204. /// <summary>
  205. /// 子表查询
  206. /// </summary>
  207. /// <param name="queryJson"></param>
  208. /// <param name="jqgridparam"></param>
  209. /// <returns></returns>
  210. public DataTable GetSubGridJson(string STNO, ref Pagination jqgridparam,string WorkPoint)
  211. {
  212. DataTable dt = new DataTable();
  213. List<DbParameter> parameter = new List<DbParameter>();
  214. string EATTRIBUTE = SqlHelper.GetEATTRIBUTE("ICSPurchaseOrder", "e").TrimEnd(',');
  215. string sql = @"SELECT a.ID, a.LotNo,d.InvCode,d.InvName,x.ContainerCode as XH,
  216. y.ContainerCode as ZB,b.Quantity,
  217. a.ASNCode,f.BatchCode,f.ProjectCode,m.TransCode,m.TransSequence,d.InvDesc
  218. ,d.ClassName,d.InvStd,w.WorkPointName,w.WorkPointCode,CASE WHEN p.LotNo IS NULL THEN '否' ELSE '是' END ISRK
  219. ," + EATTRIBUTE + "";
  220. sql+= @"
  221. FROM dbo.ICSASNDetail a
  222. LEFT JOIN dbo.ICSInventoryLot b ON a.LotNo =b.LotNo AND a.WorkPoint=b.WorkPoint
  223. left join ICSExtension f on b.ExtensionID=f.ID and b.WorkPoint=f.WorkPoint
  224. left join ICSInventoryLotDetail m on b.LotNo=m.LotNo and b.WorkPoint=m.WorkPoint
  225. LEFT JOIN dbo.ICSContainerLot c ON b.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  226. LEFT JOIN dbo.ICSInventory d ON b.InvCode=d.InvCode AND a.WorkPoint=d.WorkPoint
  227. LEFT JOIN dbo.ICSPurchaseOrder e ON m.TransCode=e.POCode AND m.TransSequence=e.Sequence AND a.WorkPoint=e.WorkPoint
  228. LEFT JOIN Sys_WorkPoint w on e.WorkPoint=w.WorkPointCode
  229. LEFT JOIN ICSContainer X ON c.ContainerID=X.ID AND c.WorkPoint=x.WorkPoint and X.ContainerType='ContainerType01'
  230. left join ICSContainer y on X.ContainerID=y.ID and X.WorkPoint=y.WorkPoint and y.ContainerType='ContainerType04'
  231. LEFT JOIN dbo.ICSWareHouseLotInfoLog p ON a.LotNo=p.LotNo AND a.WorkPoint=p.WorkPoint AND p.BusinessCode='1'and isnull(p.EATTRIBUTE1,'')<>'1'
  232. WHERE (b.TYPE='200' OR ISNULL(b.EATTRIBUTE7,'') ='') AND a.ASNCode='" + STNO + "' and a.WorkPoint='" + WorkPoint + "' ";
  233. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  234. }
  235. /// <summary>
  236. /// 选择条码信息
  237. /// </summary>
  238. /// <param name="queryJson"></param>
  239. /// <param name="jqgridparam"></param>
  240. /// <returns></returns>
  241. public DataTable GetSubGridJson_Add(string queryJson, ref Pagination jqgridparam)
  242. {
  243. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  244. DataTable dt = new DataTable();
  245. var queryParam = queryJson.ToJObject();
  246. List<DbParameter> parameter = new List<DbParameter>();
  247. string sql = @"SELECT a.ID,a.ID as ZJID, a.LOTNO,d.InvCode,d.InvName,g.ContainerCode,b.Quantity,
  248. a.ASNCode,m.BatchCode,f.POCode,f.Sequence,d.InvDesc,d.ClassName,d.InvStd
  249. FROM dbo.ICSASNDetail a
  250. LEFT JOIN dbo.ICSInventoryLot b ON a.LotNo =b.LotNo AND a.WorkPoint=b.WorkPoint
  251. left join ICSExtension m on b.ExtensionID=m.ID and b.WorkPoint=m.WorkPoint
  252. LEFT JOIN dbo.ICSContainerLot c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  253. left join dbo.ICSContainer g on c.ContainerID=g.ID and a.WorkPoint=g.WorkPoint
  254. LEFT JOIN dbo.ICSInventory d ON b.InvCode=d.InvCode AND a.WorkPoint=d.WorkPoint
  255. left join ICSInventoryLotDetail e on b.LotNo=e.LotNo and b.WorkPoint=e.WorkPoint
  256. LEFT JOIN dbo.ICSPurchaseOrder f ON e.TransCode=f.POCode AND e.TransSequence=f.Sequence and a.WorkPoint=f.WorkPoint
  257. WHERE 1=1
  258. AND a.ASNCode='" + queryParam["STNO"].ToString() + "' and a.WorkPoint='" + queryParam["WorkPoint"].ToString() + "' ";
  259. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  260. }
  261. /// <summary>
  262. /// 子表查询
  263. /// </summary>
  264. /// <param name="queryJson"></param>
  265. /// <param name="jqgridparam"></param>
  266. /// <returns></returns>
  267. public DataTable GetSubGridJson(string CartonNo, string queryJson, ref Pagination jqgridparam)
  268. {
  269. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  270. DataTable dt = new DataTable();
  271. //var queryParam = queryJson.ToJObject();
  272. List<DbParameter> parameter = new List<DbParameter>();
  273. string sql = @"SELECT a.ID,c.ItemCODE,d.INVNAME,c.VenderLotNO,c.LOTQTY,c.TYPE
  274. FROM dbo.ICSITEMLot2Carton a
  275. LEFT JOIN dbo.ICSCarton b ON a.CartonNO=b.CartonNO AND a.WorkPoint=b.WorkPoint
  276. LEFT JOIN dbo.ICSITEMLot c ON a.LotNo_ID=c.ID AND a.WorkPoint=c.WorkPoint
  277. LEFT JOIN dbo.ICSINVENTORY d ON c.ItemCODE=d.INVCODE AND a.WorkPoint=d.WorkPoint
  278. WHERE a.CartonNO='" + CartonNo + "' and a.WorkPoint='" + WorkPoint + "'";
  279. if (!string.IsNullOrEmpty(queryJson))
  280. {
  281. sql += @"UNION ALL
  282. SELECT a.ID,a.ItemCODE,b.INVNAME,a.VenderLotNO,a.LOTQTY,a.TYPE FROM
  283. dbo.ICSITEMLot a
  284. LEFT JOIN dbo.ICSINVENTORY b ON a.ItemCODE=b.INVCODE AND a.WorkPoint=b.WorkPoint
  285. WHERE a.ID IN (" + queryJson.TrimEnd(',') + ") and a.WorkPoint='" + WorkPoint + "'";
  286. }
  287. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  288. }
  289. public DataTable GetSubGridJsonByCreate(string POCode, string PORow)
  290. {
  291. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  292. DataTable dt = new DataTable();
  293. //var queryParam = queryJson.ToJObject();
  294. List<DbParameter> parameter = new List<DbParameter>();
  295. string sql = @"SELECT a.ID, a.POCode,a.PORow,a.PODate,a.ORDERNO,a.VenCode,a.VenName,a.InvCode,
  296. b.INVNAME,b.INVSTD,b.INVDESC,b.INVUOM,a.Quantity,ISNULL(c.CreatedQty,0) AS CreatedQty,isnull(c.InQty,0) as InQty,a.WorkPoint
  297. FROM dbo.ICSPO_PoMain a
  298. LEFT JOIN dbo.ICSINVENTORY b ON a.InvCode=b.INVCODE AND a.WorkPoint=b.WorkPoint
  299. LEFT JOIN (SELECT SUM(x.LOTQTY) CreatedQty,TransNO,TransLine,x.WorkPoint,
  300. SUM(CASE WHEN y.LotNO IS NOT NULL THEN x.LOTQTY ELSE 0 END) AS InQty
  301. FROM dbo.ICSITEMLot x
  302. LEFT JOIN dbo.ICSWareHouseLotInfo y ON x.LotNO=y.LotNO AND x.WorkPoint=y.WorkPoint
  303. GROUP BY TransNO,TransLine,x.WorkPoint) c ON a.POCode=c.TransNO AND a.PORow=c.TransLine AND a.WorkPoint=c.WorkPoint
  304. WHERE 1=1
  305. and a.POCode='" + POCode + "' and a.PORow='" + PORow + "' and a.WorkPoint='" + WorkPoint + "'";
  306. return Repository().FindTableBySql(sql.ToString());
  307. }
  308. public DataTable GetVendorLotNo(string VenCode, string WorkPoint)
  309. {
  310. DataTable dt = new DataTable();
  311. //var queryParam = queryJson.ToJObject();
  312. List<DbParameter> parameter = new List<DbParameter>();
  313. string dtPre = DateTime.Now.ToString("yyyyMMdd");
  314. string sql = @"EXEC Addins_GetSerialCode '" + WorkPoint + "','ICSITEMLotNo','VendorLotNo','" + VenCode + dtPre + "',2";
  315. return Repository().FindTableBySql(sql.ToString());
  316. }
  317. /// <summary>
  318. /// 生成条码
  319. /// </summary>
  320. /// <param name="POCode"></param>
  321. /// <param name="PORow"></param>
  322. /// <param name="keyValue"></param>
  323. /// <returns></returns>
  324. public int CreateItemLotNo(string POCode, string PORow, string keyValue)
  325. {
  326. var queryParam = keyValue.ToJObject();
  327. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  328. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  329. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  330. decimal LOTQTY = minPackQty;
  331. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  332. string VenCode = GetVendorCode(POCode, PORow, WorkPoint);
  333. string Pre = VenCode + DateTime.Now.ToString("yyMMdd");
  334. string sql = string.Empty;
  335. string VendorLot = queryParam["VendorLot"].ToString();
  336. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  337. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  338. for (int i = 0; i < createPageCount; i++)
  339. {
  340. if (i + 1 == createPageCount)
  341. {
  342. if (minPackQty * createPageCount > thisCreateQty)
  343. {
  344. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  345. }
  346. }
  347. string LotNo = GetSerialCode(WorkPoint, "ICSITEMLot", "LotNO", Pre, 5);
  348. sql += string.Format(@"INSERT INTO dbo.ICSITEMLot
  349. ( ID ,LotNO ,ItemCODE ,TransNO ,TransLine ,VENDORITEMCODE ,VENDORCODE ,
  350. VenderLotNO ,PRODUCTDATE ,LOTQTY ,ACTIVE ,Exdate ,WorkPoint ,
  351. MUSER ,MUSERName ,MTIME ,TYPE,ORDERNO)
  352. SELECT NEWID(),'{0}',InvCode,POCode,PORow,'',NULL,
  353. '{1}',GETDATE(),'{2}','Y','2999-12-31 00:00:00.000','{3}',
  354. '{4}','{5}',GETDATE(),'',ORDERNO
  355. FROM dbo.ICSPO_PoMain WHERE POCode='{6}' AND PORow='{7}' AND WorkPoint='{3}'",
  356. LotNo, VendorLot, LOTQTY, WorkPoint, MUSER, MUSERNAME, POCode, PORow);
  357. sql += "\r\n";
  358. }
  359. int count = SqlHelper.ExecuteNonQuery(sql);
  360. return count;
  361. }
  362. public string GetSerialCode(string workPointCode, string tbName, string colName, string Pre, int numLen)
  363. {
  364. string sql = "EXEC Addins_GetSerialCode '{0}','{1}','{2}','{3}',{4}";
  365. sql = string.Format(sql, new object[] { workPointCode, tbName, colName, Pre, numLen });
  366. return DbHelper.ExecuteScalar(CommandType.Text, sql).ToString();
  367. }
  368. public string GetVendorCode(string POCode, string PORow, string WorkPoint)
  369. {
  370. string sql = string.Format(@"SELECT VenCode FROM dbo.ICSPO_PoMain
  371. WHERE POCode='{0}' AND PORow='{1}' AND WorkPoint='{2}'", POCode, PORow, WorkPoint);
  372. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  373. string VenCode = string.Empty;
  374. if (dt != null && dt.Rows.Count > 0)
  375. {
  376. VenCode = dt.Rows[0][0].ToString();
  377. }
  378. return VenCode;
  379. }
  380. /// <summary>
  381. /// 删除送货单内的条码或者箱号
  382. /// </summary>
  383. /// <param name="keyValue"></param>
  384. /// <returns></returns>
  385. public string DeleteInfo(string keyValue,string WorkPoint)
  386. {
  387. string msg = "";
  388. string sql = string.Format(@" DELETE FROM dbo.ICSASNDetail
  389. WHERE ID IN (
  390. SELECT ID FROM dbo.ICSASNDetail WHERE LotNo IN (
  391. SELECT LotNo FROM dbo.ICSContainerLot WHERE ContainerID IN (
  392. SELECT a.ContainerID
  393. FROM dbo.ICSContainerLot a
  394. LEFT JOIN dbo.ICSASNDetail b ON a.LotNO=b.LotNo AND a.WorkPoint=b.WorkPoint
  395. WHERE b.ID IN ({0}) AND a.WorkPoint='{1}')
  396. ))", keyValue.TrimEnd(','), WorkPoint);
  397. SqlHelper.ExecuteNonQuery(sql);
  398. sql = string.Format(@" DELETE
  399. FROM dbo.ICSASNDetail
  400. WHERE ID IN ({0}) and WorkPoint ='{1}' ", keyValue.TrimEnd(','), WorkPoint);
  401. try
  402. {
  403. SqlHelper.ExecuteNonQuery(sql);
  404. }
  405. catch (Exception ex)
  406. {
  407. msg = ex.Message;
  408. }
  409. return msg;
  410. }
  411. /// <summary>
  412. /// 更新送货单
  413. /// </summary>
  414. /// <param name="keyValue"></param>
  415. /// <returns></returns>
  416. public string UpdateSTNO(string keyValue, string WorkPoint, string EATTRIBUTE1)
  417. {
  418. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  419. string msg = "";
  420. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  421. string[] keyValues = keyValue.Split(',');
  422. string sql = string.Empty;
  423. sql = "UPDATE ICSASN SET MTIME = getdate(),EATTRIBUTE1='{2}' WHERE ASNCode = {0} AND WorkPoint in ('{1}')";
  424. sql = string.Format(sql, keyValues[0].TrimStart(',').TrimEnd(','), WorkPoint, EATTRIBUTE1);
  425. SqlHelper.ExecuteNonQuery(sql);
  426. return msg;
  427. }
  428. /// <summary>
  429. /// 删除送货单
  430. /// </summary>
  431. /// <param name="keyValue"></param>
  432. /// <returns></returns>
  433. public string DeleteSTNO(string keyValue, string WorkPoint, string EATTRIBUTE1)
  434. {
  435. string msg = "";
  436. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  437. string sql = string.Empty;
  438. sql = "SELECT ASNCode FROM dbo.ICSDeliveryNotice WHERE ASNCode IN (" + keyValue.TrimEnd(',') + ")";
  439. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  440. foreach (DataRow dr in dt.Rows)
  441. {
  442. string STNO = dr["ASNCode"].ToString();
  443. if (!string.IsNullOrEmpty(STNO))
  444. {
  445. msg += "送货单号:" + STNO + "已生成到货单,无法删除!";
  446. }
  447. }
  448. if (string.IsNullOrEmpty(msg))
  449. {
  450. sql = string.Format(@" DELETE FROM dbo.ICSASNDetail WHERE ASNCode IN ({0}) and WorkPoint in ('{1}')
  451. DELETE FROM dbo.ICSASN WHERE ASNCode IN ({0}) and WorkPoint in ('{1}')
  452. UPDATE ICSASN SET EATTRIBUTE1='{2}'WHERE ASNCode IN ({0}) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint, EATTRIBUTE1);
  453. //string sql = string.Format(@"SELECT * FROM dbo.ICSASNDETAIL
  454. // WHERE LOTNO IN (
  455. // SELECT LotNO FROM dbo.ICSITEMLot2Carton WHERE CartonNO in ({0}) and WorkPoint='{1}') and WorkPoint='{1}'", keyValue.TrimEnd(','), WorkPoint);
  456. //DataTable dt = SqlHelper.GetDataTableBySql(sql);
  457. //if (dt == null || dt.Rows.Count <= 0)
  458. //{
  459. // sql = string.Format(@"DELETE FROM dbo.ICSCarton WHERE CartonNO in ({0}) and WorkPoint='{1}'
  460. // DELETE FROM dbo.ICSITEMLot2Carton WHERE CartonNO in ({0}) and WorkPoint='{1}' ", keyValue.TrimEnd(','), WorkPoint);
  461. // DbHelper.ExecuteNonQuery(CommandType.Text, sql);
  462. //}
  463. //else
  464. //{
  465. // msg = "所选箱号中已有加入送货单中,请先在送单号中删除!";
  466. //}
  467. SqlHelper.ExecuteNonQuery(sql);
  468. }
  469. return msg;
  470. }
  471. public int UpDateBySTNO(string keyValue, string Status, string WorkPoint)
  472. {
  473. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  474. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  475. WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2);
  476. string sql = string.Empty;
  477. sql = @"UPDATE ICSASN SET Status = '{1}' WHERE ASNCode IN ({0}) AND WorkPoint in({2})";
  478. sql = string.Format(sql, keyValue.TrimEnd(','), Status,WorkPoint.TrimEnd(','));
  479. return SqlHelper.ExecuteNonQuery(sql);
  480. }
  481. /// <summary>
  482. /// 单号
  483. /// </summary>
  484. /// <param name="keyValue"></param>
  485. /// <param name="Status"></param>
  486. /// <param name="WorkPoint"></param>
  487. /// <param name="EATTRIBUTE1"></param>
  488. /// <returns></returns>
  489. public string UpDateBySTNODH(string keyValue)
  490. {
  491. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  492. string msg = "";
  493. string sql = string.Empty;
  494. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  495. //keyValue = keyValue.Substring(1, keyValue.Length - 2);
  496. foreach (var item in res)
  497. {
  498. JObject jo = (JObject)item;
  499. sql += $@"
  500. UPDATE ICSASN SET EATTRIBUTE1 = '{jo["EATTRIBUTE1"]}' WHERE ASNCode = '{jo["objArr"]}' AND WorkPoint = '{jo["WorkPoint"]}' ";
  501. }
  502. try
  503. {
  504. SqlHelper.CmdExecuteNonQueryLi(sql);
  505. }
  506. catch (Exception ex)
  507. {
  508. msg = ex.Message;
  509. //throw new Exception(ex.Message);
  510. }
  511. return msg;
  512. }
  513. public int UpDateBySTNOAdmin(string keyValue, string Status, string WorkPoint)
  514. {
  515. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  516. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  517. WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2);
  518. string sql = string.Empty;
  519. sql = @"UPDATE ICSASN SET Status = '{1}' WHERE ASNCode IN ({0}) AND WorkPoint in({2})";
  520. sql = string.Format(sql, keyValue.TrimEnd(','), Status, WorkPoint.TrimEnd(','));
  521. return SqlHelper.ExecuteNonQuery(sql);
  522. }
  523. public string ChangeStatusBySTNO(string keyValue)
  524. {
  525. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  526. string msg = "";
  527. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  528. string sql = string.Empty;
  529. sql = "SELECT STNO FROM dbo.ICSPOArrive WHERE STNO IN (" + keyValue.TrimEnd(',') + ")";
  530. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  531. foreach (DataRow dr in dt.Rows)
  532. {
  533. string STNO = dr["STNO"].ToString();
  534. if (!string.IsNullOrEmpty(STNO))
  535. {
  536. msg += "送货单号:" + STNO + "已生成到货单,无法删除!";
  537. }
  538. }
  539. if (string.IsNullOrEmpty(msg))
  540. {
  541. sql = string.Format(@"DELETE FROM dbo.ICSASNDETAIL WHERE STNO IN ({0}) and WorkPoint ='{1}'
  542. DELETE FROM dbo.ICSASN WHERE STNO IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint);
  543. //string sql = string.Format(@"SELECT * FROM dbo.ICSASNDETAIL
  544. // WHERE LOTNO IN (
  545. // SELECT LotNO FROM dbo.ICSITEMLot2Carton WHERE CartonNO in ({0}) and WorkPoint='{1}') and WorkPoint='{1}'", keyValue.TrimEnd(','), WorkPoint);
  546. //DataTable dt = SqlHelper.GetDataTableBySql(sql);
  547. //if (dt == null || dt.Rows.Count <= 0)
  548. //{
  549. // sql = string.Format(@"DELETE FROM dbo.ICSCarton WHERE CartonNO in ({0}) and WorkPoint='{1}'
  550. // DELETE FROM dbo.ICSITEMLot2Carton WHERE CartonNO in ({0}) and WorkPoint='{1}' ", keyValue.TrimEnd(','), WorkPoint);
  551. // DbHelper.ExecuteNonQuery(CommandType.Text, sql);
  552. //}
  553. //else
  554. //{
  555. // msg = "所选箱号中已有加入送货单中,请先在送单号中删除!";
  556. //}
  557. SqlHelper.ExecuteNonQuery(sql);
  558. }
  559. return msg;
  560. }
  561. /// <summary>
  562. /// 删除送货单
  563. /// </summary>
  564. /// <param name="keyValue"></param>
  565. /// <returns></returns>
  566. public string DeleteCartonNo(string keyValue)
  567. {
  568. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  569. string msg = "";
  570. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  571. string sql = string.Format(@"SELECT * FROM dbo.ICSASNDETAIL
  572. WHERE LOTNO IN (
  573. SELECT LotNO FROM dbo.ICSITEMLot2Carton WHERE CartonNO in ({0}) and WorkPoint='{1}') and WorkPoint='{1}'", keyValue.TrimEnd(','), WorkPoint);
  574. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  575. if (dt == null || dt.Rows.Count <= 0)
  576. {
  577. sql = string.Format(@"DELETE FROM dbo.ICSCarton WHERE CartonNO in ({0}) and WorkPoint='{1}'
  578. DELETE FROM dbo.ICSITEMLot2Carton WHERE CartonNO in ({0}) and WorkPoint='{1}' ", keyValue.TrimEnd(','), WorkPoint);
  579. DbHelper.ExecuteNonQuery(CommandType.Text, sql);
  580. }
  581. else
  582. {
  583. msg = "所选箱号中已有加入送货单中,请先在送单号中删除!";
  584. }
  585. return msg;
  586. }
  587. /// <summary>
  588. /// 选择条码
  589. /// </summary>
  590. /// <returns></returns>
  591. public DataTable GetInfoBySelectItemCode(string queryJson, ref Pagination jqgridparam,string WorkPoint)
  592. {
  593. var queryParam = queryJson.ToJObject();
  594. List<DbParameter> parameter = new List<DbParameter>();
  595. string sql = @"SELECT a.ID, a.LotNO,d.InvCode,d.InvName,a.Quantity,a.TYPE,
  596. g.ProjectCode,e.POCode,e.Sequence,d.InvDesc,d.ClassName,d.INVSTD,g.BatchCode,a.Amount,a.WorkPoint
  597. FROM dbo.ICSInventoryLot a
  598. left join ICSExtension g on a.ExtensionID=g.ID and a.WorkPoint=g.WorkPoint
  599. LEFT JOIN dbo.ICSContainerLot b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  600. LEFT JOIN dbo.ICSASNDetail c ON a.LotNO=c.LotNO AND a.WorkPoint=c.WorkPoint
  601. LEFT JOIN dbo.ICSInventory d ON a.InvCode=d.InvCode AND a.WorkPoint=d.WorkPoint
  602. left join ICSInventoryLotDetail f on a.LotNo=f.LotNo and a.WorkPoint=f.WorkPoint
  603. LEFT JOIN dbo.ICSPurchaseOrder e ON f.TransCode=e.POCode AND f.TransSequence=e.Sequence
  604. WHERE c.LotNo is null and B.LotNo IS NULL and ISNULL(a.EATTRIBUTE1,'') ='' and a.Type='200' AND e.Status<>'3'";
  605. //AND a.TYPE='采购'";
  606. if (!string.IsNullOrEmpty(queryJson))
  607. {
  608. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  609. sql += " and d.InvCode like '%" + queryParam["InvCode"].ToString() + "%'";
  610. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  611. sql += " and d.InvName like '%" + queryParam["InvName"].ToString() + "%'";
  612. if (!string.IsNullOrWhiteSpace(queryParam["OrderNo"].ToString()))
  613. sql += " and g.ProjectCode like '%" + queryParam["OrderNo"].ToString() + "%'";
  614. if (!string.IsNullOrWhiteSpace(queryParam["TransNo"].ToString()))
  615. sql += " and e.POCode like '%" + queryParam["TransNo"].ToString() + "%'";
  616. if (!string.IsNullOrWhiteSpace(queryParam["TransLine"].ToString()))
  617. sql += " and e.Sequence like '%" + queryParam["TransLine"].ToString() + "%'";
  618. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  619. sql += " and e.VenCode='" + queryParam["VenCode"].ToString() + "'";
  620. }
  621. sql += " and a.WorkPoint='" + WorkPoint + "'";
  622. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  623. }
  624. /// <summary>
  625. /// 获取供应商列表
  626. /// </summary>
  627. /// <returns></returns>
  628. public DataTable GetVendor()
  629. {
  630. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  631. string sql = @"select '' as F_VenCode,'' as cVenName
  632. union all
  633. SELECT DISTINCT a.F_VenCode,isnull(b.VenName,'') as cVenName FROM dbo.Sys_SRM_User a
  634. LEFT JOIN dbo.ICSVendor b ON a.F_VenCode=b.VenCode and a.F_Location=b.WorkPoint
  635. WHERE a.F_VenCode IS NOT NULL AND a.F_VenCode <>''";
  636. string role = NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode;
  637. if (role != "admin")
  638. {
  639. sql += " and b.WorkPoint in(" + WorkPoint.TrimEnd(',') + ")";
  640. }
  641. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  642. return dt;
  643. }
  644. /// <summary>
  645. /// 获取供应商列表
  646. /// </summary>
  647. /// <returns></returns>
  648. public DataTable GetASNCode(string VenCode)
  649. {
  650. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  651. string sql = @"
  652. select '' as F_VenCode,'' as cVenName
  653. union all
  654. SELECT asncode AS F_VenCod,asncode AS cVenName FROM icsasn a WHERE status='2'";
  655. string role = NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode;
  656. if (role != "admin")
  657. {
  658. sql += " and a.WorkPoint in(" + WorkPoint.TrimEnd(',') + ")";
  659. }
  660. if(!string.IsNullOrWhiteSpace(VenCode))
  661. {
  662. sql += " AND vencode='"+VenCode+"'";
  663. }
  664. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  665. return dt;
  666. }
  667. /// <summary>
  668. /// 获取组织号信息
  669. /// </summary>
  670. /// <returns></returns>
  671. public DataTable GetWorkPoint()
  672. {
  673. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  674. string role = NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode;
  675. string sql = @" select '' as WorkPointCode,'' as WorkPointName
  676. union all
  677. SELECT distinct (b.WorkPointCode),b.WorkPointName FROM Sys_SRM_User a
  678. LEFT JOIN Sys_WorkPoint b ON a.F_Location=b.WorkPointCode where b.WorkPointCode is not null";
  679. //if (role != "admin")
  680. //{
  681. // sql += " and a.F_Account='" + role + "'";
  682. //}
  683. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  684. return dt;
  685. }
  686. public string GetSTNO(string WorkPoint)
  687. {
  688. string STNO = string.Empty;
  689. string VenCode = NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode;
  690. WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  691. if (!string.IsNullOrEmpty(VenCode))
  692. {
  693. string Date = DateTime.Now.ToString("yy");
  694. string Pre = "DN" + VenCode + Date;
  695. STNO = GetSerialCode(WorkPoint, "ICSASN", "STNO", Pre, 5);
  696. }
  697. if (!string.IsNullOrEmpty(STNO))
  698. {
  699. string sql = string.Empty;
  700. string configSql = string.Empty;
  701. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  702. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  703. string Status = "";
  704. #region [获取送货单配置信息,判断状态]
  705. string F_ItemName = SqlHelper.GetSHDZDSHItemsDetails("ASNAudit", WorkPoint);
  706. if (!string.IsNullOrWhiteSpace(F_ItemName))
  707. {
  708. Status = "2";
  709. }
  710. else
  711. {
  712. Status = "0";
  713. }
  714. #endregion
  715. sql = @"INSERT INTO dbo.ICSASN( ID ,MTIME,MUSER,MUSERNAME ,ASNCode ,VenCode ,WorkPoint,Status)
  716. VALUES (NEWID(),GETDATE(),'" + VenCode + "','" + MUSERNAME + "','" + STNO + "','" + VenCode + "'," + WorkPoint + ",'" + Status + "')";
  717. try
  718. {
  719. SqlHelper.ExecuteNonQuery(sql);
  720. }
  721. catch (Exception ex)
  722. {
  723. throw new Exception(ex.Message);
  724. }
  725. }
  726. return STNO;
  727. }
  728. public string GetSTNOByPerson(string VenCode, string ExpArrivalDate,string WorkPoint)
  729. {
  730. string STNO = string.Empty;
  731. string Date = DateTime.Now.ToString("yy");
  732. string Pre = "DN" + VenCode + Date;
  733. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  734. STNO = GetSerialCode(WorkPoint, "ICSASN", "STNO", Pre, 5);
  735. if (!string.IsNullOrEmpty(STNO))
  736. {
  737. string sql = string.Empty;
  738. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  739. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  740. string Status = "";
  741. #region [获取送货单配置信息,判断状态]
  742. string F_ItemName = SqlHelper.GetSHDZDSHItemsDetails("ASNAudit", WorkPoint);
  743. if (!string.IsNullOrWhiteSpace(F_ItemName))
  744. {
  745. Status = "2";
  746. }
  747. else
  748. {
  749. Status = "0";
  750. }
  751. #endregion
  752. sql = @"INSERT INTO dbo.ICSASN
  753. ( ID ,ASNCode,VenCode,Status ,MUSER ,MUSERName ,MTIME,WorkPoint)
  754. VALUES (NEWID(),'" + STNO + "','" + VenCode + "','" + Status + "','" + MUSER + "','" + MUSERNAME + "',getdate(),'" + WorkPoint + "')";
  755. try
  756. {
  757. SqlHelper.ExecuteNonQuery(sql);
  758. }
  759. catch (Exception ex)
  760. {
  761. throw new Exception(ex.Message);
  762. }
  763. }
  764. return STNO;
  765. }
  766. //public string CheckSTNO_ItemCode(string JsonData, string STNO, string WorkPoint, string ICSASN)
  767. //{
  768. // string msg = "";
  769. // string APIURL = ConfigurationManager.ConnectionStrings["APIURLLOT"].ConnectionString;
  770. // string result = SqlHelper.HttpPost(APIURL, ICSASN);
  771. // JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText);
  772. // string MessAge = Obj["message"].ToString();
  773. // string Success = Obj["success"].ToString();
  774. // if (Success.ToUpper() == "FALSE")
  775. // {
  776. // msg = MessAge;
  777. // }
  778. // return msg;
  779. //}
  780. public string CheckSTNO_ItemCode(string JsonData, string STNO, string WorkPoint)
  781. {
  782. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  783. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  784. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  785. string msg = "";
  786. string sql = string.Empty;
  787. sql = @"INSERT INTO dbo.ICSASNDetail
  788. ( ID ,ASNCode ,Sequence ,MUSER ,
  789. LotNo , Quantity ,Amount ,DNQuantity ,DNAmount ,MUSERName,
  790. MTIME,WorkPoint)
  791. SELECT NEWID(),'" + STNO + "',ROW_NUMBER()over(partition by LotNO order by mtime desc),'" + MUSER + @"',
  792. a.LotNO,a.Quantity,a.Quantity*Amount as Amount,0,0,'" + MUSERNAME + @"',
  793. getdate()," + WorkPoint.TrimEnd(',') + @"
  794. FROM dbo.ICSInventoryLot a
  795. WHERE a.ID IN (" + JsonData.TrimEnd(',') + ")";
  796. try
  797. {
  798. SqlHelper.ExecuteNonQuery(sql);
  799. }
  800. catch (Exception ex)
  801. {
  802. throw new Exception(ex.Message);
  803. }
  804. return msg;
  805. }
  806. public string CheckSTNO_CartonNo(string JsonData, string STNO, string WorkPoint)
  807. {
  808. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  809. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  810. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  811. string msg = "";
  812. string sql = string.Empty;
  813. sql = @"INSERT INTO dbo.ICSASNDetail
  814. ( ID ,ASNCode ,Sequence ,MUSER ,
  815. LotNo , Quantity ,Amount ,DNQuantity ,DNAmount ,MUSERName,
  816. MTIME,WorkPoint)
  817. SELECT NEWID(),'" + STNO + "',ROW_NUMBER()over( order by b.LotNO desc),'" + MUSER + @"',
  818. a.LotNO,b.Quantity,b.Quantity*b.Amount as Amount,0,0,'" + MUSERNAME + @"'
  819. ,getdate(),'" + WorkPoint.TrimEnd(',') + @"'
  820. FROM ICSContainer d
  821. LEFT JOIN dbo.ICSContainerLot a ON a.ContainerID=d.ID
  822. left JOIN dbo.ICSInventoryLot b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  823. LEFT JOIN dbo.ICSInventory c ON c.InvCode=b.InvCode AND a.WorkPoint=c.WorkPoint
  824. WHERE d.ID IN(" + JsonData.TrimEnd(',') + ") and a.WorkPoint='" + WorkPoint + "'";
  825. try
  826. {
  827. SqlHelper.ExecuteNonQuery(sql);
  828. }
  829. catch (Exception ex)
  830. {
  831. throw new Exception(ex.Message);
  832. }
  833. return msg;
  834. }
  835. /// <summary>
  836. /// 获取箱号主表信息
  837. /// </summary>
  838. /// <param name="queryJson"></param>
  839. /// <param name="jqgridparam"></param>
  840. /// <returns></returns>
  841. public DataTable GetCartonGridJson(string queryJson, ref Pagination jqgridparam, string WorkPoint)
  842. {
  843. string sql = string.Empty;
  844. DataTable dt = new DataTable();
  845. var queryParam = queryJson.ToJObject();
  846. List<DbParameter> parameter = new List<DbParameter>();
  847. if (queryParam["Type"].ToString() == "ContainerType01")
  848. {
  849. // sql = @"SELECT DISTINCT a.ContainerCode,a.ID+d.InvCode as ID,
  850. //a.MUSERName, a.MTIME,Dil.F_ItemName,d.InvCode,d.InvName,d.InvStd
  851. //FROM ICSContainer a
  852. //inner JOIN dbo.ICSContainerLot c ON a.ID=c.ContainerID and a.WorkPoint=c.WorkPoint
  853. //LEFT join dbo.ICSInventoryLot lot on c.LotNo=lot.LotNo and a.WorkPoint=lot.WorkPoint and lot.Type='200'
  854. //left join Sys_SRM_ItemsDetail Dil on F_ItemId='6230217e-4413-4427-9bec-c67ba789eca9' and F_EnabledMark='1' and a.ContainerType=Dil.F_ItemCode
  855. //LEFT JOIN ICSInventory d ON d.InvCode=lot.InvCode AND d.WorkPoint=lot.WorkPoint
  856. //WHERE
  857. // a.ID not IN
  858. // (SELECT b.ContainerID FROM dbo.ICSASNDETAIL a inner JOIN dbo.ICSContainerLot b ON a.LotNO =b.LotNO AND a.WorkPoint=b.WorkPoint)
  859. //and a.EATTRIBUTE1='1' and a.ContainerID=''
  860. //";
  861. sql = @"SELECT DISTINCT a.ContainerCode,a.ID+d.InvCode as ID,
  862. a.MUSERName, a.MTIME,Dil.F_ItemName,d.InvCode,d.InvName,d.InvStd
  863. FROM ICSContainer a
  864. inner JOIN dbo.ICSContainerLot c ON a.ID=c.ContainerID and a.WorkPoint=c.WorkPoint
  865. LEFT join dbo.ICSInventoryLot lot on c.LotNo=lot.LotNo and a.WorkPoint=lot.WorkPoint and lot.Type='200'
  866. left join Sys_SRM_ItemsDetail Dil on F_ItemId='6230217e-4413-4427-9bec-c67ba789eca9' and F_EnabledMark='1' and a.ContainerType=Dil.F_ItemCode
  867. LEFT JOIN ICSInventory d ON d.InvCode=lot.InvCode AND d.WorkPoint=lot.WorkPoint
  868. LEFT JOIN (SELECT b.ContainerID FROM dbo.ICSASNDETAIL a inner JOIN dbo.ICSContainerLot b ON a.LotNO =b.LotNO AND a.WorkPoint=b.WorkPoint) e ON a.id=e.ContainerID
  869. WHERE
  870. e.ContainerID IS null
  871. and a.EATTRIBUTE1='1' and a.ContainerID=''
  872. ";
  873. }
  874. else
  875. {
  876. // sql = @"SELECT DISTINCT a.ContainerCode,a.ID,
  877. //a.MUSERName, a.MTIME,Dil.F_ItemName
  878. //FROM ICSContainer a
  879. //left join ICSContainer xz on a.ID=xz.ContainerID and a.WorkPoint=xz.WorkPoint
  880. //inner JOIN dbo.ICSContainerLot c ON xz.ID=c.ContainerID and xz.WorkPoint=c.WorkPoint
  881. //LEFT join dbo.ICSInventoryLot lot on c.LotNo=lot.LotNo and a.WorkPoint=lot.WorkPoint and lot.Type='200'
  882. //left join Sys_SRM_ItemsDetail Dil on F_ItemId='6230217e-4413-4427-9bec-c67ba789eca9' and F_EnabledMark='1' and a.ContainerType=Dil.F_ItemCode
  883. //WHERE
  884. // xz.ID not IN
  885. // (SELECT b.ContainerID FROM dbo.ICSASNDETAIL a inner JOIN dbo.ICSContainerLot b ON a.LotNO =b.LotNO AND a.WorkPoint=b.WorkPoint)
  886. //and
  887. //a.EATTRIBUTE1='1'
  888. //";
  889. sql = @" SELECT DISTINCT a.ContainerCode,a.ID,
  890. a.MUSERName, a.MTIME,Dil.F_ItemName
  891. FROM ICSContainer a
  892. left join ICSContainer xz on a.ID=xz.ContainerID and a.WorkPoint=xz.WorkPoint
  893. inner JOIN dbo.ICSContainerLot c ON xz.ID=c.ContainerID and xz.WorkPoint=c.WorkPoint
  894. LEFT join dbo.ICSInventoryLot lot on c.LotNo=lot.LotNo and a.WorkPoint=lot.WorkPoint and lot.Type='200'
  895. left join Sys_SRM_ItemsDetail Dil on F_ItemId='6230217e-4413-4427-9bec-c67ba789eca9' and F_EnabledMark='1' and a.ContainerType=Dil.F_ItemCode
  896. LEFT JOIN (SELECT b.ContainerID FROM dbo.ICSASNDETAIL a inner JOIN dbo.ICSContainerLot b ON a.LotNO =b.LotNO AND a.WorkPoint=b.WorkPoint) e ON xz.ID=e.ContainerID
  897. WHERE
  898. e.ContainerID IS NULL AND a.EATTRIBUTE1='1'
  899. ";
  900. }
  901. if (!string.IsNullOrWhiteSpace(queryJson))
  902. {
  903. //if (queryParam["Type"].ToString()== "ContainerType01")
  904. //{
  905. // sql += " and a.ContainerID ='' ";
  906. //}
  907. if (!string.IsNullOrWhiteSpace(queryParam["CartonNo"].ToString()))
  908. {
  909. sql += " and a.ContainerCode like '%" + queryParam["CartonNo"].ToString() + "%' ";
  910. }
  911. //if (!string.IsNullOrWhiteSpace(queryParam["OrderNo"].ToString()))
  912. //{
  913. // sql += " and b.OrderNO like '%" + queryParam["OrderNo"].ToString() + "%' ";
  914. //}
  915. //if (!string.IsNullOrWhiteSpace(queryParam["TransNo"].ToString()))
  916. //{
  917. // sql += " and b.TransNO like '%" + queryParam["TransNO"].ToString() + "%' ";
  918. //}
  919. //if (!string.IsNullOrWhiteSpace(queryParam["TransLine"].ToString()))
  920. //{
  921. // sql += " and b.TransLine like '%" + queryParam["TransLine"].ToString() + "%' ";
  922. //}
  923. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  924. {
  925. sql += " and a.EATTRIBUTE8 = '" + queryParam["VenCode"].ToString() + "' ";
  926. }
  927. if (!string.IsNullOrWhiteSpace(queryParam["Type"].ToString()))
  928. {
  929. sql += " and a.ContainerType = '" + queryParam["Type"].ToString() + "' ";
  930. }
  931. }
  932. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  933. {
  934. sql += " and a.WorkPoint='" + WorkPoint + "'";
  935. }
  936. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  937. }
  938. /// <summary>
  939. /// 箱号子表查询
  940. /// </summary>
  941. /// <param name="CartonNo"></param>
  942. /// <param name="jqgridparam"></param>
  943. /// <returns></returns>
  944. public DataTable GetCartonSubGridJson(string CartonNo, ref Pagination jqgridparam)
  945. {
  946. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  947. DataTable dt = new DataTable();
  948. //var queryParam = queryJson.ToJObject();
  949. List<DbParameter> parameter = new List<DbParameter>();
  950. string sql = @"SELECT a.LotNO, a.ID,c.ItemCODE,d.INVNAME,c.VenderLotNO,c.LOTQTY,
  951. c.TYPE,b.EATTRIBUTE8,c.ORDERNO,c.TransNO,c.TransLine,d.INVDESC,d.INVTYPE,e.MEMO,d.INVSTD,d.INVPARSETYPE
  952. FROM dbo.ICSITEMLot2Carton a
  953. LEFT JOIN dbo.ICSCarton b ON a.CartonNO=b.CartonNO AND a.WorkPoint=b.WorkPoint
  954. LEFT JOIN dbo.ICSITEMLot c ON a.LotNo_ID=c.ID AND a.WorkPoint=c.WorkPoint
  955. LEFT JOIN dbo.ICSINVENTORY d ON c.ItemCODE=d.INVCODE AND a.WorkPoint=d.WorkPoint
  956. LEFT JOIN dbo.ICSPO_PoMain e ON c.TransNO=e.POCode AND c.TransLine =e.PORow AND a.WorkPoint=e.WorkPoint
  957. WHERE a.CartonNO='" + CartonNo + "' and a.WorkPoint='" + WorkPoint + "'";
  958. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  959. }
  960. public DataTable GetASNListGridJson(string queryJson, ref Pagination jqgridparam)
  961. {
  962. string ParentId = "";
  963. var queryParam = queryJson.ToJObject();
  964. List<DbParameter> parameter = new List<DbParameter>();
  965. string sqlAccount = string.Empty;
  966. // string sql = @"SELECT a.ASNDETAILID, a.STNO,a.ITEMCODE,d.INVNAME,d.INVTYPE,d.INVDESC,h.ReMark,a.LOTNO,b.VenderLotNO,
  967. //b.LOTQTY,c.CartonNO,e.VENDORCODE,f.cVenName,
  968. //b.TransNO,b.TransLine,g.F_RealName,CONVERT(NVARCHAR(50),e.CREATETIME,23) as CREATETIME,d.INVSTD,d.INVPARSETYPE,case
  969. //when a.RECEIVEQTY is null then '否'
  970. //else '是'
  971. //end as IsReceive
  972. //,w.WorkPointName,w.WorkPointCode
  973. //FROM dbo.ICSASNDETAIL a
  974. //LEFT JOIN dbo.ICSITEMLot b ON a.LOTNO=b.LotNO AND a.WorkPoint=b.WorkPoint
  975. //LEFT JOIN dbo.ICSITEMLot2Carton c ON a.LOTNO=c.LotNO AND a.WorkPoint=c.WorkPoint
  976. //LEFT JOIN dbo.ICSINVENTORY d ON a.ITEMCODE=d.INVCODE AND a.WorkPoint=d.WorkPoint
  977. //LEFT JOIN dbo.ICSASN e ON a.STNO=e.STNO AND a.WorkPoint=e.WorkPoint
  978. //LEFT JOIN dbo.ICSVendor f ON e.VENDORCODE=f.cVenCode AND a.WorkPoint=f.WorkPoint
  979. //LEFT JOIN dbo.Sys_SRM_User g ON e.LOGUSER=g.F_Account and g.F_Location=a.WorkPoint
  980. //LEFT JOIN dbo.ICSPO_PoMain h ON b.TransNO=h.POCode AND b.TransLine=h.PORow AND a.WorkPoint=h.WorkPoint
  981. //LEFT JOIN dbo.Sys_WorkPoint w ON a.WorkPoint=w.WorkPointCode
  982. //where 1=1";
  983. string sql = @"SELECT DISTINCT a.ID, a.ASNCode,b.InvCode,d.INVNAME,d.INVDESC,a.LOTNO,exc.BatchCode,
  984. b.Quantity,c.ContainerID,e.VenCode,f.VenName,
  985. det.TransCode,det.TransSequence,g.F_RealName,CONVERT(NVARCHAR(50),e.MTIME,23) as CREATETIME,d.INVSTD,case
  986. when a.DNQuantity is null then '否'
  987. else '是'
  988. end as IsReceive
  989. ,w.WorkPointName,w.WorkPointCode,CAST(ISNULL(II.repairqty,0) AS DECIMAL(18,3)) AS RepairQty,CAST(ISNULL(cc.NGQTY,0) AS DECIMAL(18,3))as NGQTY,CAST(ISNULL(cc.YLQTY,0) AS DECIMAL(18,3)) as YLQTY
  990. FROM dbo.ICSASNDETAIL a
  991. LEFT JOIN dbo.ICSInventoryLot b ON a.LOTNO=b.LotNO AND a.WorkPoint=b.WorkPoint
  992. LEFT JOIN dbo.ICSInventoryLotDetail det ON b.LotNO=det.LotNo AND b.WorkPoint=det.WorkPoint
  993. LEFT JOIN dbo.ICSContainerLot c ON a.LOTNO=c.LotNO AND a.WorkPoint=c.WorkPoint
  994. LEFT JOIN dbo.ICSINVENTORY d ON b.InvCode=d.InvCode AND a.WorkPoint=d.WorkPoint
  995. LEFT JOIN dbo.ICSExtension exc ON b.ExtensionID=exc.ID
  996. LEFT JOIN dbo.ICSASN e ON a.ASNCode=e.ASNCode AND a.WorkPoint=e.WorkPoint
  997. LEFT JOIN dbo.ICSVendor f ON e.VenCode=f.VenCode AND a.WorkPoint=f.WorkPoint
  998. LEFT JOIN dbo.Sys_SRM_User g ON e.VenCode=g.F_Account and g.F_Location=a.WorkPoint
  999. LEFT JOIN dbo.ICSPurchaseOrder h ON det.TransCode=h.POCode AND det.TransSequence=h.Sequence AND a.WorkPoint=h.WorkPoint
  1000. LEFT JOIN dbo.Sys_WorkPoint w ON a.WorkPoint=w.WorkPointCode
  1001. LEFT JOIN ( SELECT c.TransCode,c.TransSequence,
  1002. (SUM(ISNULL(a.Quantity, 0)) - SUM(ISNULL(a.DNQuantity, 0))) AS repairqty,a.WorkPoint
  1003. FROM ICSASNDETAIL a
  1004. LEFT JOIN dbo.ICSInventoryLot b ON a.LOTNO = b.LotNO AND a.WorkPoint = b.WorkPoint AND a.Quantity IS NOT NULL
  1005. LEFT JOIN dbo.ICSInventoryLotDetail c ON b.LotNo=c.LotNo AND b.WorkPoint=c.WorkPoint
  1006. GROUP BY c.TransCode,c.TransSequence,a.WorkPoint
  1007. ) II ON h.POCode = II.TransCode AND h.Sequence = II.TransSequence AND h.WorkPoint = II.WorkPoint
  1008. left join (
  1009. select c.TransCode,c.TransSequence,sum(isnull(a.UnqualifiedQuantity,0)) NGQTY,sum(isnull(a.Quantity,0)) YLQTY,a.WorkPoint from ICSINSPECTION a
  1010. left join dbo.ICSInventoryLot b on a.LOTNO=b.LotNO AND a.WorkPoint=b.WorkPoint
  1011. LEFT JOIN dbo.ICSInventoryLotDetail c ON b.LotNo=c.LotNo AND b.WorkPoint=c.WorkPoint
  1012. group by c.TransCode,c.TransSequence,b.EATTRIBUTE2,a.WorkPoint
  1013. having b.EATTRIBUTE2 is null) cc on h.POCode=cc.TransCode and h.Sequence=cc.TransSequence AND h.WorkPoint=cc.WorkPoint
  1014. where 1=1 ";
  1015. if (!string.IsNullOrWhiteSpace(queryJson))
  1016. {
  1017. if (!string.IsNullOrWhiteSpace(queryParam["STNO"].ToString()))
  1018. {
  1019. sql += " and a.AsnCode like '%" + queryParam["STNO"].ToString() + "%' ";
  1020. }
  1021. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  1022. {
  1023. sql += " and e.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  1024. }
  1025. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  1026. {
  1027. sql += " and f.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  1028. }
  1029. if (!string.IsNullOrWhiteSpace(queryParam["BeginDate"].ToString()))
  1030. {
  1031. sql += " and e.MTIME >= '" + queryParam["BeginDate"].ToString() + "' ";
  1032. }
  1033. if (!string.IsNullOrWhiteSpace(queryParam["EndDate"].ToString()))
  1034. {
  1035. sql += " and e.MTIME <= '" + queryParam["EndDate"].ToString() + "' ";
  1036. }
  1037. if (!string.IsNullOrWhiteSpace(queryParam["VenderLotNO"].ToString()))
  1038. {
  1039. sql += " and exc.BatchCode = '%" + queryParam["VenderLotNO"].ToString() + "%' ";
  1040. }
  1041. if (!string.IsNullOrWhiteSpace(queryParam["IsReceive"].ToString()))
  1042. {
  1043. string IsReceive = queryParam["IsReceive"].ToString();
  1044. if (IsReceive == "1")
  1045. {
  1046. sql += " and case when a.DNQuantity is null then '否'else '是'end ='是' ";
  1047. }
  1048. else if (IsReceive == "2")
  1049. {
  1050. sql += " and case when a.DNQuantity is null then '否'else '是'end ='否' ";
  1051. }
  1052. }
  1053. }
  1054. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  1055. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  1056. {
  1057. sql += " and e.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode + "'";
  1058. }
  1059. //组织架构代码
  1060. ParentId = SqlHelper.Organize_F_ParentId(NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
  1061. if (!string.IsNullOrWhiteSpace(ParentId) && ParentId != "0" && NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "Vendor")
  1062. {
  1063. return SqlHelper.FindTablePageBySql_OtherTemp(sql.ToString(), sql, ParentId, parameter.ToArray(), ref jqgridparam);
  1064. }
  1065. else
  1066. {
  1067. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1068. }
  1069. }
  1070. public DataTable GetASNListExport(string keyVaule)
  1071. {
  1072. //var queryParam = queryJson.ToJObject();
  1073. List<DbParameter> parameter = new List<DbParameter>();
  1074. string sql = @"SELECT DISTINCT a.ASNCode AS 送货单号,b.InvCode AS 物料编码,d.INVNAME AS 物料名称,d.InvStd AS 规格型号,case
  1075. when a.DNQuantity is null then '否'
  1076. else '是'
  1077. end as ,a.LOTNO AS ,exc.BatchCode AS ,
  1078. b.Quantity AS ,CAST(ISNULL(II.repairqty,0) AS DECIMAL(18,3)) AS ,CAST(ISNULL(cc.YLQTY,0) AS DECIMAL(18,3)) as
  1079. ,CAST(ISNULL(cc.NGQTY,0) AS DECIMAL(18,3))as
  1080. ,c.ContainerID AS ,e.VenCode AS ,f.VenName AS ,
  1081. det.TransCode AS ,det.TransSequence AS ,g.F_RealName AS ,CONVERT(NVARCHAR(50),e.MTIME,23) as
  1082. ,w.WorkPointName AS ,w.WorkPointCode AS
  1083. FROM dbo.ICSASNDETAIL a
  1084. LEFT JOIN dbo.ICSInventoryLot b ON a.LOTNO=b.LotNO AND a.WorkPoint=b.WorkPoint
  1085. LEFT JOIN dbo.ICSInventoryLotDetail det ON b.LotNO=det.LotNo AND b.WorkPoint=det.WorkPoint
  1086. LEFT JOIN dbo.ICSContainerLot c ON a.LOTNO=c.LotNO AND a.WorkPoint=c.WorkPoint
  1087. LEFT JOIN dbo.ICSINVENTORY d ON b.InvCode=d.InvCode AND a.WorkPoint=d.WorkPoint
  1088. LEFT JOIN dbo.ICSExtension exc ON b.ExtensionID=exc.ID
  1089. LEFT JOIN dbo.ICSASN e ON a.ASNCode=e.ASNCode AND a.WorkPoint=e.WorkPoint
  1090. LEFT JOIN dbo.ICSVendor f ON e.VenCode=f.VenCode AND a.WorkPoint=f.WorkPoint
  1091. LEFT JOIN dbo.Sys_SRM_User g ON e.VenCode=g.F_Account and g.F_Location=a.WorkPoint
  1092. LEFT JOIN dbo.ICSPurchaseOrder h ON det.TransCode=h.POCode AND det.TransSequence=h.Sequence AND a.WorkPoint=h.WorkPoint
  1093. LEFT JOIN dbo.Sys_WorkPoint w ON a.WorkPoint=w.WorkPointCode
  1094. LEFT JOIN ( SELECT c.TransCode,c.TransSequence,
  1095. (SUM(ISNULL(a.Quantity, 0)) - SUM(ISNULL(a.DNQuantity, 0))) AS repairqty,a.WorkPoint
  1096. FROM ICSASNDETAIL a
  1097. LEFT JOIN dbo.ICSInventoryLot b ON a.LOTNO = b.LotNO AND a.WorkPoint = b.WorkPoint AND a.Quantity IS NOT NULL
  1098. LEFT JOIN dbo.ICSInventoryLotDetail c ON b.LotNo=c.LotNo AND b.WorkPoint=c.WorkPoint
  1099. GROUP BY c.TransCode,c.TransSequence,a.WorkPoint
  1100. ) II ON h.POCode = II.TransCode AND h.Sequence = II.TransSequence AND h.WorkPoint = II.WorkPoint
  1101. left join (
  1102. select c.TransCode,c.TransSequence,sum(isnull(a.UnqualifiedQuantity,0)) NGQTY,sum(isnull(a.Quantity,0)) YLQTY,a.WorkPoint from ICSINSPECTION a
  1103. left join dbo.ICSInventoryLot b on a.LOTNO=b.LotNO AND a.WorkPoint=b.WorkPoint
  1104. LEFT JOIN dbo.ICSInventoryLotDetail c ON b.LotNo=c.LotNo AND b.WorkPoint=c.WorkPoint
  1105. group by c.TransCode,c.TransSequence,b.EATTRIBUTE2,a.WorkPoint
  1106. having b.EATTRIBUTE2 is null) cc on h.POCode=cc.TransCode and h.Sequence=cc.TransSequence AND h.WorkPoint=cc.WorkPoint
  1107. where 1=1 ";
  1108. sql += " and a.ID in (" + keyVaule + ")";
  1109. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  1110. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1111. return dt;
  1112. }
  1113. public DataTable GetASNListExport(string ORDERNO, string STNO, string BeginDate, string EndDate, string VenCode, string VenName, string VenderLotNO, string IsReceive)
  1114. {
  1115. //var queryParam = queryJson.ToJObject();
  1116. List<DbParameter> parameter = new List<DbParameter>();
  1117. string sql = @"SELECT DISTINCT a.ASNCode AS 送货单号,b.InvCode AS 物料编码,d.INVNAME AS 物料名称,d.InvStd AS 规格型号,case
  1118. when a.DNQuantity is null then '否'
  1119. else '是'
  1120. end as ,a.LOTNO AS ,exc.BatchCode AS ,
  1121. b.Quantity AS ,CAST(ISNULL(II.repairqty,0) AS DECIMAL(18,3)) AS ,CAST(ISNULL(cc.YLQTY,0) AS DECIMAL(18,3)) as
  1122. ,CAST(ISNULL(cc.NGQTY,0) AS DECIMAL(18,3))as
  1123. ,c.ContainerID AS ,e.VenCode AS ,f.VenName AS ,
  1124. det.TransCode AS ,det.TransSequence AS ,g.F_RealName AS ,CONVERT(NVARCHAR(50),e.MTIME,23) as
  1125. ,w.WorkPointName AS ,w.WorkPointCode AS
  1126. FROM dbo.ICSASNDETAIL a
  1127. LEFT JOIN dbo.ICSInventoryLot b ON a.LOTNO=b.LotNO AND a.WorkPoint=b.WorkPoint
  1128. LEFT JOIN dbo.ICSInventoryLotDetail det ON b.LotNO=det.LotNo AND b.WorkPoint=det.WorkPoint
  1129. LEFT JOIN dbo.ICSContainerLot c ON a.LOTNO=c.LotNO AND a.WorkPoint=c.WorkPoint
  1130. LEFT JOIN dbo.ICSINVENTORY d ON b.InvCode=d.InvCode AND a.WorkPoint=d.WorkPoint
  1131. LEFT JOIN dbo.ICSExtension exc ON b.ExtensionID=exc.ID
  1132. LEFT JOIN dbo.ICSASN e ON a.ASNCode=e.ASNCode AND a.WorkPoint=e.WorkPoint
  1133. LEFT JOIN dbo.ICSVendor f ON e.VenCode=f.VenCode AND a.WorkPoint=f.WorkPoint
  1134. LEFT JOIN dbo.Sys_SRM_User g ON e.VenCode=g.F_Account and g.F_Location=a.WorkPoint
  1135. LEFT JOIN dbo.ICSPurchaseOrder h ON det.TransCode=h.POCode AND det.TransSequence=h.Sequence AND a.WorkPoint=h.WorkPoint
  1136. LEFT JOIN dbo.Sys_WorkPoint w ON a.WorkPoint=w.WorkPointCode
  1137. LEFT JOIN ( SELECT c.TransCode,c.TransSequence,
  1138. (SUM(ISNULL(a.Quantity, 0)) - SUM(ISNULL(a.DNQuantity, 0))) AS repairqty,a.WorkPoint
  1139. FROM ICSASNDETAIL a
  1140. LEFT JOIN dbo.ICSInventoryLot b ON a.LOTNO = b.LotNO AND a.WorkPoint = b.WorkPoint AND a.Quantity IS NOT NULL
  1141. LEFT JOIN dbo.ICSInventoryLotDetail c ON b.LotNo=c.LotNo AND b.WorkPoint=c.WorkPoint
  1142. GROUP BY c.TransCode,c.TransSequence,a.WorkPoint
  1143. ) II ON h.POCode = II.TransCode AND h.Sequence = II.TransSequence AND h.WorkPoint = II.WorkPoint
  1144. left join (
  1145. select c.TransCode,c.TransSequence,sum(isnull(a.UnqualifiedQuantity,0)) NGQTY,sum(isnull(a.Quantity,0)) YLQTY,a.WorkPoint from ICSINSPECTION a
  1146. left join dbo.ICSInventoryLot b on a.LOTNO=b.LotNO AND a.WorkPoint=b.WorkPoint
  1147. LEFT JOIN dbo.ICSInventoryLotDetail c ON b.LotNo=c.LotNo AND b.WorkPoint=c.WorkPoint
  1148. group by c.TransCode,c.TransSequence,b.EATTRIBUTE2,a.WorkPoint
  1149. having b.EATTRIBUTE2 is null) cc on h.POCode=cc.TransCode and h.Sequence=cc.TransSequence AND h.WorkPoint=cc.WorkPoint
  1150. where 1=1 ";
  1151. if (!string.IsNullOrWhiteSpace(ORDERNO))
  1152. sql += " and a.ORDERNO like '%" + ORDERNO + "%'";
  1153. if (!string.IsNullOrWhiteSpace(STNO))
  1154. sql += " and a.ASNCode like '%" + STNO + "%'";
  1155. if (!string.IsNullOrWhiteSpace(BeginDate))
  1156. sql += " and e.MTIME >= '" + BeginDate + "'";
  1157. if (!string.IsNullOrWhiteSpace(BeginDate))
  1158. sql += " and e.MTIME <= '" + EndDate + "'";
  1159. if (!string.IsNullOrWhiteSpace(VenCode))
  1160. sql += " and e.VenCode like '%" + VenCode + "%'";
  1161. if (!string.IsNullOrWhiteSpace(VenCode))
  1162. sql += " and f.VenName like '%" + VenName + "%'";
  1163. if (!string.IsNullOrWhiteSpace(VenderLotNO))
  1164. sql += " and exc.BatchCode like '%" + VenderLotNO + "%'";
  1165. if (IsReceive == "1")
  1166. {
  1167. sql += " and case when a.DNQuantity is null then '否'else '是'end ='是' ";
  1168. }
  1169. else if (IsReceive == "2")
  1170. {
  1171. sql += " and case when a.DNQuantity is null then '否'else '是'end ='否' ";
  1172. }
  1173. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  1174. {
  1175. sql += " and e.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode + "'";
  1176. }
  1177. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  1178. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1179. return dt;
  1180. }
  1181. public string CheckIsAll(string STNO,string WorkPoint)
  1182. {
  1183. string sql = @"SELECT * FROM dbo.ICSASNDetail WHERE ASNCode='" + STNO + "' AND ISNULL(DNQuantity,0)<>0";
  1184. sql += " and WorkPoint in('"+ WorkPoint + "')";
  1185. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1186. if (dt != null && dt.Rows.Count > 0)
  1187. {
  1188. return "0";
  1189. }
  1190. else
  1191. {
  1192. return "1";
  1193. }
  1194. }
  1195. public DataTable GetLoadShowForColumnByASN(string WorkPoint)
  1196. {
  1197. //string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1198. string sql = @"
  1199. select * from ICSColumnEnable where TableCode='icsasn' and WorkPoint='" + WorkPoint + "' order by cast(code as int) ";
  1200. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1201. return dt;
  1202. }
  1203. public DataTable SelectICSColumnEnableForLotEnablebyASN(string WorkPoint)
  1204. {
  1205. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1206. string sql = @" select ColumnCode from ICSColumnEnable
  1207. where Enable='0' and TableCode='icsasn' and WorkPoint='" + WorkPoint + "' order by cast(Code as int)";
  1208. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1209. return dt;
  1210. }
  1211. #region 送货单退回
  1212. public int UpdateBackRemark(string STNO, string ReturnRemark, string WorkPoint)
  1213. {
  1214. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1215. string sql = string.Empty;
  1216. sql = @"UPDATE ICSASN SET EATTRIBUTE2 = '{0}',STATUS='4' WHERE ASNCode ='{1}'";
  1217. sql = string.Format(sql, ReturnRemark, STNO);
  1218. return SqlHelper.ExecuteNonQuery(sql);
  1219. }
  1220. #endregion
  1221. public string GetICSASNCode(string RoleEnCode, string WorkPoint)
  1222. {
  1223. DataTable dt = new DataTable();
  1224. string Date = DateTime.Now.ToString("yy");
  1225. string Pre = "DN" + RoleEnCode + Date;
  1226. string ASNCode = GetSerialCode(WorkPoint, "ICSASN", "STNO", Pre, 5);
  1227. return ASNCode;
  1228. }
  1229. public DataTable GetLotByContainer(string Value, string WorkPoint)
  1230. {
  1231. Value = Value.TrimEnd(',');
  1232. string sql = @"
  1233. WITH ICSBomALL AS
  1234. (
  1235. SELECT
  1236. ContainerCode AS TContainerCode,
  1237. ContainerCode AS PContainerCode,
  1238. ContainerCode AS ContainerCode,
  1239. ID,
  1240. ContainerID,
  1241. 0 AS [Level],
  1242. CAST(1 AS nvarchar(MAX)) AS SortSeq,
  1243. CAST('00001' AS nvarchar(MAX)) AS Sort
  1244. FROM ICSContainer
  1245. WHERE ContainerCode in ({0})
  1246. UNION ALL
  1247. SELECT
  1248. b.TContainerCode,
  1249. b.ContainerCode AS PContainerCode,
  1250. a.ContainerCode,
  1251. a.ID,
  1252. a.ContainerID,
  1253. b.[Level]+1 AS [Level],
  1254. CAST(b.SortSeq AS nvarchar(MAX))+'.'+CAST(row_number() over (order by a.ContainerCode) AS nvarchar(MAX)) AS SortSeq,
  1255. CAST(b.Sort+'.'+REPLICATE('0',5-len(row_number() over (order by a.ContainerCode)))+CAST(row_number() over (order by a.ContainerCode) AS nvarchar(MAX)) AS nvarchar(MAX)) AS Sort
  1256. FROM
  1257. ICSContainer a
  1258. INNER JOIN ICSBomALL b ON a.ID=b.ContainerID
  1259. )
  1260. SELECT a.ID,
  1261. con.ContainerCode,
  1262. con.ContainerName,
  1263. a.LotNo,
  1264. lotD.TransCode,
  1265. lotD.TransSequence,
  1266. a.InvCode,
  1267. inv.InvName,
  1268. inv.InvStd,
  1269. inv.InvUnit,
  1270. inv.InvDesc,
  1271. a.Quantity AS Quantity,
  1272. a.Quantity*(a.Amount/a.Quantity) AS Amount,
  1273. '' AS WHCode,
  1274. '' AS WHName,
  1275. '' AS LocationCode,
  1276. '' AS LocationName,
  1277. ext.BatchCode AS BatchCode,
  1278. inv.AmountUnit,
  1279. ext.ID AS ExtensionID,
  1280. ext.ProjectCode,
  1281. ext.Version,
  1282. --ext.BatchCode,
  1283. ext.Brand,
  1284. ext.cFree1,
  1285. ext.cFree2,
  1286. ext.cFree3,
  1287. ext.cFree4,
  1288. ext.cFree5,
  1289. ext.cFree6,
  1290. ext.cFree7,
  1291. ext.cFree8,
  1292. ext.cFree9,
  1293. ext.cFree10,
  1294. a.MUSER AS [User],
  1295. a.MTIME AS [MTime],
  1296. a.WorkPoint
  1297. FROM ICSInventoryLot a
  1298. left join dbo.ICSInventoryLotDetail lotD on a.LotNo=lotD.LotNo and a.WorkPoint=lotD.WorkPoint
  1299. INNER JOIN ICSExtension ext ON a.ExtensionID=ext.ID AND a.WorkPoint=ext.WorkPoint
  1300. LEFT JOIN ICSContainerLot conlot ON a.LotNo=conlot.LotNo AND a.WorkPoint=conlot.WorkPoint
  1301. LEFT JOIN ICSContainer con ON conlot.ContainerID=con.ID AND conlot.WorkPoint=con.WorkPoint
  1302. LEFT JOIN ICSBomALL bom ON bom.ID=con.ContainerID
  1303. INNER JOIN ICSInventory inv ON a.InvCode=inv.InvCode AND a.WorkPoint=inv.WorkPoint
  1304. WHERE bom.ContainerCode in ({0}) AND a.WorkPoint='{1}'
  1305. UNION ALL
  1306. SELECT a.ID,
  1307. con.ContainerCode,
  1308. con.ContainerName,
  1309. a.LotNo,
  1310. lotD.TransCode,
  1311. lotD.TransSequence,
  1312. a.InvCode,
  1313. inv.InvName,
  1314. inv.InvStd,
  1315. inv.InvUnit,
  1316. inv.InvDesc,
  1317. a.Quantity AS Quantity,
  1318. a.Quantity*(a.Amount/a.Quantity) AS Amount,
  1319. '' AS WHCode,
  1320. '' AS WHName,
  1321. '' AS LocationCode,
  1322. '' AS LocationName,
  1323. ext.BatchCode AS BatchCode,
  1324. inv.AmountUnit,
  1325. ext.ID AS ExtensionID,
  1326. ext.ProjectCode,
  1327. ext.Version,
  1328. --ext.BatchCode,
  1329. ext.Brand,
  1330. ext.cFree1,
  1331. ext.cFree2,
  1332. ext.cFree3,
  1333. ext.cFree4,
  1334. ext.cFree5,
  1335. ext.cFree6,
  1336. ext.cFree7,
  1337. ext.cFree8,
  1338. ext.cFree9,
  1339. ext.cFree10,
  1340. a.MUSER AS [User],
  1341. a.MTIME AS [MTime],
  1342. a.WorkPoint
  1343. FROM ICSInventoryLot a
  1344. left join dbo.ICSInventoryLotDetail lotD on a.LotNo=lotD.LotNo and a.WorkPoint=lotD.WorkPoint
  1345. INNER JOIN ICSExtension ext ON a.ExtensionID=ext.ID AND a.WorkPoint=ext.WorkPoint
  1346. LEFT JOIN ICSContainerLot conlot ON a.LotNo=conlot.LotNo AND a.WorkPoint=conlot.WorkPoint
  1347. LEFT JOIN ICSContainer con ON conlot.ContainerID=con.ID AND conlot.WorkPoint=con.WorkPoint
  1348. LEFT JOIN ICSBomALL bom ON bom.ID=conlot.ContainerID
  1349. INNER JOIN ICSInventory inv ON a.InvCode=inv.InvCode AND a.WorkPoint=inv.WorkPoint
  1350. WHERE bom.ContainerCode in ({0}) AND a.WorkPoint='{1}'
  1351. ";
  1352. sql = string.Format(sql, Value, WorkPoint);
  1353. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1354. return dt;
  1355. }
  1356. public string SaveICSASNAndDetail(string ICSASN,string WorkPoint)
  1357. {
  1358. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1359. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1360. string msg = "";
  1361. string sql = string.Empty;
  1362. string str1 = "";
  1363. string firstPOCode = null;
  1364. string ID = Guid.NewGuid().ToString();
  1365. string Status;
  1366. #region [获取送货单配置信息,判断状态]
  1367. string F_ItemName = SqlHelper.GetSHDZDSHItemsDetails("ASNAudit", WorkPoint);
  1368. if (!string.IsNullOrWhiteSpace(F_ItemName))
  1369. {
  1370. Status = "2";
  1371. }
  1372. else
  1373. {
  1374. Status = "0";
  1375. }
  1376. #endregion
  1377. string ISManger = SqlHelper.GetSHDZDSHItemsDetails("ASNISManger", WorkPoint);
  1378. JArray res = (JArray)JsonConvert.DeserializeObject(ICSASN);
  1379. foreach (var item in res)
  1380. {
  1381. JObject jo = (JObject)item;
  1382. //创建送货单主表
  1383. sql += @" INSERT INTO dbo.ICSASN
  1384. ( ID ,ASNCode ,VenCode,Status,
  1385. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE1)
  1386. VALUES ( newid(),'{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}')";
  1387. sql = string.Format(sql, jo["ASNCode"].ToString(), jo["VenCode"].ToString(), Status, MUSER, MUSERNAME, jo["WorkPoint"].ToString(), jo["EATTRIBUTE1"].ToString());
  1388. JArray resdetail = (JArray)JsonConvert.DeserializeObject(jo["Detail"].ToString());
  1389. foreach (var detail in resdetail)
  1390. {
  1391. if (!string.IsNullOrWhiteSpace(ISManger))
  1392. {
  1393. string poCode = (string)detail["POCode"];
  1394. if (firstPOCode == null)
  1395. {
  1396. firstPOCode = poCode;
  1397. }
  1398. else if (firstPOCode != poCode)
  1399. {
  1400. msg = "本次送货单条码存在多订单,请分单做送货单!!";
  1401. break;
  1402. }
  1403. }
  1404. //创建送货单子表
  1405. JObject det = (JObject)detail;
  1406. sql += @" INSERT INTO dbo.ICSASNDetail
  1407. ( ID ,ASNCode ,Sequence,LotNo,Quantity,Amount,DNQuantity,DNAmount,
  1408. MUSER ,MUSERName ,MTIME,WorkPoint)
  1409. VALUES ( newid(),'{0}','{1}','{2}','{3}','{4}',0,0,'{5}','{6}',getdate(),'{7}')";
  1410. sql = string.Format(sql, jo["ASNCode"].ToString(), det["Sequence"].ToString(), det["LotNo"].ToString(), det["Quantity"].ToString(), det["Amount"].ToString(), MUSER, MUSERNAME, jo["WorkPoint"].ToString());
  1411. }
  1412. }
  1413. try
  1414. {
  1415. if (string.IsNullOrWhiteSpace(msg))
  1416. {
  1417. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  1418. {
  1419. }
  1420. else
  1421. {
  1422. msg = "新增失败";
  1423. }
  1424. }
  1425. }
  1426. catch (Exception ex)
  1427. {
  1428. msg = ex.Message;
  1429. }
  1430. return msg;
  1431. }
  1432. public string UpdateICSASNAndDetail(string ICSASN)
  1433. {
  1434. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1435. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1436. string msg = "";
  1437. string sql = string.Empty;
  1438. string idss = "";
  1439. string Code = "";
  1440. JArray res = (JArray)JsonConvert.DeserializeObject(ICSASN);
  1441. foreach (var item in res)
  1442. {
  1443. JObject jo = (JObject)item;
  1444. JArray resdetail = (JArray)JsonConvert.DeserializeObject(jo["Detail"].ToString());
  1445. foreach (var detail in resdetail)
  1446. {
  1447. Code = jo["ASNCode"].ToString();
  1448. JObject det = (JObject)detail;
  1449. //sql += @" update ICSASN set Status='1' where ASNCode='{1}'";
  1450. if (string.IsNullOrWhiteSpace(det["ZJID"].ToString()))
  1451. {
  1452. string DetailID = Guid.NewGuid().ToString();
  1453. sql += @"INSERT INTO dbo.ICSASNDetail
  1454. ( ID ,ASNCode ,Sequence,LotNo,Quantity,Amount,DNQuantity,DNAmount,
  1455. MUSER ,MUSERName ,MTIME,WorkPoint)
  1456. VALUES ( '{0}','{1}','{2}','{3}','{4}','{5}',0,0,'{6}','{7}',getdate(),'{8}')";
  1457. sql = string.Format(sql, DetailID, jo["ASNCode"].ToString(), det["Sequence"].ToString(), det["LotNo"].ToString(), det["Quantity"].ToString(),
  1458. det["Amount"].ToString(), MUSER, MUSERNAME, jo["WorkPoint"].ToString());
  1459. idss += "'" + DetailID + "',";
  1460. }
  1461. else
  1462. {
  1463. idss += "'" + det["ZJID"].ToString() + "',";
  1464. }
  1465. }
  1466. }
  1467. sql += @"DELETE ICSASNDetail where ASNCode ='{0}' and id not in ({1})";
  1468. sql = string.Format(sql, Code, idss.Substring(0, idss.Length - 1));
  1469. try
  1470. {
  1471. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  1472. {
  1473. }
  1474. else
  1475. {
  1476. msg = "修改失败";
  1477. }
  1478. }
  1479. catch (Exception ex)
  1480. {
  1481. msg = ex.Message;
  1482. }
  1483. return msg;
  1484. }
  1485. public DataTable GetGridJsonUpload(string queryJson,string STNO, ref Pagination jqgridparam, string WorkPoint)
  1486. {
  1487. DataTable dt = new DataTable();
  1488. var queryParam = queryJson.ToJObject();
  1489. List<DbParameter> parameter = new List<DbParameter>();
  1490. string sql = @" select b.InvCode,d.InvName ,b.BatchCode,b.BatchCodeNum,a.VenCode,e.VenName,c.FileName,c.CerateTime from dbo.ICSASN a
  1491. left join (select ASNCode,InvCode ,BatchCode,a.WorkPoint,sum(a.Quantity) as BatchCodeNum from dbo.ICSASNDetail a
  1492. left join dbo.ICSInventoryLot b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  1493. left join dbo.ICSExtension c on b.ExtensionID=c.ID and b.WorkPoint=c.WorkPoint
  1494. group by a.ASNCode,b.InvCode,c.BatchCode,a.WorkPoint)b on a.ASNCode=b.ASNCode and a.WorkPoint=b.WorkPoint
  1495. left join ICSASNShippingReport c on a.ASNCode=c.ASNCode and b.InvCode=c.InvCode and b.BatchCode=c.BatchCode and c.IsEable='1'
  1496. left join dbo.ICSInventory d on b.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  1497. left join dbo.ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  1498. where a.ASNCode='{0}'
  1499. ";
  1500. sql = string.Format(sql,STNO);
  1501. //if (!string.IsNullOrWhiteSpace(queryJson))
  1502. //{
  1503. // if (!string.IsNullOrWhiteSpace(queryParam["CartonNo"].ToString()))
  1504. // {
  1505. // sql += " and a.ContainerID like '%" + queryParam["CartonNo"].ToString() + "%' ";
  1506. // }
  1507. // if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  1508. // {
  1509. // sql += " and a.EATTRIBUTE8 = '" + queryParam["VenCode"].ToString() + "' ";
  1510. // }
  1511. // if (!string.IsNullOrWhiteSpace(queryParam["Type"].ToString()))
  1512. // {
  1513. // sql += " and a.ContainerType = '" + queryParam["Type"].ToString() + "' ";
  1514. // }
  1515. //}
  1516. //if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1517. //{
  1518. // sql += " and a.WorkPoint='" + WorkPoint + "'";
  1519. //}
  1520. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1521. }
  1522. public DataTable GetGridJsonUpload2(string queryJson, string STNO, ref Pagination jqgridparam, string WorkPoint)
  1523. {
  1524. DataTable dt = new DataTable();
  1525. var queryParam = queryJson.ToJObject();
  1526. List<DbParameter> parameter = new List<DbParameter>();
  1527. string sql = @" select b.InvCode,d.InvName ,b.BatchCode,b.BatchCodeNum,a.VenCode,e.VenName,c.FileName,c.CerateTime from dbo.ICSOASN a
  1528. left join (select OASNCode,InvCode ,BatchCode,a.WorkPoint,sum(a.Quantity) as BatchCodeNum from dbo.ICSOASNDetail a
  1529. left join dbo.ICSInventoryLot b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  1530. left join dbo.ICSExtension c on b.ExtensionID=c.ID and b.WorkPoint=c.WorkPoint
  1531. group by a.OASNCode,b.InvCode,c.BatchCode,a.WorkPoint)b on a.OASNCode=b.OASNCode and a.WorkPoint=b.WorkPoint
  1532. left join ICSASNShippingReport c on a.OASNCode=c.ASNCode and b.InvCode=c.InvCode and b.BatchCode=c.BatchCode and c.IsEable='1'
  1533. left join dbo.ICSInventory d on b.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  1534. left join dbo.ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  1535. where a.OASNCode='{0}'
  1536. ";
  1537. sql = string.Format(sql, STNO);
  1538. //if (!string.IsNullOrWhiteSpace(queryJson))
  1539. //{
  1540. // if (!string.IsNullOrWhiteSpace(queryParam["CartonNo"].ToString()))
  1541. // {
  1542. // sql += " and a.ContainerID like '%" + queryParam["CartonNo"].ToString() + "%' ";
  1543. // }
  1544. // if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  1545. // {
  1546. // sql += " and a.EATTRIBUTE8 = '" + queryParam["VenCode"].ToString() + "' ";
  1547. // }
  1548. // if (!string.IsNullOrWhiteSpace(queryParam["Type"].ToString()))
  1549. // {
  1550. // sql += " and a.ContainerType = '" + queryParam["Type"].ToString() + "' ";
  1551. // }
  1552. //}
  1553. //if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1554. //{
  1555. // sql += " and a.WorkPoint='" + WorkPoint + "'";
  1556. //}
  1557. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1558. }
  1559. public string UpLoadFile(string STNO,string InvCode, string BatchCode, string VenCode, string BatchCodeNum, string FileName, string PathName)
  1560. {
  1561. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1562. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1563. string msg = "";
  1564. string sql = string.Empty;
  1565. sql += @"update ICSASNShippingReport set IsEable='0' where ASNCode='{0}' and InvCode='{1}' and BatchCode='{2}' and EATTRIBUTE1='1'";
  1566. sql += @"
  1567. INSERT INTO ICSASNShippingReport
  1568. ( ID, ASNCode, InvCode, BatchCode, BatchCodeQty, VenCode, FileName, FilePath, CerateTime, CreateUser,IsEable,EATTRIBUTE1)
  1569. VALUES ( newid(),'{0}','{1}','{2}','{3}','{4}','{5}','{6}',getdate(),'{7}','1','1')";
  1570. sql = string.Format(sql, STNO, InvCode, BatchCode, BatchCodeNum, VenCode, FileName, PathName, MUSER);
  1571. try
  1572. {
  1573. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  1574. {
  1575. }
  1576. else
  1577. {
  1578. msg = "上传失败";
  1579. }
  1580. }
  1581. catch (Exception ex)
  1582. {
  1583. msg = ex.Message;
  1584. }
  1585. return msg;
  1586. }
  1587. public string UpLoadFile2(string STNO, string InvCode, string BatchCode, string VenCode, string BatchCodeNum, string FileName, string PathName)
  1588. {
  1589. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1590. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1591. string msg = "";
  1592. string sql = string.Empty;
  1593. sql += @"update ICSASNShippingReport set IsEable='0' where ASNCode='{0}' and InvCode='{1}' and BatchCode='{2}' and EATTRIBUTE1='2'";
  1594. sql += @"
  1595. INSERT INTO ICSASNShippingReport
  1596. ( ID, ASNCode, InvCode, BatchCode, BatchCodeQty, VenCode, FileName, FilePath, CerateTime, CreateUser,IsEable,EATTRIBUTE1)
  1597. VALUES ( newid(),'{0}','{1}','{2}','{3}','{4}','{5}','{6}',getdate(),'{7}','1','2')";
  1598. sql = string.Format(sql, STNO, InvCode, BatchCode, BatchCodeNum, VenCode, FileName, PathName, MUSER);
  1599. try
  1600. {
  1601. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  1602. {
  1603. }
  1604. else
  1605. {
  1606. msg = "上传失败";
  1607. }
  1608. }
  1609. catch (Exception ex)
  1610. {
  1611. msg = ex.Message;
  1612. }
  1613. return msg;
  1614. }
  1615. public string CheckIsASNAudit()
  1616. {
  1617. string F_ItemName = SqlHelper.GetSHDZDSHItemsDetails("ASNAudit","");
  1618. if (!string.IsNullOrWhiteSpace(F_ItemName))
  1619. {
  1620. return "0";
  1621. }
  1622. else
  1623. {
  1624. return "1";
  1625. }
  1626. }
  1627. public bool ISEableReport(string Code ,string VenCode, string Type)
  1628. {
  1629. bool ISEableReport = true;
  1630. string sqlSeach = "";
  1631. string sql = @"SELECT * FROM Sys_SRM_ItemsDetail a
  1632. LEFT JOIN Sys_SRM_Items b ON a.F_ItemId = b.F_Id
  1633. WHERE b.F_EnCode = 'ANSReportEable' and a.F_EnabledMark = '1' and F_ItemCode = '"+VenCode+"'";
  1634. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1635. if (dt.Rows.Count >0)
  1636. {
  1637. if (Type == "1")
  1638. {
  1639. sqlSeach = @" select b.InvCode,d.InvName ,b.BatchCode,b.BatchCodeNum,a.VenCode,e.VenName,c.FileName,c.CerateTime from dbo.ICSASN a
  1640. left join (select ASNCode,InvCode ,BatchCode,a.WorkPoint,sum(a.Quantity) as BatchCodeNum from dbo.ICSASNDetail a
  1641. left join dbo.ICSInventoryLot b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  1642. left join dbo.ICSExtension c on b.ExtensionID=c.ID and b.WorkPoint=c.WorkPoint
  1643. group by a.ASNCode,b.InvCode,c.BatchCode,a.WorkPoint)b on a.ASNCode=b.ASNCode and a.WorkPoint=b.WorkPoint
  1644. left join ICSASNShippingReport c on a.ASNCode=c.ASNCode and b.InvCode=c.InvCode and b.BatchCode=c.BatchCode and c.IsEable='1'
  1645. left join dbo.ICSInventory d on b.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  1646. left join dbo.ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  1647. where a.ASNCode='" + Code + "' ";
  1648. sqlSeach += @" select * from ICSASNShippingReport where ASNCode='" + Code + "' and IsEable='1' and EATTRIBUTE1='1'";
  1649. }
  1650. else
  1651. {
  1652. sqlSeach = @" select b.InvCode,d.InvName ,b.BatchCode,b.BatchCodeNum,a.VenCode,e.VenName,c.FileName,c.CerateTime from dbo.ICSOASN a
  1653. left join (select OASNCode,InvCode ,BatchCode,a.WorkPoint,sum(a.Quantity) as BatchCodeNum from dbo.ICSOASNDetail a
  1654. left join dbo.ICSInventoryLot b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  1655. left join dbo.ICSExtension c on b.ExtensionID=c.ID and b.WorkPoint=c.WorkPoint
  1656. group by a.OASNCode,b.InvCode,c.BatchCode,a.WorkPoint)b on a.OASNCode=b.OASNCode and a.WorkPoint=b.WorkPoint
  1657. left join ICSASNShippingReport c on a.OASNCode=c.ASNCode and b.InvCode=c.InvCode and b.BatchCode=c.BatchCode and c.IsEable='1'
  1658. left join dbo.ICSInventory d on b.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  1659. left join dbo.ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  1660. where a.OASNCode='" + Code + "' ";
  1661. sqlSeach += @" select * from ICSASNShippingReport where ASNCode='" + Code + "' and IsEable='1' and EATTRIBUTE1='2'";
  1662. }
  1663. DataSet ds = SqlHelper.GetDataSetBySql(sqlSeach);
  1664. if (ds.Tables[0].Rows.Count!= ds.Tables[1].Rows.Count)
  1665. {
  1666. ISEableReport = false;
  1667. }
  1668. }
  1669. return ISEableReport;
  1670. }
  1671. /// <summary>
  1672. /// 获取组织号信息对应认证资料
  1673. /// </summary>
  1674. /// <returns></returns>
  1675. public DataTable GetVendorBYQcc()
  1676. {
  1677. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1678. string role = NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode;
  1679. string sql = @" select '' as WorkPointCode,'' as WorkPointName
  1680. union all
  1681. SELECT distinct (b.WorkPointCode),b.WorkPointName FROM Sys_SRM_User a
  1682. LEFT JOIN Sys_WorkPoint b ON a.F_Location=b.WorkPointCode where b.WorkPointCode is not null";
  1683. //if (role != "admin")
  1684. //{
  1685. // sql += " and a.F_Location=" + WorkPoint + "";
  1686. //}
  1687. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1688. return dt;
  1689. }
  1690. public string IsASNByCarton()
  1691. {
  1692. string F_ItemName = SqlHelper.GetSHDZDSHItemsDetails("ASNByCarton", "");
  1693. if (!string.IsNullOrWhiteSpace(F_ItemName))
  1694. {
  1695. return "0";
  1696. }
  1697. else
  1698. {
  1699. return "1";
  1700. }
  1701. }
  1702. }
  1703. }