Skip to content
This repository was archived by the owner on Sep 2, 2021. It is now read-only.

Commit e2f902f

Browse files
authored
Merge pull request #3 from complemento/feature/fix-first-response
Feature/fix first response
2 parents e40b8ad + ade1bd8 commit e2f902f

2 files changed

Lines changed: 134 additions & 108 deletions

File tree

Custom/TrackSolutionTime.sopm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8" ?>
22
<otrs_package version="1.0">
33
<Name>TrackSolutionTime</Name>
4-
<Version>6.0.10</Version>
4+
<Version>6.0.12</Version>
55
<Framework>6.0.x</Framework>
66
<PackageRequired Version="6.x.x">SlaStop</PackageRequired>
77
<Vendor>Ligero</Vendor>

Kernel/System/GenericAgent/SetSolutionTimeField.pm

Lines changed: 133 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -249,26 +249,27 @@ sub Run {
249249
my $percent = 0;
250250
if($Escalation{SolutionTime} != 0){
251251
$percent = ($WorkingTime * 100) / $Escalation{SolutionTime};
252+
253+
$Success = $DynamicFieldValueObject->ValueSet(
254+
FieldID => $DynamicFieldPercentualScaleSLA->{ID},
255+
ObjectID => $Param{TicketID},
256+
Value => [
257+
{
258+
ValueText => $Self->ConvertPercentualSLAScale(Value=>$percent)
259+
}
260+
],
261+
UserID => 1
262+
);
263+
264+
265+
} else {
266+
$Success = $DynamicFieldValueObject->ValueDelete(
267+
FieldID => $DynamicFieldPercentualScaleSLA->{ID},
268+
ObjectID => $Param{TicketID},
269+
UserID => 1,
270+
);
252271
}
253272

254-
#Select the combo box PercentualScaleSLA value in relationship with
255-
#percentual
256-
#$Success = $DynamicFieldBackendObject->ValueSet(
257-
# DynamicFieldConfig => $DynamicFieldPercentualScaleSLA,
258-
# ObjectID => $Ticket{TicketID},
259-
# Value => $Self->ConvertPercentualSLAScale(Value=>$percent),
260-
# UserID => 1,
261-
#);
262-
$Success = $DynamicFieldValueObject->ValueSet(
263-
FieldID => $DynamicFieldPercentualScaleSLA->{ID},
264-
ObjectID => $Param{TicketID},
265-
Value => [
266-
{
267-
ValueText => $Self->ConvertPercentualSLAScale(Value=>$percent)
268-
}
269-
],
270-
UserID => 1
271-
);
272273
$TicketObject->EventHandler(
273274
Event => 'TicketDynamicFieldUpdate_' . $DynamicFieldPercentualScaleSLA->{Name},
274275
Data => {
@@ -280,32 +281,32 @@ sub Run {
280281
},
281282
UserID => 1,
282283
);
284+
283285

284286
#Calcule the percentual of time spended to resolve the ticket in relationship
285287
#with the time defined in SLA configuration
286288
my $percentResponseTime = 0;
287289
if((($Ticket{FirstResponseInMin}||0)+($Ticket{FirstResponseDiffInMin}||0)) > 0 && $Escalation{FirstResponseTime} != 0){
288290
$percentResponseTime = ($Ticket{FirstResponseInMin} * 100) / ($Ticket{FirstResponseInMin}+$Ticket{FirstResponseDiffInMin});
291+
$Success = $DynamicFieldValueObject->ValueSet(
292+
FieldID => $DynamicFieldPercentualScaleResponseTime->{ID},
293+
ObjectID => $Param{TicketID},
294+
Value => [
295+
{
296+
ValueText => $Self->ConvertPercentualResponseTimeScale(Value=>$percentResponseTime)
297+
}
298+
],
299+
UserID => 1
300+
);
289301
}
290-
291-
#Select the combo box PercentualScaleResponseTime value in relationship with
292-
#percentual
293-
#$Success = $DynamicFieldBackendObject->ValueSet(
294-
# DynamicFieldConfig => $DynamicFieldPercentualScaleResponseTime,
295-
# ObjectID => $Ticket{TicketID},
296-
# Value => $Self->ConvertPercentualResponseTimeScale(Value=>$percentResponseTime),
297-
# UserID => 1,
298-
#);
299-
$Success = $DynamicFieldValueObject->ValueSet(
300-
FieldID => $DynamicFieldPercentualScaleResponseTime->{ID},
301-
ObjectID => $Param{TicketID},
302-
Value => [
303-
{
304-
ValueText => $Self->ConvertPercentualResponseTimeScale(Value=>$percentResponseTime)
305-
}
306-
],
307-
UserID => 1
308-
);
302+
else {
303+
$Success = $DynamicFieldValueObject->ValueDelete(
304+
FieldID => $DynamicFieldPercentualScaleResponseTime->{ID},
305+
ObjectID => $Param{TicketID},
306+
UserID => 1,
307+
);
308+
}
309+
309310
$TicketObject->EventHandler(
310311
Event => 'TicketDynamicFieldUpdate_' . $DynamicFieldPercentualScaleResponseTime->{Name},
311312
Data => {
@@ -471,26 +472,26 @@ sub Run {
471472
my $percent = 0;
472473
if($Escalation{SolutionTime} != 0){
473474
$percent = (($WorkingTime/60) * 100) / $Escalation{SolutionTime};
474-
}
475475

476-
#Select the combo box PercentualScaleSLA value in relationship with
477-
#percentual
478-
#$Success = $DynamicFieldBackendObject->ValueSet(
479-
# DynamicFieldConfig => $DynamicFieldPercentualScaleSLA,
480-
# ObjectID => $Ticket{TicketID},
481-
# Value => $Self->ConvertPercentualSLAScale(Value=>$percent),
482-
# UserID => 1,
483-
#);
484-
$Success = $DynamicFieldValueObject->ValueSet(
485-
FieldID => $DynamicFieldPercentualScaleSLA->{ID},
486-
ObjectID => $Param{TicketID},
487-
Value => [
488-
{
489-
ValueText => $Self->ConvertPercentualSLAScale(Value=>$percent)
490-
}
491-
],
492-
UserID => 1
493-
);
476+
$Success = $DynamicFieldValueObject->ValueSet(
477+
FieldID => $DynamicFieldPercentualScaleSLA->{ID},
478+
ObjectID => $Param{TicketID},
479+
Value => [
480+
{
481+
ValueText => $Self->ConvertPercentualSLAScale(Value=>$percent)
482+
}
483+
],
484+
UserID => 1
485+
);
486+
487+
} else {
488+
$Success = $DynamicFieldValueObject->ValueDelete(
489+
FieldID => $DynamicFieldPercentualScaleSLA->{ID},
490+
ObjectID => $Param{TicketID},
491+
UserID => 1,
492+
);
493+
}
494+
494495
$TicketObject->EventHandler(
495496
Event => 'TicketDynamicFieldUpdate_' . $DynamicFieldPercentualScaleSLA->{Name},
496497
Data => {
@@ -506,28 +507,34 @@ sub Run {
506507
#Calcule the percentual of time spended to resolve the ticket in relationship
507508
#with the time defined in SLA configuration
508509
my $percentResponseTime = 0;
509-
if(($Ticket{FirstResponseInMin}+$Ticket{FirstResponseDiffInMin}) > 0 && $Escalation{FirstResponseTime} != 0){
510-
$percentResponseTime = ($Ticket{FirstResponseInMin} * 100) / ($Ticket{FirstResponseInMin}+$Ticket{FirstResponseDiffInMin});
511-
}
510+
if(( ($Ticket{FirstResponseInMin}+$Ticket{FirstResponseDiffInMin}) > 0 || $WorkingTime > 0) && $Escalation{FirstResponseTime} != 0){
512511

513-
#Select the combo box PercentualScaleResponseTime value in relationship with
514-
#percentual
515-
#$Success = $DynamicFieldBackendObject->ValueSet(
516-
# DynamicFieldConfig => $DynamicFieldPercentualScaleResponseTime,
517-
# ObjectID => $Ticket{TicketID},
518-
# Value => $Self->ConvertPercentualResponseTimeScale(Value=>$percentResponseTime),
519-
# UserID => 1,
520-
#);
521-
$Success = $DynamicFieldValueObject->ValueSet(
522-
FieldID => $DynamicFieldPercentualScaleResponseTime->{ID},
523-
ObjectID => $Param{TicketID},
524-
Value => [
525-
{
526-
ValueText => $Self->ConvertPercentualResponseTimeScale(Value=>$percentResponseTime)
527-
}
528-
],
529-
UserID => 1
530-
);
512+
if($Ticket{FirstResponseInMin} == 0){
513+
$percentResponseTime = ($WorkingTime * 100) / $Escalation{FirstResponseTime};
514+
}
515+
else {
516+
$percentResponseTime = ($Ticket{FirstResponseInMin} * 100) / ($Ticket{FirstResponseInMin}+$Ticket{FirstResponseDiffInMin});
517+
}
518+
519+
520+
$Success = $DynamicFieldValueObject->ValueSet(
521+
FieldID => $DynamicFieldPercentualScaleResponseTime->{ID},
522+
ObjectID => $Param{TicketID},
523+
Value => [
524+
{
525+
ValueText => $Self->ConvertPercentualResponseTimeScale(Value=>$percentResponseTime)
526+
}
527+
],
528+
UserID => 1
529+
);
530+
531+
} else {
532+
$Success = $DynamicFieldValueObject->ValueDelete(
533+
FieldID => $DynamicFieldPercentualScaleResponseTime->{ID},
534+
ObjectID => $Param{TicketID},
535+
UserID => 1,
536+
);
537+
}
531538
$TicketObject->EventHandler(
532539
Event => 'TicketDynamicFieldUpdate_' . $DynamicFieldPercentualScaleResponseTime->{Name},
533540
Data => {
@@ -757,26 +764,28 @@ sub Run {
757764
my $percent = 0;
758765
if($Escalation{SolutionTime} != 0){
759766
$percent = (($WorkingTime/60) * 100) / $Escalation{SolutionTime};
767+
768+
$Success = $DynamicFieldValueObject->ValueSet(
769+
FieldID => $DynamicFieldPercentualScaleSLA->{ID},
770+
ObjectID => $Param{TicketID},
771+
Value => [
772+
{
773+
ValueText => $Self->ConvertPercentualSLAScale(Value=>$percent)
774+
}
775+
],
776+
UserID => 1
777+
);
778+
779+
} else {
780+
781+
$Success = $DynamicFieldValueObject->ValueDelete(
782+
FieldID => $DynamicFieldPercentualScaleSLA->{ID},
783+
ObjectID => $Param{TicketID},
784+
UserID => 1,
785+
);
786+
760787
}
761788

762-
#Select the combo box PercentualScaleSLA value in relationship with
763-
#percentual
764-
#$Success = $DynamicFieldBackendObject->ValueSet(
765-
# DynamicFieldConfig => $DynamicFieldPercentualScaleSLA,
766-
# ObjectID => $Ticket{TicketID},
767-
# Value => $Self->ConvertPercentualSLAScale(Value=>$percent),
768-
# UserID => 1,
769-
#);
770-
$Success = $DynamicFieldValueObject->ValueSet(
771-
FieldID => $DynamicFieldPercentualScaleSLA->{ID},
772-
ObjectID => $Param{TicketID},
773-
Value => [
774-
{
775-
ValueText => $Self->ConvertPercentualSLAScale(Value=>$percent)
776-
}
777-
],
778-
UserID => 1
779-
);
780789
$TicketObject->EventHandler(
781790
Event => 'TicketDynamicFieldUpdate_' . $DynamicFieldPercentualScaleSLA->{Name},
782791
Data => {
@@ -792,8 +801,34 @@ sub Run {
792801
#Calcule the percentual of time spended to resolve the ticket in relationship
793802
#with the time defined in SLA configuration
794803
my $percentResponseTime = 0;
795-
if(($Ticket{FirstResponseInMin}+$Ticket{FirstResponseDiffInMin}) > 0 && $Escalation{FirstResponseTime} != 0){
796-
$percentResponseTime = ($Ticket{FirstResponseInMin} * 100) / ($Ticket{FirstResponseInMin}+$Ticket{FirstResponseDiffInMin});
804+
if(( ($Ticket{FirstResponseInMin}+$Ticket{FirstResponseDiffInMin}) > 0 || $WorkingTime > 0) && $Escalation{FirstResponseTime} != 0){
805+
806+
if($Ticket{FirstResponseInMin} == 0){
807+
$percentResponseTime = ($WorkingTime * 100) / $Escalation{FirstResponseTime};
808+
}
809+
else {
810+
$percentResponseTime = ($Ticket{FirstResponseInMin} * 100) / ($Ticket{FirstResponseInMin}+$Ticket{FirstResponseDiffInMin});
811+
}
812+
813+
$Success = $DynamicFieldValueObject->ValueSet(
814+
FieldID => $DynamicFieldPercentualScaleResponseTime->{ID},
815+
ObjectID => $Param{TicketID},
816+
Value => [
817+
{
818+
ValueText => $Self->ConvertPercentualResponseTimeScale(Value=>$percentResponseTime)
819+
}
820+
],
821+
UserID => 1
822+
);
823+
824+
} else {
825+
826+
$Success = $DynamicFieldValueObject->ValueDelete(
827+
FieldID => $DynamicFieldPercentualScaleResponseTime->{ID},
828+
ObjectID => $Param{TicketID},
829+
UserID => 1,
830+
);
831+
797832
}
798833

799834
#Select the combo box PercentualScaleResponseTime value in relationship with
@@ -804,16 +839,7 @@ sub Run {
804839
# Value => $Self->ConvertPercentualResponseTimeScale(Value=>$percentResponseTime),
805840
# UserID => 1,
806841
#);
807-
$Success = $DynamicFieldValueObject->ValueSet(
808-
FieldID => $DynamicFieldPercentualScaleResponseTime->{ID},
809-
ObjectID => $Param{TicketID},
810-
Value => [
811-
{
812-
ValueText => $Self->ConvertPercentualResponseTimeScale(Value=>$percentResponseTime)
813-
}
814-
],
815-
UserID => 1
816-
);
842+
817843
$TicketObject->EventHandler(
818844
Event => 'TicketDynamicFieldUpdate_' . $DynamicFieldPercentualScaleResponseTime->{Name},
819845
Data => {

0 commit comments

Comments
 (0)