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; }
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')); }
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'); }