BOI Purchase order entry to Receipt of GoodsGuidance

SUGGESTED

Hello  I am currently entering a Purchase Order into a Receipt of goods using BOI but the issue is when we don't receive an order fully it is leaving our items on backorder... Is there a way to get rid of pending backorder through BOI? or is this a bad practice worth telling my upper heads about and fighting that battle? Please advise and thank you!

Here is some how im entering the PO into the system 


oReceivable.nSelectBatch(batchNo)
oReceivable.nGetNextReceiptNo(ReceiptNo)
oReceivable.nSetKeyValue("ReceiptType$", "G")
oReceivable.nSetKeyValue("ReceiptNo$", ReceiptNo.value)
oReceivable.nSetKey()
oReceivable.nSetValue("PurchaseOrderNo$", receivable['reference'])
oReceivable.nCopyFromPurchaseOrder(receivable['reference'])
oReceivable.nCopyPurchaseOrderLines(0)
oReceivable.nCheckPurchaseOrder()
oReceivable.nApplyPurchaseOrderUpdate(receivable['reference'], "Y", "Y", "N")

oReceivableLines = oReceivable.oLines
oReceivableLines.nMoveFirst()

while oReceivableLines.nEOF() == 0:
    code = ""

    oReceivableLines.nGetValue("ItemCode$", code) < 1:

    oReceivableLines.nSetValue("QuantityReceived", qReceived)

    oReceivableLines.nSetValue("QuantityBackordered", 0):

    oReceivableLines.nSetValue("CommentText$", "")
    
    oReceivableLines.nWrite()
    oReceivableLines.nMoveNext()