Merge branch 'mahnungsrechnungen-tax_id-in-acc_trans'
authorMoritz Bunkus <m.bunkus@linet-services.de>
Wed, 8 Jan 2014 13:51:58 +0000 (14:51 +0100)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Wed, 8 Jan 2014 13:51:58 +0000 (14:51 +0100)
SL/CP.pm
SL/Controller/CustomerVendor.pm

index 21e74de..e2b9f48 100644 (file)
--- a/SL/CP.pm
+++ b/SL/CP.pm
@@ -147,23 +147,23 @@ sub get_openinvoices {
 
   my $buysell = $form->{vc} eq 'customer' ? "buy" : "sell";
   my $arap = $form->{arap} eq "ar" ? "ar" : "ap";
-  my $invnumber = $form->{invnumber};
-  $invnumber =~ s/^\s+//m;
-  $invnumber =~ s/\s+$//m;
-  
-  my $whereinvoice = $invnumber ? qq| AND a.invnumber LIKE '| . $invnumber . qq|' | : undef;
+
+  my @values = (conv_i($form->{"${vc}_id"}), "$form->{currency}");
+  my $whereinvoice = '';
+  if ($::form->{invnumber}) {
+    $whereinvoice = ' AND a.invnumber LIKE ? ';
+    push @values, $::form->{invnumber};
+  }
 
   my $query =
      qq|SELECT a.id, a.invnumber, a.transdate, a.amount, a.paid, cu.name AS curr | .
      qq|FROM $arap a | .
      qq|LEFT JOIN currencies cu ON (cu.id=a.currency_id)| .
      qq|WHERE (a.${vc}_id = ?) AND cu.name = ? AND NOT (a.amount = a.paid)| .
-        $whereinvoice .
+     $whereinvoice .
      qq|ORDER BY a.id|;
-        
-  my $sth = prepare_execute_query($form, $dbh, $query,
-                                  conv_i($form->{"${vc}_id"}),
-                                  "$form->{currency}");
+
+  my $sth = prepare_execute_query($form, $dbh, $query, @values);
 
   $form->{PR} = [];
   while (my $ref = $sth->fetchrow_hashref("NAME_lc")) {
index e5cb556..dcb8b2d 100644 (file)
@@ -6,6 +6,7 @@ use parent qw(SL::Controller::Base);
 use SL::JSON;
 use SL::DBUtils;
 use SL::Helper::Flash;
+use SL::Locale::String;
 
 use SL::DB::Customer;
 use SL::DB::Vendor;
@@ -28,7 +29,6 @@ __PACKAGE__->run_before(
     $::auth->assert('customer_vendor_edit');
   }
 );
-
 __PACKAGE__->run_before(
   '_instantiate_args',
   only => [
@@ -62,6 +62,9 @@ __PACKAGE__->run_before(
   ]
 );
 
+__PACKAGE__->run_before('normalize_name');
+
+
 sub action_add {
   my ($self) = @_;
 
@@ -167,34 +170,34 @@ sub _save {
 sub action_save {
   my ($self) = @_;
 
-  my $pattern = '[ \t\n\r]+';
-  my $name = $self->{cv}->name;
-  $name =~ s/^$pattern//;
-  $name =~ s/$pattern$//;
-  $name =~ s/$pattern/ /g;
-  if ( $name eq '' ) {
-    $::form->dberror( $::locale->text('Customer missing!') );
+  if (!$self->{cv}->name) {
+    flash('error', t8('Customer missing!'));
+    $self->_pre_render();
+    $self->render(
+      'customer_vendor/form',
+      title => ($self->is_vendor() ? t8('Edit Vendor') : t8('Edit Customer')),
+      %{$self->{template_args}}
+    );
   } else {
-    $self->{cv}->name($name);
-  }
 
-  $self->_save();
+    $self->_save();
 
-  my @redirect_params = (
-    action => 'edit',
-    id     => $self->{cv}->id,
-    db     => ($self->is_vendor() ? 'vendor' : 'customer'),
-  );
+    my @redirect_params = (
+      action => 'edit',
+      id     => $self->{cv}->id,
+      db     => ($self->is_vendor() ? 'vendor' : 'customer'),
+    );
 
-  if ( $self->{contact}->cp_id ) {
-    push(@redirect_params, contact_id => $self->{contact}->cp_id);
-  }
+    if ( $self->{contact}->cp_id ) {
+      push(@redirect_params, contact_id => $self->{contact}->cp_id);
+    }
 
-  if ( $self->{shipto}->shipto_id ) {
-    push(@redirect_params, shipto_id => $self->{shipto}->shipto_id);
-  }
+    if ( $self->{shipto}->shipto_id ) {
+      push(@redirect_params, shipto_id => $self->{shipto}->shipto_id);
+    }
 
-  $self->redirect_to(@redirect_params);
+    $self->redirect_to(@redirect_params);
+  }
 }
 
 sub action_save_and_close {
@@ -859,4 +862,15 @@ sub _pre_render {
   $::request->{layout}->add_javascripts('kivi.CustomerVendor.js');
 }
 
+sub normalize_name {
+  my ($self) = @_;
+
+  return unless $self->{cv};
+  my $name = $self->{cv}->name;
+  $name =~ s/\s+$//;
+  $name =~ s/^\s+//;
+  $name =~ s/\s+/ /g;
+  $self->{cv}->name($name);
+}
+
 1;