EDIT: SOLVED.
I'm editing Ticket.pm which located at OTRS/Kernel/System/
1. Look for the SQL..
Code: Select all
# fetch the result
return if !$Self->{DBObject}->Prepare(
SQL => 'SELECT st.id, st.queue_id, sq.name, st.ticket_state_id, st.ticket_lock_id,'
. ' sp.id, sp.name, st.create_time_unix, st.create_time, sq.group_id, st.tn,'
. ' st.customer_id, st.customer_user_id, st.user_id, st.responsible_user_id, '
. ' st.until_time, st.change_time, st.title, st.escalation_update_time, st.timeout,'
. ' st.type_id, st.service_id, st.sla_id, st.escalation_response_time,'
. ' st.escalation_solution_time, st.escalation_time, st.archive_flag,'
. ' st.create_by, st.change_by'
. ' FROM ticket st, ticket_priority sp, queue sq'
. ' WHERE sp.id = st.ticket_priority_id AND sq.id = st.queue_id AND st.id = ?',
Bind => [ \$Param{TicketID} ],
Limit => 1,
);
my %Ticket;
while ( my @Row = $Self->{DBObject}->FetchrowArray() ) {
$Ticket{TicketID} = $Row[0];
$Ticket{Title} = $Row[17];
$Ticket{QueueID} = $Row[1];
$Ticket{Queue} = $Row[2];
$Ticket{StateID} = $Row[3];
$Ticket{LockID} = $Row[4];
$Ticket{PriorityID} = $Row[5];
$Ticket{Priority} = $Row[6];
$Ticket{CreateTimeUnix} = $Row[7];
$Ticket{Created} = $Self->{TimeObject}->SystemTime2TimeStamp(
SystemTime => $Ticket{CreateTimeUnix},
);
$Ticket{CreateBy} = $Row[27];
$Ticket{ArchiveFlag} = $Row[26] ? 'y' : 'n';
$Ticket{Changed} = $Row[16];
$Ticket{ChangeBy} = $Row[28];
$Ticket{EscalationTime} = $Row[25];
$Ticket{EscalationUpdateTime} = $Row[18];
$Ticket{EscalationResponseTime} = $Row[23];
$Ticket{EscalationSolutionTime} = $Row[24];
$Ticket{UnlockTimeout} = $Row[19];
$Ticket{GroupID} = $Row[9];
$Ticket{TicketNumber} = $Row[10];
$Ticket{CustomerID} = $Row[11];
$Ticket{CustomerUserID} = $Row[12];
$Ticket{OwnerID} = $Row[13];
$Ticket{ResponsibleID} = $Row[14] || 1;
$Ticket{RealTillTimeNotUsed} = $Row[15];
$Ticket{TypeID} = $Row[20] || 1;
$Ticket{ServiceID} = $Row[21] || '';
$Ticket{SLAID} = $Row[22] || '';
}
2. Since we need to show agent firstname and lastname, we need to add a parameter in sql. We will take values from table 'users' (will be define as us), first_name and last_name.
3. It will be..
# fetch the result
return if !$Self->{DBObject}->Prepare(
SQL => 'SELECT st.id, st.queue_id, sq.name, st.ticket_state_id, st.ticket_lock_id,'
. ' sp.id, sp.name, st.create_time_unix, st.create_time, sq.group_id, st.tn,'
. ' st.customer_id, st.customer_user_id, st.user_id, st.responsible_user_id, '
. ' st.until_time, st.change_time, st.title, st.escalation_update_time, st.timeout,'
. ' st.type_id, st.service_id, st.sla_id, st.escalation_response_time,'
. ' st.escalation_solution_time, st.escalation_time, st.archive_flag,'
. ' st.create_by, st.change_by,
us.first_name, us.last_name'
. ' FROM ticket st, ticket_priority sp, queue sq,
users us'
. ' WHERE sp.id = st.ticket_priority_id AND sq.id = st.queue_id AND st.id = ?
AND st.user_id = us.id',
Bind => [ \$Param{TicketID} ],
Limit => 1,
);
my %Ticket;
while ( my @Row = $Self->{DBObject}->FetchrowArray() ) {
$Ticket{TicketID} = $Row[0];
$Ticket{Title} = $Row[17];
$Ticket{QueueID} = $Row[1];
$Ticket{Queue} = $Row[2];
$Ticket{StateID} = $Row[3];
$Ticket{LockID} = $Row[4];
$Ticket{PriorityID} = $Row[5];
$Ticket{Priority} = $Row[6];
$Ticket{CreateTimeUnix} = $Row[7];
$Ticket{Created} = $Self->{TimeObject}->SystemTime2TimeStamp(
SystemTime => $Ticket{CreateTimeUnix},
);
$Ticket{CreateBy} = $Row[27];
$Ticket{ArchiveFlag} = $Row[26] ? 'y' : 'n';
$Ticket{Changed} = $Row[16];
$Ticket{ChangeBy} = $Row[28];
$Ticket{AgentFirstName} = $Row[29];
$Ticket{AgentLastName} = $Row[30];
$Ticket{EscalationTime} = $Row[25];
$Ticket{EscalationUpdateTime} = $Row[18];
$Ticket{EscalationResponseTime} = $Row[23];
$Ticket{EscalationSolutionTime} = $Row[24];
$Ticket{UnlockTimeout} = $Row[19];
$Ticket{GroupID} = $Row[9];
$Ticket{TicketNumber} = $Row[10];
$Ticket{CustomerID} = $Row[11];
$Ticket{CustomerUserID} = $Row[12];
$Ticket{OwnerID} = $Row[13];
$Ticket{ResponsibleID} = $Row[14] || 1;
$Ticket{RealTillTimeNotUsed} = $Row[15];
$Ticket{TypeID} = $Row[20] || 1;
$Ticket{ServiceID} = $Row[21] || '';
$Ticket{SLAID} = $Row[22] || '';
}
4. At OTRS/Kernel/Output/HTML/Standard/AgentDashboardTicketGeneric.dtl
Just below
<td>$QData{"Time"}</td> ,
add <td>$Data{"AgentFirstName"} $Data{"AgentLastName"}</td>
it will become like this..
Code: Select all
<td>$QData{"Time"}</td>
<td>$Data{"AgentFirstName"} $Data{"AgentLastName"}</td>