Le 24 septembre 2017 22:00:43 GMT+02:00, Nicolas Guillerm <[email protected]> a écrit : >Bonjour, > > > >J’ai commencé à naviguer dans la nouvelle version 0.9rc1, mais j’ai pu >constater qu’il n’y a pas eu de modification sur un point de c’est >découvert ressemant en faisant un peu de nettoyage dans notre base de >données : > >Lors de l’effacement d’un adhérent, les transactions et contributions >qui lui sont liées sont bien effacées. Par contre comme une transaction >peut contenir des contributions d’autre adhérents, ces contributions se >retrouvent avec une valeur trans_id inconsistante, alors qu’elle >devrait être remise à NULL. > > > >J’ai essayé d’intercaler une requete UPDATE dans Members.php, mais je >ne suis pas très à l’aise avec $zdb. > >Je ne sais pas comment faire une recheche dans une recheche : > > > >//delete contributions > >$del_qry = $zdb->delete(Contribution::TABLE); > >$del_qry->where->in( > > self::PK, $list > >); > >$del = $zdb->execute($del_qry); > > > >+//***NG: Update trans_id of other contributions > >+$update = $zdb->update(Contribution::TABLE); > >+$update->set( > >+ array(Transaction::PK => null) > >+)->where->in(Transaction::PK, >$zdb->select(Transaction::TABLE)->where->in(self::PK, $list)); > >+); > >+$del = $zdb->execute($update); > > > >//delete transactions > >$del_qry = $zdb->delete(Transaction::TABLE); > >$del_qry->where->in(self::PK, $list); > >$del = $zdb->execute($del_qry); > > > > > >Ou alors, il faut d’abord extraire sous forme de liste toutes les >transactions à effacer, pour mettre à jour les contributions. Puis on >utilise cette même liste pour effacer les transactions. > > > >Cordialement, > >Nicolas Guillerm
Salut, Je ne pense pas que ce souci ait été remonté auparavant. Pourrais tu ouvrir un ticket sur le tracker s'il te plaît ? Je n'ai pas vraiment le temps et regarder çà de plus près, je pars en déplacement. Je vois à priori 2 solutions : - lister les transactions à modifier puis effectivement les mettre à jour, - utiliser une jointure (si toutefois c'est possible). Dans tous les cas, une contrainte devrait être posée sur la base pour éviter ça à l'avenir, et la mise à jour devra nettoyer ce qui est incorrect (après la 0.9 qui ne modifiera pas la base). ++ Johan -- Galette users discussions http://galette.eu - http://galette.eu/documentation http://bugs.galette.eu/projects/galette/ List documentation: https://listengine.tuxfamily.org/lists.galette.eu/users/
