52 lines
2.0 KiB
C#
52 lines
2.0 KiB
C#
using YLErp.DBModels.Abstract;
|
|
using YLErp.DBModels.Consts;
|
|
using YLErp.Plugins.TradeDocGenerator.Abstracts;
|
|
|
|
namespace YLErp.Modules.TradeModule.DocGenerateModule
|
|
{
|
|
/// <summary>
|
|
/// 交易结算生成上下文
|
|
/// </summary>
|
|
public class UnwindReportGenerateContext : ConfirmationGenerateContext, ITradeUnwindReportGeneratorContext
|
|
{
|
|
public UnwindReportGenerateContext(IEnumerable<int> tradeCashIds, IEnumerable<trade> 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;
|
|
|
|
/// <summary>
|
|
/// 获取交易确认书
|
|
/// </summary>
|
|
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();
|
|
}
|
|
}
|
|
}
|