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

- -

€ [% subscriber.account.cash_balance %]

+ + € [% subscriber.account.cash_balance %]
- -
- [% IF messages.msgamount %]

[% messages.msgamount %]


[% END %] +
+ € +
+ [% IF messages.msgamount %]
[% messages.msgamount %]

[% END %] +
+ + + + + unterschreitet.

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 %]

[% mpay24_errors.top %]

[% END %] -
-
+
+

- Zahlen per Onlineüberweisung + Zahlen via Bankeinzug

- 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: -

+ Wir buchen den Betrag von Ihrem Konto ab, Sie brauchen nur dieses + Formular auszufüllen. + +


- +

+ +
+

+

+ +

- - + +

- [% IF mpay24_errors.eps %]

[% 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: +

+ + +

+ +

+ + +

+ + [% IF mpay24_errors.eps %]

[% mpay24_errors.eps %]

[% END %] + +
+

+ +

@@ -193,7 +227,7 @@


-
+

@@ -214,4 +248,6 @@


+ [% END %] +