X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fgl.pl;h=731f525767357c38d45bc2bfd75dec6041c71dd6;hb=2dacd2790bb5e0990ec5fe89a9d59370b018c25c;hp=0f34f1b94ff387f1d891996915acaf4b37561182;hpb=34366eda748e1198b8b2ead0c3fffd8edba9f23d;p=kivitendo-erp.git diff --git a/bin/mozilla/gl.pl b/bin/mozilla/gl.pl index 0f34f1b94..731f52576 100644 --- a/bin/mozilla/gl.pl +++ b/bin/mozilla/gl.pl @@ -41,11 +41,10 @@ use SL::PE; use SL::ReportGenerator; require "bin/mozilla/common.pl"; +require "bin/mozilla/drafts.pl"; require "bin/mozilla/reportgenerator.pl"; -1; - -# end of main +use strict; # this is for our long dates # $locale->text('January') @@ -75,16 +74,26 @@ require "bin/mozilla/reportgenerator.pl"; # $locale->text('Nov') # $locale->text('Dec') +my $tax; +my $debitlock = 0; +my $creditlock = 0; + sub add { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + $main::auth->assert('general_ledger'); + + my $form = $main::form; + my %myconfig = %main::myconfig; - $auth->assert('general_ledger'); + return $main::lxdebug->leave_sub() if (load_draft_maybe()); $form->{title} = "Add"; $form->{callback} = "gl.pl?action=add" unless $form->{callback}; # we use this only to set a default date + # yep. aber er holt hier auch schon ALL_CHARTS. Aufwand / Nutzen? jb GL->transaction(\%myconfig, \%$form); map { @@ -113,14 +122,17 @@ sub add { $form->{show_details} = $myconfig{show_form_details} unless defined $form->{show_details}; &display_form(1); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub prepare_transaction { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); - $auth->assert('general_ledger'); + $main::auth->assert('general_ledger'); + + my $form = $main::form; + my %myconfig = %main::myconfig; GL->transaction(\%myconfig, \%$form); @@ -146,8 +158,8 @@ sub prepare_transaction { my $i = 1; my $tax = 0; my $taxaccno = ""; - foreach $ref (@{ $form->{GL} }) { - $j = $i - 1; + foreach my $ref (@{ $form->{GL} }) { + my $j = $i - 1; if ($tax && ($ref->{accno} eq $taxaccno)) { $form->{"tax_$j"} = abs($ref->{amount}); $form->{"taxchart_$j"} = $ref->{id} . "--" . $ref->{taxrate}; @@ -188,13 +200,16 @@ sub prepare_transaction { ($form->datetonum($form->{transdate}, \%myconfig) <= $form->datetonum($form->{closedto}, \%myconfig)); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub edit { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + $main::auth->assert('general_ledger'); - $auth->assert('general_ledger'); + my $form = $main::form; + my %myconfig = %main::myconfig; prepare_transaction(); @@ -206,14 +221,19 @@ sub edit { display_rows(); form_footer(); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub search { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); - $auth->assert('general_ledger'); + $main::auth->assert('general_ledger'); + + my $form = $main::form; + my %myconfig = %main::myconfig; + my $locale = $main::locale; + my $cgi = $main::cgi; $form->{title} = $locale->text('Journal'); @@ -229,7 +249,7 @@ sub search { } (@{ $form->{all_departments} }); } - $department = qq| + my $department = qq| | . $locale->text('Department') . qq| @@ -253,7 +273,8 @@ sub search { # use JavaScript Calendar or not $form->{jsscript} = 1; - $jsscript = ""; + my $jsscript = ""; + my ($button1, $button2, $onload); if ($form->{jsscript}) { # with JavaScript Calendar @@ -397,29 +418,36 @@ $jsscript |; - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub create_subtotal_row { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); my ($totals, $columns, $column_alignment, $subtotal_columns, $class) = @_; + my $form = $main::form; + my %myconfig = %main::myconfig; + my $row = { map { $_ => { 'data' => '', 'class' => $class, 'align' => $column_alignment->{$_}, } } @{ $columns } }; map { $row->{$_}->{data} = $form->format_amount(\%myconfig, $totals->{$_}, 2) } @{ $subtotal_columns }; map { $totals->{$_} = 0 } @{ $subtotal_columns }; - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); return $row; } sub generate_report { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + $main::auth->assert('general_ledger'); - $auth->assert('general_ledger'); + my $form = $main::form; + my %myconfig = %main::myconfig; + my $locale = $main::locale; report_generator_set_default_sort('transdate', 1); @@ -508,7 +536,8 @@ sub generate_report { my %column_alignment; map { $column_alignment{$_} = 'right' } qw(balance id debit credit debit_tax credit_tax balance); - map { $column_alignment{$_} = 'center' } qw(transdate reference description source notes debit_accno credit_accno debit_tax_accno credit_tax_accno); + map { $column_alignment{$_} = 'center' } qw(reference debit_accno credit_accno debit_tax_accno credit_tax_accno); + map { $column_alignment{$_} = 'left' } qw(description source notes); map { $column_defs{$_}->{align} = $column_alignment{$_} } keys %column_alignment; my $report = SL::ReportGenerator->new(\%myconfig, $form); @@ -536,7 +565,7 @@ sub generate_report { my %totals = map { $_ => 0 } @totals_columns; my $idx = 0; - foreach $ref (@{ $form->{GL} }) { + foreach my $ref (@{ $form->{GL} }) { my %rows; @@ -642,13 +671,16 @@ sub generate_report { $report->generate_with_headers(); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub update { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); - $auth->assert('general_ledger'); + $main::auth->assert('general_ledger'); + + my $form = $main::form; + my %myconfig = %main::myconfig; $form->{oldtransdate} = $form->{transdate}; @@ -658,8 +690,7 @@ sub update { my $credittax = 0; my $debitcount = 0; my $creditcount = 0; - $debitlock = 0; - $creditlock = 0; + my ($debitcredit, $amount); my @flds = qw(accno debit credit projectnumber fx_transaction source memo tax taxchart); @@ -708,12 +739,12 @@ sub update { ($form->{"debit_$i"} == 0) ? $form->{"credit_$i"} : $form->{"debit_$i"}; - $j = $#a; + my $j = $#a; if (($debitcredit && $credittax) || (!$debitcredit && $debittax)) { $form->{"taxchart_$i"} = "0--0.00"; $form->{"tax_$i"} = 0; } - ($taxkey, $rate) = split(/--/, $form->{"taxchart_$i"}); + my ($taxkey, $rate) = split(/--/, $form->{"taxchart_$i"}); if ($taxkey > 1) { if ($debitcredit) { $debittax = 1; @@ -734,27 +765,30 @@ sub update { } } - for $i (1 .. $count) { - $j = $i - 1; + for my $i (1 .. $count) { + my $j = $i - 1; for (@flds) { $form->{"${_}_$i"} = $a[$j]->{$_} } } - for $i ($count + 1 .. $form->{rowcount}) { + for my $i ($count + 1 .. $form->{rowcount}) { for (@flds) { delete $form->{"${_}_$i"} } } $form->{rowcount} = $count + 1; &display_form; - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub display_form { my ($init) = @_; - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + $main::auth->assert('general_ledger'); - $auth->assert('general_ledger'); + my $form = $main::form; + my %myconfig = %main::myconfig; &form_header($init); @@ -766,15 +800,19 @@ sub display_form { # } &display_rows($init); &form_footer; - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub display_rows { my ($init) = @_; - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); - $auth->assert('general_ledger'); + $main::auth->assert('general_ledger'); + + my $form = $main::form; + my %myconfig = %main::myconfig; + my $cgi = $main::cgi; $form->{debit_1} = 0 if !$form->{"debit_1"}; $form->{totaldebit} = 0; @@ -792,8 +830,11 @@ sub display_rows { my %charts = (); my $taxchart_init; foreach my $item (@{ $form->{ALL_CHARTS} }) { + if ($item->{charttype} eq 'H'){ #falls überschrift + next; #überspringen (Bug 1150) + } my $key = $item->{accno} . "--" . $item->{tax_id}; - $taxchart_init = $item->{taxkey_id} unless (@chart_values); + $taxchart_init = $item->{tax_id} unless (@chart_values); push(@chart_values, $key); $chart_labels{$key} = $item->{accno} . "--" . $item->{description}; $charts{$item->{accno}} = $item; @@ -804,13 +845,14 @@ sub display_rows { my %taxcharts = (); foreach my $item (@{ $form->{ALL_TAXCHARTS} }) { my $key = $item->{id} . "--" . $item->{rate}; - $taxchart_init = $key if ($taxchart_init eq $item->{taxkey}); + $taxchart_init = $key if ($taxchart_init == $item->{id}); push(@taxchart_values, $key); $taxchart_labels{$key} = $item->{taxdescription} . " " . $item->{rate} * 100 . ' %'; $taxcharts{$item->{id}} = $item; } - for $i (1 .. $form->{rowcount}) { + my ($source, $memo, $source_hidden, $memo_hidden); + for my $i (1 .. $form->{rowcount}) { if ($form->{show_details}) { $source = qq| |; @@ -839,13 +881,13 @@ sub display_rows { $selected_taxchart = "$item->{id}--$item->{rate}"; } - $selected_accno = '' if ($init); - $selected_taxchart = $taxchart_init unless ($selected_taxchart ne ""); + $selected_accno = '' if ($init); + $selected_taxchart ||= $taxchart_init; - $accno = qq|| . + my $accno = qq|| . NTI($cgi->popup_menu('-name' => "accno_$i", '-id' => "accno_$i", - '-onChange' => "setTaxkey(this, $i)", + '-onChange' => "setTaxkey($i)", '-style' => 'width:200px', '-values' => \@chart_values, '-labels' => \%chart_labels, @@ -862,6 +904,7 @@ sub display_rows { '-default' => $selected_taxchart)) . qq||; + my ($fx_transaction, $checked); if ($init) { if ($form->{transfer}) { $fx_transaction = qq| @@ -892,7 +935,7 @@ sub display_rows { if ($i < $form->{rowcount}) { if ($form->{transfer}) { $checked = ($form->{"fx_transaction_$i"}) ? "1" : ""; - $x = ($checked) ? "x" : ""; + my $x = ($checked) ? "x" : ""; $fx_transaction = qq| $x |; @@ -950,15 +993,19 @@ sub display_rows { $form->hide_form(qw(rowcount selectaccno)); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub form_header { my ($init) = @_; - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + $main::auth->assert('general_ledger'); - $auth->assert('general_ledger'); + my $form = $main::form; + my %myconfig = %main::myconfig; + my $locale = $main::locale; my @old_project_ids = (); map({ push(@old_project_ids, $form->{"project_id_$_"}) @@ -973,14 +1020,14 @@ sub form_header { GL->get_chart_balances('charts' => $form->{ALL_CHARTS}); - $title = $form->{title}; + my $title = $form->{title}; $form->{title} = $locale->text("$title General Ledger Transaction"); - $readonly = ($form->{id}) ? "readonly" : ""; + my $readonly = ($form->{id}) ? "readonly" : ""; - $show_details_checked = "checked" if $form->{show_details}; + my $show_details_checked = "checked" if $form->{show_details}; - $ob_transaction_checked = "checked" if $form->{ob_transaction}; - $cb_transaction_checked = "checked" if $form->{cb_transaction}; + my $ob_transaction_checked = "checked" if $form->{ob_transaction}; + my $cb_transaction_checked = "checked" if $form->{cb_transaction}; # $locale->text('Add General Ledger Transaction') # $locale->text('Edit General Ledger Transaction') @@ -990,7 +1037,8 @@ sub form_header { $form->{javascript} = qq|