X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/fc63cd4361a105fce060cf0fc111d54300db74b3..46aa98a931708ad5ee5003437af92f0358e582b3:/bin/mozilla/gl.pl diff --git a/bin/mozilla/gl.pl b/bin/mozilla/gl.pl index 026cf6a01..77591f5d2 100644 --- a/bin/mozilla/gl.pl +++ b/bin/mozilla/gl.pl @@ -24,7 +24,8 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1335, USA. #====================================================================== # # Genereal Ledger @@ -40,11 +41,10 @@ use List::Util qw(sum); use SL::FU; use SL::GL; use SL::IS; -use SL::PE; use SL::ReportGenerator; +use SL::DBUtils qw(selectrow_query selectall_hashref_query); require "bin/mozilla/common.pl"; -require "bin/mozilla/drafts.pl"; require "bin/mozilla/reportgenerator.pl"; # this is for our long dates @@ -78,13 +78,11 @@ require "bin/mozilla/reportgenerator.pl"; sub add { $main::lxdebug->enter_sub(); - $main::auth->assert('general_ledger'); + $main::auth->assert('gl_transactions'); my $form = $main::form; my %myconfig = %main::myconfig; - return $main::lxdebug->leave_sub() if (load_draft_maybe()); - $form->{title} = "Add"; $form->{callback} = "gl.pl?action=add" unless $form->{callback}; @@ -120,7 +118,7 @@ sub add { sub prepare_transaction { $main::lxdebug->enter_sub(); - $main::auth->assert('general_ledger'); + $main::auth->assert('gl_transactions'); my $form = $main::form; my %myconfig = %main::myconfig; @@ -167,7 +165,7 @@ sub prepare_transaction { $form->{totalcredit} += $ref->{amount}; $form->{"credit_$i"} = $ref->{amount}; } - $form->{"taxchart_$i"} = "0--0.00"; + $form->{"taxchart_$i"} = $ref->{id}."--0.00000"; $form->{"project_id_$i"} = $ref->{project_id}; $i++; } @@ -191,7 +189,7 @@ sub prepare_transaction { sub edit { $main::lxdebug->enter_sub(); - $main::auth->assert('general_ledger'); + $main::auth->assert('gl_transactions'); my $form = $main::form; my %myconfig = %main::myconfig; @@ -212,7 +210,7 @@ sub edit { sub search { $::lxdebug->enter_sub; - $::auth->assert('general_ledger'); + $::auth->assert('general_ledger | gl_transactions'); $::form->all_departments(\%::myconfig); $::form->get_lists( @@ -251,7 +249,7 @@ sub create_subtotal_row { sub generate_report { $main::lxdebug->enter_sub(); - $main::auth->assert('general_ledger'); + $main::auth->assert('general_ledger | gl_transactions'); my $form = $main::form; my %myconfig = %main::myconfig; @@ -512,10 +510,16 @@ sub generate_report { $main::lxdebug->leave_sub(); } +sub show_draft { + $::form->{transdate} = DateTime->today_local->to_kivitendo if !$::form->{transdate}; + $::form->{gldate} = $::form->{transdate} if !$::form->{gldate}; + update(); +} + sub update { $main::lxdebug->enter_sub(); - $main::auth->assert('general_ledger'); + $main::auth->assert('gl_transactions'); my $form = $main::form; my %myconfig = %main::myconfig; @@ -530,6 +534,10 @@ sub update { my $creditcount = 0; my ($debitcredit, $amount); + my $dbh = SL::DB->client->dbh; + my ($notax_id) = selectrow_query($form, $dbh, "SELECT id FROM tax WHERE taxkey = 0 LIMIT 1", ); + my $zerotaxes = selectall_hashref_query($form, $dbh, "SELECT id FROM tax WHERE rate = 0", ); + my @flds = qw(accno debit credit projectnumber fx_transaction source memo tax taxchart); @@ -568,10 +576,10 @@ sub update { $form->{debitlock} = 1; } if ($debitcredit && $credittax) { - $form->{"taxchart_$i"} = "0--0.00"; + $form->{"taxchart_$i"} = "$notax_id--0.00"; } if (!$debitcredit && $debittax) { - $form->{"taxchart_$i"} = "0--0.00"; + $form->{"taxchart_$i"} = "$notax_id--0.00"; } $amount = ($form->{"debit_$i"} == 0) @@ -579,11 +587,12 @@ sub update { : $form->{"debit_$i"}; my $j = $#a; if (($debitcredit && $credittax) || (!$debitcredit && $debittax)) { - $form->{"taxchart_$i"} = "0--0.00"; + $form->{"taxchart_$i"} = "$notax_id--0.00"; $form->{"tax_$i"} = 0; } my ($taxkey, $rate) = split(/--/, $form->{"taxchart_$i"}); - if ($taxkey > 1) { + my $iswithouttax = grep { $_->{id} == $taxkey } @{ $zerotaxes }; + if (!$iswithouttax) { if ($debitcredit) { $debittax = 1; } else { @@ -618,7 +627,7 @@ sub display_form { my ($init) = @_; $main::lxdebug->enter_sub(); - $main::auth->assert('general_ledger'); + $main::auth->assert('gl_transactions'); my $form = $main::form; my %myconfig = %main::myconfig; @@ -641,7 +650,7 @@ sub display_rows { my ($init) = @_; $main::lxdebug->enter_sub(); - $main::auth->assert('general_ledger'); + $main::auth->assert('gl_transactions'); my $form = $main::form; my %myconfig = %main::myconfig; @@ -845,7 +854,7 @@ sub _get_radieren { sub form_header { $::lxdebug->enter_sub; - $::auth->assert('general_ledger'); + $::auth->assert('gl_transactions'); my ($init) = @_; @@ -893,12 +902,12 @@ sub form_header { sub form_footer { $::lxdebug->enter_sub; - $::auth->assert('general_ledger'); + $::auth->assert('gl_transactions'); my ($follow_ups, $follow_ups_due); if ($::form->{id}) { - $follow_ups = FU->follow_ups('trans_id' => $::form->{id}); + $follow_ups = FU->follow_ups('trans_id' => $::form->{id}, 'not_done' => 1); $follow_ups_due = sum map { $_->{due} * 1 } @{ $follow_ups || [] }; } @@ -994,9 +1003,9 @@ sub post_transaction { my $debitcredit; my %split_safety = (); - my $dbh = $form->dbconnect_noauto(\%myconfig); + my $dbh = SL::DB->client->dbh; my ($notax_id) = selectrow_query($form, $dbh, "SELECT id FROM tax WHERE taxkey = 0 LIMIT 1", ); - $dbh->disconnect; + my $zerotaxes = selectall_hashref_query($form, $dbh, "SELECT id FROM tax WHERE rate = 0", ); my @flds = qw(accno debit credit projectnumber fx_transaction source memo tax taxchart); @@ -1052,7 +1061,8 @@ sub post_transaction { $form->{"tax_$i"} = 0; } my ($taxkey, $rate) = split(/--/, $form->{"taxchart_$i"}); - if ($taxkey > 1) { + my $iswithouttax = grep { $_->{id} == $taxkey } @{ $zerotaxes }; + if (!$iswithouttax) { if ($debitcredit) { $debittax = 1; } else { @@ -1143,7 +1153,7 @@ sub post_transaction { sub post { $main::lxdebug->enter_sub(); - $main::auth->assert('general_ledger'); + $main::auth->assert('gl_transactions'); my $form = $main::form; my $locale = $main::locale; @@ -1159,9 +1169,7 @@ sub post { post_transaction(); - remove_draft() if $form->{remove_draft}; - - $form->{callback} = build_std_url("action=add&DONT_LOAD_DRAFT=1", "show_details"); + $form->{callback} = build_std_url("action=add", "show_details"); $form->redirect($form->{callback}); $main::lxdebug->leave_sub(); @@ -1170,7 +1178,7 @@ sub post { sub post_as_new { $main::lxdebug->enter_sub(); - $main::auth->assert('general_ledger'); + $main::auth->assert('gl_transactions'); my $form = $main::form; @@ -1183,7 +1191,7 @@ sub post_as_new { sub storno { $main::lxdebug->enter_sub(); - $main::auth->assert('general_ledger'); + $main::auth->assert('gl_transactions'); my $form = $main::form; my %myconfig = %main::myconfig;