add handling for texas tax exemption and warning that report might not make sense...
[freeside.git] / htetc / handler.pl
index d425c22..aeae380 100644 (file)
@@ -7,7 +7,7 @@
 package HTML::Mason;
 
 # Bring in main Mason package.
-use HTML::Mason 1.1;
+use HTML::Mason;
 
 # Bring in ApacheHandler, necessary for mod_perl integration.
 # Uncomment the second line (and comment the first) to use
@@ -35,37 +35,12 @@ use strict;
 #                                      data_dir=>'/usr/local/etc/freeside/masondata',
 #                                      out_mode=>'stream',
 #                                     );
-
-use vars qw($r);
-
-if ( %%%RT_ENABLED%%% ) {
- eval '
-   use lib ("/opt/rt3/local/lib", "/opt/rt3/lib");
-   use RT;
-   use vars qw($Nobody $SystemUser);
-   RT::LoadConfig();
- ';
- die $@ if $@;
-
-
-}
-
-
 my $ah = new HTML::Mason::ApacheHandler (
   #interp => $interp,
   #auto_send_headers => 0,
-  comp_root=> [
-                [ 'freeside' => '%%%FREESIDE_DOCUMENT_ROOT%%%'    ],
-                [ 'rt'       => '%%%FREESIDE_DOCUMENT_ROOT%%%/rt' ],
-              ],
+  comp_root=>'%%%FREESIDE_DOCUMENT_ROOT%%%',
   data_dir=>'/usr/local/etc/freeside/masondata',
   #out_mode=>'stream',
-
-  #RT
-  args_method => 'CGI',
-  default_escape_flags => 'h',
-  allow_globals => [qw(%session)],
-  #autoflush => 1,
 );
 
 # Activate the following if running httpd as root (the normal case).
