Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

Purpose

Purpose of this article is to describe how to setup and send system output (tickets and invoices) which are in accordance with French regulation.

Tickets

When a POS transaction is performed in MXTS Front Office Manager, the receipt printer is automatically triggered once the payment is processed. The receipt cannot be reprinted.

...

Objectif

Le but de cet article est de décrire comment configurer et envoyer les sorties du système (tickets et factures) qui sont conformes à la réglementation française.

Tickets

Lorsqu'une transaction POS est effectuée dans MXTS Front Office Manager, l'imprimante de reçus est automatiquement déclenchée une fois le paiement traité. Le reçu ne peut pas être réimprimé.

Le contenu du reçu est configurable par Maxxton au gré de nos clients, pour contenir par exemple le texte "merci pour votre achat". Pour se conformer à la réglementation française, il est important que le ticket de caisse contienne les balises suivantes qui récupèrent les données dynamiquement depuis la base de données :

Tag

Purpose

$document_id

Shows sequential document number on ticket

$document_type

Shows the document type. I.e. 'TICKET' (cash register sales) or 'INVOICE' (checked_out reservations)

$operation_type

Shows operation type on ticket. I.e. 'SALE' for positive transaction, 'REFUND' for negative transaction.

$company_details

Shows legal entity details of the company the ticket is issued by

$signature

Shows the signature extract on the ticket (3rd, 7th, 13th and 19th position of the signature)

$reservation_bill_lines

Shows transaction details

$employee_name

Seller name

$employee_id

Seller code

$bill_line_resource_count

Number of bill lines for the ticket

$reservation_bill_lines_with_quantity

Bill line data including quantity and unit price incl. TVA

$nf525ReservationTaxList with child tags

  • $total_resource_amount_incl_tax

  • $total_resource_amount_excl_tax

Display total ticket amount including TVA and total ticket amount excluding TVA

$resourceTotalPerTaxList with child tags

  • $tax_percentage

  • $resource_total

Display total amount including TVA, per TVA rate

Default template

Expand
titleDefault ticket template

Nom du caissier : $employee_name
ID du caissier : $employee_id
Nombre de lignes : $bill_line_resource_count
$separator
$document_type $operation_type | B525/0420-1| $signature | 1.1
$separator
$company_details
#if($has_customer)
$customer_name
$customer_address
$customer_zipcode_city
$separator
#end
#if($reservation_type == "c")
$separator
Numéro de ticket : $document_id
#else
Numéro de réservation : $reservation_number
#if($reservation_type == "r")
Hébergement : $object_names
Arrivée : $arrival_date $checkin_time
Départ : $departure_date $checkout_time
#end
#end
$separator
$reservation_bill_lines_with_quantity
$separator
$total_resource_amount_incl_tax
$total_resource_amount_excl_tax
$resourceAmountInclPerTax
$resourceAmountExclPerTax
$separator

Invoices

...

Factures

Lorsqu'une réservation est mise à jour en statut check_out, the service is delivered and therefore the revenue is final. Updating a reservation to status checked_out is the trigger to store the document type and sequential ID, which can then be displayed on the invoice. The invoice should therefore always be sent once the service is delivered, i.e. when the reservation is updated to checked_out.The content of invoice is configurable by Maxxton to our clients liking, to hold client specific text and logo's. To comply with French regulation, it is important the invoice template holds the following tags which fetch data dynamically from the databasele service est délivré et le revenu est donc définitif. La mise à jour d'une réservation au statut checked_out est le déclencheur pour enregistrer le type de document et l'ID séquentiel, qui peuvent ensuite être affichés sur la facture. La facture doit donc toujours être envoyée une fois le service fourni, c'est-à-dire lorsque la réservation est mise à jour en check_out.

Le contenu de la facture peut être configuré par Maxxton à la convenance de nos clients, pour contenir du texte et des logos spécifiques au client. Pour se conformer à la réglementation française, il est important que le modèle de facture contienne les balises suivantes qui récupèrent les données dynamiquement depuis la base de données :

Tag

Purpose

$document_id

Shows sequential document number on invoice

$document_type

Shows document type on invoice. This is always 'INVOICE'. (As for cancelled bookings also costs can apply which are invoiced to customers)

$reservation_resort

Display holiday resort name

$reservation_resortaddress1

Display holiday resort address

$reservation_resortzipcode

Display holiday resort zipcode

$reservation_resort_country

Display holiday resort country

$resort_siret (dynamic field)

Display holiday resort SIRET number

$customer.firstname

Customer firstname

$customer.lastname

Customer lastname

$customer.address.address1

Customer address

$customer.address.housenumber

Customer housenumber

$customer.address.housenumberSuffix

Customer housenumber suffix

$customer.address.zipcode

Customer zipcode

$customer.address.city

Customer city

$customer.address.countryName

Customer address

$customer.companyName

Company name (if applicable)

$reservation_bill_lines

Shows invoice details

$bill_value_excl_vat

Show unit price excluding TVA

$bill_total_vat

Show total TVA amount

$signature

Shows the signature extract on the ticket (3rd, 7th, 13th and 19th position of the signature)

$company_details

Shows legal entity details of the company the invoice is issued by

Default template

Customer_bill

...

Expand
titleNF_invoice_PDF (customer)


#foreach($acco in $accommodationList)
#set($intime = $acco.accommodation_checkintime )
#set($outtime = $acco.accommodation_checkouttime )
#end

#foreach( $bill in $groupedBillList )

#if($bill.bill_resource_type == "accommodationtype")
#set($acco_total = $bill.bill_total )
#end

