netsuite - SuiteScript 1.0 - 自动将客户押金应用于发票
问题描述
使用 SuiteScript 1.0,我在将客户押金用于发票时遇到了一些困难。
几个注意到前言:
- 押金可能与子客户关联,而发票与父客户关联。由于特定原因,我无法更改此过程。
- 押金与发票金额不同。
invoicerec
是前面脚本刚刚创建的实际发票记录。depositid
是客户存款记录的内部idinvoiceid
是发票记录的内部 idamounttoapply
是未用于客户存款的金额。
我试过的代码:
var invoiceamount = invoicerec.getFieldValue('amountremaining');
var amounttoapply = 0;
if (depositleft > invoiceamount) amounttoapply = invoiceamount;
else amounttoapply = depositleft;
if (amounttoapply > 0) {
var payment = nlapiTransformRecord('invoice', invoiceid, 'customerpayment');
var invrefnum = invoicerec.getFieldValue('tranid');
payment.setFieldValue('amount',0);
payment.setFieldValue('autoapply','T');
var applylines = payment.getLineItemCount('apply');
var depositlines = payment.getLineItemCount('deposit');
for (var i=1; i < depositlines; i++) {
var lineid = payment.getLineItemValue('deposit', 'internalid', i);
log ('Compare Dep Line Trans ID#'+lineid+' with the Deposit Trans ID#'+depositid )
if (lineid == depositid ){
payment.setLineItemValue('deposit', 'amount', i, amounttoapply );
}
}
for (var i=1; i<applylines; i++) {
var lineid = payment.getLineItemValue('apply', 'internalid', i);
if (lineid == invoiceid ){
payment.setLineItemValue('apply', 'amount', i, amounttoapply );
}
}
var paymentid = nlapiSubmitRecord(payment);
问题:我可以创建付款,但它想应用整个发票金额,而不是收取客户存款金额。
感觉我错过了一些非常非常直接的东西。
感谢任何帮助。
解决方案
您可以考虑根据 Marty 的文章将存款转换为存款申请:http: //blog.prolecto.com/2015/10/11/use-netsuite-suitescript-to-automate-posting-customer-deposits-to-invoices/
关键代码是这样的:您正在转换的存款的 id 在var deposit = nlapiTransformRecord('customerdeposit', DEPOSIT_ID, 'depositapplication');
哪里。DEPOSIT_ID
推荐阅读
- google-api - 检索 Google 共享驱动器文件夹的网络视图链接
- node.js - 如何部署 azure webapp 以便安装节点模块
- xamarin - 在路径上找不到类“com.onesignal.GcmBroadcastReceiver”:DexPathList
- php - 在表格的 ASC 和 DESC 排序之间切换
- java - CompletableFuture - 我如何触发异常?
- mongodb - 在 mongoDB 指南针中连接到 localhost 时出错
- amazon-redshift - Amazon Redshift 中 LISTAGG 函数的替代方法
- dialogflow-es - 如何使用 facebook messenger 进行 Dialogflow 集成?
- reactjs - 通过放大存储reactjs在S3上上传错误
- node.js - NodeJS - 内存不足