UpdateBarCode.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using UFSoft.UBF.Business;
  7. namespace UFIDA.U9.Cust.Kusi.CJJ.Plugin.BE.TransferOut
  8. {
  9. public class UpdateBarCode : UFSoft.UBF.Eventing.IEventSubscriber
  10. {
  11. public void Notify(params object[] args)
  12. {
  13. #region 从事件参数中取得当前业务实体
  14. if (args == null || args.Length == 0 || !(args[0] is UFSoft.UBF.Business.EntityEvent))
  15. return;
  16. BusinessEntity.EntityKey key = ((UFSoft.UBF.Business.EntityEvent)args[0]).EntityKey;
  17. if (key == null)
  18. return;
  19. UFIDA.U9.InvDoc.TransferOut.TransferOut holder = key.GetEntity() as UFIDA.U9.InvDoc.TransferOut.TransferOut;
  20. if (holder == null)
  21. return;
  22. #endregion
  23. //弃审时更新条码库位存储信息
  24. if (holder.Status == UFIDA.U9.InvDoc.TransferOut.Status.Opening
  25. && holder.OriginalData != null
  26. && holder.OriginalData.Status == UFIDA.U9.InvDoc.TransferOut.Status.Approved)
  27. {
  28. foreach (var line in holder.TransOutLines)
  29. {
  30. BarCodeUpdater.Update(line.ID, "UFIDA.U9.InvDoc.TransferOut.TransOutLine");
  31. }
  32. }
  33. //提交前的保存时出入库单据审核控制条码仓
  34. if (holder.Status == UFIDA.U9.InvDoc.TransferOut.Status.Opening
  35. && holder.OriginalData != null
  36. && holder.OriginalData.Status == UFIDA.U9.InvDoc.TransferOut.Status.Opening)
  37. {
  38. foreach (var line in holder.TransOutLines)
  39. {
  40. if (line.TransOutWh != null)
  41. {
  42. if (line.TransOutWh.DescFlexField.PrivateDescSeg1.ToUpper().Equals("TRUE") && !Base.Context.LoginUser.Contains("PDA"))
  43. {
  44. throw new Exception(string.Format("单号{0},{1}行的存储地点为条码管理,请扫码出货。", holder.DocNo, line.DocLineNo));
  45. }
  46. }
  47. }
  48. }
  49. }
  50. }
  51. }