diff options
Diffstat (limited to 'sql-ledger/SL/OP.pm')
-rw-r--r-- | sql-ledger/SL/OP.pm | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/sql-ledger/SL/OP.pm b/sql-ledger/SL/OP.pm deleted file mode 100644 index 184566c14..000000000 --- a/sql-ledger/SL/OP.pm +++ /dev/null @@ -1,118 +0,0 @@ -#===================================================================== -# SQL-Ledger Accounting -# Copyright (C) 2003 -# -# Author: Dieter Simader -# Email: dsimader@sql-ledger.org -# Web: http://www.sql-ledger.org -# -# Contributors: -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# 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. -#====================================================================== -# -# Overpayment function -# used in AR, AP, IS, IR, OE, CP -# -#====================================================================== - -package OP; - -sub overpayment { - my ($self, $myconfig, $form, $dbh, $amount, $ml) = @_; - - my $fxamount = $form->round_amount($amount * $form->{exchangerate}, 2); - my ($paymentaccno) = split /--/, $form->{account}; - - my $vc_id = "$form->{vc}_id"; - - my $uid = time; - $uid .= $form->{login}; - - # add AR/AP header transaction with a payment - $query = qq|INSERT INTO $form->{arap} (invnumber, employee_id) - VALUES ('$uid', (SELECT id FROM employee - WHERE login = '$form->{login}'))|; - $dbh->do($query) || $form->dberror($query); - - $query = qq|SELECT id FROM $form->{arap} - WHERE invnumber = '$uid'|; - $sth = $dbh->prepare($query); - $sth->execute || $form->dberror($query); - - ($uid) = $sth->fetchrow_array; - $sth->finish; - - my $invnumber = $form->{invnumber}; - if (! $invnumber) { - $invnumber = $form->update_defaults($myconfig, ($form->{arap} eq 'ar') ? "sinumber" : "vinumber", $dbh); - } - - $query = qq|UPDATE $form->{arap} set - invnumber = |.$dbh->quote($invnumber).qq|, - $vc_id = $form->{"$form->{vc}_id"}, - transdate = '$form->{datepaid}', - datepaid = '$form->{datepaid}', - duedate = '$form->{datepaid}', - netamount = 0, - amount = 0, - paid = $fxamount, - curr = '$form->{currency}', - department_id = $form->{department_id} - WHERE id = $uid|; - $dbh->do($query) || $form->dberror($query); - - # add AR/AP - ($accno) = split /--/, $form->{$form->{ARAP}}; - - $query = qq|INSERT INTO acc_trans (trans_id, chart_id, transdate, amount) - VALUES ($uid, (SELECT id FROM chart - WHERE accno = '$accno'), - '$form->{datepaid}', $fxamount * $ml)|; - $dbh->do($query) || $form->dberror($query); - - # add payment - $query = qq|INSERT INTO acc_trans (trans_id, chart_id, transdate, - amount, source, memo) - VALUES ($uid, (SELECT id FROM chart - WHERE accno = '$paymentaccno'), - '$form->{datepaid}', $amount * $ml * -1, | - .$dbh->quote($form->{source}).qq|, | - .$dbh->quote($form->{memo}).qq|)|; - $dbh->do($query) || $form->dberror($query); - - # add exchangerate difference - if ($fxamount != $amount) { - $query = qq|INSERT INTO acc_trans (trans_id, chart_id, transdate, - amount, cleared, fx_transaction) - VALUES ($uid, (SELECT id FROM chart - WHERE accno = '$paymentaccno'), - '$form->{datepaid}', ($fxamount - $amount) * $ml * -1, - '1', '1')|; - $dbh->do($query) || $form->dberror($query); - } - - my %audittrail = ( tablename => $form->{arap}, - reference => $invnumber, - formname => ($form->{arap} eq 'ar') ? 'deposit' : 'pre-payment', - action => 'posted', - id => $uid ); - - $form->audittrail($dbh, "", \%audittrail); - -} - - -1; - |