X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=inline;f=bin%2Fmozilla%2Frp.pl;h=aaf47ff5fec8d9fb12f2f758d5486602bff21086;hb=8b6ad9a4da005f880abf86378299756cebae75c4;hp=f618c5b69226570dab2c760f5fdc6bcc74271205;hpb=eb97535311910e0172988ee93cfedf05fb5a3b26;p=kivitendo-erp.git diff --git a/bin/mozilla/rp.pl b/bin/mozilla/rp.pl index f618c5b69..aaf47ff5f 100644 --- a/bin/mozilla/rp.pl +++ b/bin/mozilla/rp.pl @@ -85,6 +85,8 @@ use strict; # $locale->text('Trial Balance') # $locale->text('AR Aging') # $locale->text('AP Aging') +# $locale->text('Search AR Aging') +# $locale->text('Search AP Aging') # $locale->text('Tax collected') # $locale->text('Tax paid') # $locale->text('Receipts') @@ -92,6 +94,7 @@ use strict; # $locale->text('Project Transactions') # $locale->text('Non-taxable Sales') # $locale->text('Non-taxable Purchases') +# $locale->text('Business evaluation') # $form->parse_html_template('rp/html_report_susa') @@ -107,10 +110,6 @@ my $rp_access_map = { 'balance_sheet' => 'report', }; -# subs use these pretty freely, so declare them here -our (%column_data, @column_index); -our ($subtotalnetamount, $subtotaltax, $subtotal); - sub check_rp_access { my $form = $main::form; @@ -121,792 +120,97 @@ sub check_rp_access { } sub report { - $main::lxdebug->enter_sub(); + $::lxdebug->enter_sub; check_rp_access(); - my $form = $main::form; - my %myconfig = %main::myconfig; - my $locale = $main::locale; - my %title = ( - 'balance_sheet' => 'Balance Sheet', - 'income_statement' => 'Income Statement', - 'trial_balance' => 'Trial Balance', - 'ar_aging' => 'AR Aging', - 'ap_aging' => 'Offene Verbindlichkeiten', - 'tax_collected' => 'Tax collected', - 'tax_paid' => 'Tax paid', - 'nontaxable_sales' => 'Non-taxable Sales', - 'nontaxable_purchases' => 'Non-taxable Purchases', - 'receipts' => 'Receipts', - 'payments' => 'Payments', - 'projects' => 'Project Transactions', - 'bwa' => 'Betriebswirtschaftliche Auswertung', + balance_sheet => $::locale->text('Balance Sheet'), + income_statement => $::locale->text('Income Statement'), + trial_balance => $::locale->text('Trial Balance'), + ar_aging => $::locale->text('Search AR Aging'), + ap_aging => $::locale->text('Search AP Aging'), + tax_collected => $::locale->text('Tax collected'), + tax_paid => $::locale->text('Tax paid'), + nontaxable_sales => $::locale->text('Non-taxable Sales'), + nontaxable_purchases => $::locale->text('Non-taxable Purchases'), + receipts => $::locale->text('Receipts'), + payments => $::locale->text('Payments'), + projects => $::locale->text('Project Transactions'), + bwa => $::locale->text('Business evaluation'), ); - $form->{title} = $locale->text($title{ $form->{report} }); - - my $accrual = ($main::eur) ? "" : "checked"; - my $cash = ($main::eur) ? "checked" : ""; - - my $year = (localtime)[5] + 1900; + $::form->{title} = $title{$::form->{report}}; # get departments - $form->all_departments(\%myconfig); - if (@{ $form->{all_departments} || [] }) { - $form->{selectdepartment} = "\n"; - map { $form->{selectdepartment} .= "$_->{description}--$_->{id}\n" } @{ $form->{all_departments} || [] }; - } - - my $department = qq| - - | . $locale->text('Department') . qq| - $form->{selectdepartment} - -| if $form->{selectdepartment}; - - $form->get_lists("projects" => { "key" => "ALL_PROJECTS", - "all" => 1 }); - - my %project_labels = (); - my @project_values = (""); - foreach my $item (@{ $form->{"ALL_PROJECTS"} }) { - push(@project_values, $item->{"id"}); - $project_labels{$item->{"id"}} = $item->{"projectnumber"}; - } - - my $projectnumber = - NTI($main::cgi->popup_menu('-name' => "project_id", - '-values' => \@project_values, - '-labels' => \%project_labels)); - - # use JavaScript Calendar or not - $form->{jsscript} = 1; - my $jsscript = ""; - my ( $name_1, $id_1, $value_1, $trigger_1, $name_2, $id_2, $value_2, $trigger_2, ); - if ($form->{report} eq "balance_sheet") { - $name_1 = "asofdate"; - $id_1 = "asofdate"; - $value_1 = "$form->{asofdate}"; - $trigger_1 = "trigger1"; - $name_2 = "compareasofdate"; - $id_2 = "compareasofdate"; - $value_2 = "$form->{compareasofdate}"; - $trigger_2 = "trigger2"; - } elsif ($form->{report} =~ /(receipts|payments)$/) { - $name_1 = "fromdate"; - $id_1 = "fromdate"; - $value_1 = "$form->{fromdate}"; - $trigger_1 = "trigger1"; - $name_2 = "todate"; - $id_2 = "todate"; - $value_2 = ""; - $trigger_2 = "trigger2"; - } elsif (($form->{report} eq "ar_aging") || ($form->{report} eq "ap_aging")) { - $name_1 = "fromdate"; - $id_1 = "fromdate"; - $value_1 = "$form->{fromdate}"; - $trigger_1 = "trigger1"; - $name_2 = "todate"; - $id_2 = "todate"; - $value_2 = ""; - $trigger_2 = "trigger2"; - - } else { - $name_1 = "fromdate"; - $id_1 = "fromdate"; - $value_1 = "$form->{fromdate}"; - $trigger_1 = "trigger1"; - $name_2 = "todate"; - $id_2 = "todate"; - $value_2 = ""; - $trigger_2 = "trigger2"; + $::form->all_departments(\%::myconfig); + if (@{ $::form->{all_departments} || [] }) { + $::form->{selectdepartment} = "\n"; + map { $::form->{selectdepartment} .= "$_->{description}--$_->{id}\n" } @{ $::form->{all_departments} || [] }; } - my ($button1, $button1_2, $button2, $button2_2); - my $checked; - - # with JavaScript Calendar - if ($form->{jsscript}) { - if ($name_1 eq "") { - $button1 = qq| |; - $button1_2 = qq| text('button') . qq|>|; - - #write Trigger - $jsscript = Form->write_trigger(\%myconfig, "1", "$name_2", "BR", "$trigger_2"); - } else { - $button1 = qq| |; - $button1_2 = qq| text('button') . qq|>|; - $button2 = qq| |; - $button2_2 = qq| text('button') . qq|> |; - - #write Trigger - $jsscript = Form->write_trigger(\%myconfig, "2", "$name_1", "BR", "$trigger_1", "$name_2", "BL", "$trigger_2"); - } - } else { + $::form->get_lists("projects" => { "key" => "ALL_PROJECTS", "all" => 1 }); - # without JavaScript Calendar - if ($name_1 eq "") { - $button1 = qq||; - } else { - $button1 = qq||; - $button2 = qq||; - } - } - $form->{javascript} .= qq||; - $form->header; 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|')|; - print qq| - - -{script}> - - - - - - $form->{title} - - - - - - $department -|; - - if ($form->{report} eq "projects") { - print qq| - - | . $locale->text('Project') . qq| - - - - - | . $locale->text('From') . qq| - $button1 - $button1_2 - | . $locale->text('Bis') . qq| - $button2 - $button2_2 - - - - - - - - - | . $locale->text('Include in Report') . qq| - | . $locale->text('Heading') . qq| - | . $locale->text('Subtotal') . qq| - - -$jsscript -|; - } - - if ($form->{report} eq "income_statement") { - print qq| - - | . $locale->text('Project') . qq| - $projectnumber - - - - - - | . $locale->text('Customized Report') . qq| - - - | . $locale->text('Year') . qq| - - -|; - - print qq| - - | . $locale->text('Yearly') . qq| - | . $locale->text('Quarterly') . qq| - | . $locale->text('Monthly') . qq| - - - - 1. | . $locale->text('Quarter') . qq| -|; - $checked = ""; - print qq| - | . $locale->text('January') . qq| -|; - $checked = ""; - print qq| - | . $locale->text('May') . qq| - | . $locale->text('September') . qq| - - - - - 2. | . $locale->text('Quarter') . qq| - | . $locale->text('February') . qq| - | . $locale->text('June') . qq| - | . $locale->text('October') . qq| - - - - 3. | . $locale->text('Quarter') . qq| - | . $locale->text('March') . qq| - | . $locale->text('July') . qq| - | . $locale->text('November') . qq| - - - - - 4. | . $locale->text('Quarter') . qq| - | . $locale->text('April') . qq| - | . $locale->text('August') . qq| - | . $locale->text('December') . qq| - - - - - - - | . $locale->text('Free report period') . qq| - | . $locale->text('From') . qq| - $button1 - $button1_2 - | . $locale->text('Bis') . qq| - $button2 - $button2_2 - - - - - - - | . $locale->text('Method') . qq| - | . $locale->text('Accrual') . qq| - | . $locale->text('EUR') . qq| - - -$jsscript -|; - } - - if ($form->{report} eq "bwa") { - print qq| - - | . $locale->text('Project') . qq| - $projectnumber - - - - - - | . $locale->text('Customized Report') . qq| - - - | . $locale->text('Year') . qq| - - -|; - - print qq| - - | . $locale->text('Yearly') . qq| - | . $locale->text('Quarterly') . qq| - | . $locale->text('Monthly') . qq| - - - - 1. | . $locale->text('Quarter') . qq| -|; - $checked = "checked"; - print qq| - | . $locale->text('January') . qq| -|; - $checked = ""; - print qq| - | . $locale->text('May') . qq| - | . $locale->text('September') . qq| - - - - - 2. | . $locale->text('Quarter') . qq| - | . $locale->text('February') . qq| - | . $locale->text('June') . qq| - | . $locale->text('October') . qq| - - - - 3. | . $locale->text('Quarter') . qq| - | . $locale->text('March') . qq| - | . $locale->text('July') . qq| - | . $locale->text('November') . qq| - - - - - 4. | . $locale->text('Quarter') . qq| - | . $locale->text('April') . qq| - | . $locale->text('August') . qq| - | . $locale->text('December') . qq| - - - - - - - | . $locale->text('Free report period') . qq| - | . $locale->text('From') . qq| - $button1 - $button1_2 - | . $locale->text('Bis') . qq| - $button2 - $button2_2 - - - - - - - | . $locale->text('Method') . qq| - | . $locale->text('Accrual') . qq| - | . $locale->text('EUR') . qq| - - - | . $locale->text('Decimalplaces') . qq| - - - -$jsscript -|; - } - - if ($form->{report} eq "balance_sheet") { - print qq| - - - | . $locale->text('as at') . qq| - - $button1 - $button1_2 - - | . $locale->text('Compare to') . qq| - - $button2 - $button2_2 - - - - | . $locale->text('Decimalplaces') . qq| - - - - - - - - - - | . $locale->text('Method') . qq| - | . $locale->text('Accrual') . qq| - | . $locale->text('EUR') . qq| - - - - | . $locale->text('Include in Report') . qq| - | . $locale->text('Heading') . qq| - | . $locale->text('Subtotal') . qq| - | . $locale->text('Account Number') . qq| - - -$jsscript -|; - } - - if ($form->{report} eq "trial_balance") { - print qq| - - | . $locale->text('Project') . qq| - $projectnumber - - - - - - | . $locale->text('Customized Report') . qq| - - - | . $locale->text('Year') . qq| - - -|; - - print qq| - - | . $locale->text('Yearly') . qq| - | . $locale->text('Quarterly') . qq| - | . $locale->text('Monthly') . qq| - - - - 1. | . $locale->text('Quarter') . qq| -|; - $checked = "checked"; - print qq| - | . $locale->text('January') . qq| -|; - $checked = ""; - print qq| - | . $locale->text('May') . qq| - | . $locale->text('September') . qq| - - - - - 2. | . $locale->text('Quarter') . qq| - | . $locale->text('February') . qq| - | . $locale->text('June') . qq| - | . $locale->text('October') . qq| - - - - 3. | . $locale->text('Quarter') . qq| - | . $locale->text('March') . qq| - | . $locale->text('July') . qq| - | . $locale->text('November') . qq| - - - - - 4. | . $locale->text('Quarter') . qq| - | . $locale->text('April') . qq| - | . $locale->text('August') . qq| - | . $locale->text('December') . qq| - - - - - - - | . $locale->text('Free report period') . qq| - | . $locale->text('From') . qq| - $button1 - $button1_2 - | . $locale->text('Bis') . qq| - $button2 - $button2_2 - - - - - - - | . $locale->text('Method') . qq| - | . $locale->text('Accrual') . qq| - | . $locale->text('EUR') . qq| - - - | . $locale->text('All Accounts') . qq| - - - - | . $locale->text('Decimalplaces') . qq| - - - -$jsscript -|; - } - - if ($form->{report} =~ /^tax_/) { - $form->{db} = ($form->{report} =~ /_collected/) ? "ar" : "ap"; - - RP->get_taxaccounts(\%myconfig, \%$form); - - print qq| - - - | . $locale->text('From') . qq| - {fromdate}> - | . $locale->text('Bis') . qq| - - - - | . $locale->text('Report for') . qq| - -|; - - $checked = "checked"; - foreach my $ref (@{ $form->{taxaccounts} }) { - - print - qq|{accno} $checked> $ref->{description} - - - |; - - $checked = ""; - - } - - print qq| - {db}> - - - - - - | . $locale->text('Method') . qq| - | . $locale->text('Accrual') . qq| - | . $locale->text('EUR') . qq| - - - - - - - - - | . $locale->text('Include in Report') . qq| - - - - - | . $locale->text('ID') . qq| - - | . $locale->text('Invoice') . qq| - - | . $locale->text('Date') . qq| - - - - |; - - if ($form->{db} eq 'ar') { - print $locale->text('Customer'); - } - if ($form->{db} eq 'ap') { - print $locale->text('Vendor'); - } - - print qq| - - | . $locale->text('Amount') . qq| - - | . $locale->text('Tax') . qq| - - | . $locale->text('Total') . qq| - - - - | . $locale->text('Subtotal') . qq| - - - - -|; - - } - - if ($form->{report} =~ /^nontaxable_/) { - $form->{db} = ($form->{report} =~ /_sales/) ? "ar" : "ap"; - - print qq| - - - {db}> - - {report}> - - - | . $locale->text('From') . qq| - {fromdate}> - | . $locale->text('Bis') . qq| - - - - | . $locale->text('Method') . qq| - | - . $locale->text('Accrual') . qq| - | - . $locale->text('EUR') . qq| - - - | . $locale->text('Include in Report') . qq| - - - - - | . $locale->text('ID') . qq| - - | . $locale->text('Invoice') . qq| - - | . $locale->text('Date') . qq| - - - - |; - - if ($form->{db} eq 'ar') { - print $locale->text('Customer'); - } - if ($form->{db} eq 'ap') { - print $locale->text('Vendor'); - } - - print qq| - - | . $locale->text('Amount') . qq| - - | . $locale->text('Total') . qq| - - - - | . $locale->text('Subtotal') . qq| - - - - -|; - } + my $is_projects = $::form->{report} eq "projects"; + my $is_income_statement = $::form->{report} eq "income_statement"; + my $is_bwa = $::form->{report} eq "bwa"; + my $is_balance_sheet = $::form->{report} eq "balance_sheet"; + my $is_trial_balance = $::form->{report} eq "trial_balance"; + my $is_aging = $::form->{report} =~ /^a[rp]_aging$/; + my $is_payments = $::form->{report} =~ /(receipts|payments)$/; my ($label, $nextsub, $vc); - if (($form->{report} eq "ar_aging") || ($form->{report} eq "ap_aging")) { - if ($form->{report} eq 'ar_aging') { - $label = $locale->text('Customer'); - $form->{vc} = 'customer'; - } else { - $label = $locale->text('Vendor'); - $form->{vc} = 'vendor'; - } + if ($is_aging) { + my $is_sales = $::form->{report} eq 'ar_aging'; + $label = $is_sales ? $::locale->text('Customer') : $::locale->text('Vendor'); + $::form->{vc} = $is_sales ? 'customer' : 'vendor'; - $nextsub = "generate_$form->{report}"; + $nextsub = "generate_$::form->{report}"; # setup vc selection - $form->all_vc(\%myconfig, $form->{vc}, - ($form->{vc} eq 'customer') ? "AR" : "AP"); - - map { $vc .= "$_->{name}--$_->{id}\n" } - @{ $form->{"all_$form->{vc}"} }; - - $vc = - ($vc) - ? qq|{vc}>\n$vc| - : qq|{vc} size=35>|; - - print qq| - - | . $locale->text($label) . qq| - $vc - - - | . $locale->text('From') . qq| - $button1 - $button1_2 - | . $locale->text('Bis') . qq| - $button2 - $button2_2 - - - - - - - - - -$jsscript -|; + $::form->all_vc(\%::myconfig, $::form->{vc}, $is_sales ? "AR" : "AP"); + $vc .= "$_->{name}--$_->{id}\n" for @{ $::form->{"all_$::form->{vc}"} }; + $vc = ($vc) + ? qq|{vc}>\n$vc| + : qq|{vc} size=35>|; } - # above action can be removed if there is more than one input field - my ($selection, $paymentaccounts); - if ($form->{report} =~ /(receipts|payments)$/) { - $form->{db} = ($form->{report} =~ /payments$/) ? "ap" : "ar"; + if ($is_payments) { + $::form->{db} = $::form->{report} =~ /payments$/ ? "ap" : "ar"; - RP->paymentaccounts(\%myconfig, \%$form); + RP->paymentaccounts(\%::myconfig, $::form); $selection = "\n"; - foreach my $ref (@{ $form->{PR} }) { + for my $ref (@{ $::form->{PR} }) { $paymentaccounts .= "$ref->{accno} "; $selection .= "$ref->{accno}--$ref->{description}\n"; } - - chop $paymentaccounts; - - print qq| - - - | . $locale->text('Account') . qq| - $selection - - - - - | . $locale->text('Reference') . qq| - - - - | . $locale->text('Source') . qq| - - - - | . $locale->text('Memo') . qq| - - - - | . $locale->text('From') . qq| - - $button1 - $button1_2 - - | . $locale->text('Bis') . qq| - - $button2 - $button2_2 - - - - - | . $locale->text('Include Exchangerate Difference') . qq| - - -$jsscript - - {db}> - -|; - } - print qq| - - - - - - - - - - - - - - - -