X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FIC.pm;h=27af46a50085d766bc0600f91f41982200fda192;hb=81dd36be6ec283deeb77c790f1cc6c55443a7932;hp=163f590696a14956833795e5032290e60c5dfb98;hpb=9ac80938379c017dda977dba51053c2983e3eb17;p=kivitendo-erp.git diff --git a/SL/IC.pm b/SL/IC.pm index 163f59069..27af46a50 100644 --- a/SL/IC.pm +++ b/SL/IC.pm @@ -243,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; @@ -319,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"; } @@ -348,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 = ?, @@ -419,10 +419,9 @@ sub save { $query = qq|INSERT INTO prices (parts_id, pricegroup_id, price) VALUES(?, ?, ?)|; $sth = prepare_query($form, $dbh, $query); - # insert price records only if different to sellprice for my $i (1 .. $form->{price_rows}) { my $price = $form->parse_amount($myconfig, $form->{"price_$i"}); - next unless $price && ($price != $form->{sellprice}); + next unless $price; @values = (conv_i($form->{id}), conv_i($form->{"pricegroup_id_$i"}), $price); do_statement($form, $sth, $query, @values); @@ -1081,7 +1080,7 @@ SQL $main::lxdebug->leave_sub(); - return wantarray ? @{ $form->{parts} } : $form->{parts}; + return @{ $form->{parts} }; } sub _create_filter_for_priceupdate { @@ -1541,17 +1540,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, <