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; } }
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); } }
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); } }