summaryrefslogtreecommitdiff
path: root/httemplate
diff options
context:
space:
mode:
authorlevinse <levinse>2011-01-20 20:46:30 +0000
committerlevinse <levinse>2011-01-20 20:46:30 +0000
commit98779ec47370ad67c716154f67f6a726b83e09ed (patch)
tree808e131493ef786f9b63e13b1341167aaae72b3c /httemplate
parent6f1653f32e2d7bef2b31832a0289482bc40613e5 (diff)
Ikano / svc_dsl / qualification improvements, RT7111
Diffstat (limited to 'httemplate')
-rw-r--r--httemplate/edit/process/quick-cust_pkg.cgi22
-rw-r--r--httemplate/edit/svc_dsl.cgi17
-rw-r--r--httemplate/elements/popup_link-cust_main.html4
-rw-r--r--httemplate/elements/tr-select-cust_location.html5
-rw-r--r--httemplate/misc/order_pkg.html5
-rw-r--r--httemplate/view/cust_main/order_pkg_link.html10
-rw-r--r--httemplate/view/qual.cgi36
7 files changed, 93 insertions, 6 deletions
diff --git a/httemplate/edit/process/quick-cust_pkg.cgi b/httemplate/edit/process/quick-cust_pkg.cgi
index 599f7607c..704d256e6 100644
--- a/httemplate/edit/process/quick-cust_pkg.cgi
+++ b/httemplate/edit/process/quick-cust_pkg.cgi
@@ -6,12 +6,23 @@
% my $show = $curuser->default_customer_view =~ /^(jumbo|packages)$/
% ? ''
% : ';show=packages';
+% my $redir_url = popurl(3)
+% ."view/cust_main.cgi?custnum=$custnum$show;fragment=$frag#$frag";
+%
+% # for going right to a provision service after ordering a package
+% if ( $svcpart ) {
+% my $part_svc = qsearchs('part_svc', { 'svcpart' => $svcpart } );
+% if ( $part_svc ) {
+% $redir_url = popurl(3)."edit/".$part_svc->svcdb.".cgi?"
+% ."pkgnum=".$cust_pkg->pkgnum.";svcpart=$svcpart";
+% }
+% }
<% header('Package ordered') %>
<SCRIPT TYPE="text/javascript">
// XXX fancy ajax rebuild table at some point, but a page reload will do for now
// XXX chop off trailing #target and replace... ?
- window.top.location = '<% popurl(3). "view/cust_main.cgi?custnum=$custnum$show;fragment=$frag#$frag" %>';
+ window.top.location = '<% $redir_url %>';
</SCRIPT>
@@ -49,6 +60,13 @@ $cgi->param('discountnum') =~ /^(\-?\d*)$/
or die 'illegal discountnum '. $cgi->param('discountnum');
my $discountnum = $1;
+# for going right to a provision service after ordering a package
+my $svcpart;
+if ( $cgi->param('svcpart') ) {
+ $cgi->param('svcpart') =~ /^(\-?\d*)$/
+ or die 'illegal svcpart '. $cgi->param('svcpart');
+ $svcpart = $1;
+}
my $cust_pkg = new FS::cust_pkg {
'custnum' => $custnum,
@@ -83,6 +101,6 @@ if ( $locationnum == -1 ) {
$opt{'cust_location'} = $cust_location;
}
-my $error = $cust_main->order_pkg( %opt );
+my $error = $cust_main->order_pkg( \%opt );
</%init>
diff --git a/httemplate/edit/svc_dsl.cgi b/httemplate/edit/svc_dsl.cgi
index 9b4d1c77d..48464fbad 100644
--- a/httemplate/edit/svc_dsl.cgi
+++ b/httemplate/edit/svc_dsl.cgi
@@ -95,6 +95,16 @@ my $new_cb = sub {
my $ddd = $cust_pkg->start_date;
$ddd = time unless $ddd;
+ my @quals = $export->quals_by_cust_and_pkg($cust_pkg->cust_main->custnum,$cust_pkg->pkgpart);
+ my @prequalids;
+ my %prequal_labels;
+ foreach my $qual ( @quals ) {
+ my $prequalid = $qual->vendor_qual_id;
+ push @prequalids, $prequalid;
+ $prequal_labels{$prequalid} = "$prequalid - qualification #"
+ .$qual->qualnum;
+ }
+
my @addl_fields = (
{ field => 'loop_type',
type => 'select',
@@ -105,7 +115,12 @@ my $new_cb = sub {
'password',
{ field => 'isp_chg', type => 'checkbox', },
'isp_prev',
- 'vendor_qual_id',
+ { field => 'vendor_qual_id',
+ type => 'select',
+ options => \@prequalids,
+ labels => \%prequal_labels,
+ onchange => 'ikano_vendor_qual_id_changed',
+ },
{ field => 'vendor_order_type',
type => 'hidden',
value => 'NEW' },
diff --git a/httemplate/elements/popup_link-cust_main.html b/httemplate/elements/popup_link-cust_main.html
index 454fcc4c8..78e50e782 100644
--- a/httemplate/elements/popup_link-cust_main.html
+++ b/httemplate/elements/popup_link-cust_main.html
@@ -39,4 +39,8 @@ $params->{'action'} .=
( $params->{'action'} =~ /\?/ ? ';' : '?' ).
'custnum='. $params->{'cust_main'}->custnum;
+$params->{'action'} .= ';pkgpart='.$params->{'pkgpart'} if $params->{'pkgpart'};
+$params->{'action'} .= ';locationnum='.$params->{'locationnum'} if $params->{'locationnum'};
+$params->{'action'} .= ';svcpart='.$params->{'svcpart'} if $params->{'svcpart'};
+
</%init>
diff --git a/httemplate/elements/tr-select-cust_location.html b/httemplate/elements/tr-select-cust_location.html
index fa19405b2..5802f4ec2 100644
--- a/httemplate/elements/tr-select-cust_location.html
+++ b/httemplate/elements/tr-select-cust_location.html
@@ -154,11 +154,16 @@ Example:
<<%$th%> ALIGN="right"><% $opt{'label'} || 'Service&nbsp;location' %></<%$th%>>
<TD COLSPAN=7>
<SELECT NAME="locationnum" onChange="locationnum_changed(this);">
+% if ( !$prospect_main ) {
<OPTION VALUE=""><% $opt{'empty_label'} || '(default service address)' |h %>
+% }
% if ( $opt{'is_optional'} ) {
<OPTION VALUE="-2" <% $locationnum == -2 ? 'SELECTED' : ''%>><% $opt{'optional_label'} || '(not required)' |h %>
% }
% my @locations = $cust_main ? $cust_main->cust_location : ();
+% @locations = qsearch('cust_location',
+% { 'prospectnum' => $prospect_main->prospectnum } )
+% if $prospect_main;
% push @locations, $cust_location
% if !$cust_main && $cust_location && $cust_location->locationnum>0;
% foreach my $loc ( sort $location_sort @locations ) {
diff --git a/httemplate/misc/order_pkg.html b/httemplate/misc/order_pkg.html
index b232debd7..dcbc01636 100644
--- a/httemplate/misc/order_pkg.html
+++ b/httemplate/misc/order_pkg.html
@@ -28,6 +28,9 @@
<FORM NAME="OrderPkgForm" ACTION="<% $p %>edit/process/quick-cust_pkg.cgi" METHOD="POST">
<INPUT TYPE="hidden" NAME="custnum" VALUE="<% $cust_main->custnum %>">
+% if ( $svcpart ) {
+ <INPUT TYPE="hidden" NAME="svcpart" VALUE="<% $svcpart %>">
+% }
<% ntable("#cccccc", 2) %>
<% include('/elements/tr-select-cust-part_pkg.html',
@@ -139,4 +142,6 @@ if( ! $conf->exists('order_pkg-no_start_date') ) {
$start_date = $start_date ? time2str($format, $start_date) : '';
}
+my $svcpart = $cgi->param('svcpart');
+
</%init>
diff --git a/httemplate/view/cust_main/order_pkg_link.html b/httemplate/view/cust_main/order_pkg_link.html
index 30c86a757..2e8b1dac1 100644
--- a/httemplate/view/cust_main/order_pkg_link.html
+++ b/httemplate/view/cust_main/order_pkg_link.html
@@ -1,16 +1,22 @@
<% include( '/elements/popup_link-cust_main.html',
'action' => $p. 'misc/order_pkg.html',
- 'label' => 'Order&nbsp;new&nbsp;package',
+ 'label' => $opt{'label'} || 'Order&nbsp;new&nbsp;package',
'actionlabel' => 'Order new package',
'color' => '#333399',
'cust_main' => $cust_main,
'closetext' => 'Close',
'width' => 763,
'height' => 538,
+ %optional,
)
%>
<%init>
-my($cust_main) = @_;
+my($cust_main, %opt) = @_;
+
+my %optional = ();
+$optional{'pkgpart'} = $opt{'pkgpart'} if $opt{'pkgpart'};
+$optional{'locationnum'} = $opt{'locationnum'} if $opt{'locationnum'};
+$optional{'svcpart'} = $opt{'svcpart'} if $opt{'svcpart'};
</%init>
diff --git a/httemplate/view/qual.cgi b/httemplate/view/qual.cgi
index 8ab0032ad..45f3d2a62 100644
--- a/httemplate/view/qual.cgi
+++ b/httemplate/view/qual.cgi
@@ -28,7 +28,41 @@
<BR><BR>
% if ( $export ) {
-<% $export->qual_html($qual) %>
+% my $qual_result = $export->qual_result($qual);
+% if ($qual_result->{'header'}) {
+ <B><% $qual_result->{'header'} %></B>
+% }
+% if ($qual_result->{'pkglist'}) { # one of the possible formats
+% my $svcpart = '';
+% my $pkglist = $qual_result->{'pkglist'};
+% my $cust_or_prospect = $qual->cust_or_prospect;
+% my $locationnum = '';
+% my %location = $qual->location;
+% if (%location && $location{'locationnum'}) {
+% $locationnum = $location{'locationnum'};
+% }
+ <UL>
+% foreach my $pkgpart ( keys %$pkglist ) {
+% my %opt = ( 'label' => $pkglist->{$pkgpart},
+% 'pkgpart' => $pkgpart,
+% 'locationnum' => $locationnum, );
+% if ( $export->exporttype eq 'ikano' ) {
+% my $pkg_svc = qsearchs('pkg_svc', { 'pkgpart' => $pkgpart,
+% 'primary_svc' => 'Y',
+% } );
+% $opt{'svcpart'} = $pkg_svc->svcpart if $pkg_svc;
+% }
+ <LI>
+% if($cust_or_prospect && $cust_or_prospect->custnum) {
+ <% include('/view/cust_main/order_pkg_link.html', $qual->cust_or_prospect, %opt) %>
+% }
+% else {
+ <% $opt{label} %>
+% }
+ </LI>
+% }
+ </UL>
+% }
% }
<%init>