using YLErp.DBModels.Consts; namespace YLErp.Modules.TradeModule { /// /// 交易文档数据操作服务 /// public class TradeDocumentDataService : YLBaseService { public TradeDocumentDataService(YLBaseService baseService) : base(baseService) { } public TradeDocumentDataService(OptUserInfo userInfo) : base(userInfo) { } /// /// 如果状态是修改待确认状态,要删除原来已经生成的确认书 /// public void DeleteBooksAfterEditTrade(trade trade) { //如果状态是修改待确认状态,要删除原来已经生成的确认书 if (trade.TradeStatus == ConsTrade.修改待确认) { InnerDeleteConfirmBook(trade.id); } } /// /// 删除确认书 /// 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(); } } }