X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FAM.pm;h=30b1d9301936d3337fb8301e719fc103cf8552ed;hb=bc7681a9e57ab8518804417a7d2ca214d78cd744;hp=441a184deac1dc640081d845dccf31f9b01ecd49;hpb=6af007aef5ff57abc085bf61c6b2d228baac7b25;p=kivitendo-erp.git diff --git a/SL/AM.pm b/SL/AM.pm index 441a184de..30b1d9301 100644 --- a/SL/AM.pm +++ b/SL/AM.pm @@ -43,7 +43,9 @@ use Encode; use List::MoreUtils qw(any); use SL::DBUtils; use SL::DB::AuthUser; +use SL::DB::Default; use SL::DB::Employee; +use SL::GenericTranslations; use strict; @@ -480,16 +482,18 @@ sub delete_account { WHERE chart_id = ?|; do_query($form, $dbh, $query, $form->{id}); - # delete chart of account record - $query = qq|DELETE FROM chart - WHERE id = ?|; - do_query($form, $dbh, $query, $form->{id}); - # delete account taxkeys $query = qq|DELETE FROM taxkeys WHERE chart_id = ?|; do_query($form, $dbh, $query, $form->{id}); + # delete chart of account record + # last step delete chart, because we have a constraint + # to taxkeys + $query = qq|DELETE FROM chart + WHERE id = ?|; + do_query($form, $dbh, $query, $form->{id}); + # commit and redirect my $rc = $dbh->commit; $dbh->disconnect; @@ -994,7 +998,7 @@ sub prepare_template_filename { $filename =~ s|.*/||; } $display_filename = $filename; - $filename = "$myconfig->{templates}/$filename"; + $filename = SL::DB::Default->get->templates . "/$filename"; } $main::lxdebug->leave_sub(); @@ -1020,7 +1024,7 @@ sub load_template { close(TEMPLATE); } - $content = Encode::decode('utf-8-strict', $content) if $::locale->is_utf8; + $content = Encode::decode('utf-8-strict', $content); $main::lxdebug->leave_sub(); @@ -1037,7 +1041,7 @@ sub save_template { my $error = ""; if (open(TEMPLATE, ">", $filename)) { - $content = Encode::encode('utf-8-strict', $content) if $::locale->is_utf8; + $content = Encode::encode('utf-8-strict', $content); $content =~ s/\r\n/\n/g; print(TEMPLATE $content); close(TEMPLATE); @@ -1061,8 +1065,8 @@ sub save_preferences { my $user = SL::DB::Manager::AuthUser->find_by(login => $form->{login}); $user->update_attributes( config_values => { - map({ ($_ => $form->{$_}) } SL::DB::AuthUser::CONFIG_VARS()), - map({ ($_ => do { my $v = $form->{$_}; $v =~ s/\r//g; $v }) } qw(address signature)), + %{ $user->config_values }, + map { ($_ => $form->{$_}) } SL::DB::AuthUser::CONFIG_VARS(), }); $main::lxdebug->leave_sub(); @@ -1119,16 +1123,14 @@ sub closebooks { my ($query, @values); - if ($form->{revtrans}) { - $query = qq|UPDATE defaults SET closedto = NULL, revtrans = '1'|; + # is currently NEVER trueish (no more hidden revtrans in $form) + # if ($form->{revtrans}) { + # $query = qq|UPDATE defaults SET closedto = NULL, revtrans = '1'|; + # -> therefore you can only set this to false (which is already the default) + # and this flag is currently only checked in gl.pl. TOOD Can probably be removed - } elsif ($form->{closedto}) { $query = qq|UPDATE defaults SET closedto = ?, max_future_booking_interval = ?, revtrans = '0'|; - @values = (conv_date($form->{closedto}), conv_date($form->{max_future_booking_interval})); - - } else { - $query = qq|UPDATE defaults SET closedto = NULL, revtrans = '0'|; - } + @values = (conv_date($form->{closedto}), conv_i($form->{max_future_booking_interval})); # set close in defaults do_query($form, $dbh, $query, @values); @@ -1642,7 +1644,7 @@ sub save_tax { $chart_categories .= 'E' if $form->{expense}; $chart_categories .= 'C' if $form->{costs}; - my @values = ($form->{taxkey}, $form->{taxdescription}, $form->{rate}, $form->{chart_id}, $form->{chart_id}, $chart_categories); + my @values = ($form->{taxkey}, $form->{taxdescription}, $form->{rate}, conv_i($form->{chart_id}), conv_i($form->{chart_id}), $chart_categories); if ($form->{id} ne "") { $query = qq|UPDATE tax SET taxkey = ?, @@ -1652,22 +1654,32 @@ sub save_tax { taxnumber = (SELECT accno FROM chart WHERE id= ? ), chart_categories = ? WHERE id = ?|; - push(@values, $form->{id}); } else { #ok + ($form->{id}) = selectfirst_array_query($form, $dbh, qq|SELECT nextval('id')|); $query = qq|INSERT INTO tax ( taxkey, taxdescription, rate, chart_id, taxnumber, - chart_categories + chart_categories, + id ) - VALUES (?, ?, ?, ?, (SELECT accno FROM chart WHERE id = ?), ? )|; + VALUES (?, ?, ?, ?, (SELECT accno FROM chart WHERE id = ?), ?, ?)|; } + push(@values, $form->{id}); do_query($form, $dbh, $query, @values); + foreach my $language_id (keys %{ $form->{translations} }) { + GenericTranslations->save('dbh' => $dbh, + 'translation_type' => 'SL::DB::Tax/taxdescription', + 'translation_id' => $form->{id}, + 'language_id' => $language_id, + 'translation' => $form->{translations}->{$language_id}); + } + $dbh->commit(); $main::lxdebug->leave_sub(); @@ -1785,11 +1797,12 @@ sub save_warehouse { $form->{description}, $form->{invalid} ? 't' : 'f', conv_i($form->{id})); if (0 < $form->{number_of_new_bins}) { + my ($num_existing_bins) = selectfirst_array_query($form, $dbh, qq|SELECT COUNT(*) FROM bin WHERE warehouse_id = ?|, $form->{id}); $query = qq|INSERT INTO bin (warehouse_id, description) VALUES (?, ?)|; $sth = prepare_query($form, $dbh, $query); foreach my $i (1..$form->{number_of_new_bins}) { - do_statement($form, $sth, $query, conv_i($form->{id}), "$form->{prefix}${i}"); + do_statement($form, $sth, $query, conv_i($form->{id}), "$form->{prefix}" . ($i + $num_existing_bins)); } $sth->finish(); @@ -1899,15 +1912,14 @@ sub get_warehouse { map { $form->{$_} = $ref->{$_} } keys %{ $ref }; - $query = qq|SELECT b.*, EXISTS - (SELECT i.warehouse_id, p.warehouse_id - FROM inventory i, parts p - WHERE i.bin_id = b.id - OR p.bin_id = b.id - LIMIT 1) - AS in_use - FROM bin b - WHERE b.warehouse_id = ?|; + $query = <{BINS} = selectall_hashref_query($form, $dbh, $query, conv_i($form->{id}));