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.IssueDoc { 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.MO.Issue.IssueDoc holder = key.GetEntity() as UFIDA.U9.MO.Issue.IssueDoc; if (holder == null) return; #endregion //弃审时更新条码库位存储信息 if (holder.DocState == UFIDA.U9.MO.Enums.IssueTXNStateEnum.Approved && holder.OriginalData != null && holder.OriginalData.DocState == UFIDA.U9.MO.Enums.IssueTXNStateEnum.Closed) { foreach (var line in holder.IssueDocLines) { BarCodeUpdater.Update(line.ID, "UFIDA.U9.MO.Issue.IssueDocLine"); } } //领料确认时出入库单据审核控制条码仓 if (holder.DocState == UFIDA.U9.MO.Enums.IssueTXNStateEnum.Closed && holder.OriginalData != null && holder.OriginalData.DocState == UFIDA.U9.MO.Enums.IssueTXNStateEnum.Approved) { foreach (var line in holder.IssueDocLines) { 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)); } } } } } } }