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.

1468 lines
84 KiB

3 days ago
2 days ago
3 days ago
2 days ago
3 days ago
2 days ago
3 days ago
2 days ago
3 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.Data;
  13. using System.Data.Common;
  14. using System.Linq;
  15. using System.Text;
  16. namespace NFine.Application
  17. {
  18. public class CAManageApp : RepositoryFactory<ICSVendor>
  19. {
  20. public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam)
  21. {
  22. DataTable dt = new DataTable();
  23. var queryParam = queryJson.ToJObject();
  24. List<DbParameter> parameter = new List<DbParameter>();
  25. //string sqlU9 = "SELECT DBIpAddress,DBName FROM dbo.Sys_DataBase WHERE DBSourceName='ERP'";
  26. //DataTable dtU9 = SqlHelper.GetDataTableBySql(sqlU9);
  27. //string U9IP = dtU9.Rows[0]["DBIpAddress"].ToString();
  28. //string DBName = dtU9.Rows[0]["DBName"].ToString();
  29. #region [旧]
  30. //string sql = @"SELECT ID,DocNo,MUSER,MUSERName,CONVERT(VARCHAR(100), MTIME,23) AS MTIME,
  31. // CASE [Status] WHEN 0 THEN '开立' WHEN 1 THEN '发布' WHEN 2 THEN '完成' WHEN 3 THEN '退回' END STATUS,
  32. // SupplierCode,SupplierName,PubUser,CONVERT(VARCHAR(100), PubTime,23) AS PubTime,[Remark],WorkPoint
  33. // FROM ICSCA
  34. // WHERE 1=1 ";
  35. //if (!string.IsNullOrWhiteSpace(queryJson))
  36. //{
  37. // if (!string.IsNullOrWhiteSpace(queryParam["DocNo"].ToString()))
  38. // {
  39. // sql += " and DocNo like '%" + queryParam["DocNo"].ToString() + "%' ";
  40. // }
  41. // if (!string.IsNullOrWhiteSpace(queryParam["SupplierCode"].ToString()))
  42. // {
  43. // sql += " and SupplierCode like '%" + queryParam["SupplierCode"].ToString() + "%' ";
  44. // }
  45. // if (!string.IsNullOrWhiteSpace(queryParam["SupplierName"].ToString()))
  46. // {
  47. // sql += " and SupplierName like '%" + queryParam["SupplierName"].ToString() + "%' ";
  48. // }
  49. // if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  50. // {
  51. // sql += " and MTIME >= '%" + queryParam["TimeFrom"].ToString() + "%' ";
  52. // }
  53. // if (!string.IsNullOrWhiteSpace(queryParam["TimeTo"].ToString()))
  54. // {
  55. // sql += " and MTIME <= '%" + queryParam["TimeTo"].ToString() + "%' ";
  56. // }
  57. //}
  58. //if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  59. //{
  60. // sql += " and WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  61. //}
  62. //if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  63. //{
  64. // sql += " and SupplierCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  65. //}
  66. //lacy.xu 2022/1/7 汇总入库数量
  67. // string sql = @"select sum(bb.quantity)as PoQty,aa.ID,aa.DocNo,aa.MUSER,aa.MUSERName,CONVERT(VARCHAR(100), aa.MTIME,23) AS MTIME,
  68. // aa.[Status] STATUS,
  69. // aa.[Status] HIDDSTATUS,
  70. // aa.SupplierCode,aa.SupplierName,aa.PubUser,CONVERT(VARCHAR(100), aa.PubTime,23) AS PubTime,aa.[Remark],aa.WorkPoint,
  71. // sum((aa.ArriveQty))as ArriveQty
  72. // from (SELECT DISTINCT a.ID,a.DocNo,a.MUSER,a.MUSERName,CONVERT(VARCHAR(100), a.MTIME,23) AS MTIME,
  73. // CASE a.[Status] WHEN 0 THEN '开立' WHEN 1 THEN '发布' WHEN 2 THEN '完成' WHEN 3 THEN '退回' END STATUS,
  74. // CASE a.[Status] WHEN 0 THEN '开立' WHEN 1 THEN '发布' WHEN 2 THEN '完成' WHEN 3 THEN '退回' END HIDDSTATUS,
  75. // a.SupplierCode,a.SupplierName,a.PubUser,CONVERT(VARCHAR(100), a.PubTime,23) AS PubTime,a.[Remark],a.WorkPoint,
  76. // sum(c.YSHQty) AS ArriveQty,c.cpoid,c.ivouchrowno
  77. // FROM ICSCANew a
  78. // LEFT JOIN ICSCANewDetail b ON a.DocNo = b.DocNo AND a.WorkPoint = b.WorkPoint
  79. // LEFT JOIN(select iquantity as YSHQty, cpoid,ivouchrowno,AutoID from Viewrd01) c
  80. // ON b.EATTRIBUTE1=c.AutoID
  81. //
  82. // LEFT JOIN ICSINVENTORY d on d.INVCODE=b.InvCode and b.WorkPoint=d.WorkPoint
  83. //group by a.ID,a.DocNo,a.MUSER,a.MUSERName,a.MTIME,a.[Status],a.SupplierCode,a.SupplierName,a.PubUser,a.PubTime ,a.[Remark],a.WorkPoint
  84. //,c.cpoid,c.ivouchrowno)aa
  85. //LEFT JOIN ICSPO_PoMain bb on aa.cpoid=bb.POCode and aa.ivouchrowno=bb.PORow
  86. // WHERE 1=1";
  87. //(SELECT CAST(ISNULL(SUM([YRKQty]),0) AS DECIMAL(18,2)) FROM view_PoMain WHERE DNNO = c.PUCode) AS ArriveQty
  88. // string sql = @"
  89. //select aa.DocNo,aa.MUSER,aa.MUSERName,aa.MTIME,STATUS,HIDDSTATUS,
  90. //aa.SupplierCode,aa.SupplierName,aa.PubUser,aa.PubTime,aa.[Remark],aa.WorkPoint,
  91. //sum(cast(aa.PoQty as decimal)) as PoQty from
  92. //( select DISTINCT a.DocNo,a.MUSER,a.MUSERName,CONVERT(VARCHAR(100), a.MTIME,23) AS MTIME,
  93. //CASE a.[Status] WHEN 0 THEN '开立' WHEN 1 THEN '发布' WHEN 2 THEN '完成' WHEN 3 THEN '退回' END STATUS,
  94. //CASE a.[Status] WHEN 0 THEN '开立' WHEN 1 THEN '发布' WHEN 2 THEN '完成' WHEN 3 THEN '退回' END HIDDSTATUS,
  95. // a.SupplierCode,a.SupplierName,a.PubUser,CONVERT(VARCHAR(100), a.PubTime,23) AS PubTime,a.[Remark],a.WorkPoint,
  96. // cast(c.quantity as decimal) as PoQty ,c.PoCode,d.InvCode,d.InvName
  97. // from ICSCANew a
  98. // LEFT JOIN ICSCANewDetail b ON a.DocNo = b.DocNo AND a.WorkPoint = b.WorkPoint
  99. // LEFT JOIN ICSPO_POMain c ON b.POCode=c.pocode AND b.porow=c.porow and b.WorkPoint=c.WorkPoint
  100. //
  101. // LEFT JOIN ( select rd01.iPOsID,rd01.cPOID ,rd01.irowno,rd02.ccode,rd01.iquantity,rd01.ioriSum from [{0}].{1}.dbo.rdrecords01 rd01
  102. // left join [{0}].{1}.dbo.rdrecord01 rd02 on rd01.ID =rd02.ID
  103. // LEFT JOIN [{0}].{1}.dbo.PO_Podetails pomain on pomain.ID=rd01.iPOsID
  104. // ) rd ON c.Free2 =rd.iPOsID
  105. // LEFT JOIN ICSINVENTORY d on d.INVCODE=b.InvCode and b.WorkPoint=d.WorkPoint
  106. // )aa WHERE 1=1";
  107. #endregion
  108. string sql = @"select aa.DocNo,aa.MUSER,aa.MUSERName,aa.MTIME,STATUS,HIDDSTATUS,
  109. aa.SupplierCode,aa.SupplierName,aa.PubUser,aa.PubTime,aa.[Remark],aa.WorkPoint,
  110. sum(cast(aa.PoQty as decimal)) as PoQty,aa.Tax from
  111. ( select DISTINCT a.DocNo,a.MUSER,a.MUSERName,CONVERT(VARCHAR(100), a.MTIME,23) AS MTIME,
  112. CASE a.[Status] WHEN 0 THEN '' WHEN 1 THEN '' WHEN 2 THEN '' WHEN 3 THEN '退' END STATUS,
  113. CASE a.[Status] WHEN 0 THEN '' WHEN 1 THEN '' WHEN 2 THEN '' WHEN 3 THEN '退' END HIDDSTATUS,
  114. a.SupplierCode,a.SupplierName,a.PubUser,CONVERT(VARCHAR(100), a.PubTime,23) AS PubTime,a.[Remark],a.WorkPoint,
  115. cast(c.quantity as decimal) as PoQty ,c.PoCode,d.InvCode,d.InvName,a.Tax
  116. from ICSCANew a
  117. LEFT JOIN ICSCANewDetail b ON a.DocNo = b.DocNo AND a.WorkPoint = b.WorkPoint
  118. LEFT JOIN dbo.ICSPurchaseOrder c ON b.POCode=c.pocode AND b.porow=c.Sequence and b.WorkPoint=c.WorkPoint
  119. LEFT JOIN ICSINVENTORY d on d.INVCODE=b.InvCode and b.WorkPoint=d.WorkPoint
  120. )aa WHERE 1=1";
  121. //sql = string.Format(sql, U9IP, DBName);
  122. sql = string.Format(sql);
  123. if (!string.IsNullOrWhiteSpace(queryJson))
  124. {
  125. if (!string.IsNullOrWhiteSpace(queryParam["DocNo"].ToString()))
  126. {
  127. sql += " and aa.DocNo like '%" + queryParam["DocNo"].ToString() + "%' ";
  128. }
  129. if (!string.IsNullOrWhiteSpace(queryParam["SupplierCode"].ToString()))
  130. {
  131. sql += " and aa.SupplierCode like '%" + queryParam["SupplierCode"].ToString() + "%' ";
  132. }
  133. if (!string.IsNullOrWhiteSpace(queryParam["SupplierName"].ToString()))
  134. {
  135. sql += " and aa.SupplierName like '%" + queryParam["SupplierName"].ToString() + "%' ";
  136. }
  137. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  138. {
  139. sql += " and aa.MTIME >= '" + queryParam["TimeFrom"].ToString() + "' ";
  140. }
  141. if (!string.IsNullOrWhiteSpace(queryParam["TimeTo"].ToString()))
  142. {
  143. sql += " and aa.MTIME <= '" + queryParam["TimeTo"].ToString() + "' ";
  144. }
  145. if (!string.IsNullOrWhiteSpace(queryParam["PoCode"].ToString()))
  146. {
  147. sql += " and aa.PoCode like '%" + queryParam["PoCode"].ToString() + "%' ";
  148. }
  149. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  150. {
  151. sql += " and aa.InvCode like '%" + queryParam["InvCode"].ToString() + "%'";
  152. }
  153. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  154. {
  155. sql += " and aa.InvName like '%" + queryParam["InvName"].ToString() + "%'";
  156. }
  157. if (!string.IsNullOrWhiteSpace(queryParam["STATUS"].ToString()))
  158. {
  159. string STATUS = queryParam["STATUS"].ToString();
  160. if (STATUS == "2")
  161. sql += " and aa.[Status] = '发布'";
  162. else if (STATUS == "3")
  163. sql += " and aa.[Status] = '开立'";
  164. else if (STATUS == "4")
  165. sql += " and aa.[Status] = '完成'";
  166. }
  167. }
  168. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  169. {
  170. sql += " and aa.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  171. }
  172. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  173. {
  174. sql += " and aa.SupplierCode in (SELECT VenCode FROM ICSVendor where VenName ='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "'AND WorkPoint=aa.WorkPoint) AND aa.SupplierName='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "'";
  175. }
  176. sql += @"GROUP by aa.DocNo,aa.MUSER,aa.MUSERName,aa.MTIME,aa.[Status],aa.SupplierCode,aa.SupplierName,aa.PubUser,aa.PubTime
  177. ,aa.[Remark],aa.WorkPoint,aa.HIDDSTATUS,aa.Tax";
  178. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  179. }
  180. public string ChridenList(string keyValue, string WorkPoint)
  181. {
  182. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  183. WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2);
  184. string msg = "";
  185. string sql = "SELECT DocNo FROM dbo.ICSCANewDetail WHERE DocNo={0} and WorkPoint='{1}'";
  186. sql = string.Format(sql, keyValue.TrimEnd(','), WorkPoint);
  187. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  188. int Count = dt.Rows.Count;
  189. if (Count <= 0)
  190. {
  191. msg = "该单据无表单明细信息,请点开查看!";
  192. }
  193. return msg;
  194. }
  195. public DataTable GetGridJsonAdmin(string queryJson, ref Pagination jqgridparam)
  196. {
  197. DataTable dt = new DataTable();
  198. var queryParam = queryJson.ToJObject();
  199. List<DbParameter> parameter = new List<DbParameter>();
  200. //string sqlU9 = "SELECT DBIpAddress,DBName FROM dbo.Sys_DataBase WHERE DBSourceName='ERP'";
  201. //DataTable dtU9 = SqlHelper.GetDataTableBySql(sqlU9);
  202. //string U9IP = dtU9.Rows[0]["DBIpAddress"].ToString();
  203. //string DBName = dtU9.Rows[0]["DBName"].ToString();
  204. #region [旧]
  205. // string sql = @"SELECT ID,DocNo,MUSER,MUSERName,CONVERT(VARCHAR(100), MTIME,23) AS MTIME,
  206. // CASE [Status] WHEN 0 THEN '开立' WHEN 1 THEN '发布' WHEN 2 THEN '完成' WHEN 3 THEN '退回' END STATUS,
  207. // SupplierCode,SupplierName,PubUser,CONVERT(VARCHAR(100), PubTime,23) AS PubTime,[Remark],WorkPoint
  208. // FROM ICSCA
  209. // WHERE 1=1 AND Status IN (1,2,3)";
  210. // if (!string.IsNullOrWhiteSpace(queryJson))
  211. // {
  212. // if (!string.IsNullOrWhiteSpace(queryParam["DocNo"].ToString()))
  213. // {
  214. // sql += " and DocNo like '%" + queryParam["DocNo"].ToString() + "%' ";
  215. // }
  216. // if (!string.IsNullOrWhiteSpace(queryParam["SupplierCode"].ToString()))
  217. // {
  218. // sql += " and SupplierCode like '%" + queryParam["SupplierCode"].ToString() + "%' ";
  219. // }
  220. // if (!string.IsNullOrWhiteSpace(queryParam["SupplierName"].ToString()))
  221. // {
  222. // sql += " and SupplierName like '%" + queryParam["SupplierName"].ToString() + "%' ";
  223. // }
  224. // if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  225. // {
  226. // sql += " and MTIME >= '%" + queryParam["TimeFrom"].ToString() + "%' ";
  227. // }
  228. // if (!string.IsNullOrWhiteSpace(queryParam["TimeTo"].ToString()))
  229. // {
  230. // sql += " and MTIME <= '%" + queryParam["TimeTo"].ToString() + "%' ";
  231. // }
  232. // }
  233. // if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  234. // {
  235. // sql += " and WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  236. // }
  237. // if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  238. // {
  239. // sql += " and SupplierCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  240. // }
  241. // string sql = @"select aa.DocNo,aa.MUSER,aa.MUSERName,aa.MTIME,STATUS,HIDDSTATUS,
  242. //aa.SupplierCode,aa.SupplierName,aa.PubUser,aa.PubTime,aa.[Remark],aa.WorkPoint,
  243. //sum(cast(aa.PoQty as decimal)) as PoQty from
  244. //( select DISTINCT a.DocNo,a.MUSER,a.MUSERName,CONVERT(VARCHAR(100), a.MTIME,23) AS MTIME,
  245. //CASE a.[Status] WHEN 0 THEN '开立' WHEN 1 THEN '发布' WHEN 2 THEN '完成' WHEN 3 THEN '退回' END STATUS,
  246. //CASE a.[Status] WHEN 0 THEN '开立' WHEN 1 THEN '发布' WHEN 2 THEN '完成' WHEN 3 THEN '退回' END HIDDSTATUS,
  247. // a.SupplierCode,a.SupplierName,a.PubUser,CONVERT(VARCHAR(100), a.PubTime,23) AS PubTime,a.[Remark],a.WorkPoint,
  248. // cast(c.quantity as decimal) as PoQty,c.PoCode,d.InvCode,d.InvName
  249. // from ICSCANew a
  250. // LEFT JOIN ICSCANewDetail b ON a.DocNo = b.DocNo AND a.WorkPoint = b.WorkPoint
  251. // LEFT JOIN ICSPO_POMain c ON b.POCode=c.pocode AND b.porow=c.porow and b.WorkPoint=c.WorkPoint
  252. //
  253. // LEFT JOIN ( select rd01.iPOsID,rd01.cPOID ,rd01.irowno,rd02.ccode,rd01.iquantity from [{0}].{1}.dbo.rdrecords01 rd01
  254. // left join [{0}].{1}.dbo.rdrecord01 rd02 on rd01.ID =rd02.ID
  255. // LEFT JOIN [{0}].{1}.dbo.PO_Podetails pomain on pomain.ID=rd01.iPOsID
  256. // ) rd ON c.Free2 =rd.iPOsID
  257. // LEFT JOIN ICSINVENTORY d on d.INVCODE=b.InvCode and b.WorkPoint=d.WorkPoint
  258. // )aa WHERE 1=1 AND aa.Status IN ('发布','完成','退回')";
  259. #endregion
  260. string sql = @"select aa.DocNo,aa.MUSER,aa.MUSERName,aa.MTIME,STATUS,HIDDSTATUS,
  261. aa.SupplierCode,aa.SupplierName,aa.PubUser,aa.PubTime,aa.[Remark],aa.WorkPoint,
  262. sum(cast(aa.PoQty as decimal)) as PoQty from
  263. ( select DISTINCT a.DocNo,a.MUSER,a.MUSERName,CONVERT(VARCHAR(100), a.MTIME,23) AS MTIME,
  264. CASE a.[Status] WHEN 0 THEN '' WHEN 1 THEN '' WHEN 2 THEN '' WHEN 3 THEN '退' END STATUS,
  265. CASE a.[Status] WHEN 0 THEN '' WHEN 1 THEN '' WHEN 2 THEN '' WHEN 3 THEN '退' END HIDDSTATUS,
  266. a.SupplierCode,a.SupplierName,a.PubUser,CONVERT(VARCHAR(100), a.PubTime,23) AS PubTime,a.[Remark],a.WorkPoint,
  267. cast(c.quantity as decimal) as PoQty,c.PoCode,d.InvCode,d.InvName
  268. from ICSCANew a
  269. LEFT JOIN ICSCANewDetail b ON a.DocNo = b.DocNo AND a.WorkPoint = b.WorkPoint
  270. LEFT JOIN ICSPurchaseOrder c ON b.POCode=c.pocode AND b.porow=c.Sequence and b.WorkPoint=c.WorkPoint
  271. LEFT JOIN ICSINVENTORY d on d.INVCODE=b.InvCode and b.WorkPoint=d.WorkPoint
  272. )aa WHERE 1=1 AND aa.Status IN ('','','退')";
  273. sql = string.Format(sql);
  274. //(SELECT CAST(ISNULL(SUM([YRKQty]),0) AS DECIMAL(18,2)) FROM view_PoMain WHERE DNNO = c.PUCode) AS ArriveQty
  275. if (!string.IsNullOrWhiteSpace(queryJson))
  276. {
  277. if (!string.IsNullOrWhiteSpace(queryParam["DocNo"].ToString()))
  278. {
  279. sql += " and aa.DocNo like '%" + queryParam["DocNo"].ToString() + "%' ";
  280. }
  281. if (!string.IsNullOrWhiteSpace(queryParam["SupplierCode"].ToString()))
  282. {
  283. sql += " and aa.SupplierCode like '%" + queryParam["SupplierCode"].ToString() + "%' ";
  284. }
  285. if (!string.IsNullOrWhiteSpace(queryParam["SupplierName"].ToString()))
  286. {
  287. sql += " and aa.SupplierName like '%" + queryParam["SupplierName"].ToString() + "%' ";
  288. }
  289. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  290. {
  291. sql += " and aa.MTIME >= '" + queryParam["TimeFrom"].ToString() + "' ";
  292. }
  293. if (!string.IsNullOrWhiteSpace(queryParam["TimeTo"].ToString()))
  294. {
  295. sql += " and aa.MTIME <= '" + queryParam["TimeTo"].ToString() + "' ";
  296. }
  297. if (!string.IsNullOrWhiteSpace(queryParam["PoCode"].ToString()))
  298. {
  299. sql += " and aa.PoCode like '%" + queryParam["PoCode"].ToString() + "%' ";
  300. }
  301. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  302. {
  303. sql += " and aa.InvCode like '%" + queryParam["InvCode"].ToString() + "%'";
  304. }
  305. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  306. {
  307. sql += " and aa.InvName like '%" + queryParam["InvName"].ToString() + "%'";
  308. }
  309. if (!string.IsNullOrWhiteSpace(queryParam["ReleaseState"].ToString()))
  310. {
  311. string ReleaseState = queryParam["ReleaseState"].ToString();
  312. if (ReleaseState == "1")
  313. sql += " and aa.Status = '发布'";
  314. else if (ReleaseState == "2")
  315. sql += " and aa.Status = '完成'";
  316. else if (ReleaseState == "3")
  317. sql += " and aa.Status = '退回'";
  318. }
  319. }
  320. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  321. {
  322. sql += " and aa.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  323. }
  324. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  325. {
  326. sql += " and aa.SupplierCode in (SELECT VenCode FROM ICSVendor where VenName ='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "'AND WorkPoint=aa.WorkPoint) AND aa.SupplierName='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "'";
  327. }
  328. if (NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode != "admin")
  329. {
  330. sql = SqlHelper.OrganizeByVendor_F_ParentIdBYDZ(sql, NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
  331. }
  332. sql += @"
  333. GROUP by aa.DocNo,aa.MUSER,aa.MUSERName,aa.MTIME,aa.[Status],aa.SupplierCode,aa.SupplierName,aa.PubUser,aa.PubTime
  334. ,aa.[Remark],aa.WorkPoint,aa.HIDDSTATUS";
  335. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  336. }
  337. /// <summary>
  338. /// 子表查询
  339. /// </summary>
  340. /// <param name="queryJson"></param>
  341. /// <param name="jqgridparam"></param>
  342. /// <returns></returns>
  343. public DataTable GetSubGridJson(string ID, ref Pagination jqgridparam, string WorkPoint)
  344. {
  345. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  346. DataTable dt = new DataTable();
  347. List<DbParameter> parameter = new List<DbParameter>();
  348. //string sql = @"SELECT ID,DocNo,DocLineNo,Src_ASNDocNo,Src_ASNDocLineNo,InvCode,CAST(Qty AS DECIMAL(18,2)) AS Qty
  349. // FROM ICSCADetail
  350. // WHERE 1=1 AND DocNo = '{0}' AND WorkPoint = '{1}'";
  351. //lacy.xu modifly 2021-08-31 数量改为:到货数量
  352. // string sql = @"SELECT a.ID,a.DocNo,a.DocLineNo,a.Src_ASNDocNo,a.Src_ASNDocLineNo,a.InvCode,CAST(a.Qty AS DECIMAL(18,2)) AS Qty,
  353. // CAST(b.YRKQty AS DECIMAL(18,2)) AS RQty,CAST(b.YJSQty AS DECIMAL(18,2)) AS JQty,
  354. // CAST(b.YTHQty AS DECIMAL(18,2)) AS TQty
  355. // FROM ICSCADetail a
  356. // LEFT JOIN view_PoMain b ON a.Src_ASNDocNo = b.DNNO AND a.Src_ASNDocLineNo = b.DNLine
  357. // AND a.InvCode = b.LotNO
  358. // WHERE 1=1 AND DocNo = '{0}' AND WorkPoint = '{1}'";
  359. //别老改我这段代码,每次都给我改崩了。
  360. //修改为通过DBLink查询
  361. string DBLANK = SqlHelper.GetItemsDetails("ERP001", WorkPoint);
  362. string Views = SqlHelper.GetItemsDetails("ViewsWorkpoint", WorkPoint);
  363. //string sqlU9 = "SELECT DBIpAddress,DBName FROM dbo.Sys_DataBase WHERE DBSourceName='ERP'";
  364. //DataTable dtU9 = SqlHelper.GetDataTableBySql(sqlU9);
  365. //string U9IP = dtU9.Rows[0]["DBIpAddress"].ToString();
  366. //string DBName = dtU9.Rows[0]["DBName"].ToString();
  367. // string sql = @"SELECT DISTINCT a.DocNo,a.DocLineNo,a.pocode,a.porow,c.invcode,
  368. // c.invName,c.InvStd,a.Qty,--rd.iQuantity a.Remark,d.quantity,d.UnitPrice AS price,
  369. // ISNULL(rd.ioriSum,0) AS TotalPrice ,rd.irowno,rd.ccode,rd.iquantity as RuQty
  370. // ,ISNULL(rd.iOriMoney,0) AS iOriMoney,ISNULL(rd.iOriTaxPrice,0) AS iOriTaxPrice
  371. // FROM
  372. //(select isnull(CAST(qty AS DECIMAL(18,2)),0) AS Qty,ID,DocNo,DocLineNo,
  373. // pocode,porow,Remark,EATTRIBUTE1,WorkPoint
  374. // from ICSCANewDetail ) a
  375. // LEFT JOIN dbo.ICSPurchaseOrder d ON a.POCode=d.POCode AND a.porow=d.Sequence and a.WorkPoint=d.WorkPoint
  376. // LEFT JOIN ( select rd01.iPOsID,rd01.cPOID ,rd01.irowno,rd02.ccode,rd01.iquantity,rd01.AutoID,rd01.ioriSum,rd01.iOriMoney,rd01.iOriTaxPrice from {2}.dbo.rdrecords01 rd01
  377. // left join {2}.dbo.rdrecord01 rd02 on rd01.ID =rd02.ID
  378. // LEFT JOIN {2}.dbo.PO_Podetails pomain on pomain.ID=rd01.iPOsID
  379. // ) rd ON d.PODetailID =rd.iPOsID and a.EATTRIBUTE1=rd.AutoID
  380. // LEFT JOIN " + Views + @" rd ON d.PODetailID =rd.iPOsID and a.EATTRIBUTE1=rd.AutoID
  381. //LEFT JOIN ICSINVENTORY c ON d.InvCode=c.invCode AND a.WorkPoint=c.WorkPoint
  382. // WHERE 1=1 AND a.DocNo = '{0}' AND a.WorkPoint = '{1}'";
  383. string sql = @"SELECT DISTINCT a.DocNo,a.DocLineNo,a.pocode,a.porow,c.invcode,
  384. c.invName,c.InvStd,a.Qty,--rd.iQuantity a.Remark,d.quantity,d.UnitPrice AS price,
  385. ISNULL(rd.ioriSum,0) AS TotalPrice ,rd.irowno,rd.ccode,rd.iquantity as RuQty
  386. ,ISNULL(rd.iOriMoney,0) AS iOriMoney,ISNULL(rd.iOriTaxPrice,0) AS iOriTaxPrice,d.EATTRIBUTE12
  387. FROM
  388. (select isnull(CAST(qty AS DECIMAL(18,2)),0) AS Qty,ID,DocNo,DocLineNo,
  389. pocode,porow,Remark,EATTRIBUTE1,WorkPoint
  390. from ICSCANewDetail ) a
  391. LEFT JOIN dbo.ICSPurchaseOrder d ON a.POCode=d.POCode AND a.porow=d.Sequence and a.WorkPoint=d.WorkPoint
  392. LEFT JOIN " + Views + @" rd ON d.PODetailID =rd.ID and a.EATTRIBUTE1=rd.AutoID
  393. LEFT JOIN ICSINVENTORY c ON d.InvCode=c.invCode AND a.WorkPoint=c.WorkPoint
  394. WHERE 1=1 AND a.DocNo = '{0}' AND a.WorkPoint = '{1}'";
  395. sql = string.Format(sql, ID, WorkPoint, DBLANK);
  396. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  397. }
  398. /// <summary>
  399. /// 查询送货单新增/修改页面数据
  400. /// 2023/3/13 modifly lacy.xu 增加原币税额 原币无税金额 原币价税合计
  401. /// </summary>
  402. /// <param name="queryJson"></param>
  403. /// <param name="jqgridparam"></param>
  404. /// <returns></returns>
  405. public DataTable GetSubGridJson_Add(string queryJson, ref Pagination jqgridparam)
  406. {
  407. //string sqlU9 = "SELECT DBIpAddress,DBName FROM dbo.Sys_DataBase WHERE DBSourceName='ERP'";
  408. //DataTable dtU9 = SqlHelper.GetDataTableBySql(sqlU9);
  409. //string U9IP = dtU9.Rows[0]["DBIpAddress"].ToString();
  410. //string DBName = dtU9.Rows[0]["DBName"].ToString();
  411. DataTable dt = new DataTable();
  412. var queryParam = queryJson.ToJObject();
  413. string DBLANK = SqlHelper.GetItemsDetails("ERP001", queryParam["WorkPoint"].ToString());
  414. string Views = SqlHelper.GetItemsDetails("ViewsWorkpoint", queryParam["WorkPoint"].ToString());
  415. List<DbParameter> parameter = new List<DbParameter>();
  416. // string sql = @"SELECT a.ID,a.DocNo,a.DocLineNo,a.POCode,a.PORow,c.InvCode,d.invname,d.invstd,a.Qty ,
  417. // b.MUSER,b.MUSERName,CONVERT(VARCHAR(100), b.MTIME,23) AS MTIME,b.SupplierCode,b.SupplierName,b.Status
  418. // ,e.ioriSum,e.iOriMoney,e.iOriTaxPrice,c.UnitPrice Price
  419. // FROM (SELECT id,EATTRIBUTE1, DocNo,DocLineNo,POCode,PORow,SUM(CAST(Qty AS DECIMAL(18,2))) AS Qty,WorkPoint FROM ICSCANewDetail GROUP BY DocNo,DocLineNo,POCode,PORow,WorkPoint,id,EATTRIBUTE1) a
  420. // INNER JOIN ICSCANew b ON a.DocNo = b.DocNo AND a.WorkPoint = b.WorkPoint
  421. //--LEFT JOIN Viewrd01 e ON e.cpoid=a.poCode AND e.ivouchrowno=a.porow and e.AutoID=a.EATTRIBUTE1
  422. // LEFT JOIN (SELECT ioriSum,iOriMoney,iOriTaxPrice,AutoID FROM
  423. // {1}.dbo.RdRecords01) e ON e.AutoID=a.EATTRIBUTE1
  424. // LEFT JOIN dbo.ICSPurchaseOrder c ON a.pocode=c.pocode AND a.porow=c.Sequence AND a.WorkPoint = c.WorkPoint
  425. // LEFT JOIN ICSINVENTORY d ON c.InvCode=d.InvCode AND a.WorkPoint = d.WorkPoint
  426. // WHERE 1=1 AND a.DocNo = '{0}' ";
  427. string sql = @"SELECT a.ID,a.DocNo,a.DocLineNo,a.POCode,a.PORow,c.InvCode,d.invname,d.invstd,a.Qty ,
  428. b.MUSER,b.MUSERName,CONVERT(VARCHAR(100), b.MTIME,23) AS MTIME,b.SupplierCode,b.SupplierName,b.Status
  429. ,e.ioriSum,e.iOriMoney,e.iOriTaxPrice,c.UnitPrice Price,DeductionAmount,a.Filename, a.Filename HiddenFile
  430. FROM (SELECT id,EATTRIBUTE1, DocNo,DocLineNo,POCode,PORow,SUM(CAST(Qty AS DECIMAL(18,2))) AS Qty,WorkPoint,DeductionAmount,Filename FROM ICSCANewDetail GROUP BY DocNo,DocLineNo,POCode,PORow,WorkPoint,id,EATTRIBUTE1,DeductionAmount,Filename) a
  431. INNER JOIN ICSCANew b ON a.DocNo = b.DocNo AND a.WorkPoint = b.WorkPoint
  432. --LEFT JOIN Viewrd01 e ON e.cpoid=a.poCode AND e.ivouchrowno=a.porow and e.AutoID=a.EATTRIBUTE1
  433. LEFT JOIN " + Views + @" e ON a.EATTRIBUTE1=e.AutoID
  434. LEFT JOIN dbo.ICSPurchaseOrder c ON a.pocode=c.pocode AND a.porow=c.Sequence AND a.WorkPoint = c.WorkPoint
  435. LEFT JOIN ICSINVENTORY d ON c.InvCode=d.InvCode AND a.WorkPoint = d.WorkPoint
  436. WHERE 1=1 AND a.DocNo = '{0}' ";
  437. sql = string.Format(sql, queryParam["DocNo"].ToString(), DBLANK);
  438. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  439. }
  440. /// <summary>
  441. /// 明细
  442. /// </summary>
  443. /// <param name="queryJson"></param>
  444. /// <param name="jqgridparam"></param>
  445. /// <returns></returns>
  446. public DataTable GetGridJsonAdminDetail(string queryJson, ref Pagination jqgridparam, string WorkPoint)
  447. {
  448. //string sqlU9 = "SELECT DBIpAddress,DBName FROM dbo.Sys_DataBase WHERE DBSourceName='ERP'";
  449. //DataTable dtU9 = SqlHelper.GetDataTableBySql(sqlU9);
  450. //string U9IP = dtU9.Rows[0]["DBIpAddress"].ToString();
  451. //string DBName = dtU9.Rows[0]["DBName"].ToString();
  452. string DBLANK = SqlHelper.GetItemsDetails("ERP001", WorkPoint);
  453. string Views = SqlHelper.GetItemsDetails("ViewsWorkpoint", WorkPoint);
  454. DataTable dt = new DataTable();
  455. var queryParam = queryJson.ToJObject();
  456. List<DbParameter> parameter = new List<DbParameter>();
  457. // string sql = @" SELECT c.invcode,c.invName,c.InvStd,c.INVUOM,SUM(rd.iquantity) as RuQty,rd.ccode,d.POCode,d.price,
  458. //CAST(d.price*SUM(rd.iquantity) AS DECIMAL(18,2)) AS SumPrice
  459. // FROM
  460. // (select isnull(CAST(qty AS DECIMAL(18,2)),0) AS Qty,ID,DocNo,DocLineNo,pocode,porow,Remark,EATTRIBUTE1,WorkPoint from
  461. // ICSCANewDetail )
  462. // a
  463. // LEFT JOIN ICSPO_POMain d ON a.POCode=d.pocode AND a.porow=d.porow and a.WorkPoint=d.WorkPoint
  464. // LEFT JOIN ( select rd01.iPOsID,rd01.cPOID ,rd01.irowno,rd02.ccode,rd01.iquantity,rd01.iOriTaxCost,rd01.AutoID
  465. // from {2}.dbo.rdrecords01 rd01
  466. //left join {2}.dbo.rdrecord01 rd02 on rd01.ID =rd02.ID
  467. //LEFT JOIN {2}.dbo.PO_Podetails pomain on pomain.ID=rd01.iPOsID
  468. // ) rd ON d.Free2 =rd.iPOsID and a.EATTRIBUTE1=rd.AutoID
  469. // LEFT JOIN " + Views + @" rd ON d.PODetailID =rd.iPOsID and a.EATTRIBUTE1=rd.AutoID
  470. // LEFT JOIN ICSINVENTORY c ON d.InvCode=c.invCode AND a.WorkPoint=c.WorkPoint
  471. // WHERE 1=1 AND a.DocNo = '{0}' AND a.WorkPoint = '{1}'
  472. //GROUP by c.invcode,c.invName,c.InvStd,c.INVUOM ,rd.ccode,d.POCode,rd.iOriTaxCost,d.price
  473. // ";
  474. string sql = @" SELECT c.invcode,c.invName,c.InvStd,c.INVUOM,SUM(rd.iquantity) as RuQty,rd.ccode,d.POCode,d.price,
  475. CAST(d.price*SUM(rd.iquantity) AS DECIMAL(18,2)) AS SumPrice
  476. FROM
  477. (select isnull(CAST(qty AS DECIMAL(18,2)),0) AS Qty,ID,DocNo,DocLineNo,pocode,porow,Remark,EATTRIBUTE1,WorkPoint from
  478. ICSCANewDetail )
  479. a
  480. LEFT JOIN ICSPO_POMain d ON a.POCode=d.pocode AND a.porow=d.porow and a.WorkPoint=d.WorkPoint
  481. LEFT JOIN " + Views + @" rd ON d.PODetailID =rd.iPOsID and a.EATTRIBUTE1=rd.AutoID
  482. LEFT JOIN ICSINVENTORY c ON d.InvCode=c.invCode AND a.WorkPoint=c.WorkPoint
  483. WHERE 1=1 AND a.DocNo = '{0}' AND a.WorkPoint = '{1}'
  484. GROUP by c.invcode,c.invName,c.InvStd,c.INVUOM ,rd.ccode,d.POCode,rd.iOriTaxCost,d.price
  485. ";
  486. sql = string.Format(sql, queryParam["DocNo"].ToString(), queryParam["WorkPoint"].ToString(), DBLANK);
  487. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  488. }
  489. /// <summary>
  490. /// 子表查询
  491. /// </summary>
  492. /// <param name="queryJson"></param>
  493. /// <param name="jqgridparam"></param>
  494. /// <returns></returns>
  495. public DataTable GetSubGridJson(string CartonNo, string queryJson, ref Pagination jqgridparam)
  496. {
  497. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  498. DataTable dt = new DataTable();
  499. //var queryParam = queryJson.ToJObject();
  500. List<DbParameter> parameter = new List<DbParameter>();
  501. string sql = @"SELECT a.ID,c.ItemCODE,d.INVNAME,c.VenderLotNO,c.LOTQTY,c.TYPE
  502. FROM dbo.ICSITEMLot2Carton a
  503. LEFT JOIN dbo.ICSCarton b ON a.CartonNO=b.CartonNO AND a.WorkPoint=b.WorkPoint
  504. LEFT JOIN dbo.ICSITEMLot c ON a.LotNo_ID=c.ID AND a.WorkPoint=c.WorkPoint
  505. LEFT JOIN dbo.ICSINVENTORY d ON c.ItemCODE=d.INVCODE AND a.WorkPoint=d.WorkPoint
  506. WHERE a.CartonNO='" + CartonNo + "' and a.WorkPoint='" + WorkPoint + "'";
  507. if (!string.IsNullOrEmpty(queryJson))
  508. {
  509. sql += @"UNION ALL
  510. SELECT a.ID,a.ItemCODE,b.INVNAME,a.VenderLotNO,a.LOTQTY,a.TYPE FROM
  511. dbo.ICSITEMLot a
  512. LEFT JOIN dbo.ICSINVENTORY b ON a.ItemCODE=b.INVCODE AND a.WorkPoint=b.WorkPoint
  513. WHERE a.ID IN (" + queryJson.TrimEnd(',') + ") and a.WorkPoint='" + WorkPoint + "'";
  514. }
  515. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  516. }
  517. public DataTable GetSubGridJsonByCreate(string POCode, string PORow)
  518. {
  519. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  520. DataTable dt = new DataTable();
  521. //var queryParam = queryJson.ToJObject();
  522. List<DbParameter> parameter = new List<DbParameter>();
  523. string sql = @"SELECT a.ID, a.POCode,a.PORow,a.PODate,a.ORDERNO,a.VenCode,a.VenName,a.InvCode,
  524. b.INVNAME,b.INVSTD,b.INVDESC,b.INVUOM,a.Quantity,ISNULL(c.CreatedQty,0) AS CreatedQty,isnull(c.InQty,0) as InQty,a.WorkPoint
  525. FROM dbo.ICSPO_PoMain a
  526. LEFT JOIN dbo.ICSINVENTORY b ON a.InvCode=b.INVCODE AND a.WorkPoint=b.WorkPoint
  527. LEFT JOIN (SELECT SUM(x.LOTQTY) CreatedQty,TransNO,TransLine,x.WorkPoint,
  528. SUM(CASE WHEN y.LotNO IS NOT NULL THEN x.LOTQTY ELSE 0 END) AS InQty
  529. FROM dbo.ICSITEMLot x
  530. LEFT JOIN dbo.ICSWareHouseLotInfo y ON x.LotNO=y.LotNO AND x.WorkPoint=y.WorkPoint
  531. GROUP BY TransNO,TransLine,x.WorkPoint) c ON a.POCode=c.TransNO AND a.PORow=c.TransLine AND a.WorkPoint=c.WorkPoint
  532. WHERE 1=1
  533. and a.POCode='" + POCode + "' and a.PORow='" + PORow + "' and a.WorkPoint='" + WorkPoint + "'";
  534. return Repository().FindTableBySql(sql.ToString());
  535. }
  536. public DataTable GetVendorLotNo(string VenCode, string WorkPoint)
  537. {
  538. DataTable dt = new DataTable();
  539. //var queryParam = queryJson.ToJObject();
  540. List<DbParameter> parameter = new List<DbParameter>();
  541. string dtPre = DateTime.Now.ToString("yyyyMMdd");
  542. string sql = @"EXEC Addins_GetSerialCode '" + WorkPoint + "','ICSITEMLotNo','VendorLotNo','" + VenCode + dtPre + "',2";
  543. return Repository().FindTableBySql(sql.ToString());
  544. }
  545. /// <summary>
  546. /// 生成条码
  547. /// </summary>
  548. /// <param name="POCode"></param>
  549. /// <param name="PORow"></param>
  550. /// <param name="keyValue"></param>
  551. /// <returns></returns>
  552. public int CreateItemLotNo(string POCode, string PORow, string keyValue)
  553. {
  554. var queryParam = keyValue.ToJObject();
  555. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  556. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  557. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  558. decimal LOTQTY = minPackQty;
  559. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  560. string VenCode = GetVendorCode(POCode, PORow, WorkPoint);
  561. string Pre = VenCode + DateTime.Now.ToString("yyMMdd");
  562. string sql = string.Empty;
  563. string VendorLot = queryParam["VendorLot"].ToString();
  564. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  565. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  566. for (int i = 0; i < createPageCount; i++)
  567. {
  568. if (i + 1 == createPageCount)
  569. {
  570. if (minPackQty * createPageCount > thisCreateQty)
  571. {
  572. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  573. }
  574. }
  575. string LotNo = GetSerialCode(WorkPoint, "ICSITEMLot", "LotNO", Pre, 5);
  576. sql += string.Format(@"INSERT INTO dbo.ICSITEMLot
  577. ( ID ,LotNO ,ItemCODE ,TransNO ,TransLine ,VENDORITEMCODE ,VENDORCODE ,
  578. VenderLotNO ,PRODUCTDATE ,LOTQTY ,ACTIVE ,Exdate ,WorkPoint ,
  579. MUSER ,MUSERName ,MTIME ,TYPE,ORDERNO)
  580. SELECT NEWID(),'{0}',InvCode,POCode,PORow,'',NULL,
  581. '{1}',GETDATE(),'{2}','Y','2999-12-31 00:00:00.000','{3}',
  582. '{4}','{5}',GETDATE(),'',ORDERNO
  583. FROM dbo.ICSPO_PoMain WHERE POCode='{6}' AND PORow='{7}' AND WorkPoint='{3}'",
  584. LotNo, VendorLot, LOTQTY, WorkPoint, MUSER, MUSERNAME, POCode, PORow);
  585. sql += "\r\n";
  586. }
  587. int count = SqlHelper.ExecuteNonQuery(sql);
  588. return count;
  589. }
  590. public string GetSerialCode(string workPointCode, string tbName, string colName, string Pre, int numLen)
  591. {
  592. string sql = "EXEC Addins_GetSerialCode '{0}','{1}','{2}','{3}',{4}";
  593. sql = string.Format(sql, new object[] { workPointCode, tbName, colName, Pre, numLen });
  594. return DbHelper.ExecuteScalar(CommandType.Text, sql).ToString();
  595. }
  596. public string GetVendorCode(string POCode, string PORow, string WorkPoint)
  597. {
  598. string sql = string.Format(@"SELECT VenCode FROM dbo.ICSPO_PoMain
  599. WHERE POCode='{0}' AND PORow='{1}' AND WorkPoint='{2}'", POCode, PORow, WorkPoint);
  600. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  601. string VenCode = string.Empty;
  602. if (dt != null && dt.Rows.Count > 0)
  603. {
  604. VenCode = dt.Rows[0][0].ToString();
  605. }
  606. return VenCode;
  607. }
  608. /// <summary>
  609. /// 删除送货单内的条码或者箱号
  610. /// </summary>
  611. /// <param name="keyValue"></param>
  612. /// <returns></returns>
  613. public string DeleteInfo(string keyValue, string WorkPoint)
  614. {
  615. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  616. string msg = "";
  617. string sql = string.Format(@"DELETE
  618. FROM dbo.ICSCANewDetail
  619. WHERE ID IN ({0}) and WorkPoint ='{1}' ", keyValue.TrimEnd(','), WorkPoint);
  620. try
  621. {
  622. SqlHelper.ExecuteNonQuery(sql);
  623. }
  624. catch (Exception ex)
  625. {
  626. msg = ex.Message;
  627. }
  628. return msg;
  629. }
  630. /// <summary>
  631. /// 删除对账单
  632. /// </summary>
  633. /// <param name="keyValue"></param>
  634. /// <returns></returns>
  635. public string DeleteDocNo(string keyValue, string WorkPoint)
  636. {
  637. string msg = "";
  638. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  639. WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2);
  640. string sql = string.Empty;
  641. if (string.IsNullOrEmpty(msg))
  642. {
  643. sql = string.Format(@"DELETE FROM ICSCANewDetail WHERE DocNo IN ({0}) and WorkPoint ='{1}'
  644. DELETE FROM ICSCANew WHERE DocNo IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint);
  645. SqlHelper.ExecuteNonQuery(sql);
  646. }
  647. return msg;
  648. }
  649. /// <summary>
  650. /// 删除对账单
  651. /// </summary>
  652. /// <param name="keyValue"></param>
  653. /// <returns></returns>
  654. public string DeleteDocNoSuit(string keyValue, string WorkPoint)
  655. {
  656. string msg = "";
  657. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  658. string sql = string.Empty;
  659. if (string.IsNullOrEmpty(msg))
  660. {
  661. sql = string.Format(@"DELETE FROM ICSCANewDetail WHERE DocNo IN ({0}) and WorkPoint ='{1}'
  662. DELETE FROM ICSCANew WHERE DocNo IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint);
  663. SqlHelper.ExecuteNonQuery(sql);
  664. }
  665. return msg;
  666. }
  667. /// <summary>
  668. /// 更新对账单
  669. /// </summary>
  670. /// <param name="keyValue"></param>
  671. /// <returns></returns>
  672. public string UpdateSTNO(string keyValue, string WorkPoint,string Tax,string detail)
  673. {
  674. string msg = "";
  675. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  676. string[] keyValues = keyValue.Split(',');
  677. string sql = string.Empty;
  678. JArray res = (JArray)JsonConvert.DeserializeObject(detail);
  679. foreach (var item in res)
  680. {
  681. JObject jo = (JObject)item;
  682. sql += "UPDATE ICSCANewDetail SET DeductionAmount='{0}',Filename='{2}' where ID='{1}'";
  683. sql = string.Format(sql, jo["DeductionAmount"].ToString(), jo["ID"].ToString(), jo["Filename"].ToString());
  684. }
  685. sql += "UPDATE ICSCANew SET Tax = {0} WHERE DocNo = {2} AND WorkPoint = '{1}'";
  686. sql = string.Format(sql, Tax, WorkPoint, keyValue.TrimEnd(','));
  687. SqlHelper.CmdExecuteNonQueryLi(sql);
  688. return msg;
  689. }
  690. public int UpDateByDocNo(string keyValue, string Status, string WorkPoint)
  691. {
  692. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  693. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  694. string sql = string.Empty;
  695. if (Status == "0")
  696. {
  697. sql = @"UPDATE ICSCANew SET STATUS = '{1}',PubUser = NULL,PubTime = NULL WHERE DocNo IN ({0})";
  698. sql = string.Format(sql, keyValue.TrimEnd(','), Status);
  699. }
  700. else if (Status == "1")
  701. {
  702. sql = @"UPDATE ICSCANew SET STATUS = '{1}',PubUser = '{2}',PubTime = GETDATE() WHERE DocNo IN ({0})";
  703. sql = string.Format(sql, keyValue.TrimEnd(','), Status, MUSER);
  704. }
  705. return SqlHelper.ExecuteNonQuery(sql);
  706. }
  707. public int UpDateByDocNoAdmin(string keyValue, string Status, string WorkPoint)
  708. {
  709. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  710. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  711. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  712. string sql = string.Empty;
  713. if (Status == "2")
  714. {
  715. sql = @"UPDATE ICSCANew SET STATUS = '{1}',CAComptTime = GETDATE(),CAComptUser = '{2}',ModifyTime = GETDATE(),ModifyUser = '{2}'
  716. WHERE DocNo IN ({0})";
  717. sql = string.Format(sql, keyValue.TrimEnd(','), Status, MUSER);
  718. }
  719. else if (Status == "3")
  720. {
  721. sql = @"UPDATE ICSCANew SET STATUS = '{1}',CAComptTime = NULL,CAComptUser = NULL,ModifyTime =NULL,ModifyUser = NULL
  722. WHERE DocNo IN ({0})";
  723. sql = string.Format(sql, keyValue.TrimEnd(','), Status);
  724. }
  725. return SqlHelper.ExecuteNonQuery(sql);
  726. }
  727. public string ChangeStatusBySTNO(string keyValue)
  728. {
  729. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  730. string msg = "";
  731. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  732. string sql = string.Empty;
  733. sql = "SELECT STNO FROM dbo.ICSPOArrive WHERE STNO IN (" + keyValue.TrimEnd(',') + ")";
  734. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  735. foreach (DataRow dr in dt.Rows)
  736. {
  737. string STNO = dr["STNO"].ToString();
  738. if (!string.IsNullOrEmpty(STNO))
  739. {
  740. msg += "送货单号:" + STNO + "已生成到货单,无法删除!";
  741. }
  742. }
  743. if (string.IsNullOrEmpty(msg))
  744. {
  745. sql = string.Format(@"DELETE FROM dbo.ICSASNDETAIL WHERE STNO IN ({0}) and WorkPoint ='{1}'
  746. DELETE FROM dbo.ICSASN WHERE STNO IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint);
  747. SqlHelper.ExecuteNonQuery(sql);
  748. }
  749. return msg;
  750. }
  751. /// <summary>
  752. /// 删除送货单
  753. /// </summary>
  754. /// <param name="keyValue"></param>
  755. /// <returns></returns>
  756. public string DeleteCartonNo(string keyValue)
  757. {
  758. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  759. string msg = "";
  760. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  761. string sql = string.Format(@"SELECT * FROM dbo.ICSASNDETAIL
  762. WHERE LOTNO IN (
  763. SELECT LotNO FROM dbo.ICSITEMLot2Carton WHERE CartonNO in ({0}) and WorkPoint='{1}') and WorkPoint='{1}'", keyValue.TrimEnd(','), WorkPoint);
  764. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  765. if (dt == null || dt.Rows.Count <= 0)
  766. {
  767. sql = string.Format(@"DELETE FROM dbo.ICSCarton WHERE CartonNO in ({0}) and WorkPoint='{1}'
  768. DELETE FROM dbo.ICSITEMLot2Carton WHERE CartonNO in ({0}) and WorkPoint='{1}' ", keyValue.TrimEnd(','), WorkPoint);
  769. DbHelper.ExecuteNonQuery(CommandType.Text, sql);
  770. }
  771. else
  772. {
  773. msg = "所选箱号中已有加入送货单中,请先在送单号中删除!";
  774. }
  775. return msg;
  776. }
  777. /// <summary>
  778. /// 选择入库采购订单信息
  779. /// </summary>
  780. /// <returns></returns>
  781. public DataTable GetInfoBySelectItemCode(string queryJson, ref Pagination jqgridparam, string WorkPoint)
  782. {
  783. var queryParam = queryJson.ToJObject();
  784. WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2);
  785. List<DbParameter> parameter = new List<DbParameter>();
  786. string Views = SqlHelper.GetItemsDetails("ViewsWorkpoint", WorkPoint);
  787. // string sql = @"SELECT distinct c.ID,a.STNO,b.STLINE,CONVERT(varchar(100),c.MTime,23) AS RECEIVEDATE,e.INVCODE,e.INVNAME,c.LotNO,
  788. // CAST(c.LOTQTY AS DECIMAL(18,2)) AS LOTQTY,b.UNIT,a.STDESC,f.POCode,f.PORow
  789. // FROM ICSASN a
  790. // LEFT JOIN ICSASNDETAIL b ON a.STNO = b.STNO AND a.WorkPoint = b.WorkPoint
  791. // LEFT JOIN ICSITEMLot c ON b.LOTNO = c.LotNO AND b.WorkPoint = c.WorkPoint
  792. // LEFT JOIN ICSITEMLot2Carton d ON c.LotNO = d.LotNO AND c.WorkPoint = d.WorkPoint
  793. // LEFT JOIN ICSINVENTORY e ON b.ITEMCODE = e.INVCODE AND b.WorkPoint = e.WorkPoint
  794. // LEFT JOIN ICSPO_PoMain f ON c.TransNO = f.POCode AND c.TransLine = f.PORow AND c.WorkPoint = f.WorkPoint
  795. // LEFT JOIN ICSPOArrive g ON g.STNO = a.STNO AND g.WorkPoint = a.WorkPoint
  796. // WHERE g.Free2 = '收' AND c.LotNO NOT IN (SELECT INVCODE FROM ICSCADetail) ";
  797. string sql =
  798. // @"SELECT distinct a.AutoID,a.cInvCode,c.invname,SUM(ISNULL(a.iquantity,0))AS RKQty,a.cpoid,a.ivouchrowno,
  799. // SUM(ISNULL(a.iquantity,0))-SUM(ISNULL(CAST(b.Qty AS DECIMAL(18,2)),0))AS KDqty,SUM(ISNULL(CAST(b.Qty AS DECIMAL(18,2)),0))AS YDqty,
  800. // d.vencode,d.venname,d.WorkPoint,c.INVSTD,a.ioriSum,a.iOriMoney,a.iOriTaxPrice
  801. // FROM icspo_pomain d
  802. // LEFT JOIN Viewrd01 a ON d.pocode=a.cpoid AND d.porow=a.ivouchrowno
  803. // LEFT JOIN icscaNewDetail b ON b.EATTRIBUTE1=a.AutoID
  804. // LEFT JOIN ICSINVENTORY c ON a.cInvCode=c.invcode AND d.WorkPoint=c.WorkPoint
  805. //
  806. // WHERE ISNULL(a.iquantity,0)-ISNULL(qty,0)<>0
  807. // and (isnull(ISUrgent,'')<>'关闭'and isnull(ISUrgent,'')<>'弃审')
  808. // ";
  809. @"SELECT distinct a.AutoID,a.cInvCode,c.invname,SUM(ISNULL(a.iquantity,0))AS RKQty,a.cpoid,a.ivouchrowno,
  810. SUM(ISNULL(a.iquantity,0))-SUM(ISNULL(CAST(b.Qty AS DECIMAL(18,2)),0))AS KDqty,SUM(ISNULL(CAST(b.Qty AS DECIMAL(18,2)),0))AS YDqty,
  811. d.vencode,e.venname,d.WorkPoint,c.INVSTD,a.ioriSum,a.iOriMoney,a.iOriTaxPrice
  812. FROM ICSPurchaseOrder d
  813. LEFT JOIN " + Views + @" a ON d.pocode=CONVERT(nvarchar(20),a.cpoid) AND d.Sequence=CONVERT(nvarchar(20),a.ivouchrowno)
  814. LEFT JOIN icscaNewDetail b ON b.EATTRIBUTE1=a.AutoID
  815. LEFT JOIN ICSINVENTORY c ON a.cInvCode=c.invcode AND d.WorkPoint=c.WorkPoint
  816. LEFT JOIN dbo.ICSVendor e ON d.VenCode=e.VenCode AND d.WorkPoint=e.WorkPoint
  817. WHERE ISNULL(a.iquantity,0)-ISNULL(qty,0)<>0
  818. and (isnull(Status,'')<>''and isnull(Status,'')<>'')
  819. ";
  820. // --AND a.STNO NOT IN (SELECT Src_ASNDocNo FROM ICSCADetail)
  821. if (!string.IsNullOrEmpty(queryJson))
  822. {
  823. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  824. sql += " and a.cInvCode like '%" + queryParam["InvCode"].ToString() + "%'";
  825. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  826. sql += " and c.invname like '%" + queryParam["InvName"].ToString() + "%'";
  827. if (!string.IsNullOrWhiteSpace(queryParam["PORow"].ToString()))
  828. sql += " and a.ivouchrowno like '%" + queryParam["PORow"].ToString() + "%'";
  829. if (!string.IsNullOrWhiteSpace(queryParam["PoCode"].ToString()))
  830. sql += " and a.cpoid like '%" + queryParam["PoCode"].ToString() + "%'";
  831. }
  832. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  833. sql += " and a.cVenCode in (SELECT VenCode FROM ICSVendor where VenName ='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "' AND WorkPoint=d.WorkPoint)";
  834. else
  835. sql += " and a.cVenCode='" + queryParam["VenCode"].ToString() + "'";
  836. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  837. sql += " and d.WorkPoint='" + WorkPoint + "'";
  838. sql += " GROUP BY a.AutoID,a.cInvCode,c.invname,a.cpoid,a.ivouchrowno,d.vencode,e.venname,d.WorkPoint,c.INVSTD,a.ioriSum,a.iOriMoney,a.iOriTaxPrice";
  839. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  840. }
  841. public string GetDocNo(string Tax, string WorkPoint, string Vendor)
  842. {
  843. string DocNo = string.Empty;
  844. //string SupplierCode = NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode;
  845. string SupplierName = string.Empty;
  846. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  847. if (!string.IsNullOrEmpty(Vendor))
  848. {
  849. string Date = DateTime.Now.ToString("yy");
  850. string Pre = "AS" + Vendor + Date;
  851. DocNo = GetSerialCode(WorkPoint, "ICSCANew", "DocNo", Pre, 5);
  852. SupplierName = GetSupplierName(Vendor, WorkPoint);
  853. }
  854. if (!string.IsNullOrEmpty(DocNo))
  855. {
  856. string sql = string.Empty;
  857. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  858. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  859. sql = @"INSERT INTO ICSCANew (ID,DocNo,Status,SupplierCode,SupplierName,Tax,WorkPoint,MUSER,MUSERName,MTIME)
  860. VALUES (NEWID(),'{0}',0,'{1}','{2}','{3}','{4}','{5}','{6}',GETDATE())";
  861. sql = string.Format(sql, DocNo, Vendor, SupplierName, Tax, WorkPoint, MUSER, MUSERNAME);
  862. try
  863. {
  864. SqlHelper.ExecuteNonQuery(sql);
  865. }
  866. catch (Exception ex)
  867. {
  868. throw new Exception(ex.Message);
  869. }
  870. }
  871. return DocNo;
  872. }
  873. public string GetDocNoByPerson(string SupplierCode, string Tax, string WorkPoint)
  874. {
  875. string DocNo = string.Empty;
  876. string Date = DateTime.Now.ToString("yy");
  877. string Pre = "AS" + SupplierCode + Date;
  878. DocNo = GetSerialCode(WorkPoint, "ICSCANew", "DocNo", Pre, 5);
  879. if (!string.IsNullOrEmpty(DocNo))
  880. {
  881. string sql = string.Empty;
  882. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  883. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  884. string SupplierName = GetSupplierName(SupplierCode, WorkPoint);
  885. sql = @"INSERT INTO ICSCANew (ID,DocNo,Status,SupplierCode,SupplierName,Tax,WorkPoint,MUSER,MUSERName,MTIME)
  886. VALUES (NEWID(),'{0}',0,'{1}','{2}','{3}','{4}','{5}','{6}',GETDATE())";
  887. sql = string.Format(sql, DocNo, SupplierCode, SupplierName, Tax, WorkPoint, MUSER, MUSERNAME);
  888. try
  889. {
  890. SqlHelper.ExecuteNonQuery(sql);
  891. }
  892. catch (Exception ex)
  893. {
  894. throw new Exception(ex.Message);
  895. }
  896. }
  897. return DocNo;
  898. }
  899. public string GetSupplierName(string SupplierCode, string WorkPoint)
  900. {
  901. string sql = @"SELECT VenName FROM ICSVendor WHERE VenCode = '{0}' and WorkPoint='{1}'";
  902. sql = string.Format(sql, SupplierCode, WorkPoint);
  903. try
  904. {
  905. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  906. if (dt != null && dt.Rows.Count > 0 && !string.IsNullOrEmpty(dt.Rows[0][0].ToString()))
  907. return dt.Rows[0][0].ToString();
  908. else
  909. return "";
  910. }
  911. catch (Exception ex)
  912. {
  913. throw new Exception(ex.Message);
  914. }
  915. }
  916. public string CheckSTNO_ItemCode(string JsonData, string DocNo, string WorkPoint)
  917. {
  918. string msg = "";
  919. string sql = string.Empty;
  920. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  921. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  922. string Views = SqlHelper.GetItemsDetails("ViewsWorkpoint", WorkPoint);
  923. //WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  924. // string sqlMax = "SELECT MAX( cast(DocLineNo AS int))as DocLineNo FROM ICSCANewDetail Where DocNo='{0}'";
  925. // sqlMax = string.Format(sqlMax, DocNo);
  926. // DataTable dtInInfo = SqlHelper.GetDataTableBySql(sqlMax);
  927. // int Line;
  928. // if (string.IsNullOrWhiteSpace(dtInInfo.Rows[0]["DocLineNo"].ToString()))
  929. // {
  930. // Line = 0;
  931. // }
  932. // else
  933. // {
  934. // Line = Convert.ToInt32(dtInInfo.Rows[0]["DocLineNo"].ToString());
  935. // }
  936. //string[] PrintParas = JsonData.TrimEnd(',').Split(',');
  937. //for (int i = 0; i < PrintParas.Length; i++)
  938. // {
  939. // int rows = Line + i + 1;
  940. //添加入库单号
  941. sql =
  942. // @" INSERT INTO ICSCANewDetail(ID,DocNo,POCode,PoRow,
  943. // Qty,MUSER,MUSERName,MTIME,WorkPoint,InvCode,EATTRIBUTE1,EATTRIBUTE2)
  944. // SELECT NEWID(),'{0}',cpoid,ivouchrowno,iquantity,
  945. // '{1}','{2}',GETDATE(),'{3}',cInvCode,AutoID,cCode
  946. // FROM Viewrd01 a
  947. // LEFT JOIN icscaNewDetail b ON a.AutoID=b.EATTRIBUTE1
  948. // WHERE AutoID IN (" + JsonData.TrimEnd(',')+ ") and b.EATTRIBUTE1 IS NULL";
  949. @" INSERT INTO ICSCANewDetail(ID,DocNo,POCode,PoRow,
  950. Qty,MUSER,MUSERName,MTIME,WorkPoint,InvCode,EATTRIBUTE1,EATTRIBUTE2)
  951. SELECT NEWID(),'{0}',cpoid,ivouchrowno,iquantity,
  952. '{1}','{2}',GETDATE(),'{3}',cInvCode,AutoID,cCode
  953. FROM " + Views + @" a
  954. LEFT JOIN icscaNewDetail b ON a.AutoID=b.EATTRIBUTE1
  955. WHERE AutoID IN (" + JsonData.TrimEnd(',') + ") and b.EATTRIBUTE1 IS NULL";
  956. sql = string.Format(sql, DocNo, MUSER, MUSERNAME, WorkPoint);
  957. //}
  958. //第一步:批量获取查询结果到DataTable对象中
  959. // DataTable dt = new DataTable();
  960. // dt.Columns.Add("ID");
  961. // dt.Columns.Add("DocNo");
  962. // dt.Columns.Add("DocLineNo");
  963. // dt.Columns.Add("POCode");
  964. // dt.Columns.Add("PoRow");
  965. // dt.Columns.Add("Qty");
  966. // dt.Columns.Add("MUSER");
  967. // dt.Columns.Add("MUSERName");
  968. // dt.Columns.Add("MTIME");
  969. // dt.Columns.Add("WorkPoint");
  970. // dt.Columns.Add("InvCode");
  971. // dt.Columns.Add("EATTRIBUTE1");
  972. // for (int i = 0; i < PrintParas.Length; i++)
  973. // {
  974. // int rows = Line + i + 1;
  975. // StringBuilder sb = new StringBuilder();
  976. // sb.AppendLine("SELECT");
  977. // sb.AppendLine("NEWID() ID");
  978. // sb.AppendLine(",'{0}' DocNo");
  979. // sb.AppendLine(",{4} DocLineNo");
  980. // sb.AppendLine(",cpoid POCode");
  981. // sb.AppendLine(",ivouchrowno PoRow");
  982. // sb.AppendLine(",iquantity Qty");
  983. // sb.AppendLine(",'{1}' MUSER");
  984. // sb.AppendLine(",'{2}' MUSERName");
  985. // sb.AppendLine(",GETDATE() MTIME");
  986. // sb.AppendLine(",'{3}' WorkPoint");
  987. // sb.AppendLine(",cInvCode InvCode");
  988. // sb.AppendLine(",AutoID EATTRIBUTE1");
  989. // sb.AppendLine("FROM Viewrd01 a");
  990. // sb.AppendLine("LEFT JOIN icscaNewDetail b ON a.AutoID=b.EATTRIBUTE1");
  991. // sb.AppendLine("WHERE AutoID = " + PrintParas[i] + " and b.EATTRIBUTE1 IS NULL");
  992. // string _sql = string.Format(sb.ToString(), DocNo, MUSER, MUSERNAME, WorkPoint, rows);
  993. // DataTable _dt = SqlHelper.GetDataTableBySql(_sql);
  994. // foreach (DataRow dataRow in _dt.Rows)
  995. // {
  996. // DataRow dr = dt.Rows.Add();
  997. // dr["ID"] = dataRow["ID"].ToString();
  998. // dr["DocNo"] = dataRow["DocNo"].ToString();
  999. // dr["DocLineNo"] = dataRow["DocLineNo"].ToString();
  1000. // dr["POCode"] = dataRow["POCode"].ToString();
  1001. // dr["PoRow"] = dataRow["PoRow"].ToString();
  1002. // dr["Qty"] = dataRow["Qty"].ToString();
  1003. // dr["MUSER"] = dataRow["MUSER"].ToString();
  1004. // dr["MUSERName"] = dataRow["MUSERName"].ToString();
  1005. // dr["MTIME"] = dataRow["MTIME"].ToString();
  1006. // dr["WorkPoint"] = dataRow["WorkPoint"].ToString();
  1007. // dr["InvCode"] = dataRow["InvCode"].ToString();
  1008. // dr["EATTRIBUTE1"] = dataRow["EATTRIBUTE1"].ToString();
  1009. // }
  1010. // }
  1011. // //第二步:将查询得到的数据批量insert到表ICSCANewDetail中
  1012. // string insert_sql = @"insert into ICSCANewDetail (ID,DocNo,DocLineNo,POCode,PoRow,
  1013. // Qty,MUSER,MUSERName,MTIME,WorkPoint,InvCode,EATTRIBUTE1) values";
  1014. // foreach (DataRow item in dt.Rows)
  1015. // {
  1016. // insert_sql += "(";
  1017. // insert_sql += "'" + item["ID"] + "',";
  1018. // insert_sql += "'" + item["DocNo"] + "',";
  1019. // insert_sql += "'" + item["DocLineNo"] + "',";
  1020. // insert_sql += "'" + item["POCode"] + "',";
  1021. // insert_sql += "'" + item["PoRow"] + "',";
  1022. // insert_sql += "'" + item["Qty"] + "',";
  1023. // insert_sql += "'" + item["MUSER"] + "',";
  1024. // insert_sql += "'" + item["MUSERName"] + "',";
  1025. // insert_sql += "'" + item["MTIME"] + "',";
  1026. // insert_sql += "'" + item["WorkPoint"] + "',";
  1027. // insert_sql += "'" + item["InvCode"] + "',";
  1028. // insert_sql += "'" + item["EATTRIBUTE1"] + "'";
  1029. // insert_sql += "),";
  1030. // }
  1031. // //第三步:处理批量插入语句
  1032. // insert_sql = insert_sql.Trim(',');//去除批量插入语句中最后的逗号
  1033. // int rowCount = SqlHelper.ExecuteNonQuery(insert_sql);//提交批量插入语句并返回受影响的行数
  1034. // if (rowCount > 0)
  1035. // {
  1036. // //写入成功
  1037. // }
  1038. try
  1039. {
  1040. SqlHelper.ExecuteNonQuery(sql);
  1041. }
  1042. catch (Exception ex)
  1043. {
  1044. msg = ex.Message;
  1045. }
  1046. return msg;
  1047. }
  1048. public string CheckSTNO_CartonNo(string JsonData, string STNO)
  1049. {
  1050. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1051. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1052. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1053. string msg = "";
  1054. string sql = string.Empty;
  1055. sql = @"INSERT INTO dbo.ICSASNDETAIL
  1056. ( ASNDETAILID ,CREATEDATE ,CREATETIME ,CREATEUSER ,
  1057. ITEMCODE ,ITEMNAME ,LOGDATE ,LOGTIME ,LOGUSER ,
  1058. LOTNO ,PLANQTY ,STDSTATUS ,STLINE ,
  1059. STNO ,WorkPoint)
  1060. SELECT NEWID(),GETDATE(),GETDATE(),'" + MUSER + @"',
  1061. a.INVCODE,b.INVNAME,GETDATE(),GETDATE(),'" + MUSER + @"',
  1062. a.LotNO,c.LOTQTY,'0',0,
  1063. '" + STNO + "','" + WorkPoint + @"'
  1064. FROM dbo.ICSITEMLot2Carton a
  1065. LEFT JOIN dbo.ICSINVENTORY b ON a.INVCODE=b.INVCODE AND a.WorkPoint=b.WorkPoint
  1066. LEFT JOIN dbo.ICSITEMLot c ON a.LotNo_ID=c.ID AND a.WorkPoint=c.WorkPoint
  1067. WHERE a.CartonNO IN (" + JsonData.TrimEnd(',') + ") and a.WorkPoint='" + WorkPoint + "'";
  1068. try
  1069. {
  1070. SqlHelper.ExecuteNonQuery(sql);
  1071. }
  1072. catch (Exception ex)
  1073. {
  1074. throw new Exception(ex.Message);
  1075. }
  1076. return msg;
  1077. }
  1078. /// <summary>
  1079. /// 获取箱号主表信息
  1080. /// </summary>
  1081. /// <param name="queryJson"></param>
  1082. /// <param name="jqgridparam"></param>
  1083. /// <returns></returns>
  1084. public DataTable GetCartonGridJson(string queryJson, ref Pagination jqgridparam)
  1085. {
  1086. DataTable dt = new DataTable();
  1087. var queryParam = queryJson.ToJObject();
  1088. List<DbParameter> parameter = new List<DbParameter>();
  1089. string sql = @"SELECT Serial,a.CartonNO,CartonStatus,PrintTimes,
  1090. lastPrintTime,a.MUSERName,a.MTIME,EATTRIBUTE8
  1091. FROM dbo.ICSCarton a
  1092. LEFT JOIN
  1093. (SELECT COUNT(x.LotNO) AS LotNoCount,CartonNO,x.WorkPoint FROM dbo.ICSITEMLot2Carton x
  1094. LEFT JOIN dbo.ICSITEMLot y ON x.LotNO=y.LotNO AND x.WorkPoint=y.WorkPoint
  1095. GROUP BY CartonNO,x.WorkPoint) b ON a.CartonNO=b.CartonNO AND a.WorkPoint=b.WorkPoint
  1096. WHERE b.LotNoCount>0 and a.EATTRIBUTE3='SRM'
  1097. AND a.CartonNo not IN
  1098. (SELECT b.CartonNO FROM dbo.ICSASNDETAIL a inner JOIN dbo.ICSITEMLot2Carton b ON a.LOTNO =b.LotNO AND a.WorkPoint=b.WorkPoint)
  1099. ";
  1100. if (!string.IsNullOrWhiteSpace(queryJson))
  1101. {
  1102. if (!string.IsNullOrWhiteSpace(queryParam["CartonNo"].ToString()))
  1103. {
  1104. sql += " and a.CartonNO like '%" + queryParam["CartonNo"].ToString() + "%' ";
  1105. }
  1106. if (!string.IsNullOrWhiteSpace(queryParam["OrderNo"].ToString()))
  1107. {
  1108. sql += " and b.OrderNO like '%" + queryParam["OrderNo"].ToString() + "%' ";
  1109. }
  1110. if (!string.IsNullOrWhiteSpace(queryParam["TransNo"].ToString()))
  1111. {
  1112. sql += " and b.TransNO like '%" + queryParam["TransNO"].ToString() + "%' ";
  1113. }
  1114. if (!string.IsNullOrWhiteSpace(queryParam["TransLine"].ToString()))
  1115. {
  1116. sql += " and b.TransLine like '%" + queryParam["TransLine"].ToString() + "%' ";
  1117. }
  1118. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  1119. {
  1120. sql += " and a.EATTRIBUTE8 like '%" + queryParam["VenCode"].ToString() + "%' ";
  1121. }
  1122. }
  1123. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1124. {
  1125. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1126. }
  1127. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1128. }
  1129. /// <summary>
  1130. /// 箱号子表查询
  1131. /// </summary>
  1132. /// <param name="CartonNo"></param>
  1133. /// <param name="jqgridparam"></param>
  1134. /// <returns></returns>
  1135. public DataTable GetCartonSubGridJson(string CartonNo, ref Pagination jqgridparam)
  1136. {
  1137. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1138. DataTable dt = new DataTable();
  1139. //var queryParam = queryJson.ToJObject();
  1140. List<DbParameter> parameter = new List<DbParameter>();
  1141. string sql = @"SELECT a.LotNO, a.ID,c.ItemCODE,d.INVNAME,c.VenderLotNO,c.LOTQTY,
  1142. c.TYPE,b.EATTRIBUTE8,c.ORDERNO,c.TransNO,c.TransLine,d.INVDESC,d.INVTYPE,e.MEMO,d.INVSTD,d.INVPARSETYPE
  1143. FROM dbo.ICSITEMLot2Carton a
  1144. LEFT JOIN dbo.ICSCarton b ON a.CartonNO=b.CartonNO AND a.WorkPoint=b.WorkPoint
  1145. LEFT JOIN dbo.ICSITEMLot c ON a.LotNo_ID=c.ID AND a.WorkPoint=c.WorkPoint
  1146. LEFT JOIN dbo.ICSINVENTORY d ON c.ItemCODE=d.INVCODE AND a.WorkPoint=d.WorkPoint
  1147. LEFT JOIN dbo.ICSPO_PoMain e ON c.TransNO=e.POCode AND c.TransLine =e.PORow AND a.WorkPoint=e.WorkPoint
  1148. WHERE a.CartonNO='" + CartonNo + "' and a.WorkPoint='" + WorkPoint + "'";
  1149. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1150. }
  1151. public DataTable GetCAListGridJson(string queryJson, ref Pagination jqgridparam)
  1152. {
  1153. var queryParam = queryJson.ToJObject();
  1154. List<DbParameter> parameter = new List<DbParameter>();
  1155. string sql = @"SELECT a.ID,a.DocNo AS ASDocNo,c.InvCode,c.InvName,c.InvStd,
  1156. CAST(c.YSHQty AS DECIMAL(18,2)) AS RkQty,
  1157. c.InvUom,CAST(c.POPrice AS DECIMAL(18,2)) AS PoPrice,
  1158. CAST(c.POPrice*a.Tax AS DECIMAL(18,2)) AS TotalPrice,
  1159. CONVERT(VARCHAR(100),a.MTIME,23) AS ASDate,
  1160. CASE a.Status WHEN 0 THEN '' WHEN 1 THEN '' WHEN 2 THEN '' WHEN 3 THEN '退' END STATUS,
  1161. b.Src_ASNDocNo AS DNDocNo,c.POCode AS POCode,CONVERT(VARCHAR(100),c.PODate,23) AS PODate,a.SupplierCode
  1162. FROM ICSCANew a
  1163. INNER JOIN ICSCANewDetail b ON a.DocNo = b.DocNo
  1164. LEFT JOIN view_PoMain c ON b.InvCode = c.LotNO
  1165. WHERE 1=1";
  1166. if (!string.IsNullOrEmpty(queryJson))
  1167. {
  1168. if (!string.IsNullOrWhiteSpace(queryParam["ASDocNo"].ToString()))
  1169. sql += " AND a.DocNo like '%" + queryParam["ASDocNo"].ToString() + "%'";
  1170. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1171. sql += " AND c.InvCode like '%" + queryParam["InvCode"].ToString() + "%'";
  1172. if (!string.IsNullOrWhiteSpace(queryParam["DNDocNo"].ToString()))
  1173. sql += " AND b.Src_ASNDocNo like '%" + queryParam["DNDocNo"].ToString() + "%'";
  1174. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1175. sql += " AND c.POCode like '%" + queryParam["POCode"].ToString() + "%'";
  1176. }
  1177. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  1178. sql += " AND a.SupplierCode in (SELECT VenCode FROM ICSVendor where VenName = '" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "'AND WorkPoint=a.WorkPoint)";
  1179. sql += " AND a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1180. sql += @" GROUP BY a.ID,a.DocNo,c.InvCode,c.InvName,c.InvStd,c.InvUom,c.POPrice,a.MTIME,a.Status,b.Src_ASNDocNo,
  1181. c.POCode,c.PODate,a.SupplierCode,a.Tax,c.YSHQty ";
  1182. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1183. }
  1184. public DataTable GetASNListExport(string keyVaule)
  1185. {
  1186. //var queryParam = queryJson.ToJObject();
  1187. List<DbParameter> parameter = new List<DbParameter>();
  1188. string sql = @"SELECT a.STNO AS 送货单号,a.ITEMCODE 物料编码,d.INVNAME 物料名称,d.INVSTD AS 规格型号,
  1189. d.INVPARSETYPE AS
  1190. ,d.INVTYPE 1,d.INVDESC 2,h.ReMark ,case
  1191. when a.RECEIVEQTY is null then '否'
  1192. else '是'
  1193. end as ,
  1194. a.LOTNO ,b.VenderLotNO ,
  1195. b.LOTQTY ,c.CartonNO ,e.VENDORCODE ,f.cVenName ,
  1196. b.TransNO ,b.TransLine ,g.F_RealName , CONVERT(NVARCHAR(50),e.CREATETIME,23) as CREATETIME
  1197. FROM dbo.ICSASNDETAIL a
  1198. LEFT JOIN dbo.ICSITEMLot b ON a.LOTNO=b.LotNO AND a.WorkPoint=b.WorkPoint
  1199. LEFT JOIN dbo.ICSITEMLot2Carton c ON a.LOTNO=c.LotNO AND a.WorkPoint=c.WorkPoint
  1200. LEFT JOIN dbo.ICSINVENTORY d ON a.ITEMCODE=d.INVCODE AND a.WorkPoint=d.WorkPoint
  1201. LEFT JOIN dbo.ICSASN e ON a.STNO=e.STNO AND a.WorkPoint=e.WorkPoint
  1202. LEFT JOIN dbo.ICSVendor f ON e.VENDORCODE=f.VenCode AND a.WorkPoint=f.WorkPoint
  1203. LEFT JOIN dbo.Sys_SRM_User g ON e.LOGUSER=g.F_Account
  1204. LEFT JOIN dbo.ICSPO_PoMain h ON b.TransNO=h.POCode AND b.TransLine=h.PORow AND a.WorkPoint=h.WorkPoint where 1=1";
  1205. sql += " and a.ASNDETAILID in (" + keyVaule + ")";
  1206. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1207. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1208. return dt;
  1209. }
  1210. public DataTable GetASNListExport(string ORDERNO, string STNO, string BeginDate, string EndDate, string VenCode, string VenName, string VenderLotNO, string IsReceive)
  1211. {
  1212. //var queryParam = queryJson.ToJObject();
  1213. List<DbParameter> parameter = new List<DbParameter>();
  1214. string sql = @"SELECT a.STNO AS 送货单号,h.ORDERNO as 项目号,a.ITEMCODE 物料编码,d.INVNAME 物料名称,
  1215. d.INVSTD AS ,d.INVPARSETYPE AS ,
  1216. d.INVTYPE 1,d.INVDESC 2,h.ReMark ,case
  1217. when a.RECEIVEQTY is null then '否'
  1218. else '是'
  1219. end as ,
  1220. a.LOTNO ,b.VenderLotNO ,
  1221. b.LOTQTY ,c.CartonNO ,e.VENDORCODE ,f.cVenName ,
  1222. b.TransNO ,b.TransLine ,g.F_RealName ,CONVERT(NVARCHAR(50),e.CREATETIME,23) as CREATETIME
  1223. FROM dbo.ICSASNDETAIL a
  1224. LEFT JOIN dbo.ICSITEMLot b ON a.LOTNO=b.LotNO AND a.WorkPoint=b.WorkPoint
  1225. LEFT JOIN dbo.ICSITEMLot2Carton c ON a.LOTNO=c.LotNO AND a.WorkPoint=c.WorkPoint
  1226. LEFT JOIN dbo.ICSINVENTORY d ON a.ITEMCODE=d.INVCODE AND a.WorkPoint=d.WorkPoint
  1227. LEFT JOIN dbo.ICSASN e ON a.STNO=e.STNO AND a.WorkPoint=e.WorkPoint
  1228. LEFT JOIN dbo.ICSVendor f ON e.VENDORCODE=f.VenCode AND a.WorkPoint=f.WorkPoint
  1229. LEFT JOIN dbo.Sys_SRM_User g ON e.LOGUSER=g.F_Account
  1230. LEFT JOIN dbo.ICSPO_PoMain h ON b.TransNO=h.POCode AND b.TransLine=h.PORow AND a.WorkPoint=h.WorkPoint where 1=1";
  1231. if (!string.IsNullOrWhiteSpace(ORDERNO))
  1232. sql += " and a.ORDERNO like '%" + ORDERNO + "%'";
  1233. if (!string.IsNullOrWhiteSpace(STNO))
  1234. sql += " and a.STNO like '%" + STNO + "%'";
  1235. if (!string.IsNullOrWhiteSpace(BeginDate))
  1236. sql += " and e.CREATETIME >= '" + BeginDate + "'";
  1237. if (!string.IsNullOrWhiteSpace(BeginDate))
  1238. sql += " and e.CREATETIME <= '" + EndDate + "'";
  1239. if (!string.IsNullOrWhiteSpace(VenCode))
  1240. sql += " and e.VENDORCODE like '%" + VenCode + "%'";
  1241. if (!string.IsNullOrWhiteSpace(VenCode))
  1242. sql += " and f.cVenName like '%" + VenName + "%'";
  1243. if (!string.IsNullOrWhiteSpace(VenderLotNO))
  1244. sql += " and b.VenderLotNO like '%" + VenderLotNO + "%'";
  1245. if (IsReceive == "1")
  1246. {
  1247. sql += " and isnull(a.RECEIVEQTY,0)<>0";
  1248. }
  1249. else if (IsReceive == "2")
  1250. {
  1251. sql += " and isnull(a.RECEIVEQTY,0)=0";
  1252. }
  1253. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  1254. {
  1255. sql += " and f.cVenCode in (SELECT VenCode FROM ICSVendor where VenName ='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "'AND WorkPoint=a.WorkPoint)";
  1256. }
  1257. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1258. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1259. return dt;
  1260. }
  1261. public string CheckIsAll(string STNO)
  1262. {
  1263. string sql = @"SELECT * FROM dbo.ICSASNDETAIL WHERE STNO='" + STNO + "' AND ISNULL(RECEIVEQTY,0)<>0";
  1264. sql += " and WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1265. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1266. if (dt != null && dt.Rows.Count > 0)
  1267. {
  1268. return "0";
  1269. }
  1270. else
  1271. {
  1272. return "1";
  1273. }
  1274. }
  1275. public void ISCA(string queryJson, string WorkPoint)
  1276. {
  1277. string sql = string.Empty;
  1278. WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2);
  1279. queryJson = queryJson.Substring(1, queryJson.Length - 2);
  1280. string msg = string.Empty;
  1281. try
  1282. {
  1283. try
  1284. {
  1285. sql = @"SELECT * FROM dbo.ICSCADetail a
  1286. WHERE a.InvCode in({0})
  1287. ";
  1288. sql = string.Format(sql, queryJson.TrimEnd(','), WorkPoint);
  1289. DataTable dtID = SqlHelper.GetDataTableBySql(sql);
  1290. if (dtID.Rows.Count > 0)
  1291. {
  1292. throw new Exception("条码已加入对账单");
  1293. }
  1294. }
  1295. catch (Exception ex)
  1296. {
  1297. throw new Exception(ex.Message);
  1298. }
  1299. }
  1300. catch (Exception ex)
  1301. {
  1302. throw new Exception(ex.Message);
  1303. }
  1304. }
  1305. public DataTable GetPOListExport(string DocNo, string WorkPoint)
  1306. {
  1307. //string sqlU9 = "SELECT DBIpAddress,DBName FROM dbo.Sys_DataBase WHERE DBSourceName='ERP'";
  1308. //DataTable dtU9 = SqlHelper.GetDataTableBySql(sqlU9);
  1309. //string U9IP = dtU9.Rows[0]["DBIpAddress"].ToString();
  1310. //string DBName = dtU9.Rows[0]["DBName"].ToString();
  1311. string DBLANK = SqlHelper.GetItemsDetails("ERP001", WorkPoint);
  1312. string Views = SqlHelper.GetItemsDetails("ViewsWorkpoint", WorkPoint);
  1313. // string sql = @" SELECT DISTINCT
  1314. // a.DocNo as 对账单号,
  1315. // a.DocLineNo as 对账单行号,
  1316. // a.pocode as 采购订单号,
  1317. // a.porow as 采购订单行号,
  1318. // c.invcode as 物料编码,
  1319. // c.invName as 物料名称,
  1320. // c.InvStd as 规格型号,
  1321. // --a.Qty as 对账数量,--rd.iQuantity
  1322. // d.quantity as 订单数量,
  1323. // rd.irowno as 入库单行号 ,
  1324. // rd.ccode as 入库单号,
  1325. // CAST(rd.iquantity AS DECIMAL(18,2)) as 入库数量,
  1326. // d.UnitPrice as 单价,
  1327. // ISNULL(rd.ioriSum,0) AS 原币价税合计,
  1328. // ISNULL(rd.iOriMoney,0) AS 原币无税金额,
  1329. // ISNULL(rd.iOriTaxPrice,0) AS 原币税额
  1330. // FROM (select isnull(CAST(qty AS DECIMAL(18,2)),0) AS Qty,ID,DocNo,DocLineNo,pocode,porow,
  1331. // Remark,EATTRIBUTE1,WorkPoint
  1332. // from ICSCANewDetail
  1333. // ) a
  1334. //LEFT JOIN dbo.ICSPurchaseOrder d ON a.POCode=d.pocode AND a.porow=d.Sequence and a.WorkPoint=d.WorkPoint
  1335. // LEFT JOIN ( select rd01.iPOsID,rd01.cPOID ,rd01.irowno,rd02.ccode,rd01.iquantity,rd01.AutoID,rd01.ioriSum,
  1336. // rd01.iOriMoney,rd01.iOriTaxPrice from {2}.dbo.rdrecords01 rd01
  1337. // left join {2}.dbo.rdrecord01 rd02 on rd01.ID =rd02.ID
  1338. // LEFT JOIN {2}.dbo.PO_Podetails pomain on pomain.ID=rd01.iPOsID
  1339. // ) rd ON d.PODetailID =rd.iPOsID and a.EATTRIBUTE1=rd.AutoID
  1340. // LEFT JOIN " + Views + @" rd ON d.PODetailID =rd.iPOsID and a.EATTRIBUTE1=rd.AutoID
  1341. //LEFT JOIN ICSINVENTORY c ON d.InvCode=c.invCode AND a.WorkPoint=c.WorkPoint
  1342. // WHERE 1=1 AND a.DocNo = '{0}' AND a.WorkPoint = '{1}' ORDER BY a.pocode";
  1343. string sql = @" SELECT DISTINCT
  1344. a.DocNo as ,
  1345. a.DocLineNo as ,
  1346. a.pocode as ,
  1347. a.porow as ,
  1348. c.invcode as ,
  1349. c.invName as ,
  1350. c.InvStd as ,
  1351. --a.Qty as ,--rd.iQuantity
  1352. d.quantity as ,
  1353. rd.irowno as ,
  1354. rd.ccode as ,
  1355. CAST(rd.iquantity AS DECIMAL(18,2)) as ,
  1356. d.UnitPrice as ,
  1357. ISNULL(rd.ioriSum,0) AS ,
  1358. ISNULL(rd.iOriMoney,0) AS ,
  1359. ISNULL(rd.iOriTaxPrice,0) AS
  1360. FROM (select isnull(CAST(qty AS DECIMAL(18,2)),0) AS Qty,ID,DocNo,DocLineNo,pocode,porow,
  1361. Remark,EATTRIBUTE1,WorkPoint
  1362. from ICSCANewDetail
  1363. ) a
  1364. LEFT JOIN dbo.ICSPurchaseOrder d ON a.POCode=d.pocode AND a.porow=d.Sequence and a.WorkPoint=d.WorkPoint
  1365. LEFT JOIN " + Views + @" rd ON d.PODetailID =rd.ID and a.EATTRIBUTE1=rd.AutoID
  1366. LEFT JOIN ICSINVENTORY c ON d.InvCode=c.invCode AND a.WorkPoint=c.WorkPoint
  1367. WHERE 1=1 AND a.DocNo = '{0}' AND a.WorkPoint = '{1}' ORDER BY a.pocode";
  1368. sql = string.Format(sql, DocNo, WorkPoint, DBLANK);
  1369. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1370. return dt;
  1371. }
  1372. public string GetVendorWorkPoint(string WorkPoint)
  1373. {
  1374. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1375. string msg = "";
  1376. string VenCode = "";
  1377. string sql = " SELECT VenCode FROM dbo.ICSVendor WHERE VenName='" + MUSERNAME + "'and WorkPoint='" + WorkPoint + "'";
  1378. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1379. if (dt.Rows.Count > 0)
  1380. {
  1381. VenCode = dt.Rows[0]["VenCode"].ToString();
  1382. }
  1383. else
  1384. {
  1385. msg = "该站点没有供应商信息,请确认!";
  1386. }
  1387. var JsonData = new
  1388. {
  1389. VenCode = VenCode,
  1390. mag = msg
  1391. };
  1392. return (JsonData.ToJson());
  1393. }
  1394. }
  1395. }