Files
zszq-trs/YLErpDAL/Modules/TradeModule/TradeDocumentDataService.cs
T

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();
}
}
}