X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FAM.pm;h=5db3f71ca0bc733198ba7fe5c1522f16732510df;hb=356fec7ed87236e0b68c0ef45fe5f99c8b1f5038;hp=1f9a573d0d3205d44d724544e20ed7fffb048032;hpb=5e1de2f843f96657e16c7068991f9345c50484d5;p=kivitendo-erp.git diff --git a/SL/AM.pm b/SL/AM.pm index 1f9a573d0..5db3f71ca 100644 --- a/SL/AM.pm +++ b/SL/AM.pm @@ -47,6 +47,9 @@ use SL::DB::AuthUser; use SL::DB::Default; use SL::DB::Employee; use SL::DB::Chart; +use SL::DB::Customer; +use SL::DB::Part; +use SL::DB::Vendor; use SL::DB; use SL::GenericTranslations; @@ -114,7 +117,7 @@ sub get_account { } # get new accounts (Folgekonto). Find all charts with the same link - $form->{NEWACCOUNT} = $chart_obj->db->dbh->selectall_arrayref('select id, accno,description from chart where link = ? order by accno', {Slice => {}}, $chart_obj->link); + $form->{NEWACCOUNT} = $chart_obj->db->dbh->selectall_arrayref('select id, accno,description from chart where link = ? and id != ? order by accno', {Slice => {}}, $chart_obj->link, $form->{id}); } else { # set to orphaned for new charts, so chart_type can be changed (needed by $AccountIsPosted) $form->{orphaned} = 1; @@ -410,61 +413,6 @@ sub _delete_account { return 1; } -sub language { - $main::lxdebug->enter_sub(); - - my ($self, $myconfig, $form, $return_list) = @_; - - my $dbh = SL::DB->client->dbh; - - my $query = - "SELECT id, description, template_code, article_code, " . - " output_numberformat, output_dateformat, output_longdates " . - "FROM language ORDER BY description"; - - my $sth = $dbh->prepare($query); - $sth->execute || $form->dberror($query); - - my $ary = []; - - while (my $ref = $sth->fetchrow_hashref("NAME_lc")) { - push(@{ $ary }, $ref); - } - - $sth->finish; - - $main::lxdebug->leave_sub(); - - if ($return_list) { - return @{$ary}; - } else { - $form->{ALL} = $ary; - } -} - -sub get_language { - $main::lxdebug->enter_sub(); - - my ($self, $myconfig, $form) = @_; - - my $dbh = SL::DB->client->dbh; - - my $query = - "SELECT description, template_code, article_code, " . - " output_numberformat, output_dateformat, output_longdates " . - "FROM language WHERE id = ?"; - my $sth = $dbh->prepare($query); - $sth->execute($form->{"id"}) || $form->dberror($query . " ($form->{id})"); - - my $ref = $sth->fetchrow_hashref("NAME_lc"); - - map { $form->{$_} = $ref->{$_} } keys %$ref; - - $sth->finish; - - $main::lxdebug->leave_sub(); -} - sub get_language_details { $main::lxdebug->enter_sub(); @@ -483,64 +431,6 @@ sub get_language_details { return @res; } -sub save_language { - $main::lxdebug->enter_sub(); - - my ($self, $myconfig, $form) = @_; - - SL::DB->client->with_transaction(sub { - my $dbh = SL::DB->client->dbh; - my (@values, $query); - - map({ push(@values, $form->{$_}); } - qw(description template_code article_code - output_numberformat output_dateformat output_longdates)); - - # id is the old record - if ($form->{id}) { - $query = - "UPDATE language SET " . - " description = ?, template_code = ?, article_code = ?, " . - " output_numberformat = ?, output_dateformat = ?, " . - " output_longdates = ? " . - "WHERE id = ?"; - push(@values, $form->{id}); - } else { - $query = - "INSERT INTO language (" . - " description, template_code, article_code, " . - " output_numberformat, output_dateformat, output_longdates" . - ") VALUES (?, ?, ?, ?, ?, ?)"; - } - do_query($form, $dbh, $query, @values); - 1; - }) or do { die SL::DB->client->error }; - - $main::lxdebug->leave_sub(); -} - -sub delete_language { - $main::lxdebug->enter_sub(); - - my ($self, $myconfig, $form) = @_; - my $query; - - SL::DB->client->with_transaction(sub { - my $dbh = SL::DB->client->dbh; - - foreach my $table (qw(generic_translations units_language)) { - $query = qq|DELETE FROM $table WHERE language_id = ?|; - do_query($form, $dbh, $query, $form->{"id"}); - } - - $query = "DELETE FROM language WHERE id = ?"; - do_query($form, $dbh, $query, $form->{"id"}); - 1; - }) or do { die SL::DB->client->error }; - - $main::lxdebug->leave_sub(); -} - sub prepare_template_filename { $main::lxdebug->enter_sub(); @@ -548,30 +438,24 @@ sub prepare_template_filename { my ($filename, $display_filename); - if ($form->{type} eq "stylesheet") { - $filename = "css/$myconfig->{stylesheet}"; - $display_filename = $myconfig->{stylesheet}; - - } else { - $filename = $form->{formname}; + $filename = $form->{formname}; - if ($form->{language}) { - my ($id, $template_code) = split(/--/, $form->{language}); - $filename .= "_${template_code}"; - } + if ($form->{language}) { + my ($id, $template_code) = split(/--/, $form->{language}); + $filename .= "_${template_code}"; + } - if ($form->{printer}) { - my ($id, $template_code) = split(/--/, $form->{printer}); - $filename .= "_${template_code}"; - } + if ($form->{printer}) { + my ($id, $template_code) = split(/--/, $form->{printer}); + $filename .= "_${template_code}"; + } - $filename .= "." . ($form->{format} eq "html" ? "html" : "tex"); - if ($form->{"formname"} =~ m|\.\.| || $form->{"formname"} =~ m|^/|) { - $filename =~ s|.*/||; - } - $display_filename = $filename; - $filename = SL::DB::Default->get->templates . "/$filename"; + $filename .= "." . ($form->{format} eq "html" ? "html" : "tex"); + if ($form->{"formname"} =~ m|\.\.| || $form->{"formname"} =~ m|^/|) { + $filename =~ s|.*/||; } + $display_filename = $filename; + $filename = SL::DB::Default->get->templates . "/$filename"; $main::lxdebug->leave_sub(); @@ -626,6 +510,23 @@ sub save_template { return $error; } +sub displayable_name_specs_by_module { + +{ + 'SL::DB::Customer' => { + specs => SL::DB::Customer->displayable_name_specs, + prefs => SL::DB::Customer->displayable_name_prefs, + }, + 'SL::DB::Vendor' => { + specs => SL::DB::Vendor->displayable_name_specs, + prefs => SL::DB::Vendor->displayable_name_prefs, + }, + 'SL::DB::Part' => { + specs => SL::DB::Part->displayable_name_specs, + prefs => SL::DB::Part->displayable_name_prefs, + }, + }; +} + sub save_preferences { $main::lxdebug->enter_sub(); @@ -641,6 +542,16 @@ sub save_preferences { map { ($_ => $form->{$_}) } SL::DB::AuthUser::CONFIG_VARS(), }); + # Displayable name preferences + my $displayable_name_specs_by_module = displayable_name_specs_by_module(); + foreach my $specs (@{ $form->{displayable_name_specs} }) { + if (!$specs->{value} || $specs->{value} eq $displayable_name_specs_by_module->{$specs->{module}}->{prefs}->get_default()) { + $displayable_name_specs_by_module->{$specs->{module}}->{prefs}->delete($specs->{value}); + } else { + $displayable_name_specs_by_module->{$specs->{module}}->{prefs}->store_value($specs->{value}); + } + } + $main::lxdebug->leave_sub(); return 1; @@ -1424,12 +1335,14 @@ sub get_warehouse { map { $form->{$_} = $ref->{$_} } keys %{ $ref }; $query = <{BINS} = selectall_hashref_query($form, $dbh, $query, conv_i($form->{id})); @@ -1437,4 +1350,22 @@ SQL $main::lxdebug->leave_sub(); } +sub get_eur_categories { + my ($self, $myconfig, $form) = @_; + + my $dbh = SL::DB->client->dbh; + my %eur_categories = selectall_as_map($form, $dbh, "select * from eur_categories order by id", 'id', 'description'); + + return \%eur_categories; +} + +sub get_bwa_categories { + my ($self, $myconfig, $form) = @_; + + my $dbh = SL::DB->client->dbh; + my %bwa_categories = selectall_as_map($form, $dbh, "select * from bwa_categories order by id", 'id', 'description'); + + return \%bwa_categories; +} + 1;