summaryrefslogtreecommitdiff
path: root/LedgerSMB/Form.pm
diff options
context:
space:
mode:
Diffstat (limited to 'LedgerSMB/Form.pm')
-rw-r--r--LedgerSMB/Form.pm114
1 files changed, 55 insertions, 59 deletions
diff --git a/LedgerSMB/Form.pm b/LedgerSMB/Form.pm
index 60d0ec19..99a41184 100644
--- a/LedgerSMB/Form.pm
+++ b/LedgerSMB/Form.pm
@@ -67,7 +67,6 @@ use File::Copy;
use charnames ':full';
use open ':utf8';
-
package Form;
=item new Form([$argstr])
@@ -85,6 +84,9 @@ $form->error may be called to deny access on some attribute values.
=cut
sub new {
+ # Without the line below, we get unknown errors. I guess this is an
+ # indication of why this module is deprecated :-)-- CT
+ no strict;
my $type = shift;
@@ -617,7 +619,7 @@ sub sort_order {
$a[0] .= " $self->{direction}";
}
- $sortorder = join ',', @a;
+ my $sortorder = join ',', @a;
$sortorder;
}
@@ -843,7 +845,7 @@ sub db_parse_numeric {
my @names = @{$sth->{NAME_lc}};
for (0 .. $#names){
if ($types[$_] == 3){
- $arrayref[$_] = Math::BigFloat->new($arrayref[$_])
+ $arrayref->[$_] = Math::BigFloat->new($arrayref->[$_])
if defined $arrayref;
$hashref->{$names[$_]} = Math::BigFloat->new($hashref->{$names[$_]})
if defined $hashref;
@@ -853,29 +855,6 @@ sub db_parse_numeric {
return ($hashref || $arrayref);
}
-=item Form::callproc($procname);
-
-Broken function. Use $lsmb::call_procedure instead.
-
-=cut
-
-sub callproc {
- my $procname = shift @_;
- my $argstr = "";
- my @results;
- for ( 1 .. $#_ ) {
- $argstr .= "?, ";
- }
- $argstr =~ s/\, $//;
- $query = "SELECT * FROM $procname";
- $query =~ s/\(\)/$argstr/;
- my $sth = $self->{dbh}->prepare($query);
- while ( my $ref = $sth->fetchrow_hashref(NAME_lc) ) {
- push @results, $ref;
- }
- @results;
-}
-
=item $form->get_my_emp_num($myconfig);
Function to get the employee number of the user $form->{login}. $myconfig is
@@ -887,19 +866,19 @@ This function is currently (2007-08-02) only used by pos.conf.pl.
sub get_my_emp_num {
my ( $self, $myconfig) = @_;
- %myconfig = %{$myconfig};
- my $dbh = $form->{dbh};
+ my %myconfig = %{$myconfig};
+ my $dbh = $self->{dbh};
# we got a connection, check the version
my $query = qq|
SELECT employeenumber FROM employee
WHERE login = ?|;
my $sth = $dbh->prepare($query);
- $sth->execute( $form->{login} ) || $form->dberror($query);
+ $sth->execute( $self->{login} ) || $self->dberror($query);
my ($id) = $sth->fetchrow_array;
$sth->finish;
- $form->{'emp_num'} = $id;
+ $self->{'emp_num'} = $id;
}
=item $form->format_string(@fields);
@@ -979,8 +958,14 @@ sub datetonum {
my ( $self, $myconfig, $date, $picture ) = @_;
+ my $date;
+
if ( $date && $date =~ /\D/ ) {
+ my $yy;
+ my $mm;
+ my $dd;
+
if ( $myconfig->{dateformat} =~ /^yy/ ) {
( $yy, $mm, $dd ) = split /\D/, $date;
}
@@ -1072,7 +1057,7 @@ sub add_date {
$mm--;
- @t = localtime( Time::Local::timelocal( 0, 0, 0, $dd, $mm, $yy ) + $diff );
+ my @t = localtime( Time::Local::timelocal( 0, 0, 0, $dd, $mm, $yy ) + $diff );
$t[4]++;
$mm = substr( "0$t[4]", -2 );
@@ -1133,7 +1118,7 @@ autocommit disabled.
sub db_init {
my ( $self, $myconfig ) = @_;
$self->{dbh} = $self->dbconnect_noauto($myconfig) || $self->dberror();
- %date_query = (
+ my %date_query = (
'mm/dd/yy' => 'set DateStyle to \'SQL, US\'',
'mm-dd-yy' => 'set DateStyle to \'POSTGRES, US\'',
'dd/mm/yy' => 'set DateStyle to \'SQL, EUROPEAN\'',
@@ -1172,9 +1157,7 @@ sub run_custom_queries {
my $dbh = $self->{dbh};
if ( $query_type !~ /^(select|insert|update)$/i ) {
$self->error(
- $locale->text(
"Passed incorrect query type to run_custom_queries."
- )
);
}
my @rc;
@@ -1182,7 +1165,9 @@ sub run_custom_queries {
my @templist;
my @elements;
my $query;
+ my $did_insert;
my $ins_values;
+ my $sth;
if ($linenum) {
$linenum = "_$linenum";
}
@@ -1254,10 +1239,10 @@ sub run_custom_queries {
}
elsif ( $query_type eq 'SELECT' ) {
for (@rc) {
- $query = shift @{$_};
- $sth = $self->{dbh}->prepare($query);
+ my $query = shift @{$_};
+ my $sth = $self->{dbh}->prepare($query);
$sth->execute( $self->{id} );
- $ref = $sth->fetchrow_hashref(NAME_lc);
+ my $ref = $sth->fetchrow_hashref(NAME_lc);
for ( keys %{$ref} ) {
$self->{$_} = $ref->{$_};
}
@@ -1302,7 +1287,7 @@ sub dbconnect_noauto {
my ( $self, $myconfig ) = @_;
# connect to database
- $dbh = DBI->connect(
+ my $dbh = DBI->connect(
$myconfig->{dbconnect}, $myconfig->{dbuser},
$myconfig->{dbpasswd}, { AutoCommit => 0 }
) or $self->dberror;
@@ -1478,6 +1463,7 @@ sub get_exchangerate {
my ( $self, $dbh, $curr, $transdate, $fld ) = @_;
my $exchangerate = 1;
+ my $sth;
if ($transdate) {
my $query = qq|
@@ -1561,7 +1547,7 @@ sub add_shipto {
VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|;
- $sth = $self->{dbh}->prepare($query) || $self->dberror($query);
+ my $sth = $self->{dbh}->prepare($query) || $self->dberror($query);
$sth->execute(
$id, $self->{shiptoname},
$self->{shiptoaddress1}, $self->{shiptoaddress2},
@@ -1595,7 +1581,7 @@ sub get_employee {
FROM employee
WHERE login = ?)|;
- $sth = $self->{dbh}->prepare($query);
+ my $sth = $self->{dbh}->prepare($query);
$sth->execute($login);
my (@a) = $sth->fetchrow_array();
$a[1] *= 1;
@@ -1657,7 +1643,7 @@ sub get_name {
my $i = 0;
@{ $self->{name_list} } = ();
- while ( $ref = $sth->fetchrow_hashref(NAME_lc) ) {
+ while ( my $ref = $sth->fetchrow_hashref(NAME_lc) ) {
push( @{ $self->{name_list} }, $ref );
$i++;
}
@@ -1943,12 +1929,12 @@ sub all_projects {
$query .= qq| ORDER BY projectnumber|;
- $sth = $dbh->prepare($query);
+ my $sth = $dbh->prepare($query);
$sth->execute(@queryargs) || $self->dberror($query);
@{ $self->{all_project} } = ();
- while ( $ref = $sth->fetchrow_hashref(NAME_lc) ) {
+ while ( my $ref = $sth->fetchrow_hashref(NAME_lc) ) {
push @{ $self->{all_project} }, $ref;
}
@@ -1972,7 +1958,7 @@ sub all_departments {
my ( $self, $myconfig, $dbh2, $vc ) = @_;
- $dbh = $self->{dbh};
+ my $dbh = $self->{dbh};
my $where = "1 = 1";
@@ -2015,7 +2001,7 @@ sub all_years {
my ( $self, $myconfig, $dbh2 ) = @_;
- $dbh = $self->{dbh};
+ my $dbh = $self->{dbh};
# get years
my $query = qq|
@@ -2106,10 +2092,14 @@ sub create_links {
$self->db_init($myconfig);
}
- $dbh = $self->{dbh};
+ my $dbh = $self->{dbh};
my %xkeyref = ();
+ my $val;
+ my $ref;
+ my $key;
+
# now get the account numbers
$query = qq|SELECT accno, description, link
FROM chart
@@ -2229,7 +2219,7 @@ sub create_links {
$ref->{exchangerate} =
$self->get_exchangerate( $dbh, $self->{currency},
$ref->{transdate}, $fld );
- if ($form->{reverse}){
+ if ($self->{reverse}){
$ref->{amount} *= -1;
}
@@ -2354,6 +2344,7 @@ sub current_date {
my $dbh = $self->{dbh};
my $query;
+ my @queryargs;
$days *= 1;
if ($thisdate) {
@@ -2379,9 +2370,9 @@ sub current_date {
@queryargs = ();
}
- $sth = $dbh->prepare($query);
+ my $sth = $dbh->prepare($query);
$sth->execute(@queryargs);
- ($thisdate) = $sth->fetchrow_array;
+ my ($thisdate) = $sth->fetchrow_array;
$thisdate;
}
@@ -2430,7 +2421,7 @@ sub redo_rows {
# fill rows
foreach my $item ( sort { $a->{num} <=> $b->{num} } @ndx ) {
$i++;
- $j = $item->{ndx} - 1;
+ my $j = $item->{ndx} - 1;
for ( @{$flds} ) { $self->{"${_}_$i"} = $new->[$j]->{$_} }
}
@@ -2550,7 +2541,7 @@ sub update_status {
WHERE formname = ?
AND trans_id = ?|;
- $sth = $dbh->prepare($query);
+ my $sth = $dbh->prepare($query);
$sth->execute( $self->{formname}, $self->{id} ) || $self->dberror($query);
$sth->finish;
@@ -2583,7 +2574,7 @@ sub save_status {
my ($self) = @_;
- $dbh = $self->{dbh};
+ my $dbh = $self->{dbh};
my $formnames = $self->{printed};
my $emailforms = $self->{emailed};
@@ -2598,6 +2589,9 @@ sub save_status {
my %queued;
my $formname;
+ my $printed;
+ my $emailed;
+
if ( $self->{queued} ) {
%queued = split / +/, $self->{queued};
@@ -2615,7 +2609,7 @@ sub save_status {
VALUES (?, ?, ?, ?, ?)|;
$sth = $dbh->prepare($query);
- $sth->execute( $self->{id}, $pinted, $emailed,
+ $sth->execute( $self->{id}, $printed, $emailed,
$queued{$formname}, $formname )
|| $self->dberror($query);
$sth->finish;
@@ -2666,7 +2660,7 @@ sub get_recurring {
my ($self) = @_;
- $dbh = $self->{dbh};
+ my $dbh = $self->{dbh};
my $query = qq/
SELECT s.*, se.formname || ':' || se.format AS emaila,
se.message, sp.formname || ':' ||
@@ -2785,7 +2779,7 @@ sub save_recurring {
$query = qq|DELETE FROM recurring
WHERE id = ?|;
- $sth = $dbh->prepare($query) || $self->dberror($query);
+ my $sth = $dbh->prepare($query) || $self->dberror($query);
$sth->execute( $self->{id} ) || $self->dberror($query);
$query = qq|DELETE FROM recurringemail
@@ -2954,7 +2948,7 @@ sub save_intnotes {
my $query = qq|UPDATE $vc SET intnotes = ? WHERE id = ?|;
- $sth = $dbh->prepare($query);
+ my $sth = $dbh->prepare($query);
$sth->execute( $self->{intnotes}, $self->{id} ) || $self->dberror($query);
$dbh->commit;
}
@@ -3010,7 +3004,7 @@ sub update_defaults {
my $query = qq|
SELECT value FROM defaults
WHERE setting_key = ? FOR UPDATE|;
- $sth = $dbh->prepare($query);
+ my $sth = $dbh->prepare($query);
$sth->execute($fld);
($_) = $sth->fetchrow_array();
@@ -3129,12 +3123,12 @@ sub update_defaults {
}
}
- $query = qq|
+ my $query = qq|
UPDATE defaults
SET value = ?
WHERE setting_key = ?|;
- $sth = $dbh->prepare($query);
+ my $sth = $dbh->prepare($query);
$sth->execute( $dbvar, $fld ) || $self->dberror($query);
$dbh->commit;
@@ -3384,6 +3378,8 @@ sub audittrail {
if ( !$dbh ) {
$dbh = $self->{dbh};
}
+ my $sth;
+ my $query;
# if we have an id add audittrail, otherwise get a new timestamp