[freeside-commits] branch master updated. 62e6a2b1c99086f3a9097f2d9d29fd8c414564b8

Mark Wells mark at 420.am
Wed Dec 30 23:02:00 PST 2015


The branch, master has been updated
       via  62e6a2b1c99086f3a9097f2d9d29fd8c414564b8 (commit)
       via  44e840908ac339de1c9d430e9565e03d4bfa5ec3 (commit)
      from  5a0e11b8136c2138b8044c3d1343b9ae4fafd38c (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 62e6a2b1c99086f3a9097f2d9d29fd8c414564b8
Author: Mark Wells <mark at freeside.biz>
Date:   Wed Dec 30 18:51:09 2015 -0800

    add option for exports to avoid suspending services, #20739

diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm
index a10b5c0..56bdfc3 100644
--- a/FS/FS/Schema.pm
+++ b/FS/FS/Schema.pm
@@ -4487,6 +4487,8 @@ sub tables_hashref {
         'exporttype', 'varchar',     '', $char_d, '', '', 
         'nodomain',      'char', 'NULL',       1, '', '', 
         'default_machine','int', 'NULL',      '', '', '',
+        'no_suspend',    'char', 'NULL',       1, '', '',
+        # could also have 'no_insert', 'no_replace', etc.
       ],
       'primary_key'  => 'exportnum',
       'unique'       => [],
diff --git a/FS/FS/part_export.pm b/FS/FS/part_export.pm
index f3d9774..d6357fd 100644
--- a/FS/FS/part_export.pm
+++ b/FS/FS/part_export.pm
@@ -58,6 +58,12 @@ fields are currently supported:
 
 =item nodomain - blank or "Y" : usernames are exported to this service with no domain
 
+=item default_machine - For exports that require a machine to be selected for
+each service (see L<FS::svc_export_machine>), the one to use as the default.
+
+=item no_suspend - Don't export service suspensions. In the future there may
+be "no_*" options for the other service actions.
+
 =back
 
 =head1 METHODS
@@ -337,6 +343,7 @@ sub check {
     || $self->ut_textn('exportname')
     || $self->ut_domainn('machine')
     || $self->ut_alpha('exporttype')
+    || $self->ut_flag('no_suspend')
   ;
 
   if ( $self->machine eq '_SVC_MACHINE' ) {
diff --git a/FS/FS/svc_Common.pm b/FS/FS/svc_Common.pm
index 35415a2..73658f6 100644
--- a/FS/FS/svc_Common.pm
+++ b/FS/FS/svc_Common.pm
@@ -1154,7 +1154,9 @@ Runs the provided export hook (i.e. "suspend", "unsuspend") for this service.
 sub export {
   my( $self, $method ) = ( shift, shift );
 
+  # $method must start with export_, $action must be the part after that
   $method = "export_$method" unless $method =~ /^export_/;
+  my ($action) = $method =~ /^export_(\w+)/;
 
   local $SIG{HUP} = 'IGNORE';
   local $SIG{INT} = 'IGNORE';
@@ -1171,6 +1173,7 @@ sub export {
   unless ( $noexport_hack ) {
     foreach my $part_export ( $self->cust_svc->part_svc->part_export ) {
       next unless $part_export->can($method);
+      next if $part_export->get("no_$action"); # currently only 'no_suspend'
       my $error = $part_export->$method($self, @_);
       if ( $error ) {
         $dbh->rollback if $oldAutoCommit;
diff --git a/httemplate/browse/part_export.cgi b/httemplate/browse/part_export.cgi
index af988d3..bbb723d 100755
--- a/httemplate/browse/part_export.cgi
+++ b/httemplate/browse/part_export.cgi
@@ -38,6 +38,11 @@ function part_export_areyousure(href) {
       <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
         <% $part_export->label_html %>
         (<A HREF="<% $p %>edit/part_export.cgi?<% $part_export->exportnum %>">edit</A> | <A HREF="javascript:part_export_areyousure('<% $p %>misc/delete-part_export.cgi?<% $part_export->exportnum %>')">delete</A>)
+%       if ( $part_export->no_suspend ) {
+        <P STYLE="position: absolute">
+        This export will not suspend services.
+        </P>
+%       }
 %       if ( my @actions = $part_export->actions ) {
         <P STYLE="position: absolute">
         Management:
diff --git a/httemplate/edit/part_export.cgi b/httemplate/edit/part_export.cgi
index 3820931..5411feb 100644
--- a/httemplate/edit/part_export.cgi
+++ b/httemplate/edit/part_export.cgi
@@ -285,6 +285,11 @@ my $widget = new HTML::Widgets::SelectLayers(
       $html .= '</TD></TR>';
     }
 
+    $html .= '<TR><TD ALIGN="right">Do not suspend services</TD>' .
+                '<TD><INPUT TYPE="checkbox" NAME="no_suspend" VALUE="Y"';
+    $html .= ' CHECKED' if $part_export->no_suspend eq 'Y';
+    $html .= '></TD></TR>';
+
     $html .= '</TABLE>';
 
     # false laziness with config_element above

commit 44e840908ac339de1c9d430e9565e03d4bfa5ec3
Author: Mark Wells <mark at freeside.biz>
Date:   Wed Dec 30 16:20:51 2015 -0800

    minor UI fix for future package change + advance billing, #37870

diff --git a/httemplate/view/cust_main/packages/status.html b/httemplate/view/cust_main/packages/status.html
index aa5320b..d76c979 100644
--- a/httemplate/view/cust_main/packages/status.html
+++ b/httemplate/view/cust_main/packages/status.html
@@ -136,7 +136,7 @@
 %     if ( $change_from ) { # future change
 %
           <% pkg_status_row_colspan( $cust_pkg, emt('Waiting for package change'), '', %opt ) %>
-          <% pkg_status_row( $cust_pkg,
+          <% pkg_status_row_if( $cust_pkg,
                              emt('Will be activated on'),
                              'start_date',
                              %opt ) %>
@@ -284,8 +284,9 @@
 %               }
 %           }
 
-%           if ( !$supplemental ) {
-%           # suspension actions--always available
+%           if ( !$supplemental and !$change_from ) {
+%           # suspension actions--always available for a package that's
+%           # independently active
 %             if ( $curuser->access_right('Suspend customer package') ) {
                 ( <% pkg_suspend_link($cust_pkg) %> )
 %             }

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/Schema.pm                                |    2 ++
 FS/FS/part_export.pm                           |    7 +++++++
 FS/FS/svc_Common.pm                            |    3 +++
 httemplate/browse/part_export.cgi              |    5 +++++
 httemplate/edit/part_export.cgi                |    5 +++++
 httemplate/view/cust_main/packages/status.html |    7 ++++---
 6 files changed, 26 insertions(+), 3 deletions(-)




More information about the freeside-commits mailing list