Affichage de la date de fin de récolte erroné en mode semaine
Summary
Lorsque les dates sont affichées en semaine, la date de fin de récolte est au premier jour (le lundi) de la dernière semaine au lieu du dernier jour (le dimanche)
Possible fixes
La fonction générique updateDateField de Plantingform.qml retranche 7 jours à la durée de récolte pour calculer le début de semaine quand il s'agit de la date de fin de récolte. Aussi bien si on met à jour le champ de début de récolte à partir de la date de fin (comportement normal) que si on met à jour le champ de fin de récolte à partir de la date de début de récolte (comportement non normal)
function updateDateField(from, duration, to, direction) {
if (duration.text === "") {
to.calendarDate = from.calendarDate;
} else if (settings.dateType === "week"
&& (to === endHarvestDateField || from === endHarvestDateField)) {
to.calendarDate = QrpDate.addDays(from.calendarDate,
(Number(duration.text) - 7) * direction);
} else {
to.calendarDate = QrpDate.addDays(from.calendarDate,
Number(duration.text) * direction);
}
}
Mes connaissances en C++ étant anciennes et QT nulles, la plus bête solution je puisse suggérer serait de différencier les deux cas de mis à jour :
- Depuis le champ endHarvestDateField : -7 jours pour calculer le début de la période de récolte
- Vers le champ endHarvestDateField : -1 jour pour calculer la date de fin de la période de récolte
function updateDateField(from, duration, to, direction) {
if (duration.text === "") {
to.calendarDate = from.calendarDate;
} else if (settings.dateType === "week"
&& to === endHarvestDateField {
to.calendarDate = QrpDate.addDays(from.calendarDate,
(Number(duration.text) - 1) * direction);
} else if (settings.dateType === "week"
&& from === endHarvestDateField {
to.calendarDate = QrpDate.addDays(from.calendarDate,
(Number(duration.text) - 7) * direction);
} else {
to.calendarDate = QrpDate.addDays(from.calendarDate,
Number(duration.text) * direction);
}
}