Bonjour,
j'utilise Soplanning v1.39. J'ai remarqué une erreur lors de la gestion des conflits de ressources affectées à une ou plusieurs personnes : malgré l'exclusivité d'une ressource, le gestion du conflit renvoie toujours la ressource libre.
J'ai fini par trouver la cause : les requetes SQL dans la fonction 'checkConflitRessource' sont erronées.
J'ai corrigé comme ceci :
functioncheckConflitRessource($ressource,$date_debut,$date_fin,$user_id,$periode_id){............$sql="SELECT *, planning_user.nom AS nom_user";$sql.=" FROM planning_periode ";$sql.=" INNER JOIN planning_user ON planning_periode.user_id = planning_user.user_id ";/* $sql .= " WHERE (date_debut <= '" . $date_debut . "' AND date_fin >= '" . $date_fin . "')"; $sql .= " AND planning_periode.user_id = '" . $user_id . "' and planning_periode.ressource_id = '".$ressource."'"; */$sql.=" WHERE ((date_fin IS NOT NULL AND date_debut <= '".$date_debut."' AND date_fin >= '".$date_fin."')";$sql.=" OR (date_fin IS NULL AND date_debut = '".$date_debut."'))";$sql.=" AND planning_periode.ressource_id = '".$ressource."'";}else{$sql="SELECT *, planning_user.nom AS nom_user";$sql.=" FROM planning_periode ";$sql.=" INNER JOIN planning_user ON planning_periode.user_id = planning_user.user_id ";/* $sql .= " WHERE ((date_debut >= '" . $date_debut . "' AND date_debut <= '" . $date_fin . "')"; $sql .= " OR (date_fin IS NOT NULL AND date_fin >= '" . $date_debut . "' AND date_fin <= '" . $date_fin . "'))"; $sql .= " AND planning_periode.user_id = '" . $user_id . "' and planning_periode.ressource_id = '".$ressource."'";*/$sql.=" WHERE ((date_fin IS NOT NULL AND date_debut >= '".$date_debut."' AND date_fin <= '".$date_fin."')";$sql.=" OR (date_fin IS NOT NULL AND date_debut <= '".$date_debut."' AND date_fin >= '".$date_fin."')";$sql.=" OR (date_fin IS NOT NULL AND date_debut <= '".$date_debut."' AND date_fin >= '".$date_fin."')";$sql.=" OR (date_fin IS NOT NULL AND '".$date_debut."' >= date_debut AND '".$date_debut."' <= '".$date_fin."')";$sql.=" OR (date_fin IS NOT NULL AND '".$date_fin."' >= date_debut AND '".$date_fin."' <= '".$date_fin."')";$sql.=" OR (date_fin IS NULL AND date_debut >= '".$date_debut."' AND date_debut <= '".$date_fin."'))";$sql.=" AND planning_periode.ressource_id = '".$ressource."'";............
notez bien les morceaux de codes en commentaires !
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
View and moderate all "Help" comments posted by this user
Mark all as spam, and block user from posting to "Discussion"
Bonjour,
j'utilise Soplanning v1.39. J'ai remarqué une erreur lors de la gestion des conflits de ressources affectées à une ou plusieurs personnes : malgré l'exclusivité d'une ressource, le gestion du conflit renvoie toujours la ressource libre.
J'ai fini par trouver la cause : les requetes SQL dans la fonction 'checkConflitRessource' sont erronées.
J'ai corrigé comme ceci :
notez bien les morceaux de codes en commentaires !
Bonjour,
Merci pour le retour et la correction...
Je revérifie le code et réintègre la modification sur la prochaine version.