#=====================================================================
# LedgerSMB Small Medium Business Accounting
# http://www.ledgersmb.org/
#
# Copyright (C) 2006
# This work contains copyrighted information from a number of sources all used
# with permission.
#
# This file contains source code included with or based on SQL-Ledger which
# is Copyright Dieter Simader and DWS Systems Inc. 2000-2005 and licensed
# under the GNU General Public License version 2 or, at your option, any later
# version. For a full list including contact information of contributors,
# maintainers, and copyright holders, see the CONTRIBUTORS file.
#
# Original Copyright Notice from SQL-Ledger 2.6.17 (before the fork):
# Copyright (c) 2002
#
# Author: DWS Systems Inc.
# Web: http://www.sql-ledger.org
#
# Contributors:
#
#
# Author: DWS Systems Inc.
# Web: http://www.ledgersmb.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.
#======================================================================
#
# Payment module
#
#======================================================================
use LedgerSMB::CP;
use LedgerSMB::OP;
use LedgerSMB::IS;
use LedgerSMB::IR;
require "bin/arap.pl";
1;
# end of main
# This may need to get more sophisticated in the future
# Anyway, it provides one point of control for date handling.
sub default_date {
$form->{date} ||= 'current_date'
}
sub payment {
if ($form->{type} eq 'receipt') {
$form->{ARAP} = "AR";
$form->{arap} = "ar";
$form->{vc} = "customer";
$form->{formname} = "receipt";
}
if ($form->{type} eq 'check') {
$form->{ARAP} = "AP";
$form->{arap} = "ap";
$form->{vc} = "vendor";
$form->{formname} = "check";
}
$form->{payment} = "payment";
$form->{callback} = "$form->{script}?action=payment&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&all_vc=$form->{all_vc}&type=$form->{type}";
# setup customer/vendor selection for open invoices
if ($form->{all_vc}) {
$form->all_vc(\%myconfig, $form->{vc}, $form->{ARAP}, undef, $form->{datepaid});
} else {
CP->get_openvc(\%myconfig, \%$form);
if ($myconfig{vclimit} > 0) {
$form->{"all_$form->{vc}"} = $form->{name_list};
}
}
$form->{"select$form->{vc}"} = "";
if (@{ $form->{"all_$form->{vc}"} }) {
$form->{"$form->{vc}_id"} = $form->{"all_$form->{vc}"}->[0]->{id};
for (@{ $form->{"all_$form->{vc}"} }) { $form->{"select$form->{vc}"} .= qq|