如何在NetSuite中创建采购订单?

时间:2015-08-07 16:47:15

标签: load netsuite purchase-order suitescript

我有一个javascript函数来加载所有创建采购订单的列表,这些采购订单是组件供应商,项目(ID项目,数量项目,项目金额),表单,货币,Trandate。在获取数据时,它确实正常运行但给了我更多相应的记录,这给我的结果如下:

Para采购订单:ID采购订单:3505 ID供应商:Servicio de Impuestos Internos ID项目:UNDEF_MX Trandate:6/8/2015表格:标准采购订单货币:Peso CL

Para采购订单:ID采购订单:3505 ID供应商:ID项目:DonaciónalProyecto:itemTest Trandate:6/8/2015表格:标准采购订单货币:Peso CL

Para采购订单:ID采购订单:3505 ID供应商:1234 ID项目:Trandate:6/8/2015表格:标准采购订单货币:Peso CL

这可以在日志脚本NetSuite中看到,对于每个采购订单,可以看到这三个结果。我只需要你告诉我:

Para采购订单:ID采购订单:3505 ID供应商:1234 ID项目:Trandate:6/8/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:返回的out变量只是测试。

2 个答案:

答案 0 :(得分:4)

您可能会得到三个结果,因为采购订单中的每个订单项都有一个主线行和一行。

主线行是整个交易的金额。订单项行适用于该交易中的每个商品。

您只需要主线,因此您需要添加:

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

答案 1 :(得分:1)

通过搜索获取​​交易项目行信息,因为有时会添加重复行。这些重复的行可以用于税收,运输或会计影响。

在最低点,我建议添加以下搜索过滤器

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

我可能有字段ID错,但这是概念。如果在添加以下过滤器后仍然显示重复的行,则需要确定导致该问题的会计影响。

我建议在用户界面中复制脚本搜索,以检查过滤器是否为您提供了所需的结果。