package FS::part_pkg::usage_Mixin; use strict; use vars qw( %info ); use FS::UI::bytecount; # Field definitions for time and data usage, other than CDRs. %info = ( 'disabled' => 1, 'fields' => { 'seconds' => { 'name' => 'Time limit for this package', 'default' => '', 'check' => sub { shift =~ /^\d*$/ }, }, 'upbytes' => { 'name' => 'Upload limit for this package', 'default' => '', 'check' => sub { shift =~ /^\d*$/ }, 'format' => \&FS::UI::bytecount::display_bytecount, 'parse' => \&FS::UI::bytecount::parse_bytecount, }, 'downbytes' => { 'name' => 'Download limit for this package', 'default' => '', 'check' => sub { shift =~ /^\d*$/ }, 'format' => \&FS::UI::bytecount::display_bytecount, 'parse' => \&FS::UI::bytecount::parse_bytecount, }, 'totalbytes' => { 'name' => 'Transfer limit for this package', 'default' => '', 'check' => sub { shift =~ /^\d*$/ }, 'format' => \&FS::UI::bytecount::display_bytecount, 'parse' => \&FS::UI::bytecount::parse_bytecount, }, 'recharge_amount' => { 'name' => 'Cost of recharge for this package', 'default' => '', 'check' => sub { shift =~ /^\d*(\.\d{2})?$/ }, }, 'recharge_seconds' => { 'name' => 'Recharge time for this package', 'default' => '', 'check' => sub { shift =~ /^\d*$/ }, }, 'recharge_upbytes' => { 'name' => 'Recharge upload for this package', 'default' => '', 'check' => sub { shift =~ /^\d*$/ }, 'format' => \&FS::UI::bytecount::display_bytecount, 'parse' => \&FS::UI::bytecount::parse_bytecount, }, 'recharge_downbytes' => { 'name' => 'Recharge download for this package', 'default' => '', 'check' => sub { shift =~ /^\d*$/ }, 'format' => \&FS::UI::bytecount::display_bytecount, 'parse' => \&FS::UI::bytecount::parse_bytecount, }, 'recharge_totalbytes' => { 'name' => 'Recharge transfer for this package', 'default' => '', 'check' => sub { shift =~ /^\d*$/ }, 'format' => \&FS::UI::bytecount::display_bytecount, 'parse' => \&FS::UI::bytecount::parse_bytecount, }, 'usage_rollover' => { 'name' => 'Allow usage from previous period to roll '. ' over into current period', 'type' => 'checkbox', }, 'recharge_reset' => { 'name' => 'Reset usage to these values on manual '. 'package recharge', 'type' => 'checkbox', }, }, 'fieldorder' => [ qw( seconds upbytes downbytes totalbytes recharge_amount recharge_seconds recharge_upbytes recharge_downbytes recharge_totalbytes usage_rollover recharge_reset ) ], ); 1;