1 package FS::cust_main::Status;
4 use vars qw( $conf ); # $module ); #$DEBUG $me );
10 #$me = '[FS::cust_main::Status]';
12 install_callback FS::UID sub {
14 #$module = $conf->config('cust_main-status_module') || 'Classic';
19 FS::cust_main::Status - Status mixin for cust_main
25 These methods are available on FS::cust_main objects:
33 Returns an (ordered with Tie::IxHash) hash reference of possible status
39 #my $self = shift; #i guess i'm a class method
43 my $module = $conf->config('cust_main-status_module') || 'Classic';
45 if ( $module eq 'Classic' ) {
46 tie %statuscolors, 'Tie::IxHash',
47 'prospect' => '7e0079', #'000000', #black? naw, purple
48 'active' => '00CC00', #green
49 'ordered' => '009999', #teal? cyan?
50 'inactive' => '0000CC', #blue
51 'suspended' => 'FF9900', #yellow
52 'cancelled' => 'FF0000', #red
54 } elsif ( $module eq 'Recurring' ) {
55 tie %statuscolors, 'Tie::IxHash',
56 'prospect' => '7e0079', #'000000', #black? naw, purple
57 'active' => '00CC00', #green
58 'ordered' => '009999', #teal? cyan?
59 'suspended' => 'FF9900', #yellow
60 'cancelled' => 'FF0000', #red
61 'inactive' => '0000CC', #blue
64 die "unknown status module $module";
78 my $recurring_sql = FS::cust_pkg->recurring_sql;
79 my $cancelled_sql = FS::cust_pkg->cancelled_sql;
80 my $select_count_pkgs = $self->select_count_pkgs_sql;
83 0 < ( $select_count_pkgs )
84 AND 0 = ( $select_count_pkgs AND $recurring_sql
85 AND ( cust_pkg.cancel IS NULL OR cust_pkg.cancel = 0 )
87 AND 0 < ( $select_count_pkgs AND $cancelled_sql )
90 my $module = $conf->config('cust_main-status_module') || 'Classic';
92 if ( $module eq 'Classic' ) {
94 " AND 0 = ( $select_count_pkgs AND ". FS::cust_pkg->inactive_sql. " ) ";
95 #} elsif ( $module eq 'Recurring' ) {
97 # die "unknown status module $module";