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.

445 lines
25 KiB

4 days ago
  1. using NFine.Code;
  2. using NFine.Data.Extensions;
  3. using NFine.Domain._03_Entity.SRM;
  4. using NFine.Repository;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Data;
  8. using System.Data.Common;
  9. using System.Linq;
  10. using System.Text;
  11. using System.Threading.Tasks;
  12. namespace NFine.Application.SRM
  13. {
  14. public class BicDoc_BidResultApp : RepositoryFactory<ICSVendor>
  15. {
  16. public DataTable GetGrid(string queryJson, ref Pagination jqgridparam)
  17. {
  18. DataTable dt = new DataTable();
  19. var queryParam = queryJson.ToJObject();
  20. List<DbParameter> parameter = new List<DbParameter>();
  21. string VenCode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  22. string sql = @" SELECT
  23. Distinct
  24. b.ID,
  25. a.BidCode ,
  26. a.BidName ,
  27. a.BidUser as F_RealName ,
  28. a.StarTime ,
  29. a.EndTime ,
  30. a.BidStatus ,
  31. a.Remark ,
  32. u2.F_RealName as OpenName,
  33. a.OpenTime ,
  34. u3.VenName as Bidder ,
  35. b.BidTime ,
  36. CASE WHEN d.ZBVendorCode = '{0}' THEN '' ELSE '' END AS IsDids,
  37. u4.F_RealName as AwardUser ,
  38. a.BidTime as AwardTime,
  39. a.WorkPoint
  40. FROM ICSBidDoc a
  41. LEFT JOIN ICSBidDocBD e on a.BidCode=e.BidCode
  42. LEFT JOIN ICSBidInfo b ON a.BidCode=b.BidCode and a.WorkPoint=b.WorkPoint
  43. LEFT JOIN (
  44. SELECT X.* FROM ICSBidInfoDetail X
  45. inner JOIN (
  46. SELECT MAX(a.MTIME) AS Mtime ,a.BDID,a.MUSERName FROM ICSBidInfoDetail a
  47. --WHERE a.BDID='6e17547d-0e77-4bed-b4bf-d1fe9ed75470'
  48. GROUP BY a.BDID,a.MUSERName
  49. ) Y
  50. ON X.Mtime=Y.Mtime AND X.BDID=Y.BDID AND X.MUSERName=Y.MUSERName) d ON d.InfoID = b.ID AND d.BDID = e.ID and a.WorkPoint=b.WorkPoint
  51. LEFT JOIN ICSVendor c ON b.SupplierCode = c.VenCode and b.WorkPoint=c.WorkPoint
  52. LEFT JOIN Sys_SRM_User u1 ON a.BidUser = u1.F_Account and a.WorkPoint=u1.F_Location
  53. LEFT JOIN Sys_SRM_User u2 ON a.Tenders = u2.F_Account and a.WorkPoint=u2.F_Location
  54. LEFT JOIN ICSVendor u3 ON b.SupplierCode = u3.VenCode and b.WorkPoint=u3.WorkPoint
  55. LEFT JOIN Sys_SRM_User u4 ON a.Bidder = u4.F_Account and a.WorkPoint=u4.F_Location
  56. WHERE 1=1 and a.BidCode<>'' AND a.BidStatus<>'' AND a.BidStatus<>''";
  57. sql = string.Format(sql, VenCode);
  58. if (!string.IsNullOrWhiteSpace(queryJson))
  59. {
  60. if (!string.IsNullOrWhiteSpace(queryParam["BidCode"].ToString()))
  61. {
  62. sql += " and a.BidCode like '%" + queryParam["BidCode"].ToString() + "%' ";
  63. }
  64. if (!string.IsNullOrWhiteSpace(queryParam["BeginDate"].ToString()))
  65. {
  66. sql += " and b.BidTime >= '" + queryParam["BeginDate"].ToString() + "' ";
  67. }
  68. if (!string.IsNullOrWhiteSpace(queryParam["EndDate"].ToString()))
  69. {
  70. sql += " and b.BidTime <= '" + queryParam["EndDate"].ToString() + "' ";
  71. }
  72. }
  73. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  74. {
  75. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  76. }
  77. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  78. {
  79. sql += " and u3.VenCode in (SELECT VenCode FROM ICSVendor where VenName ='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "'AND WorkPoint=a.WorkPoint)";
  80. }
  81. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  82. }
  83. public DataTable GetSubGridJson(string BidCode, ref Pagination jqgridparam)
  84. {
  85. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  86. DataTable dt = new DataTable();
  87. List<DbParameter> parameter = new List<DbParameter>();
  88. string sql = @"SELECT a.ASNDETAILID, a.LOTNO,a.ITEMCODE,a.ITEMNAME,c.CartonNO,b.LOTQTY,
  89. a.STNO,b.VenderLotNO,b.ORDERNO,b.TransNO,b.TransLine,d.INVDESC,d.INVTYPE,e.MEMO,d.INVSTD,d.INVPARSETYPE
  90. FROM dbo.ICSASNDETAIL a
  91. LEFT JOIN dbo.ICSITEMLot b ON a.LOTNO =b.LotNO AND a.WorkPoint=b.WorkPoint
  92. LEFT JOIN dbo.ICSITEMLot2Carton c ON b.LotNO=c.LotNo AND a.WorkPoint=c.WorkPoint
  93. LEFT JOIN dbo.ICSINVENTORY d ON a.ITEMCODE=d.INVCODE AND a.WorkPoint=d.WorkPoint
  94. LEFT JOIN dbo.ICSPO_PoMain e ON b.TransNO=e.POCode AND b.TransLine=e.PORow AND a.WorkPoint=e.WorkPoint
  95. WHERE b.TYPE='' AND a.STNO='" + BidCode + "' and a.WorkPoint in (" + WorkPoint + ") ";
  96. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  97. }
  98. public DataTable GetICSBidDocInfo(string BidCode,string WorkPoint)
  99. {
  100. string sql = @"SELECT ID, BidCode, BidCurrenCY, BidName, BidUser, StarTime, EndTime, BidStatus,
  101. BidType, Remark, Tenders, OpenTime, Bidder, BidTime, LogTime,
  102. LogUser, WorkPoint, MUSER, MUSERName, MTIME, ENTTRIBUTE1 from dbo.ICSBidDoc
  103. WHERE 1=1
  104. and BidCode='" + BidCode + "' and WorkPoint='" + WorkPoint + "'";
  105. return Repository().FindTableBySql(sql.ToString());
  106. }
  107. public DataTable GetSubGridJsonResult(string BidCode, string WorkPoint, ref Pagination jqgridparam)
  108. {
  109. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  110. string sql = @"SELECT distinct a.ID,a.BidCode,a.RowNo,a.Quantity,a.DeliveryTime,
  111. a.InvCode,b.INVNAME AS InvName,b.InvUnit AS Unit,'ERP' as Source,
  112. d.CastPrice,a.ENTTRIBUTE1,a.ItemType,a.Remark,
  113. CASE WHEN d.IsCast =1 THEN '是' ELSE '否' END AS IsCasts,
  114. CASE WHEN d.ZBVendorCode = '{2}' THEN '' ELSE '' END AS IsDids,f.F_RealName
  115. FROM ICSBidDocBD a
  116. LEFT JOIN ICSINVENTORY b ON a.InvCode=b.INVCODE AND a.WorkPoint=b.WorkPoint
  117. LEFT JOIN ICSBidInfo c ON c.BidCode = a.BidCode AND a.WorkPoint=c.WorkPoint
  118. LEFT JOIN ICSBidInfoDetail d ON d.InfoID = c.ID AND d.BDID = a.ID AND a.WorkPoint=d.WorkPoint
  119. LEFT JOIN ICSVendor e ON e.VenCode = c.SupplierCode AND a.WorkPoint=e.WorkPoint
  120. LEFT JOIN Sys_SRM_User f ON f.F_VenCode = e.VenCode AND a.WorkPoint=f.F_Location
  121. WHERE a.WorkPoint = '{0}' AND c.BidCode='{1}'";
  122. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  123. {
  124. sql += " and f.F_VenCode in (SELECT VenCode FROM ICSVendor where VenName ='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "'AND WorkPoint=a.WorkPoint)";
  125. }
  126. sql = string.Format(sql, WorkPoint, BidCode, MUSER);
  127. return Repository().FindTablePageBySql(sql.ToString(), ref jqgridparam);
  128. }
  129. public DataTable GetGridCourse(string queryJson, ref Pagination jqgridparam)
  130. {
  131. DataTable dt = new DataTable();
  132. var queryParam = queryJson.ToJObject();
  133. List<DbParameter> parameter = new List<DbParameter>();
  134. string wor = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  135. string sql = @"SELECT
  136. a.ID,
  137. a.BidCode ,
  138. a.BidName ,
  139. a.BidUser AS BidUser,
  140. a.StarTime ,
  141. a.EndTime ,
  142. a.BidStatus ,
  143. a.BidStatus as BidStatuss ,
  144. a.Remark ,
  145. c.F_RealName AS Tenders,
  146. a.OpenTime ,
  147. d.F_RealName AS Bidder,
  148. a.BidTime ,
  149. a.WorkPoint
  150. FROM ICSBidDoc a
  151. LEFT JOIN Sys_SRM_User b ON a.BidUser=b.F_Account and a.WorkPoint=b.F_Location
  152. LEFT JOIN Sys_SRM_User c ON a.Tenders=c.F_Account and a.WorkPoint=c.F_Location
  153. LEFT JOIN Sys_SRM_User d ON a.Bidder=d.F_Account and a.WorkPoint=d.F_Location
  154. where 1=1 AND a.BidCode <>''
  155. ";
  156. if (!string.IsNullOrWhiteSpace(queryJson))
  157. {
  158. if (!string.IsNullOrWhiteSpace(queryParam["BidCode"].ToString()))
  159. {
  160. sql += " and a.BidCode like '%" + queryParam["BidCode"].ToString() + "%' ";
  161. }
  162. if (!string.IsNullOrWhiteSpace(queryParam["StarTime"].ToString()))
  163. {
  164. sql += " and a.StarTime >= '" + queryParam["StarTime"].ToString() + "' ";
  165. }
  166. if (!string.IsNullOrWhiteSpace(queryParam["EndTime"].ToString()))
  167. {
  168. sql += " and a.StarTime <= '" + queryParam["EndTime"].ToString() + "' ";
  169. }
  170. if (!string.IsNullOrWhiteSpace(queryParam["selShow"].ToString()))
  171. {
  172. string selShow = queryParam["selShow"].ToString();
  173. if (selShow == "1")
  174. sql += " and BidStatus='已关闭'";
  175. else if (selShow == "2")
  176. sql += "and BidStatus='已决标'";
  177. else if (selShow == "3")
  178. sql += "and BidStatus='招标中'";
  179. else if (selShow == "4")
  180. sql += "and BidStatus='已结束'";
  181. }
  182. }
  183. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  184. {
  185. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  186. }
  187. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  188. {
  189. sql += " and b.F_Account in (SELECT cVenCode FROM ICSVendor where cVenName ='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "'AND WorkPoint=a.WorkPoint)";
  190. }
  191. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  192. }
  193. public DataTable GetSubGridJsonCourse(string BidCode, string WorkPoint, ref Pagination jqgridparam)
  194. {
  195. string sql = @"SELECT distinct a.*,b.INVNAME AS InvName,b.INVSTD AS InvStd,b.INVUOM AS Unit,'ERP' as Source,d.ZBVendorCode
  196. FROM ICSBidDocBD a
  197. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.INVCODE and a.WorkPoint=b.WorkPoint
  198. LEFT JOIN ICSBidInfoDetail d ON d.BDID = a.ID and a.WorkPoint=b.WorkPoint
  199. WHERE a.BidCode = '{0}' and a.WorkPoint='{1}' ";
  200. sql = string.Format(sql, BidCode, WorkPoint);
  201. return Repository().FindTablePageBySql(sql.ToString(), ref jqgridparam);
  202. }
  203. public DataTable GetBidCourseInfo(string BidCode, string WorkPoint,string ID)
  204. {
  205. string sql = @"SELECT a.ID,a.InvCode,b.INVNAME AS InvName,b.INVSTD AS InvStd,b.InvUnit AS InvUnit,
  206. a.Quantity,a.DeliveryTime,a.ENTTRIBUTE1,a.ItemType,a.Remark,c.BidCode,c.BidName
  207. FROM ICSBidDocBD a
  208. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.INVCODE
  209. LEFT JOIN ICSBidDoc c ON a.BidCode = c.BidCode
  210. WHERE a.BidCode='{0}' AND a.ID ='{1}' AND a.WorkPoint='{2}'";
  211. sql = string.Format(sql, BidCode,ID, WorkPoint);
  212. return Repository().FindTableBySql(sql.ToString());
  213. }
  214. public DataTable GetSubGridJsonCourseInfo(string BidCode, string WorkPoint, string ID,ref Pagination jqgridparam)
  215. {
  216. string sql = @" SELECT b.ID,c.VenCode cVenCode,c.VenName cVenName,'ERP'as Source,b.CastPrice,
  217. b.IsDid,a.ID AS InfoID,b.BDID,d.BidStatus,b.ENTTRIBUTE1 AS Remark,
  218. (CASE d.BidStatus WHEN '' THEN (CASE b.IsDid WHEN '1' THEN '' WHEN '0' THEN '' ELSE '' END) ELSE ''END) AS ISDIDStatus
  219. FROM ICSBidInfo a
  220. LEFT JOIN (
  221. SELECT X.* FROM ICSBidInfoDetail X
  222. inner JOIN (
  223. SELECT MAX(a.MTIME) AS Mtime ,a.BDID,a.MUSERName FROM ICSBidInfoDetail a
  224. --WHERE a.BDID='6e17547d-0e77-4bed-b4bf-d1fe9ed75470'
  225. GROUP BY a.BDID,a.MUSERName
  226. ) Y ON X.Mtime=Y.Mtime AND X.BDID=Y.BDID AND X.MUSERName=Y.MUSERName) b ON b.InfoID = a.ID AND a.WorkPoint=b.WorkPoint
  227. LEFT JOIN dbo.ICSVendor c ON a.SupplierCode = c.VenCode and a.WorkPoint=c.WorkPoint
  228. LEFT JOIN ICSBidDoc d ON d.BidCode = a.BidCode and d.WorkPoint=a.WorkPoint
  229. WHERE a.BidCode='{0}' AND b.BDID='{1}'
  230. AND b.IsCast = 1
  231. --AND a.IsSub = 1
  232. AND a.WorkPoint='{2}' ";
  233. sql = string.Format(sql, BidCode,ID,WorkPoint);
  234. return Repository().FindTablePageBySql(sql.ToString(), ref jqgridparam);
  235. }
  236. //public DataTable BidCourseHistoryInfo(string BidCode, string WorkPoint, string InfoID, string BDID, ref Pagination jqgridparam)
  237. //{
  238. // string sql = @" SELECT
  239. // a.ID,
  240. // b.BidCode,
  241. // b.BidName,
  242. // e.INVCODE,
  243. // e.INVNAME,
  244. // g.cVenCode,
  245. // g.cVenName,
  246. // CASE WHEN a.IsCast = 1 THEN '是' ELSE '否' END AS IsCasts,
  247. // a.CastPrice,
  248. // a.MTIME,
  249. // a.MUSERName
  250. // FROM ICSBidInfoLog a
  251. // LEFT JOIN ICSBidDoc b ON a.BidCode = b.BidCode and a.WorkPoint=b.WorkPoint
  252. // LEFT JOIN dbo.Sys_SRM_User c ON b.BidUser = c.F_Account and b.WorkPoint=c.F_Location
  253. // LEFT JOIN ICSBidDocBD d ON a.BDID = d.ID and a.WorkPoint=d.WorkPoint
  254. // LEFT JOIN ICSINVENTORY e ON d.InvCode = e.INVCODE and d.WorkPoint=e.WorkPoint
  255. // LEFT JOIN ICSBidInfo f ON a.InfoID = f.ID and a.WorkPoint=f.WorkPoint
  256. // LEFT JOIN dbo.ICSVendor g ON f.SupplierCode = g.cVenCode and f.WorkPoint=g.WorkPoint
  257. // WHERE a.BidCode='{0}' AND a.InfoID='{1}'
  258. // AND a.BDID='{2}' AND a.WorkPoint = '{3}' ";
  259. // sql = string.Format(sql, BidCode, InfoID, BDID, WorkPoint);
  260. // return Repository().FindTableBySql(sql.ToString());
  261. //}
  262. public DataTable BidCourseHistoryInfo(string BidCode, string WorkPoint, string InfoID, string BDID, ref Pagination jqgridparam)
  263. {
  264. DataTable dt = new DataTable();
  265. List<DbParameter> parameter = new List<DbParameter>();
  266. string sql = @" SELECT
  267. a.ID,
  268. b.BidCode,
  269. b.BidName,
  270. e.INVCODE,
  271. e.INVNAME,
  272. g.VenCode cVenCode,
  273. g.VenName cVenName,
  274. CASE WHEN a.IsCast = 1 THEN '是' ELSE '否' END AS IsCasts,
  275. a.CastPrice,
  276. a.MTIME,
  277. a.MUSERName
  278. FROM ICSBidInfoLog a
  279. LEFT JOIN ICSBidDoc b ON a.BidCode = b.BidCode and a.WorkPoint=b.WorkPoint
  280. LEFT JOIN dbo.Sys_SRM_User c ON b.BidUser = c.F_Account and b.WorkPoint=c.F_Location
  281. LEFT JOIN ICSBidDocBD d ON a.BDID = d.ID and a.WorkPoint=d.WorkPoint
  282. LEFT JOIN ICSINVENTORY e ON d.InvCode = e.INVCODE and d.WorkPoint=e.WorkPoint
  283. LEFT JOIN ICSBidInfo f ON a.InfoID = f.ID and a.WorkPoint=f.WorkPoint
  284. LEFT JOIN dbo.ICSVendor g ON f.SupplierCode = g.VenCode and f.WorkPoint=g.WorkPoint
  285. WHERE a.BidCode='{0}' AND a.InfoID='{1}'
  286. AND a.BDID='{2}' AND a.WorkPoint = '{3}' ";
  287. sql = string.Format(sql, BidCode, InfoID, BDID, WorkPoint);
  288. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  289. }
  290. public DataTable BidResultINVENTORY(string BidCode,string WorkPoint, ref Pagination jqgridparam)
  291. {
  292. DataTable dt = new DataTable();
  293. List<DbParameter> parameter = new List<DbParameter>();
  294. string sql = @"select a.ID,a.RowNo,b.INVCODE,b.INVNAME,b.INVSTD,b.INVUOM,'ERP' as Source ,a.DeliveryTime,a.Quantity from ICSBidDocBD a
  295. left join dbo.ICSINVENTORY b on a.InvCode=b.INVCODE and a.WorkPoint=b.WorkPoint
  296. where a.BidCode='{0}' and a.WorkPoint='{1}'";
  297. sql = string.Format(sql, BidCode, WorkPoint);
  298. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  299. }
  300. public DataTable BidResultVendor(string BidCode, string WorkPoint, ref Pagination jqgridparam)
  301. {
  302. DataTable dt = new DataTable();
  303. List<DbParameter> parameter = new List<DbParameter>();
  304. string sql = @"select a.ID,a.RowNo,a.SupplierCode,b.cVenName ,'ERP' as Source from ICSBidDocGYS a
  305. left join dbo.ICSVendor b on a.SupplierCode=b.cVenCode and a.WorkPoint=b.WorkPoint
  306. where a.BidCode='{0}' and a.WorkPoint='{1}'";
  307. sql = string.Format(sql, BidCode, WorkPoint);
  308. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  309. }
  310. public DataTable BidCourseHistoryInfoCahrs(string BidCode, string WorkPoint, string ID, string InvCode)
  311. {
  312. // string sql = @" SELECT
  313. //DISTINCT
  314. //ROW_NUMBER() OVER(PARTITION BY g.cVenCode ORDER BY a.MTIME ASC) AS num,f.SupplierCode, a.CastPrice,a.MTIME
  315. // FROM ICSBidInfoLog a
  316. // LEFT JOIN ICSBidDoc b ON a.BidCode = b.BidCode and a.WorkPoint=b.WorkPoint
  317. // LEFT JOIN dbo.Sys_SRM_User c ON b.BidUser = c.F_Account and b.WorkPoint=c.F_Location
  318. // LEFT JOIN ICSBidDocBD d ON a.BDID = d.ID and a.WorkPoint=d.WorkPoint
  319. // LEFT JOIN ICSINVENTORY e ON d.InvCode = e.INVCODE and d.WorkPoint=e.WorkPoint
  320. // LEFT JOIN ICSBidInfo f ON a.InfoID = f.ID and a.WorkPoint=f.WorkPoint
  321. // LEFT JOIN dbo.ICSVendor g ON f.SupplierCode = g.cVenCode and f.WorkPoint=g.WorkPoint
  322. // WHERE a.BidCode='{0}'
  323. // AND a.BDID='{1}' AND a.WorkPoint = '{2}' AND d.InvCode='{3}' ORDER BY a.MTIME ASC ";
  324. // sql = string.Format(sql, BidCode, ID, WorkPoint, InvCode);
  325. string sql = @"SELECT DISTINCT ROW_NUMBER() OVER(PARTITION BY g.VenCode ORDER BY a.MTIME ASC) AS num,
  326. g.VenName AS SupplierCode, a.CastPrice,a.MTIME
  327. FROM ICSBidInfoLog a
  328. LEFT JOIN ICSBidDoc b ON a.BidCode = b.BidCode and a.WorkPoint=b.WorkPoint
  329. LEFT JOIN dbo.Sys_SRM_User c ON b.BidUser = c.F_Account and b.WorkPoint=c.F_Location
  330. LEFT JOIN ICSBidDocBD d ON a.BDID = d.ID and a.WorkPoint=d.WorkPoint
  331. LEFT JOIN ICSINVENTORY e ON d.InvCode = e.INVCODE and d.WorkPoint=e.WorkPoint
  332. LEFT JOIN ICSBidInfo f ON a.InfoID = f.ID and a.WorkPoint=f.WorkPoint
  333. LEFT JOIN dbo.ICSVendor g ON f.SupplierCode = g.VenCode and f.WorkPoint=g.WorkPoint
  334. WHERE a.BidCode='{0}'
  335. AND a.BDID='{1}' AND a.WorkPoint = '{2}' AND d.InvCode='{3}' ORDER BY a.MTIME ASC ";
  336. sql = string.Format(sql, BidCode, ID, WorkPoint, InvCode);
  337. return Repository().FindTableBySql(sql.ToString());
  338. }
  339. public DataTable BidCourseHistoryInfoInvCode(string BidCode, string WorkPoint, string ID)
  340. {
  341. string sql = @" SELECT
  342. DISTINCT
  343. f.SupplierCode
  344. FROM ICSBidInfoLog a
  345. LEFT JOIN ICSBidDoc b ON a.BidCode = b.BidCode and a.WorkPoint=b.WorkPoint
  346. LEFT JOIN dbo.Sys_SRM_User c ON b.BidUser = c.F_Account and b.WorkPoint=c.F_Location
  347. LEFT JOIN ICSBidDocBD d ON a.BDID = d.ID and a.WorkPoint=d.WorkPoint
  348. LEFT JOIN ICSINVENTORY e ON d.InvCode = e.INVCODE and d.WorkPoint=e.WorkPoint
  349. LEFT JOIN ICSBidInfo f ON a.InfoID = f.ID and a.WorkPoint=f.WorkPoint
  350. LEFT JOIN dbo.ICSVendor g ON f.SupplierCode = g.cVenCode and f.WorkPoint=g.WorkPoint
  351. WHERE a.BidCode='{0}'
  352. AND a.BDID='{1}' AND a.WorkPoint = '{2}' ";
  353. sql = string.Format(sql, BidCode, ID, WorkPoint);
  354. return Repository().FindTableBySql(sql.ToString());
  355. }
  356. public DataTable ExportAll(string BidCode, string BeginDate, string EndDate, string selShow)
  357. {
  358. //var queryParam = queryJson.ToJObject();
  359. List<DbParameter> parameter = new List<DbParameter>();
  360. string sql = @"SELECT
  361. a.BidCode AS ,
  362. a.BidName AS ,
  363. a.BidUser AS ,
  364. a.StarTime AS ,
  365. a.EndTime AS ,
  366. a.BidStatus AS ,
  367. a.Remark AS ,
  368. c.F_RealName AS ,
  369. a.OpenTime AS ,
  370. d.F_RealName AS ,
  371. a.BidTime AS ,
  372. a.WorkPoint AS
  373. FROM ICSBidDoc a
  374. LEFT JOIN Sys_SRM_User b ON a.BidUser=b.F_Account and a.WorkPoint=b.F_Location
  375. LEFT JOIN Sys_SRM_User c ON a.Tenders=c.F_Account and a.WorkPoint=c.F_Location
  376. LEFT JOIN Sys_SRM_User d ON a.Bidder=d.F_Account and a.WorkPoint=d.F_Location
  377. where 1=1 AND a.BidCode <>''";
  378. if (!string.IsNullOrWhiteSpace(BidCode))
  379. {
  380. sql += " and a.BidCode like '%" + BidCode + "%' ";
  381. }
  382. if (!string.IsNullOrWhiteSpace(BeginDate))
  383. {
  384. sql += " and a.StarTime >= '" + BeginDate + "' ";
  385. }
  386. if (!string.IsNullOrWhiteSpace(EndDate))
  387. {
  388. sql += " and a.StarTime <= '" + EndDate + "' ";
  389. }
  390. if (!string.IsNullOrWhiteSpace(selShow))
  391. {
  392. string selShows = selShow;
  393. if (selShows == "1")
  394. sql += " and BidStatus='已关闭'";
  395. else if (selShows == "2")
  396. sql += "and BidStatus='已决标'";
  397. else if (selShows == "3")
  398. sql += "and BidStatus='招标中'";
  399. else if (selShows == "4")
  400. sql += "and BidStatus='已结束'";
  401. }
  402. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  403. {
  404. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  405. }
  406. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  407. {
  408. sql += " and b.F_Account in (SELECT cVenCode FROM ICSVendor where cVenName ='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "'AND WorkPoint=a.WorkPoint)";
  409. }
  410. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  411. return dt;
  412. }
  413. }
  414. }