charge for printing usage
authorIvan Kohler <ivan@freeside.biz>
Wed, 14 Jun 2017 00:00:38 +0000 (17:00 -0700)
committerIvan Kohler <ivan@freeside.biz>
Wed, 14 Jun 2017 00:00:38 +0000 (17:00 -0700)
FS/FS/part_pkg/fsinc_print.pm [new file with mode: 0644]

diff --git a/FS/FS/part_pkg/fsinc_print.pm b/FS/FS/part_pkg/fsinc_print.pm
new file mode 100644 (file)
index 0000000..8f4cfb1
--- /dev/null
@@ -0,0 +1,47 @@
+package FS::part_pkg::fsinc_print;
+
+use strict;
+use vars qw( %info );
+use FS::Record;
+
+%info = (
+  'name'      => 'Usage from Freeside Inc. web services',
+  'shortname' => 'Freeside web services',
+  'weight'    => '99',
+);
+
+sub price_info {
+  my $self = shift;
+  return 'printing usage';
+}
+
+sub base_setup { 0; }
+sub calc_setup { 0; }
+
+sub base_recur { 0; }
+sub calc_recur {
+  #my $self = shift;
+  #my($self, $cust_pkg, $sdate, $details, $param ) = @_;
+  my( $self, $cust_pkg ) = @_;
+
+  my $custnum = $cust_pkg->custnum;
+
+  #false laziness w/ClientAPI/Freeside.pm and webservice_log.pm
+  my $color = 1.10;
+  my $page = 0.10;
+
+  FS::Record->scalar_sql("
+    UPDATE webservice_log SET status = 'done'
+      WHERE custnum = $custnum
+        AND method = 'print'
+        AND status IS NULL 
+    RETURNING SUM ( $color + quantity * $page )
+  ");
+
+}
+
+sub can_discount { 0; }
+
+sub is_free { 0; }
+
+1;