From c1bb4ddb71147d0571bd301a6d8c452fdf0e1bc9 Mon Sep 17 00:00:00 2001 From: ivan Date: Tue, 31 Jan 2006 04:26:54 +0000 Subject: move header() to include(/elements/header.html) so it can be changed in one place, thanks to Scott Edwards --- httemplate/misc/process/cust_main-import.cgi | 2 +- httemplate/misc/process/cust_main-import_charges.cgi | 2 +- httemplate/misc/process/meta-import.cgi | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'httemplate/misc/process') diff --git a/httemplate/misc/process/cust_main-import.cgi b/httemplate/misc/process/cust_main-import.cgi index 9e1adce54..2348ef680 100644 --- a/httemplate/misc/process/cust_main-import.cgi +++ b/httemplate/misc/process/cust_main-import.cgi @@ -25,6 +25,6 @@ } else { %> - <%= header('Import sucessful') %> <% + <%= include("/elements/header.html",'Import sucessful') %> <% } %> diff --git a/httemplate/misc/process/cust_main-import_charges.cgi b/httemplate/misc/process/cust_main-import_charges.cgi index 14df1bd8d..c14228cf4 100644 --- a/httemplate/misc/process/cust_main-import_charges.cgi +++ b/httemplate/misc/process/cust_main-import_charges.cgi @@ -21,6 +21,6 @@ } else { %> - <%= header('Import sucessful') %> <% + <%= include("/elements/header.html",'Import sucessful') %> <% } %> diff --git a/httemplate/misc/process/meta-import.cgi b/httemplate/misc/process/meta-import.cgi index 59d236f64..4cdecafc4 100644 --- a/httemplate/misc/process/meta-import.cgi +++ b/httemplate/misc/process/meta-import.cgi @@ -1,5 +1,5 @@ -<%= header('Map tables') %> +<%= include("/elements/header.html",'Map tables') %>
+% +% #use DBIx::DBSchema; +% my $schema = new_native DBIx::DBSchema +% map { $cgi->param($_) } qw( data_source username password ); +% foreach my $field (qw( data_source username password )) { + + VALUE="<% $cgi->param($field) %>"> +% } +% +% my %schema; +% use Tie::DxHash; +% tie %schema, 'Tie::DxHash'; +% if ( $cgi->param('schema') ) { +% my $schema_string = $cgi->param('schema'); +% + +% +% %schema = map { /^\s*(\w+)\s*=>\s*(\w+)\s*$/ +% or die "guru meditation #420: $_"; +% ( $1 => $2 ); +% } +% split( /\n/, $schema_string ); +% } +% +% #first page +% unless ( $cgi->param('magic') ) { -<% - #use DBIx::DBSchema; - my $schema = new_native DBIx::DBSchema - map { $cgi->param($_) } qw( data_source username password ); - foreach my $field (qw( data_source username password )) { %> - VALUE="<%= $cgi->param($field) %>"> - <% } - - my %schema; - use Tie::DxHash; - tie %schema, 'Tie::DxHash'; - if ( $cgi->param('schema') ) { - my $schema_string = $cgi->param('schema'); - %> <% - %schema = map { /^\s*(\w+)\s*=>\s*(\w+)\s*$/ - or die "guru meditation #420: $_"; - ( $1 => $2 ); - } - split( /\n/, $schema_string ); - } - - #first page - unless ( $cgi->param('magic') ) { %> - <%= hashmaker('schema', [ $schema->tables ], + <% hashmaker('schema', [ $schema->tables ], [ grep !/^h_/, dbdef->tables ], ) %>
- <% +% +% +% #second page +% } elsif ( $cgi->param('magic') eq 'process' ) { - #second page - } elsif ( $cgi->param('magic') eq 'process' ) { %> - <% - - my %unique; - foreach my $table ( keys %schema ) { - - my @from_columns = $schema->table($table)->columns; - my @fs_columns = dbdef->table($schema{$table})->columns; - - %> - <%= hashmaker( $table.'__'.$unique{$table}++, +% +% +% my %unique; +% foreach my $table ( keys %schema ) { +% +% my @from_columns = $schema->table($table)->columns; +% my @fs_columns = dbdef->table($schema{$table})->columns; +% +% + + <% hashmaker( $table.'__'.$unique{$table}++, \@from_columns => \@fs_columns, $table => $schema{$table}, ) %>


