summaryrefslogtreecommitdiff
path: root/LedgerSMB/Form.pm
diff options
context:
space:
mode:
authoreinhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46>2006-09-27 04:01:44 +0000
committereinhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46>2006-09-27 04:01:44 +0000
commit91b805822824a2c690d3ed1c4e5e0207ca00ac8d (patch)
treeb1a390945fcd7d8033a355de71524dde69163545 /LedgerSMB/Form.pm
parentdd1c32ab6e018e1bbdfaa9c4584ebb9aa855b647 (diff)
Fixed update_defaults which was broken when I added the new template system.
Got OE working again, for now.... git-svn-id: https://ledger-smb.svn.sourceforge.net/svnroot/ledger-smb/trunk@157 4979c152-3d1c-0410-bac9-87ea11338e46
Diffstat (limited to 'LedgerSMB/Form.pm')
-rwxr-xr-xLedgerSMB/Form.pm190
1 files changed, 98 insertions, 92 deletions
diff --git a/LedgerSMB/Form.pm b/LedgerSMB/Form.pm
index d9c1fac2..9e24d4d3 100755
--- a/LedgerSMB/Form.pm
+++ b/LedgerSMB/Form.pm
@@ -2651,111 +2651,117 @@ sub update_defaults {
# <?lsmb DESCRIPTION 1 1 3 ?>, <?lsmb ITEM 1 1 3 ?>, <?lsmb PARTSGROUP 1 1 3 ?> only for parts
# <?lsmb PHONE ?> for customer and vendors
- #my $num = $_;
-# $num =~ s/.*?<\?lsmb\s.*?\?>//g;
-# ($num) = $num =~ /(\d+)/;
-#
-# if (defined $num) {
-# my $incnum;
-# # if we have leading zeros check how long it is
-#
-# if ($num =~ /^0/) {
-# my $l = length $num;
-# $incnum = $num + 1;
-# $l -= length $incnum;
-#
-# # pad it out with zeros
-# my $padzero = "0" x $l;
-# $incnum = ("0" x $l) . $incnum;
-# } else {
-# $incnum = $num + 1;
-# }
-#
-# s/$num/$incnum/;
-# }
-#
-# my $dbvar = $_;
-# my $var = $_;
-# my $str;
-# my $param;
-#
-# if (/<\?lsmb /) {
-#
-# while (/<\?lsmb /) {
-#
-# s/<\?lsmb .*? ?>//;
-# last unless $&;
-# $param = $&;
-# $str = "";
-#
-# if ($param =~ /<\?lsmb date ?>/i) {
-# $str = ($self->split_date($myconfig->{dateformat}, $self->{transdate}))[0];
-# $var =~ s/$param/$str/;
-# }
-#
-# if ($param =~ /<\?lsmb (name|business|description|item|partsgroup|phone|custom)/i) {
+ my $num = $_;
+ ($num) = $num =~ /(\d+)/;
-# my $fld = lc $&;
-# $fld =~ s/<\?lsmb //;
+ if (defined $num) {
+ my $incnum;
+ # if we have leading zeros check how long it is
-# if ($fld =~ /name/) {
-# if ($self->{type}) {
-# $fld = $self->{vc};
-# }
-# }
-#
-# my $p = $param;
-# $p =~ s/(<|>|%)//g;
-# my @p = split / /, $p;
-# my @n = split / /, uc $self->{$fld};
-#
-# if ($#p > 0) {
-#
-# for (my $i = 1; $i <= $#p; $i++) {
-# $str .= substr($n[$i-1], 0, $p[$i]);
-# }
-#
-# } else {
-# ($str) = split /--/, $self->{$fld};
-# }
-#
-# $var =~ s/$param/$str/;
-# $var =~ s/\W//g if $fld eq 'phone';
-# }
-#
-# if ($param =~ /<\?lsmb (yy|mm|dd)/i) {
-#
-# my $p = $param;
-# $p =~ s/(<|>|%)//g;
-# my $spc = $p;
-# $spc =~ s/\w//g;
-# $spc = substr($spc, 0, 1);
-# my %d = ( yy => 1, mm => 2, dd => 3 );
-# my @p = ();
-#
-# my @a = $self->split_date($myconfig->{dateformat}, $self->{transdate});
-# for (sort keys %d) { push @p, $a[$d{$_}] if ($p =~ /$_/) }
-# $str = join $spc, @p;
-# $var =~ s/$param/$str/;
-# }
-#
-# if ($param =~ /<\?lsmb curr/i) {
-# $var =~ s/$param/$self->{currency}/;
-# }
-# }
-# }
+ if ($num =~ /^0/) {
+ my $l = length $num;
+ $incnum = $num + 1;
+ $l -= length $incnum;
+
+ # pad it out with zeros
+ my $padzero = "0" x $l;
+ $incnum = ("0" x $l) . $incnum;
+ } else {
+ $incnum = $num + 1;
+ }
+
+ s/$num/$incnum/;
+ }
+
+ my $dbvar = $_;
+ my $var = $_;
+ my $str;
+ my $param;
+
+ if (/<\?lsmb /) {
+
+ while (/<\?lsmb /) {
+
+ s/<\?lsmb .*? \?>//;
+ last unless $&;
+ $param = $&;
+ $str = "";
+
+ if ($param =~ /<\?lsmb date \?>/i) {
+ $str = ($self->split_date($myconfig->{dateformat}, $self->{transdate}))[0];
+ $var =~ s/$param/$str/;
+ }
+
+ if ($param =~ /<\?lsmb (name|business|description|item|partsgroup|phone|custom)/i) {
+
+ my $fld = lc $&;
+ $fld =~ s/<\?lsmb //;
+
+ if ($fld =~ /name/) {
+ if ($self->{type}) {
+ $fld = $self->{vc};
+ }
+ }
+
+ my $p = $param;
+ $p =~ s/(<|>|%)//g;
+ my @p = split / /, $p;
+ my @n = split / /, uc $self->{$fld};
+
+ if ($#p > 0) {
+
+ for (my $i = 1; $i <= $#p; $i++) {
+ $str .= substr($n[$i-1], 0, $p[$i]);
+ }
+
+ } else {
+ ($str) = split /--/, $self->{$fld};
+ }
+
+ $var =~ s/$param/$str/;
+ $var =~ s/\W//g if $fld eq 'phone';
+ }
+
+ if ($param =~ /<\?lsmb (yy|mm|dd)/i) {
+
+ my $p = $param;
+ $p =~ s/(<|>|%)//g;
+ my $spc = $p;
+ $spc =~ s/\w//g;
+ $spc = substr($spc, 0, 1);
+ my %d = ( yy => 1, mm => 2, dd => 3 );
+ my @p = ();
+
+ my @a = $self->split_date($myconfig->{dateformat}, $self->{transdate});
+ for (sort keys %d) { push @p, $a[$d{$_}] if ($p =~ /$_/) }
+ $str = join $spc, @p;
+ $var =~ s/$param/$str/;
+ }
+
+ if ($param =~ /<\?lsmb curr/i) {
+ $var =~ s/$param/$self->{currency}/;
+ }
+ }
+ }
$query = qq|UPDATE defaults
SET $fld = ?|;
$sth = $dbh->prepare($query);
- $sth->execute($dbvar) || $form->dberror($query);
+ $sth->execute($dbvar) || $self->dberror($query);
$dbh->commit;
$var;
}
+sub db_prepare_vars {
+ for (@_){
+ if (!$self->{$_} and $self->{$_} != 0){
+ $self->{$_} = undef;
+ }
+ }
+}
sub split_date {