Bonjour,
Je rencontre un problème de calcule.
Pour chaque enregistrement (PPD) je veux faire la somme de toutes les rémunérations (string)
Voici mon code
$ppd = $this->FtthPpd->lastPPD();//Je cherche toutes les ppd groupé par Date_debut
foreach ($ppd as $p){
$rems = $this->FtthPpd->SumPPD($p->Date_debut);//Je cherche les rémunérations de la PPD avec la Date_debut
echo '<pre>';
var_dump('nouvelle PPD '.$p->Date_debut);
echo '</pre>';
$i=1;
echo '<pre>';
var_dump('RAZ compteur '.$i);
echo '</pre>';
while($i < count($rems)){//pour chaque rémunération trouvé
if($p->CodeArticle === 'CEM42'){
$rem = (str_replace(',' , '.', $rems[$i]->Remuneration));//La rémunération est une string avec une ','
$prix_u[]= round(floatval($rem), 2)/2;//je convertis en float, j'arondis a 2 chiffres après la ',' et je divise par 2 si je suis en CEM42
}else{
$rem = (str_replace(',' , '.', $rems[$i]->Remuneration));
$prix_u[]= round(floatval($rem), 2);//Je fais pareil sauf que je ne divise pas par 2
}
$i = $i+1;
}
echo '<pre>';
var_dump('On compte les renumerations de la ppd '.$i);
echo '</pre>';
$prix = round(array_sum($prix_u), 2);//je récupère la somme des rémunérations arrondit à 2 chiffres apprès la ','
echo '<pre>';
var_dump($prix);
echo '</pre>';
}
Voici le résultat
string(23) "nouvelle PPD 15/07/2016"
string(14) "RAZ compteur 1"
string(41) "On compte les renumerations de la ppd 880"
float(250680.34)
string(23) "nouvelle PPD 15/06/2016"
string(14) "RAZ compteur 1"
string(42) "On compte les renumerations de la ppd 1447"
float(616182.72)
string(23) "nouvelle PPD 15/05/2016"
string(14) "RAZ compteur 1"
string(41) "On compte les renumerations de la ppd 873"
float(702583.92)
string(23) "nouvelle PPD 15/04/2016"
string(14) "RAZ compteur 1"
string(40) "On compte les renumerations de la ppd 73"
float(831088.77)
string(23) "nouvelle PPD 22/12/2015"
string(14) "RAZ compteur 1"
string(40) "On compte les renumerations de la ppd 62"
float(903520.22)
Le problème c'est que les chiffres ne sont pas bon, je ne comprends pas pourquoi le résultat augmente !