require "bin/mozilla/reportgenerator.pl";
+use strict;
+
1;
# end of main
# $locale->text('Dec')
sub chart_of_accounts {
- $lxdebug->enter_sub();
+ $main::lxdebug->enter_sub();
+
+ my $form = $main::form;
+ my %myconfig = %main::myconfig;
+ my $locale = $main::locale;
- $auth->assert('report');
+ $main::auth->assert('report');
$form->{title} = $locale->text('Chart of Accounts');
+ if ($::lx_office_conf{system}->{eur}) {
+ $form->{method} = "cash";
+ }
+
CA->all_accounts(\%myconfig, \%$form);
my @columns = qw(accno description debit credit);
'std_column_visibility' => 1,
);
$report->set_options_from_form();
+ $locale->set_numberformat_wo_thousands_separator(\%myconfig) if lc($report->{options}->{output_format}) eq 'csv';
$report->set_columns(%column_defs);
$report->set_column_order(@columns);
my %totals = ('debit' => 0, 'credit' => 0);
foreach my $ca (@{ $form->{CA} }) {
+ next unless defined $ca->{amount};
my $row = { };
foreach (qw(debit credit)) {
$report->generate_with_headers();
- $lxdebug->leave_sub();
+ $main::lxdebug->leave_sub();
}
sub list {
- $lxdebug->enter_sub();
+ $main::lxdebug->enter_sub();
+
+ my $form = $main::form;
+ my %myconfig = %main::myconfig;
+ my $locale = $main::locale;
- $auth->assert('report');
+ $main::auth->assert('report');
$form->{title} = $locale->text('List Transactions');
$form->{title} .= " - " . $locale->text('Account') . " $form->{accno}";
- $year = (localtime)[5] + 1900;
+ my $year = (localtime)[5] + 1900;
# get departments
$form->all_departments(\%myconfig);
- if (@{ $form->{all_departments} }) {
+ if (@{ $form->{all_departments} || [] }) {
$form->{selectdepartment} = "<option>\n";
map {
$form->{selectdepartment} .=
"<option>$_->{description}--$_->{id}\n"
- } (@{ $form->{all_departments} });
+ } (@{ $form->{all_departments} || [] });
}
- $department = qq|
+ my $department = qq|
<tr>
- <th align=right nowrap>| . $locale->text('Department') . qq|</th>
- <td colspan=3><select name=department>$form->{selectdepartment}</select></td>
- </tr>
+ <th align=right nowrap>| . $locale->text('Department') . qq|</th>
+ <td colspan=3><select name=department>$form->{selectdepartment}</select></td>
+ </tr>
| if $form->{selectdepartment};
- $accrual = ($eur) ? "" : "checked";
- $cash = ($eur) ? "checked" : "";
-
- $name_1 = "fromdate";
- $id_1 = "fromdate";
- $value_1 = "$form->{fromdate}";
- $trigger_1 = "trigger1";
- $name_2 = "todate";
- $id_2 = "todate";
- $value_2 = "";
- $trigger_2 = "trigger2";
+ my $accrual = $::lx_office_conf{system}->{eur} ? "" : "checked";
+ my $cash = $::lx_office_conf{system}->{eur} ? "checked" : "";
+ my $name_1 = "fromdate";
+ my $id_1 = "fromdate";
+ my $value_1 = "$form->{fromdate}";
+ my $trigger_1 = "trigger1";
+ my $name_2 = "todate";
+ my $id_2 = "todate";
+ my $value_2 = "";
+ my $trigger_2 = "trigger2";
+
+ my ($button1, $button1_2, $button2, $button2_2, $jsscript);
# with JavaScript Calendar
if ($form->{jsscript}) {
}
$form->{javascript} .= qq|<script type="text/javascript" src="js/common.js"></script>|;
$form->header;
- $onload = qq|focus()|;
+ my $onload = qq|focus()|;
$onload .= qq|;setupDateFormat('|. $myconfig{dateformat} .qq|', '|. $locale->text("Falsches Datumsformat!") .qq|')|;
$onload .= qq|;setupPoints('|. $myconfig{numberformat} .qq|', '|. $locale->text("wrongformat") .qq|')|;
$form->{description} =~ s/\"/"/g;
+ my $eur = $::lx_office_conf{system}->{eur};
+
print qq|
<body onLoad="$onload">
</table>
<table>
- <tr>
- <th align=left><input name=reporttype class=radio type=radio value="custom" checked> |
+ <tr>
+ <th align=left><input name=reporttype class=radio type=radio value="custom" checked> |
. $locale->text('Customized Report') . qq|</th>
- </tr>
- <tr>
- <th colspan=1>| . $locale->text('Year') . qq|</th>
- <td><input name=year size=11 title="|
+ </tr>
+ <tr>
+ <th colspan=1>| . $locale->text('Year') . qq|</th>
+ <td><input name=year size=11 title="|
. $locale->text('YYYY') . qq|" value="$year"></td>
- </tr>
+ </tr>
|;
print qq|
- <tr>
- <td align=right>
+ <tr>
+ <td align=right>
<b> | . $locale->text('Yearly') . qq|</b> </td>
- <th align=left>| . $locale->text('Quarterly') . qq|</th>
- <th align=left colspan=3>| . $locale->text('Monthly') . qq|</th>
- </tr>
- <tr>
- <td align=right> <input name=duetyp class=radio type=radio value="13"
-$checked></td>
- <td><input name=duetyp class=radio type=radio value="A" $checked > 1. |
- . $locale->text('Quarter') . qq|</td>
-|;
- $checked = "checked";
- print qq|
- <td><input name=duetyp class=radio type=radio value="1" $checked > |
- . $locale->text('January') . qq|</td>
-|;
- $checked = "";
- print qq|
- <td><input name=duetyp class=radio type=radio value="5" $checked > |
- . $locale->text('May') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="9" $checked > |
- . $locale->text('September') . qq|</td>
-
- </tr>
- <tr>
- <td align= right> </td>
- <td><input name=duetyp class=radio type=radio value="B" $checked> 2. |
- . $locale->text('Quarter') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="2" $checked > |
- . $locale->text('February') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="6" $checked > |
- . $locale->text('June') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="10" $checked > |
- . $locale->text('October') . qq|</td>
- </tr>
- <tr>
- <td> </td>
- <td><input name=duetyp class=radio type=radio value="C" $checked> 3. |
- . $locale->text('Quarter') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="3" $checked > |
- . $locale->text('March') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="7" $checked > |
- . $locale->text('July') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="11" $checked > |
- . $locale->text('November') . qq|</td>
-
- </tr>
- <tr>
- <td> </td>
- <td><input name=duetyp class=radio type=radio value="D" $checked> 4. |
- . $locale->text('Quarter') . qq| </td>
- <td><input name=duetyp class=radio type=radio value="4" $checked > |
- . $locale->text('April') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="8" $checked > |
- . $locale->text('August') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="12" $checked > |
- . $locale->text('December') . qq|</td>
-
- </tr>
- <tr>
- <td colspan=5><hr size=3 noshade></td>
- </tr>
- <tr>
- <th align=left><input name=reporttype class=radio type=radio value="free" $checked> |
- . $locale->text('Free report period') . qq|</th>
- <td align=left colspan=4>| . $locale->text('From') . qq|
- $button1
+ <th align=left>| . $locale->text('Quarterly') . qq|</th>
+ <th align=left colspan=3>| . $locale->text('Monthly') . qq|</th>
+ </tr>
+ <tr>
+ <td align=right> <input name=duetyp class=radio type=radio value="13"></td>
+ <td><input name=duetyp class=radio type=radio value="A"> 1. | . $locale->text('Quarter') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="1" "checked"> | . $locale->text('January') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="5" > | . $locale->text('May') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="9" > | . $locale->text('September') . qq|</td>
+
+ </tr>
+ <tr>
+ <td align= right> </td>
+ <td><input name=duetyp class=radio type=radio value="B"> 2. | . $locale->text('Quarter') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="2" > | . $locale->text('February') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="6" > | . $locale->text('June') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="10" > | . $locale->text('October') . qq|</td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td><input name=duetyp class=radio type=radio value="C"> 3. | . $locale->text('Quarter') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="3" > | . $locale->text('March') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="7" > | . $locale->text('July') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="11" > | . $locale->text('November') . qq|</td>
+
+ </tr>
+ <tr>
+ <td> </td>
+ <td><input name=duetyp class=radio type=radio value="D"> 4. | . $locale->text('Quarter') . qq| </td>
+ <td><input name=duetyp class=radio type=radio value="4" > | . $locale->text('April') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="8" > | . $locale->text('August') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="12" > | . $locale->text('December') . qq|</td>
+
+ </tr>
+ <tr>
+ <td colspan=5><hr size=3 noshade></td>
+ </tr>
+ <tr>
+ <th align=left><input name=reporttype class=radio type=radio value="free"> | . $locale->text('Free report period') . qq|</th>
+ <td align=left colspan=4>| . $locale->text('From') . qq|
+ $button1
$button1_2
- | . $locale->text('Bis') . qq|
- $button2
+ | . $locale->text('Bis') . qq|
+ $button2
$button2_2
</td>
</tr>
- <tr>
- <td colspan=5><hr size=3 noshade></td>
- </tr>
- <tr>
- <th align=leftt>| . $locale->text('Method') . qq|</th>
- <td colspan=3><input name=method class=radio type=radio value=accrual $accrual>|
- . $locale->text('Accrual') . qq|
- <input name=method class=radio type=radio value=cash $cash>|
- . $locale->text('EUR') . qq|</td>
- </tr>
<tr>
- <th align=right colspan=4>|
- . $locale->text('Decimalplaces')
- . qq|</th>
+ <td colspan=5><hr size=3 noshade></td>
+ </tr>
+ <tr>
+ <th align=leftt>| . $locale->text('Method') . qq|</th>
+ <td colspan=3><input name=method class=radio type=radio value=accrual $accrual>| . $locale->text('Accrual') . qq|
+ <input name=method class=radio type=radio value=cash $cash>| . $locale->text('EUR') . qq|</td>
+ </tr>
+ <tr>
+ <th align=right colspan=4>| . $locale->text('Decimalplaces') . qq|</th>
<td><input name=decimalplaces size=3 value="2"></td>
</tr>
<tr>
<td><input name="subtotal" class=checkbox type=checkbox value=1> | . $locale->text('Subtotal') . qq|</td>
</tr>
-
+
$jsscript
<tr><td colspan=5 ><hr size=3 noshade></td></tr>
</table>
</html>
|;
- $lxdebug->leave_sub();
+ $main::lxdebug->leave_sub();
}
sub format_debit_credit {
- $lxdebug->enter_sub();
+ $main::lxdebug->enter_sub();
my $dc = shift;
+ my $form = $main::form;
+ my %myconfig = %main::myconfig;
+ my $locale = $main::locale;
+
my $formatted_dc = $form->format_amount(\%myconfig, abs($dc), 2) . ' ';
$formatted_dc .= ($dc > 0) ? $locale->text('Credit (one letter abbreviation)') : $locale->text('Debit (one letter abbreviation)');
- $lxdebug->leave_sub();
+ $main::lxdebug->leave_sub();
return $formatted_dc;
}
sub list_transactions {
- $lxdebug->enter_sub();
+ $main::lxdebug->enter_sub();
- $auth->assert('report');
+ my $form = $main::form;
+ my %myconfig = %main::myconfig;
+ my $locale = $main::locale;
+
+ $main::auth->assert('report');
$form->{title} = $locale->text('Account') . " $form->{accno} - $form->{description}";
$form->{fromdate} = "1.2.$form->{year}";
#this works from 1901 to 2099, 1900 and 2100 fail.
- $leap = ($form->{year} % 4 == 0) ? "29" : "28";
+ my $leap = ($form->{year} % 4 == 0) ? "29" : "28";
$form->{todate} = "$leap.2.$form->{year}";
last SWITCH;
};
push @options, $period;
+ $form->{print_date} = $locale->text('Create Date') . " " . $locale->date(\%myconfig, $form->current_date(\%myconfig), 0);
+ push (@options, $form->{print_date});
+
+ $form->{company} = $locale->text('Company') . " " . $myconfig{company};
+ push (@options, $form->{company});
+
my @columns = qw(transdate reference description gegenkonto debit credit ustkonto ustrate balance);
my %column_defs = (
'transdate' => { 'text' => $locale->text('Date'), },
'description' => { 'text' => $locale->text('Description'), },
'debit' => { 'text' => $locale->text('Debit'), },
'credit' => { 'text' => $locale->text('Credit'), },
- 'gegenkonto' => { 'text' => $locale->text('Gegenkonto'), },
- 'ustkonto' => { 'text' => $locale->text('USt-Konto'), },
- 'balance' => { 'text' => $locale->text('Balance'), },
+ 'gegenkonto' => { 'text' => $locale->text('Gegenkonto'), },
+ 'ustkonto' => { 'text' => $locale->text('USt-Konto'), },
+ 'balance' => { 'text' => $locale->text('Balance'), },
'ustrate' => { 'text' => $locale->text('Satz %'), },
);
my %column_alignment = map { $_ => 'right' } qw(debit credit);
- @custom_headers = ();
+ my @custom_headers = ();
# Zeile 1:
push @custom_headers, [
{ 'text' => 'Letzte Buchung', },
'std_column_visibility' => 1,
);
$report->set_options_from_form();
+ $locale->set_numberformat_wo_thousands_separator(\%myconfig) if lc($report->{options}->{output_format}) eq 'csv';
$report->set_columns(%column_defs);
$report->set_column_order(@columns);
$report->set_sort_indicator($form->{sort}, 1);
- $column_defs->{balance}->{visible} = 1;
+ $column_defs{balance}->{visible} = 1;
my $ml = ($form->{category} =~ /(A|E)/) ? -1 : 1;
$ca->{description} .= " \n " . $ca->{memo};
}
-
+
foreach my $gegenkonto (@{ $ca->{GEGENKONTO} }) {
if ($ca->{gegenkonto} eq "") {
$report->add_separator();
- my $row = {
+ $row = {
'transdate' => {
'data' => "",
'class' => 'listtotal',
$report->add_data($row);
my $saldo_new = format_debit_credit($form->{saldo_new});
- my $row = {
+ $row = {
'transdate' => {
'data' => "",
'class' => 'listtotal',
$report->generate_with_headers();
- $lxdebug->leave_sub();
+ $main::lxdebug->leave_sub();
}
sub create_subtotal_row {
- $lxdebug->enter_sub();
+ $main::lxdebug->enter_sub();
+
+ my $form = $main::form;
+ my %myconfig = %main::myconfig;
my ($totals, $columns, $column_alignment, $class) = @_;
map { $totals->{$_} = 0 } qw(debit credit);
- $lxdebug->leave_sub();
+ $main::lxdebug->leave_sub();
return $row;
}