SuiteScript 1.0 - 自动将客户存款应用于发票

问题描述 投票:0回答:1

使用SuiteScript 1.0,我很难获得客户存款申请发票。

前言中的一对注意到:

  • 存款可以与儿童顾客相关联,而发票则与父母相关联。由于特殊原因,我不能改变这个过程。
  • 押金与发票金额不同。
  • invoicerec是由前一个脚本创建的实际发票记录。
  • depositid是客户存款记录的内部ID
  • invoiceid是发票记录的内部ID
  • amounttoapply是未在客户存款上应用的金额。

我试过的代码:

    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);

问题:我可以获得要创建的付款,但是它想要应用整个发票金额,而不是接受客户存款金额。

觉得我很缺少非常直接的东西。

感谢任何帮助。

netsuite suitescript
1个回答
0
投票

找到我自己的答案,存款子列表没有internalid字段,而是包含id的“doc”文本字段。

如果存款是唯一适用的“金额”,则不会创建付款记录,而是存款申请。

© www.soinside.com 2019 - 2024. All rights reserved.