Revision 2ddb7683
Von Bernd Bleßmann vor etwa 1 Jahr hinzugefügt
SL/DB/Order.pm | ||
---|---|---|
83 | 83 |
__PACKAGE__->before_save('_before_save_remove_empty_custom_shipto'); |
84 | 84 |
__PACKAGE__->before_save('_before_save_set_custom_shipto_module'); |
85 | 85 |
__PACKAGE__->after_save('_after_save_link_records'); |
86 |
__PACKAGE__->after_save('_after_save_close_reachable_intakes'); # uses linked records (order matters) |
|
86 | 87 |
|
87 | 88 |
# hooks |
88 | 89 |
|
... | ... | |
152 | 153 |
); |
153 | 154 |
} |
154 | 155 |
|
156 |
sub _after_save_close_reachable_intakes { |
|
157 |
my ($self) = @_; |
|
158 |
|
|
159 |
# Close reachable sales order intakes in the from-workflow if this is a sales order |
|
160 |
if (SALES_ORDER_TYPE() eq $self->type) { |
|
161 |
my $lr = $self->linked_records(direction => 'from', recursive => 1); |
|
162 |
$lr = [grep { 'SL::DB::Order' eq ref $_ && !$_->closed && $_->is_type(SALES_ORDER_INTAKE_TYPE()) } @$lr]; |
|
163 |
if (@$lr) { |
|
164 |
SL::DB::Manager::Order->update_all(set => {closed => 1}, |
|
165 |
where => [id => [map {$_->id} @$lr]]); |
|
166 |
} |
|
167 |
} |
|
168 |
} |
|
155 | 169 |
|
156 | 170 |
# methods |
157 | 171 |
|
Auch abrufbar als: Unified diff
S:D:Order: Auftrags-Eingäng schließen, wenn AB erstellt
Wenn eine AB gespeichert wird und im vorhergehenden Workflow ein
AE vorhanden ist, so wird der AE geschlossen.
Umsetzung als after-save-Hook.
Anpassung nach RecordController/Rebase