Example #1
0
        public void SetOSAgainstGRNItem(GoodReceiveNoteItem grni)
        {
            double qtyAmount = grni.GetAmountInSmallestUnit();//grni.QYTAMOUNT;

            if (qtyAmount <= 0)
            {
                return;
            }
            if (AGAINST_GRN_STATUS == AgainstStatus.Close)
            {
                throw new Exception("PO Item already fully received :" + this.PART.NAME);
            }
            if (qtyAmount > OUTSTANDING_AMOUNT_TO_GRN)
            {
                throw new Exception("GRN Item Amount exceed PO Outstanding Item Amount :" + this.PART.NAME);
            }
            OUTSTANDING_AMOUNT_TO_GRN = OUTSTANDING_AMOUNT_TO_GRN - qtyAmount;
            RECEIVED_AMOUNT           = RECEIVED_AMOUNT + qtyAmount;
            if (isValidToClose())
            {
                AGAINST_GRN_STATUS = AgainstStatus.Close;
            }
            else
            {
                AGAINST_GRN_STATUS = AgainstStatus.Outstanding;
            }
            ((PurchaseOrder)EVENT).UpdateAgainstGRNStatusPO();
        }
Example #2
0
        public void UnSetOSAgainstGRNItem(GoodReceiveNoteItem grni)
        {
            double qtyAmount = grni.GetAmountInSmallestUnit();//= grni.QYTAMOUNT;

            if (qtyAmount > this.GetAmountInSmallestUnit() || OUTSTANDING_AMOUNT_TO_GRN + qtyAmount > this.GetAmountInSmallestUnit())
            {
                throw new Exception("GRN Item revise Amount exceed PO Item Amount :" + this.PART.NAME);
            }
            OUTSTANDING_AMOUNT_TO_GRN = OUTSTANDING_AMOUNT_TO_GRN + qtyAmount;
            RECEIVED_AMOUNT           = RECEIVED_AMOUNT - qtyAmount;
            // if (OUTSTANDING_AMOUNT_TO_GRN > 0)
            if (RECEIVED_AMOUNT > 0)
            {
                AGAINST_GRN_STATUS = AgainstStatus.Outstanding;
            }
            else
            {
                AGAINST_GRN_STATUS = AgainstStatus.Open;
            }
            ((PurchaseOrder)EVENT).UpdateAgainstGRNStatusPO();
        }