Files
zszq-trs/YLErpDAL/BLL/GenerateDocument/GeneralBatchGenerateSettleBill.cs
T
2024-05-09 14:06:26 +08:00

52 lines
2.4 KiB
C#

using YLErp.DBModels.Consts;
using YLErp.Model;
namespace YLErp.BLL.GenerateDocument
{
public class GeneralBatchGenerateSettleBill : BatchGenerateDocs
{
public GeneralBatchGenerateSettleBill(List<int> tradeIds, string docType, int optId, string optName, List<int> tradeCashIds) : base(tradeIds, docType, optId, optName, tradeCashIds)
{
}
protected override string ContractType => ContractTypeEnum.Clearing;
public override List<trade_contract_group> GetDatas()
{
//当前交易日
var valueDate = valuedateBLL.ValueDate;
var tradeStatus = new List<string> {
ConsTrade.已到期,
ConsTrade.已执行
};
var tradeCashStatus = new List<string> {
ClientCashInCashOut.系统操作_行权费
};
//获取当日行权 平仓 到期的有效交易
var tradeList = (from trade in db.trade
join tcr in (from aa in db.trade_contract_r where aa.Type == ContractTypeEnum.Trade && aa.IsValid select aa) on trade.id equals tcr.TradeId into tradeCR
from tcr in tradeCR.DefaultIfEmpty()
join tc in (from tradeCash in db.trade_cash
where tradeCash.ValidState != ConsGlobal.InValid && !tradeCash.IsDeleted && tradeCashStatus.Contains(tradeCash.Action)
&& tradeCash.ExerciseWay == TradeCashExerciseWayEnum.到期行权
select tradeCash)
on trade.id equals tc.TradeId into tCash
from tc in tCash.DefaultIfEmpty()
where tradeStatus.Contains(trade.TradeStatus) && trade.ValidState != "InValid"
&& trade.UnWindDate <= valueDate && trade.ClientId != 0 && TradeIdList.Contains(trade.id)
select new trade_contract_group
{
trade = trade,
trade_cash = tc,
ConfirmContractR = tcr,
}).ToList();
return tradeList;
}
}
}