[freeside-commits] branch master updated. 486d081eca43a67f8c8b993d424541b5ab661d93

Christopher Burger burgerc at 420.am
Tue Jul 11 08:38:16 PDT 2017


The branch, master has been updated
       via  486d081eca43a67f8c8b993d424541b5ab661d93 (commit)
      from  31dadb4ddfbf29d7814f47a02142795f47a208ad (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 486d081eca43a67f8c8b993d424541b5ab661d93
Author: Christopher Burger <burgerc at freeside.biz>
Date:   Tue Jul 11 11:35:14 2017 -0400

    RT# 76307 - Added billing event action to add a tag

diff --git a/FS/FS/part_event/Action/addtag.pm b/FS/FS/part_event/Action/addtag.pm
new file mode 100644
index 0000000..947f0c3
--- /dev/null
+++ b/FS/FS/part_event/Action/addtag.pm
@@ -0,0 +1,53 @@
+package FS::part_event::Action::addtag;
+
+use strict;
+use base qw( FS::part_event::Action );
+use FS::Record qw( qsearch );
+
+sub description { 'Add customer tag'; }
+
+sub eventtable_hashref {
+    { 'cust_main'      => 1,
+      'cust_bill'      => 1,
+      'cust_pkg'       => 1,
+      'cust_pay'       => 1,
+      'cust_pay_batch' => 1,
+      'cust_statement' => 1,
+    };
+}
+
+sub option_fields {
+  (
+    'tagnum'  => { 'label'    => 'Customer tag',
+                   'type'     => 'select-cust_tag',
+                   'multiple' => 1,
+                 },
+  );
+}
+
+sub default_weight { 20; }
+
+sub do_action {
+  my( $self, $object, $tagnum ) = @_;
+
+  my %exists = map { $_->tagnum => $_->tagnum } 
+        qsearch({
+          table     => 'cust_tag',
+          hashref   => { custnum  => $object->custnum, },
+        });
+
+  my @tags = split(/\,/, $self->option('tagnum'));
+  foreach my $tagnum ( split(/\,/, $self->option('tagnum') ) ) {
+    if ( !$exists{$tagnum} ) {
+      my $cust_tag = new FS::cust_tag { 'tagnum'  => $tagnum,
+                                        'custnum' => $object->custnum, };
+      my $error = $cust_tag->insert;
+      if ( $error ) {
+        return $error;
+      }
+    }
+  }
+  '';
+}
+
+1;

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

Summary of changes:
 FS/FS/part_event/Action/addtag.pm |   53 +++++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)
 create mode 100644 FS/FS/part_event/Action/addtag.pm




More information about the freeside-commits mailing list