cust_attachment improvement, RT#4964 and #6225
[freeside.git] / httemplate / misc / cust_attachment.cgi
diff --git a/httemplate/misc/cust_attachment.cgi b/httemplate/misc/cust_attachment.cgi
new file mode 100644 (file)
index 0000000..d1ec777
--- /dev/null
@@ -0,0 +1,34 @@
+<% '',$cgi->redirect(popurl(2). "browse/cust_attachment.html?$browse_opts") %>
+<%init>
+
+$cgi->param('action') =~ /^(Delete|Undelete|Purge) selected$/
+  or die "Illegal action";
+my $action = $1;
+
+my $browse_opts = join(';', map { $_.'='.$cgi->param($_) } 
+    qw( orderby show_deleted )
+    );
+
+die "access denied"
+  unless $FS::CurrentUser::CurrentUser->access_right("$action attachment");
+
+foreach my $attachnum (
+    map { /^attachnum(\d+)$/; $1; } grep /^attachnum\d+$/, $cgi->param
+  ) {
+  my $attach = qsearchs('cust_attachment', { 'attachnum' => $attachnum });
+  my $error;
+  if ( $action eq 'Delete' and !$attach->disabled ) {
+    $attach->disabled(time);
+    $error = $attach->replace;
+  }
+  elsif ( $action eq 'Undelete' and $attach->disabled ) {
+    $attach->disabled('');
+    $error = $attach->replace;
+  }
+  elsif ( $action eq 'Purge' and $attach->disabled ) {
+    $error = $attach->delete;
+  }
+  die $error if $error;
+}
+
+</%init>