2016-04-12 2 views
1

Когда я создаю новый возврат клиента с выбранным клиентом, теперь я получаю сообщение об ошибке INVALID_KEY_OR_REF Недопустимый ссылочный ключ платежного метода VISA. Этот код используется для работы до последнего обновления 2016 R1.Как создать возврат клиента для клиента с кредитными авизо?

// create the Customer Refund record    
var customerRefund = nlapiCreateRecord("customerrefund", { 
    entity: creditMemo.getFieldValue("entity") // preload with customer credits 
}); 

Как я могу создать новый возврат клиентов на основании кредитовых авизо для клиента без получаю эту ошибку о способе оплаты? Я даже не вижу, что у кредитного авизо есть поле paymentmethod.

Дополнительная информация

Я попытался инициализацией PAYMENTMETHOD в вызове nlapiCreateRecord, теперь я получаю эту ошибку:

INVALID_RCRD_INITIALIZE You have entered an invalid default value for this 
record initialize operation. 
+1

Если вы попытаетесь эмулировать этот скрипт вручную в графическом интерфейсе, например. создать возврат клиента с экрана кредитового авизо, а затем установить, что клиент будет таким же, возникают ли у вас ошибки? – TonyH

+0

Нет ошибок, при создании нового возврата клиента он возвращает пустую форму, я набираю номер клиента и выбираю клиента в списке, затем Кредиты и депозиты перечислены на вкладке «Применить». Эта ошибка возникает, когда вызывается nlapiCreateRecord, прежде чем вызывается nlapiSubmitRecord. –

+1

Возможно ли, что при вызове CreateRecord есть другой скрипт или рабочий процесс? – TonyH

ответ

0

Для вашего nlapiCreateRecord вызова все, что вам нужно нужно поставить это клиент internalid, как вы делаете.

Если у вас нет какого-либо сценария пользовательского события или конфликта, вы можете также включить проверку того, что форма, которую вы используете, не имеет особых требований. В моей учетной записи все, что необходимо для создания возврата клиента. Внутренний идентификатор клиента - 996, а идентификатор целевого кредитного авизо - 1189. У клиента есть кредитная карта по умолчанию, и возврат средств автоматически увеличивается.

var ref = nlapiCreateRecord('customerrefund', {entity:996,customform:41}); 
for(var i = ref.getLineItemCount('apply'); i>0; i--){ 
    if(1189 == ref.getLineItemValue('apply', 'doc', i)){ 
    ref.setLineItemValue('apply', 'apply', i, 'T'); 
    ref.setLineItemValue('apply', 'amount', i, ref.getLineItemValue('apply', 'due', i)); 
} 
console.log(
i +' '+ 
ref.getLineItemValue('apply', 'doc', i) +' '+ 
ref.getLineItemValue('apply', 'apply', i) +' '+ 
ref.getLineItemValue('apply', 'amount', i) + ' '+ 
ref.getLineItemValue('apply', 'total', i)); 
} 
console.log(nlapiSubmitRecord(ref, true)); 
0

Метод возврата (внутренний идентификатор поля - PaymentMethod) поле существует по записи возврата клиента в разделе «Способ возврата», а не в записи кредитового авизо.

Поскольку это поле является обязательным, вам придется установить это. Вы можете просмотреть внутренние идентификаторы доступных способов оплаты на своей учетной записи NetSuite, перейдя к «Учет»> «Списки бухгалтерского учета»> «Новый»> «Способ оплаты» и перечислите значения списка «Метод оплаты». После этого в вашем коде, вы должны установить поле следующим образом -

customerRefund.setFieldValue('paymentmethod', 1); //In my account 1 is for Visa 
+0

Я получаю эту ошибку на nlapiCreateRecord, а не nlapiSubmitRecord. Вы говорите, помимо предварительной настройки клиента, я также должен установить способ оплаты в парме, переданном nlapiCreateRecord? –

Смежные вопросы