123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- 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
- {
- internal class BarCodeUpdater
- {
- public static void Update(long id, string entityType)
- {
- using (ISession session = Session.Open())
- {
- UFIDA.U9.BC.BaseData.BarCodeUsed.EntityList tmp = UFIDA.U9.BC.BaseData.BarCodeUsed.Finder.FindAll("UseDocLine.EntityID=@ID and UseDocLine.EntityType=@EntityType and CurQty>0 order by CreatedOn desc"
- , new UFSoft.UBF.PL.OqlParam[]
- {
- new UFSoft.UBF.PL.OqlParam(id),
- new UFSoft.UBF.PL.OqlParam(entityType)
- });
- if (tmp != null && tmp.Count > 0)
- {
- List<UFIDA.U9.BC.BaseData.BarCodeUsed> list = Distinct(tmp);
- foreach (var barCodeUsed in list)
- {
- //if (barCodeUsed.IsUpdateWh || barCodeUsed.CopyOfBarCodeApp == UFIDA.U9.BC.Common.CopyOfBarCodeAppsEnum.QuickTransIn)
- if (barCodeUsed.IsUpdateWh)
- {
- //if (barCodeUsed.Direct == UFIDA.U9.BC.Common.DirectEnum.Rcv || barCodeUsed.CopyOfBarCodeApp == UFIDA.U9.BC.Common.CopyOfBarCodeAppsEnum.QuickTransIn)
- string barCodeTmp = barCodeUsed.BarCode;
- UFIDA.U9.BC.Common.DirectEnum directEnum = barCodeUsed.Direct;
- decimal qty = barCodeUsed.CurQty;
- //BarCode barCodeMaster = barCodeUsed.BarCodeMaster;
- barCodeUsed.Remove();
- session.Commit();
- var barCodeUsedTmp = UFIDA.U9.BC.BaseData.BarCodeUsed.Finder.Find(string.Format("BarCode='{0}' order by CreatedOn desc",barCodeTmp));
- string binid = "";
- string bincode = "";
- string binname = "";
- string whid = "";
- string whcode = "";
- string whname = "";
- if (barCodeUsedTmp != null)
- {
- binid = barCodeUsedTmp["Cust4Binid"].ToString();
- bincode = barCodeUsedTmp["Cust4Bincode"].ToString();
- binname = barCodeUsedTmp["Cust4Binname"].ToString();
- whid = barCodeUsedTmp["Cust4Whid"].ToString();
- whcode = barCodeUsedTmp["Cust4Whcode"].ToString();
- whname = barCodeUsedTmp["Cust4Whname"].ToString();
- //barCodeMaster = barCodeUsedTmp.BarCodeMaster;
- }
- else
- {
- barCodeUsedTmp = barCodeUsed;
- }
- if (directEnum == UFIDA.U9.BC.Common.DirectEnum.Rcv)
- {
- //barCodeUsedTmp.BarCodeMaster.WhQty = barCodeUsedTmp.BarCodeMaster.WhQty - qty;
- //barCodeUsedTmp.BarCodeMaster.SetValue("Cust4Binid",binid);
- //barCodeUsedTmp.BarCodeMaster.SetValue("Cust4Bincode",bincode);
- //barCodeUsedTmp.BarCodeMaster.SetValue("Cust4Binname",binname);
- //barCodeUsedTmp.BarCodeMaster.SetValue("Cust4Whcode", whcode);
- //barCodeUsedTmp.BarCodeMaster.SetValue("Cust4Whname", whname);
- //barCodeUsedTmp.BarCodeMaster.SetValue("Cust4Whid", whid);
- barCodeUsedTmp.BarCodeMaster.WhQty = barCodeUsedTmp.BarCodeMaster.WhQty - qty;
- if (barCodeUsedTmp.BarCodeMaster.WhQty < 0)
- {
- throw new Exception("不能弃审,弃审后条码现场量将小于0");
- }
- }
- else if (directEnum == UFIDA.U9.BC.Common.DirectEnum.Shipment)
- {
- barCodeUsedTmp.BarCodeMaster.WhQty = barCodeUsedTmp.BarCodeMaster.WhQty + qty;
- }
- barCodeUsedTmp.BarCodeMaster.SetValue("Cust4Binid", binid);
- barCodeUsedTmp.BarCodeMaster.SetValue("Cust4Bincode", bincode);
- barCodeUsedTmp.BarCodeMaster.SetValue("Cust4Binname", binname);
- barCodeUsedTmp.BarCodeMaster.SetValue("Cust4Whcode", whcode);
- barCodeUsedTmp.BarCodeMaster.SetValue("Cust4Whname", whname);
- barCodeUsedTmp.BarCodeMaster.SetValue("Cust4Whid", whid);
- }
- }
- }
- session.Commit();
- }
- }
- public static List<UFIDA.U9.BC.BaseData.BarCodeUsed> Distinct(UFIDA.U9.BC.BaseData.BarCodeUsed.EntityList list)
- {
- Dictionary<string, UFIDA.U9.BC.BaseData.BarCodeUsed> dic = new Dictionary<string, UFIDA.U9.BC.BaseData.BarCodeUsed>();
- foreach (var barCodeUsed in list)
- {
- if (!dic.ContainsKey(barCodeUsed.BarCode))
- {
- dic.Add(barCodeUsed.BarCode, barCodeUsed);
- }
- }
- return new List<UFIDA.U9.BC.BaseData.BarCodeUsed>(dic.Values);
- }
- }
- }
|