Bonjour a tous,
Je suis sous symfony 4.4 .
j'ai une application qui gere des adhérents. Ces adhérent paient une cotisation par rapport a leur catégorie.Ils peuvent payer leur cotisation en 4 fois. J'ai donc une entitée adherent, une entitée category et une entitée amount. Je voudrai récupérer chacune des mensualitées des cotisations de mes adherents et les additionner pour avoir le montant total qu'ils ont payé et ensuite voir combien ils leurs reste a payer par rapport a leur catégorie et enregistrer cela dans une table intermédiaire .
Mais j'ai des difficulté avec mes boucles foreach je pense.Alors mon code fonctionne mais il ne me rentre que le premier adhérent concerné dans ma table intermédiaire. Je ne comprend pas pourquoi il ne me rentre pas le reste.Si je fais un var dump de mes adherents avant ma condition j'ai le meme adherent qui se repete.
Mon controller:
Si vous pouviez m'éguiller s'il vous plait ,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 /** *Rempli l'entité debt de la BDD de la liste des adhérents qui n'ont pas payé leur cotisation et Suprime toutes les cotisations * * * @Route("amount/reset/cotisation", name="reset_cotisation") * * @param ObjectManager $manager * */ public function reset(ObjectManager $manager) { $debt = new Debt(); $repo = $this->getDoctrine()->getRepository(CategoryAdherent::class); $cat = $repo->findAll(); $repo1 = $this->getDoctrine()->getRepository(Adherent::class); $adherent = $repo1->findAll(); foreach($adherent as $ad) { //var_dump('<li>'.$ad->getFirstName().'</li>') ; foreach( $ad->getAmounts() as $key => $a){ //var_dump($a->getAmount1()); $total = ($a->getAmount1() + $a->getAmount2() + $a->getAmount3() + $a->getAmount4()); var_dump($total); foreach($cat as $cat){ $montant_total = $cat->getMontantcot(); $reste_du = $cat->getMontantcot() - $total; if ($cat->getTitle() === $ad->getSubcategory() and isset($a)and $total < $montant_total){ //var_dump($montant_total);die; $debt->setName($ad->getLastName()); $debt->setPrenom($ad->getFirstName()); $debt->setCategory($ad->getSubCategory()); $debt->setMail($ad->getEmail()); $debt->setTel($ad->getMobilePhone()); $debt->setAmount($reste_du); $manager->persist($debt); $manager->flush(); return $this->redirectToRoute('home'); }//else{ return $this->redirectToRoute("home");} } } } }
merci beaucoup.
Partager