Применение платежа поставщика к отчету о расходах в NetSuite - PullRequest
0 голосов
/ 16 марта 2020

Можно ли применить платеж поставщика к отчету о расходах в SuiteScript? В пользовательском интерфейсе вы можете щелкнуть « Выполнить платеж » в отчете о расходах, который предложил мне использовать record.transform для преобразования отчета о расходах в платеж поставщика. но документация не показывает это как доступное преобразование.

Поэтому я попытался просто создать платеж поставщика, а затем добавить отчет о расходах в подсписок ' Применить ', но это привело только к ".. . либо вы пытаетесь получить доступ к полю на несуществующей строке, либо вы пытаетесь добавить или удалить строки из подсостояния stati c. ".

Я пробовал различные способы простого добавления отчета о расходах в подсписок ' Применить ', например:

var rec = record.create({type: 'vendorpayment'});
rec.insertLine({sublistId: 'apply', line: 0});
rec.setCurrentSublistValue({sublistId: 'apply', fieldId: 'amount', value: "200.00"});
// More setting of the line values
rec.commitLine({sublistId: 'apply'});

... но все они, похоже, В результате возникает ошибка в подсписке stati c, из-за которой, как представляется, вы не можете применить платеж к отчету о расходах таким образом. Я пытался искать в Интернете, но не нашел ответа. Можно ли применить платеж поставщика к отчету о расходах в SuiteScript? И если да, то как?

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 17 марта 2020

В то время как код bknights является правильным кодом для преобразования транзакции / записи, отчет о расходах не может быть преобразован в платеж поставщика через скрипт. Тип преобразования не указан как поддерживаемый тип преобразования, он просто выдаст ошибку «INVALID_RCRD_TRANSFRM».

Если я собираюсь создать платеж для отчета о расходах, это будет похоже на приведенный ниже код. В вашем примере кода вы пропустили установку isDynami c в значение true и задали для сущности значение по умолчанию (которое является сотрудником). Установка isDynami c и defaultValues ​​вернет объект записи с отчетом о неоплаченных расходах для сотрудника, все, что вам нужно сделать, это просто выполнить итерацию подсписка apply.

    var objRecord = record.create({
        type: 'vendorpayment', 
        isDynamic: true,
        defaultValues: {
            entity: idEmployee
        } 
    });
    //rest of the code goes after this line
0 голосов
/ 16 марта 2020

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

Вы не можете добавить новые строки, но вам нужно l oop через доступные строки 'применить' и найти ту, которая соответствует вашему отчету о расходах.

Кстати, лучше создать платеж, как:

var vp = record.transform({fromType:'vendorbill', fromId:expReportInternalId, toType:'vendorpayment'});
//then you can loop through the apply lines to find the appropriate doc line:
for(var i = 0; i< vp.getLineCount({sublistId:'apply'}); i++){
    if(fromId:expReportInternalId == vp.getSublistValue({sublistId:'apply', fieldId:'doc', line:i})){
        vp.setSublistValue({sublistId:'apply', fieldId:'apply', line:i, value:true});
        ...
    }
}
...