Revision a5b0b43c
Von Bernd Bleßmann vor mehr als 2 Jahren hinzugefügt
SL/Controller/Order.pm | ||
---|---|---|
65 | 65 |
__PACKAGE__->run_before('check_auth_for_edit', |
66 | 66 |
except => [ qw(edit show_customer_vendor_details_dialog price_popup load_second_rows close_quotations) ]); |
67 | 67 |
|
68 |
__PACKAGE__->run_before('recalc', |
|
69 |
only => [ qw(save save_as_new save_and_delivery_order save_and_invoice save_and_invoice_for_advance_payment |
|
70 |
save_and_final_invoice save_and_ap_transaction add_subversion |
|
71 |
print send_email) ]); |
|
72 |
|
|
73 |
__PACKAGE__->run_before('get_unalterable_data', |
|
74 |
only => [ qw(save save_as_new save_and_delivery_order save_and_invoice save_and_invoice_for_advance_payment |
|
75 |
save_and_final_invoice save_and_ap_transaction add_subversion |
|
76 |
print send_email) ]); |
|
77 |
|
|
78 | 68 |
# |
79 | 69 |
# actions |
80 | 70 |
# |
... | ... | |
2004 | 1994 |
sub save { |
2005 | 1995 |
my ($self) = @_; |
2006 | 1996 |
|
1997 |
$self->recalc(); |
|
1998 |
$self->get_unalterable_data(); |
|
1999 |
|
|
2007 | 2000 |
my $errors = []; |
2008 | 2001 |
my $db = $self->order->db; |
2009 | 2002 |
|
Auch abrufbar als: Unified diff
Auftrags-Controller: Neuberechnen und unveränderliche Daten immer vor Speichern
recalc() und get_unalterable_data() nicht mehr als run_before-Hook aufrufen,
sondern immer vor dem Speichern in der sub save().
Es gibt zuviele Actions, bei denen das gemacht werden muss und zu viele,
wo es nicht notwendig ist oder nicht geht, um dass vernünftig mit run_before
und only und except umzusetzen und nicht irgendwas zu übersehen.
Aufgefallen ist das, da einige workflow-Aktions, die den Beleg speichern,
nicht in der run_before-Liste waren. So wirkte sich z.B. eine Mengenänderung
in der Maske auf die Gesamtsumme aus, diese wurde aber dann bei dem Workflow
nicht gespeichert.
Das führte dann dazu, dass Summe im Bericht und Summe in der Belegmaske nicht
gleich waren.