LateralThoughts / systemi

Business As Usual
3 stars 2 forks source link

Rassembler les différents status de la facture dans un seul champ status #47

Closed vincentdoba closed 9 years ago

vincentdoba commented 9 years ago

En refléchissant au status sur les factures et en refaisant un schéma, j'ai constaté qu'en fait il n'y avait que 4 états possibles pour les factures :

Afin de simplifier les requêtes, on peut donc mettre ces 4 états dans un même champ status avec les noms suivants :

Les tâches à effectuer sont donc les suivantes :

Pour résumer et avoir une vision plus complète des changements de status, un petit schéma :

flux_invoice

On peut même à terme imaginer supprimer le status Créée en forçant l'allocation directement à la création de la facture.

vincentdoba commented 9 years ago

Les requêtes à jouer sur la base pour arriver au status unique :

ATTENTION : CES REQUÊTES DOIVENT ÊTRE JOUÉES DANS CET ORDRE

db.invoices.update({"canceled": true}, {$set: {"status":"canceled"}, $unset: {"paymentStatus": "", "canceled":"", "affectationStatus":""}},{"multi":true})
db.invoices.update({"paymentStatus": "paid"}, {$set: {"status":"paid"}, $unset: {"paymentStatus": "", "canceled":"", "affectationStatus":""}},{"multi":true})
db.invoices.update({"affectationStatus": "affected"}, {$set: {"status":"allocated"}, $unset: {"paymentStatus": "", "canceled":"", "affectationStatus":""}},{"multi":true})
db.invoices.update({"affectationStatus": "unaffected"}, {$set: {"status":"created"}, $unset: {"paymentStatus": "", "canceled":"", "affectationStatus":""}},{"multi":true})

Ces requêtes ont été testées sur ma (@vincentdoba) base locale et sur une copie de la base de production.

vincentdoba commented 9 years ago

J'ai joué les requêtes sur la base de prod. Avant cela j'ai copié la base de prod dans invoice@LT_BACKUP_ticket_47. Cette base pourra être supprimée d'ici un mois s'il n'y a pas de problèmes vis-à-vis de ce changement de modèle d'ici là.