[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