@@ -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