2016-11-03 3 views
0

Я создал счет продавца с помощью nlapiCreateRecord, я могу видеть запись счета в системе со всеми элементами, которые я хочу, но я не могу связать их/связать с конкретным заказом на поставку изначально. Когда я использую nlapiTransformRecord, я удаляю все записи сначала из PO, и я добавляю новые позиции из CSV, но отсутствует родная связь/отношения между PO и Vendor Bill. Вот мой код, созданный для Билла Импорт из 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. Вернитесь к настраиваемому полю и отредактируйте его. Перейдите на вкладку дисплея и выберите «Parent Subtab», я обычно выбираю «Связанные записи». Сохранить.
  3. Теперь вам просто нужно создать новый проект Vendor Bill с нуля и сохранить идентификатор записи PO в счете поставщика, используя новое настраиваемое поле. Оставьте поле «Создано с» пустым, иначе вы связали бы их изначально. Законопроект должен быть указан на вкладке «Связанные записи» или в зависимости от выбранной вами субтитры.
+0

Я хочу связать счет, созданный с помощью nlapiCreateRecord ('vendorbill'); для записи типа «покупатель». Счет создается успешно, но не связан. Когда я использую nlapiTransformRecord, чтобы перевести счет на buyorder, я могу вставить новые строки с selectNewLineItem из CSV во вновь преобразованном счете, но не могу удалить строки, которые поступают из заказов на покупку - строки заказа на поставку находятся в счет. – eXtreme

+2

Вы должны использовать nlapiTransformRecord, и вы должны оставить по крайней мере 1 строку из PO, если вы хотите связать ее изначально, если вы удалите все строки, то она больше не связана изначально. –

+0

Чтобы удалить некоторые элементы из записи преобразования, используйте что-то вроде: var transform = nlapiTransformRecord ('purchaseorder', 12345, 'vendorbill'); transform.removeLineItem («расход», 1); // Для строки 1 –