summaryrefslogtreecommitdiff
path: root/httemplate/edit
diff options
context:
space:
mode:
authorivan <ivan>2010-01-30 23:00:25 +0000
committerivan <ivan>2010-01-30 23:00:25 +0000
commit481011e14852aa62181bed0c7ae34b1e37ebff18 (patch)
tree4b2d3531af60cc441def609f23579b97f36d07ee /httemplate/edit
parentd6be23266fb627a4e7831055bf55ae675dbad4e9 (diff)
discounts, RT#6679
Diffstat (limited to 'httemplate/edit')
-rwxr-xr-xhttemplate/edit/cust_pkg_discount.html75
-rw-r--r--httemplate/edit/process/cust_pkg_discount.html51
2 files changed, 126 insertions, 0 deletions
diff --git a/httemplate/edit/cust_pkg_discount.html b/httemplate/edit/cust_pkg_discount.html
new file mode 100755
index 000000000..22d8c632f
--- /dev/null
+++ b/httemplate/edit/cust_pkg_discount.html
@@ -0,0 +1,75 @@
+<% include('/elements/header-popup.html', "Discount Package") %>
+
+<SCRIPT TYPE="text/javascript">
+
+ function enable_discount_pkg () {
+ if ( document.DiscountPkgForm.discountnum.selectedIndex > 0 ) {
+ document.DiscountPkgForm.submit.disabled = false;
+ } else {
+ document.DiscountPkgForm.submit.disabled = true;
+ }
+ }
+
+</SCRIPT>
+
+<% include('/elements/error.html') %>
+
+<FORM NAME="DiscountPkgForm" ACTION="<% $p %>edit/process/cust_pkg_discount.html" METHOD=POST>
+<INPUT TYPE="hidden" NAME="pkgnum" VALUE="<% $pkgnum %>">
+
+<% ntable('#cccccc') %>
+
+ <TR>
+ <TH ALIGN="right">Current package&nbsp;</TH>
+ <TD COLSPAN=7>
+ <% $curuser->option('show_pkgnum') ? $cust_pkg->pkgnum.': ' : '' %><B><% $part_pkg->pkg |h %></B> - <% $part_pkg->comment |h %>
+ </TD>
+ </TR>
+
+<% include('/elements/tr-select-discount.html',
+ 'empty_label' => ( $pkgdiscountnum ? '' : 'Select discount' ),
+ 'onchange' => 'enable_discount_pkg',
+ )
+%>
+
+</TABLE>
+
+<BR>
+<INPUT NAME="submit" TYPE="submit" VALUE="Discount package" <% $pkgdiscountnum ? '' : 'DISABLED' %>>
+
+</FORM>
+</BODY>
+</HTML>
+
+<%init>
+
+#some false laziness w/misc/change_pkg.cgi
+
+my $conf = new FS::Conf;
+
+my $curuser = $FS::CurrentUser::CurrentUser;
+
+die "access denied"
+ unless $curuser->access_right('Discount customer package');
+
+my $pkgnum = scalar($cgi->param('pkgnum'));
+$pkgnum =~ /^(\d+)$/ or die "illegal pkgnum $pkgnum";
+$pkgnum = $1;
+
+my $pkgdiscountnum = '';
+
+my $cust_pkg =
+ qsearchs({
+ 'table' => 'cust_pkg',
+ 'addl_from' => 'LEFT JOIN cust_main USING ( custnum )',
+ 'hashref' => { 'pkgnum' => $pkgnum },
+ 'extra_sql' => ' AND '. $curuser->agentnums_sql,
+ }) or die "unknown pkgnum $pkgnum";
+
+#my $cust_main = $cust_pkg->cust_main
+# or die "can't get cust_main record for custnum ". $cust_pkg->custnum.
+# " ( pkgnum ". cust_pkg->pkgnum. ")";
+
+my $part_pkg = $cust_pkg->part_pkg;
+
+</%init>
diff --git a/httemplate/edit/process/cust_pkg_discount.html b/httemplate/edit/process/cust_pkg_discount.html
new file mode 100644
index 000000000..4a31b922a
--- /dev/null
+++ b/httemplate/edit/process/cust_pkg_discount.html
@@ -0,0 +1,51 @@
+% if ($error) {
+% $cgi->param('error', $error);
+% $cgi->redirect(popurl(3). 'edit/cust_pkg_discount.html?'. $cgi->query_string );
+% } else {
+
+ <% header("Discount applied") %>
+ <SCRIPT TYPE="text/javascript">
+ window.top.location.reload();
+ </SCRIPT>
+ </BODY>
+ </HTML>
+
+% }
+<%init>
+
+my $curuser = $FS::CurrentUser::CurrentUser;
+
+die "access denied"
+ unless $curuser->access_right('Discount customer package');
+
+#this search is really for security wrt agent virt...
+#maybe move it to the cust_pkg_discount->insert call?
+my $cust_pkg = qsearchs({
+ #'select' => 'cust_pkg.*',
+ 'table' => 'cust_pkg',
+ 'addl_from' => 'LEFT JOIN cust_main USING ( custnum )',
+ 'hashref' => { 'pkgnum' => scalar($cgi->param('pkgnum')), },
+ 'extra_sql' => ' AND '. $curuser->agentnums_sql,
+});
+die 'unknown pkgnum' unless $cust_pkg;
+
+#XXX something not unlike this for custom discounts
+#if ( $cgi->param('locationnum') == -1 ) {
+# my $cust_location = new FS::cust_location {
+# 'custnum' => $cust_pkg->custnum,
+# map { $_ => scalar($cgi->param($_)) }
+# qw( address1 address2 city county state zip country )
+# };
+# $change{'cust_location'} = $cust_location;
+#}
+
+my $cust_pkg_discount = new FS::cust_pkg_discount {
+ 'pkgnum' => $cust_pkg->pkgnum,
+ 'discountnum' => scalar($cgi->param('discountnum')),
+ 'months_used' => 0,
+ 'end_date' => '', #XXX
+ 'otaker' => $curuser->username,
+};
+my $error = $cust_pkg_discount->insert;
+
+</%init>