diff --git a/data/database.sqlite b/data/database.sqlite index 6804099..ee5304d 100755 Binary files a/data/database.sqlite and b/data/database.sqlite differ diff --git a/src/Controller/ImobiliariaController.php b/src/Controller/ImobiliariaController.php index 20be8c6..68363a1 100644 --- a/src/Controller/ImobiliariaController.php +++ b/src/Controller/ImobiliariaController.php @@ -21,6 +21,16 @@ public function index() } + /** + * @Route("/index", name="index2") + */ + public function index2() + { + + return $this->render('index.html.twig'); + + } + /** * @Route("dashboard", name="dashboard") */ diff --git a/src/Controller/ImovelController.php b/src/Controller/ImovelController.php index 5cbf296..50eaff2 100644 --- a/src/Controller/ImovelController.php +++ b/src/Controller/ImovelController.php @@ -3,13 +3,14 @@ namespace App\Controller; - use App\Entity\Imovel; +use App\Service\ImovelService; use App\Forms\ImovelType; use Symfony\Component\HttpFoundation\Request; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\Routing\Annotation\Route; + class ImovelController extends AbstractController { @@ -19,36 +20,29 @@ class ImovelController extends AbstractController * @param Request $request * @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response */ - public function cadastroImovel(Request $request) + public function cadastroImovel(Request $request, ImovelService $imovelService) { - $imovel = new Imovel(); $form = $this->createForm(ImovelType::class, $imovel); $form->handleRequest($request); if ($form->isSubmitted()) { $imovel = $form->getData(); - $em = $this->getDoctrine()->getManager(); - $em->persist($imovel); - $em->flush(); - - return $this->redirectToRoute('index'); + $imovelService->salvar($imovel); + return $this->redirectToRoute('listar_imoveis'); } return $this->render('imovel_cadastro.html.twig', [ 'form' => $form->createView() ]); - } /** * @Route("/imovel/listar", name="listar_imoveis") */ - public function listarImoveis() + public function listarImoveis(ImovelService $imovelService) { - $em = $this->getDoctrine()->getManager(); - $imoveis = $em->getRepository(Imovel::class)->findAll(); - + $imoveis = $imovelService->listarTodos(); return $this->render('listar_imoveis.html.twig', [ 'imoveis' => $imoveis ]); @@ -57,11 +51,9 @@ public function listarImoveis() /** * @Route("/imovel/portifolios", name="listar_portifolios") */ - public function imoveisPortifolios() + public function imoveisPortifolios(ImovelService $imovelService) { - $em = $this->getDoctrine()->getManager(); - $imoveis = $em->getRepository(Imovel::class)->findAll(); - + $imoveis = $imovelService->listarTodos(); return $this->render('listar_portifolios.html.twig', [ 'imoveis' => $imoveis ]); @@ -70,17 +62,48 @@ public function imoveisPortifolios() /** * @Route("/imovel/visualizar/{id}", name="imovel_visualizar") */ - public function imovelVisualizar(Request $request) + public function imovelVisualizar(Request $request, ImovelService $imovelService) { $id = $request->get('id'); - $em = $this->getDoctrine()->getManager(); - $imovel = $em->getRepository(Imovel::class)->find($id); - + $imovel = $imovelService->findById($id); return $this->render('imovel_visualizar.html.twig', [ 'imovel' => $imovel ]); } + /** + * @Route("/imovel/remover/{id}", name="imovel_remover") + */ + public function removerImovel(int $id, ImovelService $imovelService) + { + $imovel = $imovelService->findById($id); + $imovelService->remover($imovel); + $this->addFlash('success', 'Imóvel de id:'.$id.' removido com sucesso!!!'); + return $this->redirectToRoute('listar_imoveis'); + } + /** + * @Route("/imovel/editar/{id}", name="imovel_editar") + */ + public function editarImovel(int $id, ImovelService $imovelService, Request $request) + { + $imovel = $imovelService->findById($id); + if (!$imovel) { + throw new \Exception('Imóvel não encontrado'); + } + $form = $this->createForm(ImovelType::class, $imovel); + $form->handleRequest($request); + + if ($form->isSubmitted()) { + $imovel = $form->getData(); + $imovelService -> editar($imovel); + $this->addFlash('success', 'Imóvel de id:'.$id.' editado com sucesso!!!'); + return $this->redirectToRoute('listar_imoveis'); + } + + return $this->render('imovel_cadastro.html.twig', [ + 'form' => $form->createView() + ]); + } } \ No newline at end of file diff --git a/src/Controller/UsuarioController.php b/src/Controller/UsuarioController.php index f1facd9..6b7ffde 100644 --- a/src/Controller/UsuarioController.php +++ b/src/Controller/UsuarioController.php @@ -6,6 +6,7 @@ use App\Entity\Corretor; use App\Forms\UsuarioType; use App\Entity\Usuario; +use App\Service\UsuarioService; use phpDocumentor\Reflection\DocBlock\Tags\Throws; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security; @@ -21,10 +22,9 @@ class UsuarioController extends AbstractController { /** - *@IsGranted("ROLE_ADMIN") * @Route("/usuario", name="usuario_novo") */ - public function cadastroUsuario(Request $request) + public function cadastroUsuario(Request $request, UsuarioService $usuarioService) { $usuario = new Usuario(); $form = $this->createForm(UsuarioType::class, $usuario); @@ -32,11 +32,8 @@ public function cadastroUsuario(Request $request) if ($form->isSubmitted()) { $usuario = $form->getData(); - $em = $this->getDoctrine()->getManager(); - $em->persist($usuario); - $em->flush(); - - return $this->redirectToRoute('index'); + $usuarioService->salvar($usuario); + return $this->redirectToRoute('listar_usuarios'); } return $this->render('usuario_cadastro.html.twig', [ @@ -47,21 +44,18 @@ public function cadastroUsuario(Request $request) /** * @Route("/listar", name="listar_usuarios") */ - public function listarUsuarios(Request $request) + public function listarUsuarios(UsuarioService $usuarioService) { - $user = new Corretor(); - $user->setLogin('helio'); - $user->setRoles([true ? 'ROLE_ADMIN' : 'ROLE_USER']); - - $user->setPassword('ZkCCqGmNQXOeL1avsq2OWv2BSKLqHE33c2aolQ1nFxg'); - $em = $this->getDoctrine()->getManager(); - $em->persist($user); - $em->flush(); - +// $user = new Corretor(); +// $user->setLogin('helio'); +// $user->setRoles([true ? 'ROLE_ADMIN' : 'ROLE_USER']); +// +// $user->setPassword('ZkCCqGmNQXOeL1avsq2OWv2BSKLqHE33c2aolQ1nFxg'); +// $em = $this->getDoctrine()->getManager(); +// $em->persist($user); +// $em->flush(); - - $em = $this->getDoctrine()->getManager(); - $usuarios = $em->getRepository(Usuario::class)->findAll(); + $usuarios = $usuarioService->listarUsuarios(); return $this->render('listar_usuarios.html.twig', [ 'usuarios' => $usuarios @@ -71,10 +65,9 @@ public function listarUsuarios(Request $request) /** * @Route("/editar/{id}", name="editar_usuario") */ - public function editarUsuario(int $id, Request $request) + public function editarUsuario(int $id, Request $request, UsuarioService $usuarioService) { - $em = $this->getDoctrine()->getManager(); - $usuario = $em->getRepository(Usuario::class)->find($id); + $usuario = $usuarioService->findById($id); if (!$usuario) { throw new \Exception('Usuario não encontrado'); @@ -86,10 +79,7 @@ public function editarUsuario(int $id, Request $request) if ($form->isSubmitted()) { $usuario = $form->getData(); - $em = $this->getDoctrine()->getManager(); - $em->merge($usuario); - $em->flush(); - + $usuarioService->editarUsuario($usuario); return $this->redirectToRoute('listar_usuarios'); } @@ -101,14 +91,11 @@ public function editarUsuario(int $id, Request $request) /** * @Route("/deletar/{id}", name="deletar_usuario") */ - public function deletarUsuario(int $id, Request $request) + public function deletarUsuario(int $id, Request $request, UsuarioService $usuarioService) { - $em = $this->getDoctrine()->getManager(); - $usuario = $em->getRepository(Usuario::class)->find($id); - $em->remove($usuario); - $em->flush(); - $this->addFlash('success', 'Usuario de id:'.$id.' deletado com sucesso!!!'); - + $usuario = $usuarioService->findById($id); + $usuarioService->removerUsuario($usuario); + $this->addFlash('success', 'Usuario de id:'.$id.' removido com sucesso!!!'); return $this->redirectToRoute('listar_usuarios'); } } diff --git a/src/Entity/ContratoAdm.php b/src/Entity/ContratoAdm.php new file mode 100644 index 0000000..34b00cc --- /dev/null +++ b/src/Entity/ContratoAdm.php @@ -0,0 +1,122 @@ +id; + } + + /** + * @param mixed $id + */ + public function setId($id): void + { + $this->id = $id; + } + + /** + * @return mixed + */ + public function getDtCadastro() + { + return $this->dtCadastro; + } + + /** + * @param mixed $dtCadastro + */ + public function setDtCadastro($dtCadastro): void + { + $this->dtCadastro = $dtCadastro; + } + + /** + * @return mixed + */ + public function getClausulaContratual() + { + return $this->clausulaContratual; + } + + /** + * @param mixed $clausulaContratual + */ + public function setClausulaContratual($clausulaContratual): void + { + $this->clausulaContratual = $clausulaContratual; + } + + /** + * @return mixed + */ + public function getUsuario() + { + return $this->usuario; + } + + /** + * @param mixed $usuario + */ + public function setUsuario($usuario): void + { + $this->usuario = $usuario; + } + + /** + * @return mixed + */ + public function getImovel() + { + return $this->imovel; + } + + /** + * @param mixed $imovel + */ + public function setImovel($imovel): void + { + $this->imovel = $imovel; + } + +} diff --git a/src/Entity/ContratoLocacao.php b/src/Entity/ContratoLocacao.php new file mode 100644 index 0000000..5472ad4 --- /dev/null +++ b/src/Entity/ContratoLocacao.php @@ -0,0 +1,185 @@ +id; + } + + /** + * @param mixed $id + */ + public function setId($id): void + { + $this->id = $id; + } + + /** + * @return mixed + */ + public function getDtCadastro() + { + return $this->dtCadastro; + } + + /** + * @param mixed $dtCadastro + */ + public function setDtCadastro($dtCadastro): void + { + $this->dtCadastro = $dtCadastro; + } + + /** + * @return mixed + */ + public function getDtValidade() + { + return $this->dtValidade; + } + + /** + * @param mixed $dtValidade + */ + public function setDtValidade($dtValidade): void + { + $this->dtValidade = $dtValidade; + } + + /** + * @return mixed + */ + public function getFormaPagamento() + { + return $this->formaPagamento; + } + + /** + * @param mixed $formaPagamento + */ + public function setFormaPagamento($formaPagamento): void + { + $this->formaPagamento = $formaPagamento; + } + + /** + * @return mixed + */ + public function getDtVencimento() + { + return $this->dtVencimento; + } + + /** + * @param mixed $dtVencimento + */ + public function setDtVencimento($dtVencimento): void + { + $this->dtVencimento = $dtVencimento; + } + + /** + * @return mixed + */ + public function getUsuario() + { + return $this->usuario; + } + + /** + * @param mixed $usuario + */ + public function setUsuario($usuario): void + { + $this->usuario = $usuario; + } + + /** + * @return mixed + */ + public function getImovel() + { + return $this->imovel; + } + + /** + * @param mixed $imovel + */ + public function setImovel($imovel): void + { + $this->imovel = $imovel; + } + + /** + * @return mixed + */ + public function getClausulaContratual() + { + return $this->clausulaContratual; + } + + /** + * @param mixed $clausulaContratual + */ + public function setClausulaContratual($clausulaContratual): void + { + $this->clausulaContratual = $clausulaContratual; + } + +} diff --git a/src/Entity/Imovel.php b/src/Entity/Imovel.php index e50f78c..7a26cf5 100644 --- a/src/Entity/Imovel.php +++ b/src/Entity/Imovel.php @@ -3,6 +3,9 @@ namespace App\Entity; use Doctrine\ORM\Mapping as ORM; +use App\Entity\Endereco; +use App\Entity\ContratoLocacao; +use App\Entity\ContratoAdm; /** * @ORM\Entity @@ -43,11 +46,19 @@ class Imovel /** * @ORM\OneToOne(targetEntity="App\Entity\Endereco", inversedBy="imovel", cascade={"persist"}, fetch="EAGER") - * @ORM\JoinColumn(name="id_endereco", referencedColumnName="id", unique=true) + * @ORM\JoinColumn(name="id_endereco", referencedColumnName="id", unique=true, nullable=false) */ private $endereco; + /** + * @ORM\OneToMany(targetEntity="App\Entity\ContratoAdm", mappedBy="imovel") + */ + private $contratoAdm; + /** + * @ORM\OneToMany(targetEntity="App\Entity\ContratoLocacao", mappedBy="imovel") + */ + private $contratoLocacao; /** * @return mixed @@ -161,13 +172,36 @@ public function setEndereco($endereco): void $this->endereco = $endereco; } -// /** -// * @ORM\OneToMany(targetEntity="Entity\contratoLocacao", mappedBy="imovel") -// */ -// private $contratoLocacao; -// -// /** -// * @ORM\OneToMany(targetEntity="Entity\ContratoAdm", mappedBy="imovel") -// */ -// private $contratoAdm; + /** + * @return mixed + */ + public function getContratoAdm() + { + return $this->contratoAdm; + } + + /** + * @param mixed $contratoAdm + */ + public function setContratoAdm($contratoAdm): void + { + $this->contratoAdm = $contratoAdm; + } + + /** + * @return mixed + */ + public function getContratoLocacao() + { + return $this->contratoLocacao; + } + + /** + * @param mixed $contratoLocacao + */ + public function setContratoLocacao($contratoLocacao): void + { + $this->contratoLocacao = $contratoLocacao; + } + } \ No newline at end of file diff --git a/src/Entity/Usuario.php b/src/Entity/Usuario.php index 692db37..43d304a 100644 --- a/src/Entity/Usuario.php +++ b/src/Entity/Usuario.php @@ -3,9 +3,11 @@ use Doctrine\ORM\Mapping as ORM; use App\Entity\Endereco; +use App\Entity\ContratoLocacao; +use App\Entity\ContratoAdm; /** - * @ORM\Entity + * @ORM\Entity(repositoryClass="App\Repository\UsuarioRepository") */ class Usuario { @@ -53,14 +55,14 @@ class Usuario private $endereco; /** -// * @ORM\OneToMany(targetEntity="Entity\contratoLocacao", mappedBy="usuario") -// */ -// private $contratoLocacao; + * @ORM\OneToMany(targetEntity="App\Entity\ContratoAdm", mappedBy="usuario") + */ + private $contratoAdm; -// /** -// * @ORM\OneToMany(targetEntity="Entity\ContratoAdm", mappedBy="usuario") -// */ -// private $contratoAdm; + /** + * @ORM\OneToMany(targetEntity="App\Entity\ContratoLocacao", mappedBy="usuario") + */ + private $contratoLocacao; /** * @var string @@ -68,6 +70,18 @@ class Usuario */ private $tipoUsuario; + /** + * @var string + * @ORM\Column(type="string", length=100, name="login", nullable=true) + */ + private $login; + + /** + * @var string + * @ORM\Column(type="string", length=100, name="senha", nullable=true) + */ + private $senha; + /** * @return mixed */ @@ -243,4 +257,37 @@ public function setTipoUsuario(string $tipoUsuario): void { $this->tipoUsuario = $tipoUsuario; } + + /** + * @return string + */ + public function getSenha(): string + { + return $this->senha; + } + + /** + * @param string $senha + */ + public function setSenha(string $senha): void + { + $this->senha = $senha; + } + + /** + * @return string + */ + public function getLogin(): string + { + return $this->login; + } + + /** + * @param string $login + */ + public function setLogin(string $login): void + { + $this->login = $login; + } + } diff --git a/src/Forms/UsuarioType.php b/src/Forms/UsuarioType.php index 486f2bf..198f781 100755 --- a/src/Forms/UsuarioType.php +++ b/src/Forms/UsuarioType.php @@ -38,7 +38,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void ] ]) ->add('sexo', TextType::class, [ - 'label' => 'Sexto', + 'label' => 'Sexo', ]) ->add('email', EmailType::class, [ 'label' => 'Email', diff --git a/src/Repository/ImovelRepository.php b/src/Repository/ImovelRepository.php new file mode 100644 index 0000000..c9b2363 --- /dev/null +++ b/src/Repository/ImovelRepository.php @@ -0,0 +1,52 @@ +getEntityManager(); + $em->persist($imovel); + $em->flush(); + } + + public function remover(Imovel $imovel) + { + $em = $this->getEntityManager(); + $em->remove($imovel); + $em->flush(); + } + + public function editar(Imovel $imovel) + { + $em = $this->getEntityManager(); + $em->merge($imovel); + $em->flush(); + } + + public function listarTodos() + { + $em = $this->getEntityManager(); + $imoveis = $em->getRepository(Imovel::class)->findAll(); + return $imoveis; + } + + public function findById($id) + { + $em = $this->getEntityManager(); + $imovel = $em->find(Imovel::class, $id); + return $imovel; + } + +} \ No newline at end of file diff --git a/src/Repository/UsuarioRepository.php b/src/Repository/UsuarioRepository.php new file mode 100644 index 0000000..222f1a8 --- /dev/null +++ b/src/Repository/UsuarioRepository.php @@ -0,0 +1,51 @@ +getEntityManager(); + $em->persist($usuario); + $em->flush(); + } + + public function listarTodos() + { + $em = $this->getEntityManager(); + $usuarios = $em->getRepository(Usuario::class)->findAll(); + return $usuarios; + } + + public function findById($id) + { + $em = $this->getEntityManager(); + $usuario = $em->find(Usuario::class, $id); + return $usuario; + } + + public function editarUsuario(Usuario $usuario) + { + $em = $this->getEntityManager(); + $em->merge($usuario); + $em->flush(); + } + + public function removerUsuario(Usuario $usuario) + { + $em = $this->getEntityManager(); + $em->remove($usuario); + $em->flush(); + } +} \ No newline at end of file diff --git a/src/Service/ImovelService.php b/src/Service/ImovelService.php new file mode 100644 index 0000000..0d0ef6d --- /dev/null +++ b/src/Service/ImovelService.php @@ -0,0 +1,45 @@ +imovelRepository = $imovelRepository; + } + + public function salvar(Imovel $imovel) + { + $this->imovelRepository->salvar($imovel); + } + + public function remover(Imovel $imovel) + { + $this->imovelRepository->remover($imovel); + } + + public function editar(Imovel $imovel) + { + $this->imovelRepository->editar($imovel); + } + + public function listarTodos() + { + $imoveis = $this->imovelRepository->listarTodos(); + return $imoveis; + } + + public function findById($id) + { + $imovel = $this->imovelRepository->findById($id); + return $imovel; + } +} \ No newline at end of file diff --git a/src/Service/UsuarioService.php b/src/Service/UsuarioService.php new file mode 100644 index 0000000..6f24da0 --- /dev/null +++ b/src/Service/UsuarioService.php @@ -0,0 +1,46 @@ +usuarioRepository = $usuarioRepository; + } + + public function salvar(Usuario $usuario) + { + $this->usuarioRepository->salvar($usuario); + } + + public function listarUsuarios() + { + $usuarios = $this->usuarioRepository->listarTodos(); + return $usuarios; + } + + public function findById($id) + { + $usuario = $this->usuarioRepository->findById($id); + return $usuario; + } + + public function editarUsuario(Usuario $usuario) + { + $this->usuarioRepository->editarUsuario($usuario); + } + + public function removerUsuario(Usuario $usuario) + { + $this->usuarioRepository->removerUsuario($usuario); + } + +} \ No newline at end of file diff --git a/templates/base.html.twig b/templates/base.html.twig index 6d8013b..d416ca7 100755 --- a/templates/base.html.twig +++ b/templates/base.html.twig @@ -11,12 +11,12 @@ Imobiliária - + - - + + @@ -29,7 +29,7 @@