projects
/
kivitendo-erp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Verteilen der Rechte für Finanzbuchhaltung auf Dialogbuchung,Kreditoren-/Debitorenrec...
[kivitendo-erp.git]
/
bin
/
mozilla
/
gl.pl
diff --git
a/bin/mozilla/gl.pl
b/bin/mozilla/gl.pl
index
a4ee01d
..
b2c0b9a
100644
(file)
--- a/
bin/mozilla/gl.pl
+++ b/
bin/mozilla/gl.pl
@@
-42,9
+42,9
@@
use SL::GL;
use SL::IS;
use SL::PE;
use SL::ReportGenerator;
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/common.pl";
-require "bin/mozilla/drafts.pl";
require "bin/mozilla/reportgenerator.pl";
# this is for our long dates
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();
sub add {
$main::lxdebug->enter_sub();
- $main::auth->assert('g
eneral_ledger
');
+ $main::auth->assert('g
l_transactions
');
my $form = $main::form;
my %myconfig = %main::myconfig;
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};
$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();
sub prepare_transaction {
$main::lxdebug->enter_sub();
- $main::auth->assert('g
eneral_ledger
');
+ $main::auth->assert('g
l_transactions
');
my $form = $main::form;
my %myconfig = %main::myconfig;
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->{totalcredit} += $ref->{amount};
$form->{"credit_$i"} = $ref->{amount};
}
- $form->{"taxchart_$i"} =
"0--0.
00";
+ $form->{"taxchart_$i"} =
$ref->{id}."--0.000
00";
$form->{"project_id_$i"} = $ref->{project_id};
$i++;
}
$form->{"project_id_$i"} = $ref->{project_id};
$i++;
}
@@
-191,7
+189,7
@@
sub prepare_transaction {
sub edit {
$main::lxdebug->enter_sub();
sub edit {
$main::lxdebug->enter_sub();
- $main::auth->assert('g
eneral_ledger
');
+ $main::auth->assert('g
l_transactions
');
my $form = $main::form;
my %myconfig = %main::myconfig;
my $form = $main::form;
my %myconfig = %main::myconfig;
@@
-212,7
+210,7
@@
sub edit {
sub search {
$::lxdebug->enter_sub;
sub search {
$::lxdebug->enter_sub;
- $::auth->assert('general_ledger');
+ $::auth->assert('general_ledger
| gl_transactions
');
$::form->all_departments(\%::myconfig);
$::form->get_lists(
$::form->all_departments(\%::myconfig);
$::form->get_lists(
@@
-251,7
+249,7
@@
sub create_subtotal_row {
sub generate_report {
$main::lxdebug->enter_sub();
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;
my $form = $main::form;
my %myconfig = %main::myconfig;
@@
-306,9
+304,6
@@
sub generate_report {
# add employee here, so that variable is still known and passed in url when choosing a different sort order in resulting table
my @hidden_variables = qw(accno source reference department description notes project_id datefrom dateto employee_id datesort category l_subtotal);
push @hidden_variables, map { "l_${_}" } @columns;
# add employee here, so that variable is still known and passed in url when choosing a different sort order in resulting table
my @hidden_variables = qw(accno source reference department description notes project_id datefrom dateto employee_id datesort category l_subtotal);
push @hidden_variables, map { "l_${_}" } @columns;
- foreach ( @hidden_variables ) {
- print URL "$_\n";
- };
my $employee = $form->{employee_id} ? SL::DB::Employee->new(id => $form->{employee_id})->load->name : '';
my $employee = $form->{employee_id} ? SL::DB::Employee->new(id => $form->{employee_id})->load->name : '';
@@
-332,8
+327,6
@@
sub generate_report {
my $callback = build_std_url('action=generate_report', grep { $form->{$_} } @hidden_variables);
my $callback = build_std_url('action=generate_report', grep { $form->{$_} } @hidden_variables);
- print URL $callback;
- close URL;
$form->{l_credit_accno} = 'Y';
$form->{l_debit_accno} = 'Y';
$form->{l_credit_accno} = 'Y';
$form->{l_debit_accno} = 'Y';
@@
-520,7
+513,7
@@
sub generate_report {
sub update {
$main::lxdebug->enter_sub();
sub update {
$main::lxdebug->enter_sub();
- $main::auth->assert('g
eneral_ledger
');
+ $main::auth->assert('g
l_transactions
');
my $form = $main::form;
my %myconfig = %main::myconfig;
my $form = $main::form;
my %myconfig = %main::myconfig;
@@
-535,6
+528,10
@@
sub update {
my $creditcount = 0;
my ($debitcredit, $amount);
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);
my @flds =
qw(accno debit credit projectnumber fx_transaction source memo tax taxchart);
@@
-573,10
+570,10
@@
sub update {
$form->{debitlock} = 1;
}
if ($debitcredit && $credittax) {
$form->{debitlock} = 1;
}
if ($debitcredit && $credittax) {
- $form->{"taxchart_$i"} = "
0
--0.00";
+ $form->{"taxchart_$i"} = "
$notax_id
--0.00";
}
if (!$debitcredit && $debittax) {
}
if (!$debitcredit && $debittax) {
- $form->{"taxchart_$i"} = "
0
--0.00";
+ $form->{"taxchart_$i"} = "
$notax_id
--0.00";
}
$amount =
($form->{"debit_$i"} == 0)
}
$amount =
($form->{"debit_$i"} == 0)
@@
-584,24
+581,20
@@
sub update {
: $form->{"debit_$i"};
my $j = $#a;
if (($debitcredit && $credittax) || (!$debitcredit && $debittax)) {
: $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"});
$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 {
$credittax = 1;
}
if ($debitcredit) {
$debittax = 1;
} else {
$credittax = 1;
}
- if ($form->{taxincluded}) {
- $form->{"tax_$i"} = $amount / ($rate + 1) * $rate;
- } else {
- $form->{"tax_$i"} = $amount * $rate;
- }
- } else {
- $form->{"tax_$i"} = 0;
- }
+ };
+ my ($tmpnetamount,$tmpdiff);
+ ($tmpnetamount,$form->{"tax_$i"},$tmpdiff) = $form->calculate_tax($amount,$rate,$form->{taxincluded} *= 1,2);
for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
$count++;
for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
$count++;
@@
-628,7
+621,7
@@
sub display_form {
my ($init) = @_;
$main::lxdebug->enter_sub();
my ($init) = @_;
$main::lxdebug->enter_sub();
- $main::auth->assert('g
eneral_ledger
');
+ $main::auth->assert('g
l_transactions
');
my $form = $main::form;
my %myconfig = %main::myconfig;
my $form = $main::form;
my %myconfig = %main::myconfig;
@@
-651,7
+644,7
@@
sub display_rows {
my ($init) = @_;
$main::lxdebug->enter_sub();
my ($init) = @_;
$main::lxdebug->enter_sub();
- $main::auth->assert('g
eneral_ledger
');
+ $main::auth->assert('g
l_transactions
');
my $form = $main::form;
my %myconfig = %main::myconfig;
my $form = $main::form;
my %myconfig = %main::myconfig;
@@
-855,7
+848,7
@@
sub _get_radieren {
sub form_header {
$::lxdebug->enter_sub;
sub form_header {
$::lxdebug->enter_sub;
- $::auth->assert('g
eneral_ledger
');
+ $::auth->assert('g
l_transactions
');
my ($init) = @_;
my ($init) = @_;
@@
-903,12
+896,12
@@
sub form_header {
sub form_footer {
$::lxdebug->enter_sub;
sub form_footer {
$::lxdebug->enter_sub;
- $::auth->assert('g
eneral_ledger
');
+ $::auth->assert('g
l_transactions
');
my ($follow_ups, $follow_ups_due);
if ($::form->{id}) {
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 || [] };
}
$follow_ups_due = sum map { $_->{due} * 1 } @{ $follow_ups || [] };
}
@@
-967,8
+960,9
@@
sub yes {
if (GL->delete_transaction(\%myconfig, \%$form)){
# saving the history
if(!exists $form->{addition} && $form->{id} ne "") {
if (GL->delete_transaction(\%myconfig, \%$form)){
# saving the history
if(!exists $form->{addition} && $form->{id} ne "") {
- $form->{snumbers} = qq|
ordnumber_| . $form->{ordnumber
};
+ $form->{snumbers} = qq|
gltransaction_| . $form->{id
};
$form->{addition} = "DELETED";
$form->{addition} = "DELETED";
+ $form->{what_done} = "gl_transaction";
$form->save_history;
}
# /saving the history
$form->save_history;
}
# /saving the history
@@
-1003,9
+997,9
@@
sub post_transaction {
my $debitcredit;
my %split_safety = ();
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", );
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);
my @flds = qw(accno debit credit projectnumber fx_transaction source memo tax taxchart);
@@
-1061,22
+1055,22
@@
sub post_transaction {
$form->{"tax_$i"} = 0;
}
my ($taxkey, $rate) = split(/--/, $form->{"taxchart_$i"});
$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 {
$credittax = 1;
}
if ($debitcredit) {
$debittax = 1;
} else {
$credittax = 1;
}
- if ($form->{taxincluded}) {
- $form->{"tax_$i"} = $amount / ($rate + 1) * $rate;
- if ($debitcredit) {
- $form->{"debit_$i"} = $form->{"debit_$i"} - $form->{"tax_$i"};
- } else {
- $form->{"credit_$i"} = $form->{"credit_$i"} - $form->{"tax_$i"};
- }
+
+ my ($tmpnetamount,$tmpdiff);
+ ($tmpnetamount,$form->{"tax_$i"},$tmpdiff) = $form->calculate_tax($amount,$rate,$form->{taxincluded} *= 1,2);
+ if ($debitcredit) {
+ $form->{"debit_$i"} = $tmpnetamount;
} else {
} else {
- $form->{"
tax_$i"} = $amount * $rate
;
+ $form->{"
credit_$i"} = $tmpnetamount
;
}
}
+
} else {
$form->{"tax_$i"} = 0;
}
} else {
$form->{"tax_$i"} = 0;
}
@@
-1140,9
+1134,9
@@
sub post_transaction {
undef($form->{callback});
# saving the history
if(!exists $form->{addition} && $form->{id} ne "") {
undef($form->{callback});
# saving the history
if(!exists $form->{addition} && $form->{id} ne "") {
- $form->{snumbers} = qq|
ordnumber_| . $form->{ordnumber
};
- $form->{addition} = "
SAV
ED";
- $form->{what_done} =
$locale->text("Buchungsnummer") . " = " . $form->{id}
;
+ $form->{snumbers} = qq|
gltransaction_| . $form->{id
};
+ $form->{addition} = "
POST
ED";
+ $form->{what_done} =
"gl transaction"
;
$form->save_history;
}
# /saving the history
$form->save_history;
}
# /saving the history
@@
-1153,7
+1147,7
@@
sub post_transaction {
sub post {
$main::lxdebug->enter_sub();
sub post {
$main::lxdebug->enter_sub();
- $main::auth->assert('g
eneral_ledger
');
+ $main::auth->assert('g
l_transactions
');
my $form = $main::form;
my $locale = $main::locale;
my $form = $main::form;
my $locale = $main::locale;
@@
-1169,9
+1163,7
@@
sub post {
post_transaction();
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();
$form->redirect($form->{callback});
$main::lxdebug->leave_sub();
@@
-1180,7
+1172,7
@@
sub post {
sub post_as_new {
$main::lxdebug->enter_sub();
sub post_as_new {
$main::lxdebug->enter_sub();
- $main::auth->assert('g
eneral_ledger
');
+ $main::auth->assert('g
l_transactions
');
my $form = $main::form;
my $form = $main::form;
@@
-1193,7
+1185,7
@@
sub post_as_new {
sub storno {
$main::lxdebug->enter_sub();
sub storno {
$main::lxdebug->enter_sub();
- $main::auth->assert('g
eneral_ledger
');
+ $main::auth->assert('g
l_transactions
');
my $form = $main::form;
my %myconfig = %main::myconfig;
my $form = $main::form;
my %myconfig = %main::myconfig;
@@
-1209,8
+1201,9
@@
sub storno {
# saving the history
if(!exists $form->{addition} && $form->{id} ne "") {
# saving the history
if(!exists $form->{addition} && $form->{id} ne "") {
- $form->{snumbers} =
"ordnumber_$form->{ordnumber}"
;
+ $form->{snumbers} =
qq|gltransaction_| . $form->{id}
;
$form->{addition} = "STORNO";
$form->{addition} = "STORNO";
+ $form->{what_done} = "gl_transaction";
$form->save_history;
}
# /saving the history
$form->save_history;
}
# /saving the history