2016-11-03 73 views
0

我已經用nlapiCreateRecord創建了供應商賬單,我可以在系統中看到我想要的所有項目的賬單記錄,但我無法將其與特定的採購訂單本身。當我使用nlapiTransformRecord時,我首先從PO中刪除所有記錄,然後從CSV中添加新的訂單項,但PO和供應商帳單之間的本地鏈接/關係丟失。下面是CSV的比爾導入創建我的代碼:關聯/鏈接供應商賬單在Netsuite採購訂單

function BillImport() { 

var fromrecord; 
    var fromid; 
    var torecord; 
    var record; 
    var qty; 

    fromrecord = 'purchaseorder'; 
    fromid = 23664; 
    torecord = 'vendorbill'; 

var loadedBillFile = nlapiLoadFile(5034); 
var loadedBillString = loadedBillFile.getValue(); 
var BillLines = loadedBillString.split('\r\n'); //split on newlines 

    record = nlapiTransformRecord(fromrecord, fromid, torecord); 
    //trecord.setFieldValue('location', 1); 
    //trecord.setFieldValue('tranid', 'TEST!'); 

    //var record = nlapiCreateRecord('vendorbill'); 

    for (var j = record.getLineItemCount('item'); j>=1; j--) 
    { 

     record.removeLineItem('item',j); 

    } 

    for (var i = 1; i < BillLines.length; i++) { 
    var cols = BillLines[i].split(';'); 

    var dsplit = cols[4].split("."); 
    var date = new Date(dsplit[2],dsplit[1],dsplit[0]); 
    currentDate = date.getMonth() + '/' + date.getDate() + '/' + date.getFullYear(); 


    var entity = cols[0]; // OK HEAD 
    var currency = cols[1]; // OK LINE 
    var taxcode = cols[2]; // SKIP 
    var tranid = cols[3]; // OK HEAD 
    var trandate = currentDate; // OK HEAD FORMAT 11/3/2016 
    var location = 21;//cols[5]; // OK HEAD (ID of Location) 
    var item = cols[6]; // OK LINE 
    var quantity = cols[7]; 
    var rate = parseFloat(cols[8]); // FLOAT 
    var amount = parseFloat(cols[9]); 
    var po = cols[10]; 


    record.selectNewLineItem('item'); 

    // Head Level 
    record.setFieldValue('createdfromstatus',''); 
    record.setFieldValue('entity', entity); 
    record.setFieldValue('tranid', tranid); 
    record.setFieldValue('trandate', trandate); 
    record.setFieldValue('location', location); 

    // Line Level 
    record.setCurrentLineItemValue('item','item', item); 
    record.setCurrentLineItemValue('item','quantity', quantity); 
    record.setCurrentLineItemValue('item','rate', rate); 
    record.setCurrentLineItemValue('item','amount', amount); 
    //record.setCurrentLineItemValue('item','orderdoc', po); 
    //record.setCurrentLineItemValue('item','podocnum', po); 

    record.commitLineItem('item'); 

    } 

    var id = nlapiSubmitRecord(record, true); 

    //trecord.setLineItemValue('item', 'amount', 1, 3); 
    //var idl = nlapiSubmitRecord(trecord, true); 
} 

這裏是例子CSV文件:

Entity;Currency;Taxcode;Tranid;TranDate;Location;Item;Quantity;Rate;Amount;PO Internal ID 
2449;USD;0.00 ;224676;11.3.2016;21;885;1;10;50;23664 
2449;USD;0.00 ;224676;11.3.2016;21;870;2;10;120;23664 
2449;USD;0.00 ;224676;11.3.2016;21;890;3;3;45;23664 
2449;USD;0.00 ;224676;11.3.2016;21;948;4;4,66;38,5;23664 
2449;USD;0.00 ;224676;11.3.2016;21;886;5;19,54;720;23664 

+0

爲什麼不使用nlapiTransformRecord()? – michoel

+0

因爲它會自動導入採購訂單的所有項目。我可以改變它沒有物品? – eXtreme

回答

0

如果你不希望它變成一個供應商賬單(可能是爲了避免PO改變狀態),那麼你將需要創建一個自定義關係。您可以通過這樣做:

  1. 創建類型「列表/記錄」的供應商比爾窗體上的自定義字段,並擁有它是「交易」型的,並檢查「記錄父」。保存自定義字段。
  2. 回到自定義字段並對其進行編輯。轉到顯示選項卡並選擇「父子選項卡」,我通常選擇「相關記錄」。保存。
  3. 現在您只需要從頭創建一個新的供應商賬單,並使用新的自定義字段將供應商賬單的記錄標識保存在供應商賬單中。將「創建自」字段保留爲空白,否則您將本機鏈接它們。條例草案應列在「相關記錄」選項卡下,或者在PO上選擇的任何子選項卡下。
+0

我想鏈接使用nlapiCreateRecord('vendorbill')創建的帳單;本地記錄類型'purchaseorder'。該法案已成功創建,但未鏈接。 當我使用nlapiTransformRecord將賬單轉換爲purchaseorder時,我可以在新轉換的賬單中插入帶有CSV的selectNewLineItem的新行,但不能刪除來自採購訂單的行 - 採購訂單的行位於賬單。 – eXtreme

+2

你必須使用nlapiTransformRecord,如果你想鏈接本地鏈接,你必須在PO中留下至少1行,如果你刪除了所有行,那麼它不再是原生鏈接的。 –

+0

要從轉換記錄中刪除一些項目,請使用如下所示的內容:var transform = nlapiTransformRecord('purchaseorder',12345,'vendorbill'); transform.removeLineItem('expense',1); //對於第1行 –