use strict;
use vars qw( @ISA @EXPORT_OK $DEBUG );
use Exporter;
-use FS::UID qw( dbh );
+use FS::UID qw( dbh driver_name );
use FS::Record qw(qsearch);
use FS::cust_main;
use FS::cust_pkg;
#we're at now now (and later).
my($time) = $^T;
+ my $integer = driver_name =~ /^mysql/ ? 'SIGNED' : 'INTEGER';
+
# select * from cust_pkg where
my $where_pkg = <<"END";
where ( cancel is null or cancel = 0 )
0 < ( select count(*) from part_pkg
where cust_pkg.pkgpart = part_pkg.pkgpart
and part_pkg.plan = 'flat_delayed'
- and 0 < ( select count (*) from part_pkg_option
+ and 0 < ( select count(*) from part_pkg_option
where part_pkg.pkgpart = part_pkg_option.pkgpart
and part_pkg_option.optionname = 'recur_notify'
- and part_pkg_option.optionvalue > 0
- and 0 <= $time
- + cast(part_pkg_option.optionvalue as integer)
- * 86400
- - cust_pkg.bill
+ and CAST( part_pkg_option.optionvalue AS INTEGER ) > 0
+ and 0 <= ( $time
+ + CAST( part_pkg_option.optionvalue AS $integer )
+ * 86400
+ - cust_pkg.bill
+ )
and ( cust_pkg.expire is null
- or cust_pkg.expire > $time
- + cast(part_pkg_option.optionvalue as integer)
- * 86400
+ or cust_pkg.expire > ( $time
+ + CAST( part_pkg_option.optionvalue AS $integer )
+ * 86400
+ )
+END
+
+#/* and ( cust_pkg.adjourn is null
+# or cust_pkg.adjourn > $time
+#-- Should notify suspended ones + cast(part_pkg_option.optionvalue as $integer)
+# * 86400
+#*/
+
+ $where_pkg .= <<"END";
)
)
)
0 = ( select count(*) from cust_pkg_option
where cust_pkg.pkgnum = cust_pkg_option.pkgnum
and cust_pkg_option.optionname = 'impending_recur_notification_sent'
- and cust_pkg_option.optionvalue = 1
+ and CAST( cust_pkg_option.optionvalue AS INTEGER ) = 1
)
END