#if($bill.bill_resource_type == "special")
#set($acco_special = $bill.bill_type )
#set($acco_total_special = $bill.bill_total )
#set($chk = 1)
#end

#if($bill.bill_linetype == "70")
#set($acco_all_total = $bill.bill_total)
#end
#end

#foreach( $bill in $billList )
#if($bill.bill_linetype == "70")
#set($all_total = $bill.bill_total)
#end
#end
 
#* Bill total excluding resource type special *#
#set($billtotal= 0)
          #foreach($bill in $billList )
           #if($bill.bill_payer_type == "c")
            #if($bill.bill_linetype == "10")
             #if($bill.bill_resource_type !="special") 
                  #set($bill_total = $bill.bill_total.replaceAll(",", ""))
                  #set($billtotal= $billtotal + $convert.toNumber($bill_total))
                 
             #end
             #end
             #end
             #end
                       
            #set($billtotal = $billtotal + "")
            #set($final="")
            #set($leftpart="")
            #set($rightpart="")
            #if($billtotal.indexOf(',') != -1 || $billtotal.indexOf('.') != -1)
                #set($leftpart = $billtotal.substring(0,$billtotal.indexOf('.')))            
                #set($in = $billtotal.indexOf('.')+1)
                #set($rightpart = $billtotal.substring($in))
               
            #else
               #set($leftpart = $billtotal)            
            #end
               
            #if($leftpart.length() > 3)
                #set($end = $leftpart.length() - 4)
                #set($beg = 0)
                #set($range = [$end..$beg])
                #foreach($i in $range)
                    #set($j = $i + 1)
                    #set($final = $leftpart.substring(0,$j)+","+$leftpart.substring($j))
                    #set($leftpart = $final)
                    #set($i = $i - 3)
                #end
            #end  
            #if($rightpart.length() == 0)
                #set($rightpart = "00")
            #elseif($rightpart.length()== 1)
                #set($rightpart = $rightpart + "0")
            #end
          
            
            #set($final = $leftpart + "." + $rightpart)
 #* Bill total excluding resource type special end  *#
 #set($dueAmount= "")
  #foreach( $bill in $billList )
     #if($bill.bill_payer_type == "c")
      #if ($bill.bill_linetype == "90")  
        #set($billTotal= $convert.toNumber($bill.bill_total))
        
         #if($billTotal > 0)
            
           #set($dueAmount= "true")                              
         #end     
      #end      
    #end     
 #end


<html>
   <head>
      <title></title>
   </head>
   <body style="padding-left:25px">
  #if($environment == "")
        
#else
<span style="font-size:16px"><b>TEST ENVIRONMENT INVOICE</b></span>
#end

 #foreach ($doc in $documentTagList)
 
    #if($convert.toNumber($doc.printed_count) > 1)                                          
     <br/><br/> <b>Duplicate        </b>
  #end
