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.Ship { 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.SM.Ship.Ship holder = key.GetEntity() as UFIDA.U9.SM.Ship.Ship; if (holder == null) return; #endregion //弃审时更新条码库位存储信息 if (holder.Status == UFIDA.U9.SM.Ship.ShipStateEnum.Creates && holder.OriginalData != null && holder.OriginalData.Status == UFIDA.U9.SM.Ship.ShipStateEnum.Approved) { foreach (var line in holder.ShipLines) { BarCodeUpdater.Update(line.ID, "UFIDA.U9.SM.Ship.ShipLine"); } } //审核时出入库单据审核控制条码仓 if (holder.Status == UFIDA.U9.SM.Ship.ShipStateEnum.Approved && holder.OriginalData != null && holder.OriginalData.Status == UFIDA.U9.SM.Ship.ShipStateEnum.Approving) { foreach (var line in holder.ShipLines) { 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)); } } } } } } }