예제 #1
0
 public function confirmVente(AdvertInterest $interest)
 {
     $optionType = $this->entityManager->getRepository('SnoozitPlatformBundle:AdvertOptionType')->find(7);
     // On lance le dispatch d'évenement
     //$this->containerAware->get('event_dispatcher')->dispatch(SkuagEvents::ON_ACCEPT_INTEREST, new InterestEvent($interest->getAdvert(), $interest->getUser()));
     $interest->setAdvertOptionType($optionType);
     // On met l'annonce en statut " Vente en cours " afin que les autres annonces change de statut le temps des transferts d'argent et produit.
     $interest->getAdvert()->setInProgress($interest->getUser());
     $this->entityManager->persist($interest);
     $this->entityManager->flush();
     return;
 }
예제 #2
0
 public function produitRecuAction(AdvertInterest $advertInterest)
 {
     $user = $this->getUser();
     // On controle que l'utilisateur est bien l'acheteur.
     if ($user != $advertInterest->getUser()) {
         throw new AccessDeniedException("Cet interet ne vous appartient pas");
     }
     // Tout les testes sont bien validés on passe au traitement
     $em = $this->getDoctrine()->getEntityManager();
     // Soit on est en statut " Argent Recu " et donc on valide définitivement la vente en passant au statut "Vendu"
     if ($advertInterest->getAdvertOptionType()->getId() == 11) {
         $advertOptionType = $em->getRepository("SnoozitPlatformBundle:AdvertOptionType")->find(4);
         // Modification du statut de l'interet
         $advertInterest->setAdvertOptionType($advertOptionType);
         // On passe donc l'annonce en non visible via setSold() = true
         $advert = $advertInterest->getAdvert();
         $advert->setSold(true);
         $advert->setSoldTo($advertInterest->getUser());
         $em->persist($advertInterest);
         $em->persist($advert);
         $em->flush();
     } elseif ($advertInterest->getAdvertOptionType()->getId() == 7) {
         $advertOptionType = $em->getRepository("SnoozitPlatformBundle:AdvertOptionType")->find(11);
         // Modification du statut de l'interet
         $advertInterest->setAdvertOptionType($advertOptionType);
         $em->persist($advertInterest);
         $em->flush();
     } else {
         throw new EntityNotFoundException('Cette annonce ne remplie pas les conditions requises.');
     }
     return $this->redirect($this->generateUrl('snoozit_platform_panier_homepage'));
 }
예제 #3
0
 public function archiveInterestAction(Request $request, AdvertInterest $advertInterest)
 {
     $em = $this->getDoctrine()->getManager();
     $user = $this->getUser();
     if (!is_object($user) || !$user instanceof UserInterface) {
         throw new AccessDeniedException('Vous devez être identifié pour pouvoir acceder à cette zone.');
     }
     // Si on n'est pas dans la situation actuelle de 5 ( Desistement ) ou 3 ( Refuser )
     if ($advertInterest->getAdvertOptionType()->getId() == 5 or $advertInterest->getAdvertOptionType()->getId() == 3) {
         // Si l'utilisateur n'est ni le créateur de l'annonce ni l'interessé
         if ($advertInterest->getAdvert()->getUser() != $user) {
             throw new AccessDeniedException('Vous n\'êtes pas concerné par cette interet.');
         }
         // Si on est le créateur de l'annonce
         $entity = $advertInterest->setOwnerFade(true);
         $em->persist($entity);
         $em->flush();
         return $this->redirect($this->generateUrl('snoozit_dashboard_interest'));
     }
     throw new AccessDeniedException('Il y a un probleme de traitement dans removeDesistInterestFromInterface');
 }