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.

297 lines
15 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 PriceArticleApp : RepositoryFactory<ICSPO_PoMain>
  15. {
  16. /// <summary>
  17. ///获取组织信息
  18. /// </summary>
  19. /// <param name="queryJson"></param>
  20. /// <param name="jqgridparam"></param>
  21. /// <returns></returns>
  22. public DataTable GetGridPurchug(string queryJson, ref Pagination jqgridparam)
  23. {
  24. DataTable dt = new DataTable();
  25. var queryParam = queryJson.ToJObject();
  26. List<DbParameter> parameter = new List<DbParameter>();
  27. string sql = @"select PURCHUGCODE,PURCHUGNAME,PURCHUGCONECT,WorkPoint from ICSPURCHUG";
  28. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  29. }
  30. /// <summary>
  31. ///获取比价物资列表
  32. /// </summary>
  33. /// <param name="queryJson"></param>
  34. /// <param name="jqgridparam"></param>
  35. /// <returns></returns>
  36. public DataTable GetCompareCodeMaterial(string queryJson, ref Pagination jqgridparam)
  37. {
  38. DataTable dt = new DataTable();
  39. var queryParam = queryJson.ToJObject();
  40. List<DbParameter> parameter = new List<DbParameter>();
  41. string sql = @" select PURCHGCODE,ITEMTYPE,ITEMCODE,ITEMNAME,Status from ICSSCOMPARECODEInventory where status='0'";
  42. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  43. }
  44. /// <summary>
  45. ///获取物资列表
  46. /// </summary>
  47. /// <param name="queryJson"></param>
  48. /// <param name="jqgridparam"></param>
  49. /// <returns></returns>
  50. public DataTable GetCompareCodeMaterials(string queryJson, ref Pagination jqgridparam)
  51. {
  52. DataTable dt = new DataTable();
  53. var queryParam = queryJson.ToJObject();
  54. List<DbParameter> parameter = new List<DbParameter>();
  55. string sql = @" SELECT INVCode,INVName,INvTYpe,case
  56. when b.status=1 then ''
  57. WHEN b.status is null THEN ''
  58. else ''
  59. end as status
  60. from [dbo].[ICSINVENTORY] a
  61. LEFT join ICSSCOMPARECODEInventory b on a.INVCODE=b.ITEMCODE
  62. WHERE 1=1
  63. ";
  64. if (!string.IsNullOrWhiteSpace(queryJson))
  65. {
  66. if (!string.IsNullOrWhiteSpace(queryParam["INVCode"].ToString()))
  67. {
  68. sql += " and INVCode like '%" + queryParam["INVCode"].ToString() + "%' ";
  69. }
  70. if (!string.IsNullOrWhiteSpace(queryParam["INVName"].ToString()))
  71. {
  72. sql += " and INVName like '%" + queryParam["INVName"].ToString() + "%' ";
  73. }
  74. if (!string.IsNullOrWhiteSpace(queryParam["INVType"].ToString()))
  75. {
  76. sql += " and INvTYpe like '%" + queryParam["INVType"].ToString() + "%' ";
  77. }
  78. }
  79. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  80. }
  81. ///询报价报表
  82. /// </summary>
  83. /// <param name="queryJson"></param>
  84. /// <param name="jqgridparam"></param>
  85. /// <returns></returns>
  86. public DataTable GetCompareCodeMateriaList(string queryJson, ref Pagination jqgridparam)
  87. {
  88. DataTable dt = new DataTable();
  89. var queryParam = queryJson.ToJObject();
  90. List<DbParameter> parameter = new List<DbParameter>();
  91. string sql = @"
  92. select d.CREATETIME, b.ITEMCODE,b.ITEMNAME,f.invSTD,a.PURCHUGCODE,s.PURCHUGName,f.INVTYPE,c.QUOTATIONCODE,
  93. case when c.STATUS= 'NEW'then ''
  94. WHEN c.STATUS='Invalid' THEN ''
  95. WHEN c.STATUS='Publish' THEN ''
  96. WHEN c.STATUS='Close' THEN ''
  97. end as status ,j.cVenName,e.VENDORTYPE,c.VENDORCODE,e.CURRENCY,h.TAXRATECODE,case when d.ppStatus=0 then ''
  98. WHEN d.ppStatus=1 THEN ''
  99. end as statuss
  100. from dbo.ICSSORRFQ a
  101. left join dbo.ICSSORRFQ2NORMALITEM b on a.RFQCODE=b.RFQCODE
  102. left join ICSSORQUOTATION c on b.RFQCODE=c.RFQCODE and a.WorkPoint=c.WorkPoint
  103. left join ICSSORQUODETAILNORMAL d on c.QUOTATIONCODE=d.QUOTATIONCODE
  104. Left JOIN ICSSORRFQ2VENDOR e on c.VENDORCODE=e.VENDORCODE
  105. LEFT JOIN ICSVENDORTAXRATE h on c.VENDORCODE=h.VENDORCODE
  106. left join [dbo].[ICSINVENTORY] f on d.ITEMCODE=f.INVCODE
  107. left join [dbo].[ICSVendor] j on c.VENDORCODE=j.cvenCode
  108. left join dbo.ICSPURCHUG s on a.PURCHUGCODE=s.PURCHUGCODE where 1=1 and b.ITEMCODE<>''
  109. ";
  110. if (!string.IsNullOrWhiteSpace(queryJson))
  111. {
  112. if (!string.IsNullOrWhiteSpace(queryParam["PURCHUG"].ToString()))
  113. {
  114. sql += " and s.PURCHUGName like '%" + queryParam["PURCHUG"].ToString() + "%' ";
  115. }
  116. if (!string.IsNullOrWhiteSpace(queryParam["PURCHUGCODE"].ToString()))
  117. {
  118. sql += " and a.PURCHUGCODE like '%" + queryParam["PURCHUGCODE"].ToString() + "%' ";
  119. }
  120. if (!string.IsNullOrWhiteSpace(queryParam["InvType"].ToString()))
  121. {
  122. sql += " and f.INVTYPE like '%" + queryParam["InvType"].ToString() + "%' ";
  123. }
  124. if (!string.IsNullOrWhiteSpace(queryParam["ITEMCODE"].ToString()))
  125. {
  126. sql += " and b.ITEMCODE like '%" + queryParam["ITEMCODE"].ToString() + "%' ";
  127. }
  128. if (!string.IsNullOrWhiteSpace(queryParam["ITEMName"].ToString()))
  129. {
  130. sql += " and b.ITEMNAME like '%" + queryParam["ITEMName"].ToString() + "%' ";
  131. }
  132. if (!string.IsNullOrWhiteSpace(queryParam["INVSTD"].ToString()))
  133. {
  134. sql += " and f.invSTD like '%" + queryParam["INVSTD"].ToString() + "%' ";
  135. }
  136. if (!string.IsNullOrWhiteSpace(queryParam["VENCode"].ToString()))
  137. {
  138. sql += " and c.VENDORCODE like '%" + queryParam["VENCode"].ToString() + "%' ";
  139. }
  140. if (!string.IsNullOrWhiteSpace(queryParam["VENName"].ToString()))
  141. {
  142. sql += " and j.cVenName like '%" + queryParam["VENName"].ToString() + "%' ";
  143. }
  144. if (!string.IsNullOrWhiteSpace(queryParam["BeginDate"].ToString()))
  145. {
  146. sql += " and d.CREATETIME >'" + queryParam["BeginDate"].ToString() + "' ";
  147. }
  148. if (!string.IsNullOrWhiteSpace(queryParam["EndDate"].ToString()))
  149. {
  150. sql += " and d.CREATETIME <'" + queryParam["BeginDate"].ToString() + "'";
  151. }
  152. //sql += " or b.ITEMCODE is not null";
  153. }
  154. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  155. }
  156. /// <summary>
  157. /// 创建比价物资
  158. /// </summary>
  159. /// <param name="JsonData"></param>
  160. /// <param name="STNO"></param>
  161. /// <returns></returns>
  162. public string CheckSTNO_ItemCode(string JsonData, string PURCHUG, string PURCHUGName)
  163. {
  164. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  165. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  166. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  167. string msg = "";
  168. string sql = string.Empty;
  169. sql = @"INSERT INTO dbo.ICSSCOMPARECODEInventory
  170. ( CREATEDATE ,CREATETIME ,CREATEUSER ,
  171. ITEMCODE ,ITEMNAME ,ITEMType,
  172. PURCHGCODE ,PURCHUGNAME ,Status
  173. )
  174. SELECT GETDATE(),GETDATE(),'" + MUSERNAME + @"',
  175. a.INVCODE,a.INVNAME,a.InvType,
  176. '" + PURCHUG + @"','" + PURCHUGName + @"',0
  177. FROM dbo.ICSINVENTORY a
  178. WHERE a.INVCode IN (" + JsonData.TrimEnd(',') + ")";
  179. try
  180. {
  181. SqlHelper.ExecuteNonQuery(sql);
  182. }
  183. catch (Exception ex)
  184. {
  185. throw new Exception(ex.Message);
  186. }
  187. return msg;
  188. }
  189. /// <summary>
  190. /// 取消比价物资
  191. /// </summary>
  192. /// <param name="JsonData"></param>
  193. /// <param name="STNO"></param>
  194. /// <returns></returns>
  195. public string UpdateItemCode(string JsonData, string PURCHUG, string PURCHUGName)
  196. {
  197. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  198. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  199. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  200. string msg = "";
  201. string sql = string.Empty;
  202. sql = @"Update dbo.ICSSCOMPARECODEInventory set Status='1' where ITEMCODE IN (" + JsonData.TrimEnd(',') + ")";
  203. try
  204. {
  205. SqlHelper.ExecuteNonQuery(sql);
  206. }
  207. catch (Exception ex)
  208. {
  209. throw new Exception(ex.Message);
  210. }
  211. return msg;
  212. }
  213. public DataTable GetPOListExport(string keyVaule)
  214. {
  215. string sql = @" select d.CREATETIME, b.ITEMCODE,b.ITEMNAME,f.invSTD,a.PURCHUGCODE,s.PURCHUGName,f.INVTYPE,c.QUOTATIONCODE,
  216. case when c.STATUS= 'NEW'then ''
  217. WHEN c.STATUS='Invalid' THEN ''
  218. WHEN c.STATUS='Publish' THEN ''
  219. WHEN c.STATUS='Close' THEN ''
  220. end as status ,j.cVenName,e.VENDORTYPE,c.VENDORCODE,e.CURRENCY,h.TAXRATECODE,case when d.ppStatus=0 then ''
  221. WHEN d.ppStatus=1 THEN ''
  222. end as statuss
  223. from dbo.ICSSORRFQ a
  224. left join dbo.ICSSORRFQ2NORMALITEM b on a.RFQCODE=b.RFQCODE
  225. left join ICSSORQUOTATION c on b.RFQCODE=c.RFQCODE and a.WorkPoint=c.WorkPoint
  226. left join ICSSORQUODETAILNORMAL d on c.QUOTATIONCODE=d.QUOTATIONCODE
  227. Left JOIN ICSSORRFQ2VENDOR e on c.VENDORCODE=e.VENDORCODE
  228. LEFT JOIN ICSVENDORTAXRATE h on c.VENDORCODE=h.VENDORCODE
  229. left join [dbo].[ICSINVENTORY] f on d.ITEMCODE=f.INVCODE
  230. left join [dbo].[ICSVendor] j on c.VENDORCODE=j.cvenCode
  231. left join dbo.ICSPURCHUG s on a.PURCHUGCODE=s.PURCHUGCODE where 1=1
  232. ";
  233. sql += " and c.QUOTATIONCODE in (" + keyVaule + ")";
  234. //sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  235. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  236. return dt;
  237. }
  238. public DataTable GetPOListExport( string PURCHUG, string InvType, string PURCHUGCODE, string ITEMCODE, string ITEMName, string INVSTD, string VENCode, string VENName, string CREATETIME)
  239. {
  240. List<DbParameter> parameter = new List<DbParameter>();
  241. string sql = @"select d.CREATETIME, b.ITEMCODE,b.ITEMNAME,f.invSTD,a.PURCHUGCODE,s.PURCHUGName,f.INVTYPE,c.QUOTATIONCODE,
  242. case when c.STATUS= 'NEW'then ''
  243. WHEN c.STATUS='Invalid' THEN ''
  244. WHEN c.STATUS='Publish' THEN ''
  245. WHEN c.STATUS='Close' THEN ''
  246. end as status ,j.cVenName,e.VENDORTYPE,c.VENDORCODE,e.CURRENCY,h.TAXRATECODE,case when d.ppStatus=0 then ''
  247. WHEN d.ppStatus=1 THEN ''
  248. end as statuss
  249. from dbo.ICSSORRFQ a
  250. left join dbo.ICSSORRFQ2NORMALITEM b on a.RFQCODE=b.RFQCODE
  251. left join ICSSORQUOTATION c on b.RFQCODE=c.RFQCODE and a.WorkPoint=c.WorkPoint
  252. left join ICSSORQUODETAILNORMAL d on c.QUOTATIONCODE=d.QUOTATIONCODE
  253. Left JOIN ICSSORRFQ2VENDOR e on c.VENDORCODE=e.VENDORCODE
  254. LEFT JOIN ICSVENDORTAXRATE h on c.VENDORCODE=h.VENDORCODE
  255. left join [dbo].[ICSINVENTORY] f on d.ITEMCODE=f.INVCODE
  256. left join [dbo].[ICSVendor] j on c.VENDORCODE=j.cvenCode
  257. left join dbo.ICSPURCHUG s on a.PURCHUGCODE=s.PURCHUGCODE where 1=1";
  258. if (!string.IsNullOrWhiteSpace(PURCHUG))
  259. sql += " and s.PURCHUGName like '%" + PURCHUG + "%'";
  260. if (!string.IsNullOrWhiteSpace(InvType))
  261. sql += " and f.INVTYPE like '%" + InvType + "%'";
  262. if (!string.IsNullOrWhiteSpace(CREATETIME))
  263. sql += " and PODate >= '" + CREATETIME + "'";
  264. if (!string.IsNullOrWhiteSpace(CREATETIME))
  265. sql += " and PODate <= '" + CREATETIME + "'";
  266. if (!string.IsNullOrWhiteSpace(PURCHUGCODE))
  267. sql += " and a.PURCHUGCODE like '%" + PURCHUGCODE + "%'";
  268. if (!string.IsNullOrWhiteSpace(ITEMCODE))
  269. sql += " and b.ITEMCODE like '%" + ITEMCODE + "%'";
  270. if (!string.IsNullOrWhiteSpace(ITEMName))
  271. sql += " and b.ITEMNAME like '%" + ITEMName + "%'";
  272. if (!string.IsNullOrWhiteSpace(INVSTD))
  273. sql += " and f.invSTD like '%" + INVSTD + "%'";
  274. if (!string.IsNullOrWhiteSpace(VENCode))
  275. sql += " and c.VENDORCODE like '%" + VENCode + "%'";
  276. if (!string.IsNullOrWhiteSpace(VENName))
  277. sql += " and j.cVenName like '%" + VENName + "%'";
  278. //if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  279. //{
  280. // sql += " and VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  281. //}
  282. //sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  283. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  284. return dt;
  285. }
  286. }
  287. }