- <% - - } +% +% +% } +% +% - %>
- <% +% +% +% #third (results) +% } elsif ( $cgi->param('magic') eq 'process2' ) { +% +% print "
\n";
+%
+%    my %unique;
+%    foreach my $table ( keys %schema ) {
+%      ( my $spaces = $table ) =~ s/./ /g;
+%      print "'$table' => { 'table' => '$schema{$table}',\n".
+%            #(length($table) x ' '). "         'map'   => {\n";
+%            "$spaces        'map'   => {\n";
+%      my %map = map { /^\s*(\w+)\s*=>\s*(\w+)\s*$/
+%                         or die "guru meditation #420: $_";
+%                       ( $1 => $2 );
+%                     }
+%                 split( /\n/, $cgi->param($table.'__'.$unique{$table}++) );
+%      foreach ( keys %map ) {
+%        print "$spaces                     '$_' => '$map{$_}',\n";
+%      }
+%      print "$spaces                   },\n";
+%      print "$spaces      },\n";
+%
+%    }
+%    print "\n
"; +% +% } else { +% warn "unrecognized magic: ". $cgi->param('magic'); +% } +% +% - #third (results) - } elsif ( $cgi->param('magic') eq 'process2' ) { - - print "
\n";
-
-    my %unique;
-    foreach my $table ( keys %schema ) {
-      ( my $spaces = $table ) =~ s/./ /g;
-      print "'$table' => { 'table' => '$schema{$table}',\n".
-            #(length($table) x ' '). "         'map'   => {\n";
-            "$spaces        'map'   => {\n";
-      my %map = map { /^\s*(\w+)\s*=>\s*(\w+)\s*$/
-                         or die "guru meditation #420: $_";
-                       ( $1 => $2 );
-                     }
-                 split( /\n/, $cgi->param($table.'__'.$unique{$table}++) );
-      foreach ( keys %map ) {
-        print "$spaces                     '$_' => '$map{$_}',\n";
-      }
-      print "$spaces                   },\n";
-      print "$spaces      },\n";
-
-    }
-    print "\n
"; - - } else { - warn "unrecognized magic: ". $cgi->param('magic'); - } - - %>
+% +% #hashmaker widget +% sub hashmaker { +% my($name, $from, $to, $labelfrom, $labelto) = @_; +% my $fromsize = scalar(@$from); +% my $tosize = scalar(@$to); +% "'. +% '
$labelfrom$labelto
". +% qq!\n
". +% qq!!. +% '
'. +% qq!\n
". +% qq!!. +% '
'. +% qq!!. +% '
'. +% qq!!. +% '
'. +% "". +% ''; +% } +% +% - <% - #hashmaker widget - sub hashmaker { - my($name, $from, $to, $labelfrom, $labelto) = @_; - my $fromsize = scalar(@$from); - my $tosize = scalar(@$to); - "'. - '
$labelfrom$labelto
". - qq!\n
". - qq!!. - '
'. - qq!\n
". - qq!!. - '
'. - qq!!. - '
'. - qq!!. - '
'. - "". - ''; - } - -%> diff --git a/httemplate/misc/process/payment.cgi b/httemplate/misc/process/payment.cgi index d21c57c40..188d1dd04 100644 --- a/httemplate/misc/process/payment.cgi +++ b/httemplate/misc/process/payment.cgi @@ -1,140 +1,141 @@ -<% - -#some false laziness w/MyAccount::process_payment - -$cgi->param('custnum') =~ /^(\d+)$/ - or die "illegal custnum ". $cgi->param('custnum'); -my $custnum = $1; - -my $cust_main = qsearchs('cust_main', { 'custnum' => $custnum } ); -die "unknown custnum $custnum" unless $cust_main; - -$cgi->param('amount') =~ /^\s*(\d*(\.\d\d)?)\s*$/ - or eidiot "illegal amount ". $cgi->param('amount'); -my $amount = $1; -eidiot "amount <= 0" unless $amount > 0; - -$cgi->param('year') =~ /^(\d+)$/ - or die "illegal year ". $cgi->param('year'); -my $year = $1; - -$cgi->param('month') =~ /^(\d+)$/ - or die "illegal month ". $cgi->param('month'); -my $month = $1; - -$cgi->param('payby') =~ /^(CARD|CHEK)$/ - or die "illegal payby ". $cgi->param('payby'); -my $payby = $1; -my %payby2bop = ( - 'CARD' => 'CC', - 'CHEK' => 'ECHECK', -); -my %payby2fields = ( - 'CARD' => [ qw( address1 address2 city state zip ) ], - 'CHEK' => [ qw( ss ) ], -); -my %type = ( 'CARD' => 'credit card', - 'CHEK' => 'electronic check (ACH)', - ); - -$cgi->param('payname') =~ /^([\w \,\.\-\']+)$/ - or eidiot gettext('illegal_name'). " payname: ". $cgi->param('payname'); -my $payname = $1; - -$cgi->param('paybatch') =~ /^([\w \!\@\#\$\%\&\(\)\-\+\;\:\'\"\,\.\?\/\=]*)$/ - or eidiot gettext('illegal_text'). " paybatch: ". $cgi->param('paybatch'); -my $paybatch = $1; - -my $payinfo; -my $paycvv = ''; -if ( $payby eq 'CHEK' ) { - - $cgi->param('payinfo1') =~ /^(\d+)$/ - or eidiot "illegal account number ". $cgi->param('payinfo1'); - my $payinfo1 = $1; - $cgi->param('payinfo2') =~ /^(\d+)$/ - or eidiot "illegal ABA/routing number ". $cgi->param('payinfo2'); - my $payinfo2 = $1; - $payinfo = $payinfo1. '@'. $payinfo2; - -} elsif ( $payby eq 'CARD' ) { - - $payinfo = $cgi->param('payinfo'); - $payinfo =~ s/\D//g; - $payinfo =~ /^(\d{13,16})$/ - or eidiot gettext('invalid_card'); # . ": ". $self->payinfo; - $payinfo = $1; - validate($payinfo) - or eidiot gettext('invalid_card'); # . ": ". $self->payinfo; - eidiot gettext('unknown_card_type') - if cardtype($payinfo) eq "Unknown"; - - if ( defined $cust_main->dbdef_table->column('paycvv') ) { - if ( length($cgi->param('paycvv') ) ) { - if ( cardtype($payinfo) eq 'American Express card' ) { - $cgi->param('paycvv') =~ /^(\d{4})$/ - or eidiot "CVV2 (CID) for American Express cards is four digits."; - $paycvv = $1; - } else { - $cgi->param('paycvv') =~ /^(\d{3})$/ - or eidiot "CVV2 (CVC2/CID) is three digits."; - $paycvv = $1; - } - } - } - -} else { - die "unknown payby $payby"; -} - -my $error = $cust_main->realtime_bop( $payby2bop{$payby}, $amount, - 'quiet' => 1, - 'payinfo' => $payinfo, - 'paydate' => "$year-$month-01", - 'payname' => $payname, - 'paybatch' => $paybatch, - 'paycvv' => $paycvv, - map { $_ => $cgi->param($_) } @{$payby2fields{$payby}} -); -eidiot($error) if $error; - -$cust_main->apply_payments; - -if ( $cgi->param('save') ) { - my $new = new FS::cust_main { $cust_main->hash }; - if ( $payby eq 'CARD' ) { - $new->set( 'payby' => ( $cgi->param('auto') ? 'CARD' : 'DCRD' ) ); - } elsif ( $payby eq 'CHEK' ) { - $new->set( 'payby' => ( $cgi->param('auto') ? 'CHEK' : 'DCHK' ) ); - } else { - die "unknown payby $payby"; - } - $new->set( 'payinfo' => $payinfo ); - $new->set( 'paydate' => "$year-$month-01" ); - $new->set( 'payname' => $payname ); - - #false laziness w/FS:;cust_main::realtime_bop - check both to make sure - # working correctly - my $conf = new FS::Conf; - if ( $payby eq 'CARD' && - grep { $_ eq cardtype($payinfo) } $conf->config('cvv-save') ) { - $new->set( 'paycvv' => $paycvv ); - } else { - $new->set( 'paycvv' => ''); - } - - $new->set( $_ => $cgi->param($_) ) foreach @{$payby2fields{$payby}}; - - my $error = $new->replace($cust_main); - eidiot "payment processed successfully, but error saving info: $error" - if $error; - $cust_main = $new; -} - -#success! - -%> -<%= include( '/elements/header.html', ucfirst($type{$payby}). ' processing successful', +% +% +%#some false laziness w/MyAccount::process_payment +% +%$cgi->param('custnum') =~ /^(\d+)$/ +% or die "illegal custnum ". $cgi->param('custnum'); +%my $custnum = $1; +% +%my $cust_main = qsearchs('cust_main', { 'custnum' => $custnum } ); +%die "unknown custnum $custnum" unless $cust_main; +% +%$cgi->param('amount') =~ /^\s*(\d*(\.\d\d)?)\s*$/ +% or eidiot "illegal amount ". $cgi->param('amount'); +%my $amount = $1; +%eidiot "amount <= 0" unless $amount > 0; +% +%$cgi->param('year') =~ /^(\d+)$/ +% or die "illegal year ". $cgi->param('year'); +%my $year = $1; +% +%$cgi->param('month') =~ /^(\d+)$/ +% or die "illegal month ". $cgi->param('month'); +%my $month = $1; +% +%$cgi->param('payby') =~ /^(CARD|CHEK)$/ +% or die "illegal payby ". $cgi->param('payby'); +%my $payby = $1; +%my %payby2bop = ( +% 'CARD' => 'CC', +% 'CHEK' => 'ECHECK', +%); +%my %payby2fields = ( +% 'CARD' => [ qw( address1 address2 city state zip ) ], +% 'CHEK' => [ qw( ss ) ], +%); +%my %type = ( 'CARD' => 'credit card', +% 'CHEK' => 'electronic check (ACH)', +% ); +% +%$cgi->param('payname') =~ /^([\w \,\.\-\']+)$/ +% or eidiot gettext('illegal_name'). " payname: ". $cgi->param('payname'); +%my $payname = $1; +% +%$cgi->param('paybatch') =~ /^([\w \!\@\#\$\%\&\(\)\-\+\;\:\'\"\,\.\?\/\=]*)$/ +% or eidiot gettext('illegal_text'). " paybatch: ". $cgi->param('paybatch'); +%my $paybatch = $1; +% +%my $payinfo; +%my $paycvv = ''; +%if ( $payby eq 'CHEK' ) { +% +% $cgi->param('payinfo1') =~ /^(\d+)$/ +% or eidiot "illegal account number ". $cgi->param('payinfo1'); +% my $payinfo1 = $1; +% $cgi->param('payinfo2') =~ /^(\d+)$/ +% or eidiot "illegal ABA/routing number ". $cgi->param('payinfo2'); +% my $payinfo2 = $1; +% $payinfo = $payinfo1. '@'. $payinfo2; +% +%} elsif ( $payby eq 'CARD' ) { +% +% $payinfo = $cgi->param('payinfo'); +% $payinfo =~ s/\D//g; +% $payinfo =~ /^(\d{13,16})$/ +% or eidiot gettext('invalid_card'); # . ": ". $self->payinfo; +% $payinfo = $1; +% validate($payinfo) +% or eidiot gettext('invalid_card'); # . ": ". $self->payinfo; +% eidiot gettext('unknown_card_type') +% if cardtype($payinfo) eq "Unknown"; +% +% if ( defined $cust_main->dbdef_table->column('paycvv') ) { +% if ( length($cgi->param('paycvv') ) ) { +% if ( cardtype($payinfo) eq 'American Express card' ) { +% $cgi->param('paycvv') =~ /^(\d{4})$/ +% or eidiot "CVV2 (CID) for American Express cards is four digits."; +% $paycvv = $1; +% } else { +% $cgi->param('paycvv') =~ /^(\d{3})$/ +% or eidiot "CVV2 (CVC2/CID) is three digits."; +% $paycvv = $1; +% } +% } +% } +% +%} else { +% die "unknown payby $payby"; +%} +% +%my $error = $cust_main->realtime_bop( $payby2bop{$payby}, $amount, +% 'quiet' => 1, +% 'payinfo' => $payinfo, +% 'paydate' => "$year-$month-01", +% 'payname' => $payname, +% 'paybatch' => $paybatch, +% 'paycvv' => $paycvv, +% map { $_ => $cgi->param($_) } @{$payby2fields{$payby}} +%); +%eidiot($error) if $error; +% +%$cust_main->apply_payments; +% +%if ( $cgi->param('save') ) { +% my $new = new FS::cust_main { $cust_main->hash }; +% if ( $payby eq 'CARD' ) { +% $new->set( 'payby' => ( $cgi->param('auto') ? 'CARD' : 'DCRD' ) ); +% } elsif ( $payby eq 'CHEK' ) { +% $new->set( 'payby' => ( $cgi->param('auto') ? 'CHEK' : 'DCHK' ) ); +% } else { +% die "unknown payby $payby"; +% } +% $new->set( 'payinfo' => $payinfo ); +% $new->set( 'paydate' => "$year-$month-01" ); +% $new->set( 'payname' => $payname ); +% +% #false laziness w/FS:;cust_main::realtime_bop - check both to make sure +% # working correctly +% my $conf = new FS::Conf; +% if ( $payby eq 'CARD' && +% grep { $_ eq cardtype($payinfo) } $conf->config('cvv-save') ) { +% $new->set( 'paycvv' => $paycvv ); +% } else { +% $new->set( 'paycvv' => ''); +% } +% +% $new->set( $_ => $cgi->param($_) ) foreach @{$payby2fields{$payby}}; +% +% my $error = $new->replace($cust_main); +% eidiot "payment processed successfully, but error saving info: $error" +% if $error; +% $cust_main = $new; +%} +% +%#success! +% +% + +<% include( '/elements/header.html', ucfirst($type{$payby}). ' processing successful', include('/elements/menubar.html', 'Main menu' => popurl(3), "View this customer (#$custnum)" => @@ -143,6 +144,6 @@ if ( $cgi->param('save') ) { ) %> -<%= include( '/elements/small_custview.html', $cust_main ) %> +<% include( '/elements/small_custview.html', $cust_main ) %> -- cgit v1.2.1 From 6af1b1bfa25e5ececef5e0dcd38b55917121cee2 Mon Sep 17 00:00:00 2001 From: jeff Date: Sat, 26 Aug 2006 23:15:14 +0000 Subject: batch refactor continued --- httemplate/misc/process/payment.cgi | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) (limited to 'httemplate/misc/process') diff --git a/httemplate/misc/process/payment.cgi b/httemplate/misc/process/payment.cgi index 188d1dd04..e1fade4e2 100644 --- a/httemplate/misc/process/payment.cgi +++ b/httemplate/misc/process/payment.cgi @@ -1,5 +1,4 @@ % -% %#some false laziness w/MyAccount::process_payment % %$cgi->param('custnum') =~ /^(\d+)$/ @@ -25,10 +24,6 @@ %$cgi->param('payby') =~ /^(CARD|CHEK)$/ % or die "illegal payby ". $cgi->param('payby'); %my $payby = $1; -%my %payby2bop = ( -% 'CARD' => 'CC', -% 'CHEK' => 'ECHECK', -%); %my %payby2fields = ( % 'CARD' => [ qw( address1 address2 city state zip ) ], % 'CHEK' => [ qw( ss ) ], @@ -87,7 +82,7 @@ % die "unknown payby $payby"; %} % -%my $error = $cust_main->realtime_bop( $payby2bop{$payby}, $amount, +%my $error = $cust_main->realtime_bop( $FS::payby::payby2bop->{$payby}, $amount, % 'quiet' => 1, % 'payinfo' => $payinfo, % 'paydate' => "$year-$month-01", -- cgit v1.2.1 From e1be514d16011ba193157c27ed626c4e31e7ecc6 Mon Sep 17 00:00:00 2001 From: jeff Date: Sun, 27 Aug 2006 21:50:18 +0000 Subject: fix payby2bop brokenness --- httemplate/misc/process/payment.cgi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'httemplate/misc/process') diff --git a/httemplate/misc/process/payment.cgi b/httemplate/misc/process/payment.cgi index e1fade4e2..027cd502a 100644 --- a/httemplate/misc/process/payment.cgi +++ b/httemplate/misc/process/payment.cgi @@ -82,7 +82,7 @@ % die "unknown payby $payby"; %} % -%my $error = $cust_main->realtime_bop( $FS::payby::payby2bop->{$payby}, $amount, +%my $error = $cust_main->realtime_bop( $FS::payby::payby2bop{$payby}, $amount, % 'quiet' => 1, % 'payinfo' => $payinfo, % 'paydate' => "$year-$month-01", -- cgit v1.2.1 From ce98306f315a53f2ac4b8c010341c4f84bf728a8 Mon Sep 17 00:00:00 2001 From: jeff Date: Thu, 19 Oct 2006 14:29:27 +0000 Subject: suspension and cancellation reasons --- httemplate/misc/process/cancel_pkg.html | 94 +++++++++++++++++++++++++++++++++ httemplate/misc/process/expire_pkg.cgi | 26 --------- 2 files changed, 94 insertions(+), 26 deletions(-) create mode 100755 httemplate/misc/process/cancel_pkg.html delete mode 100755 httemplate/misc/process/expire_pkg.cgi (limited to 'httemplate/misc/process') diff --git a/httemplate/misc/process/cancel_pkg.html b/httemplate/misc/process/cancel_pkg.html new file mode 100755 index 000000000..b53809854 --- /dev/null +++ b/httemplate/misc/process/cancel_pkg.html @@ -0,0 +1,94 @@ +% +% +%#untaint method +%my $method = $cgi->param('method'); +%$method =~ /^(cancel|expire|suspend)$/ || die "Illegal method"; +%$method = $1; + +%#untaint pkgnum +%my $pkgnum = $cgi->param('pkgnum'); +%$pkgnum =~ /^(\d+)$/ || die "Illegal pkgnum"; +%$pkgnum = $1; +% +%#untaint reasonnum +%my $reasonnum = $cgi->param('reasonnum'); +%$reasonnum =~ /^(-?\d+)$/ || die "Illegal reasonnum"; +%$reasonnum = $1; +% +%my $date = time; +%if ($method eq 'expire'){ +% #untaint date +% $date = $cgi->param('date'); +% str2time($cgi->param('date')) =~ /^(\d+)$/ || die "Illegal date"; +% $date = $1; +%} +% +%my $cust_pkg = qsearchs( 'cust_pkg', {'pkgnum'=>$pkgnum} ); +% +% +%my $oldAutoCommit = $FS::UID::AutoCommit; +%local $FS::UID::AutoCommit = 0; +%my $dbh = dbh; +% +%my $otaker = $FS::CurrentUser::CurrentUser->name; +%$otaker = $FS::CurrentUser::CurrentUser->username +% if ($otaker eq "User, Legacy"); +% +%my $error; +%if ($reasonnum == -1) { +% #untaint new reason +% my $nr = $cgi->param('newreasonnum'); +% $nr =~ /^([\w\s]+)$/ || die "Illegal new reason"; +% $nr = $1; +% +% #untaint new reason type +% my $nrtype = $cgi->param('newreasonnumT'); +% $nrtype =~ /^(\d+)$/ || die "Illegal new reason type"; +% $nrtype = $1; +% +% my $reason = new FS::reason({ 'reason_type' => $nrtype, +% 'reason' => $nr, +% }); +% $error = $reason->insert; +% $reasonnum = $reason->reasonnum +% unless $error; +%} +% +%unless ($error) { +% my $cust_pkg_reason = new FS::cust_pkg_reason({ 'pkgnum' => $pkgnum, +% 'reasonnum' => $reasonnum, +% 'otaker' => $otaker, +% 'date' => $date, +% }); +% $error = $cust_pkg_reason->insert; +%} +% +%unless ($error) { +% if ($method eq 'expire'){ +% my %hash = $cust_pkg->hash; +% $hash{'expire'}=$date; +% my $new = new FS::cust_pkg (\%hash); +% $error = $new->replace($cust_pkg); +% }else{ +% $error = $cust_pkg->$method +% } +%} +% +%if ($error) { +% $cgi->param('error', $error); +% $dbh->rollback if $oldAutoCommit; +% print $cgi->redirect(popurl(2). "cancel_pkg.html?". $cgi->query_string ); +%} +% +%$dbh->commit or die $dbh->errstr if $oldAutoCommit; +% +% my %past = ( 'cancel' => 'cancelled', +% 'expire' => 'expired', +% 'suspend' => 'suspended', +% ); +<% header("Package $past{$method}") %> + + + diff --git a/httemplate/misc/process/expire_pkg.cgi b/httemplate/misc/process/expire_pkg.cgi deleted file mode 100755 index d1963e2f5..000000000 --- a/httemplate/misc/process/expire_pkg.cgi +++ /dev/null @@ -1,26 +0,0 @@ -% -% -%#untaint date & pkgnum -% -%my $date; -%if ( $cgi->param('date') ) { -% str2time($cgi->param('date')) =~ /^(\d+)$/ or die "Illegal date"; -% $date=$1; -%} else { -% $date=''; -%} -% -%$cgi->param('pkgnum') =~ /^(\d+)$/ or die "Illegal pkgnum"; -%my $pkgnum = $1; -% -%my $cust_pkg = qsearchs('cust_pkg',{'pkgnum'=>$pkgnum}); -%my %hash = $cust_pkg->hash; -%$hash{expire}=$date; -%my $new = new FS::cust_pkg ( \%hash ); -%my $error = $new->replace($cust_pkg); -%&eidiot($error) if $error; -% -%print $cgi->redirect(popurl(3). "view/cust_main.cgi?".$cust_pkg->getfield('custnum')); -% -% - -- cgit v1.2.1 From 9811b8ce65909a293810ddbcd8c9b5ca963fba01 Mon Sep 17 00:00:00 2001 From: jeff Date: Mon, 23 Oct 2006 04:21:04 +0000 Subject: events should attach reasons --- httemplate/misc/process/cancel_pkg.html | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) (limited to 'httemplate/misc/process') diff --git a/httemplate/misc/process/cancel_pkg.html b/httemplate/misc/process/cancel_pkg.html index b53809854..01433a3dc 100755 --- a/httemplate/misc/process/cancel_pkg.html +++ b/httemplate/misc/process/cancel_pkg.html @@ -55,22 +55,13 @@ %} % %unless ($error) { -% my $cust_pkg_reason = new FS::cust_pkg_reason({ 'pkgnum' => $pkgnum, -% 'reasonnum' => $reasonnum, -% 'otaker' => $otaker, -% 'date' => $date, -% }); -% $error = $cust_pkg_reason->insert; -%} -% -%unless ($error) { % if ($method eq 'expire'){ % my %hash = $cust_pkg->hash; % $hash{'expire'}=$date; % my $new = new FS::cust_pkg (\%hash); -% $error = $new->replace($cust_pkg); +% $error = $new->replace($cust_pkg, 'reason' => $reasonnum); % }else{ -% $error = $cust_pkg->$method +% $error = $cust_pkg->$method( 'reason' => $reasonnum ); % } %} % -- cgit v1.2.1 From d5aaf28009ff269858f6b0532541da55b4968e6e Mon Sep 17 00:00:00 2001 From: ivan Date: Mon, 23 Oct 2006 08:47:07 +0000 Subject: better error message if you don't enter a reason. FS::reason::check can untaint its data, and will allow punctuation in reasons --- httemplate/misc/process/cancel_pkg.html | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) (limited to 'httemplate/misc/process') diff --git a/httemplate/misc/process/cancel_pkg.html b/httemplate/misc/process/cancel_pkg.html index 01433a3dc..dfe1317f4 100755 --- a/httemplate/misc/process/cancel_pkg.html +++ b/httemplate/misc/process/cancel_pkg.html @@ -34,22 +34,16 @@ %$otaker = $FS::CurrentUser::CurrentUser->username % if ($otaker eq "User, Legacy"); % -%my $error; +%my $error = ''; %if ($reasonnum == -1) { -% #untaint new reason -% my $nr = $cgi->param('newreasonnum'); -% $nr =~ /^([\w\s]+)$/ || die "Illegal new reason"; -% $nr = $1; % -% #untaint new reason type -% my $nrtype = $cgi->param('newreasonnumT'); -% $nrtype =~ /^(\d+)$/ || die "Illegal new reason type"; -% $nrtype = $1; +% $error = 'Enter a new reason (or select an existing oen)' +% unless $cgi->param('newreasonnum') !~ /^\s*$/; % -% my $reason = new FS::reason({ 'reason_type' => $nrtype, -% 'reason' => $nr, +% my $reason = new FS::reason({ 'reason_type' => $cgi->param('newreasonnumT'), +% 'reason' => $cgi->param('newreasonnum'), % }); -% $error = $reason->insert; +% $error ||= $reason->insert; % $reasonnum = $reason->reasonnum % unless $error; %} -- cgit v1.2.1 From dbb388836b7951a3db49deda05a1ff9ba5125c17 Mon Sep 17 00:00:00 2001 From: jeff Date: Thu, 30 Nov 2006 02:27:57 +0000 Subject: prepaid download/upload tracking --- httemplate/misc/process/recharge_svc.html | 46 +++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100755 httemplate/misc/process/recharge_svc.html (limited to 'httemplate/misc/process') diff --git a/httemplate/misc/process/recharge_svc.html b/httemplate/misc/process/recharge_svc.html new file mode 100755 index 000000000..ae526689e --- /dev/null +++ b/httemplate/misc/process/recharge_svc.html @@ -0,0 +1,46 @@ +% +% +%#untaint svcnum +%my $svcnum = $cgi->param('svcnum'); +%$svcnum =~ /^(\d+)$/ || die "Illegal svcnum"; +%$svcnum = $1; +% +%#untaint prepaid +%my $prepaid = $cgi->param('prepaid'); +%$prepaid =~ /^(\w*)$/; +%$prepaid = $1; +% +%my $error = ''; +%my $svc_acct = qsearchs( 'svc_acct', {'svcnum'=>$svcnum} ); +%$error = "Can't recharge service $svcnum. " unless $svc_acct; +% +%my $cust_main = $svc_acct->cust_svc->cust_pkg->cust_main; +% +%my $oldAutoCommit = $FS::UID::AutoCommit; +%local $FS::UID::AutoCommit = 0; +%my $dbh = dbh; +% +% +%unless ($error) { +% +%my ($amount, $seconds, $up, $down) = (0, 0, 0, 0); +%$error = $cust_main->get_prepay($prepaid, \$amount, \$seconds, \$up, \$down) +% || $svc_acct->increment_seconds($seconds) +% || $svc_acct->increment_upbytes($up) +% || $svc_acct->increment_downbytes($down) +% || $svc_acct->increment_totalbytes($up + $down) +% || $cust_main->insert_cust_pay_prepay( $amount, $prepaid ); +%} +% +%if ($error) { +% $cgi->param('error', $error); +% $dbh->rollback if $oldAutoCommit; +% print $cgi->redirect(popurl(2). "recharge_svc.html?". $cgi->query_string ); +%} +% +<% header("Package recharged") %> + + + -- cgit v1.2.1 From 6194551336a925ae5455cede68a7f73660b06bb6 Mon Sep 17 00:00:00 2001 From: jeff Date: Thu, 7 Dec 2006 02:40:32 +0000 Subject: retouch bandwidth countdown --- httemplate/misc/process/recharge_svc.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'httemplate/misc/process') diff --git a/httemplate/misc/process/recharge_svc.html b/httemplate/misc/process/recharge_svc.html index ae526689e..d9fa2070e 100755 --- a/httemplate/misc/process/recharge_svc.html +++ b/httemplate/misc/process/recharge_svc.html @@ -23,12 +23,12 @@ % %unless ($error) { % -%my ($amount, $seconds, $up, $down) = (0, 0, 0, 0); -%$error = $cust_main->get_prepay($prepaid, \$amount, \$seconds, \$up, \$down) +%my ($amount, $seconds, $up, $down, $total) = (0, 0, 0, 0, 0); +%$error = $cust_main->get_prepay($prepaid, \$amount, \$seconds, \$up, \$down, \$total) % || $svc_acct->increment_seconds($seconds) % || $svc_acct->increment_upbytes($up) % || $svc_acct->increment_downbytes($down) -% || $svc_acct->increment_totalbytes($up + $down) +% || $svc_acct->increment_totalbytes($total) % || $cust_main->insert_cust_pay_prepay( $amount, $prepaid ); %} % -- cgit v1.2.1 From dcdf657e77ec7b46dc69e19a849a9c133123db7c Mon Sep 17 00:00:00 2001 From: ivan Date: Thu, 14 Dec 2006 06:00:46 +0000 Subject: encryption fixes from huntsberg & jayce --- httemplate/misc/process/payment.cgi | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'httemplate/misc/process') diff --git a/httemplate/misc/process/payment.cgi b/httemplate/misc/process/payment.cgi index 027cd502a..d591db1e8 100644 --- a/httemplate/misc/process/payment.cgi +++ b/httemplate/misc/process/payment.cgi @@ -44,17 +44,24 @@ %my $paycvv = ''; %if ( $payby eq 'CHEK' ) { % -% $cgi->param('payinfo1') =~ /^(\d+)$/ -% or eidiot "illegal account number ". $cgi->param('payinfo1'); -% my $payinfo1 = $1; -% $cgi->param('payinfo2') =~ /^(\d+)$/ -% or eidiot "illegal ABA/routing number ". $cgi->param('payinfo2'); -% my $payinfo2 = $1; -% $payinfo = $payinfo1. '@'. $payinfo2; +% if ($cgi->param('payinfo1') =~ /xx/ || $cgi->param('payinfo2') =~ /xx/ ) { +% $payinfo = $cust_main->payinfo; +% } else { +% $cgi->param('payinfo1') =~ /^(\d+)$/ +% or eidiot "illegal account number ". $cgi->param('payinfo1'); +% my $payinfo1 = $1; +% $cgi->param('payinfo2') =~ /^(\d+)$/ +% or eidiot "illegal ABA/routing number ". $cgi->param('payinfo2'); +% my $payinfo2 = $1; +% $payinfo = $payinfo1. '@'. $payinfo2; +% } % %} elsif ( $payby eq 'CARD' ) { % % $payinfo = $cgi->param('payinfo'); +% if ($payinfo eq $cust_main->paymask) { +% $payinfo = $cust_main->payinfo; +% } % $payinfo =~ s/\D//g; % $payinfo =~ /^(\d{13,16})$/ % or eidiot gettext('invalid_card'); # . ": ". $self->payinfo; -- cgit v1.2.1 From b5a848358ad73e0d74eb2753123eecc6afabf730 Mon Sep 17 00:00:00 2001 From: ivan Date: Fri, 29 Dec 2006 08:35:51 +0000 Subject: just in case it gets capitalized --- httemplate/misc/process/payment.cgi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'httemplate/misc/process') diff --git a/httemplate/misc/process/payment.cgi b/httemplate/misc/process/payment.cgi index d591db1e8..c5638c585 100644 --- a/httemplate/misc/process/payment.cgi +++ b/httemplate/misc/process/payment.cgi @@ -44,7 +44,7 @@ %my $paycvv = ''; %if ( $payby eq 'CHEK' ) { % -% if ($cgi->param('payinfo1') =~ /xx/ || $cgi->param('payinfo2') =~ /xx/ ) { +% if ($cgi->param('payinfo1') =~ /xx/i || $cgi->param('payinfo2') =~ /xx/i ) { % $payinfo = $cust_main->payinfo; % } else { % $cgi->param('payinfo1') =~ /^(\d+)$/ -- cgit v1.2.1 From be10e7a1421c13eec4b1bb3676eaf5c84344e601 Mon Sep 17 00:00:00 2001 From: jeff Date: Wed, 17 Jan 2007 23:27:18 +0000 Subject: link to customer from manual payment screen (ticket 1414) --- httemplate/misc/process/payment.cgi | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'httemplate/misc/process') diff --git a/httemplate/misc/process/payment.cgi b/httemplate/misc/process/payment.cgi index c5638c585..6089d27c0 100644 --- a/httemplate/misc/process/payment.cgi +++ b/httemplate/misc/process/payment.cgi @@ -138,14 +138,10 @@ % <% include( '/elements/header.html', ucfirst($type{$payby}). ' processing successful', - include('/elements/menubar.html', - 'Main menu' => popurl(3), - "View this customer (#$custnum)" => - popurl(3). "view/cust_main.cgi?$custnum", - ), + include('/elements/menubar.html'), ) %> -<% include( '/elements/small_custview.html', $cust_main ) %> +<% include( '/elements/small_custview.html', $cust_main, '', '', popurl(3). "view/cust_main.cgi" ) %> -- cgit v1.2.1 From 96192f1c88de6f54c856cac650bd2e1338e64fbc Mon Sep 17 00:00:00 2001 From: ivan Date: Mon, 29 Jan 2007 21:11:49 +0000 Subject: correct a typo, and <%init> helps alot --- httemplate/misc/process/cancel_pkg.html | 143 ++++++++++++++++---------------- 1 file changed, 71 insertions(+), 72 deletions(-) (limited to 'httemplate/misc/process') diff --git a/httemplate/misc/process/cancel_pkg.html b/httemplate/misc/process/cancel_pkg.html index dfe1317f4..cd533be10 100755 --- a/httemplate/misc/process/cancel_pkg.html +++ b/httemplate/misc/process/cancel_pkg.html @@ -1,76 +1,75 @@ -% -% -%#untaint method -%my $method = $cgi->param('method'); -%$method =~ /^(cancel|expire|suspend)$/ || die "Illegal method"; -%$method = $1; +<%init> +#untaint method +my $method = $cgi->param('method'); +$method =~ /^(cancel|expire|suspend)$/ || die "Illegal method"; +$method = $1; -%#untaint pkgnum -%my $pkgnum = $cgi->param('pkgnum'); -%$pkgnum =~ /^(\d+)$/ || die "Illegal pkgnum"; -%$pkgnum = $1; -% -%#untaint reasonnum -%my $reasonnum = $cgi->param('reasonnum'); -%$reasonnum =~ /^(-?\d+)$/ || die "Illegal reasonnum"; -%$reasonnum = $1; -% -%my $date = time; -%if ($method eq 'expire'){ -% #untaint date -% $date = $cgi->param('date'); -% str2time($cgi->param('date')) =~ /^(\d+)$/ || die "Illegal date"; -% $date = $1; -%} -% -%my $cust_pkg = qsearchs( 'cust_pkg', {'pkgnum'=>$pkgnum} ); -% -% -%my $oldAutoCommit = $FS::UID::AutoCommit; -%local $FS::UID::AutoCommit = 0; -%my $dbh = dbh; -% -%my $otaker = $FS::CurrentUser::CurrentUser->name; -%$otaker = $FS::CurrentUser::CurrentUser->username -% if ($otaker eq "User, Legacy"); -% -%my $error = ''; -%if ($reasonnum == -1) { -% -% $error = 'Enter a new reason (or select an existing oen)' -% unless $cgi->param('newreasonnum') !~ /^\s*$/; -% -% my $reason = new FS::reason({ 'reason_type' => $cgi->param('newreasonnumT'), -% 'reason' => $cgi->param('newreasonnum'), -% }); -% $error ||= $reason->insert; -% $reasonnum = $reason->reasonnum -% unless $error; -%} -% -%unless ($error) { -% if ($method eq 'expire'){ -% my %hash = $cust_pkg->hash; -% $hash{'expire'}=$date; -% my $new = new FS::cust_pkg (\%hash); -% $error = $new->replace($cust_pkg, 'reason' => $reasonnum); -% }else{ -% $error = $cust_pkg->$method( 'reason' => $reasonnum ); -% } -%} -% -%if ($error) { -% $cgi->param('error', $error); -% $dbh->rollback if $oldAutoCommit; -% print $cgi->redirect(popurl(2). "cancel_pkg.html?". $cgi->query_string ); -%} -% -%$dbh->commit or die $dbh->errstr if $oldAutoCommit; -% -% my %past = ( 'cancel' => 'cancelled', -% 'expire' => 'expired', -% 'suspend' => 'suspended', -% ); +#untaint pkgnum +my $pkgnum = $cgi->param('pkgnum'); +$pkgnum =~ /^(\d+)$/ || die "Illegal pkgnum"; +$pkgnum = $1; + +#untaint reasonnum +my $reasonnum = $cgi->param('reasonnum'); +$reasonnum =~ /^(-?\d+)$/ || die "Illegal reasonnum"; +$reasonnum = $1; + +my $date = time; +if ($method eq 'expire'){ + #untaint date + $date = $cgi->param('date'); + str2time($cgi->param('date')) =~ /^(\d+)$/ || die "Illegal date"; + $date = $1; +} + +my $cust_pkg = qsearchs( 'cust_pkg', {'pkgnum'=>$pkgnum} ); + +my $oldAutoCommit = $FS::UID::AutoCommit; +local $FS::UID::AutoCommit = 0; +my $dbh = dbh; + +my $otaker = $FS::CurrentUser::CurrentUser->name; +$otaker = $FS::CurrentUser::CurrentUser->username + if ($otaker eq "User, Legacy"); + +my $error = ''; +if ($reasonnum == -1) { + + $error = 'Enter a new reason (or select an existing one)' + unless $cgi->param('newreasonnum') !~ /^\s*$/; + + my $reason = new FS::reason({ 'reason_type' => $cgi->param('newreasonnumT'), + 'reason' => $cgi->param('newreasonnum'), + }); + $error ||= $reason->insert; + $reasonnum = $reason->reasonnum + unless $error; +} + +unless ($error) { + if ($method eq 'expire'){ + my %hash = $cust_pkg->hash; + $hash{'expire'}=$date; + my $new = new FS::cust_pkg (\%hash); + $error = $new->replace($cust_pkg, 'reason' => $reasonnum); + }else{ + $error = $cust_pkg->$method( 'reason' => $reasonnum ); + } +} + +if ($error) { + $cgi->param('error', $error); + $dbh->rollback if $oldAutoCommit; + print $cgi->redirect(popurl(2). "cancel_pkg.html?". $cgi->query_string ); +} + +$dbh->commit or die $dbh->errstr if $oldAutoCommit; + + my %past = ( 'cancel' => 'cancelled', + 'expire' => 'expired', + 'suspend' => 'suspended', + ); + <% header("Package $past{$method}") %>