+ } else {
+ my $customernumber = SL::TransNumber->new(type => 'customer',
+ dbh => $dbh,
+ number => $form->{customernumber},
+ business_id => $form->{business},
+ save => 1);
+ $form->{customernumber} = $customernumber->create_unique unless $customernumber->is_unique;
+
+ $query = qq|SELECT nextval('id')|;
+ ($form->{id}) = selectrow_query($form, $dbh, $query);
+
+ $query = qq|INSERT INTO customer (id, name) VALUES (?, '')|;
+ do_query($form, $dbh, $query, $form->{id});
+ }
+
+ $query = qq|UPDATE customer SET | .
+ qq|customernumber = ?, | .
+ qq|name = ?, | .
+ qq|greeting = ?, | .
+ qq|department_1 = ?, | .
+ qq|department_2 = ?, | .
+ qq|street = ?, | .
+ qq|zipcode = ?, | .
+ qq|city = ?, | .
+ qq|country = ?, | .
+ qq|homepage = ?, | .
+ qq|contact = ?, | .
+ qq|phone = ?, | .
+ qq|fax = ?, | .
+ qq|email = ?, | .
+ qq|cc = ?, | .
+ qq|bcc = ?, | .
+ qq|notes = ?, | .
+ qq|discount = ?, | .
+ qq|creditlimit = ?, | .
+ qq|terms = ?, | .
+ qq|business_id = ?, | .
+ qq|taxnumber = ?, | .
+ qq|language = ?, | .
+ qq|account_number = ?, | .
+ qq|bank_code = ?, | .
+ qq|bank = ?, | .
+ qq|iban = ?, | .
+ qq|bic = ?, | .
+ qq|obsolete = ?, | .
+ qq|direct_debit = ?, | .
+ qq|ustid = ?, | .
+ qq|username = ?, | .
+ qq|salesman_id = ?, | .
+ qq|language_id = ?, | .
+ qq|payment_id = ?, | .
+ qq|taxzone_id = ?, | .
+ qq|user_password = ?, | .
+ qq|c_vendor_id = ?, | .
+ qq|klass = ?, | .
+ qq|curr = ? | .
+ qq|WHERE id = ?|;
+ my @values = (
+ $form->{customernumber},
+ $form->{name},
+ $form->{greeting},
+ $form->{department_1},
+ $form->{department_2},
+ $form->{street},
+ $form->{zipcode},
+ $form->{city},
+ $form->{country},
+ $form->{homepage},
+ $form->{contact},
+ $form->{phone},
+ $form->{fax},
+ $form->{email},
+ $form->{cc},
+ $form->{bcc},
+ $form->{notes},
+ $form->{discount},
+ $form->{creditlimit},
+ conv_i($form->{terms}),
+ conv_i($form->{business}),
+ $form->{taxnumber},
+ $form->{language},
+ $form->{account_number},
+ $form->{bank_code},
+ $form->{bank},
+ $form->{iban},
+ $form->{bic},
+ $form->{obsolete} ? 't' : 'f',
+ $form->{direct_debit} ? 't' : 'f',
+ $form->{ustid},
+ $form->{username},
+ conv_i($form->{salesman_id}),
+ conv_i($form->{language_id}),
+ conv_i($form->{payment_id}),
+ conv_i($form->{taxzone_id}, 0),
+ $form->{user_password},
+ $form->{c_vendor_id},
+ conv_i($form->{klass}),
+ substr($form->{currency}, 0, 3),
+ $form->{id}
+ );
+ do_query( $form, $dbh, $query, @values );
+
+ $query = undef;
+ my @columns = qw(cp_title cp_givenname cp_name cp_email cp_phone1 cp_phone2 cp_abteilung cp_fax
+ cp_mobile1 cp_mobile2 cp_satphone cp_satfax cp_project cp_privatphone cp_privatemail cp_birthday cp_gender
+ cp_street cp_zipcode cp_city);
+ @values = map { $_ eq 'cp_gender' ? ($form->{$_} eq 'f' ? 'f' : 'm') : $form->{$_} } @columns;
+
+ if ( $form->{cp_id} ) {
+ $query = qq|UPDATE contacts SET | . join(', ', map { "${_} = ?" } @columns) . qq| WHERE cp_id = ?|;
+ push @values, $form->{cp_id};
+
+ } elsif ( $form->{cp_name} || $form->{cp_givenname} ) {
+ $query = qq|INSERT INTO contacts (| . join(', ', 'cp_cv_id', @columns) . qq|) VALUES (?, | . join(', ', ('?') x scalar(@columns)) . qq|)|;
+ unshift @values, $form->{id};