X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FForm.pm;h=9ba3f43bcdd1acb316119c10ada8d239145f91a0;hb=a5d5620d468d74e593ee31ece1d7dc3612d14faa;hp=1912f7560f749535322738bf3713897aae05fcdc;hpb=b12e8d1411cb7af3a1a9b6f7637692f0758b4741;p=kivitendo-erp.git diff --git a/SL/Form.pm b/SL/Form.pm index 1912f7560..9ba3f43bc 100644 --- a/SL/Form.pm +++ b/SL/Form.pm @@ -132,6 +132,11 @@ sub new { my $self = {}; + if ($LXDebug::watch_form) { + require SL::Watchdog; + tie %{ $self }, 'SL::Watchdog'; + } + read(STDIN, $_, $ENV{CONTENT_LENGTH}); if ($ENV{QUERY_STRING}) { @@ -375,13 +380,8 @@ sub header { \@page { size:landscape; } |; } - if ($self->{fokus}) { - $fokus = qq||; - } + + my $fokus = qq| document.$self->{fokus}.focus();| if ($self->{"fokus"}); #Set Calendar my $jsscript = ""; @@ -415,7 +415,15 @@ function fokus(){document.$self->{fokus}.focus();} $charset $jsscript $ajax - $fokus + + + @@ -458,7 +466,7 @@ sub parse_html_template { (-f "templates/webpages/${file}_master.html") && ((stat("templates/webpages/${file}_master.html"))[9] > (stat("templates/webpages/${file}_${language}.html"))[9])) { - my $info = "Developper information: templates/webpages/${file}_master.html is newer than the localized version.\n" . + my $info = "Developer information: templates/webpages/${file}_master.html is newer than the localized version.\n" . "Please re-run 'locales.pl' in 'locale/${language}'."; print(qq|
$info
|); die($info); @@ -1514,6 +1522,20 @@ sub _get_taxcharts { $main::lxdebug->leave_sub(); } +sub _get_taxzones { + $main::lxdebug->enter_sub(); + + my ($self, $dbh, $key) = @_; + + $key = "all_taxzones" unless ($key); + + my $query = qq|SELECT * FROM tax_zones ORDER BY id|; + + $self->{$key} = selectall_hashref_query($self, $dbh, $query); + + $main::lxdebug->leave_sub(); +} + sub _get_employees { $main::lxdebug->enter_sub(); @@ -1552,6 +1574,48 @@ sub _get_languages { $main::lxdebug->leave_sub(); } +sub _get_dunning_configs { + $main::lxdebug->enter_sub(); + + my ($self, $dbh, $key) = @_; + + $key = "all_dunning_configs" unless ($key); + + my $query = qq|SELECT * FROM dunning_config ORDER BY dunning_level|; + + $self->{$key} = selectall_hashref_query($self, $dbh, $query); + + $main::lxdebug->leave_sub(); +} + +sub _get_currencies { +$main::lxdebug->enter_sub(); + + my ($self, $dbh, $key) = @_; + + $key = "all_currencies" unless ($key); + + my $query = qq|SELECT curr AS currency FROM defaults|; + + $self->{$key} = [split(/\:/ , selectfirst_hashref_query($self, $dbh, $query)->{currency})]; + + $main::lxdebug->leave_sub(); +} + +sub _get_customers { + $main::lxdebug->enter_sub(); + + my ($self, $dbh, $key) = @_; + + $key = "all_customers" unless ($key); + + my $query = qq|SELECT * FROM customer LIMIT $main::myconfig{vclimit}|; + + $self->{$key} = selectall_hashref_query($self, $dbh, $query); + + $main::lxdebug->leave_sub(); +} + sub get_lists { $main::lxdebug->enter_sub(); @@ -1594,6 +1658,10 @@ sub get_lists { $self->_get_taxcharts($dbh, $params{"taxcharts"}); } + if ($params{"taxzones"}) { + $self->_get_taxzones($dbh, $params{"taxzones"}); + } + if ($params{"employees"}) { $self->_get_employees($dbh, $params{"employees"}); } @@ -1602,6 +1670,18 @@ sub get_lists { $self->_get_business_types($dbh, $params{"business_types"}); } + if ($params{"dunning_configs"}) { + $self->_get_dunning_configs($dbh, $params{"dunning_configs"}); + } + + if($params{"currencies"}) { + $self->_get_currencies($dbh, $params{"currencies"}); + } + + if($params{"customers"}) { + $self->_get_customers($dbh, $params{"customers"}); + } + $dbh->disconnect(); $main::lxdebug->leave_sub(); @@ -1867,10 +1947,6 @@ sub create_links { $query = qq|SELECT id, taxkey, taxdescription FROM tax|; $self->{TAXKEY} = selectall_hashref_query($self, $dbh, $query); - # get tax zones - $query = qq|SELECT id, description FROM tax_zones|; - $self->{TAXZONE} = selectall_hashref_query($self, $dbh, $query); - if (($module eq "AP") || ($module eq "AR")) { # get tax rates and description $query = qq|SELECT * FROM tax|; @@ -1904,14 +1980,13 @@ sub create_links { } # now get the account numbers - $query = qq|SELECT c.accno, c.description, c.link, c.taxkey_id, tk.tax_id - FROM chart c, taxkeys tk - WHERE c.link LIKE ? - AND ( tk.chart_id = c.id OR c.link LIKE '%_tax%') - AND (NOT tk.chart_id = c.id OR NOT c.link LIKE '%_tax%') - AND (tk.id = (SELECT id FROM taxkeys WHERE taxkeys.chart_id = c.id AND startdate <= $transdate ORDER BY startdate DESC LIMIT 1) - OR c.link LIKE '%_tax%') - ORDER BY c.accno|; + $query = qq|SELECT c.accno, c.description, c.link, c.taxkey_id, tk.tax_id + FROM chart c + LEFT JOIN taxkeys tk ON (tk.chart_id = c.id) + WHERE c.link LIKE ? + AND (tk.id = (SELECT id FROM taxkeys WHERE taxkeys.chart_id = c.id AND startdate <= $transdate ORDER BY startdate DESC LIMIT 1) + OR c.link LIKE '%_tax%') + ORDER BY c.accno|; $sth = $dbh->prepare($query); do_statement($self, $sth, $query, "%$module%"); @@ -2258,6 +2333,7 @@ sub save_status { # $main::locale->text('PRINTED') # $main::locale->text('MAILED') # $main::locale->text('SCREENED') +# $main::locale->text('CANCELED') # $main::locale->text('invoice') # $main::locale->text('proforma') # $main::locale->text('sales_order') @@ -2279,10 +2355,10 @@ sub save_history { } my $query = - qq|INSERT INTO history_erp (trans_id, employee_id, addition, what_done) | . - qq|VALUES (?, ?, ?, ?)|; + qq|INSERT INTO history_erp (trans_id, employee_id, addition, what_done, snumbers) | . + qq|VALUES (?, ?, ?, ?, ?)|; my @values = (conv_i($self->{id}), conv_i($self->{employee_id}), - $self->{addition}, $self->{what_done}); + $self->{addition}, $self->{what_done}, "$self->{snumbers}"); do_query($self, $dbh, $query, @values); $main::lxdebug->leave_sub(); @@ -2299,7 +2375,7 @@ sub get_history { my $i = 0; if ($trans_id ne "") { my $query = - qq|SELECT h.employee_id, h.itime::timestamp(0) AS itime, h.addition, h.what_done, emp.name | . + qq|SELECT h.employee_id, h.itime::timestamp(0) AS itime, h.addition, h.what_done, emp.name, h.snumbers, h.trans_id AS id | . qq|FROM history_erp h | . qq|LEFT JOIN employee emp ON (emp.id = h.employee_id) | . qq|WHERE trans_id = ? | @@ -2312,9 +2388,10 @@ sub get_history { while(my $hash_ref = $sth->fetchrow_hashref()) { $hash_ref->{addition} = $main::locale->text($hash_ref->{addition}); $hash_ref->{what_done} = $main::locale->text($hash_ref->{what_done}); + $hash_ref->{snumbers} =~ s/^.+_(.*)$/$1/g; $tempArray[$i++] = $hash_ref; } - $main::lxdebug->leave_sub() and return \@tempArray + $main::lxdebug->leave_sub() and return \@tempArray if ($i > 0 && $tempArray[0] ne ""); } $main::lxdebug->leave_sub(); @@ -2339,11 +2416,8 @@ sub update_defaults { my ($var) = $sth->fetchrow_array; $sth->finish; - if ($var =~ /^(.*?)(\d+)$/) { - $var = "$1" . ($2 + 1); - } else { - $var++; - } + $var =~ s/\d+$/ sprintf '%0*d', length($&), $&+1 /e; + $var ||= 1; $query = qq|UPDATE defaults SET $fld = ?|; do_query($self, $dbh, $query, $var); @@ -2374,13 +2448,8 @@ sub update_business { WHERE id = ? FOR UPDATE|; my ($var) = selectrow_query($self, $dbh, $query, $business_id); - if ($var ne "") { - if ($var =~ /^(.*?)(\d+)$/) { - $var = "$1" . ($2 + 1); - } else { - $var++; - } - } + $var =~ s/\d+$/ sprintf '%0*d', length($&), $&+1 /e; + $query = qq|UPDATE business SET customernumberinit = ? WHERE id = ?|;