(pkg-balances) change package of unapplied payments and credits, RT#22198
[freeside.git] / httemplate / edit / process / cust_pay-pkgnum.html
diff --git a/httemplate/edit/process/cust_pay-pkgnum.html b/httemplate/edit/process/cust_pay-pkgnum.html
new file mode 100755 (executable)
index 0000000..d9a92a1
--- /dev/null
@@ -0,0 +1,35 @@
+%if ($error) {
+%  $cgi->param('error', $error);
+<% $cgi->redirect(popurl(2). 'cust_pay-pkgnum.html?'. $cgi->query_string ) %>
+%} else {
+<% header(emt('Payment package changed')) %>
+    <SCRIPT TYPE="text/javascript">
+      window.top.location.reload();
+    </SCRIPT>
+
+    </BODY></HTML>
+%}
+<%init>
+
+my $conf = FS::Conf->new;
+
+die "access denied"
+  unless $FS::CurrentUser::CurrentUser->access_right('Apply credit'); #own ACL?
+
+$cgi->param('paynum') =~ /^(\d+)$/
+  or die "Illegal paynum: ". $cgi->param('paynum');
+my $paynum = $1;
+
+my $cust_pay = qsearchs({
+  'select'    => 'cust_pay.*',
+  'table'     => 'cust_pay',
+  'addl_from' => 'LEFT JOIN cust_main USING ( custnum )',
+  'hashref'   => { paynum => scalar($cgi->param('paynum')), },
+  'extra_sql' => ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql,
+})
+  or die 'unknown payment';
+
+$cust_pay->pkgnum( $cgi->param('pkgnum') );
+my $error = $cust_pay->replace;
+
+</%init>