@@ -75,7 +50,7 @@ my $ah = new HTML::Mason::ApacheHandler (
 
 sub handler
 {
-    ($r) = @_;
+    my ($r) = @_;
 
     # If you plan to intermix images in the same directory as
     # components, activate the following to prevent Mason from
@@ -87,8 +62,7 @@ sub handler
     { package HTML::Mason::Commands;
       use strict;
       use vars qw( $cgi $p );
-      use vars qw( %session );
-      use CGI 2.47 qw(-private_tempfiles);
+      use CGI 2.47;
       #use CGI::Carp qw(fatalsToBrowser);
       use Date::Format;
       use Date::Parse;
@@ -98,9 +72,12 @@ sub handler
       use IO::Handle;
       use IO::File;
       use Net::Whois::Raw qw(whois);
+      if ( $] < 5.006 ) {
+        eval "use Net::Whois::Raw 0.32 qw(whois)";
+        die $@ if $@;
+      }
       use Business::CreditCard;
       use String::Approx qw(amatch);
-      use Chart::LinesPoints;
       use HTML::Widgets::SelectLayers 0.03;
       use FS::UID qw(cgisuidsetup dbh getotaker datasrc driver_name);
       use FS::Record qw(qsearch qsearchs fields dbdef);
@@ -109,7 +86,6 @@ sub handler
                      small_custview myexit http_header);
       use FS::Msgcat qw(gettext geterror);
       use FS::Misc qw( send_email );
-      use FS::Report::Table::Monthly;
 
       use FS::agent;
       use FS::agent_type;
@@ -129,8 +105,6 @@ sub handler
       use FS::part_pkg;
       use FS::part_referral;
       use FS::part_svc;
-      use FS::part_svc_router;
-      use FS::part_virtual_field;
       use FS::pkg_svc;
       use FS::port;
       use FS::queue qw(joblisting);
@@ -138,114 +112,39 @@ sub handler
       use FS::session;
       use FS::svc_acct;
       use FS::svc_acct_pop qw(popselector);
+      use FS::svc_acct_sm;
       use FS::svc_domain;
       use FS::svc_forward;
       use FS::svc_www;
-      use FS::router;
-      use FS::addr_block;
-      use FS::svc_broadband;
-      use FS::svc_external;
       use FS::type_pkgs;
       use FS::part_export;
       use FS::part_export_option;
       use FS::export_svc;
       use FS::msgcat;
 
-      if ( %%%RT_ENABLED%%% ) {
-        eval '
-          use RT::Tickets;
-          use RT::Transactions;
-          use RT::Users;
-          use RT::CurrentUser;
-          use RT::Templates;
-          use RT::Queues;
-          use RT::ScripActions;
-          use RT::ScripConditions;
-          use RT::Scrips;
-          use RT::Groups;
-          use RT::GroupMembers;
-          use RT::CustomFields;
-          use RT::CustomFieldValues;
-          use RT::TicketCustomFieldValues;
-      
-          use RT::Interface::Web;
-          use MIME::Entity;
-          use Text::Wrapper;
-          use CGI::Cookie;
-          use Time::ParseDate;
-        ';
-        die $@ if $@;
-      }
-
       *CGI::redirect = sub {
         my( $self, $location ) = @_;
         use vars qw($m);
-
-        if ( defined(@DBIx::Profile::ISA) ) { #profiling redirect
-
-          my $page =
-            qq!<HTML><BODY>Redirect to <A HREF="$location">$location</A>!.
-            '<BR><BR><PRE>'.
-              ( UNIVERSAL::can(dbh, 'sprintProfile')
-                  ? encode_entities(dbh->sprintProfile())
-                  : 'DBIx::Profile missing sprintProfile method;'.
-                    'unpatched or too old?'                        ).
-            #"\n\n". &sprintAutoProfile().  '</PRE>'.
-            "\n\n".                         '</PRE>'.
-            '</BODY></HTML>';
-          dbh->{'private_profile'} = {};
-          return $page;
-
-        } else { #normal redirect
-
-          $m->redirect($location);
-          '';
-
-        }
-
+        #http://www.masonhq.com/docs/faq/#how_do_i_do_an_external_redirect
+        $m->clear_buffer;
+        # The next two lines are necessary to stop Apache from re-reading
+        # POSTed data.
+        $r->method('GET');
+        $r->headers_in->unset('Content-length');
+        $r->content_type('text/html');
+        #$r->err_header_out('Location' => $location);
+        $r->header_out('Location' => $location);
+         $r->header_out('Content-Type' => 'text/html');
+         $m->abort(302);
+
+        '';
       };
 
       $cgi = new CGI;
       &cgisuidsetup($cgi);
       #&cgisuidsetup($r);
       $p = popurl(2);
-
-      sub include {
-        use vars qw($m);
-        $m->scomp(@_);
-      }
-
-      sub redirect {
-        my( $location ) = @_;
-        use vars qw($m);
-        $m->clear_buffer;
-        #false laziness w/above
-        if ( defined(@DBIx::Profile::ISA) ) { #profiling redirect
-
-          $m->print(
-            qq!<HTML><BODY>Redirect to <A HREF="$location">$location</A>!.
-            '<BR><BR><PRE>'.
-              ( UNIVERSAL::can(dbh, 'sprintProfile')
-                  ? encode_entities(dbh->sprintProfile())
-                  : 'DBIx::Profile missing sprintProfile method;'.
-                    'unpatched or too old?'                        ).
-            #"\n\n". &sprintAutoProfile().  '</PRE>'.
-            "\n\n".                         '</PRE>'.
-            '</BODY></HTML>'
-          );
-          dbh->{'private_profile'} = {};
-
-          $m->abort(200);
-
-        } else { #normal redirect
-
-          $m->redirect($location);
-
-        }
-
-      }
-
-    } # end package HTML::Mason::Commands;
+    }
 
     $r->content_type('text/html');
     #eorar
@@ -257,43 +156,7 @@ sub handler
 
 #    $r->send_http_header;
 
-    #$ah->interp->remove_escape('h');
-
-    if ( $r->filename =~ /\/rt\// ) { #RT
-      #warn "processing RT file". $r->filename. "; escaping for RT\n";
-
-      # MasonX::Request::ExtendedCompRoot
-      #$ah->interp->comp_root( '/rt'. $ah->interp->comp_root() );
-
-      $ah->interp->set_escape( h => \&RT::Interface::Web::EscapeUTF8 );
-
-      local $SIG{__WARN__};
-      local $SIG{__DIE__};
-
-      RT::Init();
-
-      # We don't need to handle non-text items
-      return -1 if defined( $r->content_type ) && $r->content_type !~ m|^text/|io;
-
-    } else {
-      $ah->interp->set_escape( 'h' => sub { ${$_[0]}; } );
-    }
-
-    my %session;
-    my $status;
-    eval { $status = $ah->handle_request($r); };
-#!!
-#    if ( $@ ) {
-#      $RT::Logger->crit($@);
-#    }
-
-    undef %session;
-
-#!!
-#    if ($RT::Handle->TransactionDepth) {
-#      $RT::Handle->ForceRollback;
-#      $RT::Logger->crit("Transaction not committed. Usually indicates a software fault. Data loss may have occurred") ;
-#    }
+    my $status = $ah->handle_request($r);
 
     $status;
 }