``` function getOpenPOLines(poMulti, currVB...
# suitescript
m
Copy code
function getOpenPOLines(poMulti, currVB) {
            if (poMulti == '' || poMulti == null) {
                return;
            }
            var purchaseorderSearchObj = search.create({
                type: "purchaseorder",
                filters:
                    [
                        ["mainline", "is", "F"],
                        "AND",
                        ["type", "anyof", "PurchOrd"],
                        "AND",
                        ["internalid", "anyof", poMulti],
                        "AND",
                        ["formulanumeric: CASE WHEN {quantityshiprecv} - {quantitybilled} > 0 THEN 1 ELSE 0 END", "greaterthan", "0"]
                    ],
                columns:
                    [
                        search.createColumn({
                            name: "tranid",
                            sort: search.Sort.ASC,
                            label: "Document Number"
                        }),
                        search.createColumn({ name: "line", label: "Line ID" }),
                        search.createColumn({ name: "item", label: "Item" }),
                        search.createColumn({ name: "internalid", join: "item", label: "Internal ID" }),
                        search.createColumn({ name: "quantityshiprecv", label: "Quantity Fulfilled/Received" }),
                        search.createColumn({ name: "quantitybilled", label: "Quantity Billed" }),
                        search.createColumn({ name: "rate", label: "Item Rate" }),
                        search.createColumn({ name: "formulanumeric", formula: "{quantityshiprecv} - {quantitybilled}", label: "Open Qty" }),
                        search.createColumn({ name: "internalid", join: "location", label: "Internal ID" }),
                        search.createColumn({ name: "internalid", join: "class", label: "Internal ID" })
                    ]
            });

            var searchResultCount = purchaseorderSearchObj.runPaged().count;
            log.debug("purchaseorderSearchObj result count", searchResultCount);
            purchaseorderSearchObj.run().each(function (result) {

                currVB.selectNewLine({
                    sublistId: 'item'
                });

                currVB.setCurrentSublistValue({
                    sublistId: 'item',
                    fieldId: 'item',
                    value: result.getValue({ name: "internalid", join: "item" }),
                    forceSyncSourcing: true
                });
                currVB.setCurrentSublistValue({
                    sublistId: 'item',
                    fieldId: 'quantity',
                    value: result.getValue({ name: "formulanumeric", formula: "{quantityshiprecv} - {quantitybilled}" }),
                    forceSyncSourcing: true
                });
                currVB.setCurrentSublistValue({
                    sublistId: 'item',
                    fieldId: 'location',
                    value: result.getValue({ name: "internalid", join: "location" }),
                    forceSyncSourcing: true
                });
                currVB.setCurrentSublistValue({
                    sublistId: 'item',
                    fieldId: 'orderdoc',
                    value: result.id,
                    forceSyncSourcing: true
                });
                currVB.setCurrentSublistValue({
                    sublistId: 'item',
                    fieldId: 'orderline',
                    value: result.getValue({ name: "line" }),
                    forceSyncSourcing: true
                });


                currVB.setCurrentSublistValue({
                    sublistId: 'item',
                    fieldId: 'class',
                    value: result.getValue({ name: "internalid", join: "class" }),
                    forceSyncSourcing: true
                });

                currVB.setCurrentSublistValue({
                    sublistId: 'item',
                    fieldId: 'rate',
                    value: result.getValue({ name: "rate" }),
                    forceSyncSourcing: true
                });


                currVB.commitLine({
                    sublistId: 'item',
                    //ignoreRecalc: true
                });

                poLines++;
                // log.debug('result row', result)
                return true;
            });

        }