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.

136 lines
5.6 KiB

3 days ago
  1. using Newtonsoft.Json;
  2. using NFine.Code;
  3. using NFine.Data.Extensions;
  4. using NFine.Domain._03_Entity.SRM;
  5. using NFine.Repository;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Configuration;
  9. using System.Data;
  10. using System.Data.Common;
  11. using System.Data.SqlClient;
  12. using System.Linq;
  13. using System.Text;
  14. using System.Threading.Tasks;
  15. namespace NFine.Application.SRM
  16. {
  17. public class PurchugApp : RepositoryFactory<ICSPURCHUG>
  18. {
  19. public void SubmitPURCHUGCODE(string queryJson)
  20. {
  21. try
  22. {
  23. DataTable dt = new DataTable();
  24. List<DbParameter> parameter = new List<DbParameter>();
  25. ICSPURCHUG[] list = JsonConvert.DeserializeObject<ICSPURCHUG[]>(queryJson);
  26. string sql = string.Empty;
  27. string connString = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
  28. SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString);
  29. conn.Open();
  30. SqlTransaction sqlTran = conn.BeginTransaction();
  31. SqlCommand cmd = new SqlCommand();
  32. cmd.Transaction = sqlTran;
  33. cmd.Connection = conn;
  34. try
  35. {
  36. string UserCode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  37. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  38. if(list[0].Flag==0){
  39. sql = "select * from ICSPURCHUG where PURCHUGCODE='" + list[0].PURCHUGCODE + "'";
  40. dt = SqlCommandHelper.SQlReturnData(sql, cmd);
  41. if (dt != null && dt.Rows.Count > 0)
  42. {
  43. throw new Exception("采购组织已存在");
  44. }
  45. }
  46. foreach (var obj in list)
  47. {
  48. sql = @"IF NOT EXISTS(SELECT * FROM dbo.ICSPURCHUG WHERE PURCHUGCODE=@PURCHUGCODEOld and WorkPoint=@WorkPoint)
  49. BEGIN
  50. INSERT INTO dbo.ICSPURCHUG
  51. (
  52. PURCHUGCODE
  53. ,PURCHUGNAME
  54. ,PURCHUGCONECT
  55. ,WorkPoint )
  56. VALUES
  57. (
  58. @PURCHUGCODE
  59. ,@PURCHUGNAME
  60. ,@PURCHUGCONECT
  61. ,@WorkPoint )
  62. END
  63. ELSE
  64. BEGIN
  65. UPDATE dbo.ICSPURCHUG SET
  66. PURCHUGNAME=@PURCHUGNAME,
  67. PURCHUGCONECT=@PURCHUGCONECT,
  68. PURCHUGCODE=@PURCHUGCODE
  69. WHERE PURCHUGCODE=@PURCHUGCODEOld
  70. END";
  71. SqlParameter[] sp_Detail = {
  72. new SqlParameter("@PURCHUGCODE",obj.PURCHUGCODE),
  73. new SqlParameter("@PURCHUGCODEOld",obj.PURCHUGCODEOld),
  74. new SqlParameter("@PURCHUGNAME",obj.PURCHUGNAME),
  75. new SqlParameter("@PURCHUGCONECT",obj.PURCHUGCONECT),
  76. new SqlParameter("@WorkPoint",obj.WorkPoint),
  77. };
  78. SqlCommandHelper.CmdExecuteNonQuery(sql, sp_Detail, cmd);
  79. }
  80. cmd.Transaction.Commit();
  81. }
  82. catch (Exception ex)
  83. {
  84. cmd.Transaction.Rollback();
  85. throw new Exception(ex.Message);
  86. }
  87. finally
  88. {
  89. if (conn.State == ConnectionState.Open)
  90. {
  91. conn.Close();
  92. }
  93. conn.Dispose();
  94. }
  95. }
  96. catch (Exception ex)
  97. {
  98. throw new Exception(ex.Message);
  99. }
  100. }
  101. public DataRow GetPurchug(string PURCHUGCODE, string WorkPoint)
  102. {
  103. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  104. DataRow dr = null;
  105. string sql = string.Empty;
  106. try
  107. {
  108. sql = @"SELECT
  109. PURCHUGCODE,
  110. PURCHUGNAME,
  111. PURCHUGCONECT,
  112. WorkPoint
  113. FROM ICSPURCHUG
  114. WHERE PURCHUGCODE='" + PURCHUGCODE + "' and WorkPoint in ('" + WorkPoint + "')";
  115. dr = SqlHelper.GetDataRowBySql(sql);
  116. return dr;
  117. }
  118. catch (Exception ex)
  119. {
  120. throw new Exception(ex.Message);
  121. }
  122. }
  123. public string DeletePurchug(string keyValue, string WorkPoint)
  124. {
  125. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  126. string msg = "";
  127. WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2);
  128. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  129. string sql = string.Empty;
  130. sql = string.Format(@"DELETE FROM dbo.ICSPURCHUG WHERE PURCHUGCODE IN ({0}) and WorkPoint IN ({1})", keyValue.TrimEnd(','), WorkPoint.TrimEnd(','));
  131. SqlHelper.ExecuteNonQuery(sql);
  132. return msg;
  133. }
  134. }
  135. }