X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FIS.pm;h=3896277c917b49118b3fb36ff0dd596b1e44fed0;hb=abd6359e164d3e7eaffd45a2549ee1e6c167f995;hp=590923361bd293b8548ab10128f7628c58ef149b;hpb=0f83109985b416d2e18e472ede54e4f633ed3596;p=kivitendo-erp.git diff --git a/SL/IS.pm b/SL/IS.pm index 590923361..3896277c9 100644 --- a/SL/IS.pm +++ b/SL/IS.pm @@ -46,6 +46,7 @@ use SL::GenericTranslations; use SL::MoreCommon; use SL::IC; use SL::IO; +use SL::TransNumber; use Data::Dumper; use strict; @@ -515,7 +516,7 @@ sub post_invoice { my ($self, $myconfig, $form, $provided_dbh, $payments_only) = @_; # connect to database, turn off autocommit - my $dbh = $provided_dbh ? $provided_dbh : $form->dbconnect_noauto($myconfig); + my $dbh = $provided_dbh ? $provided_dbh : $form->get_standard_dbh; my ($query, $sth, $null, $project_id, @values); my $exchangerate = 0; @@ -538,6 +539,9 @@ sub post_invoice { &reverse_invoice($dbh, $form); } else { + my $trans_number = SL::TransNumber->new(type => $form->{type}, dbh => $dbh, number => $form->{invnumber}, save => 1); + $form->{invnumber} = $trans_number->create_unique unless $trans_number->is_unique; + $query = qq|SELECT nextval('glid')|; ($form->{"id"}) = selectrow_query($form, $dbh, $query); @@ -1277,7 +1281,7 @@ sub cogs { # total expenses and inventory # sellprice is the cost of the item - my $linetotal = $form->round_amount(($ref->{sellprice} * $qty) / ($ref->{price_factor} * ( $basefactor || 1 )), 2); + my $linetotal = $form->round_amount(($ref->{sellprice} * $qty) / ( ($ref->{price_factor} || 1) * ( $basefactor || 1 )), 2); if (!$main::eur) { $ref->{expense_accno} = ($form->{"expense_accno_$row"}) ? $form->{"expense_accno_$row"} : $ref->{expense_accno}; @@ -2076,14 +2080,14 @@ sub get_pricegroups_for_parts { $pkr->{price} = $form->{"sellprice_$i"}; $pkr->{selected} = ' selected'; } - } - - if ($selectedpricegroup_id or $selectedpricegroup_id == 0) { + } else { if ($selectedpricegroup_id ne $pricegroup_old) { if ($pkr->{pricegroup_id} eq $selectedpricegroup_id) { $pkr->{selected} = ' selected'; } - } elsif (($price_new != $form->{"sellprice_$i"}) and ($price_new ne 0)) { + } elsif ( ( $form->parse_amount($myconfig, $price_new) + != $form->parse_amount($myconfig, $form->{"sellprice_$i"})) + and ($price_new ne 0)) { if ($pkr->{pricegroup_id} == 0) { $pkr->{price} = $form->{"sellprice_$i"}; $pkr->{selected} = ' selected';