52 lines
2.4 KiB
C#
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;
|
|
}
|
|
|
|
|
|
}
|
|
}
|