repeatability cleanup, #37340
authorMark Wells <mark@freeside.biz>
Mon, 31 Aug 2015 23:31:37 +0000 (16:31 -0700)
committerMark Wells <mark@freeside.biz>
Mon, 31 Aug 2015 23:31:37 +0000 (16:31 -0700)
FS/FS/TicketSystem/RT_External.pm
FS/FS/UI/Web.pm
FS/FS/cdr.pm
FS/FS/part_pkg/prorate_calendar.pm
httemplate/browse/part_pkg.cgi
httemplate/browse/part_svc.cgi
httemplate/edit/part_pkg.cgi
httemplate/elements/email-link.html
httemplate/elements/form-create_ticket.html
httemplate/search/cust_bill.html

index c2aac2d..20d78c8 100644 (file)
@@ -316,22 +316,22 @@ sub href_params_new_ticket {
   my $subtype = $object->table;
   my $pkey = $object->get($object->primary_key);
 
-  my %param = (
+  my @param = (
     'Queue'       => ($cust_main->agent->ticketing_queueid || $default_queueid),
     'new-MemberOf'=> "freeside://freeside/$subtype/$pkey",
     'Requestors'  => $requestors,
   );
 
-  ( $self->baseurl.'Ticket/Create.html', %param );
+  ( $self->baseurl.'Ticket/Create.html', @param );
 }
 
 sub href_new_ticket {
   my $self = shift;
 
-  my( $base, %param ) = $self->href_params_new_ticket(@_);
+  my( $base, @param ) = $self->href_params_new_ticket(@_);
 
   my $uri = new URI $base;
-  $uri->query_form(%param);
+  $uri->query_form(@param);
   $uri;
 
 }
index 69de5e1..d73d9cf 100644 (file)
@@ -623,6 +623,7 @@ sub random_id {
   if (!defined $NO_RANDOM_IDS) {
     my $conf = FS::Conf->new;
     $NO_RANDOM_IDS = $conf->exists('no_random_ids') ? 1 : 0;
+    warn "TEST MODE--RANDOM ID NUMBERS DISABLED\n" if $NO_RANDOM_IDS;
   }
   if ( $NO_RANDOM_IDS ) {
     if ( $digits > 0 ) {
index db9832a..cdca6fc 100644 (file)
@@ -1458,7 +1458,7 @@ as keys (for use with part_pkg::voip_cdr) and "pretty" format names as values.
 sub invoice_formats {
   map { ($_ => $export_names{$_}->{'name'}) }
     grep { $export_names{$_}->{'invoice_header'} }
-    keys %export_names;
+    sort keys %export_names;
 }
 
 =item invoice_header FORMAT
index 83a80f5..c50cae0 100644 (file)
@@ -36,7 +36,7 @@ use base 'FS::part_pkg::flat';
   },
   'fieldorder' => [ 'cutoff_day', 'prorate_defer_bill', 'prorate_round_day', 'prorate_verbose' ],
   'freq' => 'm',
-  'weight' => 20,
+  'weight' => 23,
 );
 
 my %freq_max_days = ( # the length of the shortest period of each cycle type
index 2769f85..11eca67 100755 (executable)
@@ -537,6 +537,7 @@ push @fields,
                                 },
                               ];
                             }
+                        sort
                         grep { $options{$_} =~ /\S/ } 
                         grep { $_ !~ /^(setup|recur)_fee$/ 
                                and $_ !~ /^report_option_\d+$/ }
index ec5f321..88f8d8d 100755 (executable)
@@ -161,7 +161,7 @@ function part_export_areyousure(href) {
 %     }
 %   
 %     my($n1)='';
-%     foreach my $field ( @fields ) {
+%     foreach my $field ( sort @fields ) {
 %
 %       #a few lines of false laziness w/edit/part_svc.cgi
 %       my $def = FS::part_svc->svc_table_fields($svcdb)->{$field};
index bdceb33..2802ddc 100755 (executable)
@@ -866,9 +866,13 @@ my $html_bottom = sub {
    #$html .= '</SELECT></TD></TR>';
   
     my $href = $plans{$layer}->{'fields'};
-    my @fields = exists($plans{$layer}->{'fieldorder'})
-                   ? @{$plans{$layer}->{'fieldorder'}}
-                   : keys %{ $href };
+    my @fields;
+    if ( $plans{$layer}->{'fieldorder'} ) {
+      @fields = @{ $plans{$layer}->{'fieldorder'} };
+    } else {
+      warn "FS::part_pkg::$layer has no fieldorder.\n";
+      @fields = keys %$href;
+    }
     
     # hash of dependencies for each of the Pricing Plan fields.
     # make sure NOT to use double-quotes inside the 'msg' value.
@@ -906,7 +910,8 @@ my $html_bottom = sub {
         next if !$display;
       }
 
-      $html .= '<TR><TD ALIGN="right">'. $href->{$field}{'name'}. '</TD><TD>';
+      $html .= '<TR><TD ALIGN="right">'. $href->{$field}{'name'}. '</TD><TD>
+      ';
   
       my $format = sub { shift };
       $format = $href->{$field}{'format'} if exists($href->{$field}{'format'});
@@ -1005,9 +1010,11 @@ my $html_bottom = sub {
       $html .= '</TD></TR>';
     }
     $html .= '</TABLE>';
-  
-    $html .= qq(<INPUT TYPE="hidden" NAME="${layer}__OPTIONS" VALUE=").
-             join(',', keys %{ $href } ). '">';
+    $html .= include('/elements/hidden.html',
+                field => $layer.'__OPTIONS',
+                value => join(',', @fields)
+             );
   
     $html;
   
index 2612faa..16935cf 100644 (file)
@@ -10,7 +10,8 @@ die "'table' required" if !$table;
 die "'search_hash' required" if !$search_hash;
 
 my $uri = new URI;
-$uri->query_form($search_hash);
+my @params = map { $_, $search_hash->{$_} } sort keys %$search_hash;
+$uri->query_form(@params);
 my $query = $uri->query;
 my $label = ($opt{'label'} || 'Email a notice to these customers');
 </%init>
index 362e823..d76c0d8 100644 (file)
@@ -6,7 +6,7 @@ function updateTicketLink() {
   link.href = "<% $new_base.'?'.
     join(';', map(
       { ($_ eq 'Queue') ? () : "$_=$new_param{$_}"}
-    keys %new_param),'Queue=') %>" + selector.options[selector.selectedIndex].value;
+    sort keys %new_param),'Queue=') %>" + selector.options[selector.selectedIndex].value;
 }
 </SCRIPT>
 <A NAME="tickets"><FONT CLASS="fsinnerbox-title">Tickets</FONT></A>
index 62f5f7a..88e291b 100755 (executable)
@@ -197,7 +197,7 @@ my $html_init = join("\n", map {
  ( my $action = $_ ) =~ s/_$//;
  include('/elements/progress-init.html',
            $_.'form',
-           [ keys %search ],
+           [ sort keys %search ],
            "../misc/${_}invoices.cgi",
            { 'message' => "Invoices re-${action}ed" }, #would be nice to show the number of them, but...
            $_, #key
@@ -207,7 +207,7 @@ my $html_init = join("\n", map {
          my @values = ref($search{$f}) ? @{ $search{$f} } : $search{$f};
          map qq!<INPUT TYPE="hidden" NAME="$f" VALUE="$_">!, @values;
        }
-       keys %search
+       sort keys %search
  ),
  qq!</FORM>!
 } qw( print_ email_ fax_ ftp_ spool_ ) ).