<?php
namespace App\Controller;
use App\Entity\Child;
use App\Form\ChildType;
use App\Form\Child1Type;
use App\Repository\ChildRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use App\Form\ChildType_1;
use App\Form\ChildType_2;
use App\Form\TestType;
/**
* @Route("{_locale?fr}/child",locale="fr", requirements={
* "_locale": "en|fr",
* "_format": "html|xml",
* })")
*/
class ChildController extends AbstractController
{
/**
* @Route("/", name="child_index", methods={"GET"})
*/
public function index(ChildRepository $childRepository): Response
{
return $this->render('child/index.html.twig', [
'children' => $childRepository->findAll(),
]);
}
/**
* @Route("/hospital/{id}", name="child_hospital_index", methods={"GET"})
*/
public function indexHospital(\App\Entity\Hospital $id): Response
{
$children = $this->getDoctrine()->getManager()->getRepository(Child::class)->findBy([
'hospital'=>$id
]);
return $this->render('child/index.html_2.twig', [
'children' => $children,
]);
}
/**
* @Route("/new_dec", name="child_dec", methods={"GET","POST"})
*/
public function new(Request $request): Response
{
$child = new Child();
$form = $this->createForm(Child1Type::class, $child);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($child);
$entityManager->flush();
$id = $child->getId();
$this->VerifyForm($form,$child);
$entityManager->persist($child);
$entityManager->flush();
return $this->redirectToRoute('chid_show', ['id'=>$child->getId()]);
}
return $this->render('child/new.html.twig', [
'child' => $child,
'form' => $form->createView(),
]);
}
/**
* @Route("/test_child", name="child_test", methods={"GET","POST"})
*/
public function test(Request $request){
$form = $this->createForm(TestType::class);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$id = $form['id']->getData();
$date = $form['dateOfBirth']->getData();
$hospital = $form['hospital']->getData();
$val = intval($id);
/*
* param Child $child
*/
$child = $this->getDoctrine()->getManager()->getRepository(Child::class)->find($id);
if($child->getHospital() == $hospital && $child->getDateOfBirth() == $date)
{
return $this->redirectToRoute('child_edit', [
'id' => $val
]);
}
else{
return $this->render('test/new.html.twig',[
'form'=>$form->createView(),
'message'=>'Verify your informations'
]
);
}
}
return $this->render('test/new.html.twig',[
'form'=>$form->createView(),
'message'=>''
]
);
}
/**
* @Route("/new", name="child_new", methods={"GET","POST"})
*/
public function childDec(Request $request): Response
{
$child = new Child();
$form = $this->createForm(ChildType::class, $child);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$entityManager = $this->getDoctrine()->getManager();
$child->setPlaceOfBirth('');
$entityManager->persist($child);
$entityManager->flush();
$this->VerifyForm($form,$child);
$entityManager->persist($child);
$entityManager->flush();
return $this->redirectToRoute('child_show',[
'id'=>$child->getId()
]);
}
return $this->render('child/new.html.twig', [
'child' => $child,
'form' => $form->createView(),
]);
}
/**
* @Route("/child_ok/{id}", name="child_ok", methods={"GET","POST"})
*/
public function childok(Request $request, $id): Response
{
return $this->render('child/index.html_1.twig', [
'id' => $id,
]);
}
/**
* @Route("/{id}", name="child_show", methods={"GET"})
*/
public function show(Child $child): Response
{
return $this->render('child/show.html.twig', [
'child' => $child,
]);
}
/**
* @Route("/{id}/edit", name="child_edit", methods={"GET","POST"})
*/
public function edit(Request $request, Child $child): Response
{
$form = $this->createForm(ChildType::class, $child);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$this->VerifyForm($form,$child);
$this->getDoctrine()->getManager()->flush();
return $this->redirectToRoute('child_show',['id'=>$child->getId()]);
}
return $this->render('child/edit.html.twig', [
'child' => $child,
'form' => $form->createView(),
]);
}
/**
* @Route("/del/{id}", name="child_delete", methods={"DELETE"})
*/
public function delete(Request $request, Child $child): Response
{
if ($this->isCsrfTokenValid('delete'.$child->getId(), $request->request->get('_token'))) {
$entityManager = $this->getDoctrine()->getManager();
$entityManager->remove($child);
$entityManager->flush();
}
return $this->redirectToRoute('child_index');
}
public function uploadImg($data,$id)
{
// ...
$file = $data->getData();
$extension = $file->guessExtension();
if (!$extension) {
// extension cannot be guessed
$extension = 'bin';
}
$file->move(__DIR__.'/../../public/uploads/images/child/image', 'file'.$id.'.'.$extension);
// ...
}
public function uploadNic($data,$id)
{
// ...
$file = $data;
$extension = $file->guessExtension();
if (!$extension) {
// extension cannot be guessed
$extension = 'bin';
}
var_dump($data);
dump($data);
$file->move(__DIR__.'/../../public/uploads/nic/child', 'file_'.$id.'.'.$extension);
return 'file'.$id.'.'.$extension;
// ...
}
public function VerifyFormFile($formElt,$name,Child $child) {
if(!empty($formElt)){
$cni_id = $name.'_'.$child->getId();
$filename = $this->uploadNic($formElt,$cni_id);
$method = 'set'.ucfirst($name);
$child->$method($filename);
}
}
public function VerifyForm($form,$child) {
$fatherNic = $form['fatherNic']->getData();
$motherNic = $form['motherNic']->getData();
$firstWitnessNic = $form['firstWitnessNic']->getData();
$SecondWitnessNic = $form['secondWitnessNic']->getData();
$birthDeclaration = $form['birthDeclarationFile']->getData();
$this->VerifyFormFile($fatherNic, 'fatherNic', $child);
$this->VerifyFormFile($motherNic, 'motherNic', $child);
$this->VerifyFormFile($firstWitnessNic, 'firstWitnessNic', $child);
$this->VerifyFormFile($firstWitnessNic, 'secondWitnessNic', $child);
$this->VerifyFormFile($birthDeclaration,'birthDeclarationFile', $child);
}
}