#end

      <table width="625" border="0" cellspacing="0" cellpadding="0">
         <tbody style="font-family:Arial, Helvetica, sans-serif; font-size:13px; color:#3B3131; line-height:18px">
            <tr>
               <td colspan="3" align="right" style="padding-right:10px"><img src="CUSTOMER LOGO" /> </td>
            </tr>
            <tr>
               <td width="10" >&nbsp;</td>
               <td>
                  <table width="595" border="0" cellspacing="0" cellpadding="0">
                     <tbody style="font-family:Arial, Helvetica, sans-serif; font-size:13px; color:#3B3131; line-height:18px">
                        <tr>
                           <td colspan="3">
                              <table width="595" border="0" cellspacing="0" cellpadding="0">
                                 <tbody style="font-family:Arial, Helvetica, sans-serif; font-size:13px; color:#3B3131; line-height:18px">
                                    <tr>
                                       <td valign="top">
                                         <b> $customer_title $customer_firstname $customer_middlename $customer_lastname </b><br/>
                                          $customer_housenumber $customer_address1<br/>
                                          $customer_zipcode $customer_city<br/>
                                          $customer_country<br/><br/><br/>
                                          
                                          #foreach ($doc in $documentTagList)
                                            #if( $doc.document_id != "")                                          
                                              Invoice number:  $doc.document_id<br/>
                                          #end
                                          #break
                                         #end
                                          Invoice Date: $current_date <br/>
                                          Reservation number: $reservation_reservationnumber<br/>
                                        
                                          
                                       </td>
                                       <td valign="top">
                                         #if( $!paying_customer_company_name) $paying_customer_company_name #end
                                       </td>
                                    </tr>
                                 </tbody>
                              </table>
                           </td>
                        </tr>
                        <tr>
                           <td colspan="3">&nbsp;</td>
                        </tr>
                        
                        <tr>
                           <td colspan="3">&nbsp;</td>
                        </tr>
                        <tr>
                           <td colspan="3" style="padding-bottom:8px"><b>YOUR HOLIDAY DETAILS:</b></td>
                        </tr>
                        <tr>
                           <td colspan="3"> <hr style="border-bottom:1px solid #e5e5e5" /></td>
                        </tr>
                       
                       <tr>
                           <td width="160" height="25" valign="top"><b>Village Name:</b></td>
                           <td valign="top">$reservation_resortname </td>
                           <td>&nbsp;</td>
                        </tr>
                        <tr>
                           <td width="250" valign="top"><b>Unit Type:</b></td>
                           <td valign="top">
                              <table width="400" border="0" cellspacing="0" cellpadding="0">
                                 <tbody>
                                   
                                    #foreach($acco in $accommodationList)
                                    #if (!$acco.accommodation_is_imply)   
                                    <tr>
                                       <td valign="top" height="25"> $acco.accommodation_name#if($acco.object_preference == "1"), $acco.accommodation_object #end 
                                       <br/>
                                       </td>
                                    </tr>
                                    #set( $prevAcco = $acco.accommodation_object_forced ) 
                                    #end 
                                    #end
                                 </tbody>
                              </table>
                           </td>
                           <td>&nbsp;</td>
                        </tr>
                        <tr>
                           <td width="160" height="25" valign="top"><b>Passenger Information:</b></td>
                           <td valign="top">
                           $reservation_numberofpersons,
                            #foreach( $subject in $travelList )
                              #if( $subject.firstname != "" || $subject.lastname != "")
                                    $subject.firstname $subject.lastname,&nbsp;
                              #end 
                            #end    
                           </td>
                           <td>&nbsp;</td>
                        </tr>
                        <tr>
                           <td width="160" height="25" valign="top"><b>Arrival date: </b></td>
                           <td valign="top">$reservation_arrivaldate  
                           </td>
                           <td>&nbsp;</td>
                        </tr>
                        <tr>
                           <td width="160" height="25" valign="top"><b>Departure Date: </b></td>
                           <td valign="top">$reservation_departuredate 
                           </td>
                           <td>&nbsp;</td>
                        </tr>
                        <tr>
                           <td colspan="3">&nbsp;</td>
                        </tr>
                         #foreach($res in $resourceList)
                        <tr>
                           <td colspan="3" style="padding-bottom:10px"> $res.infotext </td>
                        </tr>
                        #end 
                        #foreach( $memo in $memoList )
                        <tr>
                           <td colspan="3" style="padding-bottom:10px"> <b>$memo.content</b></td>
                        </tr>
                        #end
                        <tr>
                           <td colspan="3" style="padding-bottom:8px"><b>Invoice details:</b></td>
                        </tr>
                         <tr>
                           <td colspan="3"> <hr style="border-bottom:1px solid #e5e5e5" /></td>
                        </tr>
                        <tr>
                           <td colspan="3">&nbsp;</td>
                        </tr>                     
                      
                        <tr>
                           <td colspan="3">${templateTool.parseTemplate(1254004)} #*VAT Bill  Customer*#</td>
                        </tr>                  
                        <tr>
                           <td colspan="3">&nbsp;</td>
                        </tr>
                        
                         <tr>
                           <td colspan="3">
                           ${templateTool.parseTemplate(1254003)} #*VAT Calculation*#
                           
                           </td>
                        </tr>
                         <tr>
                           <td colspan="3">&nbsp;</td>
                        </tr>
                        
                         <tr>
                           <td colspan="3"> Siblu Europe Limited on the behalf of  </td>
                        </tr>
                        
                        <tr>
                           <td colspan="3"> <hr style="border-bottom:1px solid #e5e5e5" /></td>
                        </tr>
                         <tr>
                           <td colspan="3">
                           CUSTOMER AO DETAIL FIELDS
                           </td>
                        </tr>
                         <tr>
                           <td colspan="3">&nbsp;</td>
                        </tr>
                         <tr>
                           <td colspan="3" align="center">
                            #foreach ($doc in $documentTagList)
                              $doc.document_type  B525/0420 $doc.signature V1.1 
                            #end
                                  
                           </td>
                        </tr>
                     </tbody>
                  </table>
               </td>
               <td width="10">&nbsp;</td>
            </tr>
         </tbody>
      </table>
   </body>
</html>


Subtemplates
Expand
titleVAT Bill (customer)

  

