projects
/
kivitendo-erp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Und noch ein Bug: renamed columns
[kivitendo-erp.git]
/
SL
/
AP.pm
diff --git
a/SL/AP.pm
b/SL/AP.pm
index
24054c8
..
6ec2862
100644
(file)
--- a/
SL/AP.pm
+++ b/
SL/AP.pm
@@
-96,10
+96,7
@@
sub post_transaction {
qq|ORDER BY c.accno|;
$sth = $dbh->prepare($query);
$sth->execute($form->{"tax_id_$i"}) || $form->dberror($query . " (" . $form->{"tax_id_$i"} . ")");
qq|ORDER BY c.accno|;
$sth = $dbh->prepare($query);
$sth->execute($form->{"tax_id_$i"}) || $form->dberror($query . " (" . $form->{"tax_id_$i"} . ")");
- ($form->{AP_amounts}{"tax_$i"}, $form->{"taxkey_$i"}, $form->{"taxrate_$i"}) =
- $sth->fetchrow_array;
- $form->{AP_amounts}{"tax_$i"}{taxkey} = $form->{"taxkey_$i"};
- $form->{AP_amounts}{"amount_$i"}{taxkey} = $form->{"taxkey_$i"};
+ ($form->{AP_amounts}{"tax_$i"}, $form->{"taxkey_$i"}, $form->{"taxrate_$i"}) = $sth->fetchrow_array();
$sth->finish;
if ($form->{taxincluded} *= 1) {
$sth->finish;
if ($form->{taxincluded} *= 1) {
@@
-212,7
+209,6
@@
sub post_transaction {
if ($form->{"amount_$i"} != 0) {
my $project_id;
$project_id = conv_i($form->{"project_id_$i"});
if ($form->{"amount_$i"} != 0) {
my $project_id;
$project_id = conv_i($form->{"project_id_$i"});
- $taxkey = $form->{AP_amounts}{"amount_$i"}{taxkey};
# insert detail records in acc_trans
$query =
# insert detail records in acc_trans
$query =
@@
-222,7
+218,7
@@
sub post_transaction {
qq| ?, ?, ?, ?)|;
@values = ($form->{id}, $form->{AP_amounts}{"amount_$i"},
$form->{"amount_$i"}, conv_date($form->{transdate}),
qq| ?, ?, ?, ?)|;
@values = ($form->{id}, $form->{AP_amounts}{"amount_$i"},
$form->{"amount_$i"}, conv_date($form->{transdate}),
- $project_id, $
taxkey
);
+ $project_id, $
form->{"taxkey_$i"}
);
do_query($form, $dbh, $query, @values);
if ($form->{"tax_$i"} != 0) {
do_query($form, $dbh, $query, @values);
if ($form->{"tax_$i"} != 0) {
@@
-234,7
+230,7
@@
sub post_transaction {
qq| ?, ?, ?, ?)|;
@values = ($form->{id}, $form->{AP_amounts}{"tax_$i"},
$form->{"tax_$i"}, conv_date($form->{transdate}),
qq| ?, ?, ?, ?)|;
@values = ($form->{id}, $form->{AP_amounts}{"tax_$i"},
$form->{"tax_$i"}, conv_date($form->{transdate}),
- $project_id, $
taxkey
);
+ $project_id, $
form->{"taxkey_$i"}
);
do_query($form, $dbh, $query, @values);
}
do_query($form, $dbh, $query, @values);
}
@@
-350,8
+346,8
@@
sub post_transaction {
}
if ($payments_only) {
}
if ($payments_only) {
- $query = qq|UPDATE ap SET paid = ? WHERE id = ?|;
- do_query($form, $dbh, $query,
$form->{invpaid}
, conv_i($form->{id}));
+ $query = qq|UPDATE ap SET paid = ?
, datepaid = ?
WHERE id = ?|;
+ do_query($form, $dbh, $query,
$form->{invpaid}, $form->{invpaid} ? conv_date($form->{datepaid}) : undef
, conv_i($form->{id}));
}
my $rc = 1;
}
my $rc = 1;
@@
-394,20
+390,28
@@
sub ap_transactions {
my ($self, $myconfig, $form) = @_;
# connect to database
my ($self, $myconfig, $form) = @_;
# connect to database
- my $dbh = $form->
dbconnect
($myconfig);
+ my $dbh = $form->
get_standard_dbh
($myconfig);
my $query =
qq|SELECT a.id, a.invnumber, a.transdate, a.duedate, a.amount, a.paid, | .
qq| a.ordnumber, v.name, a.invoice, a.netamount, a.datepaid, a.notes, | .
my $query =
qq|SELECT a.id, a.invnumber, a.transdate, a.duedate, a.amount, a.paid, | .
qq| a.ordnumber, v.name, a.invoice, a.netamount, a.datepaid, a.notes, | .
- qq| a.globalproject_id, | .
+ qq| a.globalproject_id,
a.storno, a.storno_id,
| .
qq| pr.projectnumber AS globalprojectnumber, | .
qq| pr.projectnumber AS globalprojectnumber, | .
- qq| e.name AS employee | .
+ qq| e.name AS employee, | .
+ qq| v.vendornumber, v.country, v.ustid, | .
+ qq| tz.description AS taxzone, | .
+ qq| pt.description AS payment_terms, | .
+ qq{ ch.accno || ' -- ' || ch.description AS charts } .
qq|FROM ap a | .
qq|JOIN vendor v ON (a.vendor_id = v.id) | .
qq|LEFT JOIN employee e ON (a.employee_id = e.id) | .
qq|FROM ap a | .
qq|JOIN vendor v ON (a.vendor_id = v.id) | .
qq|LEFT JOIN employee e ON (a.employee_id = e.id) | .
- qq|LEFT JOIN project pr ON (a.globalproject_id = pr.id) |;
+ qq|LEFT JOIN project pr ON (a.globalproject_id = pr.id) | .
+ qq|LEFT JOIN tax_zones tz ON (tz.id = v.taxzone_id)| .
+ qq|LEFT JOIN payment_terms pt ON (pt.id = v.payment_id)| .
+ qq|LEFT JOIN acc_trans at ON (at.trans_id = a.id)| .
+ qq|INNER JOIN chart ch ON (ch.id = at.chart_id AND ch.link ~ 'AP[[:>:]]')|;
- my $where =
qq| WHERE COALESCE(storno, false) != true |
;
+ my $where =
''
;
my @values;
if ($form->{vendor_id}) {
my @values;
if ($form->{vendor_id}) {
@@
-458,7
+462,7
@@
sub ap_transactions {
}
if ($where) {
}
if ($where) {
-
# substr($where, 0, 4) = "WHERE"
;
+
substr($where, 0, 4, " WHERE ")
;
$query .= $where;
}
$query .= $where;
}
@@
-467,25
+471,15
@@
sub ap_transactions {
my $sortdir = !defined $form->{sortdir} ? 'ASC' : $form->{sortdir} ? 'ASC' : 'DESC';
my $sortorder = join(', ', map { "$_ $sortdir" } @a);
my $sortdir = !defined $form->{sortdir} ? 'ASC' : $form->{sortdir} ? 'ASC' : 'DESC';
my $sortorder = join(', ', map { "$_ $sortdir" } @a);
- if (grep({ $_ eq $form->{sort} }
- qw(transdate id invnumber ordnumber name netamount tax amount
- paid datepaid due duedate notes employee))) {
+ if (grep({ $_ eq $form->{sort} } qw(transdate id invnumber ordnumber name netamount tax amount paid datepaid due duedate notes employee transaction_description))) {
$sortorder = $form->{sort} . " $sortdir";
}
$query .= " ORDER BY $sortorder";
$sortorder = $form->{sort} . " $sortdir";
}
$query .= " ORDER BY $sortorder";
- my $sth = $dbh->prepare($query);
- $sth->execute(@values) ||
- $form->dberror($query . " (" . join(", ", @values) . ")");
+ my @result = selectall_hashref_query($form, $dbh, $query, @values);
- $form->{AP} = [];
- while (my $ap = $sth->fetchrow_hashref(NAME_lc)) {
- push @{ $form->{AP} }, $ap;
- }
-
- $sth->finish;
- $dbh->disconnect;
+ $form->{AP} = [ @result ];
$main::lxdebug->leave_sub();
}
$main::lxdebug->leave_sub();
}
@@
-515,34
+509,34
@@
sub _delete_payments {
my ($self, $form, $dbh) = @_;
my ($self, $form, $dbh) = @_;
- my @delete_
o
ids;
+ my @delete_
acc_trans_
ids;
# Delete old payment entries from acc_trans.
my $query =
# Delete old payment entries from acc_trans.
my $query =
- qq|SELECT
o
id
+ qq|SELECT
acc_trans_
id
FROM acc_trans
WHERE (trans_id = ?) AND fx_transaction
UNION
FROM acc_trans
WHERE (trans_id = ?) AND fx_transaction
UNION
- SELECT at.
o
id
+ SELECT at.
acc_trans_
id
FROM acc_trans at
LEFT JOIN chart c ON (at.chart_id = c.id)
WHERE (trans_id = ?) AND (c.link LIKE '%AP_paid%')|;
FROM acc_trans at
LEFT JOIN chart c ON (at.chart_id = c.id)
WHERE (trans_id = ?) AND (c.link LIKE '%AP_paid%')|;
- push @delete_
o
ids, selectall_array_query($form, $dbh, $query, conv_i($form->{id}), conv_i($form->{id}));
+ push @delete_
acc_trans_
ids, selectall_array_query($form, $dbh, $query, conv_i($form->{id}), conv_i($form->{id}));
$query =
$query =
- qq|SELECT at.
o
id
+ qq|SELECT at.
acc_trans_
id
FROM acc_trans at
LEFT JOIN chart c ON (at.chart_id = c.id)
WHERE (trans_id = ?)
AND ((c.link = 'AP') OR (c.link LIKE '%:AP') OR (c.link LIKE 'AP:%'))
FROM acc_trans at
LEFT JOIN chart c ON (at.chart_id = c.id)
WHERE (trans_id = ?)
AND ((c.link = 'AP') OR (c.link LIKE '%:AP') OR (c.link LIKE 'AP:%'))
- ORDER BY at.
o
id
+ ORDER BY at.
acc_trans_
id
OFFSET 1|;
OFFSET 1|;
- push @delete_
o
ids, selectall_array_query($form, $dbh, $query, conv_i($form->{id}));
+ push @delete_
acc_trans_
ids, selectall_array_query($form, $dbh, $query, conv_i($form->{id}));
- if (@delete_
o
ids) {
- $query = qq|DELETE FROM acc_trans WHERE
oid IN (| . join(", ", @delete_o
ids) . qq|)|;
+ if (@delete_
acc_trans_
ids) {
+ $query = qq|DELETE FROM acc_trans WHERE
acc_trans_id IN (| . join(", ", @delete_acc_trans_
ids) . qq|)|;
do_query($form, $dbh, $query);
}
do_query($form, $dbh, $query);
}
@@
-584,6
+578,7
@@
sub post_payment {
($form->{defaultcurrency}) = selectrow_query($form, $dbh, qq|SELECT curr FROM defaults|);
$form->{defaultcurrency} = (split m/:/, $form->{defaultcurrency})[0];
($form->{defaultcurrency}) = selectrow_query($form, $dbh, qq|SELECT curr FROM defaults|);
$form->{defaultcurrency} = (split m/:/, $form->{defaultcurrency})[0];
+ $form->{currency} = $form->{defaultcurrency} if ($form->{defaultcurrency} && ($form->{currency} =~ m/^\s*$/));
$form->{exchangerate} = $form->format_amount($myconfig, $form->{exchangerate});
$form->{exchangerate} = $form->format_amount($myconfig, $form->{exchangerate});
@@
-594,7
+589,7
@@
sub post_payment {
LEFT JOIN chart c ON (at.chart_id = c.id)
WHERE (trans_id = ?)
AND ((c.link = 'AP') OR (c.link LIKE '%:AP') OR (c.link LIKE 'AP:%'))
LEFT JOIN chart c ON (at.chart_id = c.id)
WHERE (trans_id = ?)
AND ((c.link = 'AP') OR (c.link LIKE '%:AP') OR (c.link LIKE 'AP:%'))
- ORDER BY at.
o
id
+ ORDER BY at.
acc_trans_
id
LIMIT 1|;
($form->{APselected}) = selectfirst_array_query($form, $dbh, $query, conv_i($form->{id}));
LIMIT 1|;
($form->{APselected}) = selectfirst_array_query($form, $dbh, $query, conv_i($form->{id}));
@@
-765,8
+760,8
@@
sub storno {
do_query($form, $dbh, $query, $id);
# now copy acc_trans entries
do_query($form, $dbh, $query, $id);
# now copy acc_trans entries
- $query = qq|SELECT a.*, c.link FROM acc_trans a LEFT JOIN chart c ON a.chart_id = c.id WHERE a.trans_id = ? ORDER BY a.
o
id|;
- my $rowref = selectall_hashref_query($form, $dbh, $query, $id);
+ $query = qq|SELECT a.*, c.link FROM acc_trans a LEFT JOIN chart c ON a.chart_id = c.id WHERE a.trans_id = ? ORDER BY a.
acc_trans_
id|;
+ my $rowref = selectall_hashref_query($form, $dbh, $query, $id);
# kill all entries containing payments, which are the last 2n rows, of which the last has link =~ /paid/
while ($rowref->[-1]{link} =~ /paid/) {
# kill all entries containing payments, which are the last 2n rows, of which the last has link =~ /paid/
while ($rowref->[-1]{link} =~ /paid/) {