19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
droit_membres INT DEFAULT 1,
droit_compta INT DEFAULT 1,
droit_inscription INT DEFAULT 0,
droit_connexion INT DEFAULT 1,
droit_config INT DEFAULT 0,
cacher INT DEFAULT 0,
id_transaction_obligatoire INTEGER NULL,
FOREIGN KEY (id_transaction_obligatoire) REFERENCES transactions (id)
);
-- Membres de l'asso
-- Table dynamique générée par l'application
-- voir class.champs_membres.php
CREATE TABLE transactions
-- Paiements possibles
(
id INTEGER PRIMARY KEY,
id_categorie_compta INTEGER NULL, -- NULL si le type n'est pas associé automatiquement à la compta
intitule TEXT NOT NULL,
description TEXT NULL,
montant REAL NOT NULL,
duree INTEGER NULL, -- En jours
debut TEXT NULL, -- timestamp
fin TEXT NULL,
FOREIGN KEY (id_categorie_compta) REFERENCES compta_categories (id)
);
CREATE TABLE rappels
-- Rappels de devoir renouveller une transaction
(
id INTEGER PRIMARY KEY,
id_transaction INTEGER NULL,
delai INTEGER NOT NULL, -- Délai en jours pour envoyer le rappel
sujet TEXT NOT NULL,
texte TEXT NOT NULL,
FOREIGN KEY (id_transaction) REFERENCES transactions (id)
);
CREATE TABLE rappels_envoyes
-- Enregistrement des rappels envoyés à qui et quand
(
id_membre INTEGER NOT NULL,
id_rappel INTEGER NOT NULL,
date TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
media INTEGER NOT NULL, -- Média utilisé pour le rappel : 1 = email, 2 = courrier, 3 = autre
FOREIGN KEY (id_membre) REFERENCES membres (id),
FOREIGN KEY (id_rappel) REFERENCES rappels (id),
PRIMARY KEY(id_membre, id_rappel, date)
);
CREATE TABLE membres_transactions
-- Paiements enregistrés
(
id INTEGER PRIMARY KEY,
id_membre INTEGER NOT NULL,
id_transaction INTEGER NULL, -- NULL si n'est pas relié à une transaction prévue
libelle TEXT NULL,
date TEXT NOT NULL DEFAULT CURRENT_DATE,
montant REAL NOT NULL,
FOREIGN KEY (id_membre) REFERENCES membres (id),
FOREIGN KEY (id_transaction) REFERENCES transactions (id)
);
CREATE TABLE membres_transactions_operations
-- Liaison paiements enregistrés avec écritures comptables
(
id_operation INTEGER NOT NULL,
id_membre_transaction INTEGER NOT NULL,
FOREIGN KEY (id_operation) REFERENCES compta_journal (id),
FOREIGN KEY (id_membre_transaction) REFERENCES membres_transactions (id)
);
--
-- WIKI
--
CREATE TABLE wiki_pages
-- Pages du wiki
(
|
|
<
<
|
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
|
|
<
<
|
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
droit_membres INT DEFAULT 1,
droit_compta INT DEFAULT 1,
droit_inscription INT DEFAULT 0,
droit_connexion INT DEFAULT 1,
droit_config INT DEFAULT 0,
cacher INT DEFAULT 0,
id_cotisation_obligatoire INTEGER NULL REFERENCES cotisations (id)
);
-- Membres de l'asso
-- Table dynamique générée par l'application
-- voir class.champs_membres.php
CREATE TABLE cotisations
-- Types de cotisations et activités
(
id INTEGER PRIMARY KEY,
id_categorie_compta INTEGER NULL, -- NULL si le type n'est pas associé automatiquement à la compta
intitule TEXT NOT NULL,
description TEXT NULL,
montant REAL NOT NULL,
duree INTEGER NULL, -- En jours
debut TEXT NULL, -- timestamp
fin TEXT NULL,
FOREIGN KEY (id_categorie_compta) REFERENCES compta_categories (id)
);
CREATE TABLE cotisations_membres
-- Enregistrement des cotisations et activités
(
id INTEGER NOT NULL PRIMARY KEY,
id_membre INTEGER NOT NULL REFERENCES membres (id),
id_cotisation INTEGER NOT NULL REFERENCES cotisations (id),
date TEXT NOT NULL DEFAULT CURRENT_DATE
);
CREATE UNIQUE INDEX cm_unique ON cotisations_membres (id_membre, id_cotisation, date);
CREATE TABLE membres_operations
-- Liaision des enregistrement des paiements en compta
(
id_membre INTEGER NOT NULL REFERENCES membres (id),
id_operation INTEGER NOT NULL REFERENCES compta_journal (id),
PRIMARY KEY (id_membre, id_operation)
);
CREATE TABLE rappels
-- Rappels de devoir renouveller une cotisation
(
id INTEGER PRIMARY KEY,
id_cotisation INTEGER NOT NULL REFERENCES cotisations (id),
delai INTEGER NOT NULL, -- Délai en jours pour envoyer le rappel
sujet TEXT NOT NULL,
texte TEXT NOT NULL
);
CREATE TABLE rappels_envoyes
-- Enregistrement des rappels envoyés à qui et quand
(
id_membre INTEGER NOT NULL REFERENCES membres (id),
id_rappel INTEGER NOT NULL REFERENCES rappels (id),
date TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
media INTEGER NOT NULL, -- Média utilisé pour le rappel : 1 = email, 2 = courrier, 3 = autre
PRIMARY KEY(id_membre, id_rappel, date)
);
--
-- WIKI
--
CREATE TABLE wiki_pages
-- Pages du wiki
(
|
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
|
compte_debit TEXT, -- N° du compte dans le plan
compte_credit TEXT, -- N° du compte dans le plan
id_exercice INTEGER NULL DEFAULT NULL, -- En cas de compta simple, l'exercice est permanent (NULL)
id_auteur INTEGER NULL,
id_categorie INTEGER NULL, -- Numéro de catégorie (en mode simple)
id_transaction INTEGER NULL, -- Numéro de transaction
FOREIGN KEY(moyen_paiement) REFERENCES compta_moyens_paiement(code),
FOREIGN KEY(compte_debit) REFERENCES compta_comptes(id),
FOREIGN KEY(compte_credit) REFERENCES compta_comptes(id),
FOREIGN KEY(id_exercice) REFERENCES compta_exercices(id),
FOREIGN KEY(id_auteur) REFERENCES membres(id),
FOREIGN KEY(id_categorie) REFERENCES compta_categories(id),
FOREIGN KEY(id_transaction) REFERENCES membres_transactions(id)
);
CREATE INDEX compta_operations_exercice ON compta_journal (id_exercice);
CREATE INDEX compta_operations_date ON compta_journal (date);
CREATE INDEX compta_operations_comptes ON compta_journal (compte_debit, compte_credit);
CREATE INDEX compta_operations_auteur ON compta_journal (id_auteur);
|
<
|
<
|
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
|
compte_debit TEXT, -- N° du compte dans le plan
compte_credit TEXT, -- N° du compte dans le plan
id_exercice INTEGER NULL DEFAULT NULL, -- En cas de compta simple, l'exercice est permanent (NULL)
id_auteur INTEGER NULL,
id_categorie INTEGER NULL, -- Numéro de catégorie (en mode simple)
FOREIGN KEY(moyen_paiement) REFERENCES compta_moyens_paiement(code),
FOREIGN KEY(compte_debit) REFERENCES compta_comptes(id),
FOREIGN KEY(compte_credit) REFERENCES compta_comptes(id),
FOREIGN KEY(id_exercice) REFERENCES compta_exercices(id),
FOREIGN KEY(id_auteur) REFERENCES membres(id),
FOREIGN KEY(id_categorie) REFERENCES compta_categories(id)
);
CREATE INDEX compta_operations_exercice ON compta_journal (id_exercice);
CREATE INDEX compta_operations_date ON compta_journal (date);
CREATE INDEX compta_operations_comptes ON compta_journal (compte_debit, compte_credit);
CREATE INDEX compta_operations_auteur ON compta_journal (id_auteur);
|