<table width="625" border="0" cellspacing="0" cellpadding="0">
         <tbody style="font-family:Arial, Helvetica, sans-serif; font-size:12px; color:#3B3131; line-height:18px">
    <tr>        
        <td width="625" valign="top" style="font-size:0; line-height:0">
          <table  width="625" cellpadding="0" cellspacing="0" border="0">
           <tbody style="font-family:Arial, Helvetica, sans-serif; font-size:12px; color:#3B3131; line-height:18px">   
        
           <tr>
               <td width="250" style="color:#0078bf;"><strong>SPECIFICATION</strong></td>
               <td width="80" align="right">&nbsp;</td>
              <td width="90" >&nbsp;</td>
               <td width="90" align="right">VAT % </td>
               <td width="110" align="right">Excl. VAT</td>
               <td width="100" align="right">VAT</td>
               <td width="180" align="right">Total incl. VAT</td>
         </tr>
    
         <tr>
            <td colspan="7" width="625" style="line-height:5px;border-top:1px solid #000000;">&nbsp;</td>
         </tr>
         #set($total_AllExcl_BTW = 0 )
         #set($total_BTW_Amount = 0)
         #set($billTotal_Amount = 0)
         #set($total_BTW_Amount_total = 0)
         #set($bill_Vat_ValueTotal= 0)
         #set($Final_BTW_Amount_total = 0)         
         #set($exclTaxVal="")
         
         #foreach($bill in $billList )
        #if($bill.bill_payer_type == "c")
          #if ($bill.bill_linetype !="-10" && $bill.bill_linetype != "0"  && $bill.bill_linetype != "60" && $bill.bill_linetype != "40" && $bill.bill_linetype != "200" && $bill.bill_linetype != "20" && $bill.bill_linetype != "-20" && $bill.bill_linetype != "30" && $bill.bill_linetype != "80" && $bill.bill_linetype != "90" && $bill.bill_linetype != "70" )           
          <tr>
               <td width="90">$bill.bill_type </td>
               <td width="80" align="right">$bill.bill_quantity_multiplier X </td>
               <td width="90" align="right">         
                  $reservation_dc_currency_symbol &nbsp; $bill.bill_value
                </td>
               <td width="90" align="right"> #if($bill.bill_vat_rate == "0.0" || $bill.bill_vat_rate == "0,0" || $bill.bill_vat_rate == "0,0" || $bill.bill_vat_rate == "") 0 #else $convert.toNumber($bill.bill_vat_rate) #end </td>
               <td width="110" align="right">
                  $reservation_dc_currency_symbol &nbsp; $bill.bill_total_excl_vat
                   <!-- Logic Total Excl Tax-->
                   #set($total_AllExcl_BTW =$convert.toDouble($total_AllExcl_BTW) + $convert.toDouble($bill.bill_total_excl_vat_without_format))  
                   
                   <!--End  Logic Total Excl Tax-->
                 
               </td>
               <td width="80" align="right">
                       #if($bill.bill_total_without_format != $bill.bill_total_excl_vat_without_format)
                           #set($bill_Vat_Value = $convert.toDouble($bill.bill_total_without_format) - $convert.toDouble($bill.bill_total_excl_vat_without_format))
                           #set($exclTaxVal="$bill_Vat_Value")
                            #if($exclTaxVal.contains("-"))                                 
                                #set( $totalVal = $number.currency($bill_Vat_Value).replace("$", "") )                                                               
                                $reservation_dc_currency_symbol &nbsp; -$totalVal.replace("(","").replace(")","")
                            #else
                                
                               #set( $totalVal = $number.currency($bill_Vat_Value).replace("$", "") )                                                               
                                $reservation_dc_currency_symbol &nbsp; $totalVal
                           #end
    
                        <!--Logic BTW Bedrag-->
                        #set($bill_Vat_ValueTotal = $convert.toDouble($bill.bill_total_without_format) - $convert.toDouble($bill.bill_total_excl_vat_without_format))    
                        #set($total_BTW_Amount_total = $convert.toDouble($total_BTW_Amount_total) + $convert.toDouble($bill_Vat_ValueTotal))
                        #set( $total_BTW_Amount_total = $number.currency($total_BTW_Amount_total).replace("$", "") )
                       <!--End Logic BTW Bedrag-->
                    #end
               </td>
               <td width="125" align="right">   
                 $reservation_dc_currency_symbol &nbsp;  $bill.bill_total              
                  <!-- Bill Total-->
                  #set($billTotal_Amount = $convert.toDouble($billTotal_Amount) + $convert.toDouble($bill.bill_total_without_format ))                
                <!-- End -->               
                 </td>
            </tr>          
         #end 
        #end 
        #end 
        
        <tr>
            <td colspan="7" width="625" style="line-height:5px;border-top:1px solid #000000;">&nbsp;</td>
         </tr>
        
          
        <tr>
               <td width="200"><strong>Total</strong></td>
               <td width="40">&nbsp;</td>
               <td width="90" >&nbsp;</td>
               <td width="90">&nbsp;</td>
               <td width="110" align="right">                  
                <!--$total_AllExcl_BTW-->
                $reservation_dc_currency_symbol &nbsp; $number.currency($total_AllExcl_BTW).replace("$", "")
                    
               </td>    
               <td width="80" align="right">
                  <!--$total_BTW_Amount_total -->
                  $reservation_dc_currency_symbol &nbsp; $number.currency($total_BTW_Amount_total).replace("$", "")
              
               </td>
               <td width="125" align="right">
                <!-- $billTotal_Amount --> 
                $reservation_dc_currency_symbol &nbsp;  $number.currency($billTotal_Amount).replace("$", "")
                 
                  
                 </td>
            </tr>
            
           #foreach($bill in $billList )
           #if($bill.bill_payer_type == "c")
        #if($bill.bill_linetype == "80")
       <tr>
         <td width="200">Paid</td>
         <td width="40">&nbsp;</td>
         <td width="90" >&nbsp;</td>
         <td width="90">&nbsp;</td>
         <td width="110">
            &nbsp;
         </td>    
         <td width="80">
           &nbsp;
         </td>
         <td width="125" align="right">    
         $reservation_dc_currency_symbol &nbsp;  $bill.bill_total
                  
           </td>
      </tr>
      #end
      #end
      #end
           #foreach($bill in $billList )
        #if($bill.bill_payer_type == "c")
      #if($bill.bill_linetype == "90")
           <tr>
             <td width="200">
                    #if($convert.toDouble($bill.bill_total) < 0)
                         To receive
                     #else
                        To be paid
                     #end
                   </td>
             <td width="40">&nbsp;</td>
             <td width="90" >&nbsp;</td>
             <td width="90">&nbsp;</td>
             <td width="110">
                &nbsp;
             </td>    
             <td width="80">
               &nbsp;
             </td>
             <td width="125" align="right">    
             $reservation_dc_currency_symbol &nbsp; $bill.bill_total
               </td>
          </tr>
      #end
      #end
      #end  

             #foreach($bill in $billList )
        #if($bill.bill_payer_type == "c")
      #if($bill.bill_linetype == "60")
           <tr>
             <td width="200">
                    $bill.bill_type
              </td>
             <td width="40">&nbsp;</td>
             <td width="90" >&nbsp;</td>
             <td width="90">&nbsp;</td>
             <td width="110">
                &nbsp;
             </td>    
             <td width="80">
               &nbsp;
             </td>
             <td width="125" align="right">    
                $reservation_dc_currency_symbol &nbsp; $bill.bill_total
                   
               </td>
          </tr>
      #end
      #end
      #end  
         
           <tr>
            <td colspan="7" style="background: #ffffff;" bgColor="#ffffff">&nbsp;</td>
         </tr>
         
         #foreach( $receivedPayment in $receivedPaymentList)   
          #if($receivedPayment.payerType == "c")
           #if( $receivedPayment.amount != "0,00" || $receivedPayment.amount != "0.00" )
             #set($pay_date = $receivedPayment.statementDate)
            <tr>
             <td width="200">
                    Received payments
                   </td>
             <td width="140" colspan="2">$receivedPayment.statementDate.split(',')[1]</td>
             
             <td width="200" colspan="2">$receivedPayment.bankname</td>
               
             <td width="80">
              &nbsp;
             </td>
             <td width="125" align="right">    
               $reservation_dc_currency_symbol &nbsp;   $receivedPayment.amount                
             </td>
          </tr>
             #end
            #end
        #end
                                                                      
              
            #set($dueamount= 0)
            #set($Duetotal= 0)
            #foreach( $term in $termList )
           #if($term.term_payertype == "c")
            #if ($term.term_due != "0,00" && $term.term_due != "0.00") 
            #if($reservation_language == "nl" || $reservation_language == "de" ) 
              #set($term_value = $term.term_value.replaceAll("\.", ""))
              #set($term_value = $term_value.replaceAll(",", "\.")) 
              #set($term_paid = $term.term_paid.replaceAll("\.", ""))
              #set($term_paid = $term_paid.replaceAll(",", "\.")) 
             
              #elseif($reservation_language == "en")
              #set($term_value = $term.term_value.replaceAll(",", ""))
              #set($term_paid = $term.term_paid.replaceAll(",", ""))
              #end
              
              #set($Duetotal= $convert.toNumber($term_value) - $convert.toNumber($term_paid))
              #set($dueamount= $math.roundTo(2, $Duetotal))           
              #set($finalDue = $numberFormatter.format($dueamount))
           
               #if( $term.term_status == "o" ||  $term.term_status == "p" &&  $term.term_status =="p")

                 <tr>
             <td width="200">
                     $term.term_name
                   </td>
             <td width="140" colspan="2">$term.term_duedate.split(',')[1]</td>
             
             <td width="200" colspan="2">&nbsp;</td>
               
             <td width="80">
                &nbsp; 
             </td>
             <td width="125" align="right">    
                    $reservation_dc_currency_symbol  $term.term_due                 
             </td>
          </tr>                                           
                #end
             #end     
            #end
          #end
      </tbody>
      </table>
      </td>
      </tr>
      </tbody>
      </table>


