1 DROP TABLE compta_exercices
;
3 CREATE TABLE compta_exercices
6 id INTEGER PRIMARY KEY,
10 debut
TEXT NOT NULL DEFAULT CURRENT_DATE,
11 fin
TEXT NULL DEFAULT NULL,
13 cloture
INTEGER NOT NULL DEFAULT 0
16 INSERT INTO compta_exercices (libelle
, debut
, fin
, cloture
)
20 (SELECT strftime('%Y-01-01', date) FROM compta_journal
ORDER BY date ASC LIMIT 1)
21 IS NOT NULL THEN (SELECT strftime('%Y-01-01', date) FROM compta_journal
ORDER BY date ASC LIMIT 1)
22 ELSE strftime('%Y-01-01', 'now') END
25 (SELECT strftime('%Y-12-31', date) FROM compta_journal
ORDER BY date DESC LIMIT 1)
26 IS NOT NULL THEN (SELECT strftime('%Y-12-31', date) FROM compta_journal
ORDER BY date DESC LIMIT 1)
27 ELSE strftime('%Y-12-31', 'now') END
33 ALTER TABLE compta_journal
RENAME TO old_compta_journal
;
34 DROP INDEX compta_operations_exercice
;
35 DROP INDEX compta_operations_date
;
36 DROP INDEX compta_operations_comptes
;
37 DROP INDEX compta_operations_auteur
;
39 CREATE TABLE compta_journal
40 -- Journal des opérations comptables
42 id INTEGER PRIMARY KEY,
44 libelle
TEXT NOT NULL,
46 numero_piece
TEXT, -- N° de pièce comptable
50 date TEXT DEFAULT CURRENT_DATE,
51 moyen_paiement
TEXT DEFAULT NULL,
52 numero_cheque
TEXT DEFAULT NULL,
54 compte_debit
INTEGER, -- N° du compte dans le plan
55 compte_credit
INTEGER, -- N° du compte dans le plan
57 id_exercice
INTEGER NULL DEFAULT NULL, -- En cas de compta simple, l'exercice est permanent (NULL)
58 id_auteur
INTEGER NULL,
59 id_categorie
INTEGER NULL, -- Numéro de catégorie (en mode simple)
61 FOREIGN KEY(moyen_paiement
) REFERENCES compta_moyens_paiement(code
),
62 FOREIGN KEY(compte_debit
) REFERENCES compta_comptes(id),
63 FOREIGN KEY(compte_credit
) REFERENCES compta_comptes(id),
64 FOREIGN KEY(id_exercice
) REFERENCES compta_exercices(id),
65 FOREIGN KEY(id_auteur
) REFERENCES membres(id),
66 FOREIGN KEY(id_categorie
) REFERENCES compta_categories(id)
69 CREATE INDEX compta_operations_exercice
ON compta_journal (id_exercice
);
70 CREATE INDEX compta_operations_date
ON compta_journal (date);
71 CREATE INDEX compta_operations_comptes
ON compta_journal (compte_debit
, compte_credit
);
72 CREATE INDEX compta_operations_auteur
ON compta_journal (id_auteur
);
74 INSERT INTO compta_journal
SELECT * FROM old_compta_journal
;
76 UPDATE compta_journal
SET id_exercice
= 1;
78 DROP TABLE old_compta_journal
;