summaryrefslogtreecommitdiff
path: root/LedgerSMB
diff options
context:
space:
mode:
Diffstat (limited to 'LedgerSMB')
-rw-r--r--LedgerSMB/AA.pm24
-rw-r--r--LedgerSMB/CT.pm2
-rw-r--r--LedgerSMB/Form.pm20
-rw-r--r--LedgerSMB/IR.pm9
-rw-r--r--LedgerSMB/IS.pm10
-rw-r--r--LedgerSMB/Menu.pm1
-rwxr-xr-xLedgerSMB/Template.pm1
7 files changed, 46 insertions, 21 deletions
diff --git a/LedgerSMB/AA.pm b/LedgerSMB/AA.pm
index c29652b0..29bf8ce3 100644
--- a/LedgerSMB/AA.pm
+++ b/LedgerSMB/AA.pm
@@ -39,6 +39,12 @@ use LedgerSMB::Sysconfig;
sub post_transaction {
my ( $self, $myconfig, $form ) = @_;
+ for (1 .. $form->{rowcount}){
+ $form->{"amount_$_"} = $form->parse_amount(
+ $myconfig, $form->{"amount_$_"}
+ );
+ $form->{"amount_$_"} *= -1 if $form->{reverse};
+ }
# connect to database
my $dbh = $form->{dbh};
@@ -89,11 +95,10 @@ sub post_transaction {
my %tax = ();
my $accno;
-
# add taxes
foreach $accno (@taxaccounts) {
- $fxtax += $tax{fxamount}{$accno} =
- $form->parse_amount( $myconfig, $form->{"tax_$accno"} );
+ $form->{"tax_$accno"} *= -1 if $form->{reverse};
+ $fxtax += $tax{fxamount}{$accno} = $form->{"tax_$accno"};
$tax += $tax{fxamount}{$accno};
push @{ $form->{acc_trans}{taxes} },
@@ -125,8 +130,7 @@ sub post_transaction {
my %amount = ();
my $fxinvamount = 0;
for ( 1 .. $form->{rowcount} ) {
- $fxinvamount += $amount{fxamount}{$_} =
- $form->parse_amount( $myconfig, $form->{"amount_$_"} );
+ $fxinvamount += $amount{fxamount}{$_} = $form->{"amount_$_"};
}
$form->{taxincluded} *= 1;
@@ -207,7 +211,11 @@ sub post_transaction {
# add payments
for $i ( 1 .. $form->{paidaccounts} ) {
- $fxamount = $form->parse_amount( $myconfig, $form->{"paid_$i"} );
+ $form->{"paid_$i"} = $form->parse_amount(
+ $myconfig, $form->{"paid_$i"}
+ );
+ $form->{"paid_$i"} *= -1 if $form->{reverse};
+ $fxamount = $form->{"paid_$i"};
if ($fxamount) {
$paid += $fxamount;
@@ -294,7 +302,7 @@ sub post_transaction {
SET invnumber = ?,
ordnumber = ?,
transdate = ?,
- $form->{vc}_id = ?,
+ entity_id = ?,
taxincluded = ?,
amount = ?,
duedate = ?,
@@ -304,7 +312,7 @@ sub post_transaction {
curr = ?,
notes = ?,
department_id = ?,
- employee_id = ?,
+ person_id = ?,
ponumber = ?
WHERE id = ?
|;
diff --git a/LedgerSMB/CT.pm b/LedgerSMB/CT.pm
index 768f2196..fd84016c 100644
--- a/LedgerSMB/CT.pm
+++ b/LedgerSMB/CT.pm
@@ -325,7 +325,7 @@ sub _save_vc {
$sth->execute(
$form->{entity_id}, $form->{entity_class}, $form->{discount},
$form->{taxincluded}, $form->{creditlimit},
- $form->{terms}, $form->{"$form->{vc}number"}, $form->{cc},
+ $form->{terms}, $form->{"$form->{db}number"}, $form->{cc},
$form->{bcc}, $form->{business_id},
$form->{language_code}, $form->{pricegroup_id}, $form->{curr},
$form->{startdate} || undef, $form->{enddate} || undef,
diff --git a/LedgerSMB/Form.pm b/LedgerSMB/Form.pm
index e0eaf529..f914ce46 100644
--- a/LedgerSMB/Form.pm
+++ b/LedgerSMB/Form.pm
@@ -1241,15 +1241,20 @@ sub all_vc {
my $sth;
- my $query = qq|SELECT count(*) FROM $vc|;
+ if ($vc eq 'customer'){
+ $self->{vc_class} = 2;
+ } else {
+ $self->{vc_class} = 1;
+ }
+ my $query = qq|SELECT count(*) FROM entity_credit_account where entity_class = ?|;
my $where;
- my @queryargs = ();
+ my @queryargs = ($self->{vc_class});
if ($transdate) {
- $query .= qq| WHERE (startdate IS NULL OR startdate <= ?)
+ $query .= qq| AND (startdate IS NULL OR startdate <= ?)
AND (enddate IS NULL OR enddate >= ?)|;
- @queryargs = ( $transdate, $transdate );
+ push (@queryargs, $transdate, $transdate );
}
$sth = $dbh->prepare($query);
@@ -1596,7 +1601,7 @@ sub create_links {
d.description AS department,
a.amount AS oldinvtotal, a.paid AS oldtotalpaid,
a.employee_id, e.name AS employee,
- c.language_code, a.ponumber
+ c.language_code, a.ponumber, a.reverse
FROM $arap a
JOIN $vc c ON (a.${vc}_id = c.id)
LEFT JOIN employee e ON (e.id = a.employee_id)
@@ -1664,6 +1669,9 @@ sub create_links {
$ref->{exchangerate} =
$self->get_exchangerate( $dbh, $self->{currency},
$ref->{transdate}, $fld );
+ if ($form->{reverse}){
+ $ref->{amount} *= -1;
+ }
push @{ $self->{acc_trans}{ $xkeyref{ $ref->{accno} } } }, $ref;
}
@@ -1741,7 +1749,7 @@ sub lastname_used {
where entity_id IS NOT NULL $where
order by id DESC limit 1)|;
- $sth = $dbh->prepare($query);
+ $sth = $self->{dbh}->prepare($query);
$sth->execute() || $self->dberror($query);
my $ref = $sth->fetchrow_hashref(NAME_lc);
diff --git a/LedgerSMB/IR.pm b/LedgerSMB/IR.pm
index 7a26de61..3c44df45 100644
--- a/LedgerSMB/IR.pm
+++ b/LedgerSMB/IR.pm
@@ -45,6 +45,7 @@ sub post_invoice {
unless $form->{invnumber};
for ( 1 .. $form->{rowcount} ) {
+ $form->{"qty_$_"} *= -1 if $form->{reverse};
unless ( $form->{"deliverydate_$_"} ) {
$form->{"deliverydate_$_"} = $form->{transdate};
}
@@ -285,6 +286,7 @@ sub post_invoice {
deliverydate = ?,
project_id = ?,
serialnumber = ?,
+ reverse = ?
notes = ?
WHERE id = ?|;
$sth = $dbh->prepare($query);
@@ -295,7 +297,8 @@ sub post_invoice {
$form->{"discount_$i"}, $allocated,
$form->{"unit_$i"}, $form->{"deliverydate_$i"},
$project_id, $form->{"serialnumber_$i"},
- $form->{"notes_$i"}, $invoice_id
+ $form->{reverse}, $form->{"notes_$i"},
+ $invoice_id
) || $form->dberror($query);
if (defined $form->{approved}) {
@@ -1070,7 +1073,7 @@ sub retrieve_invoice {
a.ordnumber, a.quonumber, a.paid, a.taxincluded,
a.notes, a.intnotes, a.curr AS currency,
a.vendor_id, a.language_code, a.ponumber,
- a.on_hold
+ a.on_hold, a.reverse
FROM ap a
WHERE id = ?|;
$sth = $dbh->prepare($query);
@@ -1138,7 +1141,7 @@ sub retrieve_invoice {
while ( $ref = $sth->fetchrow_hashref(NAME_lc) ) {
$form->db_parse_numeric(sth=>$sth, hashref=>$ref);
-
+ $ref->{qty} *= -1 if $form->{reverse};
my ($dec) = ( $ref->{fxsellprice} =~ /\.(\d+)/ );
$dec = length $dec;
my $decimalplaces = ( $dec > 2 ) ? $dec : 2;
diff --git a/LedgerSMB/IS.pm b/LedgerSMB/IS.pm
index f76e13f2..4967f999 100644
--- a/LedgerSMB/IS.pm
+++ b/LedgerSMB/IS.pm
@@ -912,6 +912,9 @@ sub post_invoice {
foreach $i ( 1 .. $form->{rowcount} ) {
$form->{"qty_$i"} = $form->parse_amount( $myconfig, $form->{"qty_$i"} );
+ if ($form->{reverse}){
+ $form->{"qty_$i"} *= -1;
+ }
if ( $form->{"qty_$i"} ) {
@@ -1120,6 +1123,7 @@ sub post_invoice {
deliverydate = ?,
project_id = ?,
serialnumber = ?,
+ reverse = ?,
notes = ?
WHERE id = ?|;
@@ -1131,7 +1135,8 @@ sub post_invoice {
$form->{"discount_$i"}, $allocated,
$form->{"unit_$i"}, $form->{"deliverydate_$i"},
$project_id, $form->{"serialnumber_$i"},
- $form->{"notes_$i"}, $invoice_id
+ $form->{reverse}, $form->{"notes_$i"},
+ $invoice_id
) || $form->dberror($query);
if (defined $form->{approved}) {
@@ -1793,7 +1798,7 @@ sub retrieve_invoice {
a.intnotes,
a.duedate, a.taxincluded, a.curr AS currency,
a.employee_id, e.name AS employee, a.till,
- a.entity_id,
+ a.entity_id, a.reverse
a.language_code, a.ponumber,
a.on_hold
FROM ar a
@@ -1863,6 +1868,7 @@ sub retrieve_invoice {
while ( $ref = $sth->fetchrow_hashref(NAME_lc) ) {
$form->db_parse_numeric(sth=>$sth, hashref => $ref);
+ $ref->{qty} *= -1 if $form->{reverse};
my ($dec) = ( $ref->{fxsellprice} =~ /\.(\d+)/ );
$dec = length $dec;
my $decimalplaces = ( $dec > 2 ) ? $dec : 2;
diff --git a/LedgerSMB/Menu.pm b/LedgerSMB/Menu.pm
index b95b7a6a..9e29fdf2 100644
--- a/LedgerSMB/Menu.pm
+++ b/LedgerSMB/Menu.pm
@@ -19,7 +19,6 @@ package LedgerSMB::Menu;
use Config::Std;
use base(qw(LedgerSMB::DBObject));
-
1;
=head1 METHODS
diff --git a/LedgerSMB/Template.pm b/LedgerSMB/Template.pm
index 2366a9ca..ba2cd221 100755
--- a/LedgerSMB/Template.pm
+++ b/LedgerSMB/Template.pm
@@ -144,6 +144,7 @@ sub _http_output {
my $self = shift;
my $FH;
+ print STDERR "Content-Type: $self->{mimetype}; charset=utf-8\n\n";
if ($self->{mimetype} =~ /^text/) {
print "Content-Type: $self->{mimetype}; charset=utf-8\n\n";
} else {