X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=htdocs%2Fedit%2Fcust_pkg.cgi;h=b3c92249f51331642d803f885f73feeb0c509d2e;hb=994ce98f176125b73d7119c51512f3574b90b29c;hp=763eeae07f045e04f61139967dbe5af5174c621e;hpb=183f64ede863fff923db7e00d962b3495e405477;p=freeside.git diff --git a/htdocs/edit/cust_pkg.cgi b/htdocs/edit/cust_pkg.cgi index 763eeae07..b3c92249f 100755 --- a/htdocs/edit/cust_pkg.cgi +++ b/htdocs/edit/cust_pkg.cgi @@ -1,14 +1,12 @@ #!/usr/bin/perl -Tw # -# $Id: cust_pkg.cgi,v 1.3 1999-01-18 09:41:28 ivan Exp $ +# $Id: cust_pkg.cgi,v 1.8 1999-07-21 07:34:13 ivan Exp $ # # this is for changing packages around, not editing things within the package # # Usage: cust_pkg.cgi custnum # http://server.name/path/cust_pkg.cgi?custnum # -# Note: Should be run setuid freeside as user nobody -# # started with /sales/add/cust_pkg.cgi, which added packages # ivan@voicenet.com 97-jan-5, 97-mar-21 # @@ -25,7 +23,25 @@ # 98-jun-1 # # $Log: cust_pkg.cgi,v $ -# Revision 1.3 1999-01-18 09:41:28 ivan +# Revision 1.8 1999-07-21 07:34:13 ivan +# links to package browse and agent type edit if there aren't any packages to +# order. thanks to "Tech Account" +# +# Revision 1.7 1999/04/14 01:03:01 ivan +# oops, in 1.2 tree, can't do searches until [cgi|admin]suidsetup, +# bug is hidden by mod_perl persistance +# +# Revision 1.6 1999/02/28 00:03:36 ivan +# removed misleading comments +# +# Revision 1.5 1999/02/07 09:59:18 ivan +# more mod_perl fixes, and bugfixes Peter Wemm sent via email +# +# Revision 1.4 1999/01/19 05:13:38 ivan +# for mod_perl: no more top-level my() variables; use vars instead +# also the last s/create/new/; +# +# Revision 1.3 1999/01/18 09:41:28 ivan # all $cgi->header calls now include ( '-expires' => 'now' ) for mod_perl # (good idea anyway) # @@ -34,59 +50,64 @@ # use strict; +use vars qw( $cgi %pkg %comment $custnum $p1 @cust_pkg + $cust_main $agent $type_pkgs $count %remove_pkg $pkgparts ); use CGI; use CGI::Carp qw(fatalsToBrowser); -use FS::UID qw(cgisuidsetup getotaker); +use FS::UID qw(cgisuidsetup); use FS::Record qw(qsearch qsearchs); use FS::CGI qw(header popurl); use FS::part_pkg; +use FS::type_pkgs; -my($cgi) = new CGI; +$cgi = new CGI; &cgisuidsetup($cgi); -my(%pkg,%comment); +%pkg = (); +%comment = (); foreach (qsearch('part_pkg', {})) { $pkg{ $_ -> getfield('pkgpart') } = $_->getfield('pkg'); $comment{ $_ -> getfield('pkgpart') } = $_->getfield('comment'); } -#untaint custnum +if ( $cgi->param('error') ) { + $custnum = $cgi->param('custnum'); + %remove_pkg = map { $_ => 1 } $cgi->param('remove_pkg'); +} else { + my($query) = $cgi->keywords; + $query =~ /^(\d+)$/; + $custnum = $1; + undef %remove_pkg; +} -my($query) = $cgi->keywords; -$query =~ /^(\d+)$/; -my($custnum)=$1; +$p1 = popurl(1); +print $cgi->header( '-expires' => 'now' ), header("Add/Edit Packages", ''); -my($otaker)=&getotaker; +print qq!Error: !, $cgi->param('error'), + "" + if $cgi->param('error'); -my $p1 = popurl(1); -print $cgi->header( '-expires' => 'now' ), header("Add/Edit Packages", ''), < -
-END +print qq!
!; -#custnum -print qq!!; +print qq!!; -#current packages (except cancelled packages) -my(@cust_pkg) = grep ! $_->getfield('cancel'), - qsearch('cust_pkg',{'custnum'=>$custnum}); +#current packages +@cust_pkg = qsearch('cust_pkg',{ 'custnum' => $custnum, 'cancel' => '' } ); if (@cust_pkg) { print <Current packages -These are packages the customer currently has. Select those packages you -wish to remove (if any).

+Current packages - select to remove (services are moved to a new package below) +

END my ($count) = 0 ; - print qq!
! ; + print qq!
! ; foreach (@cust_pkg) { - print qq!! if ($count ==0) ; + print '' if $count == 0; my($pkgnum,$pkgpart)=( $_->getfield('pkgnum'), $_->getfield('pkgpart') ); - print qq!\n!, - #now you've got to admit this bug was pretty cool - qq!$pkgnum: $pkg{$pkgpart} - $comment{$pkgpart}\n!; + print qq!\n!; $count ++ ; if ($count == 2) { @@ -94,47 +115,52 @@ END print qq!\n! ; } } - print qq!
!, - #qq!$pkgnum: $pkg{$pkgpart} - $comment{$pkgpart}$pkgnum: $pkg{$pkgpart} - $comment{$pkgpart}
! ; - - print "
"; + print qq!

!; } print <New packages -These are packages the customer can purchase. Specify the quantity to add -of each package.

+Order new packages

END -my($cust_main)=qsearchs('cust_main',{'custnum'=>$custnum}); -my($agent)=qsearchs('agent',{'agentnum'=> $cust_main->agentnum }); +$cust_main = qsearchs('cust_main',{'custnum'=>$custnum}); +$agent = qsearchs('agent',{'agentnum'=> $cust_main->agentnum }); -my($type_pkgs); -my ($count) = 0 ; -print qq!
! ; +$count = 0; +$pkgparts = 0; +print qq!
!; foreach $type_pkgs ( qsearch('type_pkgs',{'typenum'=> $agent->typenum }) ) { + $pkgparts++; my($pkgpart)=$type_pkgs->pkgpart; - print qq!! if ($count == 0) ; + print qq!! if ( $count == 0 ); + my $value = $cgi->param("pkg$pkgpart") || 0; print < - + $pkgpart: $pkg{$pkgpart} - $comment{$pkgpart}\n END $count ++ ; - if ($count == 2) - { + if ( $count == 2 ) { print qq!\n! ; - $count = 0 ; + $count = 0; } } -print qq!
! ; +print qq!!; -#otaker -print qq!\n!; +unless ( $pkgparts ) { + my $p2 = popurl(2); + my $typenum = $agent->typenum; + my $agent_type = qsearchs( 'agent_type', { 'typenum' => $typenum } ); + my $atype = $agent_type->atype; + print <package definitions, or agent type +$atype not allowed to purchase +any packages.) +END +} #submit -print qq!

\n!; - print <