Overview
Comment:Application patch ticket [29871886d9] : corrections comptes passif ET actif dans bilan
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 2b920e5efa0ac85f03418836c29d605629086da2
User & Date: bohwaz on 2014-07-01 00:09:57
Other Links: manifest | tags
References
2014-07-01
00:10 Ticket [29871886d9] Correction comptes actif et passif dans le bilan status still Open with 3 other changes artifact: 16f0856513 user: bohwaz
Context
2014-10-10
15:17
Possibilit√© d'ajouter ses propres filtres check-in: 89a224e3b0 user: bohwaz tags: trunk
2014-07-01
00:09
Application patch ticket [29871886d9] : corrections comptes passif ET actif dans bilan check-in: 2b920e5efa user: bohwaz tags: trunk
2014-06-30
23:48
Patch du ticket [76931fcb17] (solde dans le grand livre) check-in: a3d37baef8 user: bohwaz tags: trunk
Changes

Modified src/include/class.compta_exercices.php from [e40c0ae693] to [9511658484].

   449    449       public function getBilan($exercice)
   450    450       {
   451    451           $db = DB::getInstance();
   452    452   
   453    453           $include = [Compta_Comptes::ACTIF, Compta_Comptes::PASSIF,
   454    454               Compta_Comptes::PASSIF | Compta_Comptes::ACTIF];
   455    455   
   456         -        $actif      = ['comptes' => [], 'total' => 0.0];
   457         -        $passif     = ['comptes' => [], 'total' => 0.0];
          456  +        $actif           = ['comptes' => [], 'total' => 0.0];
          457  +        $passif          = ['comptes' => [], 'total' => 0.0];
          458  +        $actif_ou_passif = ['comptes' => [], 'total' => 0.0];
   458    459   
   459    460           $resultat = $this->getCompteResultat($exercice);
   460    461   
   461    462           if ($resultat['resultat'] >= 0)
   462    463           {
   463    464               $passif['comptes']['12'] = [
   464    465                   'comptes'   =>  ['120' => $resultat['resultat']],
................................................................................
   494    495           {
   495    496               list($compte, $debit, $credit, $position) = $row;
   496    497               $parent = substr($compte, 0, 2);
   497    498               $classe = $compte[0];
   498    499   
   499    500               if (($position & Compta_Comptes::ACTIF) && ($position & Compta_Comptes::PASSIF))
   500    501               {
          502  +                $position = 'actif_ou_passif';
   501    503                   $solde = $debit - $credit;
   502         -
   503         -                if ($solde > 0)
   504         -                    $position = 'actif';
   505         -                elseif ($solde < 0)
   506         -                    $position = 'passif';
   507         -                else
   508         -                    continue;
   509         -
   510         -                $solde = abs($solde);
   511    504               }
   512    505               else if ($position & Compta_Comptes::ACTIF)
   513    506               {
   514    507                   $position = 'actif';
   515    508                   $solde = $debit - $credit;
   516    509               }
   517    510               else if ($position & Compta_Comptes::PASSIF)
................................................................................
   537    530               $solde = round($solde, 2);
   538    531               ${$position}['comptes'][$parent]['comptes'][$compte] += $solde;
   539    532               ${$position}['total'] += $solde;
   540    533               ${$position}['comptes'][$parent]['solde'] += $solde;
   541    534           }
   542    535   
   543    536           $res->finalize();
          537  +
          538  +        foreach ($actif_ou_passif['comptes'] as $parent=>$p)
          539  +        {
          540  +            foreach ($p['comptes'] as $compte=>$solde)
          541  +            {
          542  +                if ($solde > 0)
          543  +                {
          544  +                    $position = 'actif';
          545  +                }
          546  +                else if ($solde < 0)
          547  +                {
          548  +                    $position = 'passif';
          549  +                    $solde = -$solde;
          550  +                }
          551  +                else
          552  +                {
          553  +                    continue;
          554  +                }
          555  +
          556  +                if (!isset(${$position}['comptes'][$parent]))
          557  +                {
          558  +                    ${$position}['comptes'][$parent] = ['comptes' => [], 'solde' => 0];
          559  +                }
          560  +
          561  +                if (!isset(${$position}['comptes'][$parent]['comptes'][$compte]))
          562  +                {
          563  +                    ${$position}['comptes'][$parent]['comptes'][$compte] = 0;
          564  +                }
          565  +
          566  +                ${$position}['comptes'][$parent]['comptes'][$compte] += $solde;
          567  +                ${$position}['total'] += $solde;
          568  +                ${$position}['comptes'][$parent]['solde'] += $solde;
          569  +            }
          570  +        }
   544    571   
   545    572           // Suppression des soldes nuls
   546    573           foreach ($passif['comptes'] as $parent=>$p)
   547    574           {
   548    575               if ($p['solde'] == 0)
   549    576               {
   550    577                   unset($passif['comptes'][$parent]);