Projet

Général

Profil

Actions

Anomalie #755

fermé

Ventilation sur don impossible pour une transaction

Ajouté par July Schatten il y a environ 11 ans. Mis à jour il y a environ 11 ans.

Statut:
Fermé
Priorité:
Bas
Assigné à:
Catégorie:
Database
Version cible:
Début:
12/12/2013
Echéance:
% réalisé:

100%

Temps estimé:
Version utilisée:

Description

Bonjour,
Lors de l'ajout de contributions sur une transaction, seules celles ayant la propriété d'allonger la durée de cotisation permettent de générer un menu valide pour le type de contribution dans le formulaire final de saisie des détails.

Le champs type de contribution étant obligatoire et le menu vide, il est alors impossible de finaliser la saisie.
En guise de test, l'ajout de la propriété au don pécuniaire a permis d'obtenir la génération d'un menu valide.

Merci
--
July

Mis à jour par Johan Cwiklinski il y a environ 11 ans

  • Statut changé de Nouveau à Commentaire

Je ne parviens pas à reproduire ce problème. Que ce soit lors de la ventilation d'une transaction, ou la création directe d'une contribution, j'ai bien les différents types de contributions dans la liste.

Il faudrait voir les logs (Galette et serveur), je suppose que le problème est ailleurs.

Mis à jour par July Schatten il y a environ 11 ans

Voici le message vu dans les logs :
2013-12-12 08:28:00 - 3 - Galette\Entity\Entitled::getList | SQLSTATE[HY000]: General error: 1 no such column: false

La base utilisée est SQLite.
Le navigateur utilisé est Firefox 26.

Mis à jour par Johan Cwiklinski il y a environ 11 ans

  • Statut changé de Commentaire à Nouveau
  • Priorité changé de Normal à Bas

OK, c'est donc spécifique à SQLite... Que je ne teste pour ainsi dire pas (je passe déjà assez de temps à tester les deux autres).

Je verrai lorsque j'en aurai le temps si ce problème peut être corrigé facilement.

Mis à jour par Johan Cwiklinski il y a environ 11 ans

Il faudra davantage d'informations, comme la requête exécutée. Le plus simple est de passer en mode DEV (cf. http://galette.eu/documentation/fr/development/debug.html?highlight=d%C3%A9veloppement#les-modes), de reproduire l'erreur et de consulter le log à nouveau.

Mis à jour par July Schatten il y a environ 11 ans

Voici la log :

