summaryrefslogtreecommitdiff
path: root/httemplate/edit/svc_phone.cgi
blob: 13bbe82a1d7ea1231def442c58e6bde06ceb2659 (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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
<& elements/svc_Common.html,
     'table'            => 'svc_phone',
     'fields'           => [],
     'begin_callback'   => $begin_callback,
     'svc_new_callback' => sub {
       my( $cgi, $svc_x, $part_svc, $cust_pkg, $fields, $opt ) = @_;
       $svc_x->locationnum($cust_pkg->locationnum) if $cust_pkg;
     },
     'svc_edit_callback' => sub {
       my( $cgi, $svc_x, $part_svc, $cust_pkg, $fields, $opt) = @_;
       my $conf = new FS::Conf;
       $svc_x->sip_password('*HIDDEN*') unless $conf->exists('showpasswords');
     },
&>
<%init>

my $begin_callback = sub {
  my( $cgi, $fields, $opt ) = @_;

  my $bulk = $cgi->param('bulk') ? 1 : 0;

  my $right = $bulk ? 'Bulk provision customer service'
                    :      'Provision customer service';

  die "access denied"
    unless $FS::CurrentUser::CurrentUser->access_right($right);

  my $conf = new FS::Conf;

  push @$fields,
              'countrycode',
              { field    => 'phonenum',
                type     => 'select-did',
                label    => 'Phone number',
                multiple => $bulk,
              },
              { field     => 'sim_imsi',
                type      => 'text',
                size      => 15,
                maxlength => 15,
              };

  push @$fields, { field => 'domsvc',
                   type  => 'select-svc-domain',
                   label => 'Domain',
                 }
    if $conf->exists('svc_phone-domain');

  push @$fields, { field => 'pbxsvc',
                   type  => 'select-svc_pbx',
                   label => 'PBX',
                 };

  if ( $bulk ) {

    push @$fields, { field => 'bulk',
                     type  => 'hidden',
                     value => '1',
                   };

  } else {

    push @$fields,
              'sip_password',
              'pin',
              { field => 'phone_name',
                type  => 'text',
                maxlength => $conf->config('svc_phone-phone_name-max_length'),
              },
	      'forwarddst',
	      'email',

              { value   => 'E911 Information',
                type    => 'tablebreak-tr-title',
                colspan => 8,
              },
              { field => 'locationnum',
                type  => 'select-cust_location',
                label => 'E911 location',
                include_opt_callback => sub {
                  my $svc_phone = shift;
                  my $pkgnum =  $svc_phone->get('pkgnum')
                             || $cgi->param('pkgnum')
                             || $svc_phone->cust_svc->pkgnum; #hua?
                               #cross agent location exposure?  sheesh
                  my $cust_pkg = qsearchs('cust_pkg', {'pkgnum' => $pkgnum});
                  my $cust_main = $cust_pkg ? $cust_pkg->cust_main : '';
                  ( 'no_bold'   => 1,
                    'cust_pkg'  => $cust_pkg,
                    'cust_main' => $cust_main,
                  );
                },
              },
              { field => 'custnum', type=> 'hidden' }, #for new cust_locations
    ;
  }

  if ( $conf->exists('svc_phone-lnp') && !$bulk ) {
    push @$fields,
            { value   => 'Number Portability',
	      type    => 'tablebreak-tr-title',
				colspan => 8,
            },
	    {	field => 'lnp_status',
		type => 'select-lnp_status',
	    },
	    'lnp_reject_reason',
	    {	field => 'portable',
		type => 'checkbox',
	    },
            'lrn',
	    {	field => 'lnp_desired_due_date',
		type => 'input-date-field',
	    },
	    {	field => 'lnp_due_date',
		type => 'input-date-field',
		noinit => 1,
	    },
            'lnp_other_provider',
            'lnp_other_provider_account',
    ;
  }

};

</%init>