/* A függvény kiszámolja, egy adott betárolási bizonylat minden tételsorához, hogy hány ládára van szükség a betároláshoz, az alapértelmezett ládában. */ public void LcNumPreCalculation(int CtrH) { Session session = new Session(); XPQuery <CommonTrDetail> details = session.Query <CommonTrDetail>(); IQueryable <CommonTrDetail> list = (from c in details where (c.CommonTrHeader.Oid == CtrH) orderby c.ItemNum ascending select c); QtyExchange qtyX = null; // végigmegyünk az ügylet összes tételsorán foreach (CommonTrDetail ctrd in list) { int kalkulaltLadaszamTetelsoron = 0; double tetelsorIgenyelt = ctrd.Quantity; double tetelsorTeljesitett = ctrd.PerformedQty; double maradekMennyiseg = tetelsorIgenyelt - tetelsorTeljesitett; double maxBetarolhatoDb = 0; if (maradekMennyiseg > 0) { // megkeressük az alapértelmezett betárolást XPQuery <QtyExchange> atvaltasok = session.Query <QtyExchange>(); IQueryable <QtyExchange> list1 = (from q in atvaltasok where (q.Product.Oid == ctrd.Product.Oid && q.In == true && q.Default == true) select q).Take(1); foreach (QtyExchange QtyEx in list1) { qtyX = QtyEx; } // megnézzük, hogy az alapértelmezett ládába, hány darabot tárolhatunk el // Source = Hány egység (doboz,zacskó...) Target= egységenként hány db ------- 3 dobozban dobozonként 100 egység , összesen 300 maxBetarolhatoDb = qtyX.SourceQty * qtyX.TargetQty; //Kiszámoljuk, hogy mennyi láda kell az aktuális darabszámra. kalkulaltLadaszamTetelsoron = Convert.ToInt32(maradekMennyiseg / maxBetarolhatoDb); // ha van maradék, plusz egy ládát kell kihivni. if (maradekMennyiseg > (kalkulaltLadaszamTetelsoron * maxBetarolhatoDb)) { kalkulaltLadaszamTetelsoron++; } } if (kalkulaltLadaszamTetelsoron > 0) { ctrd.CalcLcNumber = (UInt32)kalkulaltLadaszamTetelsoron; } ctrd.Save(); } }
private void createAisle(Product product, LoadCarrierType lct, double sourceQty, double targetQty) { QtyExchange qtyExchange = View.ObjectSpace.CreateObject <QtyExchange>(); qtyExchange.Product = product; qtyExchange.LcType = lct; qtyExchange.SourceQty = sourceQty; qtyExchange.TargetUnit = unitType; qtyExchange.TargetQty = targetQty; qtyExchange.In = true; qtyExchange.Out = false; }
private void createQexchange(Product product, LoadCarrierType lct, double sourceQty, double targetQty, bool io, bool def, UInt32 width, UInt32 length, UInt32 height, double weight) { QtyExchange qtyExchange = View.ObjectSpace.CreateObject <QtyExchange>(); qtyExchange.Product = product; qtyExchange.LcType = lct; qtyExchange.SourceQty = sourceQty; qtyExchange.TargetUnit = unitType; qtyExchange.TargetQty = targetQty; qtyExchange.In = io; qtyExchange.Out = !io; qtyExchange.Default = def; qtyExchange.PackageWidth = width; qtyExchange.PackageLength = length; qtyExchange.PackageHeight = height; qtyExchange.PackageWeight = weight; }
private void LogX_LcIsHere_Execute(object sender, SimpleActionExecuteEventArgs e) { Iocp iocp = (Iocp)View.CurrentObject; CriteriaOperator c = new GroupOperator(GroupOperatorType.And, new BinaryOperator("CommonTrHeader", iocp.ActiveCTrH), new BinaryOperator("TargetTag", iocp.TargetTag)); IList tpoList = View.ObjectSpace.GetObjects(typeof(TransportOrder), c, false); if (tpoList.Count > 0) { TransportOrder tpo = (TransportOrder)tpoList[0]; iocp.ActiveLc = tpo.LC; iocp.ActiveCtrD = tpo.CommonDetail; iocp.ActiveProduct = tpo.CommonDetail.Product; StorageLocation sl = tpo.SourceLocation; CriteriaOperator copQtyE = new GroupOperator(GroupOperatorType.And, new BinaryOperator("In", true), new BinaryOperator("Product", iocp.ActiveProduct)); QtyExchange qtye = View.ObjectSpace.FindObject <QtyExchange>(copQtyE); iocp.Qexchange = qtye; iocp.StoredUnit = qtye.SourceQty; double recentQty = iocp.ActiveCtrD.GetRecentQuantity(); //iocp.StoredQty = Math.Min(qtye.SourceQty * qtye.TargetQty, recentQty); //LokacioFelszabadítas(sl); iocp.LcCallingOK = true; //myOpcClient.DeleteTransport(ObjectSpace,tpo.TpId); DeleteTransport(tpo.Oid); foreach (Stock stock in iocp.ActiveLc.Stocks) { stock.StorageLocation = null; } } else { MessageBox.Show("Nincs több láda!"); } View.ObjectSpace.CommitChanges(); View.Refresh(); }