using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using UFIDA.U9.BC.BaseData; using UFSoft.UBF.Business; namespace UFIDA.U9.Cust.Kusi.CJJ.Plugin.BE.RcvRptDoc { 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.Complete.RCVRpt.RcvRptDoc holder = key.GetEntity() as UFIDA.U9.Complete.RCVRpt.RcvRptDoc; if (holder == null) return; #endregion //弃审时更新条码库位存储信息 if (holder.DocState == UFIDA.U9.Complete.Enums.RcvRptDocStateEnum.Opened && holder.OriginalData != null && holder.OriginalData.DocState == UFIDA.U9.Complete.Enums.RcvRptDocStateEnum.Approved) { foreach (var line in holder.RcvRptDocLines) { BarCodeUpdater.Update(line.ID, "UFIDA.U9.Complete.RCVRpt.RcvRptDocLine"); } } if (holder.Direction.Value == MO.Enums.CompleteRptDirectionEnum.WhShipment.Value) { //审核时出入库单据审核控制条码仓 if (holder.DocState == UFIDA.U9.Complete.Enums.RcvRptDocStateEnum.Approved && holder.OriginalData != null && holder.OriginalData.DocState == UFIDA.U9.Complete.Enums.RcvRptDocStateEnum.Approving) { foreach (var line in holder.RcvRptDocLines) { 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.LineNum)); } } } } } } } }