From 28f4cf3ad74f952cd3cea6ee3f709cb0cdb83cd8 Mon Sep 17 00:00:00 2001
From: Daniel Tiefnig
Date: Mon, 14 Apr 2008 23:25:17 +0000
Subject: [PATCH] added account auto reload to template
---
lib/csc/Controller/account.pm | 164 +++++++++++++++++-----------------
root/css/sipwise.css | 26 +++++-
root/tt/account_balance.tt | 19 ++--
root/tt/payment.tt | 122 ++++++++++++++++---------
4 files changed, 197 insertions(+), 134 deletions(-)
diff --git a/lib/csc/Controller/account.pm b/lib/csc/Controller/account.pm
index 3e895f1..54a8b12 100644
--- a/lib/csc/Controller/account.pm
+++ b/lib/csc/Controller/account.pm
@@ -29,7 +29,7 @@ sub index : Private {
sub info : Local {
my ( $self, $c ) = @_;
- $c->log->debug('***account::settings called');
+ $c->log->debug('***account::info called');
if($c->session->{user}{username} eq 'demonstration') {
$c->response->redirect($c->uri_for('/desktop'));
@@ -173,7 +173,8 @@ sub balance : Local {
return 1;
}
- $c->stash->{refill}{amount} = $c->request->params->{amount} || '';
+ $c->stash->{refill} = $c->session->{refill};
+ delete $c->session->{refill};
$c->stash->{subscriber}{account}{cash_balance} = sprintf "%.2f", $c->session->{user}{account}{cash_balance} / 100;
$c->stash->{template} = 'tt/account_balance.tt';
@@ -197,11 +198,28 @@ sub setpay : Local {
my $amount = $c->request->params->{amount};
if($amount !~ /^\d+$/) {
- $c->session->{messages}{msgamount} = 'Client.Billing.MalformedAmount';
+ $messages{msgamount} = 'Client.Billing.MalformedAmount';
+ $c->session->{refill}{amount} = $amount;
+ }
+
+ my $auto_reload = $c->request->params->{auto_reload};
+ my $auto_amount = $c->request->params->{auto_amount};
+ if($auto_reload) {
+ if($auto_amount !~ /^\d+$/) {
+ $messages{msgautoamount} = 'Client.Billing.MalformedAmount';
+ $c->session->{refill}{auto_amount} = $auto_amount;
+ }
+ }
+
+ if(keys %messages) {
+ $c->session->{messages} = \%messages;
$c->response->redirect($c->uri_for('/account/balance'));
return;
}
+ $c->session->{payment}{auto_reload} = $auto_reload;
+ $c->session->{payment}{auto_amount} = $auto_amount;
+
unless($c->model('Provisioning')->get_usr_preferences($c)) {
$c->response->redirect($c->uri_for('/account/balance'));
return;
@@ -247,55 +265,10 @@ sub dopay : Local {
$c->stash->{backend} = 'account';
$c->stash->{template} = 'tt/account_payment.tt';
-}
-
-sub dopay_eps : Local {
- my ( $self, $c ) = @_;
-
- $c->log->debug('***account::dopay_eps called');
-
- my $amount = $c->session->{payment}{amount};
-
- my $bankname = $c->request->params->{bankname};
- my ($bank, $bankid);
- $bank = $bankname;
-
- if($bankname =~ /^ARZ_/) {
- ($bank, $bankid) = split /_/, $bankname;
- }
-
- my $tid = $self->_start_transaction($c, 'eps', $amount);
- unless($tid) {
- $c->response->redirect('/account/dopay');
- return;
- }
- if($c->model('Mpay24')->accept_eps_payment($c, $tid, $amount, $bank, $bankid)) {
- unless($c->model('Provisioning')->call_prov($c, 'billing', 'update_payment',
- { id => $tid,
- data => { state => 'transact' },
- },
- undef
- ))
- {
- return;
- }
- $c->response->redirect($c->session->{mpay24}{LOCATION});
- $c->log->info("redirected customer to ". $c->session->{mpay24}{LOCATION});
- } elsif(defined $c->session->{mpay24}) { # application error
- $self->_fail_transaction($c, $tid);
- $c->session->{mpay24_errors}{eps} = $c->session->{mpay24}{EXTERNALSTATUS}
- || $c->model('Provisioning')->localize('Web.Payment.UnknownError');
- $c->session->{refill}{eps}{bankname} = $bankname;
- $c->response->redirect('/account/dopay#eps');
- } else { # transport error
- $self->_fail_transaction($c, $tid);
- $c->session->{mpay24_errors}{eps} = $c->model('Provisioning')->localize('Web.Payment.HttpFailed');
- $c->session->{refill}{eps}{bankname} = $bankname;
- $c->response->redirect('/account/dopay#eps');
- }
-
- return 1;
+ $c->stash->{payment} = $c->session->{payment};
+ $c->stash->{elv_error} = $c->session->{elv_error} if $c->session->{elv_error};
+ delete $c->session->{elv_error};
}
sub dopay_elv : Local {
@@ -305,43 +278,19 @@ sub dopay_elv : Local {
my $amount = $c->session->{payment}{amount};
- my $agb_ack = $c->request->params->{agb_ack};
my $accountnumber = $c->request->params->{accountnumber};
my $bankid = $c->request->params->{bankid};
- my $tid = $self->_start_transaction($c, 'elv', $amount);
- unless($tid) {
- $c->response->redirect('/account/dopay');
- return;
- }
+# my $tid = $self->_start_transaction($c, 'elv', $amount);
+# unless($tid) {
+# $c->response->redirect('/account/dopay');
+# return;
+# }
- if($c->model('Mpay24')->accept_elv_payment($c, $tid, $amount, $accountnumber, $bankid)) {
- unless($c->model('Provisioning')->update_account_balance($c, $amount)) {
- $self->_fail_transaction($c, $tid);
- $c->response->redirect('/account/balance');
- return;
- }
- unless($self->_finish_transaction($c, $tid)) {
- # hmm, what? some logging, at least.
- }
- $c->session->{messages}{topmsg} = 'Server.Billing.Success';
- $c->response->redirect('/account/balance');
- } elsif(defined $c->session->{mpay24}) {
- $self->_fail_transaction($c, $tid);
- $c->session->{mpay24_errors}{elv} = $c->session->{mpay24}{EXTERNALSTATUS}
- || $c->model('Provisioning')->localize('Web.Payment.UnknownError');
- $c->session->{refill}{elv}{accountnumber} = $accountnumber;
- $c->session->{refill}{elv}{bankid} = $bankid;
- $c->response->redirect('/account/dopay#elv');
- } else {
- $self->_fail_transaction($c, $tid);
- $c->session->{mpay24_errors}{elv} = $c->model('Provisioning')->localize('Web.Payment.HttpFailed');
- $c->session->{refill}{elv}{accountnumber} = $accountnumber;
- $c->session->{refill}{elv}{bankid} = $bankid;
- $c->response->redirect('/account/dopay#elv');
- }
+ $c->session->{elv_error} = "Bezahlen via Bankeinzug ist noch nicht implementiert!";
+ $c->response->redirect('/account/dopay');
- return 1;
+ return;
}
sub dopay_cc : Local {
@@ -413,6 +362,55 @@ sub dopay_cc : Local {
return 1;
}
+sub dopay_eps : Local {
+ my ( $self, $c ) = @_;
+
+ $c->log->debug('***account::dopay_eps called');
+
+ my $amount = $c->session->{payment}{amount};
+
+ my $bankname = $c->request->params->{bankname};
+ my ($bank, $bankid);
+ $bank = $bankname;
+
+ if($bankname =~ /^ARZ_/) {
+ ($bank, $bankid) = split /_/, $bankname;
+ }
+
+ my $tid = $self->_start_transaction($c, 'eps', $amount);
+ unless($tid) {
+ $c->response->redirect('/account/dopay');
+ return;
+ }
+
+ if($c->model('Mpay24')->accept_eps_payment($c, $tid, $amount, $bank, $bankid)) {
+ unless($c->model('Provisioning')->call_prov($c, 'billing', 'update_payment',
+ { id => $tid,
+ data => { state => 'transact' },
+ },
+ undef
+ ))
+ {
+ return;
+ }
+ $c->response->redirect($c->session->{mpay24}{LOCATION});
+ $c->log->info("redirected customer to ". $c->session->{mpay24}{LOCATION});
+ } elsif(defined $c->session->{mpay24}) { # application error
+ $self->_fail_transaction($c, $tid);
+ $c->session->{mpay24_errors}{eps} = $c->session->{mpay24}{EXTERNALSTATUS}
+ || $c->model('Provisioning')->localize('Web.Payment.UnknownError');
+ $c->session->{refill}{eps}{bankname} = $bankname;
+ $c->response->redirect('/account/dopay#eps');
+ } else { # transport error
+ $self->_fail_transaction($c, $tid);
+ $c->session->{mpay24_errors}{eps} = $c->model('Provisioning')->localize('Web.Payment.HttpFailed');
+ $c->session->{refill}{eps}{bankname} = $bankname;
+ $c->response->redirect('/account/dopay#eps');
+ }
+
+ return 1;
+}
+
sub dopay_maestro : Local {
my ( $self, $c ) = @_;
diff --git a/root/css/sipwise.css b/root/css/sipwise.css
index cad4368..a558ca3 100644
--- a/root/css/sipwise.css
+++ b/root/css/sipwise.css
@@ -47,9 +47,7 @@
width: auto;
float: left;
margin: 0;
- padding: 0 0 10px 0;
-}
-#errormsg p {
+ padding: 0;
font-size: 12px;
font-weight: bold;
color: #FF1010;
@@ -261,6 +259,28 @@
border: none;
}
+#main .feinstellungen label.loose {
+ width: auto;
+ float: none;
+ padding: 0;
+ margin: 0;
+}
+#main .feinstellungen input.loose {
+ width: 35px !important;
+ float: none;
+ margin: 0;
+}
+#main .feinstellungen #damount {
+ margin-top: 8px;
+}
+#main .feinstellungen #amount {
+ margin-top: -1px;
+}
+
+#main .feinstellungen #auto_reload {
+ margin: 12px 0 1px 23px;
+}
+
/* alignment and text color for demo info text */
#main .feinstellungen .demoinfo {
color: #8B949A;
diff --git a/root/tt/account_balance.tt b/root/tt/account_balance.tt
index 5bf7ce8..8f661ba 100644
--- a/root/tt/account_balance.tt
+++ b/root/tt/account_balance.tt
@@ -5,12 +5,21 @@
Konto aufladen
- aktuelles Guthaben
- € [% subscriber.account.cash_balance %]
+ aktuelles Guthaben
+ € [% subscriber.account.cash_balance %]
- Betrag in €
-
- [% IF messages.msgamount %] [% END %]
+
+
Betrag aufladen: €
+
+ [% IF messages.msgamount %]
[% messages.msgamount %]
[% END %]
+
+
+
+ Diesen Betrag automatisch aufladen,
+ wenn das Guthaben €
+ unterschreitet.
weiter
diff --git a/root/tt/payment.tt b/root/tt/payment.tt
index d54b682..665c342 100644
--- a/root/tt/payment.tt
+++ b/root/tt/payment.tt
@@ -2,60 +2,39 @@
[% IF mpay24_errors.top %]
[% END %]
-
-
-
- Bank Austria Credit Anstalt
- Erste Bank & Sparkassen Gruppe
- Raiffeisenbanken Gruppe
- BAWAG P.S.K. Gruppe
- Hypo Oberösterreich
-
-
+
+ Kontonummer
+
+
+
+ Bankleitzahl
+
- Mit E-Banking forfahren
-
+ Bankeinzug veranlassen
+
- [% IF mpay24_errors.eps %] [% END %]
+ [% IF elv_error %][% elv_error %]
[% END %]
-
+
@@ -126,7 +105,62 @@
-
+ [% UNLESS payment.auto_reload %]
+
+
+
+
+
+ Zahlen per Onlineüberweisung
+
+ Sie werden nach Auswahl Ihrer Bank auf Ihre gewohnte Onlinebanking Webseite
+ weitergeleitet, wo sie sich mit Ihren Benutzerdaten einloggen und die
+ Überweisung vornehmen können. Folgende Banken stehen dafür zur Verfügung:
+
+
+
+ Bank Austria Credit Anstalt
+ Erste Bank & Sparkassen Gruppe
+ Raiffeisenbanken Gruppe
+ BAWAG P.S.K. Gruppe
+ Hypo Oberösterreich
+
+
+
+
+
+ Mit E-Banking forfahren
+
+
+
+ [% IF mpay24_errors.eps %] [% END %]
+
+
+
+
+
@@ -193,7 +227,7 @@
-
+
@@ -214,4 +248,6 @@
+ [% END %]
+