nodebb-plugin-onekite-calendar 2.0.25 → 2.0.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/lib/admin.js +6 -1
- package/package.json +1 -1
- package/pkg/package/CHANGELOG.md +15 -0
- package/pkg/package/lib/admin.js +3 -0
- package/pkg/package/package.json +1 -1
- package/plugin.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Changelog – calendar-onekite
|
|
2
2
|
|
|
3
|
+
## 1.3.22
|
|
4
|
+
- ACP / Comptabilisation : le nombre de **sorties gratuites** correspond maintenant au **nombre de matériels sortis** (une réservation pouvant contenir plusieurs matériels).
|
|
5
|
+
|
|
6
|
+
## 1.3.21
|
|
7
|
+
- Comptabilisation : les **sorties gratuites annulées** ne sont plus comptées (elles sont exclues si `cancelledAt` est présent, même si le statut est resté `paid`).
|
|
8
|
+
|
|
9
|
+
## 1.3.20
|
|
10
|
+
- Temps réel : le **widget** (Calendrier 2 semaines) se met à jour dynamiquement comme la page calendrier (créations / changements de statut / annulations…), sans rechargement.
|
|
11
|
+
|
|
3
12
|
## 1.3.19
|
|
4
13
|
- Annulation : un validateur/gestionnaire peut désormais annuler **même sa propre** réservation après paiement (la restriction `cannot-cancel-paid` ne s'applique plus aux validateurs).
|
|
5
14
|
|
package/lib/admin.js
CHANGED
|
@@ -512,6 +512,9 @@ admin.getAccounting = async function (req, res) {
|
|
|
512
512
|
const r = await dbLayer.getReservation(rid);
|
|
513
513
|
if (!r) continue;
|
|
514
514
|
if (String(r.status) !== 'paid') continue;
|
|
515
|
+
// Defensive: if a reservation was cancelled but its status remained 'paid'
|
|
516
|
+
// (legacy data / edge cases), never count it in accounting.
|
|
517
|
+
if (r.cancelledAt) continue;
|
|
515
518
|
if (r.accPurgedAt) continue;
|
|
516
519
|
const start = parseInt(r.start, 10);
|
|
517
520
|
if (!Number.isFinite(start)) continue;
|
|
@@ -527,7 +530,9 @@ admin.getAccounting = async function (req, res) {
|
|
|
527
530
|
const endDate = formatFR(r.end);
|
|
528
531
|
|
|
529
532
|
if (isFree) {
|
|
530
|
-
|
|
533
|
+
// In accounting, "Sorties gratuites" should reflect the number of items actually taken out,
|
|
534
|
+
// not the number of reservation lines (a single reservation can include multiple items).
|
|
535
|
+
freeCount += Math.max(1, itemNames.length || 0);
|
|
531
536
|
} else {
|
|
532
537
|
paidCount += 1;
|
|
533
538
|
grandTotal += total;
|
package/package.json
CHANGED
package/pkg/package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog – calendar-onekite
|
|
2
2
|
|
|
3
|
+
## 1.3.21
|
|
4
|
+
- Comptabilisation : les **sorties gratuites annulées** ne sont plus comptées (elles sont exclues si `cancelledAt` est présent, même si le statut est resté `paid`).
|
|
5
|
+
|
|
6
|
+
## 1.3.20
|
|
7
|
+
- Temps réel : le **widget** (Calendrier 2 semaines) se met à jour dynamiquement comme la page calendrier (créations / changements de statut / annulations…), sans rechargement.
|
|
8
|
+
|
|
9
|
+
## 1.3.19
|
|
10
|
+
- Annulation : un validateur/gestionnaire peut désormais annuler **même sa propre** réservation après paiement (la restriction `cannot-cancel-paid` ne s'applique plus aux validateurs).
|
|
11
|
+
|
|
12
|
+
## 1.3.18
|
|
13
|
+
- Fix HelloAsso webhook : suppression d'une double déclaration `realtime` qui empêchait le plugin de se charger (SyntaxError).
|
|
14
|
+
|
|
15
|
+
## 1.3.17
|
|
16
|
+
- Temps réel : les **créations** (locations / évènements), **changements de statut** (validation, refus, annulation, paiement reçu) et **expirations** se répercutent automatiquement sur le calendrier pour **tous les utilisateurs connectés**, sans rechargement de page.
|
|
17
|
+
|
|
3
18
|
## 1.3.16
|
|
4
19
|
- Calendrier : le **jour actuel** n’est plus affiché comme indisponible (gris + panneau sens interdit). Seules les **dates passées** restent désactivées visuellement.
|
|
5
20
|
|
package/pkg/package/lib/admin.js
CHANGED
|
@@ -502,6 +502,9 @@ admin.getAccounting = async function (req, res) {
|
|
|
502
502
|
const r = await dbLayer.getReservation(rid);
|
|
503
503
|
if (!r) continue;
|
|
504
504
|
if (String(r.status) !== 'paid') continue;
|
|
505
|
+
// Defensive: if a reservation was cancelled but its status remained 'paid'
|
|
506
|
+
// (legacy data / edge cases), never count it in accounting.
|
|
507
|
+
if (r.cancelledAt) continue;
|
|
505
508
|
if (r.accPurgedAt) continue;
|
|
506
509
|
const start = parseInt(r.start, 10);
|
|
507
510
|
if (!Number.isFinite(start)) continue;
|
package/pkg/package/package.json
CHANGED
package/plugin.json
CHANGED