Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 7d91a3cf

Von Rolf Fluehmann vor mehr als 7 Jahren hinzugefügt

  • ID 7d91a3cfe2ad0b6397a620268bb5939596982a5a
  • Vorgänger 4487bcbf
  • Nachfolger b0fc2ec2

Erfolgsrechnung kann nach Abteilung gefiltert werden

Unterschiede anzeigen:

SL/RP.pm
my %categories = (I => "ERTRAG", E => "AUFWAND");
my $fromdate = conv_dateq($form->{fromdate});
my $todate = conv_dateq($form->{todate});
my $department_id = conv_i((split /--/, $form->{department})[1], 'NULL');
$form->{total} = 0;
......
my %category = (
name => $categories{$category},
total => 0,
accounts => get_accounts_ch($category),
accounts => get_accounts_ch($category)
);
foreach my $account (@{$category{accounts}}) {
$account->{total} += get_total_ch($account->{id}, $fromdate, $todate);
$account->{total} = get_total_ch($department_id, $account->{id}, $fromdate, $todate);
$category{total} += $account->{total};
$account->{total} = $form->format_amount($myconfig, $form->round_amount($account->{total}, 2), 2);
}
......
$main::lxdebug->enter_sub();
my ($category) = @_;
my ($inclusion);
my $inclusion = '' ;
if ($category eq 'I') {
$inclusion = "AND pos_er = NULL OR pos_er = '1'";
......
sub get_total_ch {
$main::lxdebug->enter_sub();
my ($chart_id, $fromdate, $todate) = @_;
my ($department_id, $chart_id, $fromdate, $todate) = @_;
my $total = 0;
my $query = qq|
SELECT SUM(amount)
......
AND transdate >= ?
AND transdate <= ?
|;
$total += _query($query, $chart_id, $fromdate, $todate)->[0]->{sum};
if ($department_id) {
$query .= qq| AND COALESCE(
(SELECT department_id FROM ar WHERE ar.id=trans_id),
(SELECT department_id FROM gl WHERE gl.id=trans_id),
(SELECT department_id FROM ap WHERE ap.id=trans_id)
) = ? |;
$total += _query($query, $chart_id, $fromdate, $todate, $department_id)->[0]->{sum};
} else {
$total += _query($query, $chart_id, $fromdate, $todate)->[0]->{sum};
}
$main::lxdebug->leave_sub();
return $total;

Auch abrufbar als: Unified diff