Invoice Layout Extension

Documentatie •
In dit artikel

The Invoice Layout Extension is a report extension for printing invoices.

It is used on the 

  • Accounting file 
    • Menu Reports > Customers > Print invoices...
  • In the Estimate & Invoice
    • Menu Invoices > Print invoice...
    • Menu Invoices > Print estimate...

Structure of the extensions

The Invoice Layout Extension need to contains the following elements:

  • The extension attribute with 
    @task = report.customer.invoice.
  • printDocument(jsonContent, repDocObj, repStyleObj [, prefSelected])
    the main function that is called by the program
    Is use the content of the invoice json object to add element to the reportDocObj.
  • settingsDialog() (optional)
    called from user to set up parameters like colour or additional text.
  • getPrintPreferences() (optional)
    returns a JSON object with the available print options.
    Invoice Json Properties.

Extension attributes

// @id = scriptfilename.js
// @api = 1.0
// @pubdate = yyyy-mm-dd
// @publisher = yourName
// @description = script description
// @task = report.customer.statement

Function printDocument

The main function is printDocument(jsonStatement, repDocObj, repStyleObj [, format]). The  parameter jsonStatement object contains the data, repDocObj is the document object and repStyleObj is the stylesheet object where you can add styles.

function printDocument(jsonStatement, repDocObj, repStyleObj) {
  var param = initParam();
  var savedParam = Banana.document.getScriptSettings();
  if (savedParam.length > 0) {
    param = JSON.parse(savedParam);
    param = verifyParam(param);
  }
  printInvoice(jsonInvoice, repDocObj, repStyleObj, param);
}

Function settingsDialog

The function settingsDialog() is called from Banana when you select the button Params... from dialog Manage apps. You can write any code you need for your script.

/*Update script's parameters*/
function settingsDialog() {
   var param = initParam();
   var savedParam = Banana.document.getScriptSettings();
   if (savedParam.length > 0) {
      param = JSON.parse(savedParam);
   }   
   param = verifyParam(param);
   ...
   var paramToString = JSON.stringify(param);
   var value = Banana.document.scriptSaveSettings(paramToString);
}

 

Help ons de documentatie te verbeteren

We horen graag uw feedback over hoe we deze pagina kunnen verbeteren.

Vertel ons welk thema een betere uitleg nodig heeft of hoe we een onderwerp kunnen verduidelijken.

Share this article: Twitter | Facebook | LinkedIn | Email