protected
override bool DoApprove(MyStatusChangeEventArgs<SdEntities,
SdPriceChk> e)
{
//更新价格清单
UpdatePubItemPrice(e.ctx, e.MasterEntity);
return
base.DoApprove(e);
}
private
void UpdatePubItemPrice(ObjectContext ctx,
SdPriceChk sdPriceChk)
{
//取得Pub模块的Context
var pubCtx = CreateContext<PubEntities>();
//找出本单涉及的ItemID集合
var billItem = sdPriceChk.SdPriceChkItem.Select(o => o.ItemID);
//1. Linq的写法
var pubItemPriceSet =
from it in pubCtx.PubItemPrices
where billItem.Contains(it.ItemID) select it;
//2.
拉母达表达式的写法:
var pubItemPriceSet = pubCtx.PubItemPrices.Where(o => billItem.Contains(o.ItemID));
//循环明细记录
foreach (var item
in sdPriceChk.SdPriceChkItem)
{
var pubItemPrice = pubItemPriceSet.Where(o => o.ItemID == item.ItemID).FirstOrDefault();
if (pubItemPrice ==
null)
{
pubItemPrice = pubCtx.PubItemPrices.CreateObject();
pubItemPrice.ItemID = item.ItemID ??
Guid.Empty;
pubCtx.PubItemPrices.AddObject(pubItemPrice);
}
else
{
pubItemPrice.MarkAsModified();
}
pubItemPrice.Price = item.Price;
}
}