From ac5b087ea2d9ba7428d367aaeb288534158fee9a Mon Sep 17 00:00:00 2001 From: christopherm Date: Fri, 1 Sep 2006 01:16:38 +0000 Subject: Initial Import git-svn-id: https://ledger-smb.svn.sourceforge.net/svnroot/ledger-smb/ledger-smb@1 4979c152-3d1c-0410-bac9-87ea11338e46 --- bin/lynx/arap.pl | 918 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 918 insertions(+) create mode 100755 bin/lynx/arap.pl (limited to 'bin/lynx/arap.pl') diff --git a/bin/lynx/arap.pl b/bin/lynx/arap.pl new file mode 100755 index 00000000..6fc44370 --- /dev/null +++ b/bin/lynx/arap.pl @@ -0,0 +1,918 @@ +#===================================================================== +# LedgerSMB Small Medium Business Accounting +# Copyright (c) 2003 +# +# Author: DWS Systems Inc. +# Web: http://sourceforge.net/projects/ledger-smb/ +# +# +# 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. +#====================================================================== +# +# common routines for gl, ar, ap, is, ir, oe +# + +use SL::AA; + +# any custom scripts for this one +if (-f "$form->{path}/custom_arap.pl") { + eval { require "$form->{path}/custom_arap.pl"; }; +} +if (-f "$form->{path}/$form->{login}_arap.pl") { + eval { require "$form->{path}/$form->{login}_arap.pl"; }; +} + + +1; +# end of main + + +sub check_name { + my ($name) = @_; + + my ($new_name, $new_id) = split /--/, $form->{$name}; + my $rv = 0; + + # if we use a selection + if ($form->{"select$name"}) { + if ($form->{"old$name"} ne $form->{$name}) { + # this is needed for is, ir and oe + for (split / /, $form->{taxaccounts}) { delete $form->{"${_}_rate"} } + + # for credit calculations + $form->{oldinvtotal} = 0; + $form->{oldtotalpaid} = 0; + $form->{calctax} = 1; + + $form->{"${name}_id"} = $new_id; + AA->get_name(\%myconfig, \%$form); + + $form->{$name} = $form->{"old$name"} = "$new_name--$new_id"; + $form->{currency} =~ s/ //g; + + # put employee together if there is a new employee_id + $form->{employee} = "$form->{employee}--$form->{employee_id}" if $form->{employee_id}; + + $rv = 1; + } + } else { + + # check name, combine name and id + if ($form->{"old$name"} ne qq|$form->{$name}--$form->{"${name}_id"}|) { + # this is needed for is, ir and oe + for (split / /, $form->{taxaccounts}) { delete $form->{"${_}_rate"} } + + # for credit calculations + $form->{oldinvtotal} = 0; + $form->{oldtotalpaid} = 0; + $form->{calctax} = 1; + + # return one name or a list of names in $form->{name_list} + if (($rv = $form->get_name(\%myconfig, $name, $form->{transdate})) > 1) { + &select_name($name); + exit; + } + + if ($rv == 1) { + # we got one name + $form->{"${name}_id"} = $form->{name_list}[0]->{id}; + $form->{$name} = $form->{name_list}[0]->{name}; + $form->{"old$name"} = qq|$form->{$name}--$form->{"${name}_id"}|; + + AA->get_name(\%myconfig, \%$form); + + $form->{currency} =~ s/ //g; + # put employee together if there is a new employee_id + $form->{employee} = "$form->{employee}--$form->{employee_id}" if $form->{employee_id}; + + } else { + # name is not on file + $msg = ucfirst $name . " not on file!"; + $form->error($locale->text($msg)); + } + } + } + + $rv; + +} + +# $locale->text('Customer not on file!') +# $locale->text('Vendor not on file!') + + +sub select_name { + my ($table) = @_; + + @column_index = qw(ndx name address); + + $label = ucfirst $table; + $column_data{ndx} = qq| |; + $column_data{name} = qq||.$locale->text($label).qq||; + $column_data{address} = qq||.$locale->text('Address').qq||; + + # list items with radio button on a form + $form->header; + + $title = $locale->text('Select from one of the names below'); + + print qq| + + +
{script}> + + + + + + + + + + + + +
$title
+ + |; + + for (@column_index) { print "\n$column_data{$_}" } + + print qq| + +|; + + @column_index = qw(ndx name address city state zipcode country); + + my $i = 0; + foreach $ref (@{ $form->{name_list} }) { + $checked = ($i++) ? "" : "checked"; + + $ref->{name} = $form->quote($ref->{name}); + + $column_data{ndx} = qq||; + $column_data{name} = qq||; + $column_data{address} = qq||; + for (qw(city state zipcode country)) { $column_data{$_} = qq|| } + + $j++; $j %= 2; + print qq| + |; + + for (@column_index) { print "\n$column_data{$_}" } + + print qq| + + +{id}> + +|; + + } + + print qq| +
$ref->{name}$ref->{address1} $ref->{address2}$ref->{$_} 
+

+ + + +|; + + # delete variables + for (qw(nextsub name_list)) { delete $form->{$_} } + + $form->{action} = "name_selected"; + + $form->hide_form; + + print qq| + + +
+ +
+ + + +|; + +} + + + +sub name_selected { + + # replace the variable with the one checked + + # index for new item + $i = $form->{ndx}; + + $form->{$form->{vc}} = $form->{"new_name_$i"}; + $form->{"$form->{vc}_id"} = $form->{"new_id_$i"}; + $form->{"old$form->{vc}"} = qq|$form->{$form->{vc}}--$form->{"$form->{vc}_id"}|; + + # delete all the new_ variables + for $i (1 .. $form->{lastndx}) { + for (qw(id, name)) { delete $form->{"new_${_}_$i"} } + } + + for (qw(ndx lastndx nextsub)) { delete $form->{$_} } + + AA->get_name(\%myconfig, \%$form); + + # put employee together if there is a new employee_id + $form->{employee} = "$form->{employee}--$form->{employee_id}" if $form->{employee_id}; + + &update(1); + +} + + +sub rebuild_vc { + my ($vc, $ARAP, $transdate, $job) = @_; + + ($null, $form->{employee_id}) = split /--/, $form->{employee}; + $form->all_vc(\%myconfig, $vc, $ARAP, undef, $transdate, $job); + $form->{"select$vc"} = ""; + for (@{ $form->{"all_$vc"} }) { $form->{"select$vc"} .= qq|