1 CREATE TABLE compta_exercices
4 id INTEGER PRIMARY KEY,
8 debut
TEXT NOT NULL DEFAULT CURRENT_DATE,
9 fin
TEXT NULL DEFAULT NULL,
11 clos
INTEGER NOT NULL DEFAULT 0
15 CREATE TABLE compta_comptes
19 parent
TEXT NOT NULL DEFAULT 0,
21 libelle
TEXT NOT NULL,
23 position INTEGER NOT NULL, -- position actif/passif/charge/produit
24 plan_comptable
INTEGER NOT NULL DEFAULT 1 -- 1 = fait partie du plan comptable, 0 = a été ajouté par l'utilisateur
27 CREATE INDEX compta_comptes_parent
ON compta_comptes (parent
);
29 CREATE TABLE compta_comptes_bancaires
39 FOREIGN KEY(id) REFERENCES compta_comptes(id)
42 CREATE TABLE compta_journal
43 -- Journal des opérations comptables
45 id INTEGER PRIMARY KEY,
47 libelle
TEXT NOT NULL,
49 numero_piece
TEXT, -- N° de pièce comptable
53 date TEXT DEFAULT CURRENT_DATE,
54 moyen_paiement
TEXT DEFAULT NULL,
55 numero_cheque
TEXT DEFAULT NULL,
57 compte_debit
INTEGER, -- N° du compte dans le plan
58 compte_credit
INTEGER, -- N° du compte dans le plan
60 id_exercice
INTEGER NULL DEFAULT NULL, -- En cas de compta simple, l'exercice est permanent (NULL)
61 id_auteur
INTEGER NOT NULL,
62 id_categorie
INTEGER NULL, -- Numéro de catégorie (en mode simple)
64 FOREIGN KEY(moyen_paiement
) REFERENCES compta_moyens_paiement(code
),
65 FOREIGN KEY(compte_debit
) REFERENCES compta_comptes(id),
66 FOREIGN KEY(compte_credit
) REFERENCES compta_comptes(id),
67 FOREIGN KEY(id_exercice
) REFERENCES compta_exercices(id),
68 FOREIGN KEY(id_auteur
) REFERENCES membres(id),
69 FOREIGN KEY(id_categorie
) REFERENCES compta_categories(id)
72 CREATE INDEX compta_operations_exercice
ON compta_journal (id_exercice
);
73 CREATE INDEX compta_operations_date
ON compta_journal (date);
74 CREATE INDEX compta_operations_comptes
ON compta_journal (compte_debit
, compte_credit
);
75 CREATE INDEX compta_operations_auteur
ON compta_journal (id_auteur
);
77 CREATE TABLE compta_moyens_paiement
80 code
TEXT PRIMARY KEY,
84 INSERT INTO compta_moyens_paiement (code
, nom
) VALUES ('CB', 'Carte bleue');
85 INSERT INTO compta_moyens_paiement (code
, nom
) VALUES ('CH', 'Chèque');
86 INSERT INTO compta_moyens_paiement (code
, nom
) VALUES ('ES', 'Espèces');
87 INSERT INTO compta_moyens_paiement (code
, nom
) VALUES ('PR', 'Prélèvement');
88 INSERT INTO compta_moyens_paiement (code
, nom
) VALUES ('TI', 'TIP');
89 INSERT INTO compta_moyens_paiement (code
, nom
) VALUES ('VI', 'Virement');
91 CREATE TABLE compta_categories
92 -- Catégories pour simplifier le plan comptable
94 id INTEGER PRIMARY KEY,
95 type INTEGER DEFAULT 1, -- 1 = recette, -1 = dépense, 0 = autre (utilisé uniquement pour l'interface)
97 intitule
TEXT NOT NULL,
100 compte
TEXT NOT NULL, -- Compte affecté par cette catégorie
102 FOREIGN KEY(compte
) REFERENCES compta_comptes(id)