From 1fd98eace28f3ecee59f5cfa2c7b0b9dba19a2e5 Mon Sep 17 00:00:00 2001 From: Daniel Tiefnig Date: Mon, 4 May 2009 00:36:12 +0000 Subject: [PATCH] fixed account creation and dsiplay for systems without billing features hiding subscriber prepaid flag on systems without billing features --- lib/admin/Controller/account.pm | 32 ++++++++++++++++++-------------- root/tt/account.tt | 8 +++++++- root/tt/subscriber_detail.tt | 13 +++++++++++-- 3 files changed, 36 insertions(+), 17 deletions(-) diff --git a/lib/admin/Controller/account.pm b/lib/admin/Controller/account.pm index 3ae2e6a..1d69faa 100644 --- a/lib/admin/Controller/account.pm +++ b/lib/admin/Controller/account.pm @@ -136,18 +136,22 @@ sub detail : Local { $c->stash->{billing_profiles} = [ sort { $$a{data}{name} cmp $$b{data}{name} } @{$$billing_profiles{result}} ]; } else { - my $product; - return unless $c->model('Provisioning')->call_prov( $c, 'billing', 'get_product', - { handle => $c->session->{voip_account}{product} }, - \$product - ); - $c->session->{voip_account}{product_name} = $$product{data}{name}; - my $profile; - return unless $c->model('Provisioning')->call_prov( $c, 'billing', 'get_billing_profile', - { handle => $c->session->{voip_account}{billing_profile} }, - \$profile - ); - $c->session->{voip_account}{billing_profile_name} = $$profile{data}{name}; + if(defined $c->session->{voip_account}{product}) { + my $product; + return unless $c->model('Provisioning')->call_prov( $c, 'billing', 'get_product', + { handle => $c->session->{voip_account}{product} }, + \$product + ); + $c->session->{voip_account}{product_name} = $$product{data}{name}; + } + if(defined $c->session->{voip_account}{billing_profile}) { + my $profile; + return unless $c->model('Provisioning')->call_prov( $c, 'billing', 'get_billing_profile', + { handle => $c->session->{voip_account}{billing_profile} }, + \$profile + ); + $c->session->{voip_account}{billing_profile_name} = $$profile{data}{name}; + } } $c->stash->{billing_features} = 1; @@ -185,10 +189,10 @@ sub save_account : Local { my $billing_profile = $c->request->params->{billing_profile}; $settings{billing_profile} = $billing_profile if defined $billing_profile; - my $customer_id = $c->request->params->{customer_id}; + my $customer_id = $c->request->params->{customer_id} || undef; $settings{customer_id} = $customer_id if defined $customer_id; - if(keys %settings) { + if(keys %settings or (!$c->config->{billing_features} and !defined $account_id)) { if(defined $account_id) { if($c->model('Provisioning')->call_prov( $c, 'billing', 'update_voip_account', { id => $account_id, diff --git a/root/tt/account.tt b/root/tt/account.tt index 9212a9b..fce8a4c 100644 --- a/root/tt/account.tt +++ b/root/tt/account.tt @@ -17,7 +17,13 @@ [% UNLESS Catalyst.session.admin.read_only %]
-

Create new account

+

Create new account

[% END %] diff --git a/root/tt/subscriber_detail.tt b/root/tt/subscriber_detail.tt index c2bbaaf..8e05c65 100644 --- a/root/tt/subscriber_detail.tt +++ b/root/tt/subscriber_detail.tt @@ -242,8 +242,17 @@ [% IF preference.value %]checked="checked"[% END %] /> - [% ELSIF preference.key == "prepaid" - || preference.key == "has_extension" %] + [% ELSIF preference.key == "prepaid" %] + [% IF Catalyst.config.billing_features %] + + [% preference.key %]: + + + + + [% END %] + [% ELSIF preference.key == "has_extension" %] [% preference.key %]: