summaryrefslogtreecommitdiff
path: root/LedgerSMB.pm
diff options
context:
space:
mode:
authoreinhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46>2007-03-15 23:42:33 +0000
committereinhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46>2007-03-15 23:42:33 +0000
commit7555d4942811f270ea3f7b47e03e5ada0e03f1be (patch)
treef6b910aa0d41728b5f2d1d47a37118bff3087f21 /LedgerSMB.pm
parent54f4e63a94c6efcc36881cba8802f86be3a5d290 (diff)
Mostly done rewriting LedgerSMB.pm. There are a few areas that still need work
git-svn-id: https://ledger-smb.svn.sourceforge.net/svnroot/ledger-smb/trunk@911 4979c152-3d1c-0410-bac9-87ea11338e46
Diffstat (limited to 'LedgerSMB.pm')
-rwxr-xr-xLedgerSMB.pm63
1 files changed, 34 insertions, 29 deletions
diff --git a/LedgerSMB.pm b/LedgerSMB.pm
index 3a38fef3..ddc639c8 100755
--- a/LedgerSMB.pm
+++ b/LedgerSMB.pm
@@ -52,12 +52,22 @@ non-whitespace characters.
This function determines the likely number of rows needed to hold text in a
textbox. It returns either that number or max, which ever is lower.
+=item merge ($hashref, keys => @list, index => $number);
+This command merges the $hashref into the current object. If keys are
+specified, only those keys are used. Otherwise all keys are merged.
+
+If an index is specified, the merged keys are given a form of
+"$key" . "_$index", otherwise the key is used on both sides.
+
=item redirect (msg => $string)
This function redirects to the script and argument set determined by
$self->{callback}, and if this is not set, goes to an info screen and prints
$msg.
+=item redo_rows (fields =>, new =>, count =>, rows => $integer);
+This function is undergoing serious redesign at the moment.
+
=head1 Copyright (C) 2006, The LedgerSMB core team.
# This work contains copyrighted information from a number of sources all used
@@ -501,7 +511,12 @@ sub db_init {
my %args = @_;
my $myconfig = $args{user};
- $self->{dbh} = $self->dbconnect_noauto($myconfig) || $self->dberror();
+ my $dbh = DBI->connect($myconfig->{dbconnect}, $myconfig->{dbuser},
+ $myconfig->{dbpasswd}, {AutoCommit => 0}) or $self->dberror;
+
+ if ($myconfig->{dboptions}) {
+ $dbh->do($myconfig->{dboptions});
+ }
my $query =
"SELECT t.extends,
@@ -518,27 +533,15 @@ sub db_init {
}
}
-# Will merge this into db_init in the future.
-# Deprecated and hence undocumented. Chris.
-sub dbconnect_noauto {
-
- my ($self, $myconfig) = @_;
-
- # connect to database
- my $dbh = DBI->connect($myconfig->{dbconnect}, $myconfig->{dbuser}, $myconfig->{dbpasswd}, {AutoCommit => 0}) or $self->dberror;
-
- # set db options
- if ($myconfig->{dboptions}) {
- $dbh->do($myconfig->{dboptions});
- }
-
- $dbh;
-}
-
-
+# This needs some *real* work.
sub redo_rows {
- my ($self, $flds, $new, $count, $numrows) = @_;
+ $self = shift @_;
+ %args = @_;
+ @flds = @{$args{fields}};
+ $new = $args{new};
+ $count = $args{count};
+ $numrows = $args{rows};
my @ndx = ();
@@ -552,7 +555,7 @@ sub redo_rows {
foreach my $item (sort { $a->{num} <=> $b->{num} } @ndx) {
$i++;
$j = $item->{ndx} - 1;
- for (@{$flds}) { $self->{"${_}_$i"} = $new->[$j]->{$_} }
+ for (@flds) { $self->{"${_}_$i"} = $new->[$j]->{$_} }
}
# delete empty rows
@@ -567,17 +570,19 @@ sub merge {
for my $arg ($self, $src){
shift;
}
- my @keys;
- if (scalar @keys){
- @keys = @_;
- print "Keys: ". scalar @keys . "\n";
- }
- else {
+ my %args = @_;
+ my @keys = @{$args{keys}};
+ my $index = $args{index};
+ if (! scalar @keys){
@keys = keys %{$src};
- print "Keys: ". scalar @keys . "\n";
}
for my $arg (keys %$src){
- $self->{$arg} = $src->{$arg};
+ if ($index){
+ $dst_arg = $arg . "_$index";
+ } else {
+ $dst_arg = $arg;
+ }
+ $self->{$dst_arg} = $src->{$arg};
}
}