#!/usr/bin/perl -Tw # # cust_pkg.cgi: Add/edit packages (output form) # # 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 # # Rewrote for new API # ivan@voicenet.com 97-jul-7 # # FS::Search is no more, &cgisuidsetup needs $cgi, ivan@sisd.com 98-mar-7 # # Changes to allow page to work at a relative position in server # Changed to display packages 2-wide in a table # bmccane@maxbaud.net 98-apr-3 # # fixed a pretty cool bug from above which caused a visual glitch ivan@sisd.com # 98-jun-1 use strict; use CGI::Base qw(:DEFAULT :CGI); # CGI module use CGI::Carp qw(fatalsToBrowser); use FS::UID qw(cgisuidsetup getotaker); use FS::Record qw(qsearch qsearchs); my($cgi) = new CGI::Base; $cgi->get; &cgisuidsetup($cgi); my(%pkg,%comment); foreach (qsearch('part_pkg', {})) { $pkg{ $_ -> getfield('pkgpart') } = $_->getfield('pkg'); $comment{ $_ -> getfield('pkgpart') } = $_->getfield('comment'); } #untaint custnum $QUERY_STRING =~ /^(\d+)$/; my($custnum)=$1; my($otaker)=&getotaker; SendHeaders(); print < Add/Edit Packages

Add/Edit Packages


END #custnum print qq!!; #current packages (except cancelled packages) my(@cust_pkg) = grep ! $_->getfield('cancel'), qsearch('cust_pkg',{'custnum'=>$custnum}); if (@cust_pkg) { print <Current packages These are packages the customer currently has. Select those packages you wish to remove (if any).

END my ($count) = 0 ; print qq!
! ; foreach (@cust_pkg) { print qq!! 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!; $count ++ ; if ($count == 2) { $count = 0 ; print qq!\n! ; } } print qq!
!, #qq!$pkgnum: $pkg{$pkgpart} - $comment{$pkgpart}
! ; print "
"; } print <New packages These are packages the customer can purchase. Specify the quantity to add of each package.

END my($cust_main)=qsearchs('cust_main',{'custnum'=>$custnum}); my($agent)=qsearchs('agent',{'agentnum'=> $cust_main->agentnum }); my($type_pkgs); my ($count) = 0 ; print qq!
! ; foreach $type_pkgs ( qsearch('type_pkgs',{'typenum'=> $agent->typenum }) ) { my($pkgpart)=$type_pkgs->pkgpart; print qq!! if ($count == 0) ; print < $pkgpart: $pkg{$pkgpart} - $comment{$pkgpart}\n END $count ++ ; if ($count == 2) { print qq!\n! ; $count = 0 ; } } print qq!
! ; #otaker print qq!\n!; #submit print qq!

\n!; print < END