From 9106a4abea7bd4f6a7bea2410ca6976862986bb8 Mon Sep 17 00:00:00 2001 From: senator Date: Thu, 12 May 2011 16:53:54 -0400 Subject: [PATCH] begin a sub to process payment --- .../src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm | 1 + .../lib/OpenILS/WWW/EGCatLoader/Account.pm | 56 ++++++++++++++----- 2 files changed, 42 insertions(+), 15 deletions(-) diff --git a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm index 8a8bc70..328f92b 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm @@ -121,6 +121,7 @@ sub load { return $self->load_place_hold if $path =~ m|opac/place_hold|; return $self->load_myopac_holds if $path =~ m|opac/myopac/holds|; return $self->load_myopac_circs if $path =~ m|opac/myopac/circs|; + return $self->load_myopac_pay if $path =~ m|opac/myopac/pay|; return $self->load_myopac_payment_form if $path =~ m|opac/myopac/main_payment_form|; return $self->load_myopac_payments if $path =~ m|opac/myopac/main_payments|; return $self->load_myopac_main if $path =~ m|opac/myopac/main|; diff --git a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Account.pm b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Account.pm index e9da422..61f0cc8 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Account.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Account.pm @@ -8,7 +8,7 @@ use OpenILS::Application::AppUtils; use OpenSRF::Utils::JSON; my $U = 'OpenILS::Application::AppUtils'; -sub load_extended_user_info { +sub prepare_extended_user_info { my $self = shift; $self->ctx->{user} = $self->editor->retrieve_actor_user([ @@ -29,7 +29,7 @@ sub load_extended_user_info { # user : au object, fleshed sub load_myopac_prefs { my $self = shift; - return $self->load_extended_user_info || Apache2::Const::OK; + return $self->prepare_extended_user_info || Apache2::Const::OK; } sub load_myopac_prefs_notify { @@ -106,7 +106,7 @@ sub update_optin_prefs { sub load_myopac_prefs_settings { my $self = shift; - return $self->load_extended_user_info || Apache2::Const::OK; + return $self->prepare_extended_user_info || Apache2::Const::OK; } sub fetch_user_holds { @@ -562,16 +562,8 @@ sub load_myopac_payment_form { my $self = shift; my $r; - $r = $self->load_fines(undef, undef, [$self->cgi->param('xact')]) and return $r; - - # total selected fines - foreach ( - @{$self->ctx->{"fines"}->{"circulation"}}, - @{$self->ctx->{"fines"}->{"grocery"}} - ) { - } - - $r = $self->load_extended_user_info and return $r; + $r = $self->prepare_fines(undef, undef, [$self->cgi->param('xact')]) and return $r; + $r = $self->prepare_extended_user_info and return $r; return Apache2::Const::OK; } @@ -598,7 +590,41 @@ sub load_myopac_payments { return Apache2::Const::OK; } -sub load_fines { +sub load_myopac_pay { + my $self = shift; + my $r; + + $r = $self->prepare_fines and return $r; + + # balance_owed is computed specifically from the fines we're trying + # to pay in this case. + return Apache2::Const::HTTP_INTERNAL_SERVER_ERROR if + $self->ctx->{fines}->{balance_owed} <= 0; + + my $cc_args = { + "where_process" => 1, + }; + $cc_args->{$_} = $self->cgi->param($_) for (qw/ + number cvv2 expire_year expire_month billing_first + billing_last billing_address billing_city billing_state + billing_zip + /); + + my $args = { + "cc_args" => $cc_args, + "userid" => $self->ctx->{user}->id, + "payment_type": "credit_card_payment", + "payments" => [$self->cgi->param('xact')] # should be safe after self->prepare_fines + }; + + $U->simplereq("open-ils.circ", "open-ils.circ.money.payment", + $self->editor->authtoken, $args, $self->ctx->{user}->last_xact_id + ); + + # XXX FINISH ME: indicate success/fail, redirect to page with layout +} + +sub prepare_fines { my ($self, $limit, $offset, $id_list) = @_; # XXX TODO: check for failure after various network calls @@ -692,7 +718,7 @@ sub load_myopac_main { my $limit = $self->cgi->param('limit') || 0; my $offset = $self->cgi->param('offset') || 0; - return $self->load_fines($limit, $offset) || Apache2::Const::OK; + return $self->prepare_fines($limit, $offset) || Apache2::Const::OK; } sub load_myopac_update_email { -- 1.7.2.5