Получить связанный счет-фактуру примененного платежа в NetSuite SuiteScript 2.0 - PullRequest
0 голосов
/ 11 октября 2018

У меня есть требование;где мне нужно загрузить список платежей, которые были обновлены между указанным диапазоном даты / времени.И для каждого счета;Мне нужно получить список internal идентификатора (он же идентификатор счета), к которому был применен платеж (поскольку платеж может быть применен к одному или нескольким счетам).

Я пыталсячтобы добиться этого с помощью поискового запроса, подобного следующему:

var paymentSearch = search.create({           
    type: search.Type.CUSTOMER_PAYMENT,
    filters: [
        ['lastmodifieddate', 'within', from_datetime, to_datetime],
         'and',
        ['appliedToTransaction.tranid', search.Operator.ISNOTEMPTY, '@NONE']
    ],
    columns: [
            'entity',
            'tranid',
        search.createColumn({
            name: 'internalid',
            join: 'appliedToTransaction'
        })
    ]
});

for (var i = 0; i < paymentsPagedData.pageRanges.length; i++) {
    var currentPage = paymentsPagedData.fetch(i);
    currentPage.data.forEach(function(result) {

        // TEST
        var appliedToInvoiceIds = result.getValue({ name: 'internalid', join: 'appliedToTransaction' });

    }
}

Когда я проверял appliedToInvoiceIds, кажется, что он возвращает только одно значение, к первому счету, к которому был применен этот платеж.Как я могу получить все идентификаторы счетов, к которым был применен платеж?

Я попытался осмотреть объект result (внутри цикла forEach), чтобы увидеть, что было внутри, и это то, что я видел:

{
    "recordType": "customerpayment",
    "id": "25911",
    "values": {
        "entity": [
            {
                "value": "761",
                "text": "COMPANY NAME INC"
            }
        ],
        "tranid": "722",
        "appliedToTransaction.internalid": [
            {
                "value": "2676",
                "text": "2676"
            },
            {
                "value": "2658",
                "text": "2658"
            }
        ]
    }
}

Как видно по результату объекта платежа;он имеет appliedToTransaction.internalid, который является массивом и содержит два элемента.Как я могу получить их?

Существует ли альтернативная версия result.getValue(...) для получения массива значений элементов / полей через объединение?

1 Ответ

0 голосов
/ 12 октября 2018

Вам необходимо вернуть true в конце вашего forEach.В противном случае он вернет только один результат.

...