MG2016
MG2016

Reputation: 319

NetSuite - using nlapiCopyRecord function

I am generating an invoice when the original invoice is overdue by a certain time period. I want to know if we can use the nlapiCopyRecord to make a copy of the original invoice but allow us to insert a new line that will replace the old line item? I haven't found any sample to show how this is done.

Thanks.

Edit 1:

            var new_inv = nlapiCopyRecord('invoice', internal_id,
        {
            item : 66,
            amount: amount,
            description: 'TEST'

        });
        var copiedId = nlapiSubmitRecord(new_inv);
        return copiedId;

Above code fails in my scheduled script. You have entered an invalid default value for this record initialize operation.

I would like to override the line item on the newly copied invoice

Upvotes: 0

Views: 1517

Answers (2)

bknights
bknights

Reputation: 15367

Why are you doing this? If you are trying to charge a late fee you'd probably be better off by adding an expense line to the original invoice record. If you don't have expenses turned on then you could add an other "Other Charge for Sale"

If your code is running server side then:

var invRec = nlapiLoadRecord('invoice', internal_id);
var chargeIndex = invRec.getLineItemCount('item') + 1;
// don't think you need this for the end position invRec.insertLineItem('item', chargeIndex);
invRec.setLineItemValue('item', 'item', chargeIndex, charge_item_id);
invRec.setLineItemValue('item', 'rate', chargeIndex, amount);
invRec.setLineItemValue('item', 'amount', chargeIndex, amount);
nlapiSubmitRecord(invRec);

OR if you use an expense

var invRec = nlapiLoadRecord('invoice', internal_id);
invRec.insertLineItem('expense', 1);
invRec.setLineItemValue('expense', 'account', 1, penalty_account);
invRec.setLineItemValue('expense', 'amount', 1, amount);
invRec.setLineItemValue('expense', 'memo', 1, 'TEST');
nlapiSubmitRecord(invRec);

Upvotes: 1

Rusty Shackles
Rusty Shackles

Reputation: 2840

Yes that is possible, just like if you copy a record in the UI you can modify the copy. You also need to remember that you need to save the record object after you have copied it.

Upvotes: 1

Related Questions