Overview
Comment:Fix [16af9ccf92] : comptes de crédit et débit lors du report à nouveau automatique
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: e5a990bf5a7a440eb6b56cb958e8f2bdc85a3d13
User & Date: bohwaz on 2015-02-04 02:27:22
Other Links: manifest | tags
References
2015-02-04
02:28 Ticket [16af9ccf92] Amortissement - report à nouveau passé en débit status still Open with 3 other changes artifact: 680dba3661 user: bohwaz
Context
2015-02-04
02:31
Stocker la différence sans absolu check-in: 166dfb5539 user: bohwaz tags: trunk
02:27
Fix [16af9ccf92] : comptes de crédit et débit lors du report à nouveau automatique check-in: e5a990bf5a user: bohwaz tags: trunk
2015-01-31
06:44
doc signaux plugins check-in: 44ec672001 user: bohwaz tags: trunk
Changes

Modified src/include/lib/Garradin/Compta/Exercices.php from [1622437e4a] to [ca671d9e89].

153
154
155
156
157
158
159
160
161
162
163
164

165
166
167
168


















169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
            GROUP BY compta_comptes.id;', ['id' => $old_id]);

        $diff = 0;
        $journal = new Journal;

        while ($row = $statement->fetchArray(SQLITE3_ASSOC))
        {
            $solde = abs($row['solde']);
            $solde = round($solde, 2);

            $diff += $solde;


            if (empty($solde))
            {
                continue;
            }



















            // Chaque solde de compte est reporté dans le nouvel exercice
            $journal->add([
                'libelle'       =>  'Report à nouveau',
                'date'          =>  $date,
                'montant'       =>  abs($solde),
                'compte_debit'  =>  ($solde < 0 ? NULL : $row['compte']),
                'compte_credit' =>  ($solde > 0 ? NULL : $row['compte']),
                'remarques'     =>  'Report de solde créé automatiquement à la clôture de l\'exercice précédent',
            ]);
        }
        
        // FIXME utiliser $diff pour équilibrer

        $db->exec('END;');







|
<

<
<
>




>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>





|
|
|







153
154
155
156
157
158
159
160

161


162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
            GROUP BY compta_comptes.id;', ['id' => $old_id]);

        $diff = 0;
        $journal = new Journal;

        while ($row = $statement->fetchArray(SQLITE3_ASSOC))
        {
            $solde = $row['solde'];




            // Solde du compte à zéro : aucun report à faire
            if (empty($solde))
            {
                continue;
            }

            // ce qui est à l'actif est en débit sauf les valeurs négatives
            // ce qui est au passif est en crédit, sauf valeurs négatives
            // cf. ticket [16af9ccf92]
            if ($row['position'] & Compta_Comptes::ACTIF)
            {
                $compte_debit = $solde < 0 ? NULL : $row['compte'];
                $compte_credit = $solde > 0 ? NULL : $row['compte'];
            }
            else
            {
                $compte_debit = $solde > 0 ? NULL : $row['compte'];
                $compte_credit = $solde < 0 ? NULL : $row['compte'];
            }

            $solde = round(abs($solde), 2);

            $diff += $solde;

            // Chaque solde de compte est reporté dans le nouvel exercice
            $journal->add([
                'libelle'       =>  'Report à nouveau',
                'date'          =>  $date,
                'montant'       =>  $solde,
                'compte_debit'  =>  $compte_debit,
                'compte_credit' =>  $compte_credit,
                'remarques'     =>  'Report de solde créé automatiquement à la clôture de l\'exercice précédent',
            ]);
        }
        
        // FIXME utiliser $diff pour équilibrer

        $db->exec('END;');