Create#

NAME#

Kernel::System::Calendar::Plugin::Ticket::Create - Ticket::Create plugin

DESCRIPTION#

Ticket appointment plugin.

PUBLIC INTERFACE#

new()#

create an object. Do not use it directly, instead use:

use Kernel::System::ObjectManager;
local $Kernel::OM = Kernel::System::ObjectManager->new();
my $TicketCreatePluginObject = $Kernel::OM->Get('Kernel::System::Calendar::Plugin::Ticket::Create');

RenderOutput()#

renders the output as html.

my $HTML = $TicketCreatePluginObject->RenderOutput(
    Param           => \%Param,
    GetParam        => \%GetParam,
    Appointment     => \%Appointment,
    Plugin          => \%Plugin,
    PermissionLevel => $PermissionLevel{$Permissions},
    UserID          => $Param{UserID},
);

Returns:

my $HTML = 'HTML';

Update()#

updated accordingly as needed.

my $Success = $TicketCreatePluginObject->Update(
    GetParam    => \%GetParam,
    Appointment => \%Appointment,
    Plugin      => {
        Name      => 'Ticket Create',
        PluginKey => 'TicketCreate',
        Block     => 'Ticket',
        Module    => 'Kernel::System::Calendar::Plugin::Ticket::Create',
        Prio      => '1000',
        Param     => {
            CustomerID                  => 'customer',
            CustomerUserID              => 'customer',
            Link                        => 1,
            LockID                      => 1,
            Offset                      => 12,
            OwnerID                     => 1,
            PendingStateIDs             => [7,8,6],
            TicketPendingTimeOffset     => 11,
            TicketPendingTimeOffsetUnit => 60,
            PriorityID                  => 1,
            ProcessID                   => 'Process-37d25e23af417c91c78939039316f8c5',
            QueueID                     => 1,
            ResponsibleUserID           => 1,
            SLAID                       => 1,
            ServiceID                   => 1,
            StateID                     => 1,
            TicketCreateTimeType        => 'Never',                # Never|Relative|StartTime
            TicketCreateOffset          => 2,
            TicketCreateOffsetUnit      => 3600,
            TicketCreateTime            => '2019-05-01 08:00:00',
            TicketCreated               => 1,
            TypeID                      => 1,
        },
    },
    UserID => 1,
);

Returns:

my $Success = 1;

Get()#

Get all plugin information.

my $Data = $TicketCreatePluginObject->Get(
    GetParam    => \%GetParam,
    Appointment => \%Appointment,
    Plugin      => \%Plugin,
    UserID      => $Self->{UserID},
);

Returns:

my $Data = {};

AJAXUpdate()#

Return an array with all plugin ajax update informations to build the LayoutObject selection JSON.

my $PluginAJAX = $TicketCreatePluginObject->AJAXUpdate(
    GetParam    => \%GetParam,
    Appointment => \%Appointment,
    Plugin      => \%Plugin,
    UserID      => $Self->{UserID},
);

Returns:

my $PluginAJAX = (
    {
        Data         => \%Data,
        Name         => 'Plugin_HTML_Field',
        ID           => 'Plugin_HTML_Field',
        SelectedID   => 1,
        PossibleNone => 1,
        Translation  => 1,
        Class        => 'Modernize',
    },
);

CalculateTicketCreateTime()#

calculates the ticket create time as time stamp

my $TicketCreateTime = $TicketCreatePluginObject->CalculateTicketCreateTime(
    StartTimeStamp          => '2019-05-01 08:00:00',
    EndTimeStamp            => '2019-05-02 08:00:00',
    TicketCreateOffset      => 2,
    TicketCreateOffsetUnit  => 3600,
    TicketCreateOffsetPoint => 'beforestart', #  afterstart | beforeend | afterend
);

Returns:

my $TicketCreateTime = 1;

TicketCreate()#

Creates tickets for appointments.

my $TicketCounter = $TicketCreatePluginObject->TicketCreate(
    %CalendarBasedTicketCreationData,
    UserID => 123,
);

Returns number of created tickets.

Cleanup()#

Cleanup obsolete calendar based ticket creation data.

my $Counter = $TicketCreatePluginObject->Cleanup();

Returns:

my $Counter = 1;