facturation: suppression d'un pool définitif (#89732) #187
No reviewers
Labels
No Label
No Milestone
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: entrouvert/lingo#187
Loading…
Reference in New Issue
No description provided.
Delete Branch "wip/89732-invoicing-delete-pool"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
WIP: facturation: suppression d'un pool définitif (#89732)to facturation: suppression d'un pool définitif (#89732)(Je commence à relire.)
Quelques petits trucs vus au passage.
@ -112,1 +113,4 @@
self.invoice.cancelled_at = now()
self.invoice.cancelled_by = user
self.invoice.cancellation_reason = InvoiceCancellationReason.objects.get_or_create(
slug='basket-cancelled', defaults={'label': _('Basket cancelled')}
Ok mais à ne pas taper directement un
.get_or_create
sur le libellé on va se retrouver avec des motifs d’annulation dont le slug est en anglais, et d’autres, définies par les régisseurs, dont le slug est en français. Est-ce que c’est grave ?Et le cas d’un admin fonctionnel qui supprime un motif d’annulation par erreur, puis le crée à nouveau, sauf qu’il n’aura plus le même slug, et qu’il ne ressortira plus dans ce get_or_create, est-ce que c’est problématique ?
En effet, je vais changer ça et mettre le slug dans le get_or_create, le label dans defaults, comme pour PaymentType.Et c'est déjà le cas, fatigue :)Non, je ne pense pas que ce soit gênant d'avoir des slugs en français et en anglais.
En théorie ce sont des motifs d'annulation qui ne seront pas créés pour les besoins des régisseurs, je doute qu'ils anticipent le besoin d'avoir un motif "panier annulé" :)
Donc à partir du moment où on aura une première annulation de panier avec annulation de facture définitive, ce motif existera et ne pourra pas être supprimé.
D’ac, je comprends mieux, merci.
Ah oui ok c’est le bout de compréhension fonctionnelle du truc qui me manquait, merci.
@ -121,2 +126,4 @@
if self.invoice_id:
self.invoice.cancelled_at = now()
self.invoice.cancellation_reason = InvoiceCancellationReason.objects.get_or_create(
slug='basket-expired', defaults={'label': _('Basket expired')}
(Même question ici sur la pertinence de chopper les motifs d’annulation par leur slug plutôt que par leur libellé ?)
Idem, ça ne me semble pas problématique
Yes, vu, merci.
@ -0,0 +27,4 @@
),
migrations.AddField(
model_name='invoice',
name='cancellation_description',
Ça m’a l’air un peu violent d’avoir un TextField juste pour ce qui a priori est une description succincte, non ?
Edit: je regardais comment c’était dans les clients d’API authentic et en fait c’est pareil, un TextField aussi pour la description de chacun des clients. Ok.
et note: la même mécanique est déjà en place pour les annulations de paiement :)
Aussi, oui :)
Très bien, laissons ainsi.