...

Expand
titleNF_invoice_PDF (paying customer)


#foreach($acco in $accommodationList)
#set($intime = $acco.accommodation_checkintime )
#set($outtime = $acco.accommodation_checkouttime )
#end

#foreach( $bill in $groupedBillList )

#if($bill.bill_resource_type == "accommodationtype")
#set($acco_total = $bill.bill_total )
#end

#if($bill.bill_resource_type == "special")
#set($acco_special = $bill.bill_type )
#set($acco_total_special = $bill.bill_total )
#set($chk = 1)
#end

#if($bill.bill_linetype == "70")
#set($acco_all_total = $bill.bill_total)
#end
#end

#foreach( $bill in $billList )
#if($bill.bill_linetype == "70")
#set($all_total = $bill.bill_total)
#end
#end
 
#* Bill total excluding resource type special *#
#set($billtotal= 0)
          #foreach($bill in $billList )
           #if($bill.bill_payer_type == "p")
            #if($bill.bill_linetype == "10")
             #if($bill.bill_resource_type !="special") 
                  #set($bill_total = $bill.bill_total.replaceAll(",", ""))
                  #set($billtotal= $billtotal + $convert.toNumber($bill_total))
                 
             #end
             #end
             #end
             #end
                       
            #set($billtotal = $billtotal + "")
            #set($final="")
            #set($leftpart="")
            #set($rightpart="")
            #if($billtotal.indexOf(',') != -1 || $billtotal.indexOf('.') != -1)
                #set($leftpart = $billtotal.substring(0,$billtotal.indexOf('.')))            
                #set($in = $billtotal.indexOf('.')+1)
                #set($rightpart = $billtotal.substring($in))
               
            #else
               #set($leftpart = $billtotal)            
            #end
               
            #if($leftpart.length() > 3)
                #set($end = $leftpart.length() - 4)
                #set($beg = 0)
                #set($range = [$end..$beg])
                #foreach($i in $range)
                    #set($j = $i + 1)
                    #set($final = $leftpart.substring(0,$j)+","+$leftpart.substring($j))
                    #set($leftpart = $final)
                    #set($i = $i - 3)
                #end
            #end  
            #if($rightpart.length() == 0)
                #set($rightpart = "00")
            #elseif($rightpart.length()== 1)
                #set($rightpart = $rightpart + "0")
            #end
          
            
            #set($final = $leftpart + "." + $rightpart)
 #* Bill total excluding resource type special end  *#
 #set($dueAmount= "")
  #foreach( $bill in $billList )
     #if($bill.bill_payer_type == "p")
      #if ($bill.bill_linetype == "90")  
        #set($billTotal= $convert.toNumber($bill.bill_total))
        
         #if($billTotal > 0)
            
           #set($dueAmount= "true")                              
         #end     
      #end      
    #end     
 #end


<html>
   <head>
      <title></title>
   </head>
   <body style="padding-left:25px">
  #if($environment == "")
        
#else
<span style="font-size:16px"><b>TEST ENVIRONMENT INVOICE</b></span>
#end

 #foreach ($doc in $documentTagList)
 
    #if($convert.toNumber($doc.printed_count) > 1)                                          
     <br/><br/> <b>Duplicate        </b>
  #end