2013-12-20 22:45:01 - 7 - [Db] Database connection was successfull! 
2013-12-20 22:45:02 - 7 - [Galette\Core\History|Pagination] Setting property `ordered`
2013-12-20 22:45:07 - 7 - [Db] Database connection was successfull!
2013-12-20 22:45:07 - 7 - [Galette\Core\History|Pagination] Setting property `ordered`
2013-12-20 22:45:07 - 7 - [MembersList] Getting property `email_filter`
2013-12-20 22:45:07 - 7 - [MembersList] Getting property `email_filter`
2013-12-20 22:45:07 - 7 - [MembersList] Getting property `filter_str`
2013-12-20 22:45:07 - 7 - [MembersList] Getting property `membership_filter`
2013-12-20 22:45:07 - 7 - [MembersList] Getting property `account_status_filter`
2013-12-20 22:45:07 - 7 - [MembersList] Getting property `group_filter`
2013-12-20 22:45:07 - 7 - [MembersList] Getting property `orderby`
2013-12-20 22:45:07 - 7 - [Galette\Filters\MembersList|Pagination] Getting property `orderby`
2013-12-20 22:45:07 - 7 - [MembersList] Setting property `query`
2013-12-20 22:45:07 - 7 - [MembersList] Getting property `query`
2013-12-20 22:45:07 - 7 - The following query will be executed:
SELECT DISTINCT "a"."id_adh", "a"."nom_adh", "a"."prenom_adh", "p".* FROM "galette_adherents" AS "a"
INNER JOIN "galette_statuts" AS "p" ON a.id_statut=p.id_statut ORDER BY "nom_adh" ASC, "prenom_adh" ASC
2013-12-20 22:45:07 - 7 - [Db] Database connection was successfull!
2013-12-20 22:45:07 - 7 - [Galette\Core\History|Pagination] Setting property `ordered`
2013-12-20 22:45:12 - 7 - [Db] Database connection was successfull!
2013-12-20 22:45:12 - 7 - [Galette\Core\History|Pagination] Setting property `ordered`
2013-12-20 22:45:12 - 7 - Query was: SELECT DISTINCT "galette_types_cotisation"."id_type_cotis", "galette_types_cotisation"."libelle_type_cotis" FROM "galette_types_cotisation" WHERE (cotis_extension = false) ORDER BY "id_type_cotis" ASC
2013-12-20 22:45:12 - 7 - [MembersList] Getting property `email_filter`
2013-12-20 22:45:12 - 7 - [MembersList] Getting property `email_filter`
2013-12-20 22:45:12 - 7 - [MembersList] Getting property `filter_str`
2013-12-20 22:45:12 - 7 - [MembersList] Getting property `membership_filter`
2013-12-20 22:45:12 - 7 - [MembersList] Getting property `account_status_filter`
2013-12-20 22:45:12 - 7 - [MembersList] Getting property `group_filter`
2013-12-20 22:45:12 - 7 - [MembersList] Getting property `orderby`
2013-12-20 22:45:12 - 7 - [Galette\Filters\MembersList|Pagination] Getting property `orderby`
2013-12-20 22:45:12 - 7 - [MembersList] Setting property `query`
2013-12-20 22:45:12 - 7 - [MembersList] Getting property `query`
2013-12-20 22:45:12 - 7 - The following query will be executed:
SELECT DISTINCT "a"."id_adh", "a"."nom_adh", "a"."prenom_adh", "p".* FROM "galette_adherents" AS "a"
INNER JOIN "galette_statuts" AS "p" ON a.id_statut=p.id_statut ORDER BY "nom_adh" ASC, "prenom_adh" ASC
2013-12-20 22:45:13 - 7 - [Db] Database connection was successfull!
2013-12-20 22:45:13 - 7 - [Galette\Core\History|Pagination] Setting property `ordered`

Mis à jour par Johan Cwiklinski il y a environ 11 ans

  • Version cible mis à 0.7.8
  • Assigné à mis à Johan Cwiklinski
  • Catégorie changé de IHM à Database
  • Statut changé de Nouveau à In Progress

Je n'ai pas trouvé de solution réellement propre ; voici un correctif qui fonctionne :

diff --git a/galette/lib/Galette/Entity/Entitled.php b/galette/lib/Galette/Entity/Entitled.php
index 7443659..d222149 100644
--- a/galette/lib/Galette/Entity/Entitled.php
+++ b/galette/lib/Galette/Entity/Entitled.php
@@ -235,7 +235,11 @@ abstract class Entitled
                 if ( $extent === true ) {
                     $select->where($this->_fthird . ' = ?', $extent);
                 } else if ( $extent === false ) {
-                    $select->where($this->_fthird . ' = false');
+                    if ( TYPE_DB === 'sqlite' ) {
+                        $select->where($this->_fthird . ' = 0');
+                    } else {
+                        $select->where($this->_fthird . ' = false');
+                    }
                 }
             }

Je crains que ce problème ne se pose également à d'autres endroits, ce n'est pas le seul endroit dans le code où l'on interroge une valeur "false".

Mis à jour par Johan Cwiklinski il y a environ 11 ans

  • Statut changé de In Progress à Résolu
  • % réalisé changé de 0 à 100

Mis à jour par Johan Cwiklinski il y a environ 11 ans

  • Statut changé de Résolu à Fermé
Actions

Formats disponibles : Atom PDF