Commit fc7ab177 authored by Antony Le Courtes's avatar Antony Le Courtes
Browse files

Premiere partie de correction pour l'arrondi du total HETD à l'affichage dans...

Premiere partie de correction pour l'arrondi du total HETD à l'affichage dans les pages de saisie de service (#67098)
parent 1d38cb82
Loading
Loading
Loading
Loading
Loading
+18 −3
Original line number Diff line number Diff line
@@ -34,7 +34,6 @@ class AfficheurService
    public function resultatToJson(FormuleResultatIntervenant $fr): array
    {
        $hasServiceStatutaire   = ($fr->getHeuresServiceStatutaire() > 0) || $fr->getHeures('service') > 0;
        $hasModificationService = abs($fr->getHeuresServiceStatutaire() - $fr->getHeuresServiceModifie()) > 0.01;
        $hasNonPayable          = $fr->getHeures('non-payable') > 0.0;
        $hasPrime               = $fr->getHeuresPrimes() > 0.0;

@@ -111,10 +110,26 @@ class AfficheurService
                }
            }
        }

        //Mécanique d'arrondis du total si écart entre service du et total heure est de 0.01 HETD
        if ($data['heures']['total']['total'] > 0 && $data['serviceDu'] > 0 && abs($data['heures']['total']['total'] - $data['serviceDu']) <= 0.01) {
            $data['heures']['total']['total'] = $data['serviceDu'];
        $hasMultipleTypes = count($types) > 1;
        $serviceDu        = $data['serviceDu'];

        $total = $hasMultipleTypes
            ? $data['heures']['total']['total']
            : current($data['heures']['total']);

        $hasRoundingDifference = abs($total - $serviceDu) <= 0.01;

        if ($total > 0 && $serviceDu > 0 && $hasRoundingDifference) {
            $key = $hasMultipleTypes
                ? 'total'
                : array_key_first($data['heures']['total']);

            $data['heures']['total'][$key]   = $serviceDu;
            $data['heures']['service'][$key] = $serviceDu;
        }

        return $data;
    }