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

527 lines
25 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  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.SRM
  18. {
  19. public class ASNMangeWeiWaiApp : RepositoryFactory<ICSVendor>
  20. {
  21. public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam)
  22. {
  23. DataTable dt = new DataTable();
  24. var queryParam = queryJson.ToJObject();
  25. List<DbParameter> parameter = new List<DbParameter>();
  26. string sql = @"SELECT distinct a.ID, a.OASNCode,a.VenCode,b.VenName AS VENDORNAME,w.WorkPointName,w.WorkPointCode,a.MUSERName,
  27. a.MTIME,CONVERT(NVARCHAR(50),a.PlanArriveDate,23) as EXPARRIVALDATE,
  28. CASE WHEN c.ODNCode IS NULL THEN a.Status ELSE '3' END AS STATUS
  29. FROM dbo.ICSOASN a
  30. LEFT JOIN dbo.ICSVendor b ON a.VenCode=b.VenCode and a.WOrkPoint=b.WorkPoint
  31. LEFT JOIN ICSODeliveryNotice c ON a.OASNCode = c.OASNCode
  32. LEFT JOIN Sys_WorkPoint w on a.WorkPoint=w.WorkPointCode
  33. WHERE 1=1";
  34. if (!string.IsNullOrWhiteSpace(queryJson))
  35. {
  36. if (!string.IsNullOrWhiteSpace(queryParam["STNO"].ToString()))
  37. {
  38. sql += " and a.OASNCode like '%" + queryParam["STNO"].ToString() + "%' ";
  39. }
  40. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  41. {
  42. sql += " and VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  43. }
  44. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  45. {
  46. sql += " and b.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  47. }
  48. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  49. {
  50. sql += " and a.MTIME >= '" + queryParam["TimeFrom"].ToString() + "' ";
  51. }
  52. if (!string.IsNullOrWhiteSpace(queryParam["TimeTo"].ToString()))
  53. {
  54. sql += " and a.MTIME <= '" + queryParam["TimeTo"].ToString() + "' ";
  55. }
  56. }
  57. //多站点
  58. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  59. {
  60. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  61. }
  62. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  63. {
  64. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  65. }
  66. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  67. }
  68. /// <summary>
  69. /// 子表查询
  70. /// </summary>
  71. /// <param name="queryJson"></param>
  72. /// <param name="jqgridparam"></param>
  73. /// <returns></returns>
  74. public DataTable GetSubGridJson(string STNO, ref Pagination jqgridparam,string WorkPoint)
  75. {
  76. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  77. DataTable dt = new DataTable();
  78. List<DbParameter> parameter = new List<DbParameter>();
  79. string sql = @" SELECT a.ID, a.LotNo,d.InvCode,d.InvName,c.ContainerID,b.Quantity,
  80. a.OASNCode,f.BatchCode,f.ProjectCode,m.TransCode,m.TransSequence,d.InvDesc,d.ClassName,d.InvStd,w.WorkPointName,w.WorkPointCode
  81. FROM dbo.ICSOASNDetail a
  82. LEFT JOIN dbo.ICSInventoryLot b ON a.LotNo =b.LotNo AND a.WorkPoint=b.WorkPoint
  83. left join ICSExtension f on b.ExtensionID=f.ID and b.WorkPoint=f.WorkPoint
  84. left join ICSInventoryLotDetail m on b.LotNo=m.LotNo and b.WorkPoint=m.WorkPoint
  85. LEFT JOIN dbo.ICSContainerLot c ON b.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  86. LEFT JOIN dbo.ICSInventory d ON b.InvCode=d.InvCode AND a.WorkPoint=d.WorkPoint
  87. LEFT JOIN dbo.ICSOutsourcingOrder e ON m.TransCode=e.OOCode AND m.TransSequence=e.Sequence AND a.WorkPoint=e.WorkPoint
  88. LEFT JOIN Sys_WorkPoint w on e.WorkPoint=w.WorkPointCode
  89. WHERE b.TYPE='7' AND a.OASNCode='" + STNO + "' and a.WorkPoint='" + WorkPoint + "' ";
  90. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  91. }
  92. /// <summary>
  93. /// 删除送货单
  94. /// </summary>
  95. /// <param name="keyValue"></param>
  96. /// <returns></returns>
  97. public string DeleteSTNO(string keyValue,string WorkPoint)
  98. {
  99. // string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  100. string msg = "";
  101. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  102. string sql = string.Empty;
  103. sql = "SELECT OASNCode FROM dbo.ICSODeliveryNotice WHERE OASNCode IN (" + keyValue.TrimEnd(',') + ")";
  104. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  105. foreach (DataRow dr in dt.Rows)
  106. {
  107. string STNO = dr["STNO"].ToString();
  108. if (!string.IsNullOrEmpty(STNO))
  109. {
  110. msg += "送货单号:" + STNO + "已生成到货单,无法删除!";
  111. }
  112. }
  113. if (string.IsNullOrEmpty(msg))
  114. {
  115. sql = string.Format(@" DELETE FROM dbo.ICSOASNDetail WHERE OASNCode IN ({0}) and WorkPoint in ('{1}')
  116. DELETE FROM dbo.ICSOASN WHERE OASNCode IN ({0}) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  117. SqlHelper.ExecuteNonQuery(sql);
  118. }
  119. return msg;
  120. }
  121. public string CheckIsAll(string STNO)
  122. {
  123. string sql = @"SELECT * FROM dbo.ICSOASNDetail WHERE OASNCode='" + STNO + "' AND ISNULL(ODNQuantity,0)<>0";
  124. sql += " and WorkPoint in(" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  125. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  126. if (dt != null && dt.Rows.Count > 0)
  127. {
  128. return "0";
  129. }
  130. else
  131. {
  132. return "1";
  133. }
  134. }
  135. public string GetSTNO(string WorkPoint)
  136. {
  137. string STNO = string.Empty;
  138. string VenCode = NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode;
  139. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  140. if (!string.IsNullOrEmpty(VenCode))
  141. {
  142. string Date = DateTime.Now.ToString("yy");
  143. string Pre = "DN" + VenCode + Date;
  144. STNO = GetSerialCode(WorkPoint, "ICSASN", "STNO", Pre, 5);
  145. }
  146. if (!string.IsNullOrEmpty(STNO))
  147. {
  148. string sql = string.Empty;
  149. string configSql = string.Empty;
  150. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  151. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  152. string Status = "0";
  153. #region [获取送货单配置信息,判断状态]
  154. configSql = @"SELECT a.F_ItemCode,a.F_ItemName FROM Sys_SRM_ItemsDetail a
  155. LEFT JOIN Sys_SRM_Items b ON a.F_ItemId = b.F_Id
  156. WHERE b.F_EnCode = 'DeliveryNoteConfig'";
  157. DataTable dt = SqlHelper.GetDataTableBySql(configSql);
  158. foreach (DataRow item in dt.Rows)
  159. {
  160. if (item["F_ItemName"].ToString().Equals("IsSub"))
  161. {
  162. Status = item["F_ItemCode"].ToString();
  163. }
  164. else if (item["F_ItemName"].ToString().Equals("IsEAV"))
  165. {
  166. if (Status == "1" && item["F_ItemCode"].ToString() == "3")
  167. Status = "2";
  168. }
  169. }
  170. #endregion
  171. sql = @"INSERT INTO dbo.ICSOASN( ID ,MTIME,MUSER,MUSERNAME ,OASNCode ,VenCode ,WorkPoint,Status)
  172. VALUES (NEWID(),GETDATE(),'" + VenCode + "','" + MUSERNAME + "','" + STNO + "','" + VenCode + "','" + WorkPoint + "','" + Status + "')";
  173. try
  174. {
  175. SqlHelper.ExecuteNonQuery(sql);
  176. }
  177. catch (Exception ex)
  178. {
  179. throw new Exception(ex.Message);
  180. }
  181. }
  182. return STNO;
  183. }
  184. public string GetSerialCode(string workPointCode, string tbName, string colName, string Pre, int numLen)
  185. {
  186. string sql = "EXEC Addins_GetSerialCode '{0}','{1}','{2}','{3}',{4}";
  187. sql = string.Format(sql, new object[] { workPointCode, tbName, colName, Pre, numLen });
  188. return DbHelper.ExecuteScalar(CommandType.Text, sql).ToString();
  189. }
  190. public string GetSTNOByPerson(string VenCode, string ExpArrivalDate, string WorkPoint)
  191. {
  192. string STNO = string.Empty;
  193. string Date = DateTime.Now.ToString("yy");
  194. string Pre = "DN" + VenCode + Date;
  195. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  196. STNO = GetSerialCode(WorkPoint, "ICSASN", "STNO", Pre, 5);
  197. if (!string.IsNullOrEmpty(STNO))
  198. {
  199. string sql = string.Empty;
  200. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  201. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  202. sql = @" INSERT INTO dbo.ICSOASN
  203. ( ID ,OASNCode,VenCode ,
  204. Status ,MUSER ,MUSERName ,MTIME,WorkPoint)
  205. VALUES (NEWID(),'" + STNO + "','" + VenCode + "','2','" + MUSER + "','" + MUSERNAME + "',getdate(),'" + WorkPoint + "')";
  206. try
  207. {
  208. SqlHelper.ExecuteNonQuery(sql);
  209. }
  210. catch (Exception ex)
  211. {
  212. throw new Exception(ex.Message);
  213. }
  214. }
  215. return STNO;
  216. }
  217. /// <summary>
  218. /// 获取供应商列表
  219. /// </summary>
  220. /// <returns></returns>
  221. public DataTable GetVendor()
  222. {
  223. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  224. string sql = @"select '' as F_VenCode,'' as cVenName
  225. union all
  226. SELECT DISTINCT a.F_VenCode,isnull(b.VenName,'') as cVenName FROM dbo.Sys_SRM_User a
  227. LEFT JOIN dbo.ICSVendor b ON a.F_VenCode=b.VenCode and a.F_Location=b.WorkPoint
  228. WHERE a.F_VenCode IS NOT NULL AND a.F_VenCode <>''";
  229. string role = NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode;
  230. if (role != "admin")
  231. {
  232. sql += " and b.WorkPoint=" + WorkPoint.TrimEnd(',') + "";
  233. }
  234. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  235. return dt;
  236. }
  237. /// <summary>
  238. /// 获取组织号信息
  239. /// </summary>
  240. /// <returns></returns>
  241. public DataTable GetVendors()
  242. {
  243. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  244. string role = NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode;
  245. string sql = @" select '' as WorkPointCode,'' as WorkPointName
  246. union all
  247. SELECT distinct (b.WorkPointCode),b.WorkPointName FROM Sys_SRM_User a
  248. LEFT JOIN Sys_WorkPoint b ON a.F_Location=b.WorkPointCode where b.WorkPointCode is not null";
  249. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  250. return dt;
  251. }
  252. /// <summary>
  253. /// 选择条码信息
  254. /// </summary>
  255. /// <param name="queryJson"></param>
  256. /// <param name="jqgridparam"></param>
  257. /// <returns></returns>
  258. public DataTable GetSubGridJson_Add(string queryJson, ref Pagination jqgridparam)
  259. {
  260. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  261. DataTable dt = new DataTable();
  262. var queryParam = queryJson.ToJObject();
  263. List<DbParameter> parameter = new List<DbParameter>();
  264. string sql = @"SELECT a.ID, a.LOTNO,d.InvCode,d.InvName,c.ContainerID,b.Quantity,
  265. a.OASNCode,m.BatchCode,f.OOCode,f.Sequence,d.InvDesc,d.ClassName,d.InvStd
  266. FROM dbo.ICSOASNDetail a
  267. LEFT JOIN dbo.ICSInventoryLot b ON a.LotNo =b.LotNo AND a.WorkPoint=b.WorkPoint
  268. left join ICSExtension m on b.ExtensionID=m.ID and b.WorkPoint=m.WorkPoint
  269. LEFT JOIN dbo.ICSContainerLot c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  270. LEFT JOIN dbo.ICSInventory d ON b.InvCode=d.InvCode AND a.WorkPoint=d.WorkPoint
  271. left join ICSInventoryLotDetail e on b.LotNo=e.LotNo and b.WorkPoint=e.WorkPoint
  272. LEFT JOIN dbo.ICSOutsourcingOrder f ON e.TransCode=f.OOCode AND e.TransSequence=f.Sequence
  273. WHERE 1=1
  274. AND a.OASNCode='" + queryParam["STNO"].ToString() + "' and a.WorkPoint='" + queryParam["WorkPoint"].ToString() + "' ";
  275. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  276. }
  277. /// <summary>
  278. /// 选择条码
  279. /// </summary>
  280. /// <returns></returns>
  281. public DataTable GetInfoBySelectItemCode(string queryJson, ref Pagination jqgridparam)
  282. {
  283. var queryParam = queryJson.ToJObject();
  284. List<DbParameter> parameter = new List<DbParameter>();
  285. string sql = @" SELECT a.ID, a.LotNO,d.InvCode,d.InvName,a.Quantity,a.TYPE,
  286. g.ProjectCode,e.OOCode,e.Sequence,d.InvDesc,d.ClassName,d.INVSTD,g.BatchCode,a.Amount
  287. FROM dbo.ICSInventoryLot a
  288. left join ICSExtension g on a.ExtensionID=g.ID and a.WorkPoint=g.WorkPoint
  289. LEFT JOIN dbo.ICSContainerLot b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  290. LEFT JOIN dbo.ICSOASNDetail c ON a.LotNO=c.LotNO AND a.WorkPoint=c.WorkPoint
  291. LEFT JOIN dbo.ICSInventory d ON a.InvCode=d.InvCode AND a.WorkPoint=d.WorkPoint
  292. left join ICSInventoryLotDetail f on a.LotNo=f.LotNo and a.WorkPoint=f.WorkPoint
  293. LEFT JOIN dbo.ICSOutsourcingOrder e ON f.TransCode=e.OOCode AND f.TransSequence=e.Sequence
  294. WHERE c.LotNo is null and a.LotNO NOT IN (
  295. SELECT LotNo FROM dbo.ICSContainerLot X WHERE x.WorkPoint=a.WorkPoint)";
  296. //AND a.TYPE='采购'";
  297. if (!string.IsNullOrEmpty(queryJson))
  298. {
  299. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  300. sql += " and d.InvCode like '%" + queryParam["InvCode"].ToString() + "%'";
  301. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  302. sql += " and d.InvName like '%" + queryParam["InvName"].ToString() + "%'";
  303. if (!string.IsNullOrWhiteSpace(queryParam["OrderNo"].ToString()))
  304. sql += " and g.ProjectCode like '%" + queryParam["OrderNo"].ToString() + "%'";
  305. if (!string.IsNullOrWhiteSpace(queryParam["TransNo"].ToString()))
  306. sql += " and e.OOCode like '%" + queryParam["TransNo"].ToString() + "%'";
  307. if (!string.IsNullOrWhiteSpace(queryParam["TransLine"].ToString()))
  308. sql += " and e.Sequence like '%" + queryParam["TransLine"].ToString() + "%'";
  309. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  310. sql += " and e.VenCode like '%" + queryParam["VenCode"].ToString() + "%'";
  311. }
  312. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  313. sql += " and a.WorkPoint=" + WorkPoint + "";
  314. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  315. }
  316. public string CheckSTNO_ItemCode(string JsonData, string STNO, string WorkPoint)
  317. {
  318. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  319. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  320. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  321. string msg = "";
  322. string sql = string.Empty;
  323. sql = @"
  324. INSERT INTO dbo.ICSOASNDetail
  325. ( ID ,OASNCode ,Sequence ,MUSER ,
  326. LotNo , Quantity ,Amount ,ODNQuantity ,ODNAmount ,MUSERName,
  327. MTIME,WorkPoint)
  328. SELECT NEWID(),'" + STNO + "',ROW_NUMBER()over(partition by LotNO order by mtime desc),'" + MUSER + @"',
  329. a.LotNO,a.Quantity,a.Quantity*Amount as Amount,0,0,'" + MUSERNAME + @"',
  330. getdate()," + WorkPoint.TrimEnd(',') + @"
  331. FROM dbo.ICSInventoryLot a
  332. WHERE a.ID IN (" + JsonData.TrimEnd(',') + ")";
  333. try
  334. {
  335. SqlHelper.ExecuteNonQuery(sql);
  336. }
  337. catch (Exception ex)
  338. {
  339. throw new Exception(ex.Message);
  340. }
  341. return msg;
  342. }
  343. /// <summary>
  344. /// 获取箱号主表信息
  345. /// </summary>
  346. /// <param name="queryJson"></param>
  347. /// <param name="jqgridparam"></param>
  348. /// <returns></returns>
  349. public DataTable ASNCartonGetCartonGridJson(string queryJson, ref Pagination jqgridparam, string WorkPoint)
  350. {
  351. DataTable dt = new DataTable();
  352. var queryParam = queryJson.ToJObject();
  353. List<DbParameter> parameter = new List<DbParameter>();
  354. string sql = @" SELECT a.ID,a.ContainerID,
  355. a.MUSERName,a.MTIME
  356. FROM dbo.ICSContainerLot a
  357. LEFT JOIN
  358. (SELECT COUNT(x.LotNO) AS LotNoCount,ContainerID,x.WorkPoint FROM dbo.ICSContainerLot x
  359. LEFT JOIN dbo.ICSInventoryLot y ON x.LotNO=y.LotNO AND x.WorkPoint=y.WorkPoint
  360. GROUP BY ContainerID,x.WorkPoint) b ON a.ContainerID=b.ContainerID AND a.WorkPoint=b.WorkPoint
  361. WHERE b.LotNoCount>0
  362. AND a.ContainerID not IN
  363. (SELECT b.ContainerID FROM dbo.ICSOASNDetail a inner JOIN dbo.ICSContainerLot b ON a.LotNO =b.LotNO AND a.WorkPoint=b.WorkPoint)
  364. ";
  365. if (!string.IsNullOrWhiteSpace(queryJson))
  366. {
  367. if (!string.IsNullOrWhiteSpace(queryParam["CartonNo"].ToString()))
  368. {
  369. sql += " and a.ContainerID like '%" + queryParam["CartonNo"].ToString() + "%' ";
  370. }
  371. }
  372. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  373. {
  374. sql += " and a.WorkPoint='" + WorkPoint + "'";
  375. }
  376. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  377. }
  378. /// <summary>
  379. /// 箱号子表查询
  380. /// </summary>
  381. /// <param name="CartonNo"></param>
  382. /// <param name="jqgridparam"></param>
  383. /// <returns></returns>
  384. public DataTable GetCartonSubGridJson(string CartonNo, ref Pagination jqgridparam)
  385. {
  386. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  387. DataTable dt = new DataTable();
  388. //var queryParam = queryJson.ToJObject();
  389. List<DbParameter> parameter = new List<DbParameter>();
  390. string sql = @"select a.LotNo,a.ID,c.InvCode,d.InvName,f.TransCode,f.TransSequence,d.InvDesc,d.InvStd
  391. from ICSContainerLot a
  392. left join ICSContainer b on a.ContainerID=b.ID and a.WorkPoint=b.WorkPoint
  393. left join ICSInventoryLot c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  394. left join ICSInventory d on c.InvCode=d.InvCode and c.WorkPoint=d.WorkPoint
  395. left join ICSInventoryLotDetail f on c.LotNo=f.LotNo and f.WorkPoint=c.WorkPoint
  396. left join ICSOutsourcingOrder e on f.TransCode=e.OOCode and f.TransSequence=e.Sequence and f.WorkPoint=e.WorkPoint
  397. WHERE a.ContainerID='" + CartonNo + "' and a.WorkPoint='" + WorkPoint + "'";
  398. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  399. }
  400. public string CheckSTNO_CartonNo(string JsonData, string STNO, string WorkPoint)
  401. {
  402. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  403. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  404. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  405. string msg = "";
  406. string sql = string.Empty;
  407. sql = @"INSERT INTO dbo.ICSOASNDetail
  408. ( ID ,OASNCode ,Sequence ,MUSER ,
  409. LotNo , Quantity ,Amount ,ODNQuantity ,ODNAmount ,MUSERName,
  410. MTIME,WorkPoint)
  411. SELECT NEWID(),'" + STNO + "',row_number(),'" + MUSER + @"',
  412. a.LotNO,b.Quantity,b.Quantity*b.Amount as Amount,0,0,'" + MUSERNAME + @"',
  413. ,getdate()," + WorkPoint.TrimEnd(',') + @"
  414. FROM dbo.ICSContainerLot a
  415. left JOIN dbo.ICSInventoryLot b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  416. LEFT JOIN dbo.ICSInventory c ON c.InvCode=b.InvCode AND a.WorkPoint=c.WorkPoint
  417. WHERE a.ContainerID IN (" + JsonData.TrimEnd(',') + ") and a.WorkPoint='" + WorkPoint + "'";
  418. try
  419. {
  420. SqlHelper.ExecuteNonQuery(sql);
  421. }
  422. catch (Exception ex)
  423. {
  424. throw new Exception(ex.Message);
  425. }
  426. return msg;
  427. }
  428. /// <summary>
  429. /// 删除送货单内的条码或者箱号
  430. /// </summary>
  431. /// <param name="keyValue"></param>
  432. /// <returns></returns>
  433. public string DeleteInfo(string keyValue,string WorkPoint)
  434. {
  435. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  436. string msg = "";
  437. string sql = string.Format(@" DELETE FROM dbo.ICSOASNDetail
  438. WHERE ID IN (
  439. SELECT ID FROM dbo.ICSOASNDetail WHERE LotNo IN (
  440. SELECT LotNo FROM dbo.ICSContainerLot WHERE ContainerID IN (
  441. SELECT a.ContainerID
  442. FROM dbo.ICSContainerLot a
  443. LEFT JOIN dbo.ICSOASNDetail b ON a.LotNO=b.LotNo AND a.WorkPoint=b.WorkPoint
  444. WHERE b.ID IN ({0}) AND a.WorkPoint='{1}')
  445. ))", keyValue.TrimEnd(','), WorkPoint);
  446. SqlHelper.ExecuteNonQuery(sql);
  447. sql = string.Format(@" DELETE
  448. FROM dbo.ICSOASNDetail
  449. WHERE ID IN ({0}) and WorkPoint ='{1}' ", keyValue.TrimEnd(','), WorkPoint);
  450. try
  451. {
  452. SqlHelper.ExecuteNonQuery(sql);
  453. }
  454. catch (Exception ex)
  455. {
  456. msg = ex.Message;
  457. }
  458. return msg;
  459. }
  460. /// <summary>
  461. /// 更新送货单
  462. /// </summary>
  463. /// <param name="keyValue"></param>
  464. /// <returns></returns>
  465. public string UpdateSTNO(string keyValue)
  466. {
  467. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  468. string msg = "";
  469. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  470. string[] keyValues = keyValue.Split(',');
  471. string sql = string.Empty;
  472. sql = "UPDATE ICSOASN SET MTIME = {2} WHERE OASNCode = {0} AND WorkPoint in ({1})";
  473. sql = string.Format(sql, keyValues[0].TrimStart(',').TrimEnd(','), WorkPoint, keyValues[1].TrimStart(',').TrimEnd(','));
  474. SqlHelper.ExecuteNonQuery(sql);
  475. return msg;
  476. }
  477. public int UpDateBySTNO(string keyValue, string Status, string WorkPoint)
  478. {
  479. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  480. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  481. WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2);
  482. string sql = string.Empty;
  483. sql = @"UPDATE ICSOASN SET Status = '{1}' WHERE OASNCode IN ({0}) AND WorkPoint in({2})";
  484. sql = string.Format(sql, keyValue.TrimEnd(','), Status, WorkPoint.TrimEnd(','));
  485. return SqlHelper.ExecuteNonQuery(sql);
  486. }
  487. }
  488. }