optimize CDR rating after timed rate perf regression, RT#15739
[freeside.git] / httemplate / edit / payment_gateway.html
1 <% include( 'elements/edit.html',
2             'table'          => 'payment_gateway',
3             'name_singular'  => 'Payment gateway',
4             'viewall_dir'    => 'browse',
5             'fields'         => $fields,
6             'field_callback' => $field_callback,
7             'labels'         => {
8                                   'gatewaynum'           => 'Gateway #',
9                                   'gateway_module'       => 'Gateway',
10                                   'gateway_username'     => 'Username',
11                                   'gateway_password'     => 'Password',
12                                   'gateway_action'       => 'Action',
13                                   'gateway_options'      => 'Options: (Name/Value pairs, one element per line)',
14                                   'gateway_callback_url' => 'Callback URL',
15                                 },
16           )
17 %>
18
19
20 <SCRIPT TYPE="text/javascript">
21   var gatewayNamespace = new Array;
22
23 % foreach my $module ( sort { lc($a) cmp lc ($b) } keys %modules ) {
24     gatewayNamespace.push('<% $modules{$module} %>')
25 % } 
26
27   // document.getElementById('gateway_namespace').value = gatewayNamespace[0];
28   function setNamespace(what) {
29     document.getElementById('gateway_namespace').value =
30       gatewayNamespace[what.selectedIndex];
31   }
32
33 </SCRIPT>
34
35 <%init>
36
37 die "access denied"
38   unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
39
40 my %modules =  (
41   '2CheckOut'             => 'Business::OnlinePayment',
42   'AuthorizeNet'          => 'Business::OnlinePayment',
43   'BankOfAmerica'         => 'Business::OnlinePayment', #deprecated?
44   'Beanstream'            => 'Business::OnlinePayment',
45   'Capstone'              => 'Business::OnlinePayment',
46   'Cardstream'            => 'Business::OnlinePayment',
47   'CashCow'               => 'Business::OnlinePayment',
48   'CyberSource'           => 'Business::OnlinePayment',
49   'eSec'                  => 'Business::OnlinePayment',
50   'eSelectPlus'           => 'Business::OnlinePayment',
51   'eWayShared'            => 'Business::OnlineThirdPartyPayment',
52   'ElavonVirtualMerchant' => 'Business::OnlinePayment',
53   'Exact'                 => 'Business::OnlinePayment',
54   'iAuthorizer'           => 'Business::OnlinePayment',
55   'Ingotz'                => 'Business::OnlinePayment',
56   'InternetSecure'        => 'Business::OnlinePayment',
57   'Interswitchng'         => 'Business::OnlineThirdPartyPayment',
58   'IPaymentTPG'           => 'Business::OnlinePayment',
59   'IPPay'                 => 'Business::OnlinePayment',
60   'Iridium'               => 'Business::OnlinePayment',
61   'Jettis'                => 'Business::OnlinePayment',
62   'Jety'                  => 'Business::OnlinePayment',
63   'LinkPoint'             => 'Business::OnlinePayment',
64   'MerchantCommerce'      => 'Business::OnlinePayment',
65   'Network1Financial'     => 'Business::OnlinePayment',
66   'OCV'                   => 'Business::OnlinePayment',
67   'OpenECHO'              => 'Business::OnlinePayment',
68   'PayConnect'            => 'Business::OnlinePayment',
69   'PayflowPro'            => 'Business::OnlinePayment',
70   'PaymenTech'            => 'Business::OnlinePayment',
71   'PaymentsGateway'       => 'Business::OnlinePayment',
72   'PayPal'                => 'Business::OnlinePayment',
73   #'PaySystems'            => 'Business::OnlinePayment',
74   'PlugnPay'              => 'Business::OnlinePayment',
75   'PPIPayMover'           => 'Business::OnlinePayment',
76   'Protx'                 => 'Business::OnlinePayment', #now SagePay
77   'PXPost'                => 'Business::OnlinePayment',
78   'SagePay'               => 'Business::OnlinePayment',
79   'SecureHostingUPG'      => 'Business::OnlinePayment',
80   'Skipjack'              => 'Business::OnlinePayment',
81   'StGeorge'              => 'Business::OnlinePayment',
82   'SurePay'               => 'Business::OnlinePayment',
83   'TCLink'                => 'Business::OnlinePayment',
84   'TransactionCentral'    => 'Business::OnlinePayment',
85   'TransFirsteLink'       => 'Business::OnlinePayment',
86   'Vanco'                 => 'Business::OnlinePayment',
87   'viaKLIX'               => 'Business::OnlinePayment',
88   'VirtualNet'            => 'Business::OnlinePayment',
89   'WesternACH'            => 'Business::OnlinePayment',
90   'WorldPay'              => 'Business::OnlinePayment',
91 ); 
92
93 my @actions = (
94                 'Normal Authorization',
95                 'Authorization Only',
96                 'Authorization Only,Post Authorization',
97               );
98
99 my $fields = [
100                {
101                  field               => 'gateway_namespace',
102                  type                => 'hidden',
103                  curr_value_callback => sub { my($cgi, $object, $fref) = @_;
104                                               $modules{$object->gateway_module}
105                                               || 'Business::OnlinePayment'
106                                             },
107                },
108                {
109                  field    => 'gateway_module',
110                  type     => 'select',
111                  options  => [ sort { lc($a) cmp lc ($b) } keys %modules ],
112                  onchange => 'setNamespace',
113                },
114                'gateway_username',
115                'gateway_password',
116                {
117                  field    => 'gateway_action',
118                  type     => 'select',
119                  options  => \@actions,
120                },
121                {
122                  field    => 'gateway_callback_url',
123                  type     => 'text',
124                  size     => 40,
125                },
126                {
127                  field               => 'gateway_options',
128                  type                => 'textarea',
129                  curr_value_callback => sub { my($cgi, $object, $fref) = @_;
130                                               join("\r", $object->options );
131                                             },
132                },
133              ];
134
135 my $field_callback = sub {
136   my ($cgi, $object, $field_hashref ) = @_;
137   if ($object->gatewaynum) {
138     if ( $field_hashref->{field} eq 'gateway_module' ) {
139       $field_hashref->{type} = 'fixed';
140     }
141   }
142 };
143
144 </%init>