BILLmanager Documentation

Functions

Functions allow using a certain fragment of the code multiple times without describing it again. Declare the function (i.e. describe a fragment of code) only once and then call the function by its name.  

Example

The rusdate function is described in the built-in template. The code of this function changes the numerical value of a month into a character value: 

<% function rusdate(date) { %> // This function changes a numerical value of a month into a character value 
    <% if (!date || date == '') { return; }%> // If the date is not specified or it is empty, an empty value will be returned
    <% var c = date.split(' ')[0].split('-'); %> // The data in the format DD-MM-YYYYY will be divided  
    <% month = {
   	 '01': 'January',
   	 '02': 'February',
   	 '03': 'March',
   	 '04': 'April',
   	 '05': 'May',
   	 '06': 'June',
   	 '07': 'July',
   	 '08': 'August',
   	 '09': 'September',
   	 '10': 'October',
   	 '11': 'November',
   	 '12': 'December'
    } %>
    <%= c[2] %> <%= month[c[1]] %> <%= c[0] %> г. // A numeracal value of MM will be changed into a month
<% } %>

This function is called in several sections of the template: 

Call the rusdate function in the invoice title
<div class="header">Invoice <%= payment.number %> from <% rusdate(payment.createdate) %></div>
Call the rusdate function in the payment description
Payment for <% if (payment.$postpay && payment.$postpay != 'on') { %> advance<% } %> payment N <%= payment.number %> from <% rusdate(payment.createdate) %>

Describing a custom function 


As an example, let's create a function to say thank you to customers who make an order for more than 1 000 euro. The function code: 

The opt function
<% function opt(data) { %> //Declaration of the function. The function name is "opt". 
    <% var u = ''; %> // Declaration of the empty variable. 
    <% if (data > 1000 ) { %> //A condition to check the result. 
   	 <% u =  'Thank you, the  amount:' + data; %> // Set the variable value. 
    <% return u; %> // Return the result to the template engine.
    <% } %>    
	else {
    <% u = data; %> } // Do not add "Thank you" if the total amount is less than 1 000 euro.
    <% return u; %>
<% } %>

After you have added the function, add its call into the description of the string "Total":

<!-- Total -->
<tr class="total">
	<td class="desc">Total</td>
	<td class="amount"><%= payment.paymethodamount %></td>
</tr>
<% if (payment.taxrate) { %>
	<tr class="total">
		<td class="desc">VAT included<%=number_format(payment.taxrate,'0', '.', '')%>%</td>
		<td class="amount"><%= opt(payment.paymethodamount) %></td> // Call of the opt. function. payment.paymethodamount is used as an example
	</tr>
<% } %>
<!-- Total -->

After the invoice template code is changed, the document will show different information depending on the order amount.   

Thank you for your feedback!
Was the article useful?
Tell us why not:

it does not match the title

it was hard to understand

I didn't find the answer

recommendations from the article did not help

other

Tell us what you didn't like in the article: