diff --git a/Kernel/Language/pt_BR_NewTicketWizard.pm b/Kernel/Language/pt_BR_NewTicketWizard.pm index 1ca8efd..21d17d1 100644 --- a/Kernel/Language/pt_BR_NewTicketWizard.pm +++ b/Kernel/Language/pt_BR_NewTicketWizard.pm @@ -16,7 +16,8 @@ use warnings; sub Data { my $Self = shift; - + $Self->{Translation}->{'The following maintenances are in progress'} = 'As seguintes manutenções estão ocorrendo'; + $Self->{Translation}->{'Started at: '} = 'Iniciada em:'; $Self->{Translation}->{'Queues panel'} = 'Novo chamado'; $Self->{Translation}->{'Your ticket has been registered with the number: '} = 'Seu chamado foi registrado com sucesso! O número é: '; $Self->{Translation}->{'New ticket wizard'} = 'Assistente de novo chamado'; diff --git a/Kernel/Modules/NewTicketWizard.pm b/Kernel/Modules/NewTicketWizard.pm index f67c246..aa78a80 100644 --- a/Kernel/Modules/NewTicketWizard.pm +++ b/Kernel/Modules/NewTicketWizard.pm @@ -23,6 +23,9 @@ use Kernel::System::DynamicField::Backend; require Kernel::System::QueueService; use Kernel::System::VariableCheck qw(:all); use Data::Dumper; +use Kernel::System::Maintenance; +use Kernel::System::DateUtils; + sub new { my ( $Type, %Param ) = @_; @@ -53,6 +56,8 @@ sub new { $Self->{ServiceObject} = Kernel::System::Service->new(%Param); $Self->{QueueObject} = Kernel::System::Queue->new(%Param); $Self->{QueueServiceObject} = Kernel::System::QueueService->new(%Param); + $Self->{MaintenanceObject} = Kernel::System::Maintenance->new(%Param); + $Self->{DateUtilsObject} = Kernel::System::DateUtils->new(%Param); return $Self; } @@ -113,15 +118,17 @@ sub Run { my ( $Self, %Param ) = @_; my %Data = (); - if ($Self->{ParamObject}->GetParam(Param => "QueueID")) { - $Data{QueueID} = $Self->{ParamObject}->GetParam(Param => "QueueID"); - } else { + if ( $Self->{ParamObject}->GetParam( Param => "QueueID" ) ) { + $Data{QueueID} = $Self->{ParamObject}->GetParam( Param => "QueueID" ); + } + else { + # Check if must show queue - my $_ConfigTicketWizard = $Self->{ConfigObject}->Get("Ticket::Frontend::Customer::NewTicketWizard"); - my $_ShowQueue = $_ConfigTicketWizard->{"ShowQueue"}; - if (! $_ShowQueue) { - return $Self->{LayoutObject}->Redirect( OP => "Action=QueuesPanel" ); - } + my $_ConfigTicketWizard = $Self->{ConfigObject}->Get("Ticket::Frontend::Customer::NewTicketWizard"); + my $_ShowQueue = $_ConfigTicketWizard->{"ShowQueue"}; + if ( !$_ShowQueue ) { + return $Self->{LayoutObject}->Redirect( OP => "Action=QueuesPanel" ); + } } if ( $Self->{ParamObject}->GetParam( Param => "Subaction" ) eq "GetServices" ) { @@ -141,17 +148,15 @@ sub Run { $Self->{Config} = $Self->{ConfigObject}->Get("Ticket::Frontend::Customer::NewTicketWizard"); my $msgChooseService = $Self->{Config}->{"MessageChooseService"}; - - if ($Self->{ParamObject}->GetParam( Param => "QueueID" ) ) { - my %queueData = $Self->{QueueObject}->QueueGet(ID => $Self->{ParamObject}->GetParam( Param => "QueueID" )); - my $queueName = $queueData{Name}; + + if ( $Self->{ParamObject}->GetParam( Param => "QueueID" ) ) { + my %queueData = $Self->{QueueObject}->QueueGet( ID => $Self->{ParamObject}->GetParam( Param => "QueueID" ) ); + my $queueName = $queueData{Name}; $msgChooseService =~ s/PLACE\_NAME/$queueName/g; } - - + $Data{MsgChooseService} = $msgChooseService; - - + if ( $Self->{ParamObject}->GetParam( Param => "Subaction" ) ) { if ( $Self->{ParamObject}->GetParam( Param => "Subaction" ) eq "CreateTicket" ) { return $Self->CreateTicket(); @@ -171,6 +176,27 @@ sub Run { $Self->{LayoutObject} ->CustomerHeader( Title => $Self->{LayoutObject}->{LanguageObject}->Get("New ticket wizard") ); + # maintenances + my @maintenances = $Self->{MaintenanceObject}->ListCurrentMaintenances(); + + if (@maintenances) { + $Self->{LayoutObject}->Block( Name => 'MaintenancesPanel', ); + + for my $maintenanceHash (@maintenances) { + my %maintenance = %{$maintenanceHash}; + + $Self->{LayoutObject}->Block( + Name => 'MaintenanceLine', + Data => { + Message => $maintenance{'Description'}, + StartDate => $Self->{DateUtilsObject}->BrazilianDate( + Timestamp => $Self->{DateUtilsObject}->FromSQL( StringDate => $maintenance{StartDate} ) + ), + } + ); + } + } + $Output .= $Self->{LayoutObject}->CustomerNavigationBar(); $Output .= $Self->{LayoutObject}->Output( Data => \%Data, @@ -190,16 +216,13 @@ sub BuildQueue { my $ConfigTicketWizard = $Self->{ConfigObject}->Get("Ticket::Frontend::Customer::NewTicketWizard"); my $ShowQueue = $ConfigTicketWizard->{"ShowQueue"}; my $BaseQueueName = ""; - my $BaseQueueID = $Self->{ParamObject}->GetParam(Param => "BaseQueueID"); - - - + my $BaseQueueID = $Self->{ParamObject}->GetParam( Param => "BaseQueueID" ); + if ( !$ShowQueue eq '1' ) { return; } elsif ($BaseQueueID) { - - + my %QueueBase = $Self->{QueueObject}->QueueGet( ID => $BaseQueueID ); $BaseQueueName = $QueueBase{"Name"}; @@ -216,18 +239,19 @@ sub BuildQueue { } @QueueCombo = sort { $a->{Value} . "::" cmp $b->{Value} . "::" } @QueueCombo; - } elsif ($Self->{ParamObject}->GetParam(Param => "QueueID")){ - - my %Queue = $Self->{QueueObject}->QueueGet( ID => $Self->{ParamObject}->GetParam(Param => "QueueID") ); + } + elsif ( $Self->{ParamObject}->GetParam( Param => "QueueID" ) ) { + + my %Queue = $Self->{QueueObject}->QueueGet( ID => $Self->{ParamObject}->GetParam( Param => "QueueID" ) ); my $QueueName = $Queue{"Name"}; - - my @QueueParts = split("::", $QueueName); - splice(@QueueParts, -1); - $BaseQueueName = join("::", @QueueParts); + + my @QueueParts = split( "::", $QueueName ); + splice( @QueueParts, -1 ); + $BaseQueueName = join( "::", @QueueParts ); $Self->Debug($BaseQueueName); - my %QueueBase = $Self->{QueueObject}->QueueGet( Name => $BaseQueueName ); - my $BaseQueueID = $QueueBase{"ID"}; - + my %QueueBase = $Self->{QueueObject}->QueueGet( Name => $BaseQueueName ); + my $BaseQueueID = $QueueBase{"ID"}; + my %Queues = $Self->{QueueObject}->QueueList( Valid => 1 ); for my $queueID ( keys %Queues ) { @@ -241,12 +265,12 @@ sub BuildQueue { } @QueueCombo = sort { $a->{Value} . "::" cmp $b->{Value} . "::" } @QueueCombo; - + } $Data{QueueStrg} = $Self->{LayoutObject}->BuildSelection( Data => \@QueueCombo, Name => 'QueueID', - SelectedID => $Self->{ParamObject}->GetParam(Param => "QueueID"), + SelectedID => $Self->{ParamObject}->GetParam( Param => "QueueID" ), Class => "Validate_Required " . ( $Param{Errors}->{QueueIDInvalid} || '' ), PossibleNone => 1, TreeView => 1, @@ -270,8 +294,8 @@ sub GetFormJSON { %serviceForm = $Self->{ServiceFormObject}->GetServiceForm( ServiceID => $Param{ServiceID} ); } - my $QueueID = $Self->{ParamObject}->GetParam(Param => "QueueID"); - + my $QueueID = $Self->{ParamObject}->GetParam( Param => "QueueID" ); + my ( $schema, $fields, $introduction ) = $Self->GetForm( ServiceForm => \%serviceForm, QueueID => $QueueID ); print STDERR "[{" . $schema . "}, {" . $fields . "}, \"" . $introduction . "\"]"; @@ -318,11 +342,11 @@ sub GetForm { $fields =~ s/CF_FORM/$fieldsForm/g; } } - - if ($Param{"QueueID"}) { + + if ( $Param{"QueueID"} ) { $schema = $schema . ",\n\"QueueID\": {\n\"type\": \"string\",\n\"default\": \"" . $Param{"QueueID"} . "\"}"; $fields = $fields . ",\n\"QueueID\": {\n\"type\": \"hidden\"\n}"; - print STDERR "schema = \n\n" . $schema . "\n\n fields = \n\n" . $fields; + print STDERR "schema = \n\n" . $schema . "\n\n fields = \n\n" . $fields; } @@ -331,17 +355,17 @@ sub GetForm { sub GetQueueID() { my ( $Self, %Param ) = @_; - + # Check if queueID was sent - my $QueueID = $Self->{ParamObject}->GetParam(Param => "QueueID"); + my $QueueID = $Self->{ParamObject}->GetParam( Param => "QueueID" ); print STDERR "\n\nBSUCANDO $QueueID FILA\n\n"; - + if ($QueueID) { print STDERR "\n\nRecebida fila $QueueID\n\n"; - my %Queue = $Self->{QueueObject}->QueueGet(ID => $QueueID); - return ($Queue{"Name"}, $QueueID); + my %Queue = $Self->{QueueObject}->QueueGet( ID => $QueueID ); + return ( $Queue{"Name"}, $QueueID ); } - + # Gets default Queue my $ConfigTicket = $Self->{ConfigObject}->Get("Ticket::Frontend::CustomerTicketMessage"); my $ConfigTicketWizard = $Self->{ConfigObject}->Get("Ticket::Frontend::Customer::NewTicketWizard"); @@ -357,8 +381,8 @@ sub GetQueueID() { my %QueueListID = $Self->{QueueObject}->QueueList( Valid => 1 ); my %QueueList = reverse $Self->{QueueObject}->QueueList( Valid => 1 ); - $QueueID = $QueueList{$QueueDefault}; - my $Queue = $QueueListID{$QueueID}; + $QueueID = $QueueList{$QueueDefault}; + my $Queue = $QueueListID{$QueueID}; if ( $QueuePrefix && $QueueField ) { my $QueueSelected = $Self->{ParamObject}->GetParam( Param => $QueueField ); @@ -489,5 +513,4 @@ sub Debug { print STDERR "\n\nDEBUG => \n$msg\n\n"; } - 1; diff --git a/Kernel/Modules/NewTicketWizardPublic.pm b/Kernel/Modules/NewTicketWizardPublic.pm index 9bb3262..68e0d92 100644 --- a/Kernel/Modules/NewTicketWizardPublic.pm +++ b/Kernel/Modules/NewTicketWizardPublic.pm @@ -11,6 +11,7 @@ package Kernel::Modules::NewTicketWizardPublic; use strict; use warnings; +use Kernel::System::DateUtils; use Kernel::System::ServiceForm; use Kernel::System::TicketWizard; use Kernel::System::CustomerUser; @@ -23,6 +24,8 @@ use Kernel::System::DynamicField::Backend; require Kernel::System::QueueService; use Kernel::System::VariableCheck qw(:all); use Data::Dumper; +use Kernel::System::Maintenance; +use Kernel::System::DateUtils; sub new { my ( $Type, %Param ) = @_; @@ -57,6 +60,8 @@ sub new { $Self->{ServiceFormObject} = Kernel::System::ServiceForm->new(%Param); $Self->{ServiceObject} = Kernel::System::Service->new(%Param); $Self->{QueueServiceObject} = Kernel::System::QueueService->new(%Param); + $Self->{MaintenanceObject} = Kernel::System::Maintenance->new(%Param); + $Self->{DateUtilsObject} = Kernel::System::DateUtils->new(%Param); return $Self; } @@ -159,6 +164,27 @@ sub Run { my $Output = $Self->{LayoutObject} ->CustomerHeader( Title => $Self->{LayoutObject}->{LanguageObject}->Get("New ticket wizard") ); + + # maintenances + my @maintenances = $Self->{MaintenanceObject}->ListCurrentMaintenances(); + + if (@maintenances) { + $Self->{LayoutObject}->Block( + Name => 'MaintenancesPanel', + ); + + for my $maintenanceHash (@maintenances) { + my %maintenance = %{$maintenanceHash}; + + $Self->{LayoutObject}->Block( + Name => 'MaintenanceLine', + Data => { + Message => $maintenance{'Description'}, + StartDate => $Self->{DateUtilsObject}->BrazilianDate(Timestamp => $Self->{DateUtilsObject}->FromSQL(StringDate => $maintenance{StartDate})), + }); + } + } + $Output .= $Self->{LayoutObject}->Output( Data => \%Data, diff --git a/Kernel/Output/HTML/Standard/NewTicketWizard.dtl b/Kernel/Output/HTML/Standard/NewTicketWizard.dtl index 9d1a175..aee241a 100644 --- a/Kernel/Output/HTML/Standard/NewTicketWizard.dtl +++ b/Kernel/Output/HTML/Standard/NewTicketWizard.dtl @@ -32,7 +32,20 @@ $Data{"MsgChooseService"}
- +