auto-insert CustomFieldChange scrip condition, from RT#10139
authormark <mark>
Tue, 30 Nov 2010 20:24:02 +0000 (20:24 +0000)
committermark <mark>
Tue, 30 Nov 2010 20:24:02 +0000 (20:24 +0000)
FS/FS/TicketSystem.pm
FS/FS/Upgrade.pm

index a80a827..d53d2f6 100644 (file)
@@ -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;
index bced61c..ba4a085 100644 (file)
@@ -182,6 +182,9 @@ sub upgrade_data {
     #return unprovisioned numbers to availability
     'phone_avail' => [],
 
+    #insert scripcondition
+    'TicketSystem' => [],
+
   ;
 
   \%hash;