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