From 50f4a1c24bb5c020f262c051ec79e44faea240b1 Mon Sep 17 00:00:00 2001 From: Jason Crome Date: Wed, 25 Sep 2024 15:47:50 -0500 Subject: [PATCH] Set Told date when importing --- lib/RT/Extension/Import/CSV.pm | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/lib/RT/Extension/Import/CSV.pm b/lib/RT/Extension/Import/CSV.pm index ab706e1..0024dca 100644 --- a/lib/RT/Extension/Import/CSV.pm +++ b/lib/RT/Extension/Import/CSV.pm @@ -377,7 +377,7 @@ sub _run_tickets { } elsif ($fieldname =~ /^(id|Creator|LastUpdated|Created|Queue|Requestor|Cc|AdminCc|SquelchMailTo|Type|Owner| Subject|Priority|InitialPriority|FinalPriority|Status|TimeEstimated|TimeWorked|TimeLeft|Starts|Due|MIMEObj| Comment|Correspond|MemberOf|Parents|Parent|Members|Member|Children|Child|HasMember|RefersTo|ReferredToBy| - DependsOn|DependedOnBy)$/x) { + DependsOn|DependedOnBy|Told)$/x) { # no-op, these are fine } else { $RT::Logger->warning( @@ -878,6 +878,15 @@ sub _run_tickets { } } + my $told = delete( $args{Told} ); + if( $told ) { + my $date = RT::Date->new( RT->SystemUser ); + $date->Set( Format => 'unknown', Value => $told ); + if ( !$date->Unix ) { + RT->Logger->error("Told '$told' is not valid, creating without it"); + } + } + my $status = delete( $args{Status} ); if ( $status && !$default_queue->LifecycleObj->IsValid($status) ) { if ($force) { @@ -911,7 +920,6 @@ sub _run_tickets { } my ($ok, $txnobj, $msg) = $ticket->Create( %args ); - if ($ok) { $created++; } else { @@ -921,6 +929,13 @@ sub _run_tickets { next ROW; } + if( $told ) { + my $date = RT::Date->new( RT->SystemUser ); + $date->Set( Format => 'unknown', Value => $told ); + ($ok, $msg) = $ticket->__Set( Field => 'Told', Value => $date->ISO ); + $RT::Logger->error("Failed to set Told on ticket: $msg") unless $ok; + } + if ($status && $status ne $ticket->Status) { ($ok, $msg) = $ticket->__Set(Field => 'Status', Value => $status); $RT::Logger->error("Failed to set Status on ticket: $msg") unless $ok