Exemple #1
0
        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");
        }
Exemple #2
0
        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();
        }
Exemple #3
0
        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");
        }
Exemple #4
0
        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();
        }