Overview
Comment: | Simplifier les positions des comptes (en anglais) |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | dev |
Files: | files | file ages | folders |
SHA1: |
a3648b395f72433989be77dc3972feea |
User & Date: | bohwaz on 2020-04-23 23:02:59 |
Other Links: | branch diff | manifest | tags |
Context
2020-04-23
| ||
23:04 | Widget de simplification de la gestion des boutons avec icône check-in: b9f5fcdd5f user: bohwaz tags: dev | |
23:02 | Simplifier les positions des comptes (en anglais) check-in: a3648b395f user: bohwaz tags: dev | |
23:01 | Ajout nouvelles icônes check-in: 905a51a206 user: bohwaz tags: dev | |
Changes
Modified src/include/data/1.0.0_migration.sql from [aa5bbeff90] to [8ebc7fc41e].
1 2 3 4 5 6 7 8 9 10 11 .. 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 .. 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 |
ALTER TABLE compta_journal RENAME TO compta_journal_old; ALTER TABLE compta_comptes RENAME TO compta_comptes_old; ALTER TABLE compta_categories RENAME TO compta_categories_old; ALTER TABLE compta_exercices RENAME TO compta_exercices_old; ALTER TABLE membres_operations RENAME TO membres_operations_old; ALTER TABLE membres_categories RENAME TO membres_categories_old; DROP TABLE fichiers_compta_journal; -- Inutilisé à ce jour -- N'est pas utilisé DELETE FROM config WHERE cle = 'categorie_dons' OR cle = 'categorie_cotisations'; ................................................................................ INSERT INTO acc_plans (id, country, code, label) VALUES (1, 'FR', 'PCGA1999', 'Plan comptable associatif 1999'); --.read plan_comptable_1999.sql --.read plan_comptable_2020.sql -- Migration comptes de code comme identifiant à ID unique INSERT INTO acc_accounts (id, id_plan, code, parent, label, position, user) SELECT NULL, 1, id, NULL, libelle, position, plan_comptable FROM compta_comptes_old; -- Migration de la hiérarchie UPDATE acc_accounts AS a SET parent = (SELECT id FROM acc_accounts AS b WHERE code = (SELECT parent FROM compta_comptes_old AS c WHERE id = b.code)); -- Migrations projets vers comptes analytiques INSERT INTO acc_accounts (id_plan, code, parent, label, position, user, type) VALUES (1, '99', (SELECT id FROM acc_accounts WHERE code = '9'), 'Projets', 0, 0, 4); INSERT INTO acc_accounts (id_plan, code, parent, label, position, user, type) SELECT 1, '99' || substr('0000' || id, -4), (SELECT id FROM acc_accounts WHERE code = '99'), libelle, 0, 1, 3 FROM compta_projets; -- Migration comptes bancaires UPDATE acc_accounts SET type = 1 WHERE code IN (SELECT id FROM compta_comptes_bancaires); -- Caisse UPDATE acc_accounts SET type = 2 WHERE code = '530'; ................................................................................ -- Bénévolat en nature UPDATE acc_accounts SET type = 5 WHERE code = '870'; -- Recopie des mouvements INSERT INTO acc_transactions (id, label, notes, reference, date, id_year, id_analytical) SELECT id, libelle, remarques, numero_piece, date, id_exercice, CASE WHEN id_projet IS NOT NULL THEN (SELECT id FROM acc_accounts WHERE code = '99' || substr('0000' || id_projet, -4)) ELSE NULL END FROM compta_journal_old; -- Création des lignes associées aux mouvements INSERT INTO acc_transactions_lines (id_transaction, id_account, debit, credit, payment_reference) SELECT id, (SELECT id FROM acc_accounts WHERE code = compte_credit), 0, CAST(montant * 100 AS INT), numero_cheque FROM compta_journal_old; INSERT INTO acc_transactions_lines (id_transaction, id_account, debit, credit, payment_reference) SELECT id, (SELECT id FROM acc_accounts WHERE code = compte_debit), CAST(montant * 100 AS INT), 0, numero_cheque FROM compta_journal_old; -- Recopie des descriptions de catégories dans la table des comptes, et mise des comptes en signets UPDATE acc_accounts SET (type, description) = (SELECT 6, c.description FROM compta_categories_old c WHERE c.id = code) WHERE EXISTS (SELECT rowid FROM compta_categories_old c WHERE c.id = code); -- Recopie des opérations, mais le nom a changé pour "mouvements" INSERT INTO membres_mouvements SELECT * FROM membres_operations_old; -- FIXME: ajout d'entrées dans le le log utilisateur à partir de id_auteur -- Recopie des exercices, mais la date de fin ne peut être nulle INSERT INTO acc_years (id, label, start_date, end_date, closed, id_plan) SELECT id, libelle, debut, CASE WHEN fin IS NULL THEN date(debut, '+1 year') ELSE fin END, cloture, 1 FROM compta_exercices_old; -- Recopie des catégories, on supprime la colonne id_cotisation_obligatoire INSERT INTO membres_categories SELECT id, nom, droit_wiki, droit_membres, droit_compta, droit_inscription, droit_connexion, droit_config, cacher FROM membres_categories_old; DROP TABLE compta_journal_old; DROP TABLE membres_operations_old; DROP TABLE compta_categories_old; DROP TABLE compta_comptes_old; DROP TABLE compta_exercices_old; -- Transfert des rapprochements UPDATE acc_transactions_lines SET reconcilied = 1 WHERE id_transaction IN (SELECT id_operation FROM compta_rapprochement); -- Suppression de la table rapprochements DROP TABLE compta_rapprochement; -- Suppression inutilisées DROP TABLE compta_projets; DROP TABLE compta_comptes_bancaires; DROP TABLE compta_moyens_paiement; |
< < < < | | | > > > > > > > | | | | | | | < | | | > |
1 2 3 4 5 6 7 .. 13 14 15 16 17 18 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 .. 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 |
ALTER TABLE membres_operations RENAME TO membres_operations_old; ALTER TABLE membres_categories RENAME TO membres_categories_old; DROP TABLE fichiers_compta_journal; -- Inutilisé à ce jour -- N'est pas utilisé DELETE FROM config WHERE cle = 'categorie_dons' OR cle = 'categorie_cotisations'; ................................................................................ INSERT INTO acc_plans (id, country, code, label) VALUES (1, 'FR', 'PCGA1999', 'Plan comptable associatif 1999'); --.read plan_comptable_1999.sql --.read plan_comptable_2020.sql -- Migration comptes de code comme identifiant à ID unique INSERT INTO acc_accounts (id, id_plan, code, parent, label, position, user) SELECT NULL, 1, id, NULL, libelle, position, CASE WHEN plan_comptable = 1 THEN 0 ELSE 1 END FROM compta_comptes; -- Migration de la hiérarchie UPDATE acc_accounts AS a SET parent = (SELECT id FROM acc_accounts AS b WHERE code = (SELECT parent FROM compta_comptes AS c WHERE id = b.code)); -- Migrations projets vers comptes analytiques INSERT INTO acc_accounts (id_plan, code, parent, label, position, user, type) VALUES (1, '99', (SELECT id FROM acc_accounts WHERE code = '9'), 'Projets', 0, 1, 4); INSERT INTO acc_accounts (id_plan, code, parent, label, position, user, type) SELECT 1, '99' || substr('0000' || id, -4), (SELECT id FROM acc_accounts WHERE code = '99'), libelle, 0, 1, 3 FROM compta_projets; -- Suppression des positions "actif ou passif" et "charge ou produit" UPDATE acc_accounts SET position = 0 WHERE position = 3 OR position = 12; -- Modification des valeurs de la position (qui n'est plus un champ binaire) UPDATE acc_accounts SET position = 3 WHERE position = 4; UPDATE acc_accounts SET position = 4 WHERE position = 8; -- Migration comptes bancaires UPDATE acc_accounts SET type = 1 WHERE code IN (SELECT id FROM compta_comptes_bancaires); -- Caisse UPDATE acc_accounts SET type = 2 WHERE code = '530'; ................................................................................ -- Bénévolat en nature UPDATE acc_accounts SET type = 5 WHERE code = '870'; -- Recopie des mouvements INSERT INTO acc_transactions (id, label, notes, reference, date, id_year, id_analytical) SELECT id, libelle, remarques, numero_piece, date, id_exercice, CASE WHEN id_projet IS NOT NULL THEN (SELECT id FROM acc_accounts WHERE code = '99' || substr('0000' || id_projet, -4)) ELSE NULL END FROM compta_journal; -- Création des lignes associées aux mouvements INSERT INTO acc_transactions_lines (id_transaction, id_account, debit, credit, payment_reference) SELECT id, (SELECT id FROM acc_accounts WHERE code = compte_credit), 0, CAST(montant * 100 AS INT), numero_cheque FROM compta_journal; INSERT INTO acc_transactions_lines (id_transaction, id_account, debit, credit, payment_reference) SELECT id, (SELECT id FROM acc_accounts WHERE code = compte_debit), CAST(montant * 100 AS INT), 0, numero_cheque FROM compta_journal; -- Recopie des descriptions de catégories dans la table des comptes, et mise des comptes en signets UPDATE acc_accounts SET type = 6, description = (SELECT description FROM compta_categories WHERE compte = acc_accounts.code) WHERE id IN (SELECT a.id FROM acc_accounts a INNER JOIN compta_categories c ON c.compte = a.code); -- Recopie des opérations, mais le nom a changé pour "mouvements" INSERT INTO membres_mouvements SELECT * FROM membres_operations_old; -- FIXME: ajout d'entrées dans le le log utilisateur à partir de id_auteur -- Recopie des exercices, mais la date de fin ne peut être nulle INSERT INTO acc_years (id, label, start_date, end_date, closed, id_plan) SELECT id, libelle, debut, CASE WHEN fin IS NULL THEN date(debut, '+1 year') ELSE fin END, cloture, 1 FROM compta_exercices; -- Recopie des catégories, on supprime la colonne id_cotisation_obligatoire INSERT INTO membres_categories SELECT id, nom, droit_wiki, droit_membres, droit_compta, droit_inscription, droit_connexion, droit_config, cacher FROM membres_categories_old; DROP TABLE compta_journal; DROP TABLE compta_categories; DROP TABLE compta_comptes; DROP TABLE compta_exercices; DROP TABLE membres_operations_old; -- Transfert des rapprochements UPDATE acc_transactions_lines SET reconcilied = 1 WHERE id_transaction IN (SELECT id_operation FROM compta_rapprochement); -- Suppression de la table rapprochements DROP TABLE compta_rapprochement; -- Suppression inutilisées DROP TABLE compta_projets; DROP TABLE compta_comptes_bancaires; DROP TABLE compta_moyens_paiement; |
Modified src/include/lib/Garradin/Entities/Accounting/Account.php from [fdf2bec7a9] to [402ab193cd].
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
..
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
use Garradin\Utils; use Garradin\UserException; class Account extends Entity { const TABLE = 'acc_accounts'; const PASSIF = 1; const ACTIF = 2; const ACTIF_PASSIF = 3; const PRODUIT = 4; const CHARGE = 8; const PRODUIT_CHARGE = 12; const POSITIONS_NAMES = [ '', 1 => 'Passif', 2 => 'Actif', 3 => 'Actif ou passif', 4 => 'Produit', 8 => 'Charge', 12 => 'Produit ou charge', ]; const TYPE_NONE = 0; const TYPE_BANK = 1; const TYPE_CASH = 2; /** ................................................................................ 'position' => 'int', 'type' => 'int', 'user' => 'int', ]; protected $_validation_rules = [ 'id_plan' => 'required|integer|in_table:acc_plans,id', 'code' => 'required|string|alpha_num', 'label' => 'required|string|max:200', 'description' => 'string|max:2000', 'parent' => 'required|nullable|integer|in_table:acc_accounts,id', 'position' => 'required|integer', 'type' => 'required|integer', 'user' => 'integer|min:0|max:1', ]; } |
|
|
<
<
>
|
>
|
>
>
>
>
|
|
<
|
|
<
|
|
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
..
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
use Garradin\Utils; use Garradin\UserException; class Account extends Entity { const TABLE = 'acc_accounts'; // Passif const LIABILITY = 1; // Actif const ASSET = 2; // Produit const REVENUE = 3; // Charge const EXPENSE = 4; const POSITIONS_NAMES = [ '', 'Passif', 'Actif', 'Produit', 'Charge', ]; const TYPE_NONE = 0; const TYPE_BANK = 1; const TYPE_CASH = 2; /** ................................................................................ 'position' => 'int', 'type' => 'int', 'user' => 'int', ]; protected $_validation_rules = [ 'id_plan' => 'required|integer|in_table:acc_plans,id', 'code' => 'required|string|alpha_num|max:8', 'label' => 'required|string|max:200', 'description' => 'string|max:2000', 'parent' => 'required|nullable|integer|in_table:acc_accounts,id', 'position' => 'required|integer', 'type' => 'required|integer', 'user' => 'integer|min:0|max:1', ]; } |