Example #1
0
        public void IssuePurchOrder(UnitOfWork uow)
        {
            if (_OrderStatus == PurchOrderStatus.Approval || _OrderStatus == PurchOrderStatus.Active)
            {
                _IssuedDate = ServerHelper.GetCurrentDateTime();
                OnChanged("IssuedDate");

                _IssuedBy = CurrentUser;
                OnChanged("IssuedBy");

                NoOfIssue++;

                _OrderStatus = PurchOrderStatus.Active;
                OnChanged("OrderStatus");
                Save();
            }
        }
Example #2
0
        // Tmp for data conversion.
        public void SetReceivedQty(float rQty)
        {
            _ReceivedQty = rQty;
            OnChanged("ReceivedQty");

            UpdateBalQty();

            OnChanged("_BalQty");

            if (_BalQty < 0)
            {
                _ReceivedQty = _NeedQty;
                _BalQty = 0;

                OnChanged("BalQty");
                OnChanged("ReceivedQty");
            }

            if (_BalQty == 0)
            {
                _OrderStatus = PurchOrderStatus.Complete;
                OnChanged("_OrderStatus");
            }
        }
Example #3
0
        public void ApproveOrder()
        {
            if (OrderStatus == PurchOrderStatus.Waiting)
            {
                _ApprovedBy = CurrentUser;
                OnChanged("ApprovedBy");

                _ApprovedDate = ServerHelper.GetCurrentDateTime();
                OnChanged("ApprovedDate");

                _OrderStatus = PurchOrderStatus.Approval;
                OnChanged("OrderStatus");

                Save();
            }
        }
Example #4
0
        public void CancelApproveOrder()
        {
            if (OrderStatus == PurchOrderStatus.Active || OrderStatus == PurchOrderStatus.Approval)
            {
                _ApprovedBy = "";
                OnChanged("ApprovedBy");

                _ApprovedDate = Convert.ToDateTime(null);
                OnChanged("ApprovedDate");

                _OrderStatus = PurchOrderStatus.Waiting;
                OnChanged("OrderStatus");

                Save();
            }
        }
Example #5
0
        private void UpdateBalQty()
        {
            _BalQty = _NeedQty - _ReceivedQty - _CancelQty - _PendingReceivedQty;
            _FreeSpareBalQty = _FreeSpareQty - _FreeSpareReceivedQty;

            if (_FreeSpareBalQty < 0)
                _FreeSpareBalQty = 0;

            OnChanged("BalQty");
            OnChanged("FreeSpareBalQty");

            if (_BalQty < 0)
            {
                throw new Exception(String.Format("订单({0}), 产品({1}) 余数不能小于0.", PurchOrderNo, Item.ItemNo));
            }

            if (_BalQty == 0 && _FreeSpareBalQty == 0 && OrderStatus != PurchOrderStatus.Complete)
            {
                _OrderStatus = PurchOrderStatus.Complete;
                OnChanged("_OrderStatus");
            }

            if (_BalQty > 0 && OrderStatus == PurchOrderStatus.Complete)
            {
                _OrderStatus = PurchOrderStatus.Active;
                OnChanged("_OrderStatus");
            }
        }
Example #6
0
        protected override void OnSaving()
        {
            UpdatePurchReceive();

            if (PurchOrderNo == "" &&  Item.ItemType.UsedForPONo)
            {
                _PurchOrderNo = Item.ItemType.GetNextPurchOrderNo();
                OnChanged("PurchOrderNo");
            }
            else  if (PurchOrderNo == "" && WorkOrder != null)
            {
                _PurchOrderNo = WorkOrder.GetNextPurchOrderNo();
                OnChanged("PurchOrderNo");
            }
            else if (PurchOrderNo == "" && ReplenishOrder != null)
            {
                _PurchOrderNo = ReplenishOrder.OrderNo;
                OnChanged("PurchOrderNo");
            }
            else if (PurchOrderNo == "")
            {
                if (poType == PurchOrderType.Normal)
                    _PurchOrderNo = Barcode.GetNextBarcode("PurchOrder");
                else
                    _PurchOrderNo = Barcode.GetNextBarcode("ReturnOrder");

                OnChanged("PurchOrderNo");
            }

            if (_FreeSpareBalQty == 0 && _BalQty == 0 && (OrderStatus == PurchOrderStatus.Active || OrderStatus == PurchOrderStatus.Waiting))
            {
                _OrderStatus = PurchOrderStatus.Complete;
                OnChanged("OrderStatus");
            }

            if ((_FreeSpareBalQty > 0 || _BalQty > 0) && (OrderStatus == PurchOrderStatus.Complete || OrderStatus == PurchOrderStatus.Waiting))
            {
                _OrderStatus = PurchOrderStatus.Waiting;
                OnChanged("OrderStatus");
            }

            base.OnSaving();
        }
Example #7
0
        public void UpdateQty()
        {
            _ReceivedQty = 0;
            _ReceivedDefectQty = 0;
            _ReceivedNWDefectQty = 0;
            _BalQty = 0;
            _LostQty = 0;

            foreach (SubPurchOrderReceive poReceive in SubPurchOrderReceives)
            {
                if (poReceive.OrderStatus == SubPurchOrderReceive.ReceiveStatus.Complete)
                {
                    _ReceivedQty = _ReceivedQty + poReceive.Qty;
                    _ReceivedDefectQty = _ReceivedDefectQty + poReceive.DefectQty;
                    _ReceivedNWDefectQty = _ReceivedNWDefectQty + poReceive.NWDefectQty;
                    _LostQty = _LostQty + poReceive.LostQty;
                }
            }

            _BalQty = _NeedQty - _ReceivedQty - _ReceivedDefectQty - _ReceivedNWDefectQty - LostQty;

            if (_BalQty < 0)
                throw new Exception(string.Format("������ {0} , ����Ʒ {1} , ���� {2} ��������0", PurchOrderNo, SubItem.ItemNo, _BalQty));

            OnChanged("ReceivedQty");
            OnChanged("ReceivedDefectQty");
            OnChanged("ReceivedNWDefectQty");
            OnChanged("LostQty");
            OnChanged("BalQty");

            if (OrderStatus != PurchOrderStatus.Cancel && OrderStatus != PurchOrderStatus.Waiting)
            {
                if (_BalQty == 0)
                    _OrderStatus = PurchOrderStatus.Complete;
                else
                    _OrderStatus = PurchOrderStatus.Active;

                OnChanged("OrderStatus");
            }
        }
Example #8
0
        public void ReActivePurchOrder()
        {
            if (BalQty > 0)
            {
                _OrderStatus = PurchOrderStatus.Active;
            }
            else
            {
                _OrderStatus = PurchOrderStatus.Complete;
            }

            OnChanged("OrderStatus");
        }
Example #9
0
 public void CancelPurchOrder()
 {
     _OrderStatus = PurchOrderStatus.Cancel;
     OnChanged("OrderStatus");
 }