Lingua::EN::Inflect::classical names=>0; #Categorys
use Tie::IxHash;
use URI;
- use URI::Escape;
+ use URI::Escape 3.31;
use HTML::Entities;
use HTML::TreeBuilder;
use HTML::TableExtract qw(tree);
use Text::CSV_XS;
use Spreadsheet::WriteExcel;
use Spreadsheet::WriteExcel::Utility;
+ use Excel::Writer::XLSX;
+ use Excel::Writer::XLSX::Utility;
+
use Business::CreditCard 0.30; #for mask-aware cardtype()
use NetAddr::IP;
use Net::Ping;
use FS::contact_class;
use FS::part_svc_class;
use FS::ftp_target;
+ use FS::quotation;
+ use FS::quotation_pkg;
+ use FS::quotation_pkg_discount;
# Sammath Naur
if ( $FS::Mason::addl_handler_use ) {
RT::LoadConfig();
}
- # A hook supporting strange legacy ways people (well, SG) have added stuff on
-
- my @addl_comp_root = ();
- my $addl_comp_root_file = '%%%FREESIDE_CONF%%%/addl_comp_root.pl';
- if ( -e $addl_comp_root_file ) {
- warn "reading $addl_comp_root_file\n";
- my $text = slurp( $addl_comp_root_file );
- my @addl = eval $text;
- if ( @addl && ! $@ ) {
- @addl_comp_root = @addl;
- } elsif ($@) {
- warn "error parsing $addl_comp_root_file: $@\n";
- }
- }
-
- my $fs_comp_root =
- scalar(@addl_comp_root)
- ? [
- [ 'freeside'=>'%%%FREESIDE_DOCUMENT_ROOT%%%' ],
- @addl_comp_root,
- ]
- : '%%%FREESIDE_DOCUMENT_ROOT%%%';
+ my $fs_comp_root = '%%%FREESIDE_DOCUMENT_ROOT%%%';
my %interp = (
request_class => $request_class,