#end

      <table width="625" border="0" cellspacing="0" cellpadding="0">
         <tbody style="font-family:Arial, Helvetica, sans-serif; font-size:13px; color:#3B3131; line-height:18px">
            <tr>
               <td colspan="3" align="right" style="padding-right:10px"><img src="https://static.newyse.org/email/siblu/siblu-logo.jpg" /> </td>
            </tr>
            <tr>
               <td width="10" >&nbsp;</td>
               <td>
                  <table width="595" border="0" cellspacing="0" cellpadding="0">
                     <tbody style="font-family:Arial, Helvetica, sans-serif; font-size:13px; color:#3B3131; line-height:18px">
                        <tr>
                           <td colspan="3">
                              <table width="595" border="0" cellspacing="0" cellpadding="0">
                                 <tbody style="font-family:Arial, Helvetica, sans-serif; font-size:13px; color:#3B3131; line-height:18px">
                                    <tr>
                                       <td valign="top">
                                         <b>#if( $!paying_customer_company_name) $paying_customer_company_name #end #if($!paying_customer_vat_number) / $paying_customer_vat_number #end</b><br/>
                                        $paying_customer_title  $paying_customer_firstname $paying_customer_middlename  $paying_customer_lastname<br/>
                                          #if($paying_customer_address1 !="" || $paying_customer_housenumber !="" || $paying_customer_housenumbersuffix != "")
                                            $paying_customer_address1 $paying_customer_housenumber $paying_customer_housenumbersuffix <br/>            
                                          #end  
                                          #if(  $paying_customer_zipcode !="" || $paying_customer_city != "")                                       
                                            $paying_customer_zipcode $paying_customer_city <br/>                                        
                                          #end       
                                            #if($paying_customer_country != "")                                                                                    
                                           $paying_customer_country<br/>
                                          #end<br/>
                                          
                                          #foreach ($doc in $documentTagList)
                                            #if( $doc.document_id != "")                                          
                                              Invoice number:  $doc.document_id<br/>
                                          #end
                                          #break
                                         #end
                                          Invoice Date: $current_date <br/>
                                          Reservation number: $reservation_reservationnumber<br/>
                                        
                                          
                                       </td>
                                       <td valign="top">
                                         &nbsp;
                                       </td>
                                    </tr>
                                 </tbody>
                              </table>
                           </td>
                        </tr>
                        <tr>
                           <td colspan="3">&nbsp;</td>
                        </tr>
                        
                        <tr>
                           <td colspan="3">&nbsp;</td>
                        </tr>
                        <tr>
                           <td colspan="3" style="padding-bottom:8px"><b>YOUR HOLIDAY DETAILS:</b></td>
                        </tr>
                        <tr>
                           <td colspan="3"> <hr style="border-bottom:1px solid #e5e5e5" /></td>
                        </tr>
                       
                       <tr>
                           <td width="160" height="25" valign="top"><b>Village Name:</b></td>
                           <td valign="top">$reservation_resortname </td>
                           <td>&nbsp;</td>
                        </tr>
                        <tr>
                           <td width="250" valign="top"><b>Unit Type:</b></td>
                           <td valign="top">
                              <table width="400" border="0" cellspacing="0" cellpadding="0">
                                 <tbody>
                                   
                                    #foreach($acco in $accommodationList)
                                    #if (!$acco.accommodation_is_imply)   
                                    <tr>
                                       <td valign="top" height="25"> $acco.accommodation_name#if($acco.object_preference == "1"), $acco.accommodation_object #end 
                                       <br/>
                                       </td>
                                    </tr>
                                    #set( $prevAcco = $acco.accommodation_object_forced ) 
                                    #end 
                                    #end
                                 </tbody>
                              </table>
                           </td>
                           <td>&nbsp;</td>
                        </tr>
                        <tr>
                           <td width="160" height="25" valign="top"><b>Passenger Information:</b></td>
                           <td valign="top">
                           $reservation_numberofpersons,
                            #foreach( $subject in $travelList )
                              #if( $subject.firstname != "" || $subject.lastname != "")
                                    $subject.firstname $subject.lastname,&nbsp;
                              #end 
                            #end    
                           </td>
                           <td>&nbsp;</td>
                        </tr>
                        <tr>
                           <td width="160" height="25" valign="top"><b>Arrival date: </b></td>
                           <td valign="top">$reservation_arrivaldate  
                           </td>
                           <td>&nbsp;</td>
                        </tr>
                        <tr>
                           <td width="160" height="25" valign="top"><b>Departure Date: </b></td>
                           <td valign="top">$reservation_departuredate 
                           </td>
                           <td>&nbsp;</td>
                        </tr>
                        <tr>
                           <td colspan="3">&nbsp;</td>
                        </tr>
                         #foreach($res in $resourceList)
                        <tr>
                           <td colspan="3" style="padding-bottom:10px"> $res.infotext </td>
                        </tr>
                        #end 
                        #foreach( $memo in $memoList )
                        <tr>
                           <td colspan="3" style="padding-bottom:10px"> <b>$memo.content</b></td>
                        </tr>
                        #end
                        <tr>
                           <td colspan="3" style="padding-bottom:8px"><b>Invoice details:</b></td>
                        </tr>
                         <tr>
                           <td colspan="3"> <hr style="border-bottom:1px solid #e5e5e5" /></td>
                        </tr>
                        <tr>
                           <td colspan="3">&nbsp;</td>
                        </tr>                     
                      
                        <tr>
                           <td colspan="3">
                             ${templateTool.parseTemplate(1504003)} #*VAT Bill  Paying Customer*#                           
                           </td>
                        </tr>                  
                        <tr>
                           <td colspan="3">&nbsp;</td>
                        </tr>
                        
                         <tr>
                           <td colspan="3">
                           ${templateTool.parseTemplate(1504004)} #*VAT Calculation Paying Customer*#
                           
                           </td>
                        </tr>
                         <tr>
                           <td colspan="3">&nbsp;</td>
                        </tr>
                        
                         <tr>
                           <td colspan="3"> CLIENT on the behalf of  </td>
                        </tr>
                        
                        <tr>
                           <td colspan="3"> <hr style="border-bottom:1px solid #e5e5e5" /></td>
                        </tr>
                         <tr>
                           <td colspan="3">
                           CLIENT DETAILS
                           </td>
                        </tr>
                         <tr>
                           <td colspan="3">&nbsp;</td>
                        </tr>
                         <tr>
                           <td colspan="3" align="center">
                            #foreach ($doc in $documentTagList)
                              $doc.document_type  B525/0420-1 $doc.signature V1.1 
                            #end
                                  
                           </td>
                        </tr>
                     </tbody>
                  </table>
               </td>
               <td width="10">&nbsp;</td>
            </tr>
         </tbody>
      </table>
   </body>
