Как загружается заказ на покупку, созданный в NetSuite?

У меня есть функция javascript для загрузки списка всех созданных заказов на покупку, эти заказы на поставку являются составными поставщиками, товарами (идентификаторы товаров, количествами товаров, сумма товаров), формой, валютой, товаром. При получении данных, он работает правильно, но дает мне больше соответствующих записей, что дает мне следующий результат:

Параграф Заказ на покупку: ID Заказ на покупку: 3505 ID Продавец: Servicio de Impuestos Internos ID Item: UNDEF_MX Тип сделки: 06.08.2015 Форма: Стандартная валюта заказа на покупку: Peso CL

Параграф Заказ на покупку: ID Заказ на покупку: 3505 ID Продавец: ID Item: Donación al Proyecto: ItemTest Trandate: 08.06.2015 Форма: Стандартная валюта заказа на покупку: Peso CL

Параграф Заказ на покупку: ID Заказ на покупку: 3505 ID Продавец: 1234 ID Артикул: Trandate: 08.06.2015 Форма: Стандартная валюта заказа на покупку: Peso CL

Это видно в лог-скрипте NetSuite, для каждого заказа на поставку видны эти три результата. Мне просто нужно, чтобы ты показал мне:

Параграф Заказ на покупку: ID Заказ на покупку: 3505 ID Продавец: 1234 ID Артикул: Trandate: 08.06.2015 Форма: Стандартная валюта заказа на покупку: Peso CL

код функции выглядит следующим образом:

function loadPurchaseOrder(){
nlapiLogExecution('DEBUG','loadPurchaseOrder', 'Entra a funcion loadPurchaseOrder');    

var filters = new Array();
filters[0] = new nlobjSearchFilter('purchaseorder',null,'isnotempty');

var columns = new Array();    
columns[0] = new nlobjSearchColumn('item');
columns[1] = new nlobjSearchColumn('entity');
columns[2] = new nlobjSearchColumn('trandate');
columns[3] = new nlobjSearchColumn('customform');
columns[4] = new nlobjSearchColumn('currency');
columns[5] = new nlobjSearchColumn('internalid');

var results = nlapiSearchRecord('purchaseorder',null,filters,columns);
var out = "";

for(var i in results){

    var purchaseOrder = results[i];        
    var idPurchaseOrder = purchaseOrder.getText('internalid');
    var idVendor = purchaseOrder.getText('entity');
    var trandate = purchaseOrder.getValue('trandate');
    var form = purchaseOrder.getText('customform');
    var currency = purchaseOrder.getText('currency');
    var idItem = purchaseOrder.getText('item');

    out = " ID Purchase Order: " + idPurchaseOrder + " ID Vendor: " + idVendor + " ID Item: " + idItem
          + " Trandate: " + trandate + " Form: " + form + " Currency: " + currency;

    nlapiLogExecution('DEBUG','purchaseOrderCargada', 'Para Purchase Order: ' + out);
}

return out;

}

Если кто-нибудь может помочь мне, пожалуйста.

PS: возвращаемая переменная является только test.

2 ответа

Решение

Вероятно, вы получите три результата, потому что для каждой позиции в заказе на покупку есть одна строка основной строки и одна строка.

Основная строка - это сумма за всю транзакцию. Строки позиции относятся к каждой позиции в этой транзакции.

Вы просто хотите основную линию, поэтому вам нужно будет добавить:

    filters.push(new nlobjSearchFilter('mainline', null, 'is', 'T'));

Получение информации о строке позиции транзакции через поиск, так как иногда добавляют дубликаты строк. Эти повторяющиеся строки могут быть для налогового, отгрузочного или бухгалтерского воздействия.

На минимуме я бы предложил добавить следующие поисковые фильтры

filters.push(new nlobjSearchFilter('istaxline', null, 'is', 'F'));
filters.push(new nlobjSearchFilter('isshipline', null, 'is', 'F'));

Я мог бы неправильно идентифицировать поля, но это концепция. Если повторные строки все еще отображаются после добавления следующих фильтров, вам необходимо выяснить, какое влияние на учет вызывает проблема.

Я бы предложил повторить поиск сценариев в пользовательском интерфейсе, чтобы проверить, дают ли ваши фильтры желаемый результат.

Другие вопросы по тегам