summaryrefslogtreecommitdiff
path: root/FS/FS/part_pkg/prepaid.pm
blob: cff165a5d53d5d32d0ed1b21e6060426f17ca7ee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package FS::part_pkg::prepaid;

use strict;
use vars qw(@ISA %info %recur_action);
use Tie::IxHash;
use FS::part_pkg::flat;

@ISA = qw(FS::part_pkg::flat);

tie %recur_action, 'Tie::IxHash',
  'suspend' => 'suspend',
  'cancel'  => 'cancel',
;

tie my %overlimit_action, 'Tie::IxHash',
  'overlimit' => 'Default overlimit processing',
  'cancel'    => 'Cancel',
;

%info = (
  'name' => 'Prepaid, flat rate',
  #'name' => 'Prepaid (no automatic recurring)', #maybe use it here too
  'shortname' => 'Prepaid, no automatic cycle',
  'fields' => {
    'setup_fee'   =>  { 'name' => 'One-time setup fee for this package',
                        'default' => 0,
                      },
    'recur_fee'   =>  { 'name' => 'Initial and recharge fee for this package',
                        'default' => 0,
                      },
    'recur_action' => { 'name' => 'Action to take upon reaching end of prepaid preiod',
                        'type' => 'select',
			'select_options' => \%recur_action,
	              },
    %FS::part_pkg::flat::usage_fields,
    'overlimit_action' => { 'name' => 'Action to take upon reaching a usage limit.',
                            'type' => 'select',
                            'select_options' => \%overlimit_action,
	              },
    #XXX if you set overlimit_action to 'cancel', should also have the ability
    # to select a reason
  },
  'fieldorder' => [ qw( setup_fee recur_fee recur_action ),
                    @FS::part_pkg::flat::usage_fieldorder, 'overlimit_action',
                  ],
  'weight' => 25,
);

sub is_prepaid {
  1;
}

1;