src/Controller/Loyalty/LoyaltyController.php line 363

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Loyalty;
  3. use Pimcore\Controller\FrontendController;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  6. use Symfony\Component\Routing\Annotation\Route;
  7. use Pimcore\Localization\LocaleServiceInterface;
  8. use Pimcore\Model\DataObject\ClassDefinition\Service;
  9. use Pimcore\Model\DataObject\Userloyaltyprogram;
  10. use Pimcore\Model\DataObject\Recipe;
  11. use Pimcore\Model\DataObject\Trainings;
  12. use Pimcore\Model\DataObject\Events;
  13. use Pimcore\Model\DataObject\News;
  14. use Pimcore\Model\DataObject\Products;
  15. use Pimcore\Model\DataObject\Resources;
  16. use Pimcore\Model\DataObject\Users;
  17. use Pimcore\Model\DataObject\Slider;
  18. use Pimcore\Model\DataObject\LoyaltyProgramhomepage;
  19. use Pimcore\Model\DataObject;
  20. class LoyaltyController extends FrontendController{
  21.     
  22.     /**
  23.      * @Route("/loyaltyprogram", name="loyaltyprogram")
  24.     */
  25.     public function loyaltyprogramAction(Request $request)
  26.     {
  27.         $success false;
  28.         $UserName $request->get('UserName');
  29.         $ObjectModule $request->get('ObjectModule');
  30.         $ObjectName $request->get('ObjectName');
  31.         $userid $this->get('session')->get('loginUID');
  32.         $Userdata Users::getById($userid);
  33.         $trianingvalidator = new Userloyaltyprogram\Listing();
  34.         $trianingvalidator->setCondition('user_data__id IN (?) and obj_data__id IN (?) and op_name = ?', [$userid $request->get('ObjectId'), $request->get('OperationName')]);
  35.         $trianingvalidator->load();
  36.     $Userloyaltyprogram = new Userloyaltyprogram();
  37.         $Userloyaltyprogram->setKey(\Pimcore\File::getValidFilename($Userdata->getFirstname().'-'.$Userdata->getLastname().'-'.$userid.'['.$ObjectName.']'.$ObjectModule));
  38.         if($request->get('OperationName') == 'Like'){
  39.             $Userloyaltyprogram->setParent(DataObject\Folder::getByPath('/Loyalty Program/Like/'));
  40.             }
  41.         if($request->get('OperationName') == 'Share'){
  42.             $Userloyaltyprogram->setParent(DataObject\Folder::getByPath('/Loyalty Program/Share/'));
  43.             }
  44.         if($request->get('OperationName') == 'Save'){
  45.             $Userloyaltyprogram->setParent(DataObject\Folder::getByPath('/Loyalty Program/Save/'));
  46.             }
  47.         if($request->get('OperationName') == 'Purchase'){
  48.             $Userloyaltyprogram->setParent(DataObject\Folder::getByPath('/Loyalty Program/Purchase/'));
  49.              }  
  50.         if($request->get('OperationName') == 'Comment'){
  51.             $Userloyaltyprogram->setParent(DataObject\Folder::getByPath('/Loyalty Program/Comment/'));
  52.              }   
  53.              
  54.         if($request->get('OperationName') == 'Viewed'){
  55.              $Userloyaltyprogram->setParent(DataObject\Folder::getByPath('/Loyalty Program/Viewed/'));
  56.              }   
  57.         if($request->get('OperationName') == 'watch'){
  58.            
  59.            
  60.             
  61.                  if(count($trianingvalidator) == 0){
  62.                      $Userloyaltyprogram->setParent(DataObject\Folder::getByPath('/Loyalty Program/watch/'));
  63.                  }
  64.              }   
  65.         $Userloyaltyprogram->setU_id($userid);
  66.         $Userloyaltyprogram->setUser_data($Userdata);
  67.         $Userloyaltyprogram->setU_name($Userdata->getFirstname());
  68.         $Userloyaltyprogram->setU_email($Userdata->getEmail());
  69.         $Userloyaltyprogram->setObj_id($request->get('ObjectId'));
  70.         $Userloyaltyprogram->setObj_name($request->get('ObjectName'));
  71.         if($request->get('ObjectModule') == "Recipe"){
  72.             $ObjectData Recipe::getById($request->get('ObjectId'));
  73.             $Userloyaltyprogram->setObj_data($ObjectData);
  74.         }
  75.         if($request->get('ObjectModule') == "Article"){
  76.             $ObjectData Resources::getById($request->get('ObjectId'));
  77.             $Userloyaltyprogram->setObj_data($ObjectData);
  78.         }
  79.         if($request->get('ObjectModule') == "Event"){
  80.             $ObjectData Events::getById($request->get('ObjectId'));
  81.             $Userloyaltyprogram->setObj_data($ObjectData);
  82.         }
  83.         if($request->get('ObjectModule') == "Product"){
  84.             $ObjectData Products::getById($request->get('ObjectId'));
  85.             $Userloyaltyprogram->setObj_data($ObjectData);
  86.         }
  87.         if($request->get('ObjectModule') == "News"){
  88.             $ObjectData News::getById($request->get('ObjectId'));
  89.             $Userloyaltyprogram->setObj_data($ObjectData);
  90.         }
  91.         if($request->get('ObjectModule') == "Training"){
  92.             $ObjectData Trainings::getById($request->get('ObjectId'));
  93.             if($request->get('OperationName') == 'watch'){
  94.                
  95.                
  96.                 
  97.                      if(count($trianingvalidator) == 0){
  98.                        
  99.                         $Userloyaltyprogram->setObj_data($ObjectData);
  100.                         $Userloyaltyprogram->setwatch_time($request->get('watchvideo'));
  101.                         $Userloyaltyprogram->setDuration($request->get('videoduration'));
  102.                      }elseif(count($trianingvalidator) == 1){
  103.                          
  104.                          foreach($trianingvalidator as $trianingvalidator){
  105.                              if($trianingvalidator->getwatch_time() < $request->get('watchvideo')){
  106.                                 $trianingvalidator->setwatch_time($request->get('watchvideo'));
  107.                                 $result $trianingvalidator->save();
  108.                                 if($result){
  109.                                     $success true;
  110.                                     return $this->json(array('success'=>$success));
  111.                                     exit;          
  112.                                 }
  113.                              }else{
  114.                                 $success false;
  115.                                 return $this->json(array('success'=>$success));
  116.                                     exit;     
  117.                              }
  118.                          }
  119.                        
  120.                      }
  121.                 
  122.                 
  123.            
  124.             }else{
  125.                 $Userloyaltyprogram->setObj_data($ObjectData);
  126.             }
  127.         }
  128.         $Userloyaltyprogram->setObj_mod_name($request->get('ObjectModule'));
  129.         $Userloyaltyprogram->setOp_name($request->get('OperationName'));
  130.         $Userloyaltyprogram->setPoints($request->get('RewardPoints'));
  131.         $Userloyaltyprogram->setOp_status('1');
  132.         if($request->get('OperationName') == 'Like'){
  133.             $Userloyaltyprogram->setDesc("You earned these points by liking");
  134.             $Userloyaltyprogram->setObj_date(date('d/m/y'));
  135.             $Userloyaltyprogram->setObj_time(date('H:i:s'));
  136.             $Userloyaltyprogram->setOrdernumber('N/A');
  137.             $Userloyaltyprogram->setAction('Appreciation');
  138.             $userid $this->get('session')->get('loginUID');
  139.             $Userloyaltyprogrampoints Users::getById($userid);
  140.             $Userloyaltyprogrampoints->setNet_loyalty_points($Userloyaltyprogrampoints->getNet_loyalty_points()+$request->get('RewardPoints'));
  141.             $Userloyaltyprogrampoints->setTotal_liked_loyalty_points($Userloyaltyprogrampoints->getTotal_liked_loyalty_points()+$request->get('RewardPoints'));
  142.             $Userloyaltyprogrampoints->setTotal_num_of_like($Userloyaltyprogrampoints->getTotal_num_of_like()+1);
  143.             $Userloyaltyprogrampoints->setPublished(true);
  144.             $Userloyaltyprogrampoints->save();
  145.             }
  146.         if($request->get('OperationName') == 'Share'){
  147.             $Userloyaltyprogram->setDesc("You earned these points by sharing");
  148.             $Userloyaltyprogram->setObj_date(date('d/m/y'));
  149.             $Userloyaltyprogram->setObj_time(date('H:i:s'));
  150.             $Userloyaltyprogram->setOrdernumber('N/A');
  151.             $Userloyaltyprogram->setAction('Appreciation');
  152.             $userid $this->get('session')->get('loginUID');
  153.             $Userloyaltyprogrampoints Users::getById($userid);
  154.             $Userloyaltyprogrampoints->setNet_loyalty_points($Userloyaltyprogrampoints->getNet_loyalty_points()+$request->get('RewardPoints'));
  155.             $Userloyaltyprogrampoints->setTotal_shared_loyalty_points($Userloyaltyprogrampoints->getTotal_shared_loyalty_points()+$request->get('RewardPoints'));
  156.             $Userloyaltyprogrampoints->setTotal_share($Userloyaltyprogrampoints->getTotal_share()+1);
  157.             $Userloyaltyprogrampoints->setPublished(true);
  158.             $Userloyaltyprogrampoints->save();
  159.             }
  160.         if($request->get('OperationName') == 'Save'){
  161.             $Userloyaltyprogram->setDesc("You earned these points by saving");
  162.             $Userloyaltyprogram->setObj_date(date('d/m/y'));
  163.             $Userloyaltyprogram->setObj_time(date('H:i:s'));
  164.             $Userloyaltyprogram->setOrdernumber('N/A');
  165.             $Userloyaltyprogram->setAction('Appreciation');
  166.             $userid $this->get('session')->get('loginUID');
  167.             $Userloyaltyprogrampoints Users::getById($userid);
  168.             $Userloyaltyprogrampoints->setNet_loyalty_points($Userloyaltyprogrampoints->getNet_loyalty_points()+$request->get('RewardPoints'));
  169.             $Userloyaltyprogrampoints->setTotal_download_loyalty_points($Userloyaltyprogrampoints->getTotal_download_loyalty_points()+$request->get('RewardPoints'));
  170.             $Userloyaltyprogrampoints->setTotal_downloads($Userloyaltyprogrampoints->getTotal_downloads()+1);
  171.             $Userloyaltyprogrampoints->setPublished(true);
  172.             $Userloyaltyprogrampoints->save();
  173.             }
  174.         if($request->get('OperationName') == 'Purchase'){
  175.             $Userloyaltyprogram->setDesc("You earned these points by purchasing");
  176.             $Userloyaltyprogram->setObj_date(date('d/m/y'));
  177.             $Userloyaltyprogram->setObj_time(date('H:i:s'));
  178.             $Userloyaltyprogram->setOrdernumber('N/A');
  179.             $Userloyaltyprogram->setAction('Purchase');
  180.              }  
  181.         if($request->get('OperationName') == 'Viewed'){
  182.             $Userloyaltyprogram->setDesc("You earned these points by Viewed");
  183.             $Userloyaltyprogram->setObj_date(date('d/m/y'));
  184.             $Userloyaltyprogram->setObj_time(date('H:i:s'));
  185.             $Userloyaltyprogram->setOrdernumber('N/A');
  186.             $Userloyaltyprogram->setAction('Read');
  187.             $userid $this->get('session')->get('loginUID');
  188.             $Userloyaltyprogrampoints Users::getById($userid);
  189.             $Userloyaltyprogrampoints->setNet_loyalty_points($Userloyaltyprogrampoints->getNet_loyalty_points()+$request->get('RewardPoints'));
  190.             $Userloyaltyprogrampoints->setTotal_viewed_loyalty_points($Userloyaltyprogrampoints->getTotal_viewed_loyalty_points()+$request->get('RewardPoints'));
  191.             $Userloyaltyprogrampoints->setTotal_viewed($Userloyaltyprogrampoints->getTotal_viewed()+1);
  192.             $Userloyaltyprogrampoints->setPublished(true);
  193.             $Userloyaltyprogrampoints->save();
  194.              }   
  195.                
  196.                         $Userloyaltyprogram->setPublished(true);
  197.                         $result $Userloyaltyprogram->save();
  198.                         if($result){
  199.                             $success true;          
  200.                         }
  201.                 
  202.     return $this->json(array('success'=>$success));
  203.     }
  204.     public function dashboardAction(Request $request)
  205.     {
  206.         if($this->get('session')->get('loginUID') != null){
  207.         $userid $this->get('session')->get('loginUID');
  208.         $userdata = new Userloyaltyprogram\Listing();
  209.         $userdata->setCondition("u_id =".$userid);
  210.         $userdata->Load();
  211.         $ob_id = [];
  212.         $recipe_id = [];
  213.         $points0;
  214.         foreach($userdata as $data){
  215.             $ob_id[]= $data->getObj_id();
  216.             $points += $data->getPoints();
  217.         }
  218.         $points;
  219.         $ob_id;
  220.         $userdatalikerecipe = new Userloyaltyprogram\Listing();
  221.         $userdatalikerecipe->setCondition("u_id = ? and op_name LIKE ?",[$userid,"%Like%"]);
  222.         $userdatalikerecipe->Load();
  223.         $userdatalikerecipeid;
  224.         $likeres = [];
  225.         foreach($userdatalikerecipe as $Userdatalikerecipe){
  226.             $userdatalikerecipeid $Userdatalikerecipe->getObj_id();
  227.             //dd($userdatalikerecipeid);
  228.             $userlikerecipes = new Recipe\Listing();
  229.             $userlikerecipes->setCondition("O_id =".$userdatalikerecipeid);
  230.             if($userlikerecipes->getData() != null){
  231.             $likeres[] = $userlikerecipes->Load();}
  232.         }
  233.         //dd($likeres);
  234.         // $userdatalikerecipeidtotal = count($userdatalikerecipeid);
  235.         // for($i =0; $i<$userdatalikerecipeidtotal; $i++){
  236.         // $userlikerecipes = new Recipe\Listing();
  237.         // $userlikerecipes->setCondition("O_id =".$ob_id[$i]);
  238.         // $userlikerecipes->Load();
  239.         
  240.         $userdatashareobject = new Userloyaltyprogram\Listing();
  241.         $userdatashareobject->setCondition("u_id = ? and op_name LIKE ?",[$userid,"%Share%"]);
  242.         $userdatashareobject->Load();
  243.        // dd($userdatasharerecipe);
  244.         $userdatasharerecipeid;
  245.         $shareres = [];
  246.         foreach($userdatasharerecipe as $Userdatasharerecipe){
  247.             $userdatasharerecipeid $Userdatasharerecipe->getObj_id();
  248.             //dd($userdatasharerecipeid);
  249.             $usersharerecipes = new Recipe\Listing();
  250.             $usersharerecipes->setCondition("O_id =".$userdatasharerecipeid);
  251.             if($usersharerecipes->getData() != null){
  252.             $shareres[] = $usersharerecipes->Load();}
  253.         }
  254.         
  255.        // dd($shareres);
  256.         $userdatasaverecipe = new Userloyaltyprogram\Listing();
  257.         $userdatasaverecipe->setCondition("u_id = ? and op_name LIKE ?",[$userid,"%Save%"]);
  258.         $userdatasaverecipe->Load();
  259.         $userdatasaverecipe = [];
  260.         
  261.         $userdatacommentrecipe = new Userloyaltyprogram\Listing();
  262.         $userdatacommentrecipe->setCondition("u_id = ? and op_name LIKE ?",[$userid,"%Comment%"]);
  263.         $userdatacommentrecipe->Load();
  264.         $userdatacommentrecipe = [];
  265.         $userdataprintrecipe = new Userloyaltyprogram\Listing();
  266.         $userdataprintrecipe->setCondition("u_id = ? and op_name LIKE ?",[$userid,"%Print%"]);
  267.         $userdataprintrecipe->Load();
  268.         $userdataprintrecipe = [];
  269.         //dd($userdataprintrecipe);
  270.         // $res = [];
  271.         // for($i =0; $i<count($ob_id); $i++){
  272.         // $userlikerecipes = new Recipe\Listing();
  273.        
  274.         // $userlikerecipes->setCondition("O_id =".$ob_id[$i]."and ");
  275.         // $res[] = $userlikerecipes->Load();
  276.         return $this->render('users/user-dashboard.html.twig',
  277.         [
  278.             'saverecipes'=>  $userdatasaverecipe,
  279.             'sharerecipes'=>  $shareres,
  280.             'likerecipes'=>  $likeres,
  281.             'commentecipes'=>  $userdatacommentrecipe,
  282.             'printrecipes'=>  $userdataprintrecipe,
  283.             'totalrewardpoints'=>$points,
  284.             
  285.         ]);
  286.         return $this->redirect($locate.'/signin'); 
  287.     }
  288.        
  289.     }
  290.    
  291.   
  292.        public function loyaltyprogramhomeAction(Request $request){
  293.         $LoyaltyProgramhomepage = new LoyaltyProgramhomepage\Listing();
  294.         $LoyaltyProgramhomepage->setLimit(1);
  295.         $LoyaltyProgramhomepage->load();
  296.         foreach($LoyaltyProgramhomepage as $loyaltyProgramhomepage){
  297.             break;
  298.         }
  299.         $ref $request->server->get('REDIRECT_URL');
  300.         $this->get('session')->set('refURL'$ref);
  301.         $loyalty_banner = new Slider\Listing();
  302.         $loyalty_banner->setCondition("o_id = 206");
  303.         $loyalty_banner->load();
  304.         foreach($loyalty_banner as $loyaltybanner){
  305.             break;
  306.         }
  307.         $loyalty_banner_spotlight = new Slider\Listing();
  308.         $loyalty_banner_spotlight->setCondition("o_id = 48093");
  309.         $loyalty_banner_spotlight->load();
  310.         foreach($loyalty_banner_spotlight as $loyaltybannerspotlight){
  311.             break;
  312.         }
  313.         return $this->render('Loyalty Program/loyalty-program.html.twig',
  314.         [
  315.             'loyaltyProgramhomepage'=>$loyaltyProgramhomepage,
  316.             'loyaltybanner'=>$loyaltybanner,
  317.             'loyaltybannerspotlight'=>$loyaltybannerspotlight,
  318.         ]);
  319.     }
  320.     public function loyaltyprogramcatalogAction(Request $request)
  321.          {
  322.         return $this->render('Loyalty Program/loyalty-program-catalog.html.twig');
  323.     }
  324.        
  325.     
  326. }
  327. ?>