facturation: au niveau des lignes de facturation, archiver un code d'imputation comptable (#89025) #184
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#184
Loading…
Reference in New Issue
No description provided.
Delete Branch "wip/89025-invoicing-accounting-code"
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: au niveau des lignes de facturation, archiver un code d'imputation comptable (#89025)to facturation: au niveau des lignes de facturation, archiver un code d'imputation comptable (#89025)(Je commence à relire.)
572a909f68
to049d63acbe
Quelques remarques après une première relecture commit par commit.
@ -413,0 +420,4 @@
line_model = InvoiceLine
if self.pool.draft:
line_model = DraftInvoiceLine
lines = line_model.objects.filter(accounting_code__iexact=value).values('invoice')
C’est pas un
accounting_code__icontains
qu’on souhaiterait plutôt avoir ici ?je demande confirmation à stef, mais mon intuition c'était que les plans comptables étant "à tiroir" il était plus pratique d'avoir un match exact:
sous le code 4 ou a 41, 42, 43 etc
sous le code 41 ou a 411, 412, 413 etc
stef confirme: match exact
Ok.
@ -715,0 +736,4 @@
def filter_accounting_code(self, queryset, name, value):
if not value:
return queryset
lines = InvoiceLine.objects.filter(accounting_code__iexact=value).values('invoice')
Pareil que plus haut, intuitivement je me dis que c’est un
__icontains
qu’on aurait intérêt à avoir (?)@ -884,3 +886,3 @@
regie = models.ForeignKey(Regie, on_delete=models.PROTECT)
label = models.CharField(_('Label'), max_length=300)
total_amount = models.DecimalField(max_digits=9, decimal_places=2, default=0)
regie = models.ForeignKey(Regie, on_delete=models.PROTECT)
Une ligne qui bouge pour rien ici (?) (et aussi un saut de ligne pour rien juste en dessous (?))
j'ai fait un peu de rangement :)
Ok.
@ -766,6 +767,7 @@ class AbstractJournalLine(models.Model):
'Effort rate target is not a %(wanted)s: %(effort_rate_target)s'
),
'PricingEffortRateTargetValueError': _('Effort rate target bad value: %(effort_rate_target)s'),
'PricingAccountingCodeError': _('Impossible to determine an accounting code'),
Peut-être que comme pour la ligne juste au dessus concernant le gabarit effort_rate_target, on aurait intérêt à préciser la valeur de gabarit erronée qui mène à l’erreur
PricingAccountingCodeError
?la ligne au dessus, c'est le résultat du gabarit qui donne une valeur négative, on note dans l'erreur la valeur qui a été produite.
pour
PricingAccountingCodeError
, on n'a pas réussi à compiler le gabarit.PricingEffortRateTargetError
est sur le même modèle, entre autres.Ah oui ok j’avais pas capté cette subtilité, merci.
@ -727,6 +755,14 @@ class Pricing(WithApplicationMixin, models.Model):
'bounded_pricing': adjusted_pricing,
}
def compute_accounting_code(self, request, original_context, user_external_id, payer_external_id):
Peut-être, dans ce commit 0006 qui introduit la méthode
Pricing.compute_account_code
, avoir d’ores et déjà un bout de test qui vérifie le rendu d’une valeur de gabarit (au lieu des'424242'
en dur dans les tests comme c’est le cas actuellement) ?Edit: c’est déjà le cas, pardon.