</html>

Subtemplates
Expand
titleVAT Bill (paying customer)

  

<table width="625" border="0" cellspacing="0" cellpadding="0">
         <tbody style="font-family:Arial, Helvetica, sans-serif; font-size:12px; color:#3B3131; line-height:18px">
    <tr>        
        <td width="625" valign="top" style="font-size:0; line-height:0">
          <table  width="625" cellpadding="0" cellspacing="0" border="0">
           <tbody style="font-family:Arial, Helvetica, sans-serif; font-size:12px; color:#3B3131; line-height:18px">   
        
           <tr>
               <td width="250" style="color:#0078bf;"><strong>SPECIFICATION</strong></td>
               <td width="80" align="right">&nbsp;</td>
              <td width="90" >&nbsp;</td>
               <td width="90" align="right">VAT % </td>
               <td width="110" align="right">Excl. VAT</td>
               <td width="100" align="right">VAT</td>
               <td width="180" align="right">Total incl. VAT</td>
         </tr>
    
         <tr>
            <td colspan="7" width="625" style="line-height:5px;border-top:1px solid #000000;">&nbsp;</td>
         </tr>
         #set($total_AllExcl_BTW = 0 )
         #set($total_BTW_Amount = 0)
         #set($billTotal_Amount = 0)
         #set($total_BTW_Amount_total = 0)
         #set($bill_Vat_ValueTotal= 0)
         #set($Final_BTW_Amount_total = 0)         
         #set($exclTaxVal="")
         
         #foreach($bill in $billList )
        #if($bill.bill_payer_type == "p")
          #if ($bill.bill_linetype !="-10" && $bill.bill_linetype != "0"  && $bill.bill_linetype != "60" && $bill.bill_linetype != "40" && $bill.bill_linetype != "200" && $bill.bill_linetype != "20" && $bill.bill_linetype != "-20" && $bill.bill_linetype != "30" && $bill.bill_linetype != "80" && $bill.bill_linetype != "90" && $bill.bill_linetype != "70" )           
          <tr>
               <td width="90">$bill.bill_type </td>
               <td width="80" align="right">$bill.bill_quantity_multiplier X </td>
               <td width="90" align="right">         
                  $reservation_dc_currency_symbol &nbsp; $bill.bill_value
                </td>
               <td width="90" align="right"> #if($bill.bill_vat_rate == "0.0" || $bill.bill_vat_rate == "0,0" || $bill.bill_vat_rate == "0,0" || $bill.bill_vat_rate == "") 0 #else $convert.toNumber($bill.bill_vat_rate) #end </td>
               <td width="110" align="right">
                  $reservation_dc_currency_symbol &nbsp; $bill.bill_total_excl_vat
                   <!-- Logic Total Excl Tax-->
                   #set($total_AllExcl_BTW =$convert.toDouble($total_AllExcl_BTW) + $convert.toDouble($bill.bill_total_excl_vat_without_format))  
                   
                   <!--End  Logic Total Excl Tax-->
                 
               </td>
               <td width="80" align="right">
                       #if($bill.bill_total_without_format != $bill.bill_total_excl_vat_without_format)
                           #set($bill_Vat_Value = $convert.toDouble($bill.bill_total_without_format) - $convert.toDouble($bill.bill_total_excl_vat_without_format))
                           #set($exclTaxVal="$bill_Vat_Value")
                            #if($exclTaxVal.contains("-"))                                 
                                #set( $totalVal = $number.currency($bill_Vat_Value).replace("$", "") )                                                               
                                $reservation_dc_currency_symbol &nbsp; -$totalVal.replace("(","").replace(")","")
                            #else
                                
                               #set( $totalVal = $number.currency($bill_Vat_Value).replace("$", "") )                                                               
                                $reservation_dc_currency_symbol &nbsp; $totalVal
                           #end
    
                        <!--Logic BTW Bedrag-->
                        #set($bill_Vat_ValueTotal = $convert.toDouble($bill.bill_total_without_format) - $convert.toDouble($bill.bill_total_excl_vat_without_format))    
                        #set($total_BTW_Amount_total = $convert.toDouble($total_BTW_Amount_total) + $convert.toDouble($bill_Vat_ValueTotal))
                        #set( $total_BTW_Amount_total = $number.currency($total_BTW_Amount_total).replace("$", "") )
                       <!--End Logic BTW Bedrag-->
                    #end
               </td>
               <td width="125" align="right">   
                 $reservation_dc_currency_symbol &nbsp;  $bill.bill_total              
                  <!-- Bill Total-->
                  #set($billTotal_Amount = $convert.toDouble($billTotal_Amount) + $convert.toDouble($bill.bill_total_without_format ))                
                <!-- End -->               
                 </td>
            </tr>          
         #end 
        #end 
        #end 
        
        <tr>
            <td colspan="7" width="625" style="line-height:5px;border-top:1px solid #000000;">&nbsp;</td>
         </tr>
        
          
        <tr>
               <td width="200"><strong>Total</strong></td>
               <td width="40">&nbsp;</td>
               <td width="90" >&nbsp;</td>
               <td width="90">&nbsp;</td>
               <td width="110" align="right">                  
                <!--$total_AllExcl_BTW-->
                $reservation_dc_currency_symbol &nbsp; $number.currency($total_AllExcl_BTW).replace("$", "")
                    
               </td>    
               <td width="80" align="right">
                  <!--$total_BTW_Amount_total -->
                  $reservation_dc_currency_symbol &nbsp; $number.currency($total_BTW_Amount_total).replace("$", "")
              
               </td>
               <td width="125" align="right">
                <!-- $billTotal_Amount --> 
                $reservation_dc_currency_symbol &nbsp;  $number.currency($billTotal_Amount).replace("$", "")
                 
                  
                 </td>
            </tr>
            
           #foreach($bill in $billList )
           #if($bill.bill_payer_type == "p")
        #if($bill.bill_linetype == "80")
       <tr>
         <td width="200">Paid</td>
         <td width="40">&nbsp;</td>
         <td width="90" >&nbsp;</td>
         <td width="90">&nbsp;</td>
         <td width="110">
            &nbsp;
         </td>    
         <td width="80">
           &nbsp;
         </td>
         <td width="125" align="right">    
         $reservation_dc_currency_symbol &nbsp;  $bill.bill_total
                  
           </td>
      </tr>
      #end
      #end
      #end
           #foreach($bill in $billList )
        #if($bill.bill_payer_type == "p")
      #if($bill.bill_linetype == "90")
           <tr>
             <td width="200">
                    #if($convert.toDouble($bill.bill_total) < 0)
                         To receive
                     #else
                        To be paid
                     #end
                   </td>
             <td width="40">&nbsp;</td>
             <td width="90" >&nbsp;</td>
             <td width="90">&nbsp;</td>
             <td width="110">
                &nbsp;
             </td>    
             <td width="80">
               &nbsp;
             </td>
             <td width="125" align="right">    
             $reservation_dc_currency_symbol &nbsp; $bill.bill_total
               </td>
          </tr>
      #end
      #end
      #end  

             #foreach($bill in $billList )
        #if($bill.bill_payer_type == "p")
      #if($bill.bill_linetype == "60")
           <tr>
             <td width="200">
                    $bill.bill_type
              </td>
             <td width="40">&nbsp;</td>
             <td width="90" >&nbsp;</td>
             <td width="90">&nbsp;</td>
             <td width="110">
                &nbsp;
             </td>    
             <td width="80">
               &nbsp;
             </td>
             <td width="125" align="right">    
                $reservation_dc_currency_symbol &nbsp; $bill.bill_total
                   
               </td>
          </tr>
      #end
      #end
      #end  
         
           <tr>
            <td colspan="7" style="background: #ffffff;" bgColor="#ffffff">&nbsp;</td>
         </tr>
         
         #foreach( $receivedPayment in $receivedPaymentList)   
          #if($receivedPayment.payerType == "p")
           #if( $receivedPayment.amount != "0,00" || $receivedPayment.amount != "0.00" )
             #set($pay_date = $receivedPayment.statementDate)
            <tr>
             <td width="200">
                    Received payments
                   </td>
             <td width="140" colspan="2">$receivedPayment.statementDate.split(',')[1]</td>
             
             <td width="200" colspan="2">$receivedPayment.bankname</td>
               
             <td width="80">
              &nbsp;
             </td>
             <td width="125" align="right">    
               $reservation_dc_currency_symbol &nbsp;   $receivedPayment.amount                
             </td>
          </tr>
             #end
            #end
        #end
                                                                      
              
            #set($dueamount= 0)
            #set($Duetotal= 0)
            #foreach( $term in $termList )
           #if($term.term_payertype == "p")
            #if ($term.term_due != "0,00" && $term.term_due != "0.00") 
            #if($reservation_language == "nl" || $reservation_language == "de" ) 
              #set($term_value = $term.term_value.replaceAll("\.", ""))
              #set($term_value = $term_value.replaceAll(",", "\.")) 
              #set($term_paid = $term.term_paid.replaceAll("\.", ""))
              #set($term_paid = $term_paid.replaceAll(",", "\.")) 
             
              #elseif($reservation_language == "en")
              #set($term_value = $term.term_value.replaceAll(",", ""))
              #set($term_paid = $term.term_paid.replaceAll(",", ""))
              #end
              
              #set($Duetotal= $convert.toNumber($term_value) - $convert.toNumber($term_paid))
              #set($dueamount= $math.roundTo(2, $Duetotal))           
              #set($finalDue = $numberFormatter.format($dueamount))
           
               #if( $term.term_status == "o" ||  $term.term_status == "p" &&  $term.term_status =="p")

                 <tr>
             <td width="200">
                     $term.term_name
                   </td>
             <td width="140" colspan="2">$term.term_duedate.split(',')[1]</td>
             
             <td width="200" colspan="2">&nbsp;</td>
               
             <td width="80">
                &nbsp; 
             </td>
             <td width="125" align="right">    
                    $reservation_dc_currency_symbol  $term.term_due                 
             </td>
          </tr>                                           
                #end
             #end     
            #end
          #end
      </tbody>
      </table>
      </td>
      </tr>
      </tbody>
      </table>

...