using YLErp.DBModels.Abstract; using YLErp.DBModels.Consts; using YLErp.Plugins.TradeDocGenerator.Abstracts; namespace YLErp.Modules.TradeModule.DocGenerateModule { /// /// 交易结算生成上下文 /// public class UnwindReportGenerateContext : ConfirmationGenerateContext, ITradeUnwindReportGeneratorContext { public UnwindReportGenerateContext(IEnumerable tradeCashIds, IEnumerable trades, string contractType, OptUserInfo userInfo, DateTime? startDate, DateTime? endDate) : base(tradeCashIds, trades, contractType, userInfo, startDate, endDate) { } public UnwindReportGenerateContext(int tradeCashId, trade tradeObj, string contractType, OptUserInfo userInfo) : base(tradeCashId, tradeObj, contractType, userInfo) { } //交易确认书对象 trade_contract_document _contractDoc; /// /// 获取交易确认书 /// public ITradeContractDocument GetTradeContractDocument(int tradeId, string tradeNumber, bool throwException = true) { if (_contractDoc == null) { var db = DbContextFactory.GetYLDbContext(); var query = from contractDoc in db.trade_contract_document join tcr in db.trade_contract_r on contractDoc.Code equals tcr.ContractCode where tcr.TradeId == tradeId && contractDoc.Type == ContractTypeEnum.Trade && tcr.Type == ContractTypeEnum.Trade && tcr.IsValid select contractDoc; _contractDoc = query.FirstOrDefault(); } if (_contractDoc == null && throwException) { throw new ServiceException($"未找到交易确认书(交易编号:{tradeNumber})"); } return _contractDoc; } public bool OnUnwindReportGenerated() { throw new NotImplementedException(); } } }