Netsuite nlapiTransformRecord

Netsuite nlapiTransformRecord

    if (latestpayment == 0) {
            var newrecord = nlapiTransformRecord('vendorbill',
                    results[x][7], 'vendorpayment');
            newrecord.setFieldValue('amount', intPayment);
            // newrecord.setFieldValue('documentstatus', 'B');
            // newrecord.setFieldValue('status', 'Paid In Full');
            // newrecord.setFieldValue('statusRef', 'paidInFull');
            newrecord.setFieldValue('account', stRAcctId);
            newrecord.setFieldValue('trandate', stRPostingDate);

            nlapiSubmitRecord(newrecord);
            nlapiSubmitRecord(record);
        } else {
            var newrecord = nlapiTransformRecord('vendorbill',
                    results[x][7], 'vendorpayment');
            newrecord.setFieldValue('amount', intPayment);
            newrecord.setFieldValue('debitamount', payment);
            newrecord.setFieldValue('paidamount', payment);
            nlapiLogExecution('DEBUG', 'payment', payment);
            // newrecord.setFieldValue('documentstatus', 'B');
            // newrecord.setFieldValue('status', 'Paid In Full');
            // newrecord.setFieldValue('statusRef', 'paidInFull');
            newrecord.setFieldValue('account', stRAcctId);
            newrecord.setFieldValue('trandate', stRPostingDate);
            record.setFieldValue('amountpaid', payment);
            record.setFieldValue('amountremaining', intlatestpayment);
            nlapiLogExecution('DEBUG', 'amountremaining', intlatestpayment);

            nlapiSubmitRecord(newrecord);
            nlapiSubmitRecord(record);

我要提交一个自定义表单,所有选中的表单都会从供应商账单转换为供应商付款。当我全额付款时,我对此没有任何问题,状态将显示为已全额支付。

但是,当我进行部分付款时,我无法执行任何操作并将状态更改为OPEN。我试图为供应商账单和供应商付款记录设置值,但它不起作用。关于如何控制此部分付款并显示为 OPEN 以及所有已支付金额和剩余金额的任何想法?

谢谢。

        var newrecords = nlapiCreateRecord('vendorpayment', {
                recordmode : 'dynamic'
            });
            newrecords.setFieldValue('entity', aresults[0]
                    .getValue('internalid'));
            newrecords.setFieldValue('account', stRAcctId);
            newrecords.setFieldValue('trandate', stRPostingDate);

            var lineNum = newrecords.findLineItemValue('apply',
                    'internalid', results[x][7]);
            newrecords.selectLineItem('apply', lineNum);
            newrecords.setCurrentLineItemValue('apply', 'apply', 'T');
            newrecords.setCurrentLineItemValue('apply', 'amount', payment);
            newrecords.commitLineItem('apply');

            nlapiSubmitRecord(newrecords, false, false);
            nlapiSubmitRecord(record);

感谢上帝,上面的代码有效。我可以使用上面的代码创建供应商付款记录。感谢link:http://blog.prolecto.com/2013/06/02/automate-creating-checks-to-pay-bills/

它拯救了我的一天:)