public function newAdsProductAction($id,Request $request)
    {
    	if(!$this->container->get('security.context')->isGranted('IS_AUTHENTICATED_FULLY') ){
    		return $this->redirectToRoute('fos_user_security_login');
    	}
    	 
    	$formData=new Formdata();
    	$adProduct=new AdsmanagerProduct();
    	$message=new Message();

    	
    	$form=$this->createForm(new AdsmanagerProductType(),$adProduct);
    	if(!$formData->isSetFormat($request))
    	{
    		return $this->render('AdsmanagerBundle:Product:newProductAds.html.twig',array("form"=>$form->createView()));
    	}
    	
    	if(!$formData->isValidFormat($request,$form,$message))
    	{
    		$message->show($this);
    		return $this->render('AdsmanagerBundle:Product:newProductAds.html.twig',array("form"=>$form->createView()));
    		 
    	}
    	
    	$image = $request->files->get('imagen');
    	
    	if(!$formData->isValidImage($image,$form,$adProduct,$message,'name')){
    		$message->show($this);
    		return $this->render('AdsmanagerBundle:Product:newProductAds.html.twig',array("form"=>$form->createView()));
    		 
    	}
    	$price=$request->request->get('price');
    	$adProduct->setPrice(str_replace('.', '', $price));
    	$adProduct->setIdAd($id);
    	$formData->insertData($this,$adProduct);
    	$message->setSuccessMessages("El Producto o servicio ha sido Ingresado Exitosamente.")->show($this);
    	$this->setNameIdImages ( $formData,$adProduct, $image );
    	 
    	if($image){
    		$formData->uploadImages($image,'images/ids/'.$id,$adProduct);
    		$this->resizeImages($id,$adProduct->getImages());
    	}
    	 
    	return $this->redirectToRoute('my_ads');
    }
Пример #2
0
    public function newAdsAction(Request $request)
    {
    	
    	if(!$this->container->get('security.context')->isGranted('IS_AUTHENTICATED_FULLY') ){
    		return $this->redirectToRoute('fos_user_security_login');
    	}
    	
    	$formData=new Formdata();
    	$ad=new AdsmanagerAds();
    	$message=new Message();
    	
    	$categories=$this->getDoctrine()
    	->getRepository("AdsmanagerBundle:AdsmanagerCategories");
    	$query = $categories->createQueryBuilder('a')
    	->addOrderBy('a.name', 'ASC')
    	->getQuery();
    	
    	$categories = $query->getResult();
    	
    	$cities=new AdsmanagerCities();
    	$userLocation = $this->get('security.context')->getToken()->getUser()->getLocation();
    	$locationCity=$cities->getAdCity($this->getDoctrine()->getEntityManager(),$userLocation);
    	
    	    	
    	$form=$this->createForm(new AdsmanagerAdsType($this->getDoctrine()->getEntityManager()),$ad,array('validation_groups'=>'add'));
    	if(!$formData->isSetFormat($request))
    	{
			return $this->render('AdsmanagerBundle:Ads:newAds.html.twig',array("form"=>$form->createView(),"categories"=>$categories,"location"=>$locationCity));
    	}

    	if(!$formData->isValidFormat($request,$form,$message))
    	{
    		$message->show($this);
    		return $this->render('AdsmanagerBundle:Ads:newAds.html.twig',array("form"=>$form->createView(),"categories"=>$categories,"location"=>$locationCity));
    	
    	}

    	$image = $request->files->get('imagen');

    	if(!$formData->isValidImage($image,$form,$ad,$message,'adHeadline')){
    		$message->show($this);
    		return $this->render('AdsmanagerBundle:Ads:newAds.html.twig',array("form"=>$form->createView(),"categories"=>$categories,"location"=>$locationCity));
     		
    	}
    	$userId = $this->get('security.context')->getToken()->getUser()->getId();
    	$ad->setUserid($userId);
    	$date = new DateTime();
    	$ad->setDateCreated($date);
    	$createDate = new DateTime();
    	$ad->setExpirationDate($createDate->add(new DateInterval('P1Y')));
    	
    	$formData->insertData($this,$ad);
    	$message->setSuccessMessages("El anuncio ha sido Ingresado Exitosamente.")->show($this);
    	$this->setNameIdImages ( $formData, $ad, $image );
    	
    	if($image){
    	$formData->uploadImages($image,'images/ids/'.$ad->getId(),$ad);
    	$this->resizeImages($ad->getId(),$ad->getImages());
    	}
    	
    	return $this->redirectToRoute('my_ads');
    }
    public function newAdsProductAction($id,Request $request)
    {
    	if(!$this->container->get('security.context')->isGranted('IS_AUTHENTICATED_FULLY') ){
    		return $this->redirectToRoute('fos_user_security_login');
    	}
    	 
    	$formData=new Formdata();
    	$adProduct=new AdsmanagerProduct();
    	$message=new Message();

    	
    	$form=$this->createForm(new AdsmanagerProductType(),$adProduct);
    	if(!$formData->isSetFormat($request))
    	{
    		return $this->render('AdsmanagerBundle:Product:newProductAds.html.twig',array("form"=>$form->createView()));
    	}
    	
    	if(!$formData->isValidFormat($request,$form,$message))
    	{
    		$message->show($this);
    		return $this->render('AdsmanagerBundle:Product:newProductAds.html.twig',array("form"=>$form->createView()));
    		 
    	}
    	
    	$image = $request->files->get('imagen');
    	
    	if(!$formData->isValidImage($image,$form,$adProduct,$message,'name')){
    		$message->show($this);
    		return $this->render('AdsmanagerBundle:Product:newProductAds.html.twig',array("form"=>$form->createView()));
    		 
    	}



        $userId = $this->get('security.context')->getToken()->getUser()->getId();
        $userType=$this->getDoctrine()->getRepository("AdsmanagerBundle:AdsUsers")->find($userId);
        $numberAds = $this->getDoctrine()->getManager();
        $query = $numberAds->createQuery('SELECT a.id FROM AdsmanagerBundle:AdsmanagerAds a 
                                          Where a.userid= :idUser')->setParameter('idUser',$userId);
        $result = $query->getResult();

        $numberProducts=0;
        foreach ($result as $row) {
            $query = $numberAds->createQuery('SELECT COUNT(a.idAd) FROM AdsmanagerBundle:AdsmanagerProduct a 
            Where a.idAd= :id')->setParameter('id',$row['id']);
            $numberAdsResult = $query->getSingleScalarResult();
            $numberProducts=$numberAdsResult + $numberProducts;
        }

   
        $price=$request->request->get('price');
        
        if($userType->getAccounttype()==0 &&  $numberProducts <3)
            {   

             $this->setAddProduct($adProduct,$formData,$message,$price,$image,$id);
            }
        elseif($userType->getAccounttype()==1 &&  $numberProducts <10) 
            {
              $this->setAddProduct($adProduct,$formData,$message,$price,$image,$id);
            }
        elseif($userType->getAccounttype()==2 || $userType->getAccounttype()==3)
            {
               $this->setAddProduct($adProduct,$formData,$message,$price,$image,$id);
            }
        else{
          $message->setErrorMessages("Tiene que actualizar su cuenta para publicar un nuevo producto.")->show($this);   
        }
        
    	return $this->redirectToRoute('my_ads');

    }