From fe2bc32ff2f981ab94d0227aaa611e42cb3c2d87 Mon Sep 17 00:00:00 2001
From: Andreas Granig
Date: Thu, 29 Nov 2012 17:48:19 +0000
Subject: [PATCH] Show CDR details in Call list.
---
lib/admin/Controller/subscriber.pm | 3 +-
lib/admin/Utils.pm | 44 ++++++++++++++++--------------
root/tt/subscriber_call_data.tt | 36 +++++++++++++++++++++---
3 files changed, 58 insertions(+), 25 deletions(-)
diff --git a/lib/admin/Controller/subscriber.pm b/lib/admin/Controller/subscriber.pm
index 97cbd19..e882e9c 100644
--- a/lib/admin/Controller/subscriber.pm
+++ b/lib/admin/Controller/subscriber.pm
@@ -1333,7 +1333,7 @@ sub call_data : Local {
}
my $calls;
- return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_calls',
+ return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_cdrs',
{ username => $$subscriber{username},
domain => $$subscriber{domain},
filter => { start_date => $sdate,
@@ -1356,6 +1356,7 @@ sub call_data : Local {
);
}
+ $c->stash->{cdr_list} = $calls;
$c->stash->{call_list} = admin::Utils::prepare_call_list($c, $$subscriber{username}, $$subscriber{domain}, $calls, $listfilter, $bilprof);
$c->stash->{subscriber}{list_filter} = $listfilter if defined $listfilter;
diff --git a/lib/admin/Utils.pm b/lib/admin/Utils.pm
index 37f6e8b..40429f4 100644
--- a/lib/admin/Utils.pm
+++ b/lib/admin/Utils.pm
@@ -168,7 +168,7 @@ sub prepare_call_list {
$callentry{duration} = '00:00';
}
- if(defined $$call{call_fee}) {
+ if(defined $$call{customer_cost}) {
# money is allways returned as cents
$callentry{call_fee} = sprintf $$bilprof{data}{currency} . " %.04f", $$call{call_fee}/100;
} else {
@@ -203,25 +203,29 @@ sub prepare_call_list {
} else {
$callentry{direction_icon} = 'anruf_ein_err_small.gif';
}
- if(!defined $$call{source_cli} or !length $$call{source_cli}
- or $$call{source_cli} !~ /^\+?\d+$/)
- {
- if(!defined $$call{source_user} or !length $$call{source_user}) {
- $callentry{partner} = 'anonym';
- } elsif($$call{source_user} =~ /^\+?\d+$/) {
- my $partner = $$call{source_user};
- $partner =~ s/^$ccdp/+/;
- $partner =~ s/^\+*/+/;
- $callentry{partner} = $partner;
- } else {
- $callentry{partner} = $$call{source_user} .'@'. $$call{source_domain};
- }
- } else {
- my $partner = $$call{source_cli};
- $partner =~ s/^$ccdp/+/;
- $partner =~ s/^\+*/+/;
- $callentry{partner} = $partner;
- }
+ if(!$$call{source_clir})
+ {
+ if($$call{source_cli} !~ /^\+?\d+$/)
+ {
+ if($$call{source_user} =~ /^\+?\d+$/) {
+ my $partner = $$call{source_user};
+ $partner =~ s/^$ccdp/+/;
+ $partner =~ s/^\+*/+/;
+ $callentry{partner} = $partner;
+ } else {
+ $callentry{partner} = $$call{source_user} .'@'. $$call{source_domain};
+ }
+ } else {
+ my $partner = $$call{source_cli};
+ $partner =~ s/^$ccdp/+/;
+ $partner =~ s/^\+*/+/;
+ $callentry{partner} = $partner;
+ }
+ }
+ else
+ {
+ $callentry{partner} = 'anonymous';
+ }
$callentry{partner_number} = $callentry{partner};
} else {
diff --git a/root/tt/subscriber_call_data.tt b/root/tt/subscriber_call_data.tt
index 1bc42f5..93ceb72 100644
--- a/root/tt/subscriber_call_data.tt
+++ b/root/tt/subscriber_call_data.tt
@@ -1,4 +1,11 @@
-
+ [% FOREACH i IN [0 .. call_list.max] %]
+ [%
+ cdrentry = cdr_list.$i
+ %]
+
+
+ [% FOREACH key IN cdrentry.keys.sort %]
+
+ | [% key %]: | [% cdrentry.$key %] |
+
+ [% END %]
+
+
+ [% END %]
+
[% IF call_list %]
@@ -42,9 +64,14 @@
| charges |
[% END %]
date |
+ |
- [% FOREACH callentry = call_list %]
+ [% FOREACH i IN [0 .. call_list.max] %]
+ [%
+ callentry = call_list.$i
+ cdrentry = cdr_list.$i
+ %]
 |
[% callentry.partner %] |
@@ -53,14 +80,15 @@
[% callentry.call_fee %] |
[% END %]
[% callentry.date %] |
+ Details |
[% END %]
[% ELSE %]
-
+
- | No matching calls found. |
+ No matching calls found. |
[% END %]