src/Controller/TolController.php line 121
<?phpnamespace App\Controller;use App\Entity\Emailenv;use App\Entity\Emailenvoi;use App\Entity\Factu;use App\Entity\Param;use App\Repository\ClientRepository;use App\Repository\EmailenvoiRepository;use App\Repository\EmailenvRepository;use App\Repository\FactuRepository;use App\Repository\LieuRepository;use App\Repository\ParametreRepository;use App\Repository\ParamRepository;use App\Repository\SemainerdvRepository;use App\Repository\SemainesavRepository;use App\service\fincontrat;use App\service\JWTservice;use App\service\sendmailservice;use App\service\servicedivers;use Doctrine\ORM\EntityManagerInterface;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\Routing\Annotation\Route;use Symfony\Component\Routing\Generator\UrlGeneratorInterface;#[Route('/tol', name: 'tol_')]class TolController extends AbstractController{#[Route('/{token}', name: 'index')]public function index(string $token,JWTservice $jwt,sendmailservice $sendmailservice,ParametreRepository $parametreRepository,EmailenvRepository $emailenvRepository,SemainerdvRepository $semainerdvRepository,SemainesavRepository $semainesavRepository,ClientRepository $clientRepository,LieuRepository $lieuRepository,EntityManagerInterface $em,EmailenvoiRepository $emailenvoiRepository,ParamRepository $paramRepository,FactuRepository $factuRepository): Response{ $email="ko";$type="";$tache="";$message="error contacter administrateur";// dd($token);// dd($token);switch ($token) {case 'emailun':if($this->getUser()->getId()!=0){$type="savrdv";$tache="email de rappel RDV SAV";$email="ok";}else{$message="error inconu error";}break;case 'emailenv':if($this->getUser()->getId()!=0){$type="emailenv";$tache="envoi d'email";$email="ok";}else{$message="error inconu error";}break;case 'contrat':if($this->getUser()->getId()!=0){$type="contrat";$tache="envoi d'email";$email="ok";}else{$message="error inconu error";}break;case 'activate':if($this->getUser()->getId()!=0){$type="tolactivate";$tache="envoi d'email";$email="ok";}else{$message="error inconu error";}break;default:if($jwt->isvalid($token) && $jwt->verifsigna($token,$this->getParameter('app.jwtsecret'))){$payload= $jwt->getpayload($token);// dd($payload);if($payload['type']=="tolactivate"){$this->touactiver($sendmailservice,$parametreRepository,$emailenvRepository,$semainerdvRepository,$semainesavRepository,$clientRepository,$lieuRepository,$em,$emailenvoiRepository,$paramRepository,$factuRepository);}else{switch ($payload['type']) {case 'savrdv':$this->emailrdvsav($parametreRepository,$sendmailservice,$emailenvRepository,$semainerdvRepository,$semainesavRepository,$clientRepository,$lieuRepository,$em);break;case 'emailenv':$p=$paramRepository->valeuret("emailenv");foreach ($p as $k) {# code...}//dd($p);$this->emailenv($k,$parametreRepository,$emailenvoiRepository,$emailenvRepository,$semainerdvRepository,$semainesavRepository,$clientRepository,$lieuRepository,$sendmailservice,$em,$factuRepository);break;case 'contrat':$p=$paramRepository->valeuret("contrat");// dd($p);$this->factfin($p,$em,$factuRepository);break;}}}else{$message="error inconu";}break;}if($email=="ok" && $type!=""){$payload=['type'=> $type];$email="ok";$header=['typ'=> 'JWT','alg'=>'HS256'];$token= $jwt->generate($header,$payload,$this->getParameter('app.jwtsecret'));$message="email envoyer";$url = $this->generateUrl('tol_index',['token'=>$token],UrlGeneratorInterface::ABSOLUTE_URL);$serv=new servicedivers();$role=$this->getUser()->getRoles();$val="ko";foreach ($role as $k) {// dd($k);if($k=="ROLE_ADMIN"){$val="ok";}}if($val=="ok"){$token = $this->generateUrl('tol_index',['token'=>$token],UrlGeneratorInterface::ABSOLUTE_URL);//{{ absolute_url(asset('/tol/'))}}{{token}}$serv->emailcron($token,$tache,$url,$parametreRepository,$sendmailservice);$message=$token;}else{$message="demande non autoriser";}}return $this->render('tol/index.html.twig', ['message' => $message,]);}private function touactiver( sendmailservice $sendmailservice,ParametreRepository $parametreRepository,EmailenvRepository $emailenvRepository,SemainerdvRepository $semainerdvRepository,SemainesavRepository $semainesavRepository,ClientRepository $clientRepository,LieuRepository $lieuRepository,EntityManagerInterface $em,EmailenvoiRepository $emailenvoiRepository,ParamRepository $paramRepository,FactuRepository $factuRepository){$this->emailrdvsav($parametreRepository,$sendmailservice,$emailenvRepository,$semainerdvRepository,$semainesavRepository,$clientRepository,$lieuRepository,$em);$p=$paramRepository->valeuret("emailenv");//dd($p);$this->emailenv($p,$parametreRepository,$emailenvoiRepository,$emailenvRepository,$semainerdvRepository,$semainesavRepository,$clientRepository,$lieuRepository,$sendmailservice,$em,$factuRepository);$p=$paramRepository->valeuret("contrat");// dd($p);$this->factfin($p,$em,$factuRepository);}private function emailrdvsav(ParametreRepository $parametreRepository,sendmailservice $email,EmailenvRepository $emailenvRepository,SemainerdvRepository $semainerdvRepository,SemainesavRepository $semainesavRepository,ClientRepository $clientRepository,LieuRepository $lieuRepository,EntityManagerInterface $em){//// tout entre 6h et 7h$emailenv= new Emailenv();$time=time();$heure=date('G',time());$serv=new servicedivers();if($heure>=7 && $heure<9){$jour=$parametreRepository->getparaIdvalue('emailcronsavrdv');$jour++;$jour--;$jour=(((3600*24)*$jour))+$serv->debutsemaine($time);if($jour<=time()){$emailen=$emailenvRepository->getout(1);$val="ok";$a=[];foreach ($emailen as $k) {$a[]=date('d/m/y G:i:s',$serv->debutsemaine($time));$a[]=date('d/m/y G:i:s',$k->getDate());$a[]=date('d/m/y G:i:s',$serv->finsemaine($time));$a[]=$serv->debutsemaine($time);$a[]=$k->getDate();$a[]=$serv->finsemaine($time);if($k->getDate()>=$serv->debutsemaine($time)){if($k->getDate()<=$serv->finsemaine($time)){$val="ko";}}}if($val=="ok"){$times=$time+((3600*24)*7);$serv->emailsavrdv($times,$email,$parametreRepository,$semainerdvRepository,$semainesavRepository,$clientRepository,$lieuRepository,1);$env= new Emailenv();$env->setType(1);$env->setDate($time);$em->persist($env);$em->flush();}//dd("activation du module rdv sav");}}}private function emailenv(Param $param,ParametreRepository $parametreRepository,EmailenvoiRepository $emailenvoiRepository,EmailenvRepository $emailenvRepository,SemainerdvRepository $semainerdvRepository,SemainesavRepository $semainesavRepository,ClientRepository $clientRepository,LieuRepository $lieuRepository,sendmailservice $sendmailservice,EntityManagerInterface $em,FactuRepository $factuRepository){$minute=$parametreRepository->getparaIdvalue("emailenvnbr");$minute++;$minute--;$time=($minute*60);$d=[];$d[]=$time;$d[]=$param->getValeurint();$d[]=$param->getValeurint()+$time;$d[]=time();//dd($d);if(time()>($param->getValeurint()+$time)){//autoriser a envoyer# code...$serv=new servicedivers();$in=$parametreRepository->getparaIdvalue("emailtempnbr");$email=$emailenvoiRepository->getemailenv($in);//dd($email);foreach ($email as $ke) {$val=$ke->getValeur();// dd($val);switch ($ke->getClass()) {case 'SavrdvMessage':$a= $serv->emailsavrdv($val->getTime(),$sendmailservice,$parametreRepository,$semainerdvRepository,$semainesavRepository,$clientRepository,$lieuRepository,$val->getRappel());$k=$ke->getDelivred();$k++;$ke->setDelivred($k);if($k>=5){$ke->setDelivred(time());$ke->setErreur(1);}break;case "intervention":$a= $serv->emailintervention($sendmailservice,$parametreRepository,$val->getemailen(),$val->getobjet(),$val->getmessage(),$val->getfile());break;case "contrat"://dd($val);$a= $serv->emailcontrat($sendmailservice,$clientRepository,$lieuRepository,$parametreRepository,$factuRepository,$val);break;default:$a=true;break;}if($a){$emailenvoiRepository->remove($ke,true);}else{$em->persist($ke);$em->flush();}}$param->setValeurint(time());$em->persist($param);$em->flush();}}public function factfin(Param $param,EntityManagerInterface $em,FactuRepository $factuRepository,){if(time()>($param->getValeurint()+((3600*24)*10))){// dd("contrat");$j=date("d",time());$m=date("m",time());$a=date("Y",time());$time=time();$mod=0;if($j>=1){if($j<=14){$mod=1;$d= mktime(0, 0, 0, $m, 1, $a);$f= mktime(23, 50, 0, $m, 14, $a);}}if($j>=15){if($j<=30){$mod=2;$d= mktime(0, 0, 0, $m, 14, $a);$f= mktime(23, 50, 0, $m, 31, $a);}}//dd($mod);if($mod!=0){$d2= mktime(23, 50, 0, $m, 1, $a);$f2= mktime(23, 50, 0, $m, 31, $a);$f2=$f2+(((3600*24)*30)*2);$d2=$d2+((3600*24)*15);$fact=$factuRepository->donner();$dg=[];foreach ($fact as $k) {$time=date_timestamp_get($k->getDatefin());if($time>=$d){if($time<=$f){$dg[]=$k->getId();}}}$dg2=[];foreach ($fact as $k) {$time=date_timestamp_get($k->getDatefin());if($time>=$d2){if($time<=$f2){$dg2[]=$k->getId();}}}$ser=new fincontrat("les contrat ".date("d/m/y",$d)." - ".date("d/m/y",$f),$dg,$dg2);$emailenvoie=new Emailenvoi();$emailenvoie->setClass('contrat');$emailenvoie->setValeur($ser);$emailenvoie->setCreated(time());$emailenvoie->setErreur(0);// dd($emailenvoie);$em->persist($emailenvoie);$em->flush();$param->setValeurint(time());$em->persist($param);$em->flush();}}}}