summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2001-10-15 14:58:03 +0000
committerivan <ivan>2001-10-15 14:58:03 +0000
commit9410e9f656b950a9d4b383a3992fa50bb7a270db (patch)
tree9cdaced18cfa970edc1d353afa7ff2b648fc257c
parenta984fa561b6493ae41215c3d26013767f9ce79cb (diff)
date editing
-rw-r--r--FS/FS/cust_pkg.pm11
-rw-r--r--htetc/global.asa6
-rw-r--r--htetc/handler.pl6
-rwxr-xr-xhttemplate/edit/REAL_cust_pkg.cgi81
-rwxr-xr-xhttemplate/edit/process/REAL_cust_pkg.cgi20
-rwxr-xr-xhttemplate/view/cust_pkg.cgi27
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">',