fix(histo-produit):respect of date range for query#139
fix(histo-produit):respect of date range for query#139RemiF1908 merged 12 commits intoCETEN-OpenBar:mainfrom
Conversation
BaptTF
left a comment
There was a problem hiding this comment.
La fonction CountTransactionsByTimestamp et GetTransactionsByTimestamp devrait être dans transactions_misc.go
Overall la solution est plutôt moyenne, j'aurais préférer un GET /transactions ou on peut donner différent paramètre pour filtrer ici on utilise un route spécifique pour un seul paramètre
- on fait encore beaucoup de calcul dans le front pour trié les donné ce qui devrait fait par la BD avec une request adapté.
Si possible ce qu'il faudrait faire c'est simplement affiché le résultat de la route de /transaction avec les différents paramètres donnés. Tu peux t’inspirer de la page admin/produit. ça permettrait de faire les calculs avec par MongoDB plutôt que dans le front par JavaScript.
BaptTF
left a comment
There was a problem hiding this comment.
- il faut pull main pour ne plus avoir de conflit dans l'autogen
- /comptoir/c/transaction ne fonctionne pas
- le calcul du nombre de produit commander est faux il considère les produits annulés dans une commande
Il manque quelque chose comme ça
"items.state": {
$ne: "canceled"
},
state: "finished"
}
Et enfin quel galère de testé alors que les branches sont divergentes
aripot007
left a comment
There was a problem hiding this comment.
Encore quelques détails à régler, surtout au niveau de la requête mongodb (hésite pas a me mp sur discord si besoin), sinon ça a l'air good !
| } | ||
| } | ||
|
|
||
| let todayMorning = new Date(new Date().toLocaleDateString()); |
There was a problem hiding this comment.
Il faut éviter de construire une Date en utilisant le string d'une autre Date, ça peut poser problème selon la locale du navigateur (par exemple le 12 Sept. 2025 avec la locale en anglais donnera "09/12/2025" donc tu récupère le 9 Décembre 2025).
Si tu veux juste la date actuelle à minuit, tu peux juste définir l'heure à 0.
| let todayMorning = new Date(new Date().toLocaleDateString()); | |
| let todayMorning = new Date(); | |
| todayMorning.setHours(0,0,0,0); |
| if state != "" { | ||
| itemsElemMatch["state"] = bson.M{"$ne": "canceled"} | ||
| } |
There was a problem hiding this comment.
Je suis pas fan de réutiliser le paramètre state (qui sert au départ pour les transactions) pour déterminer si on veut filtrer l'état des items de la transaction. Avec cette implémentation, on ne peut pas récupérer une transaction avec un état particulier si tous ses items sont annulés par exemple. Ce serait plus propre d'ajouter un paramètre pour ça.
En dehors de ça, juste pour vérifier que j'ai bien compris ce que t'essayais de faire : on est d'accord qu'avec cette requête, tu veux pouvoir récupérer les transactions qui contiennent un certain item, sans compter les transactions annulées ou les transactions dans lesquelles cet item est annulé ?
closes #67