2016-11-02 3 views
0

Ich erstelle eine Rechnung, wenn die ursprüngliche Rechnung über einen bestimmten Zeitraum überfällig ist. Ich möchte wissen, ob wir den nlapiCopyRecord verwenden können, um eine Kopie der Originalrechnung zu erstellen, aber wir können eine neue Zeile einfügen, die die alte Werbebuchung ersetzt. Ich habe keine Probe gefunden, um zu zeigen, wie das gemacht wird.NetSuite - mit nlapiCopyRecord Funktion

Danke.

Edit 1:

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

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

Above-Code nicht in meinem geplanten Skript. Sie haben einen ungültigen Standardwert für diesen Datensatzinitialisierungsvorgang eingegeben.

Ich mag die Position auf die neu kopierten Rechnung

Antwort

1

Ja, das ist möglich, außer Kraft zu setzen, wie nur, wenn Sie einen Datensatz in der UI kopieren Sie die Kopie ändern können. Sie müssen auch daran denken, dass Sie das Datensatzobjekt speichern müssen, nachdem Sie es kopiert haben.

+0

Danke. Wie erstellen/überschreiben wir die vorhandene Werbebuchung? – MG2016

1

Warum machst du das? Wenn Sie versuchen, eine späte Gebühr zu berechnen, sind Sie wahrscheinlich besser dran, indem Sie eine Kostenzeile zum ursprünglichen Rechnungsdatensatz hinzufügen. Wenn Sie keine Kosten an, dann drehte haben könnten Sie eine andere „Andere Gebühr für Sale“ hinzufügen

Wenn Ihr Code ausgeführt wird Server-Seite dann:

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

oder wenn Sie einen Aufwand

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

Hey - danke dafür. Die Idee ist also, dass wir ein geplantes Skript ausführen und identifizieren, welche Rechnung für einen x Zeitraum überfällig war. Auf dieser Grundlage erstellen wir eine Strafgebühr, die wir an Kunden senden. Dies ist Teil des Vertrags. Also dachte ich, der beste Weg wäre, die Rechnung zu klonen und einfach die Werbebuchung mit der neuen späte Gebühr-Werbebuchung zu überschreiben. – MG2016

+1

Solange Sie keine Zeile aus dem ursprünglichen Kundenauftrag überschreiben, können Sie die verspäteten Gebühren einfach auf der ursprünglichen Rechnung markieren. IMO es hält Dinge sauberer – bknights