BEGIN;

INSERT INTO companies (
  name,
  nif,
  rc,
  address,
  city,
  phone,
  email,
  currency,
  fiscal_year_start
)
VALUES (
  'Atlas Industrie Algerie',
  '000000000000000',
  '16B0000000',
  'Zone industrielle Rouiba, Lot 24',
  'Alger',
  '+213 21 00 00 00',
  'finance@atlas-industrie.dz',
  'DZD',
  DATE '2026-01-01'
)
ON CONFLICT (nif) DO UPDATE
SET
  name = EXCLUDED.name,
  rc = EXCLUDED.rc,
  address = EXCLUDED.address,
  city = EXCLUDED.city,
  phone = EXCLUDED.phone,
  email = EXCLUDED.email,
  currency = EXCLUDED.currency,
  fiscal_year_start = EXCLUDED.fiscal_year_start;

WITH seed_company AS (
  SELECT id
  FROM companies
  WHERE nif = '000000000000000'
)
INSERT INTO fiscal_years (
  company_id,
  label,
  start_date,
  end_date,
  is_closed,
  is_current
)
SELECT
  seed_company.id,
  'Exercice 2026',
  DATE '2026-01-01',
  DATE '2026-12-31',
  FALSE,
  TRUE
FROM seed_company
ON CONFLICT (company_id, label) DO UPDATE
SET
  start_date = EXCLUDED.start_date,
  end_date = EXCLUDED.end_date,
  is_closed = EXCLUDED.is_closed,
  is_current = EXCLUDED.is_current;

WITH seed_company AS (
  SELECT id
  FROM companies
  WHERE nif = '000000000000000'
),
seed_fiscal_year AS (
  SELECT id, company_id
  FROM fiscal_years
  WHERE company_id = (SELECT id FROM seed_company)
    AND label = 'Exercice 2026'
)
INSERT INTO accounting_periods (
  fiscal_year_id,
  company_id,
  month,
  year,
  is_closed,
  closed_at,
  closed_by
)
SELECT
  seed_fiscal_year.id,
  seed_fiscal_year.company_id,
  periods.month,
  periods.year,
  FALSE,
  NULL,
  NULL
FROM seed_fiscal_year
CROSS JOIN (
  VALUES
    (1, 2026),
    (2, 2026),
    (3, 2026),
    (4, 2026),
    (5, 2026),
    (6, 2026),
    (7, 2026),
    (8, 2026),
    (9, 2026),
    (10, 2026),
    (11, 2026),
    (12, 2026)
) AS periods(month, year)
ON CONFLICT (fiscal_year_id, month, year) DO UPDATE
SET
  is_closed = EXCLUDED.is_closed,
  closed_at = EXCLUDED.closed_at,
  closed_by = EXCLUDED.closed_by;

WITH seed_company AS (
  SELECT id
  FROM companies
  WHERE nif = '000000000000000'
)
INSERT INTO users (
  email,
  password_hash,
  full_name,
  role,
  company_id,
  allowed_modules,
  default_module,
  is_active,
  last_login
)
SELECT
  'amina.meziane@atlas.dz',
  '$2a$12$qVyjiVCC9YRVi1mmmrHu5.5pJApWC3LlAjB88xE/Z.P97c8OFLUdC',
  'Amina Meziane',
  'chief_accountant',
  seed_company.id,
  ARRAY['SCF']::TEXT[],
  'SCF',
  TRUE,
  CURRENT_TIMESTAMP
FROM seed_company
ON CONFLICT (email) DO UPDATE
SET
  password_hash = EXCLUDED.password_hash,
  full_name = EXCLUDED.full_name,
  role = EXCLUDED.role,
  company_id = EXCLUDED.company_id,
  allowed_modules = EXCLUDED.allowed_modules,
  default_module = EXCLUDED.default_module,
  is_active = EXCLUDED.is_active;

WITH seed_company AS (
  SELECT id
  FROM companies
  WHERE nif = '000000000000000'
)
INSERT INTO users (
  email,
  password_hash,
  full_name,
  role,
  company_id,
  allowed_modules,
  default_module,
  is_active,
  last_login
)
SELECT
  'admin@atlas.dz',
  '$2a$12$qVyjiVCC9YRVi1mmmrHu5.5pJApWC3LlAjB88xE/Z.P97c8OFLUdC',
  'Administrateur SCF',
  'super_admin',
  seed_company.id,
  ARRAY['SCF', 'MGX']::TEXT[],
  'SCF',
  TRUE,
  CURRENT_TIMESTAMP
FROM seed_company
ON CONFLICT (email) DO UPDATE
SET
  password_hash = EXCLUDED.password_hash,
  full_name = EXCLUDED.full_name,
  role = EXCLUDED.role,
  company_id = EXCLUDED.company_id,
  allowed_modules = EXCLUDED.allowed_modules,
  default_module = EXCLUDED.default_module,
  is_active = EXCLUDED.is_active;

WITH seeded_users AS (
  SELECT id, company_id
  FROM users
  WHERE email IN ('amina.meziane@atlas.dz', 'admin@atlas.dz')
    AND company_id IS NOT NULL
)
INSERT INTO user_companies (user_id, company_id)
SELECT id, company_id
FROM seeded_users
ON CONFLICT (user_id, company_id) DO NOTHING;

WITH seed_company AS (
  SELECT id
  FROM companies
  WHERE nif = '000000000000000'
)
INSERT INTO account_classes (company_id, code, label)
SELECT
  seed_company.id,
  data.code,
  data.label
FROM seed_company
CROSS JOIN (
  VALUES
    ('1', 'Capitaux, provisions et dettes financieres'),
    ('2', 'Immobilisations'),
    ('3', 'Stocks et en-cours'),
    ('4', 'Tiers'),
    ('5', 'Tresorerie'),
    ('6', 'Charges'),
    ('7', 'Produits')
) AS data(code, label)
ON CONFLICT (company_id, code) DO UPDATE
SET label = EXCLUDED.label;

