X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FIC.pm;h=f6ceaceb105b6f545116af8d969b5ec7ba538608;hb=90c31393ba44d8c9f52bea079f57582958421cf2;hp=649ad2fd0659faecc0437c583d357c4ef78172ef;hpb=f796ed261b3ba8503a8bd9f2d9b7effed12355c7;p=kivitendo-erp.git diff --git a/SL/IC.pm b/SL/IC.pm index 649ad2fd0..f6ceaceb1 100644 --- a/SL/IC.pm +++ b/SL/IC.pm @@ -40,6 +40,7 @@ use YAML; use SL::CVar; use SL::DBUtils; +use SL::HTML::Restrict; use SL::TransNumber; use strict; @@ -227,6 +228,7 @@ sub save { my @values; # connect to database, turn off AutoCommit my $dbh = $form->get_standard_dbh; + my $restricter = SL::HTML::Restrict->create; # save the part # make up a unique handle and store in partnumber field @@ -241,7 +243,7 @@ sub save { map { $form->{$_} = $form->parse_amount($myconfig, $form->{$_}) } qw(rop weight listprice sellprice gv lastcost); - my $makemodel = (($form->{make_1}) || ($form->{model_1})) ? 1 : 0; + my $makemodel = ($form->{make_1} || $form->{model_1} || ($form->{makemodel_rows} > 1)) ? 1 : 0; $form->{assembly} = ($form->{item} eq 'assembly') ? 1 : 0; @@ -317,9 +319,9 @@ sub save { if ($form->{"item"} ne "assembly") { $subq_expense = - qq|(SELECT bg.expense_accno_id_0 - FROM buchungsgruppen bg - WHERE bg.id = | . conv_i($form->{"buchungsgruppen_id"}, 'NULL') . qq|)|; + qq|(SELECT tc.expense_accno_id + FROM taxzone_charts tc + WHERE tc.buchungsgruppen_id = | . conv_i($form->{"buchungsgruppen_id"}, 'NULL') . qq| and tc.taxzone_id = 0)|; } else { $subq_expense = "NULL"; } @@ -346,7 +348,7 @@ sub save { buchungsgruppen_id = ?, payment_id = ?, inventory_accno_id = $subq_inventory, - income_accno_id = (SELECT bg.income_accno_id_0 FROM buchungsgruppen bg WHERE bg.id = ?), + income_accno_id = (SELECT tc.income_accno_id FROM taxzone_charts tc WHERE tc.taxzone_id = 0 and tc.buchungsgruppen_id = ?), expense_accno_id = $subq_expense, obsolete = ?, image = ?, @@ -371,7 +373,7 @@ sub save { $form->{lastcost}, $form->{weight}, $form->{unit}, - $form->{notes}, + $restricter->process($form->{notes}), $form->{formel}, $form->{rop}, conv_i($form->{warehouse_id}), @@ -405,7 +407,7 @@ sub save { $sth = $dbh->prepare($query); foreach my $translation (@translations) { - do_statement($form, $sth, $query, conv_i($form->{id}), conv_i($translation->{language_id}), $translation->{translation}, $translation->{longdescription}); + do_statement($form, $sth, $query, conv_i($form->{id}), conv_i($translation->{language_id}), $translation->{translation}, $restricter->process($translation->{longdescription})); } $sth->finish(); @@ -1539,17 +1541,21 @@ sub retrieve_accounts { SELECT p.id, p.inventory_accno_id AS is_part, bg.inventory_accno_id, - bg.income_accno_id_$form->{taxzone_id} AS income_accno_id, - bg.expense_accno_id_$form->{taxzone_id} AS expense_accno_id, + tc.income_accno_id AS income_accno_id, + tc.expense_accno_id AS expense_accno_id, c1.accno AS inventory_accno, c2.accno AS income_accno, c3.accno AS expense_accno FROM parts p LEFT JOIN buchungsgruppen bg ON p.buchungsgruppen_id = bg.id + LEFT JOIN taxzone_charts tc on bg.id = tc.buchungsgruppen_id LEFT JOIN chart c1 ON bg.inventory_accno_id = c1.id - LEFT JOIN chart c2 ON bg.income_accno_id_$form->{taxzone_id} = c2.id - LEFT JOIN chart c3 ON bg.expense_accno_id_$form->{taxzone_id} = c3.id - WHERE p.id IN ($in) + LEFT JOIN chart c2 ON tc.income_accno_id = c2.id + LEFT JOIN chart c3 ON tc.expense_accno_id = c3.id + WHERE + tc.taxzone_id = '$form->{taxzone_id}' + and + p.id IN ($in) SQL my $sth_tax = prepare_query($::form, $dbh, <get_all(query => [ id => \@part_ids ]); + my %parts_by_id = map { $_->id => $_ } @$parts; + + for my $i (1..$rowcount) { + my $id = $form->{"${prefix}${i}"}; + next unless $id; + + push @{ $form->{TEMPLATE_ARRAYS}{part_type} }, $parts_by_id{$id}->type; + } + $main::lxdebug->leave_sub(); }