69 lines
2.2 KiB
C#
69 lines
2.2 KiB
C#
using YLErp.DBModels.Consts;
|
|
|
|
namespace YLErp.Modules.TradeModule
|
|
{
|
|
/// <summary>
|
|
/// 交易文档数据操作服务
|
|
/// </summary>
|
|
public class TradeDocumentDataService : YLBaseService
|
|
{
|
|
public TradeDocumentDataService(YLBaseService baseService) : base(baseService)
|
|
{
|
|
|
|
}
|
|
|
|
public TradeDocumentDataService(OptUserInfo userInfo) : base(userInfo)
|
|
{
|
|
}
|
|
|
|
/// <summary>
|
|
/// 如果状态是修改待确认状态,要删除原来已经生成的确认书
|
|
/// </summary>
|
|
public void DeleteBooksAfterEditTrade(trade trade)
|
|
{
|
|
//如果状态是修改待确认状态,要删除原来已经生成的确认书
|
|
if (trade.TradeStatus == ConsTrade.修改待确认)
|
|
{
|
|
InnerDeleteConfirmBook(trade.id);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 删除确认书
|
|
/// </summary>
|
|
public int DeleteConfirmBook(int tradeId, string contractType = ContractTypeEnum.Trade)
|
|
{
|
|
return InnerDeleteConfirmBook(tradeId, contractType);
|
|
}
|
|
|
|
public int InnerDeleteConfirmBook(int tradeId, params string[] contractTypes)
|
|
{
|
|
var doc = from contractRelation in DbContext.trade_contract_r
|
|
where contractRelation.TradeId == tradeId && contractRelation.IsValid
|
|
select contractRelation;
|
|
|
|
if (contractTypes.Length > 0)
|
|
{
|
|
doc = doc.Where(O => contractTypes.Contains(O.Type));
|
|
}
|
|
|
|
if (!doc.Any())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
//同ContractCode的都要改变
|
|
var docArr = doc.ToArray();
|
|
var contractCode = docArr.FirstOrDefault().ContractCode;
|
|
var types = docArr.Select(o => o.Type).ToArray();
|
|
var tcrs = from tcr in DbContext.trade_contract_r
|
|
where tcr.ContractCode == contractCode && types.Contains(tcr.Type) && tcr.IsValid
|
|
select tcr;
|
|
|
|
tcrs.ToList().ForEach(O => O.IsValid = false);
|
|
|
|
return DbContext.SaveChanges();
|
|
}
|
|
}
|
|
}
|