X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/3aaf323a185bff9ff15d5384122b5600e969080f..a5f30bf0b12c7e02f545f06215b4b10f01fa12d0:/SL/Form.pm diff --git a/SL/Form.pm b/SL/Form.pm index 25886980a..a0fa96a2c 100644 --- a/SL/Form.pm +++ b/SL/Form.pm @@ -1,4 +1,4 @@ -#===================================================================== +#==================================================================== # LX-Office ERP # Copyright (C) 2004 # Based on SQL-Ledger Version 2.1.9 @@ -382,8 +382,8 @@ function fokus(){document.$self->{fokus}.focus();} $jsscript = qq| + + $self->{javascript} |; } @@ -450,25 +450,25 @@ sub write_trigger { $trigger_1 = qq| Calendar.setup( -  { -    inputField  : "$inputField_1", -    ifFormat    :"$ifFormat", -    align    : "$align_1",      -    button      : "$button_1" -  } -  ); + { + inputField : "$inputField_1", + ifFormat :"$ifFormat", + align : "$align_1", + button : "$button_1" + } + ); |; if ($qty == 2) { $trigger_2 = qq| Calendar.setup( { -     inputField  : "$inputField_2", -     ifFormat    :"$ifFormat", -    align    : "$align_2",      -    button      : "$button_2" -  } -  ); + inputField : "$inputField_2", + ifFormat :"$ifFormat", + align : "$align_2", + button : "$button_2" + } + ); |; } $jsscript = qq| @@ -540,19 +540,19 @@ sub format_amount { $amount =~ s/\d{3,}?/$&,/g; $amount =~ s/,$//; $amount = join '', reverse split //, $amount; - $amount .= "\.$dec".$fillup; + $amount .= "\.$dec".$fillup if ($places ne '' && $places*1 != 0); } if ($myconfig->{numberformat} eq '1.000,00') { $amount =~ s/\d{3,}?/$&./g; $amount =~ s/\.$//; $amount = join '', reverse split //, $amount; - $amount .= ",$dec" .$fillup; + $amount .= ",$dec".$fillup if ($places ne '' && $places*1 != 0); } if ($myconfig->{numberformat} eq '1000,00') { $amount = "$whole"; - $amount .= ",$dec" .$fillup; + $amount .= ",$dec" .$fillup if ($places ne '' && $places*1 != 0); } if ($dash =~ /-/) { @@ -604,26 +604,21 @@ sub round_amount { $main::lxdebug->enter_sub(); my ($self, $amount, $places) = @_; - my $rc; - - # $places = 3 if $places == 2; + my $round_amount; - if (($places * 1) >= 0) { - - # add 1/10^$places+3 - $rc = - sprintf("%.${places}f", - $amount + (1 / (10**($places + 3))) * (($amount > 0) ? 1 : -1)); - } else { - $places *= -1; - $rc = - sprintf("%.f", $amount / (10**$places) + (($amount > 0) ? 0.1 : -0.1)) * - (10**$places); - } + # Rounding like "Kaufmannsrunden" + # Descr. http://de.wikipedia.org/wiki/Rundung + # Inspired by + # http://www.perl.com/doc/FAQs/FAQ/oldfaq-html/Q4.13.html + # Solves Bug: 189 + # Udo Spallek + $amount = $amount * (10 ** ($places)); + $round_amount = int($amount + .5 * ($amount <=> 0))/(10**($places)); $main::lxdebug->leave_sub(); - return $rc; + return $round_amount; + } @@ -1035,7 +1030,7 @@ sub format_string { next unless ($self->{$field} =~ /\/); $self->{$field} =~ s/\//g; if ($field =~ /.*_(\d+)$/) { - if ($self->{"_forced_pagebreaks"}) { + if (!$self->{"_forced_pagebreaks"}) { $self->{"_forced_pagebreaks"} = []; } push(@{ $self->{"_forced_pagebreaks"} }, "$1"); @@ -1105,9 +1100,6 @@ sub format_string { 'u' => 'underline'); foreach my $field (@fields) { - if ($field =~ /descrip/) { - print(STDERR "QFT: ${field}: " . $self->{$field} . "\n"); - } foreach my $key (keys(%markup_replace)) { my $new = $markup_replace{$key}; $self->{$field} =~ @@ -1285,6 +1277,11 @@ sub get_exchangerate { $main::lxdebug->enter_sub(); my ($self, $dbh, $curr, $transdate, $fld) = @_; + + unless ($transdate) { + $main::lxdebug->leave_sub(); + return ""; + } my $query = qq|SELECT e.$fld FROM exchangerate e WHERE e.curr = '$curr' @@ -1768,10 +1765,9 @@ sub lastname_used { $where = "quotation = '1'"; } - my $query = qq|SELECT id FROM $arap - WHERE id IN (SELECT MAX(id) FROM $arap + my $query = qq|SELECT MAX(id) FROM $arap WHERE $where - AND ${table}_id > 0)|; + AND ${table}_id > 0|; my $sth = $dbh->prepare($query); $sth->execute || $self->dberror($query); @@ -2125,6 +2121,38 @@ sub get_partsgroup { } +sub get_pricegroup { + $main::lxdebug->enter_sub(); + + my ($self, $myconfig, $p) = @_; + + my $dbh = $self->dbconnect($myconfig); + + my $query = qq|SELECT p.id, p.pricegroup + FROM pricegroup p|; + + $query .= qq| + ORDER BY pricegroup|; + + if ($p->{all}) { + $query = qq|SELECT id, pricegroup FROM pricegroup + ORDER BY pricegroup|; + } + + my $sth = $dbh->prepare($query); + $sth->execute || $self->dberror($query); + + $self->{all_pricegroup} = (); + while (my $ref = $sth->fetchrow_hashref(NAME_lc)) { + push @{ $self->{all_pricegroup} }, $ref; + } + $sth->finish; + $dbh->disconnect; + + $main::lxdebug->leave_sub(); +} + + sub audittrail { my ($self, $dbh, $myconfig, $audittrail) = @_; @@ -2185,7 +2213,7 @@ sub audittrail { $query = qq|INSERT INTO audittrail (trans_id, tablename, reference, formname, action, employee_id, transdate) VALUES ( $audittrail->{id}, '$audittrail->{tablename}', | - .$dbh->quote($audittrail->{reference}).qq|', + .$dbh->quote($audittrail->{reference}).qq|, '$audittrail->{formname}', '$audittrail->{action}', $employee_id, '$audittrail->{transdate}')|; } else {