X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FCT.pm;h=1b9d91593e6b93cd03d099e784795f27be376a98;hb=544f83800e6f90112934ba965970eec9da7d8f5d;hp=606c46a4962b1953380a9aa59648f4598aaa7ea1;hpb=4e953c795c21e894ffa9e72840d663bc05e01179;p=kivitendo-erp.git diff --git a/SL/CT.pm b/SL/CT.pm index 606c46a49..1b9d91593 100644 --- a/SL/CT.pm +++ b/SL/CT.pm @@ -44,7 +44,8 @@ use SL::CVar; use SL::DBUtils; use SL::FU; use SL::Notes; -use List::MoreUtils qw(true); + +use strict; sub get_tuple { $main::lxdebug->enter_sub(); @@ -63,7 +64,7 @@ sub get_tuple { qq|ORDER BY cp.cp_id LIMIT 1|; my $sth = prepare_execute_query($form, $dbh, $query, $form->{id}); - my $ref = $sth->fetchrow_hashref(NAME_lc); + my $ref = $sth->fetchrow_hashref("NAME_lc"); map { $form->{$_} = $ref->{$_} } keys %$ref; @@ -117,7 +118,7 @@ sub get_tuple { if ($ref) { foreach my $key (keys %{ $ref }) { my $new_key = $key; - $new_key =~ s/^([^_]+)/\U\1\E/; + $new_key =~ s/^([^_]+)/\U$1\E/; $form->{$new_key} = $ref->{$key}; } } @@ -156,6 +157,7 @@ sub populate_drop_down_boxes { $main::lxdebug->enter_sub(); my ($self, $myconfig, $form, $provided_dbh) = @_; + my $query; my $dbh = $provided_dbh ? $provided_dbh : $form->dbconnect($myconfig); @@ -191,17 +193,10 @@ sub query_titles_and_greetings { $main::lxdebug->enter_sub(); my ( $self, $myconfig, $form ) = @_; - my ( %tmp, $ref ); + my ( %tmp, $ref, $query ); my $dbh = $form->dbconnect($myconfig); - $query = - qq|SELECT DISTINCT(cp_greeting) | . - qq|FROM contacts | . - qq|WHERE cp_greeting ~ '[a-zA-Z]' | . - qq|ORDER BY cp_greeting|; - $form->{GREETINGS} = [ selectall_array_query($form, $dbh, $query) ]; - $query = qq|SELECT DISTINCT(greeting) | . qq|FROM customer | . @@ -211,7 +206,7 @@ sub query_titles_and_greetings { qq|FROM vendor | . qq|WHERE greeting ~ '[a-zA-Z]' | . qq|ORDER BY greeting|; - my %tmp; + map({ $tmp{$_} = 1; } selectall_array_query($form, $dbh, $query)); $form->{COMPANY_GREETINGS} = [ sort(keys(%tmp)) ]; @@ -377,7 +372,6 @@ sub save_customer { $query = undef; if ( $form->{cp_id} ) { $query = qq|UPDATE contacts SET | . - qq|cp_greeting = ?, | . qq|cp_title = ?, | . qq|cp_givenname = ?, | . qq|cp_name = ?, | . @@ -393,10 +387,10 @@ sub save_customer { qq|cp_project = ?, | . qq|cp_privatphone = ?, | . qq|cp_privatemail = ?, | . - qq|cp_birthday = ? | . + qq|cp_birthday = ?, | . + qq|cp_gender = ? | . qq|WHERE cp_id = ?|; @values = ( - $form->{cp_greeting}, $form->{cp_title}, $form->{cp_givenname}, $form->{cp_name}, @@ -413,18 +407,18 @@ sub save_customer { $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_greeting, cp_title, cp_givenname, | . + 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) | . + qq| cp_birthday, cp_gender) | . qq|VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)|; @values = ( $form->{id}, - $form->{cp_greeting}, $form->{cp_title}, $form->{cp_givenname}, $form->{cp_name}, @@ -440,7 +434,8 @@ sub save_customer { $form->{cp_project}, $form->{cp_privatphone}, $form->{cp_privatemail}, - $form->{cp_birthday} + $form->{cp_birthday}, + $form->{cp_gender} eq 'f' ? 'f' : 'm', ); } do_query( $form, $dbh, $query, @values ) if ($query); @@ -454,9 +449,10 @@ sub save_customer { CVar->save_custom_variables('dbh' => $dbh, 'module' => 'CT', 'trans_id' => $form->{id}, - 'variables' => $form); + 'variables' => $form, + 'always_valid' => 1); - $rc = $dbh->commit(); + my $rc = $dbh->commit(); $dbh->disconnect(); $main::lxdebug->leave_sub(); @@ -537,7 +533,7 @@ sub save_vendor { qq| user_password = ?, | . qq| v_customer_id = ? | . qq|WHERE id = ?|; - @values = ( + my @values = ( $form->{vendornumber}, $form->{name}, $form->{greeting}, @@ -582,7 +578,6 @@ sub save_vendor { $query = undef; if ( $form->{cp_id} ) { $query = qq|UPDATE contacts SET | . - qq|cp_greeting = ?, | . qq|cp_title = ?, | . qq|cp_givenname = ?, | . qq|cp_name = ?, | . @@ -598,10 +593,10 @@ sub save_vendor { qq|cp_project = ?, | . qq|cp_privatphone = ?, | . qq|cp_privatemail = ?, | . - qq|cp_birthday = ? | . + qq|cp_birthday = ?, | . + qq|cp_gender = ? | . qq|WHERE cp_id = ?|; @values = ( - $form->{cp_greeting}, $form->{cp_title}, $form->{cp_givenname}, $form->{cp_name}, @@ -618,18 +613,18 @@ sub save_vendor { $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_greeting, cp_title, cp_givenname, | . + 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) | . + qq| cp_birthday, cp_gender) | . qq|VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)|; @values = ( $form->{id}, - $form->{cp_greeting}, $form->{cp_title}, $form->{cp_givenname}, $form->{cp_name}, @@ -645,7 +640,8 @@ sub save_vendor { $form->{cp_project}, $form->{cp_privatphone}, $form->{cp_privatemail}, - $form->{cp_birthday} + $form->{cp_birthday}, + $form->{cp_gender} ); } do_query($form, $dbh, $query, @values) if ($query); @@ -659,9 +655,10 @@ sub save_vendor { CVar->save_custom_variables('dbh' => $dbh, 'module' => 'CT', 'trans_id' => $form->{id}, - 'variables' => $form); + 'variables' => $form, + 'always_valid' => 1); - $rc = $dbh->commit(); + my $rc = $dbh->commit(); $dbh->disconnect(); $main::lxdebug->leave_sub(); @@ -701,11 +698,11 @@ sub search { my %allowed_sort_columns = map({ $_, 1 } qw(id customernumber vendornumber name contact phone fax email taxnumber business invnumber ordnumber quonumber)); - $sortorder = $form->{sort} && $allowed_sort_columns{$form->{sort}} ? $form->{sort} : "name"; + my $sortorder = $form->{sort} && $allowed_sort_columns{$form->{sort}} ? $form->{sort} : "name"; $form->{sort} = $sortorder; my $sortdir = !defined $form->{sortdir} ? 'ASC' : $form->{sortdir} ? 'ASC' : 'DESC'; - if ($sortorder ne 'id' && 1 >= true { $form->{$_} } qw(l_ordnumber l_quonumber l_invnumber)) { + if ($sortorder ne 'id' && 1 >= scalar grep { $form->{$_} } qw(l_ordnumber l_quonumber l_invnumber)) { $sortorder = "lower($sortorder) ${sortdir}"; } else { $sortorder .= " ${sortdir}"; @@ -868,7 +865,7 @@ sub get_contact { qq|SELECT * FROM contacts c | . qq|WHERE cp_id = ? ORDER BY cp_id limit 1|; my $sth = prepare_execute_query($form, $dbh, $query, $form->{cp_id}); - my $ref = $sth->fetchrow_hashref(NAME_lc); + my $ref = $sth->fetchrow_hashref("NAME_lc"); map { $form->{$_} = $ref->{$_} } keys %$ref; @@ -894,7 +891,7 @@ sub get_shipto { my $query = qq|SELECT * FROM shipto WHERE shipto_id = ?|; my $sth = prepare_execute_query($form, $dbh, $query, $form->{shipto_id}); - my $ref = $sth->fetchrow_hashref(NAME_lc); + my $ref = $sth->fetchrow_hashref("NAME_lc"); map { $form->{$_} = $ref->{$_} } keys %$ref; @@ -919,6 +916,7 @@ sub get_delivery { my $arap = $form->{db} eq "vendor" ? "ap" : "ar"; my $db = $form->{db} eq "customer" ? "customer" : "vendor"; + my $qty_sign = $form->{db} eq 'vendor' ? ' * -1 AS qty' : ''; my $where = " WHERE 1=1 "; my @values; @@ -940,7 +938,7 @@ sub get_delivery { push(@values, conv_date($form->{to})); } my $query = - qq|SELECT s.shiptoname, i.qty, | . + qq|SELECT s.shiptoname, i.qty $qty_sign, | . qq| ${arap}.id, ${arap}.transdate, ${arap}.invnumber, ${arap}.ordnumber, | . qq| i.description, i.unit, i.sellprice, | . qq| oe.id AS oe_id | . @@ -1041,23 +1039,6 @@ sub _delete_selected_notes { $main::lxdebug->leave_sub(); } -sub delete_shipto { - $main::lxdebug->enter_sub(); - - my $self = shift; - my $shipto_id = shift; - - my $form = $main::form; - my %myconfig = %main::myconfig; - my $dbh = $form->get_standard_dbh(\%myconfig); - - do_query($form, $dbh, qq|UPDATE shipto SET trans_id = NULL WHERE shipto_id = ?|, $shipto_id); - - $dbh->commit(); - - $main::lxdebug->leave_sub(); -} - sub delete_shipto { $main::lxdebug->enter_sub(); @@ -1090,7 +1071,7 @@ sub get_bank_info { my $table = $params{vc} eq 'customer' ? 'customer' : 'vendor'; my @ids = ref $params{id} eq 'ARRAY' ? @{ $params{id} } : ($params{id}); - my $placeholders = ('?') x scalar @ids; + my $placeholders = join ", ", ('?') x scalar @ids; my $query = qq|SELECT id, name, account_number, bank, bank_code, iban, bic FROM ${table} WHERE id IN (${placeholders})|;