src/Controller/DealobligeController.php line 159

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Dealoblige;
  4. use App\Entity\Deal;
  5. use App\Entity\ChampsDeal;
  6. use App\Form\DealobligeType;
  7. use App\Repository\DealobligeRepository;
  8. use App\Repository\InstallateurRepository;
  9. use App\Repository\ObligesRepository;
  10. use App\Repository\ChampsDefautRepository;
  11. use App\Repository\DealRepository;
  12. use App\Repository\ChampsDealRepository;
  13. use App\Repository\ActiviteDealRepository;
  14. use App\Repository\NotificationsRepository;
  15. use App\Repository\HistoriqueDealRepository;
  16. use App\Repository\FactureAafRepository;
  17. use App\Repository\AppelqualiteRepository;
  18. use App\Repository\SoustraitantRepository;
  19. use App\Repository\ContratRepository;
  20. use App\Repository\DepotDossierRepository;
  21. use App\Repository\ChampsDepotDossierRepository;
  22. use App\Repository\CommentairesControlleRepository;
  23. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  24. use Symfony\Component\HttpFoundation\Request;
  25. use Symfony\Component\HttpFoundation\Response;
  26. use Symfony\Component\Routing\Annotation\Route;
  27. use Datetime;
  28. /**
  29.  * @Route("/dealoblige")
  30.  */
  31. class DealobligeController extends AbstractController
  32. {
  33.     /**
  34.      * @Route("/", name="app_dealoblige_index", methods={"GET"})
  35.      */
  36.     public function index(DealobligeRepository $dealobligeRepository): Response
  37.     {
  38.        
  39.         if ($this->isGranted('ROLE_OBLIGE')) {
  40.             
  41.             return $this->redirectToRoute('app_obliges_edit', ['id' => $this->getUser()->getObliges()->getId()], Response::HTTP_SEE_OTHER);
  42.         }
  43.         $dealoblige$dealobligeRepository->findAll();
  44.         $tab=[];
  45.         $dealobliges=[];
  46.         // id,type as owner,client as name ,date,file ,batiment
  47.         foreach ($dealoblige as  $value) {
  48.         
  49.             $tab['id']=$value->getId();
  50.             $tab['name']=$value->getNom();
  51.             if ($value->getOblige()) {
  52.                 $tab['owner']=$value->getOblige()->getSociete();
  53.                
  54.             }
  55.             
  56.             if ($value->getDatedebut()) {
  57.                 $tab['industry_type']=$value->getDatedebut()->format('d-m-Y');
  58.             }
  59.             if ($value->getDatefin()) {
  60.                 $tab['location']=$value->getDatefin()->format('d-m-Y');
  61.             }
  62.                 
  63.          
  64.             $tab['employee']="dealoblige";
  65.             $dealobliges[]=$tab;
  66.         }
  67.         $clientjson json_encode($dealobliges);
  68.     
  69.          //die(json_encode($clientjson ));
  70.         file_put_contents('assets/json/dealoblige-list.json'$clientjson);
  71.         return $this->render('dealoblige/index.html.twig', [
  72.             'dealobliges' => $dealobligeRepository->findAll(),
  73.         ]);
  74.     }
  75.     /**
  76.      * @Route("/new", name="app_dealoblige_new", methods={"GET", "POST"})
  77.      */
  78.     public function new(Request $requestDealobligeRepository $dealobligeRepository,InstallateurRepository $installateurRepository,ObligesRepository $obligesRepository,
  79.     ChampsDefautRepository $champsDefautRepositoryDealRepository $dealRepository,ChampsDealRepository $champsDealRepository
  80.     ): Response
  81.     {
  82.         $dealoblige = new Dealoblige();
  83.         // $form = $this->createForm(DealobligeType::class, $dealoblige);
  84.         // $form->handleRequest($request);
  85.         if ($request->getMethod() == "POST") {
  86.                 $form $request->request;
  87.             
  88.                 $dealoblige->setNom($form->get('nom'));
  89.                 
  90.                 $datedebut date('d-m-Y'strtotime($form->get('datedebut'))) ;
  91.                 
  92.                 $datetimedebut = new Datetime($datedebut);
  93.                 $dealoblige->setDatedebut($datetimedebut); 
  94.                 $datefin date('d-m-Y'strtotime($form->get('datefin'))) ;
  95.                 
  96.                 $datetimefin = new Datetime($datefin);
  97.                 $dealoblige->setDatefin($datetimefin); 
  98.                 
  99.                 $oblige$obligesRepository->findOneBy(["id"=>intval($form->get('oblige'))]);
  100.                 $dealoblige->setOblige($oblige);
  101.                 $dealobligeRepository->add($dealobligetrue);
  102.                 if ($form->get('installateur') != null) {
  103.                     foreach ($form->get('installateur') as  $value) {
  104.                         $installateur$installateurRepository->findOneBy(["id"=>intval($value)]);
  105.                         $deal = new Deal();
  106.                         $deal->setNumero($form->get('nom').'-'.$installateur->getSociete());
  107.                         $deal->setInstallateur($installateur);
  108.                         $deal->setStatus("Nouveau"); 
  109.                         $deal->setDealoblige($dealoblige);
  110.                         $dealRepository->add($dealtrue);
  111.                         
  112.                         foreach ($oblige->getChampsobliges() as  $chmps) {
  113.                                $champsDeal = new ChampsDeal();
  114.                               
  115.                                $champsDeal->setNom($chmps->getNom());
  116.                                $champsDeal->setType($chmps->getType());
  117.                                if ($chmps->getType()== 'file') {
  118.                                 $champsDeal->setStatus('Non Transmis');
  119.                                }
  120.                                $champsDeal->setDurevalidite($chmps->getDurevalidite());
  121.                                $champsDeal->setDeal($deal);
  122.                               // dd($champsDeal);
  123.                                $champsDealRepository->add($champsDealtrue);
  124.                         }
  125.                         
  126.                         // dd($deal);
  127.                        
  128.                     }
  129.                 }
  130.                
  131.             return $this->redirectToRoute('app_dealoblige_index', [], Response::HTTP_SEE_OTHER);
  132.         }
  133.         return $this->renderForm('dealoblige/new.html.twig', [
  134.             'dealoblige' => $dealoblige,
  135.             'listinstallateurs' => $installateurRepository->findAll(),
  136.             'champs' => $champsDefautRepository->findAll(),
  137.             'listobliges' => $obligesRepository->findAll(),
  138.         ]);
  139.     }
  140.     /**
  141.      * @Route("/{id}", name="app_dealoblige_show", methods={"GET"})
  142.      */
  143.     public function show(Dealoblige $dealoblige): Response
  144.     {
  145.         return $this->render('dealoblige/show.html.twig', [
  146.             'dealoblige' => $dealoblige,
  147.         ]);
  148.     }
  149.     /**
  150.      * @Route("/{id}/edit", name="app_dealoblige_edit", methods={"GET", "POST"})
  151.      */
  152.     public function edit(Request $requestDealoblige $dealobligeDealobligeRepository $dealobligeRepository): Response
  153.     {
  154.         // $form = $this->createForm(DealobligeType::class, $dealoblige); 
  155.         // $form->handleRequest($request);
  156.         // if ($form->isSubmitted() && $form->isValid()) {
  157.         //     $dealobligeRepository->add($dealoblige, true);
  158.         //     return $this->redirectToRoute('app_dealoblige_index', [], Response::HTTP_SEE_OTHER);
  159.         // }
  160.         if ($request->getMethod() == "POST") {
  161.             
  162.             $form $request->request;
  163.             $dealoblige->setNom($form->get('nom'));
  164.             
  165.             $datedebut date('d-m-Y'strtotime($form->get('datedebut'))) ;
  166.             
  167.             $datetimedebut = new Datetime($datedebut);
  168.             $dealoblige->setDatedebut($datetimedebut); 
  169.             $datefin date('d-m-Y'strtotime($form->get('datefin'))) ;
  170.             
  171.             $datetimefin = new Datetime($datefin);
  172.             $dealoblige->setDatefin($datetimefin); 
  173.             $dealobligeRepository->add($dealobligetrue);
  174.             return $this->redirectToRoute('app_dealoblige_edit', ['id' =>$dealoblige->getId()], Response::HTTP_SEE_OTHER);
  175.         }
  176.         
  177.         return $this->renderForm('dealoblige/edit.html.twig', [
  178.             'dealoblige' => $dealoblige
  179.         ]);
  180.     }
  181.     /**
  182.      * @Route("/{id}", name="app_dealoblige_delete", methods={"POST"})
  183.      */
  184.     public function delete(Request $requestDealoblige $dealobligeDealobligeRepository $dealobligeRepository,DealRepository $dealRepository,ChampsDealRepository $champsDealRepository,ActiviteDealRepository $activiteDealRepository
  185.     NotificationsRepository $notificationsRepository,HistoriqueDealRepository $historiqueDealRepository,FactureAafRepository $factureAafRepository,AppelqualiteRepository $appelqualiteRepository,
  186.     SoustraitantRepository $soustraitantRepositor,ContratRepository $contratRepository,
  187.     DepotDossierRepository $depotDossierRepository,ChampsDepotDossierRepository $champsDepotDossierRepository,CommentairesControlleRepository $commentairesControlleRepository): Response
  188.     {
  189.         if ($this->isCsrfTokenValid('delete'.$dealoblige->getId(), $request->request->get('_token'))) {
  190.             
  191.             foreach ($dealoblige->getDeal() as $key => $deal) {
  192.                 foreach ($deal->getChampsDeal() as  $value) {
  193.            
  194.                     $deal->removeChampsDeal($value);
  195.     
  196.                     $champsDealRepository->remove($valuetrue);
  197.                    
  198.                 }
  199.                 foreach ($notificationsRepository->findBy(["action_id"=>$deal->getId()]) as  $value) {
  200.                     $notificationsRepository->remove($valuetrue);
  201.                  }
  202.     
  203.                 foreach ($deal->getActiviteDeals() as  $value) {
  204.                
  205.                     $deal->removeActiviteDeal($value);
  206.     
  207.                     $activiteDealRepository->remove($valuetrue);
  208.                    
  209.                 }
  210.                 foreach ($deal->getHistoriqueDeals() as  $value) {
  211.                
  212.                     $deal->removeHistoriqueDeal($value);
  213.     
  214.                     $historiqueDealRepository->remove($valuetrue);
  215.                    
  216.                 }
  217.                 foreach ($deal->getOperation() as  $value) {
  218.                
  219.                     $deal->removeOperation($value);
  220.     
  221.                     
  222.                    
  223.                 }
  224.                 if($deal->getApporteurAffaire()){
  225.                     $deal->setApporteurAffaire(NULL);
  226.                 }
  227.                 
  228.                 
  229.                 foreach ($deal->getDepotDossiers() as $dossier) {
  230.                
  231.                     foreach ($dossier->getChampsDepotDossiers() as $champdossier) {
  232.                         $champsDepotDossierRepository->remove($champdossiertrue);
  233.                     }
  234.     
  235.                     foreach ($dossier->getCommentairesControlles() as $commentaire) {
  236.                         $commentairesControlleRepository->remove($commentairetrue);
  237.                     }
  238.                     foreach ($dossier->getSoustraitants() as  $value) {
  239.                
  240.                         $dossier->removeSoustraitant($value);
  241.         
  242.                        // $soustraitantRepository->remove($value, true);
  243.                        
  244.                     }
  245.     
  246.                     foreach ($dossier->getFactureAafs() as  $value) {
  247.            
  248.                         // $depotDossier->removeFactureAaf($value);
  249.                         foreach ($value->getCommentaireFactureaafs() as  $commentaire) {
  250.     
  251.                             $value->removeCommentaireFactureaaf($commentaire);
  252.             
  253.                             // $activiteDealRepository->remove($commentaire, true);
  254.                         
  255.                         }
  256.                         $factureAafRepository->remove($valuetrue);
  257.                        
  258.                     }
  259.         
  260.                     foreach ($dossier->getAppelqualites() as  $value) {
  261.                         foreach ($value->getCommentaireAppelqualites() as  $commentaire) {
  262.     
  263.                             $value->removeCommentaireAppelqualite($commentaire);
  264.             
  265.                             // $activiteDealRepository->remove($commentaire, true);
  266.                         
  267.                         }
  268.                         // $depotDossier->removeAppelqualite($value);
  269.         
  270.                         $appelqualiteRepository->remove($valuetrue);
  271.                        
  272.                     }
  273.     
  274.     
  275.     
  276.                     $depotDossierRepository->remove($dossiertrue);
  277.             
  278.                 }
  279.                 foreach ($deal->getCommentaireDeals() as  $commentaire) {
  280.                         
  281.                     $deal->removeCommentaireDeal($commentaire);
  282.     
  283.                     // $activiteDealRepository->remove($commentaire, true);
  284.                 
  285.                 }
  286.                 
  287.                 foreach ($deal->getSoustraitants() as  $soustritant) {
  288.     
  289.                     $deal->removeSoustraitant($soustritant);
  290.     
  291.                     // $activiteDealRepository->remove($commentaire, true);
  292.                 
  293.                 }
  294.                 if($deal->getContrat()){
  295.                     foreach ($deal->getContrat()->getCommentaireContrats() as  $commentaire) {
  296.     
  297.                         $deal->getContrat()->removeCommentaireContrat($commentaire);
  298.         
  299.                         // $activiteDealRepository->remove($commentaire, true);
  300.                     
  301.                     }
  302.                     $contratRepository->remove($deal->getContrat(), true);
  303.                 }
  304.                 
  305.                 
  306.                 
  307.                 $dealRepository->remove($dealtrue);
  308.             }
  309.             $dealobligeRepository->remove($dealobligetrue);
  310.         }
  311.         return $this->redirectToRoute('app_dealoblige_index', [], Response::HTTP_SEE_OTHER);
  312.     }
  313. }