Kundenstammdaten: Lieferadresse speichern, wenn beliebiges Feld gesetzt
authorMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 18 Jul 2016 08:20:40 +0000 (10:20 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 18 Jul 2016 08:23:44 +0000 (10:23 +0200)
Vorher wurde nur gespeichert, wenn der Name gesetzt war. Das ist
allerdings inkonsistent mit dem Verhalten von vor der Umstellung der
Maske auf das Controller-Modell. Weiterhin gibt es bei der
Lieferadressenbehandlung beim Drucken auch keine Sonderbehandlung mehr,
die vom Lieferadressen-Namen abhängt. Daher sollte das Speichern
ebenfalls nicht davon abhängen.

SL/Controller/CustomerVendor.pm

index b5c2151..fdccdc9 100644 (file)
@@ -3,6 +3,8 @@ package SL::Controller::CustomerVendor;
 use strict;
 use parent qw(SL::Controller::Base);
 
+use List::MoreUtils qw(any);
+
 use SL::JSON;
 use SL::DBUtils;
 use SL::Helper::Flash;
@@ -197,7 +199,7 @@ sub _save {
     }
 
     $self->{shipto}->trans_id($self->{cv}->id);
-    if( $self->{shipto}->shiptoname ne '' ) {
+    if(any { $self->{shipto}->$_ ne '' } qw(shiptoname shiptodepartment_1 shiptodepartment_2 shiptostreet shiptozipcode shiptocity shiptocountry shiptogln shiptocontact shiptophone shiptofax shiptoemail)) {
       $self->{shipto}->save(cascade => 1);
     }