X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fview%2Fcust_pkg.cgi;h=d8a0041eee80328f19b6d38b72688d207752e3d5;hp=5ddb17aee869211cf555692a60f184da8114881c;hb=3f2a7b01b59902faed5767d81e2959e131bdbdfd;hpb=91387f8f489e561deaf1de052d80ef800a4970a3 diff --git a/httemplate/view/cust_pkg.cgi b/httemplate/view/cust_pkg.cgi index 5ddb17aee..d8a0041ee 100755 --- a/httemplate/view/cust_pkg.cgi +++ b/httemplate/view/cust_pkg.cgi @@ -1,170 +1,11 @@ -<% -# - -use strict; -use vars qw ( $cgi %uiview %uiadd $part_svc $query $pkgnum $cust_pkg $part_pkg - $custnum $susp $cancel $expire $pkg $comment $setup $bill - $otaker ); -use Date::Format; -use CGI; -use CGI::Carp qw(fatalsToBrowser); -use FS::UID qw(cgisuidsetup); -use FS::CGI qw(popurl header menubar ntable table); -use FS::Record qw(qsearch qsearchs); -use FS::part_svc; -use FS::cust_pkg; -use FS::part_pkg; -use FS::pkg_svc; -use FS::cust_svc; - -$cgi = new CGI; -cgisuidsetup($cgi); - -foreach $part_svc ( qsearch('part_svc',{}) ) { - $uiview{$part_svc->svcpart} = popurl(2). "view/". $part_svc->svcdb . ".cgi"; - $uiadd{$part_svc->svcpart}= popurl(2). "edit/". $part_svc->svcdb . ".cgi"; -} - -($query) = $cgi->keywords; -$query =~ /^(\d+)$/; -$pkgnum = $1; - -#get package record -$cust_pkg = qsearchs('cust_pkg',{'pkgnum'=>$pkgnum}); -die "No package!" unless $cust_pkg; -$part_pkg = qsearchs('part_pkg',{'pkgpart'=>$cust_pkg->getfield('pkgpart')}); - -$custnum = $cust_pkg->getfield('custnum'); -print $cgi->header( @FS::CGI::header ), header('Package View', menubar( - "View this customer (#$custnum)" => popurl(2). "view/cust_main.cgi?$custnum", - 'Main Menu' => popurl(2) -)); - -#print info -($susp,$cancel,$expire)=( - $cust_pkg->getfield('susp'), - $cust_pkg->getfield('cancel'), - $cust_pkg->getfield('expire'), -); -($pkg,$comment)=($part_pkg->getfield('pkg'),$part_pkg->getfield('comment')); -($setup,$bill)=($cust_pkg->getfield('setup'),$cust_pkg->getfield('bill')); -$otaker = $cust_pkg->getfield('otaker'); - -print < -function areyousure(href) { - if (confirm("Permanantly delete included services and cancel this package?") == true) - window.location.href = href; -} - -END - -print "Package information"; -print ' (unsuspend)' - if ( $susp && ! $cancel ); - -print ' (suspend)' - unless ( $susp || $cancel ); - -print ' (cancel)' - unless $cancel; - -print ' (edit dates)'; - -print &ntable("#cccccc"), '', &ntable("#cccccc",2), - 'Package number', - $pkgnum, '', - 'Package', - $pkg, '', - 'Comment', - $comment, '', - 'Setup date', - ( $setup ? time2str("%D",$setup) : "(Not setup)" ), '', - 'Next bill date', - ( $bill ? time2str("%D",$bill) : " " ), '', -; -print 'Suspension date', - time2str("%D",$susp), '' if $susp; -print 'Expiration date', - time2str("%D",$expire), '' if $expire; -print 'Cancellation date', - time2str("%D",$cancel), '' if $cancel; -print 'Order taker', - $otaker, '', - '' -; - -# print < -# -#Expire (date): -# -#END - -unless ($cancel) { - - #services - print '
Service Information', &table(); - - #list of services this pkgpart includes - my $pkg_svc; - my %pkg_svc = (); - foreach $pkg_svc ( qsearch('pkg_svc',{'pkgpart'=> $cust_pkg->pkgpart }) ) { - $pkg_svc{$pkg_svc->svcpart} = $pkg_svc->quantity if $pkg_svc->quantity; - } - - #list of records from cust_svc - my $svcpart; - foreach $svcpart (sort {$a <=> $b} keys %pkg_svc) { - - my($svc)=qsearchs('part_svc',{'svcpart'=>$svcpart})->getfield('svc'); - - my(@cust_svc)=qsearch('cust_svc',{'pkgnum'=>$pkgnum, - 'svcpart'=>$svcpart, - }); - - my($enum); - for $enum ( 1 .. $pkg_svc{$svcpart} ) { - - my($cust_svc); - if ( $cust_svc=shift @cust_svc ) { - my($svcnum)=$cust_svc->svcnum; - my($label, $value, $svcdb) = $cust_svc->label; - print <(View) $svc: $value -END - } else { - print < - - (Add) $svc - or - (Link to existing) $svc - - -END - } - - } - warn "WARNING: Leftover services pkgnum $pkgnum!" if @cust_svc;; - } - - print "", - "Choose (View) to view or edit an existing service
", - "Choose (Add) to setup a new service
", - "Choose (Link to existing) to link to a legacy (pre-Freeside) service", - "
" - ; -} - -#formatting -print < - -END - -%> +<% $cgi->redirect($path) %> +<%init> +# since cust_pkgs can't be viewed directly, just throw a redirect +my ($pkgnum) = $cgi->keywords; +$pkgnum =~ /^\d+$/ or die "invalid pkgnum '$pkgnum'"; +my $show = $FS::CurrentUser::CurrentUser->default_customer_view =~ /^(jumbo|packages)$/ ? '' : ';show=packages'; + +my $self = FS::cust_pkg->by_key($pkgnum) or die "pkgnum $pkgnum not found"; +my $frag = 'cust_pkg'. $self->pkgnum; +my $path = $p.'view/cust_main.cgi?custnum='.$self->custnum.";$show#$frag"; +