| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Data;
- using CoreFS.CA06;
- using DbHelp = Core.StlMes.Client.Sale.DbHelp;
- namespace Core.StlMes.Client.Sale.SaleFundMgt.FundBLL.FundTransferMgt
- {
- public class FundTransferMgt: FundBaseBLL.FundBaseBLL
- {
- private OpeBase _ob;
- public FundTransferMgt(OpeBase ob)
- : base(ob)
- {
- _ob = ob;
- }
- /// <summary>
- /// 从客户账户转二级账户
- /// </summary>
- /// <param name="acct"></param>
- /// <param name="errMsg"></param>
- public void TransferMoneyCustToSecondAccount(Model.SEL_FUND_TRANS_SECONDACCOUNT acct,out string errMsg)
- {
- errMsg = "";
- try
- {
- errMsg = "";
- Model.SEL_FUND_CUST_ACCOUNT cust = base.GetFundCustAccountInstance().
- GetSelFundCustAccountModelByBalanceAndBuyercode(acct.FUND_TRANS_CUST.BALANCESUBJECT, acct.FUND_TRANS_CUST.BUYERCODE);
- if (cust == null)
- {
- return;
- }
- // 检查资金是否足够
- if (cust.LEAVEMONEY < acct.TRANS_MONEY)
- {
- errMsg = base._errMsgMoneyNotEnough;
- return;
- }
- // 二级账户是否存在
- if (acct.SECONDACCOUNT.Length == 0)
- {
- errMsg = base._errMsgMoneyNotEnough;
- return;
- }
- Model.SEL_FUND_CUST_USEDDETAIL detail = null;
- Model.SEL_FUND_SECONDLE_USEDETAIL secdetaill = null;
- string busiseq = Common.SaleFundCommon.GetBusiSeq();
- // 事务开启
-
- acct.FUND_TRANS_CUST.TRANS_MONEY = -acct.FUND_TRANS_CUST.TRANS_MONEY;
- detail = new Model.SEL_FUND_CUST_USEDDETAIL(acct, busiseq);
- secdetaill = new Model.SEL_FUND_SECONDLE_USEDETAIL(acct,busiseq);
- System.Collections.ArrayList list = new System.Collections.ArrayList();
- list.Add(base.GetFundCustAccountInstance().Sql_AddLeaveMoneyCustAccount(acct.FUND_TRANS_CUST));
- list.Add(base.GetFundCustUsedDetailInstance().Sql_Insert(detail));
- list.Add(base.GetFundSecondAccountInstance().Sql_AddMoneyToSecondLevelAccount(acct));
- list.Add(base.GetFundSecondUsedDetailInstance().Sql_Insert(secdetaill));
- base.ExecuteNoReader(list, out errMsg);
- //// 客户账户总资金减少
- //base.GetFundCustAccountInstance().AddLeaveMoneyCustAccount(acct.FUND_TRANS_CUST, transaction);
- //// 写明细
- //base.GetFundCustUsedDetailInstance().Insert(detail,transaction);
-
- //// 二级账户总资金和剩余资金增加
- //base.GetFundSecondAccountInstance().AddMoneyToSecondLevelAccount(acct, transaction);
- //// 写明细
- //base.GetFundSecondUsedDetailInstance().Insert(secdetaill, transaction);
-
- }
- catch(Exception ex)
- {
- errMsg = ex.Message;
- }
-
- }
- public System.Collections.ArrayList GetTransferMoneyCustToSecondAccount(Model.SEL_FUND_TRANS_SECONDACCOUNT acct, out string errMsg)
- {
- errMsg = "";
- try
- {
- errMsg = "";
-
- Model.SEL_FUND_CUST_USEDDETAIL detail = null;
- Model.SEL_FUND_SECONDLE_USEDETAIL secdetaill = null;
- string busiseq = Common.SaleFundCommon.GetBusiSeq();
- // 事务开启
- acct.FUND_TRANS_CUST.TRANS_MONEY = -acct.FUND_TRANS_CUST.TRANS_MONEY;
- detail = new Model.SEL_FUND_CUST_USEDDETAIL(acct, busiseq);
- secdetaill = new Model.SEL_FUND_SECONDLE_USEDETAIL(acct, busiseq);
- System.Collections.ArrayList list = new System.Collections.ArrayList();
- list.Add(base.GetFundCustAccountInstance().Sql_AddLeaveMoneyCustAccount(acct.FUND_TRANS_CUST));
- list.Add(base.GetFundCustUsedDetailInstance().Sql_Insert(detail));
- list.Add(base.GetFundSecondAccountInstance().Sql_AddMoneyToSecondLevelAccount(acct));
- list.Add(base.GetFundSecondUsedDetailInstance().Sql_Insert(secdetaill));
- return list;
- //// 客户账户总资金减少
- //base.GetFundCustAccountInstance().AddLeaveMoneyCustAccount(acct.FUND_TRANS_CUST, transaction);
- //// 写明细
- //base.GetFundCustUsedDetailInstance().Insert(detail,transaction);
- //// 二级账户总资金和剩余资金增加
- //base.GetFundSecondAccountInstance().AddMoneyToSecondLevelAccount(acct, transaction);
- //// 写明细
- //base.GetFundSecondUsedDetailInstance().Insert(secdetaill, transaction);
- }
- catch (Exception ex)
- {
- errMsg = ex.Message;
- return new System.Collections.ArrayList();
- }
- }
- public void TransferMoneyCustToSecondAccountWithNoLeaveMoneyCheck(Model.SEL_FUND_TRANS_SECONDACCOUNT acct, out string errMsg)
- {
- errMsg = "";
- // DbHelp.DbTransaction transaction = base.GetTransaction();
- try
- {
- errMsg = "";
- Model.SEL_FUND_CUST_ACCOUNT cust = base.GetFundCustAccountInstance().
- GetSelFundCustAccountModelByBalanceAndBuyercode(acct.FUND_TRANS_CUST.BALANCESUBJECT, acct.FUND_TRANS_CUST.BUYERCODE);
- if (cust == null)
- {
- return;
- }
-
- // 二级账户是否存在
- if (acct.SECONDACCOUNT.Length == 0)
- {
- errMsg = base._errMsgMoneyNotEnough;
- return;
- }
- Model.SEL_FUND_CUST_USEDDETAIL detail = null;
- Model.SEL_FUND_SECONDLE_USEDETAIL secdetaill = null;
- string busiseq = Common.SaleFundCommon.GetBusiSeq();
- // 事务开启
- // transaction.BeginTransaction();
- System.Collections.ArrayList list = new System.Collections.ArrayList();
- acct.FUND_TRANS_CUST.TRANS_MONEY = -acct.FUND_TRANS_CUST.TRANS_MONEY;
- detail = new Model.SEL_FUND_CUST_USEDDETAIL(acct, busiseq);
- secdetaill = new Model.SEL_FUND_SECONDLE_USEDETAIL(acct, busiseq);
- list.Add(base.GetFundCustAccountInstance().Sql_AddLeaveMoneyCustAccount(acct.FUND_TRANS_CUST));
- list.Add(base.GetFundCustUsedDetailInstance().Sql_Insert(detail));
- list.Add( base.GetFundSecondAccountInstance().Sql_AddMoneyToSecondLevelAccount(acct));
- list.Add( base.GetFundSecondUsedDetailInstance().Sql_Insert(secdetaill));
- base.ExecuteNoReader(list,out errMsg);
- //// 客户账户总资金减少
- //base.GetFundCustAccountInstance().AddLeaveMoneyCustAccount(acct.FUND_TRANS_CUST, transaction);
- //// 写明细
- //base.GetFundCustUsedDetailInstance().Insert(detail, transaction);
- //// 二级账户总资金和剩余资金增加
- //base.GetFundSecondAccountInstance().AddMoneyToSecondLevelAccount(acct, transaction);
- //// 写明细
- //base.GetFundSecondUsedDetailInstance().Insert(secdetaill, transaction);
- // 提交
- //errMsg = transaction.ErrMsg;
- //transaction.Commit();
- }
- catch (Exception ex)
- {
- errMsg = ex.Message;
- }
- }
- /// <summary>
- /// 二级账户到客户账户
- /// 二级账户总资金,剩余资金减少
- /// 客户账户总资金不变,剩余资金增加
- /// </summary>
- /// <param name="acct"></param>
- /// <param name="errMsg"></param>
- public void TransferMoneySecondAccountToCust(Model.SEL_FUND_TRANS_SECONDACCOUNT acct, out string errMsg)
- {
- errMsg = "";
- DbHelp.DbTransaction transaction = base.GetTransaction();
- try
- {
- // 检查二级账户剩余资金是否足够
- Model.SEL_FUND_SECONDLEVEL_ACCOUNT secacct =
- base.GetFundSecondAccountInstance().
- GetSelFundSecondAccountBySecondAccount(acct.FUND_TRANS_CUST.BALANCESUBJECT,
- acct.FUND_TRANS_CUST.BUYERCODE,
- acct.SECONDACCOUNT);
- if (secacct == null)
- {
- errMsg = base._errDefaultMsg;
- return;
- }
- // 小于转移资金
- if (secacct.LEAVEMONEY < acct.TRANS_MONEY)
- {
- errMsg = base._errMsgMoneyNotEnough;
- return;
- }
- Model.SEL_FUND_CUST_USEDDETAIL detail = null;
- Model.SEL_FUND_SECONDLE_USEDETAIL secdetaill = null;
- string busiseq = Common.SaleFundCommon.GetBusiSeq();
- // 二级账户总资金和剩余资金减少
- acct.FUND_TRANS_CUST.TRANS_MONEY = acct.TRANS_MONEY;
- acct.TRANS_MONEY = -acct.TRANS_MONEY;
- detail = new Model.SEL_FUND_CUST_USEDDETAIL(acct, busiseq);
- secdetaill = new Model.SEL_FUND_SECONDLE_USEDETAIL(acct, busiseq);
- // 开启事务
- System.Collections.ArrayList list = new System.Collections.ArrayList();
- list.Add(base.GetFundSecondAccountInstance().Sql_AddMoneyToSecondLevelAccount(acct));
- list.Add(base.GetFundSecondUsedDetailInstance().Sql_Insert(secdetaill));
- list.Add(base.GetFundCustAccountInstance().Sql_AddLeaveMoneyCustAccount(acct.FUND_TRANS_CUST));
- list.Add(base.GetFundCustUsedDetailInstance().Sql_Insert(detail));
- //base.GetFundSecondAccountInstance().AddMoneyToSecondLevelAccount(acct, transaction);
- //base.GetFundSecondUsedDetailInstance().Insert(secdetaill,transaction);
- //// 客户账户剩余资金增加,总资金不变
- //base.GetFundCustAccountInstance().AddLeaveMoneyCustAccount(acct.FUND_TRANS_CUST, transaction);
- //base.GetFundCustUsedDetailInstance().Insert(detail,transaction);
- base.ExecuteNoReader(list, out errMsg);
- }
- catch(Exception ex)
- {
- errMsg = ex.Message;
- }
- }
- public System.Collections.ArrayList GetTransferMoneySecondAccountToCust(Model.SEL_FUND_TRANS_SECONDACCOUNT acct, out string errMsg)
- {
- errMsg = "";
- try
- {
- // 检查二级账户剩余资金是否足够
- Model.SEL_FUND_SECONDLEVEL_ACCOUNT secacct =
- base.GetFundSecondAccountInstance().
- GetSelFundSecondAccountBySecondAccount(acct.FUND_TRANS_CUST.BALANCESUBJECT,
- acct.FUND_TRANS_CUST.BUYERCODE,
- acct.SECONDACCOUNT);
-
- Model.SEL_FUND_CUST_USEDDETAIL detail = null;
- Model.SEL_FUND_SECONDLE_USEDETAIL secdetaill = null;
- string busiseq = Common.SaleFundCommon.GetBusiSeq();
- // 二级账户总资金和剩余资金减少
- acct.FUND_TRANS_CUST.TRANS_MONEY = acct.TRANS_MONEY;
- acct.TRANS_MONEY = -acct.TRANS_MONEY;
- detail = new Model.SEL_FUND_CUST_USEDDETAIL(acct, busiseq);
- secdetaill = new Model.SEL_FUND_SECONDLE_USEDETAIL(acct, busiseq);
- // 开启事务
- System.Collections.ArrayList list = new System.Collections.ArrayList();
- list.Add(base.GetFundSecondAccountInstance().Sql_AddMoneyToSecondLevelAccount(acct));
- list.Add(base.GetFundSecondUsedDetailInstance().Sql_Insert(secdetaill));
- list.Add(base.GetFundCustAccountInstance().Sql_AddLeaveMoneyCustAccount(acct.FUND_TRANS_CUST));
- list.Add(base.GetFundCustUsedDetailInstance().Sql_Insert(detail));
- return list;
- //base.GetFundSecondAccountInstance().AddMoneyToSecondLevelAccount(acct, transaction);
- //base.GetFundSecondUsedDetailInstance().Insert(secdetaill,transaction);
- //// 客户账户剩余资金增加,总资金不变
- //base.GetFundCustAccountInstance().AddLeaveMoneyCustAccount(acct.FUND_TRANS_CUST, transaction);
- //base.GetFundCustUsedDetailInstance().Insert(detail,transaction);
- }
- catch (Exception ex)
- {
- errMsg = ex.Message;
- return new System.Collections.ArrayList();
-
- }
- }
- /// <summary>
- /// 二级账户到合同账户
- /// </summary>
- /// <param name="acct"></param>
- /// <param name="errMsg"></param>
- public void TransferMoneySecondAccountToPact(Model.SEL_FUND_TRANS_PACT acct, out string errMsg)
- {
- errMsg = "";
- DbHelp.DbTransaction transaction = base.GetTransaction();
- string busiseq = Common.SaleFundCommon.GetBusiSeq();
- try
- {
- // 检查二级账户剩余资金是否足够
- Model.SEL_FUND_SECONDLEVEL_ACCOUNT secacct =
- base.GetFundSecondAccountInstance().
- GetSelFundSecondAccountBySecondAccount(acct.FUND_TRANS_SECONDACCOUNT.FUND_TRANS_CUST.BALANCESUBJECT,
- acct.FUND_TRANS_SECONDACCOUNT.FUND_TRANS_CUST.BUYERCODE,
- acct.FUND_TRANS_SECONDACCOUNT.SECONDACCOUNT);
- if (secacct == null)
- {
- errMsg = base._errDefaultMsg;
- return;
- }
- // 小于转移资金
- if (secacct.LEAVEMONEY < acct.TRANS_MONEY)
- {
- errMsg = base._errMsgMoneyNotEnough;
- return;
- }
- // 二级账户总资金减少
- acct.FUND_TRANS_SECONDACCOUNT.TRANS_MONEY = -acct.TRANS_MONEY;
- Model.SEL_FUND_PACT_TRANSDETAIL detal =
- new Model.SEL_FUND_PACT_TRANSDETAIL(acct, busiseq);
- Model.SEL_FUND_SECONDLE_USEDETAIL detailSec =
- new Model.SEL_FUND_SECONDLE_USEDETAIL(acct,busiseq);
-
- // 开启事务
- transaction.BeginTransaction();
- System.Collections.ArrayList list = new System.Collections.ArrayList();
- list.Add(base.GetFundSecondAccountInstance().Sql_AddSecondLevelAccountLeavemoney(acct.FUND_TRANS_SECONDACCOUNT));
- list.Add(base.GetFundSecondUsedDetailInstance().Sql_Insert(detailSec));
- list.Add(base.GetFundPactAccountInstance().Sql_AddFundPactAccountTotalMoneyAndLeavemoney(acct));
- list.Add(base.GetFundPactTransDetailInstance().Sql_Insert(detal));
- base.ExecuteNoReader(list, out errMsg);
- //base.GetFundSecondAccountInstance().AddSecondLevelAccountLeavemoney(acct.FUND_TRANS_SECONDACCOUNT, transaction);
- //base.GetFundSecondUsedDetailInstance().Insert(detailSec, transaction);
- //// 合同账户总资金和剩余资金增加
- //base.GetFundPactAccountInstance().AddFundPactAccountTotalMoneyAndLeavemoney(acct, transaction);
- //base.GetFundPactTransDetailInstance().Insert(detal,transaction);
- // 提交
- }
- catch(Exception ex)
- {
- errMsg = ex.Message;
- }
- }
- /// <summary>
- /// 合同账户到二级账户
- /// </summary>
- /// <param name="acct"></param>
- /// <param name="errMsg"></param>
- public void TransferMoneyPactToSecondAccount(Model.SEL_FUND_TRANS_PACT acct, out string errMsg)
- {
- errMsg = "";
- DbHelp.DbTransaction transaction = base.GetTransaction();
- string busiseq = Common.SaleFundCommon.GetBusiSeq();
- try
- {
- if (!Model.SEL_FUND_TRANS_PACT.IsAvailable(acct))
- {
- errMsg = base._errDefaultMsg;
- return;
- }
- Model.SEL_FUND_PACT_ACCOUNT acctpact = new Model.SEL_FUND_PACT_ACCOUNT();
- acctpact.BALANCESUBJECT = acct.FUND_TRANS_SECONDACCOUNT.FUND_TRANS_CUST.BALANCESUBJECT;
- acctpact.BUYERCODE = acct.FUND_TRANS_SECONDACCOUNT.FUND_TRANS_CUST.BUYERCODE;
- acctpact.SECONDACCOUNT = acct.FUND_TRANS_SECONDACCOUNT.SECONDACCOUNT;
- acctpact.PACTNO = acct.PACTNO;
- Model.SEL_FUND_PACT_ACCOUNT pactact =
- base.GetFundPactAccountInstance().GetSelFundPactAccountModel(acctpact);
- // 检查剩余资金
- if (pactact.LEAVEMONEY < acct.TRANS_MONEY)
- {
- errMsg = base._errMsgMoneyNotEnough;
- return;
- }
- // 二级账户总资金不变,剩余资金增加
- acct.FUND_TRANS_SECONDACCOUNT.TRANS_MONEY = acct.TRANS_MONEY;
- // 合同账户总资金,剩余资金较少
- acct.TRANS_MONEY = -acct.TRANS_MONEY;
- Model.SEL_FUND_PACT_TRANSDETAIL detal =
- new Model.SEL_FUND_PACT_TRANSDETAIL(acct, busiseq);
- Model.SEL_FUND_SECONDLE_USEDETAIL detailSec =
- new Model.SEL_FUND_SECONDLE_USEDETAIL(acct, busiseq);
- // transaction.BeginTransaction();
- System.Collections.ArrayList list = new System.Collections.ArrayList();
- list.Add( base.GetFundPactAccountInstance().Sql_AddFundPactAccountTotalMoneyAndLeavemoney(acct));
- list.Add(base.GetFundPactTransDetailInstance().Sql_Insert(detal));
- list.Add( base.GetFundSecondAccountInstance().Sql_AddSecondLevelAccountLeavemoney(acct.FUND_TRANS_SECONDACCOUNT));
- list.Add(base.GetFundSecondUsedDetailInstance().Sql_Insert(detailSec));
- // base.GetFundPactAccountInstance().AddFundPactAccountTotalMoneyAndLeavemoney(acct, transaction);
- // base.GetFundPactTransDetailInstance().Insert(detal, transaction);
- //二级账户剩余资金增加,总资金不变
- // base.GetFundSecondAccountInstance().AddSecondLevelAccountLeavemoney(acct.FUND_TRANS_SECONDACCOUNT, transaction);
- // base.GetFundSecondUsedDetailInstance().Insert(detailSec, transaction);
- // 提交
- // errMsg = transaction.ErrMsg;
- // transaction.Commit();
- base.ExecuteNoReader(list,out errMsg);
- }
- catch(Exception ex)
- {
- errMsg = ex.Message;
- }
- }
- }
- }
|