public WIPWHTotal(Session session, WHTotal whTotal) : base(session) { _Warehouse = whTotal.Warehouse; OnChanged("Warehouse"); _PhysicalQty = whTotal.PhysicalQty; OnChanged("PhysicalQty"); _AvailQty = whTotal.AvailQty; OnChanged("AvailQty"); _Item = whTotal.Item; OnChanged("Item"); }
private void UpdateWHTotal(WHTotal WHTotal) { if (WHTotal.PhysicalQty + WHQty < 0) { throw new Exception(string.Format("產品({0})倉存數({1})不足, !!", Item.ItemNo, WHTotal.PhysicalQty)); } WHTotal.PhysicalQty = WHTotal.PhysicalQty + WHQty; WHTotal.Save(); }
protected void UpdateWHQty(WHTotal whTotal) { if (whTotal.Unit != null) { _WHUnit = whTotal.Unit; OnChanged("WHUnit"); } if (_OriginalUnit == null) return; if (_OriginalUnit == _WHUnit) { _WHQty = _OriginalQty; _ExchangeRate = 1; } else if (_OriginalUnit.Type == Unit.UnitType.Qty) { _ExchangeRate = _OriginalUnit.GetExchangeRate(_WHUnit); _WHQty = _OriginalQty / _ExchangeRate; } else if (_OriginalUnit.Type == Unit.UnitType.Dimension) { _WHQty = _OriginalQty; // Cannot Calculate the WHQty _ExchangeRate = 1; } else if (_OriginalUnit.Type == Unit.UnitType.Weight) { _ExchangeRate = Item.NetWeight; _WHQty = _OriginalQty / _ExchangeRate; } OnChanged("WHQty"); OnChanged("ExchangeRate"); }
protected override void OnSaving() { if (base.IsNewRecord()) { WHTotal WHTotal = Session.FindObject<WHTotal>(CriteriaOperator.Parse(string.Format("Item = '{0}' AND Warehouse = '{1}'", Item.Oid, Warehouse.Oid))); if (WHTotal == null) { WHTotal = new WHTotal(Session); WHTotal.Item = Item; WHTotal.PhysicalQty = 0; WHTotal.Warehouse = Warehouse; WHTotal.Save(); } UpdateWHQty(WHTotal); UpdateWHTotal(WHTotal); } base.OnSaving(); }