src/project/OfficeBrain/CustomBundle/UserBundle/Controller/UserController.php line 31

Open in your IDE?
  1. <?php
  2. namespace App\project\OfficeBrain\CustomBundle\UserBundle\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  4. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
  5. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  6. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\Translation\Translator;
  9. use Symfony\Component\HttpFoundation\JsonResponse;
  10. use App\OfficeBrain\Bundle\CoreBundle\CustomeHandler as FormErrorManager;
  11. use App\OfficeBrain\Bundle\UserBundle\Entity\User;
  12. // use App\project\OfficeBrain\CustomBundle\UserBundle\Entity\User; // change project user entity
  13. use App\project\OfficeBrain\CustomBundle\UserBundle\Form\UserType;
  14. use App\OfficeBrain\Bundle\UserBundle\Form\UserPhotoType;
  15. use Symfony\Component\DependencyInjection\ContainerInterface;
  16. use App\OfficeBrain\Bundle\UserBundle\Controller\UserController as baseUserController;
  17. use App\OfficeBrain\Bundle\UserBundle\Manager\Service\UserService;
  18. use App\OfficeBrain\Bundle\UserBundle\Manager\Service\SignUpService;
  19. use App\OfficeBrain\Bundle\CoreBundle\Manager\Service\CoreService;
  20. use App\OfficeBrain\Bundle\SubShopBundle\Manager\Service\SubShopService;
  21. use App\OfficeBrain\Bundle\UserBundle\Manager\Service\BiosService;
  22. use App\OfficeBrain\Bundle\OrderBundle\Manager\Service\OrderService;
  23. use App\OfficeBrain\Bundle\WishListBundle\Manager\Service\WishListService;
  24. use App\OfficeBrain\Bundle\RequestQuoteBundle\Manager\Service\RequestQuoteService;
  25. use App\project\OfficeBrain\CustomBundle\UserBundle\Manager\Service\UserService as CustomUserService;
  26. use App\project\OfficeBrain\CustomBundle\UserBundle\Manager\Service\SignUpService as CustomSignUpService;
  27. use App\OfficeBrain\Bundle\QueueBundle\Manager\Service\ApiManager as QueueApiManager;
  28. class UserController extends baseUserController
  29. {
  30.     /**
  31.      * @author Employee Id: 4834
  32.      * set default value
  33.      * @return NULL
  34.      */
  35.     public function __construct(ContainerInterface $containerUserService $userServiceSignUpService $signUpServiceCoreService $coreServiceSubShopService $subShopServiceBiosService $biosServiceOrderService $orderServiceWishListService $wishlistServiceRequestQuoteService $requestQuoteServiceCustomUserService $customUserServiceCustomSignUpService $customSignUpServiceQueueApiManager $queueApiManager)
  36.     {
  37.         parent::__construct($container$userService$signUpService$coreService$subShopService$biosService$orderService$wishlistService$requestQuoteService$queueApiManager);
  38.         $this->customUserService $customUserService->getUserExtended();
  39.         $this->customSignUpService $customSignUpService->getSignUpExtended();
  40.     }
  41.     /**
  42.      * @author Employee Id: 4834
  43.      * unset default value
  44.      * @return NULL
  45.      */
  46.     public function __destruct()
  47.     {
  48.         parent::__destruct();
  49.     }
  50.     /**
  51.      *
  52.      * @author Employee Id: 4273
  53.      *
  54.      *         Create various objects required action in this class
  55.      *
  56.      * @return NULL
  57.      */
  58.     public function initAction(Request $request)
  59.     {
  60.         parent::initAction($request);
  61.         // $this->userManager = $this->serviceContainer->get('office_brain_user_manager_custom');
  62.         $this->userManager $this->customUserService;
  63.         // $this->signUpManager = $this->serviceContainer->get('office_brain_user_sign_up_manager_custom');
  64.         $this->signUpManager $this->customSignUpService;
  65. //         $this->projectUserSetting = $this->request->get('project_user_setting');
  66.     }
  67.     
  68.     /**
  69.      * @author Employee Id: 4273
  70.      * OB eCommerce Product - Login
  71.      * Function created to show edit info form
  72.      *
  73.      * @Route("/{_locale}/my-account/edit-info",
  74.      *     name="office_brain_userbundle_user_my_account_edit",
  75.      *  options={"expose"=true}, methods={"GET"}
  76.      * )
  77.      * @Template("project/OfficeBrain/CustomBundle/UserBundle/User/myAccountEdit.html.twig")
  78.      */
  79.     public function myAccountEditAction(Request $request)
  80.     {
  81.         $this->initAction($request);
  82.         $data = array();
  83.         $user $this->projectUserSetting['user_data'];
  84.         $user $user->getId();
  85.         $user $this->userManager->getUserById($user);
  86.         $userType $user->getUserType();
  87.         $signUpFormFields $this->signUpManager->getsignUpFormData($userType);
  88.         // $userTypeObj = new UserType($this->coreManager, $signUpFormFields, 'main_edit'); // symfony 4
  89.         $form $this->createFormUserType::class, $user,[
  90.             'core_manager' => $this->coreManager,
  91.             'form_fields' => $signUpFormFields,
  92.             'form_type' => 'main_edit',
  93.         ]);
  94.         if($user->getCountryId()=='739')
  95.         {
  96.             $data['othercountry']=1;
  97.         }
  98.         // $form = $this->createForm($userTypeObj, $user); // symfony 4
  99.         $form_photo $this->createForm(UserPhotoType::class, $user);
  100.         $data['form_user'] = $form->createView();
  101.         $data['form_fields'] = $signUpFormFields;
  102.         $data['form_photo'] = $form_photo->createView();
  103.         $data['states'] = $this->coreManager->getStateData($user->getCountryId());
  104.         $data['distributors'] = $this->userManager->getDistributors();        
  105.         return $data;
  106.     }
  107.     /**
  108.      * @author Employee Id: 4273
  109.      * OB eCommerce Product - Login
  110.      * Function created to save edit info
  111.      *
  112.      * @Route("/{_locale}/my-account/edit-info",
  113.      *     name="office_brain_userbundle_user_my_account_edit_post",
  114.      *  options={"expose"=true}, methods={"POST"}
  115.      * )
  116.      * @Template("project/OfficeBrain/CustomBundle/UserBundle/User/myAccountEdit.html.twig")
  117.      */
  118.     public function myAccountEditPostAction(Request $request)
  119.     {
  120.         $this->initAction($request);
  121.         $data = array();
  122.         $errors '';
  123.         $user $this->projectUserSetting['user_data'];
  124.         $user $user->getId();
  125.         $user $this->userManager->getUserById($user);
  126.         $userType $user->getUserType();
  127.         $signUpFormFields $this->signUpManager->getsignUpFormData($userType);
  128.         $requestarray=$this->request->request->all();
  129.         // if($requestarray['ob_user']['countryId']=='739') // symfony 4
  130.         if($requestarray['user']['countryId']=='739')
  131.         {
  132.             unset($signUpFormFields['validations'][7]);
  133.             unset($signUpFormFields['validations'][8]);
  134.             unset($signUpFormFields['validations'][9]);
  135.             $data['othercountry']=1;
  136.         }
  137.         // $userTypeObj = new UserType($this->coreManager, $signUpFormFields, 'main_edit'); // symfony 4
  138.         $form $this->createFormUserType::class, $user,[
  139.             'core_manager' => $this->coreManager,
  140.             'form_fields' => $signUpFormFields,
  141.             'form_type' => 'main_edit',
  142.         ]);
  143.         $isIndividual $user->getIsIndividual(); 
  144.         // $form = $this->createForm($userTypeObj, $user); // symfony 4
  145.         $form->handleRequest($this->request);
  146.         $form_photo $this->createForm(UserPhotoType::class, $user);
  147.         $form->getData()->setIsIndividual($isIndividual); // for admin issue
  148.         $userStatus $this->userManager->editUser($form);
  149.         
  150.         if ($userStatus) {
  151.             $erpIntegration $this->projectSetting['configuration_rule']['erp_integration'];
  152.             $is_individual $userStatus->getIsIndividual();
  153.             $erp_flag TRUE;
  154.             $user_type $userStatus->getUserType();
  155.             if (($user_type == 'end_user' && $this->projectSetting['instance_type'] == 'supplier') || ($is_individual == TRUE && $this->projectSetting['instance_type'] == 'supplier')) {
  156.                 $erp_flag FALSE;
  157.             }
  158.             if ($erpIntegration && $erpIntegration['userManagement'] == && !empty($this->queueApiManager) && $userStatus->getErpId()>&& $erp_flag == TRUE ) {
  159.                 $this->queueApiManager->mapQueue("update"$userStatus);
  160.             }
  161.             $this->get('session')->getFlashBag()->set('success_message'$this->translator->trans('user.my_account_edit.success_msg'));
  162.             return $this->redirect($this->generateUrl('office_brain_userbundle_user_my_account_info'));
  163.         }
  164.         $data['form_user'] = $form->createView();
  165.         $data['form_fields'] = $signUpFormFields;
  166.         $data['form_photo'] = $form_photo->createView();
  167.         $data['states'] = $this->coreManager->getStateData($user->getCountryId());
  168.         $data['distributors'] = $this->userManager->getDistributors();        
  169.         if ($this->request->isXmlHttpRequest()) {
  170.             if ($this->request->get('call_type')=='country_code' || $this->request->get('call_type')=='state_code') {
  171.                 return $data;
  172.             } else {
  173.                 $errors = array(
  174.                         'form_name' => $form->getName(),
  175.                         'form_status' => 'error',
  176.                         'form_errors' => $this->formErrorManager->prepareErrorArray($this->get('validator')->validate($form))
  177.                 );
  178.                 return new JsonResponse($errors);
  179.             }
  180.         }
  181.         return $data;
  182.     }
  183. }