Esempio n. 1
0
        /* 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();
            }
        }
Esempio n. 2
0
        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;
        }
Esempio n. 3
0
        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();
        }