Transfer Order partial fulfillment

/**
 * Transform TO to IF (partial and fully)
 * @param toInternalId
 * @param inventoryDetail
 * @return {Object}
 */
function transformTransferOrder(toInternalId,inventoryDetail) {
    
    var functionReturnObj = {}
    try {
        var errMsg;
        var itemFulfilment;
        try {
            var itemFulfilmentObj = record.transform({
                fromType: record.Type.TRANSFER_ORDER,
                fromId: toInternalId,
                toType: record.Type.ITEM_FULFILLMENT,
            });
            itemFulfilmentObj.setValue({
                fieldId: 'shipstatus',
                value: 'C',
                ignoreFieldChange: true
            });
            let itemCount=itemFulfilmentObj.getLineCount({sublistId:'item'})
            for(let i=0;i<itemCount;i++) {
                let itemName=itemFulfilmentObj.getSublistText({
                    sublistId:'item',
                    fieldId:'item',
                    line:i
                })
                itemName=itemNameSearch(itemName)
                if(itemName==inventoryDetail.itemName) {
                    log.debug('in detail',itemName)
                    itemFulfilmentObj.setSublistValue({
                        sublistId:'item',
                        fieldId:'itemreceive',
                        value:true,
                        line:i
                    })
                    itemFulfilmentObj.setSublistValue({
                        sublistId:'item',
                        fieldId:'quantity',
                        value:100,
                        line:i
                    })
                    var subrec = itemFulfilmentObj.getSublistSubrecord({
                        sublistId: 'item',
                        fieldId: 'inventorydetail',
                        line: i
                    });
                    if (subrec) {
                        // Update quantity for subrecord. Note quantity total must equal quantity in item line
                        subrec.setSublistText({
                            sublistId: 'inventoryassignment',
                            fieldId: 'issueinventorynumber',
                            line: 0,
                            text: '1394'                          
                        });
                        subrec.setSublistValue({
                            sublistId: 'inventoryassignment',
                            fieldId: 'bin',
                            line: 0,
                            value: 120
                        });
                        subrec.setSublistValue({
                            sublistId: 'inventoryassignment',
                            fieldId: 'status',
                            line: 0,
                            value: 'Good'
                        });
                        subrec.setSublistValue({
                            sublistId: 'inventoryassignment',
                            fieldId: 'quantity',
                            line: 0,
                            value: 100
                        });
                    }
                }else{
                    itemFulfilmentObj.setSublistValue({
                        sublistId:'item',
                        fieldId:'itemreceive',
                        value:false,
                        line:i
                    })
                }
            }
            itemFulfilment = itemFulfilmentObj.save()
        } catch (errr) {
            log.error('err @ transforming', errr)
            errMsg = errr.message
        }
        functionReturnObj.itemFulfilmentId = itemFulfilment
        functionReturnObj.message = errMsg
        return functionReturnObj
    } catch (err) {
        log.error('error @ transformation', err)
        functionReturnObj.itemFulfilmentId = ''
        functionReturnObj.message = err.message
        return functionReturnObj
    }
}

Leave a comment

Your email address will not be published. Required fields are marked *