Example #1
0
        public WIPItemNeed(Session session, WIPSalesOrderLine soLine, WIPTable wipTable)
            : base(session)
        {
            WIPTable = wipTable;
            SalesOrderLine = soLine;
            Item = soLine.SaleOrderLine.Item;
            ItemSource = Item.Source;
            IsEnableCalcQty = true;
            NeedDate = soLine.SaleOrderLine.NeedDate;
            NeedQty = soLine.BalQty - soLine.ReadyShipQty;
            WareHouse = soLine.SaleOrderLine.WareHouse;
            calcSubItemNeedQty();
            Level = 1;
            SubLevel = 1;
            SetSortKey();

            // childItemNeed 的用途是取得最先那个真正要用的RouteLine的WIPItemNeed.
            // 例 : P <= M 时, P为最后的RouteLine, 但它是取M的, 所以是M的WIPItemNeed才需要找Bom作为DictChildItemNeed
            // 而 P的ChildItemNeed只是M.
            WIPItemNeed childItemNeed = this;

            if (ItemSource == Item.ItemSource.Make)
            {
                RouteLine rLine = Item.GetLastRouteLine();

                if (rLine != null)
                {
                    RouteLine = CWIPRouteLine(rLine);
                    RouteLine PreviousRLine = rLine.GetPreviousRoute();

                    if (PreviousRLine != null)
                    {
                        WIPItemNeed childWipItemNeed = new WIPItemNeed(Session, this, PreviousRLine, ref childItemNeed);
                        childWipItemNeed.Save();
                    }
                    else
                    {
                        IsCheckWH = true;
                    }
                }

                InitBomItemNeed(childItemNeed);
            }
            else
            {
                IsCheckWH = true;
            }
        }
Example #2
0
        private void cacheSOLine()
        {
            XPClassInfo soLineClass = uow.GetClassInfo(typeof(SalesOrderLine));
            CriteriaOperator criteria = CriteriaOperator.Parse(string.Format("(OrderStatus = '{0}' || OrderStatus == '{1}') ", SalesOrderLine.SalesOrderStatus.Active, SalesOrderLine.SalesOrderStatus.Waiting));
            SortingCollection sortProps = new SortingCollection(null);
            sortProps.Add(new SortProperty("NeedDate", SortingDirection.Ascending));

            ICollection salesOrderLines = uow.GetObjects(soLineClass, criteria, sortProps, int.MaxValue, false, true);

            soLines = new XPCollection<WIPSalesOrderLine>(uow, false);
            WIPSalesOrderLine soLine;

            foreach (SalesOrderLine salesOrderLine in salesOrderLines)
            {
                soLine = new WIPSalesOrderLine(uow, salesOrderLine);
                soLine.WIPTable = wipTable;
                soLine.Save();
                soLines.Add(soLine);
            }
        }
Example #3
0
        private void cacheSOLine()
        {
            XPClassInfo soLineClass;
            CriteriaOperator criteria;
            SortingCollection sortProps;

            soLineClass = uow.GetClassInfo(typeof(SalesOrderLine));
            criteria = CriteriaOperator.Parse(string.Format("(OrderStatus = '{0}' || OrderStatus == '{1}') ", SalesOrderLine.SalesOrderStatus.Active, SalesOrderLine.SalesOrderStatus.Waiting));

            if (debugMode)
            {
                criteria = CriteriaOperator.Parse(string.Format("(Item.ItemNo = '05CA1798A01' ) "));
                //criteria = CriteriaOperator.Parse(string.Format("(OrderStatus = '{0}' || OrderStatus == '{1}') && Item.ItemNo == '01CA9096A05' ", SalesOrderLine.SalesOrderStatus.Active, SalesOrderLine.SalesOrderStatus.Waiting));
            }

            sortProps = new SortingCollection(null);
            sortProps.Add(new SortProperty("NeedDate", SortingDirection.Ascending));

            ICollection salesOrderLines = uow.GetObjects(soLineClass, criteria, sortProps, int.MaxValue, false, true);

            soLines = new XPCollection<WIPSalesOrderLine>(Session, false);
            WIPSalesOrderLine soLine;

            foreach (SalesOrderLine salesOrderLine in salesOrderLines)
            {
                soLine = new WIPSalesOrderLine(Session, salesOrderLine);
                soLine.WIPTable = wipTable;
                System.Diagnostics.Debug.Print(string.Format("SO {0}, Item {1}", salesOrderLine.SalesOrder.OrderNo, salesOrderLine.Item.ItemNo));
                MakeWIPRouteLine(salesOrderLine.Item);
                soLine.Save();
                soLines.Add(soLine);
            }
        }