In het open source webbased programma FrontAccounting is het grootboekrekeningschema vastgelegd in de tabellen chart_master, chart_types and chart_class. Wij hebben een aavullende tabel gemaakt om betere rapportages te maken vanuit de MySQL database.
TabeL chart_class
Dit is de hoogste tabel en bevat de volgende regels:
| cid | class_name | ctype | inactive |
| 1 | Activa | 1 | 0 |
| 2 | Passiva | 2 | 0 |
| 3 | Eigen vermogen | 3 | 0 |
| 4 | Opbrengsten | 4 | 0 |
| 5 | Inkopen | 5 | 0 |
| 6 | Kosten | 6 | 0 |
Deze velden zijn toereikend voor de rapporten, welke FrontAccounting zelf genereert. Wil je zelf opvragingen doen en rapporten maken, dan heb je een tabel met aanvullende velden nodig.
Tabel fac_chart_class
We hebben een tabel gemaakt met het voorvoegsel fac (FrontAccounting Custom), waarvan het primaire sleutelveld cid overeenkomthetzelfde veld in de tabel chart_class table.
Dit is de SQL opdracht om de table te maken en te vullen met gegevens:
| DROP TABLE IF EXISTS `fac_chart_class`; CREATE TABLE `fac_chart_class` ( `cid` varchar(3) NOT NULL, `multiplier` smallint(2) DEFAULT NULL, `topclass` varchar(20) DEFAULT NULL, `topclass_nl` varchar(20) DEFAULT NULL, PRIMARY KEY (`cid`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; /*Data for the table `fac_chart_class` */ insert into `fac_chart_class`(`cid`,`multiplier`,`topclass`,`topclass_nl`) values ('1','1','Balance','Balans'), ('2','-1','Balance','Balans'), ('3','-1','Balance','Balans'), ('4','-1','Profit & Loss','Winst & Verlies'), ('5','1','Profit & Loss','Winst & Verlies'), ('6','1','Profit & Loss','Winst & Verlies'); |
Uitgangspunt is, dat de tabel chart_class gevuld is met de originele waarden. Anders moeten de insert regels aangepast worden.
Het belangrijkste doel is om rapporten op te zetten met een gecombineerde Balans en Winst & Verlies rekening.
- Het veld "multiplier" zet met de waarden 1 and -1 negatieve bedragen om naar een positieve weergave.
- Het veld "topclass" wordt gebruikt om onderscheid te maken naar Balans en Winst & Verlies.
Aan de Nederlandse omschrijvingen zijn ook de Engelse vertalingen toegevoegd. Een gebruiker kan deze waarden gemakkelijk aanpassen naar een andere taal.
Query chart_master_extended
Door de uitbreiding met de tabel fac_chart_topclass table is het gemakkelijk geworden om een uitgebreid en goed leesbaar overzicht van de grootboekrekeningen te maken.
Voer de volgende sql query uit:
| SELECT `chart_master`.`account_code` AS `account_code`, `chart_master`.`account_name` AS `account_name`, `chart_master`.`account_type` AS `account_type`, `chart_types`.`name` AS `name`, `chart_types`.`parent` AS `parent`, `chart_types1`.`name` AS `name1`, `chart_types`.`class_id` AS `class_id`, `chart_class`.`class_name` AS `class_name`, `fac_chart_class`.`topclass_nl` AS `topclass_nl`, `fac_chart_class`.`multiplier` AS `multiplier`, `chart_master`.`inactive` AS `inactive` FROM ((((`chart_master` LEFT JOIN `chart_types` ON ((`chart_master`.`account_type` = `chart_types`.`id`))) LEFT JOIN `chart_class` ON ((`chart_types`.`class_id` = `chart_class`.`cid`))) LEFT JOIN `chart_types` `chart_types1` ON ((`chart_types`.`parent` = `chart_types1`.`id`))) LEFT JOIN `fac_chart_class` ON ((`chart_class`.`cid` = `fac_chart_class`.`cid`))) ORDER BY `fac_chart_class`.`topclass_nl`,`chart_types`.`parent`,`chart_master`.`account_type` ,`chart_master`.`account_code` |
Bij herhaald gebruik of verwerking in een andere query is het verstandig deze query op te slaan als een MySQL View. Een passende naam hiervoor is vfa_chart_master_extended.