FundPactAccountMgt.cs 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Data;
  6. using CoreFS.CA06;
  7. using DbHelp = Core.StlMes.Client.Sale.DbHelp;
  8. namespace Core.StlMes.Client.Sale.SaleFundMgt.FundBLL.FundPactAccount
  9. {
  10. public class FundPactAccountMgt:FundBaseBLL.FundBaseBLL
  11. {
  12. private OpeBase _ob;
  13. public FundPactAccountMgt(OpeBase ob)
  14. : base(ob)
  15. {
  16. _ob = ob;
  17. }
  18. private Model.SEL_FUND_PACT_ACCOUNT GetFundPactAccount(string balansub, string buyercode, string secondeaccount)
  19. {
  20. Model.SEL_FUND_PACT_ACCOUNT acct = new Model.SEL_FUND_PACT_ACCOUNT();
  21. acct.BALANCESUBJECT = balansub;
  22. acct.BUYERCODE = buyercode;
  23. acct.SECONDACCOUNT = secondeaccount;
  24. return acct;
  25. }
  26. /// <summary>
  27. /// 通过结算单位,客户编码,二级账户返回其合同账户信息
  28. /// </summary>
  29. /// <param name="balansub"></param>
  30. /// <param name="buyercode"></param>
  31. /// <param name="secondeaccount"></param>
  32. /// <returns></returns>
  33. public DataSet GetFundPactAccountByBalanceAndBuyercodeAndSecondAccount(string balansub,string buyercode,string secondeaccount)
  34. {
  35. DataSet ds = this.GetFundPactAccountInstance().
  36. GetSelFundPactAccountByBalAndBuyercodeAndSecAccount(GetFundPactAccount(balansub,buyercode,secondeaccount),true);
  37. return ds;
  38. }
  39. /// <summary>
  40. /// 通过结算单位,客户编码,二级账户返回其合同账户信息,并带标题
  41. /// </summary>
  42. /// <param name="balansub"></param>
  43. /// <param name="buyercode"></param>
  44. /// <param name="secondeaccount"></param>
  45. /// <returns></returns>
  46. public DataSet GetFundPactAccountByBalanceAndBuyercodeAndSecondAccountWithCaption(string balansub, string buyercode, string secondeaccount)
  47. {
  48. DataSet ds = this.GetFundPactAccountInstance().
  49. GetSelFundPactAccountByBalAndBuyercodeAndSecAccount(GetFundPactAccount(balansub, buyercode, secondeaccount),true);
  50. return ds;
  51. }
  52. /// <summary>
  53. /// 通过结算单位,客户编码,二级账户,合同号,返回其所有信息
  54. /// </summary>
  55. /// <param name="detail"></param>
  56. /// <returns></returns>
  57. public DataSet GetFundPactUsedDetail(Model.SEL_FUND_PACT_FUNDUSEDETAIL detail)
  58. {
  59. return base.GetFundPactUsedDetailInstance().GetSelFundPactFundUsedDetailByBalAndBuyercodeAndSecAccountAndPactno(detail);
  60. }
  61. public DataSet GetFundPactUsedDetail(string balansub, string buyercode, string secondeaccount, string pactno)
  62. {
  63. Model.SEL_FUND_PACT_FUNDUSEDETAIL detal = new Model.SEL_FUND_PACT_FUNDUSEDETAIL();
  64. detal.BALANCESUBJECT = balansub;
  65. detal.BUYERCODE = buyercode;
  66. detal.SECONDACCOUNT = secondeaccount;
  67. detal.PACTNO = pactno;
  68. return GetFundPactUsedDetail(detal);
  69. }
  70. /// <summary>
  71. /// 返回有效数据,并按TRANS_TIME时间降序
  72. /// </summary>
  73. /// <param name="detail"></param>
  74. /// <returns></returns>
  75. public DataSet GetFundPactUsedDetailValid(Model.SEL_FUND_PACT_FUNDUSEDETAIL detail)
  76. {
  77. DataSet ds = GetFundPactUsedDetail(detail);
  78. DataSet dsvalid = Util.DataSetUtil.GetDataSetByRowFilter(ds, " ISMONEYVALID = '0' ");
  79. DataSet dsDesc = Util.DataSetUtil.ReturnDsByDescOrderFromSourceDataSet(dsvalid, "TRANS_TIME");
  80. return dsDesc;
  81. }
  82. /// <summary>
  83. /// 通过结算单位,客户编码,二级账户,合同号,返回有效数据,并按TRANS_TIME时间降序
  84. /// </summary>
  85. /// <param name="detail"></param>
  86. /// <returns></returns>
  87. public DataSet GetFundPactUsedDetailValid(string balansub, string buyercode, string secondeaccount,string pactno)
  88. {
  89. Model.SEL_FUND_PACT_FUNDUSEDETAIL detal = new Model.SEL_FUND_PACT_FUNDUSEDETAIL();
  90. detal.BALANCESUBJECT = balansub;
  91. detal.BUYERCODE = buyercode;
  92. detal.SECONDACCOUNT = secondeaccount;
  93. detal.PACTNO = pactno;
  94. return GetFundPactUsedDetailValid(detal);
  95. }
  96. /// <summary>
  97. /// 通过结算单位,客户单位,二级单位,合同号返回其资金转移记录
  98. /// </summary>
  99. /// <param name="balansub"></param>
  100. /// <param name="buyercode"></param>
  101. /// <param name="secondeaccount"></param>
  102. /// <param name="pactno"></param>
  103. /// <returns></returns>
  104. public DataSet GetSelFundPactTransDetailByBalAndBuyercodeAndSecondAndPactno(string balansub, string buyercode, string secondeaccount, string pactno)
  105. {
  106. return base.GetFundPactTransDetailInstance().GetSelFundPactTransDetailByBalAndBuyercodeAndSecondAndPactno
  107. (balansub,buyercode,secondeaccount,pactno);
  108. }
  109. /// <summary>
  110. /// 通过结算单位,客户编码,二级单位返回其实体列表
  111. /// </summary>
  112. /// <param name="balansub"></param>
  113. /// <param name="buyercode"></param>
  114. /// <param name="secondeaccount"></param>
  115. /// <returns></returns>
  116. public List<Model.SEL_FUND_PACT_ACCOUNT> GetFundPactAccountModelListByBalanceAndBuyercodeAndSecondAccount(string balansub, string buyercode, string secondeaccount)
  117. {
  118. return this.GetFundPactAccountInstance().
  119. GetSelFundPactAccountModelListByBalAndBuyercodeAndSecAccount(GetFundPactAccount(balansub, buyercode, secondeaccount));
  120. }
  121. public void CreatePactAccountInfo(string balanceSubject,string buyercode,string secondAccount,string pactno,out string errMsg)
  122. {
  123. errMsg = "";
  124. Model.SEL_FUND_PACT_ACCOUNT acct =
  125. GetFundPactAccount(balanceSubject,buyercode,secondAccount,pactno);
  126. // 原则上同结算单位,同客户,一个合同号只能在一个二级账户,不能多个二级账户分布
  127. List< Model.SEL_FUND_PACT_ACCOUNT> acctmodel = this.GetFundPactAccountInstance().GetSelFundPactAccountByBalanceAndPactno(balanceSubject,buyercode,pactno);
  128. if (acctmodel != null)
  129. {
  130. if (acctmodel.Count > 0)
  131. {
  132. errMsg = "账号:" + pactno + "已经存在";
  133. return;
  134. }
  135. }
  136. this.GetFundPactAccountInstance().CreateFundPactAccount(acct,out errMsg);
  137. }
  138. /// <summary>
  139. /// 创建合同账户,不做错误提示
  140. /// 有则直接退出
  141. /// </summary>
  142. /// <param name="balanceSubject"></param>
  143. /// <param name="buyercode"></param>
  144. /// <param name="secondAccount"></param>
  145. /// <param name="pactno"></param>
  146. public void CreatePactAccountInfoWithNoErrMsg(string balanceSubject, string buyercode, string secondAccount, string pactno)
  147. {
  148. string errMsg = "";
  149. Model.SEL_FUND_PACT_ACCOUNT acct =
  150. GetFundPactAccount(balanceSubject, buyercode, secondAccount, pactno);
  151. // 原则上同结算单位,同客户,一个合同号只能在一个二级账户,不能多个二级账户分布
  152. List<Model.SEL_FUND_PACT_ACCOUNT> acctmodel = this.GetFundPactAccountInstance().GetSelFundPactAccountByBalanceAndPactno(balanceSubject, buyercode, pactno);
  153. if (acctmodel != null)
  154. {
  155. if (acctmodel.Count > 0)
  156. {
  157. return;
  158. }
  159. }
  160. this.GetFundPactAccountInstance().CreateFundPactAccount(acct, out errMsg);
  161. }
  162. /// <summary>
  163. /// 删除合同账户
  164. /// </summary>
  165. /// <param name="balanceSubject"></param>
  166. /// <param name="buyercode"></param>
  167. /// <param name="secondAccount"></param>
  168. /// <param name="pactno"></param>
  169. /// <param name="errMsg"></param>
  170. public void DeletePactAccount(string balanceSubject, string buyercode, string secondAccount, string pactno, out string errMsg)
  171. {
  172. errMsg = "";
  173. if ( !FundVariable.FundConstVariable.isDefaultAccountCanBeDelete && pactno == FundVariable.FundConstVariable.defaultPactLevelAccount)
  174. {
  175. errMsg = "默认账号,不允许删除";
  176. return;
  177. }
  178. Model.SEL_FUND_PACT_ACCOUNT acct = this.GetFundPactAccount(balanceSubject,buyercode,secondAccount,pactno);
  179. // 检查合同账号信息,只要总资金大于0,则不允许删除
  180. Model.SEL_FUND_PACT_ACCOUNT pactact =
  181. this.GetFundPactAccountInstance().GetSelFundPactAccountModel(acct);
  182. if (pactact != null)
  183. {
  184. if (pactact.TOTALMONEY > 0)
  185. {
  186. errMsg = "账户资金不为0";
  187. return;
  188. }
  189. }
  190. this.GetFundPactAccountInstance().DeleteFundPactAccount(acct,out errMsg);
  191. }
  192. }
  193. }