1 package FS::cust_main::Status;
4 use vars qw( $conf ); # $module ); #$DEBUG $me );
10 use FS::UID qw( getotaker dbh driver_name );
13 #$me = '[FS::cust_main::Status]';
15 install_callback FS::UID sub {
17 #$module = $conf->config('cust_main-status_module') || 'Classic';
22 FS::cust_main::Status - Status mixin for cust_main
28 These methods are available on FS::cust_main objects:
36 Returns an (ordered with Tie::IxHash) hash reference of possible status
42 #my $self = shift; #i guess i'm a class method
46 my $module = $conf->config('cust_main-status_module') || 'Classic';
48 if ( $module eq 'Classic' ) {
49 tie %statuscolors, 'Tie::IxHash',
50 'prospect' => '7e0079', #'000000', #black? naw, purple
51 'active' => '00CC00', #green
52 'ordered' => '009999', #teal? cyan?
53 'inactive' => '0000CC', #blue
54 'suspended' => 'FF9900', #yellow
55 'cancelled' => 'FF0000', #red
57 } elsif ( $module eq 'Recurring' ) {
58 tie %statuscolors, 'Tie::IxHash',
59 'prospect' => '7e0079', #'000000', #black? naw, purple
60 'active' => '00CC00', #green
61 'ordered' => '009999', #teal? cyan?
62 'suspended' => 'FF9900', #yellow
63 'cancelled' => 'FF0000', #red
64 'inactive' => '0000CC', #blue
67 die "unknown status module $module";
81 my $recurring_sql = FS::cust_pkg->recurring_sql;
82 my $cancelled_sql = FS::cust_pkg->cancelled_sql;
83 my $select_count_pkgs = $self->select_count_pkgs_sql;
86 0 < ( $select_count_pkgs )
87 AND 0 = ( $select_count_pkgs AND $recurring_sql
88 AND ( cust_pkg.cancel IS NULL OR cust_pkg.cancel = 0 )
90 AND 0 < ( $select_count_pkgs AND $cancelled_sql )
93 my $module = $conf->config('cust_main-status_module') || 'Classic';
95 if ( $module eq 'Classic' ) {
97 " AND 0 = ( $select_count_pkgs AND ". FS::cust_pkg->inactive_sql. " ) ";
98 #} elsif ( $module eq 'Recurring' ) {
100 # die "unknown status module $module";