[freeside-commits] branch master updated. d45dd4a826f314fb5459747590d3e11cd80c211f

Ivan Kohler ivan at freeside.biz
Fri Feb 9 19:10:04 PST 2018


The branch, master has been updated
       via  d45dd4a826f314fb5459747590d3e11cd80c211f (commit)
       via  4b67c9f8cfc9f944b7758e7e69ac1f9f188ffa47 (commit)
       via  5847b9f9d69019e8c254da74b484e2b55f1507a1 (commit)
       via  304ac49e31c848e13ca8dafddade660d49e5eda6 (commit)
       via  71afcc9bb311f5b200555392bd4a6c80aaa0f6d5 (commit)
       via  b4fa2aa2f73721c6f2c467c73b25e20f59cb04ea (commit)
       via  4e7954f0f0703afc22b649ce38aea4e63db81daa (commit)
       via  438d76c8c33eeac76e78b4d5339bbed5049da05d (commit)
       via  7f1abb22f7e7256eb4f2eee18791173590f3d9e3 (commit)
       via  e9606ad5b99b84bdea7c4881dd9aa49ed5fabe5f (commit)
       via  66ce0d96048636c55a7f7e5b4965bbe68565bde2 (commit)
       via  f4209091a9f7120f1961ab2d2efd4d3a00b94268 (commit)
       via  73bc4b116c6436e5992058c7909437a0ff9884a6 (commit)
       via  5a4575731851fce0eba09f9e1b5b0ff589ded357 (commit)
       via  046409735189fe40a1d349c4f1902da2bc1d71b2 (commit)
       via  f3e7167443a72ca8136dfec7d67d8e5c8d648611 (commit)
       via  ebd7d1be21224877db7dff9972d02aedc9b35cd6 (commit)
       via  86ab93725f1e7b0cf6f88bea5370bc35a20b08a5 (commit)
       via  274dceef8a42ae197e220e42af300791687f305e (commit)
       via  cf1c4c688aa010c5995e9d255b46e61a592a47f2 (commit)
       via  d9100e5450673da22735c22efa212d0fb32b6d30 (commit)
      from  15d596e3090f3bde642917b56563736cd1ee2e90 (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 d45dd4a826f314fb5459747590d3e11cd80c211f
Merge: 4b67c9f8c 15d596e30
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Fri Feb 9 19:10:00 2018 -0800

    Merge branch 'master' of git.freeside.biz:/home/git/freeside


commit 4b67c9f8cfc9f944b7758e7e69ac1f9f188ffa47
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Fri Feb 9 19:09:57 2018 -0800

    miss you, mark

diff --git a/bin/update-rates b/bin/update-rates
new file mode 100644
index 000000000..b16fc7f78
--- /dev/null
+++ b/bin/update-rates
@@ -0,0 +1,42 @@
+#!/usr/bin/perl
+
+use FS::UID 'adminsuidsetup';
+use FS::Record qw(dbh qsearch qsearchs);
+use FS::tax_class;
+use FS::tax_rate;
+use strict;
+
+adminsuidsetup('ivan');
+$FS::UID::AutoCommit = 0;
+my @location = ( geocode => { op => 'like', value => '24%' } );
+
+# convert TELECOMM RELAY SYSTEMS SURCHARGE:CENTREX LINES
+# to      TELECOMM RELAY SYSTEMS SURCHARGE:TELECOMMUNICATIONS
+my $old_taxclassnum = qsearchs('tax_class', { 'taxclass' => '09:35' })->taxclassnum;
+my $new_taxclassnum = qsearchs('tax_class', { 'taxclass' => '09:00' })->taxclassnum;
+my $error;
+
+my @bindings = qsearch('part_pkg_taxrate', {
+  'taxclassnum' => $old_taxclassnum,
+  @location
+});
+print "remapping ".scalar(@bindings)." tax rate bindings.\n";
+foreach my $part_pkg_taxrate (@bindings) {
+  $part_pkg_taxrate->set('taxclassnum', $new_taxclassnum);
+  $error = $part_pkg_taxrate->replace;
+  die $part_pkg_taxrate->pkgtaxratenum .": $error" if $error;
+}
+
+# change the fee to 0.05.
+my @tax_rates = qsearch('tax_rate', {
+  taxclassnum => $new_taxclassnum,
+  @location
+});
+print "changing rate on ".scalar(@tax_rates)." tax rate definitions.\n";
+foreach my $tax_rate (@tax_rates) {
+  $tax_rate->set('fee', 0.05);
+  my $error = $tax_rate->replace;
+  die $tax_rate->taxnum . ": $error\n" if $error;
+}
+
+dbh->commit;

commit 5847b9f9d69019e8c254da74b484e2b55f1507a1
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Fri Feb 9 19:09:03 2018 -0800

    capitalization

diff --git a/httemplate/elements/menu.html b/httemplate/elements/menu.html
index defcc494f..3b3d244db 100644
--- a/httemplate/elements/menu.html
+++ b/httemplate/elements/menu.html
@@ -516,8 +516,9 @@ tie my %tools_importing, 'Tie::IxHash',
   'Customers'            => [ $fsurl.'misc/cust_main-import.cgi', '' ],
   'Package definitions'  => [ $fsurl.'misc/part_pkg-import.html', '' ],
   'Customer packages'    => [ $fsurl.'misc/cust_pkg-import.html', '' ],
+#  'Customer broadband services' => [ $fsurl.'misc/svc_broadband-import.html', '' ],
   'Customer notes'       => [ $fsurl.'misc/cust_main_note-import.html', '' ],
-  'Customer Contacts'    => [ $fsurl.'misc/contact-import.cgi', '' ],
+  'Customer contacts'    => [ $fsurl.'misc/contact-import.cgi', '' ],
   'One-time charges'     => [ $fsurl.'misc/cust_main-import_charges.cgi', '' ],
   'Payments'             => [ $fsurl.'misc/cust_pay-import.cgi', '' ],
   'Credits'              => [ $fsurl.'misc/cust_credit-import.html', '' ],

commit 304ac49e31c848e13ca8dafddade660d49e5eda6
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Fri Feb 9 18:59:14 2018 -0800

    cdr.cdrbatch has been migrated to cdr.cdrbatchnum by now

diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm
index 6d7520bd9..b2df048c4 100644
--- a/FS/FS/Schema.pm
+++ b/FS/FS/Schema.pm
@@ -5624,9 +5624,6 @@ sub tables_hashref {
         'sessionnum',       'int',    'NULL',      '', '', '',
         'subscriber',   'varchar',    'NULL', $char_d, '', '',
 
-        #old
-        'cdrbatch',     'varchar',    'NULL',     255, '', '',
-        #new
         'cdrbatchnum',      'int',    'NULL',      '', '', '',
 
         # FK to cust_bill_pkg_detail; having a value here absolutely means
diff --git a/FS/FS/cdr.pm b/FS/FS/cdr.pm
index 4fa360641..9ec0f3288 100644
--- a/FS/FS/cdr.pm
+++ b/FS/FS/cdr.pm
@@ -170,8 +170,6 @@ following fields are currently supported:
 
 =item freesiderewritestatus - NULL, done, skipped
 
-=item cdrbatch
-
 =item cdrbatchnum
 
 =item detailnum - Link to invoice detail (L<FS::cust_bill_pkg_detail>)
@@ -242,7 +240,6 @@ sub table_info {
         'svcnum'                => 'Freeside service',
         'freesidestatus'        => 'Freeside status',
         'freesiderewritestatus' => 'Freeside rewrite status',
-        'cdrbatch'              => 'Legacy batch',
         'cdrbatchnum'           => 'Batch',
         'detailnum'             => 'Freeside invoice detail line',
     },

commit 71afcc9bb311f5b200555392bd4a6c80aaa0f6d5
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Fri Feb 9 18:55:03 2018 -0800

    journal cdrbatch -> cdrbatchnum upgrade

diff --git a/FS/FS/cdr.pm b/FS/FS/cdr.pm
index a7d002898..4fa360641 100644
--- a/FS/FS/cdr.pm
+++ b/FS/FS/cdr.pm
@@ -172,6 +172,8 @@ following fields are currently supported:
 
 =item cdrbatch
 
+=item cdrbatchnum
+
 =item detailnum - Link to invoice detail (L<FS::cust_bill_pkg_detail>)
 
 =back
@@ -1865,41 +1867,6 @@ sub process_batch_import {
 #    @columns = map { s/^ +//; $_; } @columns;
 #  }
 
-# _ upgrade_data
-#
-# Used by FS::Upgrade to migrate to a new database.
-
-sub _upgrade_data {
-  my ($class, %opts) = @_;
-
-  warn "$me upgrading $class\n" if $DEBUG;
-
-  my $sth = dbh->prepare(
-    'SELECT DISTINCT(cdrbatch) FROM cdr WHERE cdrbatch IS NOT NULL'
-  ) or die dbh->errstr;
-
-  $sth->execute or die $sth->errstr;
-
-  my %cdrbatchnum = ();
-  while (my $row = $sth->fetchrow_arrayref) {
-
-    my $cdr_batch = qsearchs( 'cdr_batch', { 'cdrbatch' => $row->[0] } );
-    unless ( $cdr_batch ) {
-      $cdr_batch = new FS::cdr_batch { 'cdrbatch' => $row->[0] };
-      my $error = $cdr_batch->insert;
-      die $error if $error;
-    }
-
-    $cdrbatchnum{$row->[0]} = $cdr_batch->cdrbatchnum;
-  }
-
-  $sth = dbh->prepare('UPDATE cdr SET cdrbatch = NULL, cdrbatchnum = ? WHERE cdrbatch IS NOT NULL AND cdrbatch = ?') or die dbh->errstr;
-
-  foreach my $cdrbatch (keys %cdrbatchnum) {
-    $sth->execute($cdrbatchnum{$cdrbatch}, $cdrbatch) or die $sth->errstr;
-  }
-
-}
 
 =item ip_addr_sql FIELD RANGE
 

commit b4fa2aa2f73721c6f2c467c73b25e20f59cb04ea
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Sun Feb 4 17:47:48 2018 -0800

    option to reprocess CDRs when voiding an invoice, RT#79001

diff --git a/FS/FS/cust_bill.pm b/FS/FS/cust_bill.pm
index 8b94dcc87..bd1b8bbec 100644
--- a/FS/FS/cust_bill.pm
+++ b/FS/FS/cust_bill.pm
@@ -215,7 +215,7 @@ sub insert {
 
 }
 
-=item void [ REASON ]
+=item void [ REASON [ , REPROCESS_CDRS ] ]
 
 Voids this invoice: deletes the invoice and adds a record of the voided invoice
 to the FS::cust_bill_void table (and related tables starting from
@@ -226,6 +226,7 @@ FS::cust_bill_pkg_void).
 sub void {
   my $self = shift;
   my $reason = scalar(@_) ? shift : '';
+  my $reprocess_cdrs = scalar(@_) ? shift : '';
 
   unless (ref($reason) || !$reason) {
     $reason = FS::reason->new_or_existing(
@@ -257,7 +258,7 @@ sub void {
   }
 
   foreach my $cust_bill_pkg ( $self->cust_bill_pkg ) {
-    my $error = $cust_bill_pkg->void($reason);
+    my $error = $cust_bill_pkg->void($reason, $reprocess_cdrs);
     if ( $error ) {
       $dbh->rollback if $oldAutoCommit;
       return $error;
@@ -3541,6 +3542,23 @@ sub _items_aging_balances {
   return map{ sprintf('%.2f',$_) } @aging_balances;
 }
 
+=item has_call_details
+
+Returns true if this invoice has call details.
+
+=cut
+
+sub has_call_details {
+  my $self = shift;
+  $self->scalar_sql("
+    SELECT 1 FROM cust_bill_pkg_detail
+             LEFT JOIN cust_bill_pkg USING (billpkgnum)
+      WHERE cust_bill_pkg_detail.format = 'C'
+        AND cust_bill_pkg.invnum = ?
+      LIMIT 1
+  ", $self->invnum);
+}
+
 =item call_details [ OPTION => VALUE ... ]
 
 Returns an array of CSV strings representing the call details for this invoice
diff --git a/FS/FS/cust_bill_pkg.pm b/FS/FS/cust_bill_pkg.pm
index e44a84709..77dce2476 100644
--- a/FS/FS/cust_bill_pkg.pm
+++ b/FS/FS/cust_bill_pkg.pm
@@ -324,7 +324,7 @@ sub insert {
 
 }
 
-=item void [ REASON ]
+=item void [ REASON [ , REPROCESS_CDRS ] ]
 
 Voids this line item: deletes the line item and adds a record of the voided
 line item to the FS::cust_bill_pkg_void table (and related tables).
@@ -334,6 +334,7 @@ line item to the FS::cust_bill_pkg_void table (and related tables).
 sub void {
   my $self = shift;
   my $reason = scalar(@_) ? shift : '';
+  my $reprocess_cdrs = scalar(@_) ? shift : '';
 
   unless (ref($reason) || !$reason) {
     $reason = FS::reason->new_or_existing(
@@ -373,6 +374,9 @@ sub void {
     cust_tax_exempt_pkg
     cust_bill_pkg_fee
   )) {
+    my %delete_args = ();
+    $delete_args{'reprocess_cdrs'} = $reprocess_cdrs
+      if $table eq 'cust_bill_pkg_detail';
 
     foreach my $linked ( qsearch($table, { billpkgnum=>$self->billpkgnum }) ) {
 
@@ -380,7 +384,7 @@ sub void {
       my $void = $vclass->new( {
         map { $_ => $linked->get($_) } $linked->fields
       });
-      my $error = $void->insert || $linked->delete;
+      my $error = $void->insert || $linked->delete(%delete_args);
       if ( $error ) {
         $dbh->rollback if $oldAutoCommit;
         return $error;
@@ -863,7 +867,7 @@ sub _item_discount {
   # show introductory rate as a pseudo-discount
   if (!$d) { # this will conflict with showing real discounts
     my $part_pkg = $self->part_pkg;
-    if ( $part_pkg and $part_pkg->option('show_as_discount') ) {
+    if ( $part_pkg and $part_pkg->option('show_as_discount',1) ) {
       my $cust_pkg = $self->cust_pkg;
       my $intro_end = $part_pkg->intro_end($cust_pkg);
       my $_date = $self->cust_bill->_date;
diff --git a/FS/FS/cust_bill_pkg_detail.pm b/FS/FS/cust_bill_pkg_detail.pm
index dd118c1b2..19b15f7dd 100644
--- a/FS/FS/cust_bill_pkg_detail.pm
+++ b/FS/FS/cust_bill_pkg_detail.pm
@@ -106,21 +106,37 @@ sub insert {
   '';
 }
 
-=item delete
+=item delete [ ARG => VALUE ... ]
 
 Delete this record from the database.
 
+If the "reprocess_cdrs" argument is set to true, resets the status of any
+related CDRs (and deletes their associated cdr_termination records, if any).
+
 =cut
 
 sub delete {
-  my $self = shift;
+  my( $self, %args ) = @_;
+
   my $error = $self->SUPER::delete;
   return $error if $error;
+
   foreach my $cdr (qsearch('cdr', { detailnum => $self->detailnum })) {
+
     $cdr->set('detailnum', '');
+    $cdr->set('freesidestatus', '') if $args{'reprocess_cdrs'};
     $error = $cdr->replace;
     return "error unlinking CDR #" . $cdr->acctid . ": $error" if $error;
+
+    #well, technically this could have been on other invoices / termination
+    # partners... separate flag?
+    $self->scalar_sql( 'DELETE FROM cdr_termination WHERE acctid = ?',
+                       $cdr->acctid )
+      if $args{'reprocess_cdrs'};
+
   }
+
+  '';
 }
 
 =item replace OLD_RECORD
diff --git a/httemplate/misc/process/void-cust_bill.html b/httemplate/misc/process/void-cust_bill.html
index 32a2fc591..49dda185e 100755
--- a/httemplate/misc/process/void-cust_bill.html
+++ b/httemplate/misc/process/void-cust_bill.html
@@ -19,8 +19,8 @@ my $invnum = $1;
 
 my $cust_bill = qsearchs('cust_bill',{'invnum'=>$invnum});
 
-my $custnum = $cust_bill->custnum;
-
-my $error = $cust_bill->void( scalar($cgi->param('reason')) );
+my $error = $cust_bill->void( scalar($cgi->param('reason')),
+                              scalar($cgi->param('reprocess_cdrs')),
+                            );
 
 </%init>
diff --git a/httemplate/misc/void-cust_bill.html b/httemplate/misc/void-cust_bill.html
index e4e4705d7..e5fbdc6d5 100755
--- a/httemplate/misc/void-cust_bill.html
+++ b/httemplate/misc/void-cust_bill.html
@@ -18,6 +18,14 @@
              'cgi'            => $cgi
 &>
 
+% if ( $cust_bill->has_call_details ) {
+  <& /elements/tr-checkbox.html,
+       label => 'Reprocess CDRs',
+       field => 'reprocess_cdrs',
+       value => '1',
+  &>
+% }
+
 </TABLE>
 
 <BR>

commit 4e7954f0f0703afc22b649ce38aea4e63db81daa
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Sat Feb 3 12:57:51 2018 -0800

    alpha sort CDR formats, weight has lost all usefulness

diff --git a/FS/FS/cdr.pm b/FS/FS/cdr.pm
index c4e9c47a3..a7d002898 100644
--- a/FS/FS/cdr.pm
+++ b/FS/FS/cdr.pm
@@ -1659,7 +1659,12 @@ foreach my $INC ( @INC ) {
 
 tie my %import_formats, 'Tie::IxHash',
   map  { $_ => $cdr_info{$_}->{'name'} }
-  sort { $cdr_info{$a}->{'weight'} <=> $cdr_info{$b}->{'weight'} }
+  
+  #this is not doing anything useful anymore
+  #sort { $cdr_info{$a}->{'weight'} <=> $cdr_info{$b}->{'weight'} }
+  #so just sort alpha
+  sort { lc($cdr_info{$a}->{'name'}) cmp lc($cdr_info{$b}->{'name'}) }
+
   grep { exists($cdr_info{$_}->{'import_fields'}) }
   keys %cdr_info;
 

commit 438d76c8c33eeac76e78b4d5339bbed5049da05d
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Thu Feb 1 15:12:44 2018 -0800

    fix masondata perm bs

diff --git a/debian/freeside.postinst b/debian/freeside.postinst
index bdbb7a8d6..3e7dc2502 100644
--- a/debian/freeside.postinst
+++ b/debian/freeside.postinst
@@ -3,5 +3,8 @@
 #probably not needed with systemd
 /usr/sbin/update-rc.d freeside defaults 23 01
 
+chown -R freeside /usr/local/etc/freeside
+rm -fr  /usr/local/etc/freeside/masondata/*
+
 exit 0
 

commit 7f1abb22f7e7256eb4f2eee18791173590f3d9e3
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Thu Feb 1 14:57:54 2018 -0800

    torrus

diff --git a/debian/rules b/debian/rules
index 1eb312ba4..041c895a4 100755
--- a/debian/rules
+++ b/debian/rules
@@ -228,8 +228,9 @@ install-stamp: build-stamp
 
 	# Torrus 
 	
-	install -d ${TORRUS_CONF}
-	install -o root -m 755 htetc/freeside-torrus.conf $(TORRUS_CONF)/
+	#in freeside-webui package
+	#install -d ${TORRUS_CONF}
+	#install -o root -m 755 htetc/freeside-torrus.conf $(TORRUS_CONF)/
 
 	( cd torrus; \
 	torrus_user=freeside var_user=freeside var_group=freeside ./configure; \

commit e9606ad5b99b84bdea7c4881dd9aa49ed5fabe5f
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Wed Jan 31 13:14:46 2018 -0800

    ng selfservice deb9 packages

diff --git a/debian/control b/debian/control
index fc3bae1ce..2391f73f7 100644
--- a/debian/control
+++ b/debian/control
@@ -175,7 +175,7 @@ Description: Self-service portal html/cgi filesfor Freeside billing and trouble
 
 Package: freeside-ng-selfservice
 Architecture: all
-Depends: libapache2-mod-php5,php5-xmlrpc,apache2
+Depends: libapache2-mod-php|libapache2-mod-php5,php5-xmlrpc,apache2
 Recommends:
 Description: Next Generation Self-service portal for Freeside billing and trouble ticketing
  Freeside is a web-based billing and trouble ticketing application.

commit 66ce0d96048636c55a7f7e5b4965bbe68565bde2
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Wed Jan 24 17:49:00 2018 -0800

    fix billing error with intro rate packages when billing dates have been edited non-sensically (bill date set even though package is not billing yet), RT#78349

diff --git a/FS/FS/part_pkg/prorate_Mixin.pm b/FS/FS/part_pkg/prorate_Mixin.pm
index 1a7b1efc0..9e97cc593 100644
--- a/FS/FS/part_pkg/prorate_Mixin.pm
+++ b/FS/FS/part_pkg/prorate_Mixin.pm
@@ -205,7 +205,7 @@ sub prorate_setup {
         # For some reason (probably user override), the bill date has been set even
         # though the package isn't billing yet. Start billing as though that was the
         # start date.
-        $sdate = $cust_pkg->bill;
+        $$sdate = $cust_pkg->bill;
         $cust_pkg->setup($cust_pkg->bill);
       }
       # Now figure the start and end of the period that contains the start date.

commit f4209091a9f7120f1961ab2d2efd4d3a00b94268
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Wed Jan 24 15:29:03 2018 -0800

    fix initial employee add w/password, RT#32456

diff --git a/httemplate/edit/process/access_user.html b/httemplate/edit/process/access_user.html
index c31890653..fcd210f83 100644
--- a/httemplate/edit/process/access_user.html
+++ b/httemplate/edit/process/access_user.html
@@ -11,7 +11,7 @@
                                        'target_table' => 'access_group',
                                      },
                  'precheck_callback'        => \&precheck_callback,
-                 'post_new_object_callback' => \&post_new_object_callback,
+                 #'post_new_object_callback' => \&post_new_object_callback,
                  'noerror_callback'         => \&noerror_callback,
              )
 %>

commit 73bc4b116c6436e5992058c7909437a0ff9884a6
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Wed Jan 24 15:28:46 2018 -0800

    fix initial employee add w/password, RT#32456

diff --git a/httemplate/edit/process/access_user.html b/httemplate/edit/process/access_user.html
index f3024f1ba..c31890653 100644
--- a/httemplate/edit/process/access_user.html
+++ b/httemplate/edit/process/access_user.html
@@ -38,21 +38,24 @@ sub precheck_callback {
   return '';
 }
 
-sub post_new_object_callback {
+#sub post_new_object_callback {
+#  my( $cgi, $access_user ) = @_;
+#
+#  if ( length($cgi->param('_password')) ) {
+#    my $password = scalar($cgi->param('_password'));
+#    my $error = $access_user->is_password_allowed($password);
+#    #XXX and then bubble the error back up to the UI
+#  }
+#}
+
+sub noerror_callback {
   my( $cgi, $access_user ) = @_;
 
   if ( length($cgi->param('_password')) ) {
     my $password = scalar($cgi->param('_password'));
-    #my $error = $access_user->is_password_allowed($password)
-    #         || $access_user->change_password($password);
     $access_user->change_password($password);
   }
 
-}
-
-sub noerror_callback {
-  my( $cgi, $access_user ) = @_;
-
   #handle installer checkbox
   my @sched_item = $access_user->sched_item;
   my $sched_item = $sched_item[0];

commit 5a4575731851fce0eba09f9e1b5b0ff589ded357
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Wed Jan 24 15:23:29 2018 -0800

    fix initial employee add w/password, RT#32456

diff --git a/httemplate/edit/process/access_user.html b/httemplate/edit/process/access_user.html
index 54d2b0348..f3024f1ba 100644
--- a/httemplate/edit/process/access_user.html
+++ b/httemplate/edit/process/access_user.html
@@ -43,8 +43,9 @@ sub post_new_object_callback {
 
   if ( length($cgi->param('_password')) ) {
     my $password = scalar($cgi->param('_password'));
-    my $error = $access_user->is_password_allowed($password)
-             || $access_user->change_password($password);
+    #my $error = $access_user->is_password_allowed($password)
+    #         || $access_user->change_password($password);
+    $access_user->change_password($password);
   }
 
 }

commit 046409735189fe40a1d349c4f1902da2bc1d71b2
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Wed Jan 24 12:28:57 2018 -0800

    don't leave quotation side effects around, eek, RT#79310, RT#32489

diff --git a/FS/FS/quotation.pm b/FS/FS/quotation.pm
index 6b0c9145f..a3f061291 100644
--- a/FS/FS/quotation.pm
+++ b/FS/FS/quotation.pm
@@ -716,7 +716,10 @@ sub estimate {
     my $cust_main;
     if ( $cust_or_prospect->isa('FS::prospect_main') ) {
       $cust_main = $cust_or_prospect->convert_cust_main;
-      die "$cust_main (simulating customer signup)\n" unless ref $cust_main;
+      unless ( ref($cust_main) ) {
+        $temp_dbh->rollback;
+        die "$cust_main (simulating customer signup)\n";
+      }
       $fake_self->set('prospectnum', '');
       $fake_self->set('custnum', $cust_main->custnum);
     } else {
@@ -726,7 +729,10 @@ sub estimate {
     # order packages
     local($FS::cust_pkg::disable_start_on_hold) = 1;
     $error = $fake_self->order(\%pkgnum_of);
-    die "$error (simulating package order)\n" if $error;
+    if ( $error ) {
+      $temp_dbh->rollback;
+      die "$error (simulating package order)\n";
+    }
 
     my @new_pkgs = map { FS::cust_pkg->by_key($_) } values(%pkgnum_of);
 
@@ -739,7 +745,10 @@ sub estimate {
       'no_usage_reset'  => 1,
     );
     $error = $cust_main->bill(%bill_opt);
-    die "$error (simulating initial billing)\n" if $error;
+    if ( $error ) {
+      $temp_dbh->rollback;
+      die "$error (simulating initial billing)\n" if $error;
+    }
 
     # pick dates for future bills
     my %next_bill_pkgs;
@@ -755,7 +764,10 @@ sub estimate {
       $bill_opt{'return_bill'} = $return_bill[$i] = [];
       $bill_opt{'pkg_list'} = $next_bill_pkgs{$next_bill};
       $error = $cust_main->bill(%bill_opt);
-      die "$error (simulating recurring billing cycle $i)\n" if $error;
+      if ( $error ) {
+        $temp_dbh->rollback;
+        die "$error (simulating recurring billing cycle $i)\n";
+      }
       $i++;
     }
 

commit f3e7167443a72ca8136dfec7d67d8e5c8d648611
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Wed Jan 24 11:59:40 2018 -0800

    don't escape twice

diff --git a/httemplate/view/prospect_main.html b/httemplate/view/prospect_main.html
index 2fde797c6..f4dd4146f 100644
--- a/httemplate/view/prospect_main.html
+++ b/httemplate/view/prospect_main.html
@@ -108,8 +108,7 @@ my $prospect_main = qsearchs( {
 });
 die "Prospect not found!" unless $prospect_main;
 
-my $title = encode_entities($prospect_main->name);
-$title = mt("Prospect"). ": $title";
+my $title = mt("Prospect"). ': '. $prospect_main->name;
 $title .= ' ('.mt('DISABLED').')'
   if $prospect_main->disabled;
 

commit ebd7d1be21224877db7dff9972d02aedc9b35cd6
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Wed Jan 24 09:09:13 2018 -0800

    fix postinst?

diff --git a/debian/postinst b/debian/postinst
deleted file mode 100644
index 09f9daefd..000000000
--- a/debian/postinst
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-
-chown -R freeside /usr/local/etc/freeside
-/usr/sbin/update-rc.d freeside defaults 23 01
-/sbin/insserv -d
-rm -fr  /usr/local/etc/freeside/masondata/*
-
-exit 0
-

commit 86ab93725f1e7b0cf6f88bea5370bc35a20b08a5
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Wed Jan 24 09:08:55 2018 -0800

    fix postinst?

diff --git a/debian/freeside-webui.postinst b/debian/freeside-webui.postinst
new file mode 100644
index 000000000..8dd2baaf5
--- /dev/null
+++ b/debian/freeside-webui.postinst
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+chown -R freeside /usr/local/etc/freeside
+rm -fr  /usr/local/etc/freeside/masondata/*
+
+#XXX systemd equivalent (start apache after postgres)
+/sbin/insserv -d
+
+exit 0
+
diff --git a/debian/freeside.postinst b/debian/freeside.postinst
new file mode 100644
index 000000000..bdbb7a8d6
--- /dev/null
+++ b/debian/freeside.postinst
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+#probably not needed with systemd
+/usr/sbin/update-rc.d freeside defaults 23 01
+
+exit 0
+

commit 274dceef8a42ae197e220e42af300791687f305e
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Mon Jan 22 17:18:45 2018 -0800

    2018

diff --git a/httemplate/docs/about.html b/httemplate/docs/about.html
index bc3c1b3b9..29a9fe0c4 100644
--- a/httemplate/docs/about.html
+++ b/httemplate/docs/about.html
@@ -28,7 +28,7 @@
 % } else {
   <FONT SIZE="-1">
 % }
-© 2017 Freeside Internet Services, Inc.<BR>
+© 2018 Freeside Internet Services, Inc.<BR>
 All rights reserved.<BR>
 Licensed under the terms of the<BR>
 GNU <b>Affero</b> General Public License.<BR>
@@ -56,7 +56,7 @@ GNU <b>Affero</b> General Public License.<BR>
 
 % unless ( $agentnum ) {
   <CENTER>
-  <FONT SIZE="-3">"I've heard it too many times to ignore it / Its's something that I'm supposed to be" - K. Frog</FONT>
+  <FONT SIZE="-3">"Then, when all seemed to be lost, a small glimmer of light appeared in the distance.  Could it be...  back from the great beyond..." - D. 3030</FONT>
   </CENTER>
 % }
 

commit cf1c4c688aa010c5995e9d255b46e61a592a47f2
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Mon Jan 22 16:52:49 2018 -0800

    set employee password CLI

diff --git a/FS/bin/freeside-passwd b/FS/bin/freeside-passwd
new file mode 100755
index 000000000..dbd566e84
--- /dev/null
+++ b/FS/bin/freeside-passwd
@@ -0,0 +1,19 @@
+#!/usr/bin/perl -w
+
+use strict;
+
+my $user = shift or die &usage;
+my $password = shift or die &usage;
+
+use FS::UID qw(adminsuidsetup);
+use FS::Record qw( qsearchs );
+use FS::access_user;
+
+adminsuidsetup $user;
+
+my $access_user = qsearchs('access_user', {'username'=>$user})
+  or die "unknown username $user\n";
+my $error = $access_user->change_password($password);
+die $error if $error;
+
+1;

commit d9100e5450673da22735c22efa212d0fb32b6d30
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Fri Jan 12 15:54:14 2018 -0800

    4.x style employee edit

diff --git a/httemplate/edit/access_user.html b/httemplate/edit/access_user.html
index 9d2585366..f40575c0b 100644
--- a/httemplate/edit/access_user.html
+++ b/httemplate/edit/access_user.html
@@ -33,8 +33,10 @@
                    sub {
                      my $access_user = shift;
 
-                     '<BR>Employee Groups<BR>'.
-                     ntable("#cccccc",2).
+                     '<BR>'.
+                     '<FONT CLASS="fsinnerbox-title">Employee Groups</FONT>'.
+                     '<BR>'.
+                     '<TABLE CLASS="fsinnerbox">'.
                      '<TR><TD>'.
                      include( '/elements/checkboxes-table.html',
                                 'source_obj'   => $access_user,
@@ -49,6 +51,7 @@
                    },
                  'onsubmit'  => 'check_user_custnum_search',
                  'html_foot' => $check_user_custnum_search,
+                 'html_table_class' => 'fsinnerbox',
            )
 %>
 <%init>

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

Summary of changes:
 FS/FS/Schema.pm                              |  3 --
 FS/FS/cdr.pm                                 | 45 +++++-----------------------
 FS/FS/cust_bill.pm                           | 22 ++++++++++++--
 FS/FS/cust_bill_pkg.pm                       | 10 +++++--
 FS/FS/cust_bill_pkg_detail.pm                | 20 +++++++++++--
 FS/FS/part_pkg/prorate_Mixin.pm              |  2 +-
 FS/FS/quotation.pm                           | 20 ++++++++++---
 FS/bin/freeside-passwd                       | 19 ++++++++++++
 bin/update-rates                             | 42 ++++++++++++++++++++++++++
 debian/control                               |  2 +-
 debian/{postinst => freeside-webui.postinst} |  5 ++--
 debian/{postinst => freeside.postinst}       |  5 ++--
 debian/rules                                 |  5 ++--
 httemplate/docs/about.html                   |  4 +--
 httemplate/edit/access_user.html             |  7 +++--
 httemplate/edit/process/access_user.html     | 22 ++++++++------
 httemplate/elements/menu.html                |  3 +-
 httemplate/misc/process/void-cust_bill.html  |  6 ++--
 httemplate/misc/void-cust_bill.html          |  8 +++++
 httemplate/view/prospect_main.html           |  3 +-
 20 files changed, 174 insertions(+), 79 deletions(-)
 create mode 100755 FS/bin/freeside-passwd
 create mode 100644 bin/update-rates
 copy debian/{postinst => freeside-webui.postinst} (69%)
 rename debian/{postinst => freeside.postinst} (81%)




More information about the freeside-commits mailing list