Bonjour,
Merci Guillaume !
(double) à la place de (int) affiche bien les bons montants dans les listes ou
dans la contribution.
MAIS…
A l’enregistrement de la contribution (sans aucune modification), erreur de
l’application.
Dans galette.log j’ai isolé les messages suivants :
2021-12-29 22:43:51 - DEBUG - Contribution checked successfully.
2021-12-29 22:43:53 - ERROR - Query error: UPDATE `galette_cotisations` SET
`id_cotis` = '845', `id_adh` = '233', `id_type_cotis` = '1', `montant_cotis` =
'20,55', `type_paiement_cotis` = '5', `info_cotis` = '', `date_enreg` =
'2021-12-19', `date_debut_cotis` = '2021-12-19', `date_fin_cotis` =
'2022-12-19' WHERE `id_cotis` = '845' PDOException: SQLSTATE[01000]: Warning:
1265 Data truncated for column 'montant_cotis' at row 1 in
/volume1/Galette/vendor/laminas/laminas-db/src/Adapter/Driver/Pdo/Connection.php:376
Stack trace:
#0
/volume1/Galette/vendor/laminas/laminas-db/src/Adapter/Driver/Pdo/Connection.php(376):
PDO->query('UPDATE `galette...')
#1 /volume1/Galette/vendor/laminas/laminas-db/src/Adapter/Adapter.php(194):
Laminas\Db\Adapter\Driver\Pdo\Connection->execute('UPDATE `galette...')
#2 /volume1/Galette/lib/Galette/Core/Db.php(788):
Laminas\Db\Adapter\Adapter->query('UPDATE `galette...', 'execute')
#3 /volume1/Galette/lib/Galette/Entity/Contribution.php(675):
Galette\Core\Db->execute(Object(Laminas\Db\Sql\Update))
#4
/volume1/Galette/lib/Galette/Controllers/Crud/ContributionsController.php(791):
Galette\Entity\Contribution->store()
ET (désolé pour le stack trace kilométrique, je ne sais pas ce qui est
pertinent ou pas )
2021-12-29 22:43:53 - ERROR - Galette error:
Type: PDOException
Code: 01000
Message: SQLSTATE[01000]: Warning: 1265 Data truncated for column
'montant_cotis' at row 1
File:
/volume1/Galette/vendor/laminas/laminas-db/src/Adapter/Driver/Pdo/Connection.php
Line: 376
Trace: #0
/volume1/Galette/vendor/laminas/laminas-db/src/Adapter/Driver/Pdo/Connection.php(376):
PDO->query('UPDATE `galette...')
#1 /volume1/Galette/vendor/laminas/laminas-db/src/Adapter/Adapter.php(194):
Laminas\Db\Adapter\Driver\Pdo\Connection->execute('UPDATE `galette...')
#2 /volume1/Galette/lib/Galette/Core/Db.php(788):
Laminas\Db\Adapter\Adapter->query('UPDATE `galette...', 'execute')
#3 /volume1/Galette/lib/Galette/Entity/Contribution.php(675):
Galette\Core\Db->execute(Object(Laminas\Db\Sql\Update))
#4
/volume1/Galette/lib/Galette/Controllers/Crud/ContributionsController.php(791):
Galette\Entity\Contribution->store()
#5
/volume1/Galette/lib/Galette/Controllers/Crud/ContributionsController.php(728):
Galette\Controllers\Crud\ContributionsController->store(Object(Slim\Http\Request),
Object(Slim\Http\Response), 'edit', 'fee', 845)
#6 [internal function]:
Galette\Controllers\Crud\ContributionsController->doEdit(Object(Slim\Http\Request),
Object(Slim\Http\Response), 845, 'fee')
#7 /volume1/Galette/vendor/php-di/invoker/src/Invoker.php(74):
call_user_func_array(Array, Array)
#8 /volume1/Galette/vendor/php-di/slim-bridge/src/ControllerInvoker.php(50):
Invoker\Invoker->call(Array, Array)
#9 /volume1/Galette/vendor/slim/slim/Slim/Route.php(281):
DI\Bridge\Slim\ControllerInvoker->__invoke(Array, Object(Slim\Http\Request),
Object(Slim\Http\Response), Array)
#10 /volume1/Galette/lib/Galette/Middleware/Authenticate.php(173):
Slim\Route->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response))
#11 [internal function]:
Galette\Middleware\Authenticate->__invoke(Object(Slim\Http\Request),
Object(Slim\Http\Response), Object(Slim\Route))
#12 /volume1/Galette/vendor/slim/slim/Slim/DeferredCallable.php(57):
call_user_func_array(Object(Galette\Middleware\Authenticate), Array)
#13 [internal function]:
Slim\DeferredCallable->__invoke(Object(Slim\Http\Request),
Object(Slim\Http\Response), Object(Slim\Route))
#14 /volume1/Galette/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70):
call_user_func(Object(Slim\DeferredCallable), Object(Slim\Http\Request),
Object(Slim\Http\Response), Object(Slim\Route))
#15 /volume1/Galette/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117):
Slim\Route->Slim\{closure}(Object(Slim\Http\Request),
Object(Slim\Http\Response))
#16 /volume1/Galette/vendor/slim/slim/Slim/Route.php(268):
Slim\Route->callMiddlewareStack(Object(Slim\Http\Request),
Object(Slim\Http\Response))
#17 /volume1/Galette/vendor/slim/slim/Slim/App.php(503):
Slim\Route->run(Object(Slim\Http\Request), Object(Slim\Http\Response))
#18
/volume1/Galette/vendor/akrabat/rka-slim-session-middleware/RKA/SessionMiddleware.php(47):
Slim\App->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response))
#19 [internal function]:
RKA\SessionMiddleware->__invoke(Object(Slim\Http\Request),
Object(Slim\Http\Response), Object(Galette\Core\SlimApp))
#20 /volume1/Galette/vendor/slim/slim/Slim/DeferredCallable.php(57):
call_user_func_array(Object(RKA\SessionMiddleware), Array)
#21 [internal function]:
Slim\DeferredCallable->__invoke(Object(Slim\Http\Request),
Object(Slim\Http\Response), Object(Galette\Core\SlimApp))
#22 /volume1/Galette/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70):
call_user_func(Object(Slim\DeferredCallable), Object(Slim\Http\Request),
Object(Slim\Http\Response), Object(Galette\Core\SlimApp))
#23 /volume1/Galette/lib/Galette/Middleware/SmartyCsrf.php(94):
Slim\App->Slim\{closure}(Object(Slim\Http\Request), Object(Slim\Http\Response))
#24 [internal function]:
Galette\Middleware\SmartyCsrf->__invoke(Object(Slim\Http\Request),
Object(Slim\Http\Response), Object(Closure))
#25 /volume1/Galette/vendor/slim/slim/Slim/DeferredCallable.php(57):
call_user_func_array(Object(Galette\Middleware\SmartyCsrf), Array)
#26 [internal function]:
Slim\DeferredCallable->__invoke(Object(Slim\Http\Request),
Object(Slim\Http\Response), Object(Closure))
#27 /volume1/Galette/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70):
call_user_func(Object(Slim\DeferredCallable), Object(Slim\Http\Request),
Object(Slim\Http\Response), Object(Closure))
#28 /volume1/Galette/vendor/slim/csrf/src/Guard.php(171):
Slim\App->Slim\{closure}(Object(Slim\Http\Request), Object(Slim\Http\Response))
#29 [internal function]: Slim\Csrf\Guard->__invoke(Object(Slim\Http\Request),
Object(Slim\Http\Response), Object(Closure))
#30 /volume1/Galette/vendor/slim/slim/Slim/DeferredCallable.php(57):
call_user_func_array(Object(Slim\Csrf\Guard), Array)
#31 [internal function]:
Slim\DeferredCallable->__invoke(Object(Slim\Http\Request),
Object(Slim\Http\Response), Object(Closure))
#32 /volume1/Galette/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70):
call_user_func(Object(Slim\DeferredCallable), Object(Slim\Http\Request),
Object(Slim\Http\Response), Object(Closure))
#33 /volume1/Galette/lib/Galette/Middleware/TrailingSlash.php(81):
Slim\App->Slim\{closure}(Object(Slim\Http\Request), Object(Slim\Http\Response))
#34 [internal function]:
Galette\Middleware\TrailingSlash->__invoke(Object(Slim\Http\Request),
Object(Slim\Http\Response), Object(Closure))
#35 /volume1/Galette/vendor/slim/slim/Slim/DeferredCallable.php(57):
call_user_func_array(Object(Galette\Middleware\TrailingSlash), Array)
#36 [internal function]:
Slim\DeferredCallable->__invoke(Object(Slim\Http\Request),
Object(Slim\Http\Response), Object(Closure))
#37 /volume1/Galette/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70):
call_user_func(Object(Slim\DeferredCallable), Object(Slim\Http\Request),
Object(Slim\Http\Response), Object(Closure))
#38 /volume1/Galette/lib/Galette/Middleware/Language.php(104):
Slim\App->Slim\{closure}(Object(Slim\Http\Request), Object(Slim\Http\Response))
#39 [internal function]:
Galette\Middleware\Language->__invoke(Object(Slim\Http\Request),
Object(Slim\Http\Response), Object(Closure))
#40 /volume1/Galette/vendor/slim/slim/Slim/DeferredCallable.php(57):
call_user_func_array(Object(Galette\Middleware\Language), Array)
#41 [internal function]:
Slim\DeferredCallable->__invoke(Object(Slim\Http\Request),
Object(Slim\Http\Response), Object(Closure))
#42 /volume1/Galette/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70):
call_user_func(Object(Slim\DeferredCallable), Object(Slim\Http\Request),
Object(Slim\Http\Response), Object(Closure))
#43 /volume1/Galette/lib/Galette/Middleware/Telemetry.php(146):
Slim\App->Slim\{closure}(Object(Slim\Http\Request), Object(Slim\Http\Response))
#44 [internal function]:
Galette\Middleware\Telemetry->__invoke(Object(Slim\Http\Request),
Object(Slim\Http\Response), Object(Closure))
#45 /volume1/Galette/vendor/slim/slim/Slim/DeferredCallable.php(57):
call_user_func_array(Object(Galette\Middleware\Telemetry), Array)
#46 [internal function]:
Slim\DeferredCallable->__invoke(Object(Slim\Http\Request),
Object(Slim\Http\Response), Object(Closure))
#47 /volume1/Galette/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70):
call_user_func(Object(Slim\DeferredCallable), Object(Slim\Http\Request),
Object(Slim\Http\Response), Object(Closure))
#48 /volume1/Galette/lib/Galette/Middleware/CheckAcls.php(144):
Slim\App->Slim\{closure}(Object(Slim\Http\Request), Object(Slim\Http\Response))
#49 [internal function]:
Galette\Middleware\CheckAcls->__invoke(Object(Slim\Http\Request),
Object(Slim\Http\Response), Object(Closure))
#50 /volume1/Galette/vendor/slim/slim/Slim/DeferredCallable.php(57):
call_user_func_array(Object(Galette\Middleware\CheckAcls), Array)
#51 [internal function]:
Slim\DeferredCallable->__invoke(Object(Slim\Http\Request),
Object(Slim\Http\Response), Object(Closure))
#52 /volume1/Galette/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70):
call_user_func(Object(Slim\DeferredCallable), Object(Slim\Http\Request),
Object(Slim\Http\Response), Object(Closure))
#53 /volume1/Galette/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117):
Slim\App->Slim\{closure}(Object(Slim\Http\Request), Object(Slim\Http\Response))
#54 /volume1/Galette/vendor/slim/slim/Slim/App.php(392):
Slim\App->callMiddlewareStack(Object(Slim\Http\Request),
Object(Slim\Http\Response))
#55 /volume1/Galette/vendor/slim/slim/Slim/App.php(297):
Slim\App->process(Object(Slim\Http\Request), Object(Slim\Http\Response))
#56 /volume1/Galette/includes/main.inc.php(159): Slim\App->run()
#57 /volume1/Galette/webroot/index.php(57): require_once('/volume1/Galett...')
#58 {main}
Toute aide sera la bienvenue !
Cordialement
Thierry
> Le 29 déc. 2021 à 21:19, Guillaume AGNIERAY <[email protected]> a écrit :
>
> Le Wed, 29 Dec 2021 01:17:36 +0100
> Thierry Marc <[email protected] <mailto:[email protected]>> a écrit :
>
>> Bonjour,
>
> Bonjour,
>
>
>> J’ai toujours le même problème avec Galette à jour à 0.9.6.1 : les
>> contributions sont affichées sans les centimes. Ca me pose double
>> difficulté :
>> - certains adhérents paient quelques centimes en plus quand ils
>> choisissent un paiement en ligne (frais de traitement). Ca m’arrange
>> de voir du premier coup d’oeil la façon de payer grâce au montant.
>> - si j’ai le malheur de cliquer sur une contribution, lire le contenu
>> (commentaires éventuels) et sortir de là en cliquant sur «
>> Enregistrer » … la contribution est mise à jour **sans les
>> centimes** en DB. J’ai donc effectivement corrompu des données.
>
> A priori c'est lié au changement de type ajouté dans cette modif :
> https://bugs.galette.eu/projects/galette/repository/62/revisions/27d1f48f8820a51b10437380e22564ca64e9df2e/diff/galette/lib/Galette/Entity/Contribution.php
>
> <https://bugs.galette.eu/projects/galette/repository/62/revisions/27d1f48f8820a51b10437380e22564ca64e9df2e/diff/galette/lib/Galette/Entity/Contribution.php>
>
> Remplacer (int) par (double) aux lignes 354 et 356 devrait rétablir
> l'affichage des décimales.
>
>
>> Est-ce que je rapporte un bug ?
>> Merci pour vos lumières,
>
> Oui c'est préférable.
> La modif concerne à la base les tests unitaires.
> Si ces variables ont été typées, il y a une raison.
> Je ne sais pas si c'est une simple erreur de typage ou si ça aura
> d'autres implications.
> --
>
> Guillaume
>
> --
> Galette users discussions
>
> https://galette.eu <https://galette.eu/> - https://doc.galette.eu
> <https://doc.galette.eu/>
> http://bugs.galette.eu/projects/galette/
> <http://bugs.galette.eu/projects/galette/>
>
> List documentation: https://listengine.tuxfamily.org/lists.galette.eu/users/
> <https://listengine.tuxfamily.org/lists.galette.eu/users/>