Agenda : souci avec fontion calculOccurence()

Bonjour @Loic,

Je viens de voir un truc étrange sur la fonction calculOccurence() du plugin en beat

J’ai un évènement répétitif (1x par semaine) et je mets parfois des dates d’inclusion exclusion :

Ce matin en jouant avec la fonction pour retrouver le nombre d’occurrence sur le mois, j’ai découvert une petite ano :

[2020-11-26 11:18:51][SCENARIO] Lancement du scénario en mode synchrone
[2020-11-26 11:18:51][SCENARIO] Start : Scénario lancé manuellement.
[2020-11-26 11:18:51][SCENARIO] Exécution du sous-élément de type [action] : code
[2020-11-26 11:18:51][SCENARIO] Exécution d'un bloc code
[2020-11-26 11:18:51][SCENARIO] id :139
[2020-11-26 11:18:51][SCENARIO] Quantité entre 20-11-01 00:00:00 et 20-11-30 23:59:59 => 5
[2020-11-26 11:18:51][SCENARIO] 2020-11-05 09:00:00 -> 2020-11-05 11:00:00
[2020-11-26 11:18:51][SCENARIO] 2020-11-12 09:00:00 -> 2020-11-12 11:00:00
[2020-11-26 11:18:51][SCENARIO] 2020-11-19 09:00:00 -> 2020-11-19 11:00:00
[2020-11-26 11:18:51][SCENARIO] 2020-11-26 09:00:00 -> 2020-11-26 11:00:00
[2020-11-26 11:18:51][SCENARIO] 2020-12-23 09:00:00 -> 2020-12-23 11:00:00

Donc si les bornes start/stop sont prises en compte pour le calcul de la répétition, il semble que ça ne fonctionne pas aussi bien les include :

 2020-12-23 09:00:00 -> 2020-12-23 11:00:00

C’est exactement le contenu de la config de l’évènement

Coté code du plugin… Il semble y avoir une inclusion sans vérif en ligne 735 si pas de : dans la chaine


Il faut faire un truc du genre

					} else {
						if (strtotime($date) >= strtotime($startDate) && strtotime($date) <= strtotime($endDate)  ){
							$includeDate[$date] = $date;
						}
					}

Salut
Peut être je sais pas… C’est comme pas mal de plugin on m’a forcé a faire enormement d’ajout dedans même quand je disais non et je ne suis donc plus capable de maintenir le plugin (je comprend plus du tout le code, j’ai pour habitude de plutôt en faire moins mais simple pour que ca soit maintenable, la c’est plus le cas dans le plugin et je n’ai plus les compétence pour le maintenir)

J’ai appliqué ta modification tel quel je ne sais pas jugé si c’est pertinent ou non et si ca va avoir des impacts.

Merci

C’est la phase beta qui va pouvoir confirmer les autres impacts, de mon coté, ça semble être plus conforme déjà

Re,

Ce bout de code est meilleur =>

						if (strtotime($date) >= $startTime && strtotime($date) <= $endTime){
							$includeDate[$date] = $date;
						}

Ok merci c’est mis

1 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.