From 5eb580257c6730b1512a278855bc4191c74b3f6e Mon Sep 17 00:00:00 2001 From: mark Date: Tue, 30 Nov 2010 20:24:02 +0000 Subject: [PATCH] auto-insert CustomFieldChange scrip condition, from RT#10139 --- FS/FS/TicketSystem.pm | 24 +++++++++++++++++++++++- FS/FS/Upgrade.pm | 3 +++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/FS/FS/TicketSystem.pm b/FS/FS/TicketSystem.pm index a80a82789..d53d2f679 100644 --- a/FS/FS/TicketSystem.pm +++ b/FS/FS/TicketSystem.pm @@ -3,7 +3,7 @@ package FS::TicketSystem; use strict; use vars qw( $conf $system $AUTOLOAD ); use FS::Conf; -use FS::UID; +use FS::UID qw( dbh driver_name ); FS::UID->install_callback( sub { $conf = new FS::Conf; @@ -27,4 +27,26 @@ sub AUTOLOAD { $self->$sub(@_); } +sub _upgrade_data { + return if $system ne 'RT_Internal'; + + my ($class, %opts) = @_; + my ($t, $exec, @fields) = map { driver_name =~ /^mysql/i ? $_ : lc($_) } + (qw( ScripConditions ExecModule + Name Description ExecModule ApplicableTransTypes + Creator Created LastUpdatedBy LastUpdated)); + my $count_sql = "SELECT COUNT(*) FROM $t WHERE $exec = 'CustomFieldChange'"; + my $sth = dbh->prepare($count_sql) or die dbh->errstr; + $sth->execute or die $sth->errstr; + my $total = $sth->fetchrow_arrayref->[0]; + return if $total > 0; + + my $insert_sql = "INSERT INTO $t (".join(',',@fields).") VALUES (". + "'On Custom Field Change', 'When a custom field is changed to some value', + 'CustomFieldChange', 'Any', 1, CURRENT_DATE, 1, CURRENT_DATE )"; + $sth = dbh->prepare($insert_sql) or die dbh->errstr; + $sth->execute or die $sth->errstr; + return; +} + 1; diff --git a/FS/FS/Upgrade.pm b/FS/FS/Upgrade.pm index bced61c07..ba4a085b4 100644 --- a/FS/FS/Upgrade.pm +++ b/FS/FS/Upgrade.pm @@ -182,6 +182,9 @@ sub upgrade_data { #return unprovisioned numbers to availability 'phone_avail' => [], + #insert scripcondition + 'TicketSystem' => [], + ; \%hash; -- 2.11.0