Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 9b3a6024

Von Bernd Bleßmann vor 12 Monaten hinzugefügt

  • ID 9b3a6024c45dbaf34a50b01b1aafc0dd242e13a4
  • Vorgänger 631ff72f
  • Nachfolger c32c45bf

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

Unterschiede anzeigen:

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