PHP code example of arnoldkouya / plan-comptable-syscohada

1. Go to this page and download the library: Download arnoldkouya/plan-comptable-syscohada library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

arnoldkouya / plan-comptable-syscohada example snippets


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]

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']

$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";
    }
}

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

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

$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";
}

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