X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FCT.pm;h=2397fe7d5ab3553ca4f7ad67b66f604274103aef;hb=1043d7f814fccf5864e677b1e38577d0a150026c;hp=3df827a6d0f365c3e77dfe875a0dc20717ef4c4d;hpb=88e16972a3c5a76af719c3eff31b6d8163e2e8b3;p=kivitendo-erp.git diff --git a/SL/CT.pm b/SL/CT.pm index 3df827a6d..2397fe7d5 100644 --- a/SL/CT.pm +++ b/SL/CT.pm @@ -123,7 +123,14 @@ sub get_tuple { } # check if it is orphaned - my $arap = ( $form->{db} eq 'customer' ) ? "ar" : "ap"; + my $arap = ( $form->{db} eq 'customer' ) ? "ar" : "ap"; + my $num_args = 2; + my $makemodel = ''; + if ($form->{db} eq 'vendor') { + $makemodel = qq| UNION SELECT 1 FROM makemodel mm WHERE mm.make = ?|; + $num_args++; + } + $query = qq|SELECT a.id | . qq|FROM $arap a | . @@ -133,8 +140,10 @@ sub get_tuple { qq|SELECT a.id | . qq|FROM oe a | . qq|JOIN $cv ct ON (a.${cv}_id = ct.id) | . - qq|WHERE ct.id = ?|; - my ($dummy) = selectrow_query($form, $dbh, $query, $form->{id}, $form->{id}); + qq|WHERE ct.id = ?| + . $makemodel; + my ($dummy) = selectrow_query($form, $dbh, $query, (conv_i($form->{id})) x $num_args); + $form->{status} = "orphaned" unless ($dummy); $dbh->disconnect; @@ -185,13 +194,6 @@ sub query_titles_and_greetings { 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 | . @@ -306,6 +308,8 @@ sub save_customer { qq|account_number = ?, | . qq|bank_code = ?, | . qq|bank = ?, | . + qq|iban = ?, | . + qq|bic = ?, | . qq|obsolete = ?, | . qq|direct_debit = ?, | . qq|ustid = ?, | . @@ -345,6 +349,8 @@ sub save_customer { $form->{account_number}, $form->{bank_code}, $form->{bank}, + $form->{iban}, + $form->{bic}, $form->{obsolete} ? 't' : 'f', $form->{direct_debit} ? 't' : 'f', $form->{ustid}, @@ -363,7 +369,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 = ?, | . @@ -379,10 +384,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}, @@ -399,18 +404,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}, @@ -426,7 +431,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); @@ -511,6 +517,8 @@ sub save_vendor { qq| account_number = ?, | . qq| bank_code = ?, | . qq| bank = ?, | . + qq| iban = ?, | . + qq| bic = ?, | . qq| obsolete = ?, | . qq| direct_debit = ?, | . qq| ustid = ?, | . @@ -548,6 +556,8 @@ sub save_vendor { $form->{account_number}, $form->{bank_code}, $form->{bank}, + $form->{iban}, + $form->{bic}, $form->{obsolete} ? 't' : 'f', $form->{direct_debit} ? 't' : 'f', $form->{ustid}, @@ -564,7 +574,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 = ?, | . @@ -580,10 +589,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}, @@ -600,18 +609,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}, @@ -627,7 +636,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); @@ -687,7 +697,7 @@ sub search { $form->{sort} = $sortorder; my $sortdir = !defined $form->{sortdir} ? 'ASC' : $form->{sortdir} ? 'ASC' : 'DESC'; -if ($sortorder ne 'id') { + if ($sortorder ne 'id' && 1 >= scalar grep { $form->{$_} } qw(l_ordnumber l_quonumber l_invnumber)) { $sortorder = "lower($sortorder) ${sortdir}"; } else { $sortorder .= " ${sortdir}"; @@ -901,6 +911,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; @@ -922,7 +933,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 | . @@ -1057,4 +1068,37 @@ sub delete_shipto { $main::lxdebug->leave_sub(); } +sub get_bank_info { + $main::lxdebug->enter_sub(); + + my $self = shift; + my %params = @_; + + Common::check_params(\%params, qw(vc id)); + + my $myconfig = \%main::myconfig; + my $form = $main::form; + + my $dbh = $params{dbh} || $form->get_standard_dbh($myconfig); + + 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 $query = qq|SELECT id, name, account_number, bank, bank_code, iban, bic + FROM ${table} + WHERE id IN (${placeholders})|; + + my $result = selectall_hashref_query($form, $dbh, $query, map { conv_i($_) } @ids); + + if (ref $params{id} eq 'ARRAY') { + $result = { map { $_->{id} => $_ } @{ $result } }; + } else { + $result = $result->[0] || { 'id' => $params{id} }; + } + + $main::lxdebug->leave_sub(); + + return $result; +} + 1;