[SOLVED] How To Show Owner first name in Dashlets??

Moderator: crythias

Locked
skullz
Znuny superhero
Posts: 658
Joined: 24 Feb 2012, 03:58
Znuny Version: LTS and Features
Real Name: Mo Azfar
Location: Kuala Lumpur, MY
Contact:

[SOLVED] How To Show Owner first name in Dashlets??

Post by skullz »

Hi,

In a ticket widget, how can i show Owner first name??
i'm trying to follow this tutorial viewtopic.php?f=60&t=14747
but in the end, the ticket widget will show no ticket (but there is a ticket.)
sorry for my english..
but the way, i'm using otrs 3.13 (windows platform)

Image
Last edited by skullz on 08 May 2012, 05:05, edited 1 time in total.
My Github
OTRS CE/LTS Discord Channel
Cant Update Package Anymore ? Check This

Professional OTRS, Znuny & OTOBO services: efflux.de/en
Free and premium add-ons: English
skullz
Znuny superhero
Posts: 658
Joined: 24 Feb 2012, 03:58
Znuny Version: LTS and Features
Real Name: Mo Azfar
Location: Kuala Lumpur, MY
Contact:

Re: How To Show Owner first name in Dashlets??

Post by skullz »

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>
My Github
OTRS CE/LTS Discord Channel
Cant Update Package Anymore ? Check This

Professional OTRS, Znuny & OTOBO services: efflux.de/en
Free and premium add-ons: English
Locked