Dans cet article, vous trouverez les instructions pour créer un modèle de document pour vos factures avec code QR.
Limitations :
- Seules des factures d'une seule page peuvent être créées.
- Le code fourni est créé pour le CHF.
- Le code pays pour chaque destinataire en dehors de la Suisse doit être modifié manuellement dans le modèle.
Mise en place de votre modèle de document
- Créez un nouvel en-tête sans aucune marge. Vous pouvez le faire en allant dans votre module settings Configurations > Communication client > En-tête documents > Ajouter un en-tête
Il est important que toutes les marges soient définies sur 0. - Créez un nouveau modèle de document pour vos factures (ou dupliquez une déjà existante) dans votre module settings Configurations > Modèles de documents.
- Ajoutez maintenant une section 2-colonnes à votre modèle de document, puis faites glisser la bordure centrale vers la droite
- Faites maintenant glisser tous les modules de votre choix sur la colonne de gauche, puis appliquez des marges à tous les autres modules en fonction des marges que vous souhaitez réellement.
-
Ajoutez un module de texte à l'extérieur du module de 2 sections et ajoutez cet HTML.
- Ajoutez ce CSS à votre en-tête.
HTML
Ajoutez le HTML suivant dans votre document
<table class="qr">
<tbody>
<tr>
<td class="left">
<div class="left-content">
<h3>Récépissé</h3>
<strong>Compte / Payable à</strong><br/>{$company.bank_account|wordwrap:4:' ': true}<br/>{$company.company_name}<br/>{$company.location_street} {$company.location_housenumber}<br/>{$company.location_postalcode}<br/>{$company.location_city} {$company.country}<br/><br/><br/><strong>Payable par</strong><br/>{$f.customer.displayname}<br/>{$f.customer.invoice_street} {$f.customer.invoice_number}<br/>{$f.customer.invoice_postalcode} {$f.customer.invoice_city} <br/>{iff $f.customer.invoice_country != $company.country}{$f.customer.invoice_country}{/iff} <br/>
<table class="currency">
<tbody>
<tr>
<td><strong>Monnaie</strong></td>
<td><strong>Montant</strong></td>
</tr>
<tr>
<td>CHF</td>
<td>{$f.price_invat,noformat|replace:',':' '}</td>
</tr>
</tbody>
</table>
</div>
</td>
<td class="right">
<div class="right-content">
<table class="payment">
<tbody>
<tr>
<td>
<h3>Section de paiement</h3>
<div class="qr-code">
<img src="https://qr-generator.io/?swiss=1&margin=0&cht=qr&chs=543x543&chld=H|0&chl=SPC%0A0200%0A1%0A{$company.bank_account}%0AS%0A{$company.company_name}%0A{$company.location_street}%0A{$company.location_housenumber}%0A{$company.location_postalcode}%0A{$company.location_city}%0ACH%0A%0A%0A%0A%0A%0A%0A%0A{$f.price_invat,noformat|replace:',':''}%0ACHF%0AS%0A{$f.customer.displayname}%0A{$f.customer.invoice_street}%0A{$f.customer.invoice_number}%0A{$f.customer.invoice_postalcode}%0A{$f.customer.invoice_city}%0ACH%0ANON%0A%0A{$f.subject}%0AEPD"/>
</div>
<table class="currency">
<tbody>
<tr>
<td><strong>Monnaie</strong></td>
<td><strong>Montant</strong></td>
</tr>
<tr>
<td>CHF</td>
<td>{$f.price_invat,noformat|replace:',':' '}</td>
</tr>
</tbody>
</table>
</td>
<td><strong>Compte / Payable à</strong><br/>{$company.bank_account|wordwrap:4:' ': true}<br/>{$company.company_name}<br/>{$company.location_street} {$company.location_housenumber}<br/>{$company.location_postalcode}<br/>{$company.location_city} {$company.country}<br/><br/><br/><strong>Payable par</strong><br/>{$f.customer.displayname}<br/>{$f.customer.invoice_street} {$f.customer.invoice_number}<br/>{$f.customer.invoice_postalcode} {$f.customer.invoice_city}<br/>{iff $f.customer.invoice_country != $company.country}{$f.customer.invoice_country}{/iff}</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
CSS
Ajoutez le CSS suivant à votre en-tête
body > .templatesection table td {
height: 191mm;
}
body > .templatesection table td td {
height: auto;
}
table.qr td {
vertical-align: top;
font-family: Arial;
}
table.qr td.left {
font-size: 8pt;
}
table.qr td.right, table.payment td {
font-size: 10pt;
}
table.qr td.left strong {
font-size: 6pt;
}
table.qr td.right strong {
font-size: 8pt;
}
table.qr td h3 {
font-size: 11pt;
padding-bottom: 12px;
padding-top: 0px;
margin: 0px;
}
table.qr td.left {
width: 62mm;
height: 105mm;
border-top: 0.75pt solid black;
border-right: 0.75pt solid black;
}
.left-content, .right-content {
padding: 5mm;
}
table.qr td.right {
width: 148mm;
height: 105mm;
border-top: 0.75pt solid black;
}
.qr-code {
width: 46mm;
height: 46mm;
margin-top: 5mm;
margin-bottom: 5mm;
}
.qr-code img {
width: 46mm;
height: 46mm;
}