WITH seed_company AS (
  SELECT id
  FROM companies
  WHERE nif = '000000000000000'
),
seed_account_data (code, label, account_type, is_movable, is_auxiliary, balance_normal_side) AS (
  VALUES
    ('1', 'COMPTES DE CAPITAUX', 'liability', FALSE, FALSE, 'credit'),
    ('10', 'Capital, réserves et assimilés', 'equity', FALSE, FALSE, 'credit'),
    ('101', 'Capital émis ou capital social ou fonds de dotation, ou fonds d''exploitation', 'equity', FALSE, FALSE, 'credit'),
    ('101000', 'Capital émis ou capital social ou fonds de dotation, ou fonds d''exploitation', 'equity', TRUE, FALSE, 'credit'),
    ('103', 'Primes liées au capital social', 'equity', TRUE, FALSE, 'credit'),
    ('104', 'Ecart d''évaluation', 'equity', TRUE, FALSE, 'credit'),
    ('105', 'Ecart de réévaluation', 'equity', TRUE, FALSE, 'credit'),
    ('106', 'Réserves (légale, statutaire, ordinaire, réglementée)', 'equity', TRUE, FALSE, 'credit'),
    ('107', 'Ecart d''équivalence', 'equity', TRUE, FALSE, 'credit'),
    ('108', 'Compte de l''exploitant', 'equity', TRUE, FALSE, 'credit'),
    ('109', 'Capital souscrit non appelé', 'asset', FALSE, FALSE, 'debit'),
    ('109000', 'Capital souscrit non appelé', 'asset', TRUE, FALSE, 'debit'),
    ('11', 'Report à nouveau', 'equity', FALSE, FALSE, 'credit'),
    ('110000', 'REPORT A NOUVEAU DEFICITAIR', 'asset', TRUE, FALSE, 'debit'),
    ('12', 'Résultat de l''exercice', 'equity', FALSE, FALSE, 'credit'),
    ('120000', 'RESULTAT DE L''EXERCICE', 'equity', TRUE, FALSE, 'credit'),
    ('13', 'Produits et charges différés - hors cycle d''exploitation', 'liability', FALSE, FALSE, 'credit'),
    ('131', 'Subventions d''équipement', 'liability', TRUE, FALSE, 'credit'),
    ('132', 'Autres subventions d''investissements', 'liability', TRUE, FALSE, 'credit'),
    ('133', 'Impôts différés actif', 'asset', TRUE, FALSE, 'debit'),
    ('134', 'Impôts différés passif', 'liability', TRUE, FALSE, 'credit'),
    ('138', 'Autres produits et charges différés', 'liability', TRUE, FALSE, 'credit'),
    ('14', '(Disponible)', 'liability', TRUE, FALSE, 'credit'),
    ('15', 'Provisions pour charges - passifs non courants', 'liability', FALSE, FALSE, 'credit'),
    ('153', 'Provisions pour pensions et obligations similaires', 'liability', TRUE, FALSE, 'credit'),
    ('155', 'Provisions pour impôts', 'liability', TRUE, FALSE, 'credit'),
    ('156', 'Provisions pour renouvellement des immobilisations (concession)', 'liability', TRUE, FALSE, 'credit'),
    ('158', 'Autres provisions pour charges - passifs non courants', 'liability', TRUE, FALSE, 'credit'),
    ('16', 'Emprunts et dettes assimilés', 'liability', FALSE, FALSE, 'credit'),
    ('161', 'Titres participatifs', 'liability', TRUE, FALSE, 'credit'),
    ('162', 'Emprunts obligataires convertibles', 'liability', TRUE, FALSE, 'credit'),
    ('163', 'Autres emprunts obligataires', 'liability', TRUE, FALSE, 'credit'),
    ('164', 'Emprunts auprès des établissements de crédit', 'liability', TRUE, FALSE, 'credit'),
    ('165', 'Dépôts et cautionnements reçus', 'liability', TRUE, FALSE, 'credit'),
    ('167', 'Dettes sur contrat de location-financement', 'liability', TRUE, FALSE, 'credit'),
    ('168', 'Autres emprunts et dettes assimilés', 'liability', FALSE, FALSE, 'credit'),
    ('168000', 'Autres emprunts et dettes assimilés', 'liability', TRUE, FALSE, 'credit'),
    ('169', 'Primes de remboursement des obligations', 'liability', TRUE, FALSE, 'credit'),
    ('17', 'Dettes rattachées à des participations', 'liability', FALSE, FALSE, 'credit'),
    ('171', 'Dettes rattachées à des participations groupe', 'liability', TRUE, FALSE, 'credit'),
    ('172', 'Dettes rattachées à des participations hors groupe', 'liability', TRUE, FALSE, 'credit'),
    ('173', 'Dettes rattachées à des sociétés en participation', 'liability', TRUE, FALSE, 'credit'),
    ('178', 'Autres dettes rattachées à des participations', 'liability', TRUE, FALSE, 'credit'),
    ('18', 'Comptes de liaison des établissements et sociétés en participation', 'liability', FALSE, FALSE, 'credit'),
    ('181', 'Comptes de liaison entre établissements', 'liability', TRUE, FALSE, 'credit'),
    ('188', 'Comptes de liaison entre sociétés en participation', 'liability', TRUE, FALSE, 'credit'),
    ('19', '(Disponible)', 'liability', TRUE, FALSE, 'credit'),
    ('2', 'COMPTES D''IMMOBILISATIONS', 'fixed_asset', FALSE, FALSE, 'debit'),
    ('20', 'Immobilisations incorporelles', 'fixed_asset', FALSE, FALSE, 'debit'),
    ('203', 'Frais de développement immobilisables', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('204', 'Logiciels informatiques et assimilés', 'fixed_asset', FALSE, FALSE, 'debit'),
    ('204000', 'Logiciels informatiques et assimilés', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('205', 'Concessions et droits similaires, brevets, licences, marques', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('207', 'Ecart d''acquisition', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('208', 'Autres immobilisations incorporelles', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('21', 'Immobilisations corporelles', 'fixed_asset', FALSE, FALSE, 'debit'),
    ('211', 'Terrains', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('212', 'Agencements et aménagements de terrain', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('213', 'Constructions', 'fixed_asset', FALSE, FALSE, 'debit'),
    ('2130', 'Bâtiments industriels', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('2131', 'Bâtiments commerciaux', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('2132', 'Bâtiments sociaux', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('215', 'Installations techniques, matériel et outillage industriels', 'fixed_asset', FALSE, FALSE, 'debit'),
    ('2151', 'Installations complexes', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('2152', 'Matériel et outillage', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('218', 'Autres immobilisations corporelles', 'fixed_asset', FALSE, FALSE, 'debit'),
    ('218000', 'MATERIEL DE TRANSPORT', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('218100', 'MOBILIER DE BUREAU', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('218200', 'MATERIEL INFORMATIQUE', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('218300', 'MATERIEL DE COMMUNICATION', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('218400', 'TRANSPALETTE', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('218600', 'PALETTE', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('22', 'Immobilisations en concession', 'fixed_asset', FALSE, FALSE, 'debit'),
    ('221', 'Terrains en concession', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('222', 'Agencements et aménagements de terrain en concession', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('223', 'Constructions en concession', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('225', 'Installations techniques en concession', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('228', 'Autres immobilisations corporelles en concession', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('229', 'Droits du concédant', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('23', 'Immobilisations en cours', 'fixed_asset', FALSE, FALSE, 'debit'),
    ('232', 'Immobilisations corporelles en cours', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('237', 'Immobilisations incorporelles en cours', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('238', 'Avances et acomptes versés sur commandes d''immobilisations', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('24', '(Disponible)', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('25', '(Disponible)', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('26', 'Participations et créances rattachées à des participations', 'fixed_asset', FALSE, FALSE, 'debit'),
    ('261', 'Titres de filiales', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('262', 'Autres titres de participation', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('265', 'Titres de participation évalués par équivalence (entreprises associées)', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('266', 'Créances rattachées à des participations groupe', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('267', 'Créances rattachées à des participations hors groupe', 'fixed_asset', FALSE, FALSE, 'debit'),
    ('267000', 'Créances rattachées à des participations hors groupe', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('268', 'Créances rattachées à des sociétés en participation', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('269', 'Versements restant à effectuer sur titres de participation non libérés', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('27', 'Autres immobilisations financières', 'fixed_asset', FALSE, FALSE, 'debit'),
    ('271', 'Titres immobilisés autres que les titres immobilisés de l''activité de portefeuille', 'fixed_asset', FALSE, FALSE, 'debit'),
    ('271000', 'ACTION BDL', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('272', 'Titres représentatifs de droit de créance (obligations, bons)', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('273', 'Titres immobilisés de l''activité de portefeuille', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('274', 'Prêts et créances sur contrat de location - financement', 'fixed_asset', FALSE, FALSE, 'debit'),
    ('274000', 'PRET SOCIAL', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('275', 'Dépôts et cautionnements versés', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('276', 'Autres créances immobilisées', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('279', 'Versements restant à effectuer sur titres immobilisés non libérés', 'fixed_asset', TRUE, FALSE, 'debit'),
    ('28', 'Amortissement des immobilisations', 'fixed_asset', FALSE, FALSE, 'credit'),
    ('280', 'Amortissement des immobilisations incorporelles', 'fixed_asset', FALSE, FALSE, 'credit'),
    ('2803', 'Amortissement des frais de recherche et développement immobilisables', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('2804', 'Amortissement des logiciels informatiques et assimilés', 'fixed_asset', FALSE, FALSE, 'credit'),
    ('280400', 'Amort Logiciel et assimiles', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('2805', 'Amortissement concessions et droits similaires, brevets, licences, marques', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('2807', 'Amortissement écart d''acquisition (goodwill)', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('2808', 'Amortissement autres immobilisations incorporelles', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('281', 'Amortissement des immobilisations corporelles', 'fixed_asset', FALSE, FALSE, 'credit'),
    ('281000', 'Amort materiel de transport', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('281100', 'AMORTISSEMENT MOBILIER DE BUREAU', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('2812', 'Amortissement agencements et aménagements de terrain', 'fixed_asset', FALSE, FALSE, 'credit'),
    ('281200', 'AMORT MATERIEL INFORMATIQUE', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('2813', 'Amortissement constructions', 'fixed_asset', FALSE, FALSE, 'credit'),
    ('28130', 'Amort. Bâtiments', 'fixed_asset', FALSE, FALSE, 'credit'),
    ('281300', 'MATERIEL DE COMMUNICATION', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('28131', 'Amort. Ouvrages d''infrastructure', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('28132', 'Amort. Equipements sociaux', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('281400', 'AMORT TRANSPALETTE', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('2815', 'Amortissement installations techniques', 'fixed_asset', FALSE, FALSE, 'credit'),
    ('28151', 'Amort. Installations complexes', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('28152', 'Amort. Matériel et outillage', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('281600', 'AMORTISSEMENT PALETTES', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('2818', 'Amortissement autres immobilisations corporelles', 'fixed_asset', FALSE, FALSE, 'credit'),
    ('28181', 'Amort. Matériel de transport', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('28182', 'Amort. Des équipements de bureau et de communication', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('28183', 'Amort. Emballages récupérables', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('28184', 'Amort. Des agencements et installations', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('28185', 'Amort. Equipements sociaux matériel', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('28186', 'Amort. Equipements sociaux mobilier & équipements ménagers', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('28187', 'Amort. Equipements sociaux aménagement', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('282', 'Amortissement des immobilisations mises en concession', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('29', 'Pertes de valeur sur immobilisations', 'fixed_asset', FALSE, FALSE, 'credit'),
    ('290', 'Pertes de valeur sur immobilisations incorporelles', 'fixed_asset', FALSE, FALSE, 'credit'),
    ('2903', 'Pertes de valeur sur frais de recherche et développement immobilisables', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('2904', 'Pertes de valeur sur logiciels informatiques et assimilés', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('2905', 'Pertes de valeur sur concessions et droits similaires, brevets, licences, marques', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('2907', 'Pertes de valeur sur écart d''acquisition', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('2908', 'Pertes de valeur sur autres immobilisations incorporelles', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('291', 'Pertes de valeur sur immobilisations corporelles', 'fixed_asset', FALSE, FALSE, 'credit'),
    ('2912', 'Pertes de valeur sur agencements et aménagements de terrain', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('2913', 'Pertes de valeur sur constructions', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('2915', 'Pertes de valeur sur installations techniques', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('2918', 'Pertes de valeur sur autres immobilisations corporelles', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('292', 'Pertes de valeur sur immobilisations mises en concession', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('293', 'Pertes de valeur sur immobilisations encours', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('296', 'Pertes de valeur sur participations et créances rattachées à participations', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('297', 'Pertes de valeur sur autres titres immobilisés', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('298', 'Pertes de valeur sur autres actifs financiers immobilisés', 'fixed_asset', TRUE, FALSE, 'credit'),
    ('3', 'COMPTES DE STOCKS ET ENCOURS', 'inventory', FALSE, FALSE, 'debit'),
    ('30', 'Stocks de marchandises', 'inventory', FALSE, FALSE, 'debit'),
    ('300000', 'MARCHANDISE STOCKE 19 % MESS', 'inventory', TRUE, FALSE, 'debit'),
    ('300001', 'MARCHANDISES STOCKE 19% KERMA', 'inventory', TRUE, FALSE, 'debit'),
    ('300100', 'MARCHANDISE STOCKS 0 % MESS', 'inventory', TRUE, FALSE, 'debit'),
    ('300101', 'MARCHANDISES STOCKES 0% KERMA', 'inventory', TRUE, FALSE, 'debit'),
    ('300200', 'STOCK THON MESSEREGUINE', 'inventory', TRUE, FALSE, 'debit'),
    ('300201', 'STOCK THON EL KERMA', 'inventory', TRUE, FALSE, 'debit'),
    ('31', 'Matières premières et fournitures', 'inventory', TRUE, FALSE, 'debit'),
    ('32', 'Autres approvisionnements', 'inventory', FALSE, FALSE, 'debit'),
    ('321', 'Matières consommables', 'inventory', TRUE, FALSE, 'debit'),
    ('322', 'Fournitures consommables', 'inventory', TRUE, FALSE, 'debit'),
    ('326', 'Emballages', 'inventory', TRUE, FALSE, 'debit'),
    ('33', 'En cours de production de biens', 'inventory', FALSE, FALSE, 'debit'),
    ('331', 'Produits en cours', 'inventory', TRUE, FALSE, 'debit'),
    ('335', 'Travaux en cours', 'inventory', TRUE, FALSE, 'debit'),
    ('34', 'Encours de production de services', 'inventory', FALSE, FALSE, 'debit'),
    ('341', 'Etudes en cours', 'inventory', TRUE, FALSE, 'debit'),
    ('345', 'Prestations de services en cours', 'inventory', TRUE, FALSE, 'debit'),
    ('35', 'Stocks de produits', 'inventory', FALSE, FALSE, 'debit'),
    ('351', 'Produits intermédiaires', 'inventory', TRUE, FALSE, 'debit'),
    ('355', 'Produits finis', 'inventory', TRUE, FALSE, 'debit'),
    ('358', 'Produits résiduels ou matières de récupération (déchets, rebuts)', 'inventory', TRUE, FALSE, 'debit'),
    ('36', 'Stocks provenant d''immobilisations', 'inventory', TRUE, FALSE, 'debit'),
    ('37', 'Stocks à l''extérieur (en cours de route, en dépôt ou en consignation)', 'inventory', TRUE, FALSE, 'debit'),
    ('38', 'Achats stockés', 'inventory', FALSE, FALSE, 'debit'),
    ('380', 'Marchandises stockées', 'inventory', FALSE, FALSE, 'debit'),
    ('380000', 'ACHATS STOCKES', 'inventory', TRUE, FALSE, 'debit'),
    ('381', 'Matières premières et fournitures stockées', 'inventory', TRUE, FALSE, 'debit'),
    ('382', 'Autres approvisionnements stockés', 'inventory', TRUE, FALSE, 'debit'),
    ('39', 'Pertes de valeur sur stocks et encours', 'inventory', FALSE, FALSE, 'credit'),
    ('390', 'Pertes de valeur sur stocks de marchandises', 'inventory', TRUE, FALSE, 'credit'),
    ('391', 'Pertes de valeur sur matières premières et fournitures', 'inventory', TRUE, FALSE, 'credit'),
    ('392', 'Pertes de valeur sur autres approvisionnements', 'inventory', TRUE, FALSE, 'credit'),
    ('393', 'Pertes de valeur sur en-cours de production de biens', 'inventory', TRUE, FALSE, 'credit'),
    ('394', 'Pertes de valeur sur en-cours de production de services', 'inventory', TRUE, FALSE, 'credit'),
    ('395', 'Pertes de valeur sur stocks de produits', 'inventory', TRUE, FALSE, 'credit'),
    ('397', 'Pertes de valeur sur stocks à l''extérieur', 'inventory', TRUE, FALSE, 'credit'),
    ('4', 'COMPTES DE TIERS', 'third_party', FALSE, FALSE, 'debit'),
    ('40', 'Fournisseurs et comptes rattachés', 'third_party', FALSE, FALSE, 'credit'),
    ('401', 'Fournisseurs de stocks et services', 'third_party', FALSE, TRUE, 'credit'),
    ('401200', 'FOURNISSEURS ESPECES', 'third_party', TRUE, TRUE, 'credit'),
    ('401300', 'FOURNISSEURS DE STOCKS', 'third_party', TRUE, TRUE, 'credit'),
    ('401600', 'PRESTATAIRES DE SERVICES', 'third_party', TRUE, TRUE, 'credit'),
    ('403', 'Fournisseurs, effets à payer', 'third_party', TRUE, TRUE, 'credit'),
    ('404', 'Fournisseurs d''immobilisations', 'third_party', FALSE, TRUE, 'credit'),
    ('404000', 'FOURNISSSEURS D''IMMOBILISATIONS', 'third_party', TRUE, TRUE, 'credit'),
    ('405', 'Fournisseurs d''immobilisations, effets à payer', 'third_party', TRUE, TRUE, 'credit'),
    ('408', 'Fournisseurs factures non parvenues', 'third_party', FALSE, TRUE, 'credit'),
    ('408000', 'Fournisseurs factures non parvenues', 'third_party', TRUE, TRUE, 'credit'),
    ('409', 'Fournisseurs - débiteurs : avances et acomptes versés, RRR à obtenir, autres créances', 'third_party', FALSE, TRUE, 'credit'),
    ('409000', 'Fournisseurs - débiteurs : avances et acomptes versés, RRR à obtenir, autres créances', 'third_party', TRUE, TRUE, 'credit'),
    ('41', 'Clients et comptes rattachés', 'third_party', FALSE, FALSE, 'debit'),
    ('411', 'Clients', 'third_party', FALSE, TRUE, 'debit'),
    ('411000', 'CLIENTS GROS', 'third_party', TRUE, TRUE, 'debit'),
    ('411100', 'CLIENTS SOCIETES MESSEREGUINE', 'third_party', TRUE, TRUE, 'debit'),
    ('411200', 'CLIENTS GROS EL KERMA', 'third_party', TRUE, TRUE, 'debit'),
    ('411300', 'CLIENTS SOCIETES EL KERMA', 'third_party', TRUE, TRUE, 'debit'),
    ('412', 'Clients Retenus de garantie', 'third_party', TRUE, TRUE, 'debit'),
    ('413', 'Clients, effets à recevoir', 'third_party', TRUE, TRUE, 'debit'),
    ('416', 'Clients douteux', 'third_party', TRUE, TRUE, 'debit'),
    ('417', 'Créances sur travaux ou prestations en cours', 'third_party', TRUE, TRUE, 'debit'),
    ('418', 'Clients - produits non encore facturés', 'third_party', TRUE, TRUE, 'debit'),
    ('419', 'Clients créditeurs, avances reçues, RRR à accorder et autres avoirs à établir', 'third_party', TRUE, TRUE, 'debit'),
    ('42', 'Personnel et comptes rattachés', 'third_party', FALSE, FALSE, 'debit'),
    ('421', 'Personnel, rémunérations dues', 'third_party', FALSE, FALSE, 'credit'),
    ('421000', 'SALAIRES', 'third_party', TRUE, FALSE, 'credit'),
    ('421100', 'STC', 'third_party', TRUE, FALSE, 'credit'),
    ('422', 'Fonds des ''uvres sociales', 'third_party', TRUE, FALSE, 'credit'),
    ('423', 'Participation des salariés au résultat', 'third_party', TRUE, FALSE, 'debit'),
    ('425', 'Personnel, avances et acomptes accordés', 'third_party', FALSE, FALSE, 'debit'),
    ('425000', 'AVANCE SUR SALAIRE', 'third_party', TRUE, FALSE, 'debit'),
    ('425100', 'PRETS SOCIAUX', 'third_party', TRUE, FALSE, 'debit'),
    ('426', 'Personnel, dépôts reçus', 'third_party', TRUE, FALSE, 'debit'),
    ('427', 'Personnel, oppositions sur salaires', 'third_party', TRUE, FALSE, 'debit'),
    ('428', 'Personnel, charges à payer et produits à recevoir', 'third_party', TRUE, FALSE, 'credit'),
    ('43', 'Organismes sociaux et comptes rattachés', 'third_party', FALSE, FALSE, 'credit'),
    ('431', 'Sécurité sociale', 'third_party', FALSE, FALSE, 'credit'),
    ('431000', 'COTISATION CNAS 26%', 'third_party', TRUE, FALSE, 'credit'),
    ('431100', 'COTISATION CNAS 9%', 'third_party', TRUE, FALSE, 'credit'),
    ('431200', 'AUTRE CNAS', 'third_party', TRUE, FALSE, 'credit'),
    ('431300', 'MEDECINE DE TRAVAIL', 'third_party', TRUE, FALSE, 'credit'),
    ('432', 'Autres organismes sociaux', 'third_party', TRUE, FALSE, 'credit'),
    ('438', 'Organismes sociaux, charges à payer et produits à recevoir', 'third_party', TRUE, FALSE, 'credit'),
    ('44', 'Etat, collectivités publiques, organismes internationaux et comptes rattachés', 'third_party', FALSE, FALSE, 'credit'),
    ('441', 'Etat et autres collectivités publiques, subventions à recevoir', 'third_party', TRUE, FALSE, 'credit'),
    ('442', 'Etat, impôts et taxes recouvrables sur des tiers', 'third_party', FALSE, FALSE, 'credit'),
    ('442000', 'IRGI SALAIRE', 'third_party', TRUE, FALSE, 'credit'),
    ('443', 'Opérations particulières avec l''Etat et les collectivités publiques', 'third_party', TRUE, FALSE, 'credit'),
    ('444', 'Etat, impôts sur les résultats', 'third_party', FALSE, FALSE, 'credit'),
    ('444000', 'Etat.impot sur les résultats', 'third_party', TRUE, FALSE, 'credit'),
    ('444100', 'Accompte IBS', 'third_party', TRUE, FALSE, 'credit'),
    ('445', 'Etat, taxes sur le chiffre d''affaires', 'third_party', FALSE, FALSE, 'credit'),
    ('445000', 'TVA COLLECTE 19%', 'third_party', TRUE, FALSE, 'credit'),
    ('445100', 'TVA COLLECTE 09 %', 'third_party', TRUE, FALSE, 'credit'),
    ('445200', 'TVA IMMOBILISATIONS', 'third_party', TRUE, FALSE, 'credit'),
    ('445201', 'TVA INVESTISSEMENT A DECLARER SUR G 50', 'third_party', TRUE, FALSE, 'credit'),
    ('445300', 'TVA  ACHATS STOCKES & CONSOMMABLES', 'third_party', TRUE, FALSE, 'credit'),
    ('445400', 'TVA / PRESTATION DE SERVICE', 'third_party', TRUE, FALSE, 'credit'),
    ('445500', 'TVA A PAYER', 'third_party', TRUE, FALSE, 'credit'),
    ('445600', 'PRECOMPTE TVA', 'third_party', TRUE, FALSE, 'credit'),
    ('445602', 'TVA  A DECLARER SUR G50', 'third_party', TRUE, FALSE, 'credit'),
    ('446', 'Organismes internationaux', 'third_party', TRUE, FALSE, 'credit'),
    ('447', 'Autres impôts, taxes et versements assimilés', 'third_party', FALSE, FALSE, 'credit'),
    ('447000', 'AUTRES DROITS ET TAXES', 'third_party', TRUE, FALSE, 'credit'),
    ('447100', 'DROIT DE TIMBRE', 'third_party', TRUE, FALSE, 'credit'),
    ('447200', 'VINGNETTE  AUTO', 'third_party', TRUE, FALSE, 'credit'),
    ('448', 'Etat, charges à payer et produits à recevoir (hors impôts)', 'third_party', TRUE, FALSE, 'credit'),
    ('45', 'Groupe et associés', 'third_party', FALSE, FALSE, 'credit'),
    ('451', 'Opérations groupe', 'third_party', TRUE, FALSE, 'credit'),
    ('455', 'Associés, comptes courants', 'third_party', FALSE, FALSE, 'credit'),
    ('455000', 'MEKAHLI ABDELKADER', 'third_party', TRUE, FALSE, 'credit'),
    ('455100', 'MEKAHLI ABDERAHMANE', 'third_party', TRUE, FALSE, 'credit'),
    ('456', 'Associés, opérations sur le capital', 'third_party', FALSE, FALSE, 'credit'),
    ('456000', 'Associés, MEKAHLI AEK', 'third_party', TRUE, FALSE, 'credit'),
    ('456100', 'Associés, MEKAHLI ABDERRAHMANE', 'third_party', TRUE, FALSE, 'credit'),
    ('457', 'Associés, dividendes à payer', 'third_party', TRUE, FALSE, 'credit'),
    ('458', 'Associés, opérations faites en commun ou en groupement', 'third_party', TRUE, FALSE, 'credit'),
    ('46', 'Débiteurs divers et créditeurs divers', 'third_party', FALSE, FALSE, 'debit'),
    ('462', 'Créances sur cessions d''immobilisations', 'third_party', TRUE, TRUE, 'debit'),
    ('464', 'Dettes sur acquisitions valeurs mobilières de placement et instruments financiers dérivés', 'third_party', TRUE, TRUE, 'debit'),
    ('465', 'Créances sur cessions valeurs mobilières de placement et instruments financiers dérivés', 'third_party', TRUE, TRUE, 'debit'),
    ('467', 'Autres comptes débiteurs ou créditeurs', 'third_party', TRUE, TRUE, 'debit'),
    ('468', 'Diverses charges à payer et produits à recevoir', 'third_party', TRUE, TRUE, 'debit'),
    ('47', 'Comptes transitoires ou d''attente', 'third_party', TRUE, FALSE, 'credit'),
    ('48', 'Charges ou produits constatés d''avance et provisions', 'third_party', FALSE, FALSE, 'debit'),
    ('481', 'Provisions, passifs courants', 'third_party', TRUE, FALSE, 'debit'),
    ('486', 'Charges constatées d''avance', 'third_party', FALSE, FALSE, 'debit'),
    ('486000', 'Charges constatées d''avance', 'third_party', TRUE, FALSE, 'debit'),
    ('487', 'Produits constatés d''avance', 'third_party', TRUE, FALSE, 'debit'),
    ('49', 'Pertes de valeur sur comptes de tiers', 'third_party', FALSE, FALSE, 'debit'),
    ('491', 'Pertes de valeur sur comptes de clients', 'third_party', TRUE, FALSE, 'debit'),
    ('495', 'Pertes de valeur sur comptes du groupe et sur associés', 'third_party', TRUE, FALSE, 'debit'),
    ('496', 'Pertes de valeur sur comptes de débiteurs divers', 'third_party', TRUE, FALSE, 'debit'),
    ('498', 'Pertes de valeur sur autres comptes de tiers', 'third_party', TRUE, FALSE, 'debit'),
    ('5', 'COMPTES FINANCIERS', 'treasury', FALSE, FALSE, 'debit'),
    ('50', 'Valeurs mobilières de placement', 'treasury', FALSE, FALSE, 'debit'),
    ('501', 'Part dans des entreprises liées', 'treasury', TRUE, FALSE, 'debit'),
    ('502', 'Actions propres', 'treasury', TRUE, FALSE, 'debit'),
    ('503', 'Autres actions ou titres conférant un droit de propriété', 'treasury', TRUE, FALSE, 'debit'),
    ('506', 'Obligations, bons du Trésor et bons de caisse à court terme', 'treasury', TRUE, FALSE, 'debit'),
    ('508', 'Autres valeurs mobilières de placement et créances assimilées', 'treasury', TRUE, FALSE, 'debit'),
    ('509', 'Versements restant à effectuer sur valeurs mobilières de placement non libérées', 'treasury', TRUE, FALSE, 'debit'),
    ('51', 'Banque, établissements financiers et assimilés', 'treasury', FALSE, FALSE, 'debit'),
    ('511', 'Valeurs à l''encaissement', 'treasury', TRUE, FALSE, 'debit'),
    ('512', 'Banques comptes courants', 'treasury', FALSE, FALSE, 'debit'),
    ('512000', 'CPA', 'treasury', TRUE, FALSE, 'debit'),
    ('512100', 'BDL', 'treasury', TRUE, FALSE, 'debit'),
    ('512200', 'SGA', 'treasury', TRUE, FALSE, 'debit'),
    ('512300', 'HOUSING BANK', 'treasury', TRUE, FALSE, 'debit'),
    ('512400', 'BANQUE BNA', 'treasury', TRUE, FALSE, 'debit'),
    ('515', 'Trésor public et établissements publics', 'treasury', TRUE, FALSE, 'debit'),
    ('516', 'Fonds en dépôt chez le notaire', 'treasury', FALSE, FALSE, 'debit'),
    ('516000', 'Fonds en dépôt chez le notaire', 'treasury', TRUE, FALSE, 'debit'),
    ('517', 'Autres organismes financiers', 'treasury', TRUE, FALSE, 'debit'),
    ('518', 'Intérêts courus', 'treasury', TRUE, FALSE, 'debit'),
    ('519', 'Concours bancaires courants', 'treasury', FALSE, FALSE, 'credit'),
    ('519000', 'Concours bancaires courants', 'treasury', TRUE, FALSE, 'credit'),
    ('52', 'Instruments financiers dérivés', 'treasury', TRUE, FALSE, 'debit'),
    ('53', 'Caisse', 'treasury', FALSE, FALSE, 'debit'),
    ('530000', 'CAISSE', 'treasury', TRUE, FALSE, 'debit'),
    ('54', 'Régies d''avances et accréditifs', 'treasury', FALSE, FALSE, 'debit'),
    ('541', 'Régies d''avances', 'treasury', TRUE, FALSE, 'debit'),
    ('542', 'Accréditifs', 'treasury', TRUE, FALSE, 'debit'),
    ('55', '(Disponible)', 'treasury', TRUE, FALSE, 'debit'),
    ('56', '(Disponible)', 'treasury', TRUE, FALSE, 'debit'),
    ('57', '(Disponible)', 'treasury', TRUE, FALSE, 'debit'),
    ('58', 'Virements internes', 'treasury', FALSE, FALSE, 'debit'),
    ('581', 'Virements de fonds', 'treasury', FALSE, FALSE, 'debit'),
    ('581000', 'Virmt de fond', 'treasury', TRUE, FALSE, 'debit'),
    ('588', 'Autres virements internes', 'treasury', TRUE, FALSE, 'debit'),
    ('59', 'Pertes de valeur sur actifs financiers courants', 'treasury', FALSE, FALSE, 'debit'),
    ('591', 'Pertes de valeur sur valeurs en banque et établissements financiers', 'treasury', TRUE, FALSE, 'debit'),
    ('594', 'Pertes de valeurs sur régies d''avances et accréditifs', 'treasury', TRUE, FALSE, 'debit'),
    ('6', 'COMPTES DE CHARGES', 'expense', FALSE, FALSE, 'debit'),
    ('60', 'Achats consommés', 'expense', FALSE, FALSE, 'debit'),
    ('600', 'Achats de marchandises vendues', 'expense', FALSE, FALSE, 'debit'),
    ('600000', 'CONSOMMATIONS MESSEREGUINE', 'expense', TRUE, FALSE, 'debit'),
    ('600100', 'CONSOMMATIONS THON MESSER', 'expense', TRUE, FALSE, 'debit'),
    ('600200', 'CONSOMMATIONS EL KERMA', 'expense', TRUE, FALSE, 'debit'),
    ('600201', 'CONSOMMATION THON EL KERMA', 'expense', TRUE, FALSE, 'debit'),
    ('601', 'Matières premières', 'expense', TRUE, FALSE, 'debit'),
    ('602', 'Autres approvisionnements', 'expense', TRUE, FALSE, 'debit'),
    ('603', 'Variations des stocks', 'expense', FALSE, FALSE, 'debit'),
    ('603000', 'VARIATION DE STOCK', 'expense', TRUE, FALSE, 'debit'),
    ('604', 'Achats d''études et de prestations de services', 'expense', TRUE, FALSE, 'debit'),
    ('605', 'Achats de matériels, équipements et travaux', 'expense', FALSE, FALSE, 'debit'),
    ('605000', 'Achats d''immobilisations de faible valeur', 'expense', TRUE, FALSE, 'debit'),
    ('607', 'Achats non stockés de matières et fournitures', 'expense', FALSE, FALSE, 'debit'),
    ('607000', 'CARBURANT & LUBRIFIANT', 'expense', TRUE, FALSE, 'debit'),
    ('607100', 'Fourniture de bureau et outils informatique consomable', 'expense', TRUE, FALSE, 'debit'),
    ('607200', 'Produits d''entretien consomable', 'expense', TRUE, FALSE, 'debit'),
    ('607300', 'Pneumatique', 'expense', TRUE, FALSE, 'debit'),
    ('607400', 'PDR', 'expense', TRUE, FALSE, 'debit'),
    ('607500', 'AUTRES', 'expense', TRUE, FALSE, 'debit'),
    ('607600', 'L''ELECTRICITE ET DU GAZ', 'expense', TRUE, FALSE, 'debit'),
    ('608', 'Frais accessoires d''achat', 'expense', TRUE, FALSE, 'debit'),
    ('609', 'Rabais, remises, ristournes obtenus sur achats', 'expense', FALSE, FALSE, 'debit'),
    ('609000', 'Rabais. remisses.ristournes', 'expense', TRUE, FALSE, 'debit'),
    ('609100', 'Rabais, THON', 'expense', TRUE, FALSE, 'debit'),
    ('61', 'Services extérieurs', 'expense', FALSE, FALSE, 'debit'),
    ('611', 'Sous-traitance générale', 'expense', TRUE, FALSE, 'debit'),
    ('613', 'Locations', 'expense', FALSE, FALSE, 'debit'),
    ('613000', 'LOCATIONS DEPOT', 'expense', TRUE, FALSE, 'debit'),
    ('614', 'Charges locatives et charges de copropriété', 'expense', TRUE, FALSE, 'debit'),
    ('615', 'Entretien, réparations et maintenance', 'expense', FALSE, FALSE, 'debit'),
    ('615000', 'Entretien et réparation et maintenance', 'expense', TRUE, FALSE, 'debit'),
    ('615100', 'Entretien et réparation et maintenance matériel roullant', 'expense', TRUE, FALSE, 'debit'),
    ('616', 'Primes d''assurances', 'expense', FALSE, FALSE, 'debit'),
    ('616000', 'ASSURANCE', 'expense', TRUE, FALSE, 'debit'),
    ('617', 'Etudes et recherches', 'expense', TRUE, FALSE, 'debit'),
    ('618', 'Documentation et divers', 'expense', FALSE, FALSE, 'debit'),
    ('618000', 'CNRC', 'expense', TRUE, FALSE, 'debit'),
    ('619', 'Rabais, remises, ristournes obtenus sur services extérieurs', 'expense', TRUE, FALSE, 'debit'),
    ('62', 'Autres services extérieurs', 'expense', FALSE, FALSE, 'debit'),
    ('621', 'Personnel extérieur à l''entreprise', 'expense', TRUE, FALSE, 'debit'),
    ('622', 'Rémunérations d''intermédiaires et honoraires', 'expense', FALSE, FALSE, 'debit'),
    ('622000', 'HONORAIRES', 'expense', TRUE, FALSE, 'debit'),
    ('623', 'Publicité, publication, relations publiques', 'expense', FALSE, FALSE, 'debit'),
    ('623000', 'PUBLICATION CNRC', 'expense', TRUE, FALSE, 'debit'),
    ('624', 'Transports de biens et transport collectif du personnel', 'expense', TRUE, FALSE, 'debit'),
    ('625', 'Déplacements, missions et réceptions', 'expense', FALSE, FALSE, 'debit'),
    ('625000', 'DEPLACEMENTS. MISSION ET RECEPTION', 'expense', TRUE, FALSE, 'debit'),
    ('626', 'Frais postaux et de télécommunications', 'expense', FALSE, FALSE, 'debit'),
    ('626000', 'Frais postaux et de télécommunications', 'expense', TRUE, FALSE, 'debit'),
    ('627', 'Services bancaires et assimilés', 'expense', FALSE, FALSE, 'debit'),
    ('627000', 'COMMISSIONS BANCAIRES', 'expense', TRUE, FALSE, 'debit'),
    ('628', 'Cotisations et divers', 'expense', FALSE, FALSE, 'debit'),
    ('628000', 'ABONNEMENT LOGICIEL', 'expense', TRUE, FALSE, 'debit'),
    ('628200', 'AUTRE FORMATION', 'expense', TRUE, FALSE, 'debit'),
    ('628300', 'FRAIS DE FORMATION -taxe', 'expense', TRUE, FALSE, 'debit'),
    ('629', 'Rabais, remises, ristournes obtenus sur autres services extérieurs', 'expense', TRUE, FALSE, 'debit'),
    ('63', 'Charges de personnel', 'expense', FALSE, FALSE, 'debit'),
    ('631', 'Rémunérations du personnel', 'expense', FALSE, FALSE, 'debit'),
    ('631000', 'Rémunération du personnel', 'expense', TRUE, FALSE, 'debit'),
    ('631100', 'PANIER', 'expense', TRUE, FALSE, 'debit'),
    ('631200', 'TRANSPORT', 'expense', TRUE, FALSE, 'debit'),
    ('631300', 'INDEMNITE DE VEHICULE', 'expense', TRUE, FALSE, 'debit'),
    ('632', 'Participation des salariés aux bénéfices', 'expense', TRUE, FALSE, 'debit'),
    ('634', 'Rémunérations de l''exploitant individuel', 'expense', TRUE, FALSE, 'debit'),
    ('635', 'Cotisations aux organismes sociaux', 'expense', FALSE, FALSE, 'debit'),
    ('635000', 'COTISATION CNAS 26%', 'expense', TRUE, FALSE, 'debit'),
    ('636', 'Charges sociales de l''exploitant individuel', 'expense', TRUE, FALSE, 'debit'),
    ('637', 'Autres charges sociales', 'expense', TRUE, FALSE, 'debit'),
    ('638', 'Autres charges de personnel', 'expense', FALSE, FALSE, 'debit'),
    ('638000', 'MEDECINE DE TRAVAIL', 'expense', TRUE, FALSE, 'debit'),
    ('638100', 'AUTRES CHARGES DU PERSONNELS', 'expense', TRUE, FALSE, 'debit'),
    ('64', 'Impôts, taxes et versements assimilés', 'expense', FALSE, FALSE, 'debit'),
    ('641', 'Impôts, taxes et versements assimilés sur rémunérations', 'expense', FALSE, FALSE, 'debit'),
    ('641000', 'TAXE DE FORMATION', 'expense', TRUE, FALSE, 'debit'),
    ('641100', 'TAXE D''APPRENTISSAGE', 'expense', TRUE, FALSE, 'debit'),
    ('642', 'Impôts et taxes non récupérables sur chiffre d''affaires', 'expense', TRUE, FALSE, 'debit'),
    ('645', 'Autres impôts et taxes (hors impôts sur les résultats)', 'expense', FALSE, FALSE, 'debit'),
    ('645000', 'DROIT DE TIMBRE', 'expense', TRUE, FALSE, 'debit'),
    ('645100', 'AUTRES DROITS ET TAXES', 'expense', TRUE, FALSE, 'debit'),
    ('645200', 'VIGNETTE AUTO', 'expense', TRUE, FALSE, 'debit'),
    ('65', 'Autres charges opérationnelles', 'expense', FALSE, FALSE, 'debit'),
    ('651', 'Redevances pour concessions, brevets, licences, logiciels, droits et valeurs similaires', 'expense', TRUE, FALSE, 'debit'),
    ('652', 'Moins-values sur sortie d''actifs immobilisés non financiers', 'expense', TRUE, FALSE, 'debit'),
    ('653', 'Jetons de présence', 'expense', TRUE, FALSE, 'debit'),
    ('654', 'Pertes sur créances irrécouvrables', 'expense', TRUE, FALSE, 'debit'),
    ('655', 'Quote-part de résultat sur opérations faites en commun', 'expense', TRUE, FALSE, 'debit'),
    ('656', 'Amendes et pénalités, subventions accordées, dons et libéralités', 'expense', FALSE, FALSE, 'debit'),
    ('656000', 'ASSO SOCIAL  ET DONS', 'expense', TRUE, FALSE, 'debit'),
    ('656200', 'Amendes et pénalités (pénales, fiscales et parafiscales)', 'expense', TRUE, FALSE, 'debit'),
    ('657', 'Charges exceptionnelles de gestion courante', 'expense', TRUE, FALSE, 'debit'),
    ('658', 'Autres charges de gestion courante', 'expense', FALSE, FALSE, 'debit'),
    ('658000', 'Autres charges de gestion courante', 'expense', TRUE, FALSE, 'debit'),
    ('66', 'Charges financières', 'expense', FALSE, FALSE, 'debit'),
    ('661', 'Charges d''intérêts', 'expense', TRUE, FALSE, 'debit'),
    ('664', 'Pertes sur créances liées a des participations', 'expense', TRUE, FALSE, 'debit'),
    ('665', 'Ecart d''évaluation sur actifs financiers - moins-values', 'expense', TRUE, FALSE, 'debit'),
    ('666', 'Pertes de change', 'expense', TRUE, FALSE, 'debit'),
    ('667', 'Pertes nettes sur cessions d''actifs financiers', 'expense', TRUE, FALSE, 'debit'),
    ('668', 'Autres charges financières', 'expense', TRUE, FALSE, 'debit'),
    ('67', 'Eléments extraordinaires (charges)', 'expense', TRUE, FALSE, 'debit'),
    ('68', 'Dotations aux amortissements, provisions et pertes de valeur', 'expense', FALSE, FALSE, 'debit'),
    ('681', 'Dotations aux amortissements, provisions et pertes de valeur, actifs non courants', 'expense', FALSE, FALSE, 'debit'),
    ('681000', 'Dotations Amortissements', 'expense', TRUE, FALSE, 'debit'),
    ('682', 'Dotations aux amortissements, provisions et pertes de valeur des biens mis en concession', 'expense', TRUE, FALSE, 'debit'),
    ('685', 'Dotations aux amortissements, provisions et pertes de valeur, actifs courants', 'expense', TRUE, FALSE, 'debit'),
    ('686', 'Dotations aux amortissements, provisions et pertes de valeur, éléments financiers', 'expense', TRUE, FALSE, 'debit'),
    ('69', 'Impôts sur les résultats et assimilés', 'expense', FALSE, FALSE, 'debit'),
    ('692', 'Imposition différée actif', 'expense', TRUE, FALSE, 'debit'),
    ('693', 'Imposition différée passif', 'expense', TRUE, FALSE, 'debit'),
    ('695', 'Impôts sur les bénéfices basés sur le résultat des activités ordinaires', 'expense', FALSE, FALSE, 'debit'),
    ('695000', 'IBS 26%', 'expense', TRUE, FALSE, 'debit'),
    ('698', 'Autres impôts sur les résultats', 'expense', TRUE, FALSE, 'debit'),
    ('7', 'COMPTES DE PRODUITS', 'revenue', FALSE, FALSE, 'credit'),
    ('70', 'Ventes de marchandises et de produits fabriqués, ventes de prestations de service et produits annexes', 'revenue', FALSE, FALSE, 'credit'),
    ('700', 'Ventes de marchandises', 'revenue', FALSE, FALSE, 'credit'),
    ('700000', 'CA 19 % MESS', 'revenue', TRUE, FALSE, 'credit'),
    ('700001', 'CA 19% KERMA', 'revenue', TRUE, FALSE, 'credit'),
    ('700100', 'CA 0 % MESS', 'revenue', TRUE, FALSE, 'credit'),
    ('700101', 'CA 0 % KERMA', 'revenue', TRUE, FALSE, 'credit'),
    ('700200', 'VENTES THON', 'revenue', TRUE, FALSE, 'credit'),
    ('701', 'Ventes de produits finis', 'revenue', TRUE, FALSE, 'credit'),
    ('702', 'Ventes de produits intermédiaires', 'revenue', TRUE, FALSE, 'credit'),
    ('703', 'Ventes de produits résiduels', 'revenue', TRUE, FALSE, 'credit'),
    ('704', 'Vente de travaux', 'revenue', TRUE, FALSE, 'credit'),
    ('705', 'Vente d''études', 'revenue', TRUE, FALSE, 'credit'),
    ('706', 'Autres prestations de services', 'revenue', TRUE, FALSE, 'credit'),
    ('708', 'Produits des activités annexes', 'revenue', TRUE, FALSE, 'credit'),
    ('709', 'Rabais, remises et ristournes accordés', 'revenue', TRUE, FALSE, 'credit'),
    ('72', 'Production stockée ou déstockée', 'revenue', FALSE, FALSE, 'credit'),
    ('723', 'Variation de stocks d''encours', 'revenue', TRUE, FALSE, 'credit'),
    ('724', 'Variation de stocks de produits', 'revenue', TRUE, FALSE, 'credit'),
    ('73', 'Production immobilisée', 'revenue', FALSE, FALSE, 'credit'),
    ('731', 'Production immobilisée d''actifs incorporels', 'revenue', TRUE, FALSE, 'credit'),
    ('732', 'Production immobilisée d''actifs corporels', 'revenue', TRUE, FALSE, 'credit'),
    ('74', 'Subventions d''exploitation', 'revenue', FALSE, FALSE, 'credit'),
    ('741', 'Subvention d''équilibre', 'revenue', TRUE, FALSE, 'credit'),
    ('748', 'Autres subventions d''exploitation', 'revenue', TRUE, FALSE, 'credit'),
    ('75', 'Autres produits opérationnels', 'revenue', FALSE, FALSE, 'credit'),
    ('751', 'Redevances pour concessions, brevets, licences, logiciels et valeurs similaires', 'revenue', TRUE, FALSE, 'credit'),
    ('752', 'Plus-values sur sorties d''actifs immobilisés non financiers', 'revenue', TRUE, FALSE, 'credit'),
    ('753', 'Jetons de présence et rémunérations d''administrateurs ou de gérants', 'revenue', TRUE, FALSE, 'credit'),
    ('754', 'Quotes-parts de subventions d''investissement virées au résultat de l''exercice', 'revenue', TRUE, FALSE, 'credit'),
    ('755', 'Quote-part de résultat sur opérations faites en commun', 'revenue', TRUE, FALSE, 'credit'),
    ('756', 'Rentrées sur créances amorties', 'revenue', TRUE, FALSE, 'credit'),
    ('757', 'Produits exceptionnels sur opérations de gestion', 'revenue', TRUE, FALSE, 'credit'),
    ('758', 'Autres produits de gestion courante', 'revenue', FALSE, FALSE, 'credit'),
    ('758000', 'Autres produits de gestion courante', 'revenue', TRUE, FALSE, 'credit'),
    ('758100', 'REMB ASSURANCES', 'revenue', TRUE, FALSE, 'credit'),
    ('76', 'Produits financiers', 'revenue', FALSE, FALSE, 'credit'),
    ('761', 'Produits des participations', 'revenue', TRUE, FALSE, 'credit'),
    ('762', 'Revenus des actifs financiers', 'revenue', FALSE, FALSE, 'credit'),
    ('762000', 'REVENUS DES ACTIFS FINANCIERES', 'revenue', TRUE, FALSE, 'credit'),
    ('763', 'Revenus de créances', 'revenue', TRUE, FALSE, 'credit'),
    ('765', 'Ecart d''évaluation sur actifs financiers, plus-values', 'revenue', TRUE, FALSE, 'credit'),
    ('766', 'Gains de change', 'revenue', TRUE, FALSE, 'credit'),
    ('767', 'Profits nets sur cessions d''actifs financiers', 'revenue', TRUE, FALSE, 'credit'),
    ('768', 'Autres produits financiers', 'revenue', TRUE, FALSE, 'credit'),
    ('77', 'Eléments extraordinaires (produits)', 'revenue', TRUE, FALSE, 'credit'),
    ('78', 'Reprises sur pertes de valeur et provisions', 'revenue', FALSE, FALSE, 'credit'),
    ('781', 'Reprises d''exploitation sur pertes de valeur et provisions - actifs non courants', 'revenue', TRUE, FALSE, 'credit'),
    ('785', 'Reprises d''exploitation sur pertes de valeur et provisions - actifs courants', 'revenue', TRUE, FALSE, 'credit'),
    ('786', 'Reprises financières sur pertes de valeur et provisions', 'revenue', TRUE, FALSE, 'credit'),
    ('79', '(Disponible)', 'revenue', TRUE, FALSE, 'credit')
),
upserted_accounts AS (
  INSERT INTO accounts (
    company_id,
    code,
    label,
    account_type,
    parent_id,
    is_movable,
    is_auxiliary,
    is_active,
    balance_normal_side
  )
  SELECT
    seed_company.id,
    data.code,
    data.label,
    data.account_type,
    NULL,
    data.is_movable,
    data.is_auxiliary,
    TRUE,
    data.balance_normal_side
  FROM seed_company
  CROSS JOIN seed_account_data AS data
  ON CONFLICT (company_id, code) DO UPDATE
  SET
    label = EXCLUDED.label,
    account_type = EXCLUDED.account_type,
    parent_id = NULL,
    is_movable = EXCLUDED.is_movable,
    is_auxiliary = EXCLUDED.is_auxiliary,
    is_active = EXCLUDED.is_active,
    balance_normal_side = EXCLUDED.balance_normal_side
  RETURNING id, company_id, code
)
UPDATE accounts AS child
SET parent_id = parent.id
FROM upserted_accounts AS parent
WHERE child.id IN (SELECT id FROM upserted_accounts)
  AND child.company_id = parent.company_id
  AND child.code <> parent.code
  AND child.code LIKE parent.code || '%'
  AND char_length(child.code) > char_length(parent.code)
  AND NOT EXISTS (
    SELECT 1
    FROM upserted_accounts AS closer_parent
    WHERE closer_parent.company_id = child.company_id
      AND closer_parent.code <> child.code
      AND child.code LIKE closer_parent.code || '%'
      AND char_length(child.code) > char_length(closer_parent.code)
      AND char_length(closer_parent.code) > char_length(parent.code)
  );

WITH seed_company AS (
  SELECT id
  FROM companies
  WHERE nif = '000000000000000'
)
INSERT INTO journals (
  company_id,
  code,
  label,
  journal_type,
  default_counterpart_account,
  numbering_mode,
  is_active
)
SELECT
  seed_company.id,
  'IMM',
  'Immobilisations',
  'assets',
  NULL,
  'continuous',
  TRUE
FROM seed_company
ON CONFLICT (company_id, code) DO UPDATE
SET
  label = EXCLUDED.label,
  journal_type = EXCLUDED.journal_type,
  default_counterpart_account = EXCLUDED.default_counterpart_account,
  numbering_mode = EXCLUDED.numbering_mode,
  is_active = EXCLUDED.is_active;

COMMIT;
