[freeside-commits] branch FREESIDE_4_BRANCH updated. c565f9d78ae95bf3a4dc051e3bfbd356d9f4ff38

Mark Wells mark at 420.am
Wed Dec 30 23:01:59 PST 2015


The branch, FREESIDE_4_BRANCH has been updated
       via  c565f9d78ae95bf3a4dc051e3bfbd356d9f4ff38 (commit)
       via  8d41520e7b5f1b54ae321d8c2de25249a2856833 (commit)
      from  cbbd50ee14704f15c2f7c390ba0ee03b8b0175c4 (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 c565f9d78ae95bf3a4dc051e3bfbd356d9f4ff38
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 8d41520e7b5f1b54ae321d8c2de25249a2856833
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