qq|user_password = ?, | .
qq|c_vendor_id = ?, | .
qq|klass = ?, | .
- qq|curr = ? | .
+ qq|curr = ?, | .
+ qq|taxincluded_checked = ? | .
qq|WHERE id = ?|;
my @values = (
$form->{customernumber},
$form->{c_vendor_id},
conv_i($form->{klass}),
substr($form->{currency}, 0, 3),
+ $form->{taxincluded_checked} ne '' ? $form->{taxincluded_checked} : undef,
$form->{id}
);
do_query( $form, $dbh, $query, @values );
- $query = undef;
- if ( $form->{cp_id} ) {
- $query = qq|UPDATE contacts SET | .
- qq|cp_title = ?, | .
- qq|cp_givenname = ?, | .
- qq|cp_name = ?, | .
- qq|cp_email = ?, | .
- qq|cp_phone1 = ?, | .
- qq|cp_phone2 = ?, | .
- qq|cp_abteilung = ?, | .
- qq|cp_fax = ?, | .
- qq|cp_mobile1 = ?, | .
- qq|cp_mobile2 = ?, | .
- qq|cp_satphone = ?, | .
- qq|cp_satfax = ?, | .
- qq|cp_project = ?, | .
- qq|cp_privatphone = ?, | .
- qq|cp_privatemail = ?, | .
- qq|cp_birthday = ?, | .
- qq|cp_gender = ? | .
- qq|WHERE cp_id = ?|;
- @values = (
- $form->{cp_title},
- $form->{cp_givenname},
- $form->{cp_name},
- $form->{cp_email},
- $form->{cp_phone1},
- $form->{cp_phone2},
- $form->{cp_abteilung},
- $form->{cp_fax},
- $form->{cp_mobile1},
- $form->{cp_mobile2},
- $form->{cp_satphone},
- $form->{cp_satfax},
- $form->{cp_project},
- $form->{cp_privatphone},
- $form->{cp_privatemail},
- $form->{cp_birthday},
- $form->{cp_gender} eq 'f' ? 'f' : 'm',
- $form->{cp_id}
- );
- } elsif ( $form->{cp_name} || $form->{cp_givenname} ) {
- $query =
- qq|INSERT INTO contacts ( cp_cv_id, cp_title, cp_givenname, | .
- qq| cp_name, cp_email, cp_phone1, cp_phone2, cp_abteilung, cp_fax, cp_mobile1, | .
- qq| cp_mobile2, cp_satphone, cp_satfax, cp_project, cp_privatphone, cp_privatemail, | .
- qq| cp_birthday, cp_gender) | .
- qq|VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)|;
- @values = (
- $form->{id},
- $form->{cp_title},
- $form->{cp_givenname},
- $form->{cp_name},
- $form->{cp_email},
- $form->{cp_phone1},
- $form->{cp_phone2},
- $form->{cp_abteilung},
- $form->{cp_fax},
- $form->{cp_mobile1},
- $form->{cp_mobile2},
- $form->{cp_satphone},
- $form->{cp_satfax},
- $form->{cp_project},
- $form->{cp_privatphone},
- $form->{cp_privatemail},
- $form->{cp_birthday},
- $form->{cp_gender} eq 'f' ? 'f' : 'm',
- );
- }
- do_query( $form, $dbh, $query, @values ) if ($query);
+ $form->{cp_id} = $self->_save_contact($form, $dbh);
# add shipto
$form->add_shipto( $dbh, $form->{id}, "CT" );
);
do_query($form, $dbh, $query, @values);
- $query = undef;
- if ( $form->{cp_id} ) {
- $query = qq|UPDATE contacts SET | .
- qq|cp_title = ?, | .
- qq|cp_givenname = ?, | .
- qq|cp_name = ?, | .
- qq|cp_email = ?, | .
- qq|cp_phone1 = ?, | .
- qq|cp_phone2 = ?, | .
- qq|cp_abteilung = ?, | .
- qq|cp_fax = ?, | .
- qq|cp_mobile1 = ?, | .
- qq|cp_mobile2 = ?, | .
- qq|cp_satphone = ?, | .
- qq|cp_satfax = ?, | .
- qq|cp_project = ?, | .
- qq|cp_privatphone = ?, | .
- qq|cp_privatemail = ?, | .
- qq|cp_birthday = ?, | .
- qq|cp_gender = ? | .
- qq|WHERE cp_id = ?|;
- @values = (
- $form->{cp_title},
- $form->{cp_givenname},
- $form->{cp_name},
- $form->{cp_email},
- $form->{cp_phone1},
- $form->{cp_phone2},
- $form->{cp_abteilung},
- $form->{cp_fax},
- $form->{cp_mobile1},
- $form->{cp_mobile2},
- $form->{cp_satphone},
- $form->{cp_satfax},
- $form->{cp_project},
- $form->{cp_privatphone},
- $form->{cp_privatemail},
- $form->{cp_birthday},
- $form->{cp_gender} eq 'f' ? 'f' : 'm',
- $form->{cp_id}
- );
- } elsif ( $form->{cp_name} || $form->{cp_givenname} ) {
- $query =
- qq|INSERT INTO contacts ( cp_cv_id, cp_title, cp_givenname, | .
- qq| cp_name, cp_email, cp_phone1, cp_phone2, cp_abteilung, cp_fax, cp_mobile1, | .
- qq| cp_mobile2, cp_satphone, cp_satfax, cp_project, cp_privatphone, cp_privatemail, | .
- qq| cp_birthday, cp_gender) | .
- qq|VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)|;
- @values = (
- $form->{id},
- $form->{cp_title},
- $form->{cp_givenname},
- $form->{cp_name},
- $form->{cp_email},
- $form->{cp_phone1},
- $form->{cp_phone2},
- $form->{cp_abteilung},
- $form->{cp_fax},
- $form->{cp_mobile1},
- $form->{cp_mobile2},
- $form->{cp_satphone},
- $form->{cp_satfax},
- $form->{cp_project},
- $form->{cp_privatphone},
- $form->{cp_privatemail},
- $form->{cp_birthday},
- $form->{cp_gender}
- );
- }
- do_query($form, $dbh, $query, @values) if ($query);
+ $form->{cp_id} = $self->_save_contact($form, $dbh);
# add shipto
$form->add_shipto( $dbh, $form->{id}, "CT" );
return $rc;
}
+sub _save_contact {
+ my ($self, $form, $dbh) = @_;
+
+ return undef unless $form->{cp_id} || $form->{cp_name} || $form->{cp_givenname};
+
+ 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);
+ my @values = map(
+ {
+ if ( $_ eq 'cp_gender' ) {
+ $form->{$_} eq 'f' ? 'f' : 'm';
+ } elsif ( $_ eq 'cp_birthday' && $form->{cp_birthday} eq '' ) {
+ undef;
+ } else {
+ $form->{$_};
+ }
+ }
+ @columns
+ );
+
+ my ($query, $cp_id);
+ if ($form->{cp_id}) {
+ $query = qq|UPDATE contacts SET | . join(', ', map { "${_} = ?" } @columns) . qq| WHERE cp_id = ?|;
+ push @values, $form->{cp_id};
+ $cp_id = $form->{cp_id};
+
+ } else {
+ ($cp_id) = selectrow_query($form, $dbh, qq|SELECT nextval('id')|);
+
+ $query = qq|INSERT INTO contacts (| . join(', ', @columns, 'cp_cv_id', 'cp_id') . qq|) VALUES (| . join(', ', ('?') x (2 + scalar @columns)) . qq|)|;
+ push @values, $form->{id}, $cp_id;
+ }
+
+ do_query($form, $dbh, $query, @values);
+
+ return $cp_id;
+}
+
sub delete {
$main::lxdebug->enter_sub();
my $dbh = $form->dbconnect($myconfig);
my $cv = $form->{db} eq "customer" ? "customer" : "vendor";
+ my $join_records = $form->{l_invnumber} || $form->{l_ordnumber} || $form->{l_quonumber};
my $where = "1 = 1";
my @values;
$form->{sort} = $sortorder;
my $sortdir = !defined $form->{sortdir} ? 'ASC' : $form->{sortdir} ? 'ASC' : 'DESC';
- if ($sortorder !~ /(business|id)/ && 1 >= scalar grep { $form->{$_} } qw(l_ordnumber l_quonumber l_invnumber )) {
+ if ($sortorder !~ /(business|id)/ && !$join_records) {
$sortorder = "lower($sortorder) ${sortdir}";
} else {
$sortorder .= " ${sortdir}";
my $query =
qq|SELECT ct.*, b.description AS business | .
+ (qq|, NULL AS invnumber, NULL AS ordnumber, NULL AS quonumber, NULL AS invid, NULL AS module, NULL AS formtype, NULL AS closed | x!! $join_records) .
qq|FROM $cv ct | .
qq|LEFT JOIN business b ON (ct.business_id = b.id) | .
qq|WHERE $where|;
my @saved_values = @values;
# redo for invoices, orders and quotations
- if ($form->{l_invnumber} || $form->{l_ordnumber} || $form->{l_quonumber}) {
- my ($ar, $union, $module);
- $query = "";
+ if ($join_records) {
+ my $union = "UNION";
if ($form->{l_invnumber}) {
my $ar = $cv eq 'customer' ? 'ar' : 'ap';
my $module = $ar eq 'ar' ? 'is' : 'ir';
-
- $query =
+ push(@values, @saved_values);
+ $query .=
+ qq| UNION | .
qq|SELECT ct.*, b.description AS business, | .
qq| a.invnumber, a.ordnumber, a.quonumber, a.id AS invid, | .
qq| '$module' AS module, 'invoice' AS formtype, | .
qq|JOIN $ar a ON (a.${cv}_id = ct.id) | .
qq|LEFT JOIN business b ON (ct.business_id = b.id) | .
qq|WHERE $where AND (a.invoice = '1')|;
-
- $union = qq|UNION|;
}
if ( $form->{l_ordnumber} ) {
- if ($union eq "UNION") {
- push(@values, @saved_values);
- }
+ push(@values, @saved_values);
$query .=
- qq| $union | .
+ qq| UNION | .
qq|SELECT ct.*, b.description AS business,| .
qq| ' ' AS invnumber, o.ordnumber, o.quonumber, o.id AS invid, | .
qq| 'oe' AS module, 'order' AS formtype, o.closed | .
qq|JOIN oe o ON (o.${cv}_id = ct.id) | .
qq|LEFT JOIN business b ON (ct.business_id = b.id) | .
qq|WHERE $where AND (o.quotation = '0')|;
-
- $union = qq|UNION|;
}
if ( $form->{l_quonumber} ) {
- if ($union eq "UNION") {
- push(@values, @saved_values);
- }
+ push(@values, @saved_values);
$query .=
- qq| $union | .
+ qq| UNION | .
qq|SELECT ct.*, b.description AS business, | .
qq| ' ' AS invnumber, o.ordnumber, o.quonumber, o.id AS invid, | .
qq| 'oe' AS module, 'quotation' AS formtype, o.closed | .
'vcnumber' => 'vcnumber, cp_name, cp_givenname',
);
- my %sortcols = map { $_ => 1 } qw(cp_name cp_givenname cp_phone1 cp_phone2 cp_mobile1 cp_email vcname vcnumber);
+ my %sortcols = map { $_ => 1 } qw(cp_name cp_givenname cp_phone1 cp_phone2 cp_mobile1 cp_email cp_street cp_zipcode cp_city vcname vcnumber);
my $order_by = $sortcols{$::form->{sort}} ? $::form->{sort} : 'cp_name';
$::form->{sort} = $order_by;