using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using UFSoft.UBF.Business; namespace UFIDA.U9.Cust.Kusi.CJJ.Plugin.BE.MiscRcvTrans { public class UpdateBarCode : UFSoft.UBF.Eventing.IEventSubscriber { public void Notify(params object[] args) { #region 从事件参数中取得当前业务实体 if (args == null || args.Length == 0 || !(args[0] is UFSoft.UBF.Business.EntityEvent)) return; BusinessEntity.EntityKey key = ((UFSoft.UBF.Business.EntityEvent)args[0]).EntityKey; if (key == null) return; UFIDA.U9.InvDoc.MiscRcv.MiscRcvTrans holder = key.GetEntity() as UFIDA.U9.InvDoc.MiscRcv.MiscRcvTrans; if (holder == null) return; #endregion //弃审时更新条码库位存储信息 if (holder.Status == UFIDA.U9.InvDoc.Enums.INVDocStatus.Open && holder.OriginalData != null && holder.OriginalData.Status == UFIDA.U9.InvDoc.Enums.INVDocStatus.Approved) { foreach (var line in holder.MiscRcvTransLs) { BarCodeUpdater.Update(line.ID, "UFIDA.U9.InvDoc.MiscRcv.MiscRcvTransL"); } } //审核时出入库单据审核控制条码仓 if (holder.Status == UFIDA.U9.InvDoc.Enums.INVDocStatus.Approved && holder.OriginalData != null && holder.OriginalData.Status == UFIDA.U9.InvDoc.Enums.INVDocStatus.Approving) { foreach (var line in holder.MiscRcvTransLs) { if (line.Wh != null) { if (line.Wh.DescFlexField.PrivateDescSeg1.ToUpper().Equals("TRUE") && !Base.Context.LoginUser.Contains("PDA")) { throw new Exception(string.Format("单号{0},{1}行的存储地点为条码管理,请扫码出货。", holder.DocNo, line.DocLineNo)); } } } } } } }