Netsuite: анализ строки перед добавлением в заказ клиента - PullRequest
0 голосов
/ 04 мая 2020

Я пытаюсь создать всплывающее окно с помощью SuiteScript, где мы будем показывать доступные ресурсы и предпочитаемый клиентом бренд, а также некоторые другие детали при добавлении элемента в заказ, к которому представитель Cust Sv c сможет добавить правильный Ску и задайте клиенту необходимые вопросы, прежде чем добавлять товар в заказ. Для этого мне нужно иметь доступ к элементу до его добавления. Всплывающее окно, которое я установил, теперь отображается, но мне нужно количество и SKU, которые я пытаюсь добавить. Текущий код:

/**
 *@NApiVersion 2.x
 *@NModuleScope Public
 *@NScriptType ClientScript
 */
define(['N/search'], runClientscript);

function runClientscript(search){
    SEARCHMODULE = search;

    function validateLine(context) {
       var currentSO = context.currentRecord;
        context.sublistId;
        if(context.sublistId == 'item'){
            alert("validateLine Triggered!");
            var cr = context.currentRecord;
        var quantityLine = currentSO.getSublistValue({
                sublistId : 'item',
                fieldId : 'quantity',
                line : 1
                });
        }
        return true; //Return true if the line insertion is valid.
    }

      /**
         * 
         * @param {object} context context object from user event.
         */
        function getLocationContext(context){
            var contextObj = {};
            contextObj.locationRecord = "customrecord_ship_priority";
            contextObj.warehouseIds = [
                {
                    name:"custrecord_nj_warehouse",
                    value:3
                },
                {
                    name:"one",
                    value:9
                },
                {
                    name:"two",
                    value:8
                },
                {
                    name:"three",
                    value:4
                }
            ]
            contextObj.parameters = getScriptParameter();
            return contextObj;
        }



    var returnObj = {};
    returnObj.validateLine = validateLine;
    return returnObj;
}

Любая помощь будет оценена. Спасибо !!

1 Ответ

0 голосов
/ 05 мая 2020

Используйте currentSo.getCurrentSublistValue({type: 'item', fieldId: '{fieldyouneedtodisplay}'}) вместо этого, он даст информацию об элементе, который добавляется на validateline. Когда у вас есть вся необходимая информация, вы можете выполнить валидацию так же, как приведенный ниже псевдокод.

var sItem = currentSo.getCurrentSublistText({type: 'item', fieldId: 'item'});
var nQqty = currentSo.getCurrentSublistValue({type: 'item', fieldId: 'quantity'});
//your code to validate goes after.
if(nQqty >=0){
alert('Adding ' + nQqty  + ' of ' + sItem + '.')
}
...