Пример #1
0
 /**
  * @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;
 }