JeromeDevome / GRR

GRR Officiel - Copyright Team DEVOME
https://grr.devome.com
GNU General Public License v2.0
84 stars 53 forks source link

Deux reservations ont le même ID. #397

Open jfsenechal opened 1 week ago

jfsenechal commented 1 week ago

Décrivez le bogue Lorsqu'on tente de supprimer un réservation, le message Deux reservations ont le même ID. apparait Infos GRR Version de GRR : 4.3.7 Version PHP : 8.2 Problème suite à une installation ou mise à jour :

Reproduire Si il y a une répétition, regarde si plusieurs enregistrements dans la table entry_repeat Dans mon cas, le count renvoie 0 hors avec ce code if ($test != 1) ça fait une fatale error

La condiction ne devrait pas être $test > 1 ??

if ($repeat_id != 0)
    {
        $res = grr_sql_query("SELECT rep_type, end_date, rep_opt, rep_num_weeks FROM ".TABLE_PREFIX."_repeat WHERE id='".protect_data_sql($repeat_id)."'");
        if (!$res)
            fatal_error(0, grr_sql_error());
        $test = grr_sql_count($res);
        if ($test != 1)
            fatal_error(0, "Deux reservations ont le même ID.");

https://github.com/JeromeDevome/GRR/blob/v4.3.7/include/functions.inc.php#L3078

JeromeDevome commented 6 days ago

Bonjour, Je ne sais pas pourquoi il retourne 0, il me semble qu'au minimum c'est un. J'ai appliqué votre correction qui ne peut que fonctionner d253515e Bien joué ;)

jfsenechal commented 6 days ago

En fait le problème se pose avec des entrées qui ont un repeat ID mais aucune entrée dans la table repeat. Donc le base du soucis c 'est pq j'ai des entrées avec un repeat id sans enfants je n'ai pas identifié la cause.

Ma solution proposée permet de supprimer un enregistrement "corrompu"

Merci pour le suivis.