/** * * @param Marche $marche * @return bool */ private function hasAvance(Marche $marche) { return $this->getDoctrine()->getRepository('LaisoArmBundle:Decompte')->findOneBy(array('numero' => 0, 'avenant' => $marche->getAvenants()[0]->getId())) != null; }
/** * @param \Laiso\ArmBundle\Entity\Marche $marche * @param \Laiso\ArmBundle\Entity\Decompte $dp * @return array */ private function getAllAttachement($marche, $dp) { $attachements = array(); /** @var \Laiso\ArmBundle\Entity\Avenant $avenant */ foreach ($marche->getAvenants() as $avenant) { /** @var \Laiso\ArmBundle\Entity\Decompte $decompte */ foreach ($avenant->getDecomptes() as $decompte) { if ($decompte->getNumero() <= $dp->getNumero()) { /** @var \Laiso\ArmBundle\Entity\Attachement $attachement */ foreach ($decompte->getAttachements() as $attachement) { array_push($attachements, $attachement); } } } } return $attachements; }
/** * * @param Marche $marche * @return \Symfony\Component\HttpFoundation\RedirectResponse */ public function validatePuAction(Marche $marche) { $this->verifyAccess(); $em = $this->getDoctrine()->getManager(); /** @var \Laiso\ArmBundle\Entity\Avenant $avenant */ $avenant = $marche->getAvenants()[count($marche->getAvenants()) - 1]; if (!$avenant) { throw new NotFoundHttpException('Unable to find Avenant entity'); } $valide = true; foreach ($avenant->getLignes() as $ligne) { if ($ligne->getPrix()->getPrixUnitaire() == null || $ligne->getPrix()->getPrixUnitaire() == 0) { $valide = false; $this->addFlash('error', 'Veuillez remplir tous les prix unitaires avant de valider.'); break; } } if ($valide) { $lotissement = $marche->getLotissement()->setPuValide(true); // Mettre à jour le montant du marché (marche::montant) $montant = 0.0; /** @var \Laiso\ArmBundle\Entity\LigneDQE $ligne */ foreach ($avenant->getLignes() as $ligne) { $montant += $ligne->getQuantite() * $ligne->getPrix()->getPrixUnitaire(); } $marche->setMontant($montant); $em->persist($marche); $em->persist($lotissement); $em->flush(); } return $this->redirect($this->generateUrl('marche_show', array('id' => $marche->getId()))); }