Factuurdetail-sjablonen zijn een speciaal type factuursjabloon. Ze worden gebruikt om een gedetailleerd overzicht van registraties toe te voegen aan een factuur. Je kan dit detailoverzicht als aparte pagina of bijlage aan de factuur laten toevoegen.
Een factuurdetail wordt aan de factuur toegevoegd als aan alle drie onderstaande voorwaarden voldaan is:
- Factuurdetails zijn ingeschakeld
- Er zijn registraties gekoppeld aan de factuur
- Er is een sjabloon van het type 'Factuurdetail' beschikbaar
💡 Lees ook het artikel over het inschakelen van factuurdetails: Factuurdetails instellen op bedrijfs-, relatie- en opdrachtniveau
Start niet van nul – gebruik een voorbeeldsjabloon voor factuurdetails
Factuurdetail-sjablonen kunnen best complex zijn. Ze laten namelijk toe om meerdere lagen van details te tonen. In AdminPulse en het artikel Voorbeeldsjablonen voor facturen en factuurdetails zijn er daarom al heel wat voorbeeldsjablonen beschikbaar. Voor je zelf een sjabloon van nul maakt, loont het de moeite om eerst eens te kijken tussen de voorbeelden. Je kan die:
- gebruiken zoals ze zijn (met wat aanpassingen aan je huisstijl)
- of als basis gebruiken om op verder te bouwen
💡 Tip: ga je voor het eerst met tabellen werken in een factuursjabloon? Lees dan eerst de artikels over hoe tabellen in factuursjablonen werken:
- Basisartikel: Factuursjablonen: facturen personaliseren – invulvelden, tabellen en huisstijl
- Tabellen in factuursjablonen (behalve factuurdetails): Factuursjablonen: tabellen en hun invulvelden uitgelegd
Wat zijn prijslijstitem types, prijslijstitems en subklassen?
Om goed te begrijpen hoe factuurdetails opgebouwd worden, is het handig om eerst kort stil te staan bij hoe de prijslijst is opgebouwd. Want het registreren op de items in de prijslijst en het gebruiken van een van de tabellen die hieronder beschreven is, bepaalt welke info precies op de factuurdetails verschijnen.
In AdminPulse bestaat een prijslijst uit prijslijstitems en subklassen. Daarnaast zie je bij elk prijslijstitem een type.
👉 De structuur van je prijslijst bepaalt dus hoe je registraties gegroepeerd worden op de factuurdetails — per prijslijstitem, per subklasse … of een combinatie.
Prijslijstitem type
Het type van een prijslijstitem bepaalt hoe een prijslijstitem wordt geregistreerd en gefactureerd — bijvoorbeeld per uur of per aantal.
- Tijd: gefactureerd per uur (bv. advieswerk)
- Product/kost: per eenheid (bv. kosten voor neerlegging griffie)
- Afstand: per verplaatsing (bv. taxi of bedrijfswagen)
Prijslijstitem
Met een prijslijstitem groepeer je verwante diensten. Denk aan categorieën zoals:
- Advies – alle adviesdiensten
- Erelonen – administratief werk
Prijslijstitems werden soms ook hoofdklassen genoemd.
Prijslijstitem subklasse
Een subklasse is een specifieke dienst binnen een prijslijstitem. Om subklassen aan te kunnen maken moet eerst de prijslijstitem bestaan.
In het voorbeeldprijslijst hieronder zijn 3 prijslijstitems zichtbaar: Interne werkzaamheden, Advies en Erelonen. Alle drie zijn van type 'Tijd'. Advies bevat 3 subklassen en Erelonen bevat 2 subklassen.
Verplicht begin en einde van een sjabloon voor factuurdetails
👉 Opgelet: anders dan bij gewone factuursjablonen, moet elk factuurdetail-sjabloon verplicht starten met {BeginGroup:InvoiceDetail} en eindigen met {EndGroup:InvoiceDetail}.
{BeginGroup:InvoiceDetail} plaats je bovenaan de tabel voor de factuurdetails. {EndGroup:InvoiceDetail} zet je onderaan diezelfde tabel.
Als je deze velden vergeet, krijg je een foutmelding zodra je het sjabloon probeert te visualiseren met een voorbeeldweergave of bij het maken van een factuurvoorstel.
Voorbeeld:
Overzicht van beschikbare tabellen in sjablonen voor factuurdetails
In een factuurdetail-sjabloon kan je verschillende tabellen gebruiken om gegevens weer te geven. Hieronder vind je eerst een overzicht van de beschikbare hoofdtabellen, gevolgd door de mogelijke subtabellen die je binnen die hoofdtabellen kan gebruiken.
Hiërarchie van de beschikbare tabellen voor factuurdetails
-
Niveau 0 – Containertabellen (optioneel):
Relations,Assignments -
Niveau 1 – Hoofdtabellen: bv.
PriceListItemDetails,TaskDetails, … -
Niveau 2 – Subtabellen: bv.
RegistrationDays,Registrations, … -
Niveau 3 – Sub-subtabellen: bv.
RegistrationsbinnenResources,SubtasksbinnenTaskDetails
👉 Alleen tabellen die effectief gegevens bevatten, worden op een factuurdetail getoond.
Hoofdtabellen voor factuurdetail-sjablonen
In onderstaande tabel vind je alle hoofdtabellen (niveau 1) die je kan gebruiken in je factuurdetail-sjabloon. Containertabellen (niveau 0; Relations, Assignments) vind je in een aparte sectie hieronder.
Per hoofdtabel zie je:
- Wat er precies wordt getoond
- Welke invulvelden beschikbaar zijn
- Of je binnen die tabel ook subtabellen kan opnemen
| Hoofdtabel | Wat toont deze tabel? | Beschikbare velden | Heeft subtabellen? |
| {TableStart:PriceListItemDetails} ... {TableEnd:PriceListItemDetails} | Registraties gegroepeerd per subklasse | {Name} {FullName} {Total} {TotalPrice} {Code} |
Ja — bevat 'RegistrationDays' en 'Registrations' |
| {TableStart:PriceListItemCategoryDetails} ... {TableEnd:PriceListItemCategoryDetails} | Registraties gegroepeerd per prijslijstitem | {Name} {FullName} {Total} {TotalPrice} {Code} |
Ja — bevat 'RegistrationDays', 'Registrations' en 'Resources' |
| {TableStart:RegistrationDateDetails} ... {TableEnd:RegistrationDateDetails} | Registraties gegroepeerd per datum | {Date} {Name} {Amount} {TotalPrice} {Remark} |
Nee |
| {TableStart:TaskDetails} ... {TableEnd:TaskDetails} | Registraties gegroepeerd per taak | {TaskName} {TaskTotal} {TotalPrice} |
Ja — bevat 'Registrations' en 'Subtasks' |
| {TableStart:RegistrationTotals} ... {TableEnd:RegistrationTotals} | Totaaloverzicht per item uit de prijslijst | {Name} {Amount} {TotalPrice} |
Nee |
| {TableStart:RegistrationDetails} ... {TableEnd:RegistrationDetails} | Alle registraties zonder groepering | {Code} {Date} {Name} {Amount} {Remark} {Time} {Employee} {UnitPrice} {TotalPrice} {Billable} {InForfait} {InSubscription} {ReferenceYear} |
Nee |
Subtabellen voor factuurdetail-sjablonen
Naast hoofdtabellen kan je in factuurdetail-sjablonen ook subtabellen gebruiken. Die tonen bijvoorbeeld extra informatie per dag, per registratie of per medewerker. Elke subtabel hoort bij één of meerdere hoofdtabellen.
In onderstaand overzicht zie je welke subtabellen je kan gebruiken, binnen welke hoofdtabellen ze beschikbaar zijn, welke velden je kan gebruiken en of de subtabel zelf nog andere tabellen kan bevatten.
💡 Alleen subtabellen met gegevens worden getoond. Lege blokken of secties verschijnen dus niet in het eindresultaat.
👉 Belangrijk: subtabellen moeten altijd gebruikt worden binnen een hoofdtabel in factuurdetail-sjablonen. Ze kunnen niet los gebruikt worden.
| Subtabel | Wat toont deze subtabel? | Beschikbaar binnen deze hoofdtabellen |
Beschikbare velden binnen de subtabel |
Heeft zelf subtabellen |
| {TableStart:RegistrationDays} ... {TableEnd:RegistrationDays} | Registraties gegroepeerd per dag met dagelijkse totalen | PriceListItemDetails, PriceListItemCategoryDetails | {Name} {Date} {Amount} {Remark} {Time} {Employee} {UnitPrice} {TotalPrice} |
Nee |
| {TableStart:Registrations} ... {TableEnd:Registrations} |
Individuele registraties met details | PriceListItemDetails, PriceListItemCategoryDetails, TaskDetails, Resources, Subtasks |
{Code} {Date} {Name} {Amount} {Remark} {Time} {Employee} {UnitPrice} {TotalPrice} {Billable} {InForfait} {InSubscription} {ReferenceYear} |
Nee |
| {TableStart:Resources} ... {TableEnd:Resources} |
Subklassen binnen een prijslijstitem (alleen bij prijslijstitem-groepering in de hoofdtabel) |
PriceListItemCategoryDetails | {Name} {FullName} {Total} {TotalPrice} {Code} |
Ja — bevat 'RegistrationDays' en 'Registrations' |
| {TableStart:Subtasks} ... {TableEnd:Subtasks} | Deeltaken binnen een hoofdtaak (alleen bij taak-groepering in de hoofdtabel) | TaskDetails | {SubtaskName} {SubtaskTotal} |
Ja — bevat 'Registrations' |
Sub-subtabellen voor factuurdetail-sjablonen
| Sub-subtabel | Wat toont deze sub-subtabel? | Beschikbaar binnen deze subtabellen |
Beschikbare velden binnen de sub-subtabel |
Heeft subtabellen |
| {TableStart:Registrations} ... {TableEnd:Registrations} |
Individuele registraties met details | Resources (binnen PriceListitemCategory), Subtasks (binnen TaskDetails) |
{Code}, {Date}, {Name}, {Amount}, {Remark}, {Time}, {Employee}, {UnitPrice}, {TotalPrice}, {Billable}, {InForfait}, {InSubscription}, {ReferenceYear} |
Nee |
| {TableStart:RegistrationDays} ... {TableEnd:RegistrationDays} |
Registraties gegroepeerd per dag met dagelijkse totalen | Resources (binnen PriceListItemCategoryDetails) | {Name}, {Date}, {Amount}, {Remark}, {Time}, {Employee}, {UnitPrice}, {TotalPrice} |
Nee |
Containertabellen in factuurdetail-sjablonen (optioneel)
Soms wil je de factuurdetails groeperen per klant of per opdracht. Dat kan met containertabellen. Die werken als een buitenlaag rond de andere tabellen, zodat je de inhoud netjes per relatie of per opdracht kan weergeven.
Containertabellen zijn optioneel, maar heel handig als je één factuur maakt met registraties van meerdere opdrachten of relaties.
| Containertabel | Wat doet deze container | Beschikbare velden binnen de container | Heeft subtabellen |
| {TableStart:Relations} ... {TableEnd:Relations} |
Groepering per relatie (voor meerdere relaties) |
{Relation} {Total} {TotalAmount} |
Ja — bevat alle andere hoofdtabellen |
| {TableStart:Assignments} ... {TableEnd:Assignments} |
Groepering per opdracht (voor meerdere opdrachten) |
{AssignmentName} {AssignmentOrDefault} {Total} {TotalAmount} |
Ja — bevat alle andere hoofdtabellen |
Beschikbare hoofdtabellen en velden voor factuurdetails
Hoofdtabel: 'PriceListItemDetails' - groepering per subklasse
De hoofdtabel PriceListItemDetails toont alle registraties gegroepeerd per subklasse, met een overzicht van de totale hoeveelheid en het totaalbedrag per subklasse.
💡Wanneer je registraties hebt gedaan op prijslijstitem-niveau en je gebruikt {TableStart:PriceListItemDetails}, dan wordt de prijslijstitem naam getoond in plaats van de subklasse naam.
| Veld | Beschrijving |
| {TableStart:PriceListItemDetails} | Start van de tabel |
| {Name} | Naam van de subklasse |
| {FullName} | Volledige naam (prijslijstitem + subklasse) |
| {Code} | Code van de subklasse |
| {Total} | Totaal aantal/uren |
| {TotalPrice} | Totaalbedrag |
| {TableEnd:PriceListItemDetails} | Einde van de tabel |
Voorbeeld van de hoofdtabel PriceListItemDetails met de subtabel Registrations :
Hoofdtabel: 'PriceListItemCategoryDetails' - groepering per prijslijstitem
De hoofdtabel PriceListItemCategoryDetails toont alle registraties gegroepeerd per prijslijstitem, waarbij alle subklassen binnen hetzelfde prijslijstitem worden samengevoegd.
| Veld | Beschrijving |
| {TableStart:PriceListItemCategoryDetails} | Start van de tabel |
| {Name} | Naam van het prijslijstitem |
| {FullName} | Volledige naam |
| {Code} | Code van het prijslijstitem |
| {Total} | Totaal aantal/uren |
| {TotalPrice} | Totaalbedrag |
| {TableEnd:PriceListItemCategoryDetails} | Einde van de tabel |
Voorbeeld van de hoofdtabel PriceListItemCategoryDetails met de subtabel RegistrationDays :
Hoofdtabel: 'RegistrationDateDetails' - groepering op datum
De hoofdtabel RegistrationDateDetails toont alle registraties gegroepeerd per datum, zodat je kan zien welke activiteiten op welke dagen zijn uitgevoerd.
| Veld | Beschrijving |
| {TableStart:RegistrationDateDetails} | Start van de tabel |
| {Date} | Datum van de registratie |
| {Name} | Naam van het prijslijstitem |
| {Amount} | Aantal eenheden/tijd geregistreerd voor dit item |
| {TotalPrice} | Totaalbedrag geregistreerd voor dit item |
| {Remark} | Opmerking van de registraties |
| {TableEnd:RegistrationDateDetails} | Einde van de tabel |
Voorbeeld van de hoofdtabel RegistrationDateDetails :
Hoofdtabel: 'TaskDetails' - groepering per taak
De hoofdtabel TaskDetails toont alle registraties gegroepeerd per taak, inclusief deeltaken voor een gedetailleerd overzicht van de werkzaamheden.
| Veld | Beschrijving |
| {TableStart:TaskDetails} | Start van de tabel |
| {TaskName} | Naam van de taak |
| {TaskTotal} | Totaal aantal/uren geregistreerd voor de taak |
| {TotalPrice} | Totaalbedrag geregistreerd voor de taak |
| {TableEnd:TaskDetails} | Einde van de tabel |
Voorbeeld van de hoofdtabel TaskDetails met de subtabel RegistrationDays :
Hoofdtabel: 'RegistrationTotals' - totaal van de registraties per prijslijstitem
De hoofdtabel RegistrationTotals toont een overzicht van de totale hoeveelheid en het totaalbedrag per prijslijstitem, zonder gedetailleerde registraties.
| Veld | Beschrijving |
| {TableStart:RegistrationTotals} | Start van de tabel |
| {Name} | Naam van het item uit de prijslijst |
| {Amount} | Aantal eenheden/tijd geregistreerd voor dit item |
| {TotalPrice} | Totaalprijs van de registraties voor dit item uit de prijslijst |
| {TableEnd:RegistrationTotals} | Einde van de tabel |
Voorbeeld van de hoofdtabel RegistrationsTotals :
💡 In dit geval waren er registraties op prijslijstitem en subklasse niveau, daarom worden deze dan ook getoond.
Hoofdtabel: 'RegistrationDetails' - niet-gegroepeerde registraties
De hoofdtabel RegistrationDetails toont alle individuele registraties zonder groepering, inclusief alle details zoals medewerker, tijdsperiode en facturabiliteit.
| Veld | Beschrijving |
| {TableStart:RegistrationDetails} | Start van de tabel |
| {Code} | Code van het item |
| {Date} | Datum van registratie |
| {Name} | Naam van het item |
| {Amount} | Aantal/uren geregistreerd voor dit item |
| {Remark} | Opmerking van de registratie |
| {Time} | Begin- en einduur van de registratie (voor tijdregistraties) |
| {Employee} | Naam van de medewerker |
| {UnitPrice} | Eenheidsprijs van het item |
| {TotalPrice} | Totaalbedrag |
| {Billable} | Factureerbaar (Ja/Nee) |
| {InForfait} | In forfait (Ja/Nee) |
| {InSubscription} | In abonnement (Ja/Nee) |
| {ReferenceYear} | Referentiejaar van de registratie |
| {TableEnd:RegistrationDetails} | Einde van de tabel |
Voorbeeld van de hoofdtabel RegistrationDetails:
Beschikbare subtabellen en velden voor factuurdetails
Subtabel: 'RegistrationDays' - groepering per registratiedag
De subtabel RegistrationDays toont registraties gegroepeerd per dag.
- Beschikbaar in: 'PriceListItemCategoryDetails'
| Veld | Beschrijving |
| {TableStart:RegistrationDays} | Start van de tabel |
| {Name} | Naam van het item |
| {Date} | Datum van registratie |
| {Amount} | Aantal/uren geregistreerd voor dit item |
| {Remark} | Opmerking van de registratie |
| {Time} | Tijdsperiode |
| {Employee} | Medewerker |
| {UnitPrice} | Eenheidsprijs |
| {TotalPrice} | Totaalbedrag |
| {TableEnd:RegistrationDays} | Einde van de tabel |
Voorbeeld met subtabel RegistrationDays binnen de hoofdtabel PriceListItemCategoryDetails:
Subtabel: 'Registrations' - geen groepering van registraties
De subtabel Registrations toont alle individuele registraties, inclusief alle details zoals medewerker, tijdsperiode en facturabiliteit.
- Beschikbaar in: 'PriceListItemCategoryDetails', 'TaskDetails' en 'Subtasks'
| Veld | Beschrijving |
| {TableStart:Registrations} | Start van de tabel |
| {Code} | Code van het prijslijstitem |
| {Date} | Datum van registratie |
| {Name} | Naam van het item |
| {Amount} | Aantal/uren |
| {Remark} | Opmerking |
| {Time} | Tijdsperiode |
| {Employee} | Medewerker |
| {UnitPrice} | Eenheidsprijs |
| {TotalPrice} | Totaalbedrag |
| {Billable} | Factureerbaar (Ja/Nee) |
| {InForfait} | In forfait (Ja/Nee) |
| {InSubscription} | In abonnement (Ja/Nee) |
| {ReferenceYear} | Referentiejaar |
| {TableEnd:Registrations} | Einde van de tabel |
Voorbeeld van de subtabel Registrations binnen de hoofdtabel TaskDetails:
Subtabel: 'Resources' - groepering op subklasse
De subtabel Resources toont per prijslijstitem hoeveel per subklasse is geregistreerd, met totale hoeveelheid en totaalbedrag.
- Beschikbaar in: 'PriceListItemCategoryDetails'
- Bevat ook: 'RegistrationDays' en 'Registrations'
| Veld | Beschrijving |
| {TableStart:Resources} | Start van de tabel |
| {Name} | Naam van het prijslijstitem |
| {FullName} | Volledige naam (Prijslijstitem + subklasse) |
| {Total} | Totaal aantal/uren geregistreerd voor dit prijslijstitem |
| {TotalPrice} | Totaalbedrag |
| {Code} | Code van het prijslijstitem |
| {TableEnd:Resources} | Einde van de tabel |
Voorbeeld met PriceListItemCategoryDetails als hoofdtabel en Resources als subtabel:
Subtabel: 'Subtasks' - groepering op deeltaak
De subtabel Subtasks toont alle deeltaken binnen een hoofdtaak, met hun totale hoeveelheid en totaalbedrag.
- Beschikbaar in: 'TaskDetails'
- Bevat ook: 'Registrations'
| Veld | Beschrijving |
| {TableStart:Subtasks} | Start van de tabel |
| {SubtaskName} | Naam van de deeltaak |
| {SubtaskTotal} | Totaal aantal/uren geregistreerd voor deze deeltaak |
| {TableEnd:Subtasks} | Einde van de tabel |
Voorbeeld met TaskDetails als hoofdtabel en Subtasks als subtabel:
Andere velden voor in factuurdetail-sjablonen
Alle algemene velden uit de gewone factuursjablonen zijn ook beschikbaar voor de factuurdetail-sjablonen. Denk bijvoorbeeld aan:
- Bedrijfsgegevens ({CompanyName}, {CompanyStreetAndNr}, etc.)
- Relatiegegevens ({RelationName}, {RelationStreetAndNr}, etc.)
- Factuurgegevens ({InvoiceNumber}, {InvoiceDate}, etc.)
- Totaalbedragen ({InvoiceAmount}, {InvoiceVatAmount}, etc.)
Het overzicht van alle algemene invulvelden is in het volgende artikel beschikbaar: Factuursjablonen: invulvelden voor algemene factuurinfo
Bijkomende velden specifiek voor factuurdetail-sjablonen in het algemeen:
| Veld | Beschrijving |
| {TotalTimeAmount} | Totaal aantal uren |
| {TotalCostAmount} | Totaal kostenbedrag |
| {TotalAmount} | Totaalbedrag (uren + kosten) |
Deze velden kunnen in een factuurdetail-sjabloon gebruikt worden zonder in een tabel te staan, ter aanvulling van een tabel. Ze moeten dus wel binnen {BeginGroup:InvoiceDetail} ... {EndGroup:InvoiceDetail} staan.
Voorbeeld:
💡Goed om te lezen
- Net gestart met factuursjablonen? Bekijk dan zeker eerst onze reeks van artikels over factuursjablonen. Start hier: Factuursjablonen: schermoverzicht, typen en toepassing
- Dit artikel maakt deel uit van een reeks.
- ⏪ In het eerste artikel krijg je een overzicht van de algemene invulvelden die je kan gebruiken in factuursjablonen: Factuursjablonen: invulvelden voor algemene factuurinfo
- ⏪ Gebruik je een tabel op je factuur? De juiste invulvelden en structuur vind je in het tweede artikel: Factuursjablonen: tabellen en hun invulvelden uitgelegd
- Op zoek naar voorbeeldsjablonen? Bekijk dan zeker het volgende artikel: Voorbeeldsjablonen voor facturen en factuurdetails
- Lukt het niet om je sjabloon op te laden? Check dan dit FAQ-artikel: FAQ – Waarom krijg ik een foutmelding bij het opladen van mijn factuursjabloon?
- Zie je een melding in plaats van gegevens in je preview of factuur? Kijk dan hier: FAQ – Waarom toont mijn factuur ‘System.Collections.Generic…’ in plaats van gegevens?