<?php
namespace App\Controller;
use App\Entity\Osoba;
use App\Form\OsobaType;
use App\Repository\OsobaRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Mime\Email;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\Form\Extension\Core\Type\NumberType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
/**
* @Route("/osoba")
*/
class OsobaController extends MyController
{
/**
* @Route("/", name="osoba_index", methods={"GET"})
*/
public function index(OsobaRepository $osobaRepository): Response
{ $ck=new \App\Entity\Jednostka();
$komorka= $this->getUser()->getKomorka();
$ck=$komorka->getCk()->getSymbolNum();
return $this->render('osoba/index.html.twig', [
'osobas' => $osobaRepository->findByCk($ck)
]);
}
/**
* @Route("/mailtest", name="mailtest", methods={"GET","POST"})
*
*/
public function mailTest(MailerInterface $mailer): Response
{
$email = (new Email())
->from('zapisy@zdz.com.pl')
->to('mkolodziejczak@gmail.com')
//->cc('cc@example.com')
//->bcc('bcc@example.com')
//->replyTo('fabien@example.com')
//->priority(Email::PRIORITY_HIGH)
->subject('Time for Symfony Mailer!')
->text('Sending emails is fun again!')
->html('<p>See Twig integration for better HTML integration!</p>');
$mailer->send($email);
return $this->redirectToRoute('homepage');
}
/**
* @Route("/new/{grupaId}", name="osoba_new", methods={"GET","POST"})
*/
public function new(Request $request, $grupaId=null, MailerInterface $mailer): Response
{
$osoba = new Osoba();
$osoba->setStatus("nowy");
$entityManager = $this->getDoctrine()->getManager();
$wersjaZaswiadczenia=1;
if($grupaId){
$grupa=$this->getRepo('Grupa')->find($grupaId);
$osoba->setGrupa($grupa);
$ck=$grupa->getCk();
$osoba->setCk($ck);
}
$form = $this->createForm(OsobaType::class, $osoba);
$form->handleRequest($request);
if ($form->isSubmitted() ) {
$entityManager = $this->getDoctrine()->getManager();
$osoba->setZgodaRodo(true);
$entityManager->persist($osoba);
$entityManager->flush();
return $this->redirectToRoute('grupa_show', ['id'=>$grupaId], Response::HTTP_SEE_OTHER);
}
return $this->renderForm('osoba/nowa.html.twig', [
'osoba' => $osoba,
'form' => $form,
]);
}
/**
* @Route("/intnew/{grupaId}", name="osoba_newinternet", methods={"GET","POST"})
*/
public function newInternet(Request $request, $grupaId=null, MailerInterface $mailer, Session $ses): Response
{
$osoba = new Osoba();
$osoba->setDataZapisu(new \DateTime());
$osoba->setStatus("nowy");
$entityManager = $this->getDoctrine()->getManager();
$l1= random_int(1, 9);
$l2= random_int(1, 9);
$wynik=$l1+$l2;
if($grupaId){
$grupa=$this->getRepo('Grupa')->find($grupaId);
$osoba->setGrupa($grupa);
$ck=$grupa->getCk();
$osoba->setCk($ck);
}else{
return $this->redirectToRoute('home404');
}
$form = $this->createForm(OsobaType::class."_internet", $osoba);
// $form->add("wynik",NumberType::class,[
// //'mapped'=>false,
// 'label'=>"Podaj wynik $l1 + $l2=",
// 'required'=>true
// ] );
//
// $form->add("wtoken",NumberType::class,[
// //'mapped'=>false,
// 'attr'=>['value'=>$wynik*1234]
//
// ] );
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($osoba);
$entityManager->flush();
$opiekunEmail=$osoba->getGrupa()->getOrganizator()->getKomorka()->getEmail();
$dane=$form->getData();
//dd($dane);
/* Mail uczestnik */
if(true){
$osobaEmail = $osoba->getEmail();
$opiekun=$osoba->getGrupa()->getOrganizator()->getImie() . " ".$osoba->getGrupa()->getOrganizator()->getNazwisko();
$opiekunEmail=$osoba->getGrupa()->getOrganizator()->getEmail();
$komorkaEmail=$osoba->getGrupa()->getOrganizator()->getKomorka()->getEmail();
$opiekunTelefon=$osoba->getGrupa()->getOrganizator()->getKomorka()->getTelefon();
$jednostka=$osoba->getGrupa()->getKomorka()->getNazwa();
$ckNumer=$osoba->getGrupa()->getJednostka()->getSymbol();
$grupaNazwa=$osoba->getGrupa()->getNazwa();
$numerZapisu=$osoba->getGrupa()->getId()."/".$osoba->getId();
$temat="Zapis na szkolenie ZDZ #".$numerZapisu;
$tresc=$this->renderView(
// templates/emails/registration.html.twig
'osoba/_mail-uczestnik.html.twig', [
'opiekun' => $opiekun,
'opiekunEmail' => $opiekunEmail,
'opiekunTelefon' => $opiekunTelefon,
'jednostka' => $jednostka,
'ckNumer' => $ckNumer,
'nazwaGrupy'=>$grupaNazwa,
'numerZapisu'=>$numerZapisu,
]
);
$temat1="Zapis eZDZ: #".$numerZapisu." / ".$grupaNazwa;
$tresc1=$this->renderView(
// templates/emails/registration.html.twig
'osoba/_mail-organizator.html.twig', [
'opiekun' => $opiekun,
'opiekunImie' => $osoba->getGrupa()->getOrganizator()->getImie(),
'opiekunEmail' => $opiekunEmail,
'opiekunTelefon' => $opiekunTelefon,
'jednostka' => $jednostka,
'ckNumer' => $ckNumer,
'nazwaGrupy'=>$grupaNazwa,
'numerZapisu'=>$numerZapisu,
'grupa'=>$osoba->getGrupa(),
'osoba'=>$osoba
]
);
$email = (new Email())
->from('zapisy@zdz.com.pl')
->to(strtolower($osobaEmail))
//->cc('cc@example.com')
->bcc('frnt.monitoring@gmail.com')
//->bcc('zapisy@zdz.com.pl')
//->replyTo('fabien@example.com')
//->priority(Email::PRIORITY_HIGH)
->subject($temat)
//->text($tresc)
->html($tresc);
$mailer->send($email);
$emailOrg = (new Email())
->from('zapisy@zdz.com.pl')
->to(strtolower($komorkaEmail))
->addTo(strtolower($opiekunEmail))
//->cc('cc@example.com')
->bcc('frnt.monitoring@gmail.com')
//->addBcc('zapisy@zdz.com.pl')
//->replyTo('fabien@example.com')
//->priority(Email::PRIORITY_HIGH)
->subject($temat1)
//->text($tresc)
->html($tresc1);
$mailer->send($emailOrg);
}
return $this->render('osoba/new_internet-thx.html.twig', [
'osoba' => $osoba,
'grupa' => $grupa,
]);
}
return $this->renderForm('osoba/new_internet.html.twig', [
'osoba' => $osoba,
'grupa' => $grupa,
'form' => $form,
]);
}
/**
* @Route("/{id}", name="osoba_show", methods={"GET"})
*/
public function show(Osoba $osoba): Response
{
return $this->render('osoba/show.html.twig', [
'osoba' => $osoba,
]);
}
/**
* @Route("/{id}/edit", name="osoba_edit", methods={"GET","POST"})
*/
public function edit(Request $request, Osoba $osoba): Response
{ $em=$this->getDoctrine()->getManager();
$form = $this->createForm(OsobaType::class, $osoba);
$form->handleRequest($request);
if ($form->isSubmitted() ) {
$em->persist($osoba);
$em->flush();
return $this->redirectToRoute('grupa_show', ['id'=>$osoba->getGrupa()->getId()], Response::HTTP_SEE_OTHER);
}
return $this->renderForm('osoba/edit.html.twig', [
'osoba' => $osoba,
'form' => $form,
]);
}
/**
* @Route("/{id}", name="osoba_delete", methods={"POST"})
*/
public function delete(Request $request, Osoba $osoba): Response
{
if ($this->isCsrfTokenValid('delete'.$osoba->getId(), $request->request->get('_token'))) {
$entityManager = $this->getDoctrine()->getManager();
$entityManager->remove($osoba);
$entityManager->flush();
}
return $this->redirectToRoute('osoba_index', [], Response::HTTP_SEE_OTHER);
}
}