diff options
author | ivan <ivan> | 2001-10-15 14:58:03 +0000 |
---|---|---|
committer | ivan <ivan> | 2001-10-15 14:58:03 +0000 |
commit | 9410e9f656b950a9d4b383a3992fa50bb7a270db (patch) | |
tree | 9cdaced18cfa970edc1d353afa7ff2b648fc257c | |
parent | a984fa561b6493ae41215c3d26013767f9ce79cb (diff) |
date editing
-rw-r--r-- | FS/FS/cust_pkg.pm | 11 | ||||
-rw-r--r-- | htetc/global.asa | 6 | ||||
-rw-r--r-- | htetc/handler.pl | 6 | ||||
-rwxr-xr-x | httemplate/edit/REAL_cust_pkg.cgi | 81 | ||||
-rwxr-xr-x | httemplate/edit/process/REAL_cust_pkg.cgi | 20 | ||||
-rwxr-xr-x | httemplate/view/cust_pkg.cgi | 27 |
6 files changed, 140 insertions, 11 deletions
diff --git a/FS/FS/cust_pkg.pm b/FS/FS/cust_pkg.pm index cbf4ae50d..069ac8cf7 100644 --- a/FS/FS/cust_pkg.pm +++ b/FS/FS/cust_pkg.pm @@ -157,9 +157,12 @@ sub replace { #return "Can't (yet?) change pkgpart!" if $old->pkgpart != $new->pkgpart; return "Can't change otaker!" if $old->otaker ne $new->otaker; - return "Can't change setup once it exists!" - if $old->getfield('setup') && - $old->getfield('setup') != $new->getfield('setup'); + + #allow this *sigh* + #return "Can't change setup once it exists!" + # if $old->getfield('setup') && + # $old->getfield('setup') != $new->getfield('setup'); + #some logic for bill, susp, cancel? $new->SUPER::replace($old); @@ -585,7 +588,7 @@ sub order { =head1 VERSION -$Id: cust_pkg.pm,v 1.10 2001-10-15 12:16:42 ivan Exp $ +$Id: cust_pkg.pm,v 1.11 2001-10-15 14:58:03 ivan Exp $ =head1 BUGS diff --git a/htetc/global.asa b/htetc/global.asa index cb2a28037..c3393ad67 100644 --- a/htetc/global.asa +++ b/htetc/global.asa @@ -3,12 +3,16 @@ use vars qw( $cgi $p ); use CGI; #use CGI::Carp qw(fatalsToBrowser); use HTML::Entities; +use Date::Format; +use Date::Parse; use FS::UID qw(cgisuidsetup dbh); use FS::Record qw(qsearch qsearchs fields); use FS::part_svc; use FS::part_pkg; use FS::pkg_svc; -use FS::CGI qw(header menubar popurl table); +use FS::cust_pkg; +use FS::cust_svc; +use FS::CGI qw(header menubar popurl table ntable); sub Script_OnStart { $cgi = new CGI; diff --git a/htetc/handler.pl b/htetc/handler.pl index a06ebb180..d747fe464 100644 --- a/htetc/handler.pl +++ b/htetc/handler.pl @@ -57,12 +57,16 @@ sub handler use vars qw( $cgi $p ); use CGI; #use CGI::Carp qw(fatalsToBrowser); + use Date::Format; + use Date::Parse; use FS::UID qw(cgisuidsetup); use FS::Record qw(qsearch qsearchs fields); use FS::part_svc; use FS::part_pkg; use FS::pkg_svc; - use FS::CGI qw(header menubar popurl table); + use FS::cust_pkg; + use FS::cust_svc; + use FS::CGI qw(header menubar popurl table ntable); $cgi = new CGI; &cgisuidsetup($cgi); diff --git a/httemplate/edit/REAL_cust_pkg.cgi b/httemplate/edit/REAL_cust_pkg.cgi new file mode 100755 index 000000000..8ea0e084d --- /dev/null +++ b/httemplate/edit/REAL_cust_pkg.cgi @@ -0,0 +1,81 @@ +<% +# <!-- $Id: REAL_cust_pkg.cgi,v 1.1 2001-10-15 14:58:03 ivan Exp $ --> + +my $error =''; +my $pkgnum = ''; +if ( $cgi->param('error') ) { + $error = $cgi->param('error'); + $pkgnum = $cgi->param('pkgnum'); +} else { + my($query) = $cgi->keywords; + $query =~ /^(\d+)$/ or die "no pkgnum"; + $pkgnum = $1; +} + +#get package record +my $cust_pkg = qsearchs('cust_pkg',{'pkgnum'=>$pkgnum}); +die "No package!" unless $cust_pkg; +my $part_pkg = qsearchs('part_pkg',{'pkgpart'=>$cust_pkg->getfield('pkgpart')}); + +if ( $error ) { + #$cust_pkg->$_(str2time($cgi->param($_)) foreach qw(setup bill); + $cust_pkg->setup(str2time($cgi->param('setup'))); + $cust_pkg->bill(str2time($cgi->param('bill'))); +} + +#my $custnum = $cust_pkg->getfield('custnum'); +print header('Package Edit'); #, menubar( +# "View this customer (#$custnum)" => popurl(2). "view/cust_main.cgi?$custnum", +# 'Main Menu' => popurl(2) +#)); + +#print info +my($susp,$cancel,$expire)=( + $cust_pkg->getfield('susp'), + $cust_pkg->getfield('cancel'), + $cust_pkg->getfield('expire'), +); +my($pkg,$comment)=($part_pkg->getfield('pkg'),$part_pkg->getfield('comment')); +my($setup,$bill)=($cust_pkg->getfield('setup'),$cust_pkg->getfield('bill')); +my $otaker = $cust_pkg->getfield('otaker'); + +print '<FORM NAME="formname" ACTION="process/REAL_cust_pkg.cgi" METHOD="POST">', qq!<INPUT TYPE="hidden" NAME="pkgnum" VALUE="$pkgnum">!; + +print qq!<FONT SIZE="+1" COLOR="#ff0000">Error: $error</FONT>! + if $error; + +print &ntable("#cccccc"), '<TR><TD>', &ntable("#cccccc",2), + '<TR><TD ALIGN="right">Package number</TD><TD BGCOLOR="#ffffff">', + $pkgnum, '</TD></TR>', + '<TR><TD ALIGN="right">Package</TD><TD BGCOLOR="#ffffff">', + $pkg, '</TD></TR>', + '<TR><TD ALIGN="right">Comment</TD><TD BGCOLOR="#ffffff">', + $comment, '</TD></TR>', + '<TR><TD ALIGN="right">Order taker</TD><TD BGCOLOR="#ffffff">', + $otaker, '</TD></TR>', + '<TR><TD ALIGN="right">Setup date</TD><TD>'. + '<INPUT TYPE="text" NAME="setup" SIZE=32 VALUE="', + ( $setup ? time2str("%c %z (%Z)",$setup) : "" ), '"></TD></TR>', + '<TR><TD ALIGN="right">Next bill date</TD><TD>', + '<INPUT TYPE="text" NAME="bill" SIZE=32 VALUE="', + ( $bill ? time2str("%c %z (%Z)",$bill) : "" ), '"></TD></TR>', +; + +print '<TR><TD ALIGN="right">Suspension date</TD><TD BGCOLOR="#ffffff">', + time2str("%D",$susp), '</TD></TR>' + if $susp; + +print '<TR><TD ALIGN="right">Expiration date</TD><TD BGCOLOR="#ffffff">', + time2str("%D",$expire), '</TD></TR>' + if $expire; + +print '<TR><TD ALIGN="right">Cancellation date</TD><TD BGCOLOR="#ffffff">', + time2str("%D",$cancel), '</TD></TR>' + if $cancel; + +%> +</TABLE></TD></TR></TABLE>'. +<BR><INPUT TYPE="submit" VALUE="Apply Changes"> +</FORM> +</BODY> +</HTML> diff --git a/httemplate/edit/process/REAL_cust_pkg.cgi b/httemplate/edit/process/REAL_cust_pkg.cgi new file mode 100755 index 000000000..4f33f6b38 --- /dev/null +++ b/httemplate/edit/process/REAL_cust_pkg.cgi @@ -0,0 +1,20 @@ +<% +#<!-- $Id: REAL_cust_pkg.cgi,v 1.1 2001-10-15 14:58:03 ivan Exp $ --> + +my $pkgnum = $cgi->param('pkgnum') or die; +my $old = qsearchs('cust_pkg',{'pkgnum'=>$pkgnum}); +my %hash = $old->hash; +$hash{'setup'} = $cgi->param('setup') ? str2time($cgi->param('setup')) : ''; +$hash{'bill'} = $cgi->param('bill') ? str2time($cgi->param('bill')) : ''; +my $new = new FS::cust_pkg \%hash; + +my $error = $new->replace($old); + +if ( $error ) { + $cgi->param('error', $error); + print $cgi->redirect(popurl(2). "REAL_cust_pkg.cgi?". $cgi->query_string ); +} else { + print $cgi->redirect(popurl(3). "view/cust_pkg.cgi?". $pkgnum); +} + +%> diff --git a/httemplate/view/cust_pkg.cgi b/httemplate/view/cust_pkg.cgi index b354318d4..6dd1d2455 100755 --- a/httemplate/view/cust_pkg.cgi +++ b/httemplate/view/cust_pkg.cgi @@ -1,5 +1,5 @@ <% -# <!-- $Id: cust_pkg.cgi,v 1.2 2001-08-21 02:31:57 ivan Exp $ --> +# <!-- $Id: cust_pkg.cgi,v 1.3 2001-10-15 14:58:03 ivan Exp $ --> use strict; use vars qw ( $cgi %uiview %uiadd $part_svc $query $pkgnum $cust_pkg $part_pkg @@ -50,13 +50,30 @@ print $cgi->header( '-expires' => 'now' ), header('Package View', menubar( ($setup,$bill)=($cust_pkg->getfield('setup'),$cust_pkg->getfield('bill')); $otaker = $cust_pkg->getfield('otaker'); +print <<END; +<SCRIPT> +function areyousure(href) { + if (confirm("Permanantly delete included services and cancel this package?") == true) + window.location.href = href; +} +</SCRIPT> +END + print "Package information"; print ' (<A HREF="'. popurl(2). 'misc/unsusp_pkg.cgi?'. $pkgnum. - '">unsuspend</A>)' if ( $susp && ! $cancel ); + '">unsuspend</A>)' + if ( $susp && ! $cancel ); + print ' (<A HREF="'. popurl(2). 'misc/susp_pkg.cgi?'. $pkgnum. - '">suspend</A>)' unless ( $susp || $cancel ); -print ' (<A HREF="'. popurl(2). 'misc/cancel_pkg.cgi?'. $pkgnum. - '">cancel</A>)' unless $cancel; + '">suspend</A>)' + unless ( $susp || $cancel ); + +print ' (<A HREF="javascript:areyousure(\''. popurl(2). 'misc/cancel_pkg.cgi?'. + $pkgnum. '\')">cancel</A>)' + unless $cancel; + +print ' (<A HREF="'. popurl(2). 'edit/REAL_cust_pkg.cgi?'. $pkgnum. + '">edit dates</A>)'; print &ntable("#cccccc"), '<TR><TD>', &ntable("#cccccc",2), '<TR><TD ALIGN="right">Package number</TD><TD BGCOLOR="#ffffff">', |