承接 arnoldkouya/plan-comptable-syscohada 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

arnoldkouya/plan-comptable-syscohada

最新稳定版本:v1.0.0

Composer 安装命令:

composer require arnoldkouya/plan-comptable-syscohada

包简介

Bibliothèque PHP complète du Plan Comptable SYSCOHADA (OHADA) — recherche, validation et navigation des comptes

README 文档

README

Bibliothèque PHP complète du Plan Comptable SYSCOHADA — le système comptable normalisé des États membres de l'OHADA.

Recherche, validation, navigation et interrogation de tous les comptes (classes 1 à 9), avec leurs libellés, leur nature (bilan / gestion / hors-bilan / CAGE) et leur sens (débit / crédit / mixte).

Installation

composer require arnoldkouya/plan-comptable-syscohada

Prérequis : PHP ≥ 8.1

Démarrage rapide

use Syscohada\PlanComptable;
use Syscohada\Validator;

$plan = PlanComptable::getInstance();

// Rechercher un compte par code exact
$compte = $plan->find('6011');
echo $compte; // "6011 — Dans la Région"

// Trouver ou lancer une exception
$compte = $plan->findOrFail('4111');
echo $compte->getLibelle(); // "Clients"

// Tous les comptes d'une classe
$classe6 = $plan->classe(6); // array de Compte

// Recherche plein texte (insensible à la casse et aux accents)
$resultats = $plan->search('marchandises');

// Enfants directs
$enfants = $plan->enfants('60'); // [601, 602, 603, ...]

// Tous les descendants (récursif)
$descendants = $plan->descendants('60');

// Chemin depuis la racine
$chemin = $plan->chemin('6011');
// → [60, 601, 6011]

API complète

PlanComptable

Méthode Description
getInstance() Singleton — retourne l'instance unique
find(string $code) Retourne le Compte ou null
findOrFail(string $code) Retourne le Compte ou lance CompteNotFoundException
exists(string $code) Vérifie l'existence d'un code
valider(string $code) Alias de exists
classe(int $classe) Tous les comptes d'une classe (1–9)
classeNiveau(int $classe, int $niveau) Comptes d'une classe à un niveau donné
enfants(string $code) Enfants directs
descendants(string $code) Tous les descendants (récursif)
search(string $terme) Recherche sur le code ou le libellé
nature(string $nature) Filtre par nature (bilan, gestion, hors-bilan, cage)
sens(string $sens) Filtre par sens (debit, credit, mixte)
chemin(string $code) Chemin depuis la racine jusqu'au compte
all() Tous les comptes du plan
statistiques() Statistiques du plan

Compte

Méthode Retour Description
getCode() string Code du compte
getLibelle() string Libellé officiel
getClasse() int Classe (1–9)
getNiveau() int Niveau / profondeur (1–4)
getCodeParent() ?string Code du compte parent
getNature() ?string bilan, gestion, hors-bilan, cage
getSens() ?string debit, credit, mixte
isActif() bool Compte actif
isGroupe() bool Niveau ≤ 2 (compte racine)
isDivisionnaire() bool Niveau = 4
toArray() array Représentation tableau
__toString() string "CODE — Libellé"

Validator

use Syscohada\Validator;

Validator::formatValide('6011');          // true
Validator::existeDansPlan('9999');        // false
Validator::classeDeCode('601');           // 6
Validator::niveauDeCode('6011');          // 4
Validator::estBilan('401');               // true
Validator::estGestion('701');             // true
Validator::estCharge('661');              // true
Validator::estProduit('701');             // true
Validator::estTresorerie('521');          // true
Validator::invalides(['6011','XXXX']);    // ['XXXX']

Exemples avancés

Arbre d'une classe

$plan = PlanComptable::getInstance();

// Comptes de niveau 2 (sous-classes) de la classe 4
$sousClasses = $plan->classeNiveau(4, 2);

foreach ($sousClasses as $parent) {
    echo $parent->getCode() . '' . $parent->getLibelle() . "\n";
    foreach ($plan->enfants($parent->getCode()) as $enfant) {
        echo '  └─ ' . $enfant . "\n";
    }
}

Valider un lot de codes

$codesUtilisateur = ['6011', '4111', '9999', 'ABCD'];
$invalides = Validator::invalides($codesUtilisateur);
// ['9999', 'ABCD']

Export JSON de la classe 5

$tresorerie = $plan->classe(5);
echo json_encode(
    array_map(fn ($c) => $c->toArray(), $tresorerie),
    JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE
);

Statistiques

$stats = $plan->statistiques();
echo "Total comptes : " . $stats['total'] . "\n";
// Total comptes : 560

foreach ($stats['par_classe'] as $classe => $nb) {
    echo "Classe $classe : $nb comptes\n";
}

Tests

composer install
composer test

Structure du projet

src/
├── Compte.php              # Value object d'un compte
├── PlanComptable.php       # Registre principal (singleton)
├── Validator.php           # Utilitaires de validation
├── Contracts/
│   ├── CompteInterface.php
│   └── PlanComptableInterface.php
├── Data/
│   └── comptes.php         # Données complètes du plan (classes 1–9)
└── Exceptions/
    └── CompteNotFoundException.php
tests/
└── PlanComptableTest.php

Couverture du plan

Classe Description Comptes
1 Ressources durables ✅ Complet
2 Actif immobilisé ✅ Complet
3 Stocks ✅ Complet
4 Comptes de tiers ✅ Complet
5 Trésorerie ✅ Complet
6 Charges activités ordinaires ✅ Complet
7 Produits activités ordinaires ✅ Complet
8 Autres charges et produits ✅ Complet
9 Engagements hors bilan + CAGE ✅ Complet

Licence

MIT — voir LICENSE

统计信息

  • 总下载量: 3
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 6
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-04-01

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固