/** * @param Attachement $attachement * @return Attachement */ private function handleRetenue($attachement) { $retenue = new Attachement(); $retenue->setNumero($attachement->getNumero() + 1); $retenue->setDateAttachement($attachement->getDateAttachement()); $retenue->setDecompte($attachement->getDecompte()); $retenue->setType('RETENUE'); $retenue->setValide(true); $montantPartiel = 0.0; $em = $this->getDoctrine()->getManager(); $em->persist($retenue); $attachement->setRetenue($retenue); /** @var \Laiso\ArmBundle\Entity\ConsistanceAttachement $consistance */ foreach ($attachement->getConsistances() as $consistance) { $consistanceAttachement = new ConsistanceAttachement(); $consistanceAttachement->setAttachement($retenue); $consistanceAttachement->setLibelle($consistance->getLibelle()); $consistanceAttachement->setType($consistance->getType()); $em->persist($consistanceAttachement); /** @var \laiso\ArmBundle\Entity\LigneAttachement $ligne */ foreach ($consistance->getLignes() as $ligne) { if ($ligne->getLigneDqe()->getPrix()->getSerie()->getCategorie()->getNumero() > 100) { $ligneAttachement = new LigneAttachement(); $ligneAttachement->setLigneDqe($ligne->getLigneDqe()); $ligneAttachement->setConsistance($consistanceAttachement); $ligneAttachement->setQuantite($ligne->getQuantite()); $ligneAttachement->setQuantiteAnterieure($ligne->getQuantiteAnterieure()); $m = $ligneAttachement->getQuantite() * $ligneAttachement->getLigneDqe()->getPrix()->getPrixUnitaire(); $montantPartiel += $m; $em->persist($ligneAttachement); } } } $retenue->setMontantHTVA($montantPartiel / 10.0); $this->addFlash('success', 'Retenue de garantie créée avec succès'); $em->flush(); return $retenue; }