From 7f3978b58ae565a16d8ac30f013ab88613822873 Mon Sep 17 00:00:00 2001 From: taisHryssai <thryssai@gmail.com> Date: Tue, 17 Oct 2023 18:43:52 -0300 Subject: [PATCH 1/2] choose between company and user in the first step of registration --- .../controller/UserRegisterController.java | 175 +++++++--------- .../user-registration/wizard-step-01.jsp | 193 +++++++++++------- .../user-registration/wizard-step-06-old.jsp | 111 ++++++++++ .../user-registration/wizard-step-06.jsp | 118 ++++++----- .../user-registration/wizard-step-07.jsp | 177 ++++++++++------ .../user-registration/wizard-step-08.jsp | 170 --------------- 6 files changed, 485 insertions(+), 459 deletions(-) create mode 100644 src/main/webapp/WEB-INF/view/visitor/user-registration/wizard-step-06-old.jsp delete mode 100644 src/main/webapp/WEB-INF/view/visitor/user-registration/wizard-step-08.jsp diff --git a/src/main/java/br/edu/utfpr/servicebook/controller/UserRegisterController.java b/src/main/java/br/edu/utfpr/servicebook/controller/UserRegisterController.java index 3ff8b031..ea3b249c 100644 --- a/src/main/java/br/edu/utfpr/servicebook/controller/UserRegisterController.java +++ b/src/main/java/br/edu/utfpr/servicebook/controller/UserRegisterController.java @@ -129,13 +129,13 @@ public String showUserRegistrationWizard( @RequestParam(value = "passo", required = false, defaultValue = "1") Long step, HttpSession httpSession, Model model - ) throws Exception{ + ) throws Exception { if (step < 1 || step > 9) { step = 1L; } - if(step == 8){ + if (step == 7) { List<Expertise> professionPage = expertiseService.findAll(); List<ExpertiseDTO> expertiseDTOs = professionPage.stream() .map(s -> expertiseMapper.toDto(s)) @@ -152,9 +152,9 @@ public String showUserRegistrationWizard( List<Expertise> professionalExpertises = new ArrayList<>(); - if(professionalExpertiseDTO.getIds() != null){ + if (professionalExpertiseDTO.getIds() != null) { for (Integer id : professionalExpertiseDTO.getIds()) { - Optional<Expertise> oExpertises = expertiseService.findById((Long.valueOf(id))); + Optional<Expertise> oExpertises = expertiseService.findById((Long.valueOf(id))); if (!oExpertises.isPresent()) { throw new Exception("Não existe essa especialidade!"); } @@ -184,6 +184,7 @@ private void resetSessionAttributes(HttpSession httpSession) { * Guarda na sessão que o cadastro é de um indivíduo. * Recebe o email apenas e antes de persistir, verifica se já não está sendo usado. * Envia o email com o código para confirmar a veracidade do email. + * * @param httpSession * @param dto * @param errors @@ -197,14 +198,18 @@ private void resetSessionAttributes(HttpSession httpSession) { public String saveUserEmail( HttpSession httpSession, @Validated(UserDTO.RequestUserEmailInfoGroupValidation.class) IndividualDTO dto, + @Validated(UserDTO.RequestUserNameAndCPFInfoGroupValidation.class) IndividualDTO dtouser, BindingResult errors, RedirectAttributes redirectAttributes, Model model ) throws MessagingException { - if(errors.hasErrors()) { + if (errors.hasErrors()) { return this.userRegistrationErrorForwarding("1", dto, model, errors); } + if (errors.hasErrors()) { + return this.userRegistrationErrorForwarding("1", dtouser, model, errors); + } String email = dto.getEmail().trim(); httpSession.setAttribute(UserWizardUtil.KEY_IS_REGISTER_COMPANY, false); @@ -242,9 +247,31 @@ public String saveUserEmail( IndividualDTO userSessionDTO = null; userSessionDTO = (IndividualDTO) userWizardUtil.getWizardState(httpSession, IndividualDTO.class, UserWizardUtil.KEY_WIZARD_INDIVIDUAL); + + if (!dtouser.getCpf().isEmpty()) { + //verifica se o CPF já está cadastrado para algum outro usuário + Optional<Individual> oUserCpf = individualService.findByCpf(dtouser.getCpf()); + + if (oUserCpf.isPresent()) { + errors.rejectValue("cpf", "error.dto", "CPF já cadastrado! Por favor, insira um CPF não cadastrado."); + } + + if (errors.hasErrors()) { + return this.userRegistrationErrorForwarding("1", dtouser, model, errors); + } + + userSessionDTO.setCpf(dtouser.getCpf()); + } + + System.out.println("userSessionDTO"); + System.out.println(dtouser.getCpf()); + userSessionDTO.setProfile(ProfileEnum.ROLE_USER); userSessionDTO.setEmail(email); - + //salva na sessão + userSessionDTO.setName(dtouser.getName()); + userSessionDTO.setCpf(dtouser.getCpf()); + userSessionDTO.setProfileVerified(true); return "redirect:/cadastrar-se?passo=2"; } @@ -253,6 +280,7 @@ public String saveUserEmail( * Guarda na sessão que o cadastro é de empresa e não de um indivíduo. * Recebe o email apenas e antes de persistir, verifica se já não está sendo usado. * Envia o email com o código para confirmar a veracidade do email. + * * @param httpSession * @param dto * @param errors @@ -266,6 +294,7 @@ public String saveUserEmail( public String saveUserEmail( HttpSession httpSession, @Validated(UserDTO.RequestUserEmailInfoGroupValidation.class) CompanyDTO dto, + @Validated(UserDTO.RequestUserNameAndCNPJInfoGroupValidation.class) CompanyDTO dtocompany, BindingResult errors, RedirectAttributes redirectAttributes, Model model @@ -274,7 +303,9 @@ public String saveUserEmail( if (errors.hasErrors()) { return this.userRegistrationErrorForwarding("1", dto, model, errors); } - + if (errors.hasErrors()) { + return this.userRegistrationErrorForwarding("1", dtocompany, model, errors); + } String email = dto.getEmail().trim(); httpSession.setAttribute(UserWizardUtil.KEY_IS_REGISTER_COMPANY, true); @@ -317,11 +348,31 @@ public String saveUserEmail( userSessionDTO.setProfile(ROLE_COMPANY); userSessionDTO.setEmail(email); + CompanyDTO companySessionDTO = (CompanyDTO) userWizardUtil.getWizardState(httpSession, CompanyDTO.class, UserWizardUtil.KEY_WIZARD_COMPANY); + + //verifica se o CPF já está cadastrado para algum outro usuário + Optional<Company> oUserCnpj = companyService.findByCnpj(dtocompany.getCnpj()); + + if (oUserCnpj.isPresent()) { + errors.rejectValue("cnpj", "error.dto", "CNPJ já cadastrado! Por favor, insira um CNPJ não cadastrado."); + } + + if (errors.hasErrors()) { + return this.userRegistrationErrorForwarding("1", dtocompany, model, errors); + } + + companySessionDTO.setName(dto.getName().trim()); + companySessionDTO.setCnpj(dto.getCnpj().trim()); + companySessionDTO.setProfileVerified(true); + + + return "redirect:/cadastrar-se?passo=2"; } /** * Realiza a verificação do email por meio de um código numérico enviado para o respectivo email. + * * @param httpSession * @param dto * @param errors @@ -372,6 +423,7 @@ public String saveUserEmailCode( /** * Salva a senha e contrasenha na sessão + * * @param httpSession * @param dto * @param errors @@ -392,7 +444,7 @@ public String saveUserPassword( return this.userRegistrationErrorForwarding("3", dto, model, errors); } - if(!dto.getPassword().equals(dto.getRepassword())){ + if (!dto.getPassword().equals(dto.getRepassword())) { errors.rejectValue("password", "error.dto", "As senhas não correspondem. Por favor, tente novamente."); } @@ -409,6 +461,7 @@ public String saveUserPassword( /** * Salva o telefone na sessão e enviar o código para verificação do número de telefone. + * * @param httpSession * @param dto * @param errors @@ -442,6 +495,7 @@ public String saveUserPhone( /** * Verifica se o código recebido por SMS é válido. + * * @param httpSession * @param dto * @param errors @@ -493,7 +547,7 @@ public String saveUserPhoneCode( //verificado pelo usuário corrente que está sendo cadastrado Optional<User> oUser = userService.findByPhoneNumber(dto.getPhoneNumber()); - if(oUser.isPresent()) { + if (oUser.isPresent()) { User user = oUser.get(); user.setPhoneVerified(false); userService.save(user); @@ -501,90 +555,14 @@ public String saveUserPhoneCode( redirectAttributes.addFlashAttribute("msg", "Telefone verificado com sucesso!"); +// return "redirect:/cadastrar-se?passo=6"; return "redirect:/cadastrar-se?passo=6"; - } - - /** - * Salva na sessão o nome e o CPF do indivíduo. - * Porém, somente se o CPF ainda não foi cadastrado. - * @param httpSession - * @param dto - * @param errors - * @param redirectAttributes - * @param model - * @return - */ - @PostMapping("/individuo/passo-6") - @PermitAll - public String saveUserNameAndCPF( - HttpSession httpSession, - @Validated(UserDTO.RequestUserNameAndCPFInfoGroupValidation.class) IndividualDTO dto, - BindingResult errors, - RedirectAttributes redirectAttributes, - Model model - ) { - - if (errors.hasErrors()) { - return this.userRegistrationErrorForwarding("6", dto, model, errors); - } - - //verifica se o CPF já está cadastrado para algum outro usuário - Optional<Individual> oUser = individualService.findByCpf(dto.getCpf()); - - if (oUser.isPresent()) { - errors.rejectValue("cpf", "error.dto", "CPF já cadastrado! Por favor, insira um CPF não cadastrado."); - } - - if (errors.hasErrors()) { - return this.userRegistrationErrorForwarding("6", dto, model, errors); - } - - //salva na sessão - IndividualDTO userSessionDTO = (IndividualDTO) userWizardUtil.getWizardState(httpSession, IndividualDTO.class, UserWizardUtil.KEY_WIZARD_INDIVIDUAL); - userSessionDTO.setName(dto.getName()); - userSessionDTO.setCpf(dto.getCpf()); - userSessionDTO.setProfileVerified(true); - - return "redirect:/cadastrar-se?passo=7"; - } - - @PostMapping("/empresa/passo-6") - @PermitAll - public String saveUserNameAndCNPJ( - HttpSession httpSession, - @Validated(UserDTO.RequestUserNameAndCNPJInfoGroupValidation.class) CompanyDTO dto, - BindingResult errors, - RedirectAttributes redirectAttributes, - Model model - ) { - if (errors.hasErrors()) { - return this.userRegistrationErrorForwarding("6", dto, model, errors); - } - - //verifica se o CNPJ ainda não está cadastrado - Optional<Company> oUser = companyService.findByCnpj(dto.getCnpj()); - - if (oUser.isPresent()) { - errors.rejectValue("cnpj", "error.dto", "CNPJ já cadastrado! Por favor, " + - "insira um CNPJ não cadastrado."); - } - - if (errors.hasErrors()) { - return this.userRegistrationErrorForwarding("6", dto, model, errors); - } - - //salva na sessão - CompanyDTO companySessionDTO = (CompanyDTO) userWizardUtil.getWizardState(httpSession, CompanyDTO.class, UserWizardUtil.KEY_WIZARD_COMPANY); - companySessionDTO.setName(dto.getName().trim()); - companySessionDTO.setCnpj(dto.getCnpj().trim()); - companySessionDTO.setProfileVerified(true); - - return "redirect:/cadastrar-se?passo=7"; } /** * Salva o endereço na sessão. + * * @param httpSession * @param dto * @param errors @@ -592,7 +570,7 @@ public String saveUserNameAndCNPJ( * @param model * @return */ - @PostMapping("/passo-7") + @PostMapping("/passo-6") @PermitAll public String saveUserAddress( HttpSession httpSession, @@ -628,25 +606,25 @@ public String saveUserAddress( UserDTO userSessionDTO = userWizardUtil.getUserDTO(httpSession); userSessionDTO.setAddress(addressFullDTO); - return "redirect:/cadastrar-se?passo=8"; + return "redirect:/cadastrar-se?passo=7"; } - @PostMapping("/passo-8") + @PostMapping("/passo-7") @PermitAll public String saveExpertises( HttpSession httpSession, ProfessionalExpertiseDTO dto, RedirectAttributes redirectAttributes, Model model - )throws Exception{ + ) throws Exception { UserDTO userSessionDTO = userWizardUtil.getUserDTO(httpSession); Set<Integer> ids = dto.getIds(); - if(ids != null){ + if (ids != null) { ProfessionalExpertiseDTO professionalExpertiseSessionDTO = (ProfessionalExpertiseDTO) userWizardUtil.getWizardState(httpSession, ProfessionalExpertiseDTO.class, UserWizardUtil.KEY_EXPERTISES); for (Integer id : ids) { - Optional<Expertise> oExpertise = expertiseService.findById((Long.valueOf(id))); + Optional<Expertise> oExpertise = expertiseService.findById((Long.valueOf(id))); if (!oExpertise.isPresent()) { throw new Exception("Não existe essa especialidade!"); } @@ -657,7 +635,7 @@ public String saveExpertises( return "redirect:/cadastrar-se?passo=8"; } - @PostMapping("/passo-9") + @PostMapping("/passo-8") @PermitAll public String saveUser( HttpSession httpSession, @@ -666,12 +644,12 @@ public String saveUser( Model model, RedirectAttributes redirectAttributes, SessionStatus status - )throws Exception { + ) throws Exception { boolean isCompany = (Boolean) httpSession.getAttribute(UserWizardUtil.KEY_IS_REGISTER_COMPANY); String email = null; - if(isCompany){ + if (isCompany) { CompanyDTO userSessionDTO = (CompanyDTO) userWizardUtil.getWizardState(httpSession, CompanyDTO.class, UserWizardUtil.KEY_WIZARD_COMPANY); validator.validate(userSessionDTO, errors, new Class[]{ @@ -689,8 +667,7 @@ public String saveUser( Company company = companyMapper.toEntity(userSessionDTO); email = company.getEmail(); companyService.save(company); - } - else{ + } else { IndividualDTO userSessionDTO = (IndividualDTO) userWizardUtil.getWizardState(httpSession, IndividualDTO.class, UserWizardUtil.KEY_WIZARD_INDIVIDUAL); validator.validate(userSessionDTO, errors, new Class[]{ @@ -712,7 +689,7 @@ public String saveUser( Optional<User> oUser = userService.findByEmail(email); - if(!oUser.isPresent()){ + if (!oUser.isPresent()) { throw new Exception("O usuário não foi encontrado."); } diff --git a/src/main/webapp/WEB-INF/view/visitor/user-registration/wizard-step-01.jsp b/src/main/webapp/WEB-INF/view/visitor/user-registration/wizard-step-01.jsp index dd68100c..ebf69c6e 100644 --- a/src/main/webapp/WEB-INF/view/visitor/user-registration/wizard-step-01.jsp +++ b/src/main/webapp/WEB-INF/view/visitor/user-registration/wizard-step-01.jsp @@ -1,83 +1,129 @@ <%@page contentType="text/html" pageEncoding="UTF-8" %> <%@taglib prefix="t" tagdir="/WEB-INF/tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <head> - <!-- Funciona apenas com caminho absoluto porque é renderizado antes da tag base --> - <link href="${pageContext.request.contextPath}/assets/resources/styles/visitor/visitor.css" rel="stylesheet"> + <!-- Funciona apenas com caminho absoluto porque é renderizado antes da tag base --> + <link href="${pageContext.request.contextPath}/assets/resources/styles/visitor/visitor.css" rel="stylesheet"> </head> <t:template title="Servicebook - Cadastro - Passo 1"> - <jsp:body> - - <main> - <div class="container"> - <c:if test="${not empty errors}"> - <div class="card-panel red"> - <c:forEach var="e" items="${errors}"> - <span class="white-text">${e.getDefaultMessage()}</span><br> - </c:forEach> - </div> - </c:if> - - <div class="section"> - <div class="row"> - <!-- o endereço do formulário está atrelado a aba clicada pelo usuário, ou seja, para - cadastro de empresa ou indivíduo. Por default, a aba empresa é mostrada. A atualização - do endereço é realizado via JavaScript.--> - <form method="post" action="cadastrar-se/empresa/passo-1" id="register-form"> - <div class="row"> - <div id="tabButton" class="col s10 input-field col s12 m8 l6 xl6 offset-s1 offset-m2 offset-l3 offset-xl3"> - <ul class="tabs tabs_register"> - <li id="tab_company" class="list tab col s5"> - <a data-tabName="company" class="active" href="#company">Empresa</a> - </li> - <li id="tab_individual" class="list tab col s5"> - <a data-tabName="individual" href="#individual">Cliente/Profissional</a> - </li> - </ul> - </div> - - <div class="input-field col s12 m8 l6 xl6 offset-s1 offset-m2 offset-l3 offset-xl3"> - <h3 class="center secondary-color-text"> - Qual o seu email? - </h3> - <h5 class="center secondary-color-text"> - O seu email será utilizado para você acessar o sistema e receber informações sobre os - serviços! - </h5> - - </div> - - <div class="div_email input-field col s12 m8 l6 xl6 offset-s1 offset-m2 offset-l3 offset-xl3"> - <label for="email">Email</label> - <input id="email" name="email" type="text" value="${dto.email}" class="validate"> - </div> - - <div class="col s6 m3 offset-m3 spacing-buttons"> - <div class="center"> - <a class="waves-effect waves-light btn btn-gray" href="bem-vindo">Voltar</a> - </div> - </div> - - <div class="col s6 m3 spacing-buttons"> - <div class="center"> - <button type="submit" class="waves-effect waves-light btn">Próximo</button> - </div> - </div> - </div> - </form> - </div> + <jsp:body> + + <main> + <div class="container"> + <c:if test="${not empty errors}"> + <div class="card-panel red"> + <c:forEach var="e" items="${errors}"> + <span class="white-text">${e.getDefaultMessage()}</span><br> + </c:forEach> + </div> + </c:if> + + <div class="section"> + <div class="row"> + <!-- o endereço do formulário está atrelado a aba clicada pelo usuário, ou seja, para + cadastro de empresa ou indivíduo. Por default, a aba empresa é mostrada. A atualização + do endereço é realizado via JavaScript.--> + <form method="post" action="cadastrar-se/empresa/passo-1" id="register-form"> + <div class="row"> + <div id="tabButton" + class="col s10 input-field col s12 m8 l6 xl6 offset-s1 offset-m2 offset-l3 offset-xl3"> + <ul class="tabs tabs_register"> + <li id="tab_company" class="list tab col s5"> + <a data-tabName="company" class="active" href="#company">Empresa</a> + </li> + <li id="tab_individual" class="list tab col s5"> + <a data-tabName="individual" href="#individual">Cliente/Profissional</a> + </li> + </ul> + </div> + + <div class="input-field col s12 m8 l6 xl6 offset-s1 offset-m2 offset-l3 offset-xl3"> + <h4 class="center secondary-color-text"> + Qual o seu nome completo? + </h4> + <h5 class="center secondary-color-text"> + O usuários precisam saber com quem estão negociando. + </h5> + </div> + + <div class="div_email input-field col s12 m8 l6 xl6 offset-s1 offset-m2 offset-l3 offset-xl3"> + <label for="name">Nome completo</label> + <input id="name" name="name" type="text" value="${dto.name}" class="validate"> + </div> + + <div class="input-field col s12 m8 l6 xl6 offset-s1 offset-m2 offset-l3 offset-xl3 div_cpf"> + <h4 class="center secondary-color-text"> + Qual o seu CPF? + </h4> + <h5 class="center secondary-color-text"> + Poderá ser usado para validar a veracidade dos dados pessoais. + </h5> + </div> + + <div class="input-field col s12 m8 l6 xl6 offset-s1 offset-m2 offset-l3 offset-xl3 div_cpf"> + <input id="cpf" name="cpf" type="text" value="${dto.cpf}" class=""> + <label for="cpf">CPF</label> + </div> + <!-- verifica na sessão se o cadastro atual é de empresa --> + <div class="input-field col s12 m8 l6 xl6 offset-s1 offset-m2 offset-l3 offset-xl3 div_cnpj"> + <h4 class="center secondary-color-text"> + Qual o seu CNPJ? + </h4> + <h5 class="center secondary-color-text"> + Poderá ser usado para validar a veracidade dos dados pessoais. + </h5> </div> - </div> - </main> - </jsp:body> + <div class="input-field col s12 m8 l6 xl6 offset-s1 offset-m2 offset-l3 offset-xl3 div_cnpj"> + <input id="cnpj" name="cnpj" type="text" value="${dto.cnpj}" class=""> + <label for="cnpj">CNPJ</label> + </div> + + <div class="input-field col s12 m8 l6 xl6 offset-s1 offset-m2 offset-l3 offset-xl3"> + <h4 class="center secondary-color-text"> + Qual o seu email? + </h4> + <h5 class="center secondary-color-text"> + O seu email será utilizado para você acessar o sistema e receber informações sobre os + serviços! + </h5> + </div> + + <div class="div_email input-field col s12 m8 l6 xl6 offset-s1 offset-m2 offset-l3 offset-xl3"> + <label for="email">Email</label> + <input id="email" name="email" type="text" value="${dto.email}" class="validate"> + </div> + <div class="col s6 m3 offset-m3 spacing-buttons"> + <div class="center"> + <a class="waves-effect waves-light btn btn-gray" href="bem-vindo">Voltar</a> + </div> + </div> + + <div class="col s6 m3 spacing-buttons"> + <div class="center"> + <button type="submit" class="waves-effect waves-light btn">Próximo</button> + </div> + </div> + </div> + </form> + </div> + </div> + </div> + </main> + + </jsp:body> </t:template> +<script src="assets/libraries/jquery.mask.js"></script> <script> - - $("#tabButton ul li a").click(function(e){ + $(".div_cpf").hide(); + $(document).ready(function () { + $('#cpf').mask('000.000.000-00', {reverse: true}); + $('#cnpj').mask('00.000.000/0000-00', {reverse: true}); + }); + $("#tabButton ul li a").click(function (e) { // active deactivate tab buttons $("#tabButton ul li a").removeClass('active'); $(this).addClass('active'); @@ -85,14 +131,17 @@ // show hide tab content let tabName = $(this).attr('data-tabName'); $("#tabContent .tab").removeClass('active'); - $("#tabContent #"+tabName).addClass('active'); + $("#tabContent #" + tabName).addClass('active'); //altera o endereço do action do form de acordo com o tipo de usuário cadastrado - if(tabName == 'company'){ + if (tabName == 'company') { $('#register-form').attr('action', 'cadastrar-se/empresa/passo-1'); - } - else{ + $(".div_cpf").hide(); + $(".div_cnpj").show(); + } else { $('#register-form').attr('action', 'cadastrar-se/individuo/passo-1'); + $(".div_cpf").show(); + $(".div_cnpj").hide(); } // stop reload diff --git a/src/main/webapp/WEB-INF/view/visitor/user-registration/wizard-step-06-old.jsp b/src/main/webapp/WEB-INF/view/visitor/user-registration/wizard-step-06-old.jsp new file mode 100644 index 00000000..5a928413 --- /dev/null +++ b/src/main/webapp/WEB-INF/view/visitor/user-registration/wizard-step-06-old.jsp @@ -0,0 +1,111 @@ +<%@page contentType="text/html" pageEncoding="UTF-8" %> +<%@taglib prefix="t" tagdir="/WEB-INF/tags" %> +<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<head> + <!-- Funciona apenas com caminho absoluto porque é renderizado antes da tag base --> + <link href="${pageContext.request.contextPath}/assets/resources/styles/visitor/visitor.css" rel="stylesheet"> +</head> + +<t:template title="Servicebook - Cadastro - Passo 6"> + <jsp:body> + <main> + <div class="container"> + <c:if test="${not empty errors}"> + <div class="card-panel red"> + <c:forEach var="e" items="${errors}"> + <span class="white-text">${e.getDefaultMessage()}</span><br> + </c:forEach> + </div> + </c:if> + + <c:if test="${not empty msg}"> + <div class="row"> + <div class="col s12"> + <div class="card-panel green lighten-1 msg-view center-align"> + <span class="white-text">${msg}</span> + </div> + </div> + </div> + </c:if> + + <div class="section"> + <div class="row"> + <div class="row"> + <h3 class="center secondary-color-text">Nos conte mais sobre você!</h3> + </div> + <!-- verifica na sessão se o cadastro atual é de indivíduo e ajusta a URL --> + <form method="post" action="${sessionScope.get('KEY_IS_REGISTER_COMPANY') == true ? 'cadastrar-se/empresa/passo-6' : 'cadastrar-se/individuo/passo-6'}"> + <div class="row center spacing-buttons"> + <h4 class="center secondary-color-text"> + Qual o seu nome completo? + </h4> + <h5 class="center secondary-color-text"> + O usuários precisam saber com quem estão negociando. + </h5> + <div class="input-field col s12 l6 offset-l3 spacing-buttons"> + <input id="name" name="name" type="text" value="${dto.name}" class="validate"> + <label for="name">Nome completo</label> + </div> + </div> + <!-- verifica na sessão se o cadastro atual é de indivíduo --> + <c:if test="${sessionScope.get('KEY_IS_REGISTER_COMPANY') == false}"> + <div class="row center spacing-buttons"> + <h4 class="center secondary-color-text"> + Qual o seu CPF? + </h4> + <h5 class="center secondary-color-text"> + Poderá ser usado para validar a veracidade dos dados pessoais. + </h5> + + <div class="input-field col s12 l6 offset-l3 spacing-buttons"> + <input id="cpf" name="cpf" type="text" value="${dto.cpf}" class=""> + <label for="cpf">CPF</label> + </div> + </div> + </c:if> + <!-- verifica na sessão se o cadastro atual é de empresa --> + <c:if test="${sessionScope.get('KEY_IS_REGISTER_COMPANY') == true}"> + <div class="row center spacing-buttons"> + <h4 class="center secondary-color-text"> + Qual o seu CNPJ? + </h4> + <h5 class="center secondary-color-text"> + Poderá ser usado para validar a veracidade dos dados pessoais. + </h5> + + <div class="input-field col s12 l6 offset-l3 spacing-buttons"> + <input id="cnpj" name="cnpj" type="text" value="${dto.cnpj}" class=""> + <label for="cnpj">CNPJ</label> + </div> + </div> + </c:if> + <div class="col s6 m3 offset-m3 spacing-buttons"> + <div class="center"> + <a class="waves-effect waves-light btn btn-gray" + href="cadastrar-se?passo=5"> + Voltar + </a> + </div> + </div> + <div class="col s6 m3 spacing-buttons"> + <div class="center"> + <button type="submit" class="waves-effect waves-light btn">Próximo</button> + </div> + </div> + </form> + </div> + </div> + </div> + </main> + + </jsp:body> +</t:template> + +<script src="assets/libraries/jquery.mask.js"></script> + +<script> + $(document).ready(function () { + $('#cpf').mask('000.000.000-00', {reverse: true}); + $('#cnpj').mask('00.000.000/0000-00', {reverse: true}); + }); +</script> \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/view/visitor/user-registration/wizard-step-06.jsp b/src/main/webapp/WEB-INF/view/visitor/user-registration/wizard-step-06.jsp index 5a928413..76558d97 100644 --- a/src/main/webapp/WEB-INF/view/visitor/user-registration/wizard-step-06.jsp +++ b/src/main/webapp/WEB-INF/view/visitor/user-registration/wizard-step-06.jsp @@ -1,6 +1,6 @@ <%@page contentType="text/html" pageEncoding="UTF-8" %> <%@taglib prefix="t" tagdir="/WEB-INF/tags" %> -<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <head> <!-- Funciona apenas com caminho absoluto porque é renderizado antes da tag base --> <link href="${pageContext.request.contextPath}/assets/resources/styles/visitor/visitor.css" rel="stylesheet"> @@ -8,6 +8,7 @@ <t:template title="Servicebook - Cadastro - Passo 6"> <jsp:body> + <main> <div class="container"> <c:if test="${not empty errors}"> @@ -18,71 +19,68 @@ </div> </c:if> - <c:if test="${not empty msg}"> - <div class="row"> - <div class="col s12"> - <div class="card-panel green lighten-1 msg-view center-align"> - <span class="white-text">${msg}</span> - </div> - </div> - </div> - </c:if> - <div class="section"> <div class="row"> - <div class="row"> - <h3 class="center secondary-color-text">Nos conte mais sobre você!</h3> - </div> - <!-- verifica na sessão se o cadastro atual é de indivíduo e ajusta a URL --> - <form method="post" action="${sessionScope.get('KEY_IS_REGISTER_COMPANY') == true ? 'cadastrar-se/empresa/passo-6' : 'cadastrar-se/individuo/passo-6'}"> - <div class="row center spacing-buttons"> - <h4 class="center secondary-color-text"> - Qual o seu nome completo? - </h4> - <h5 class="center secondary-color-text"> - O usuários precisam saber com quem estão negociando. - </h5> - <div class="input-field col s12 l6 offset-l3 spacing-buttons"> - <input id="name" name="name" type="text" value="${dto.name}" class="validate"> - <label for="name">Nome completo</label> - </div> - </div> - <!-- verifica na sessão se o cadastro atual é de indivíduo --> - <c:if test="${sessionScope.get('KEY_IS_REGISTER_COMPANY') == false}"> - <div class="row center spacing-buttons"> - <h4 class="center secondary-color-text"> - Qual o seu CPF? - </h4> - <h5 class="center secondary-color-text"> - Poderá ser usado para validar a veracidade dos dados pessoais. - </h5> + <h3 class="row center secondary-color-text"> + Qual o seu endereço? + </h3> + <h5 class="row center secondary-color-text"> + Será útil para filtrar serviços por região e de acordo com a distância + para o local de realização do serviço. + </h5> - <div class="input-field col s12 l6 offset-l3 spacing-buttons"> - <input id="cpf" name="cpf" type="text" value="${dto.cpf}" class=""> - <label for="cpf">CPF</label> + <form method="post" action="cadastrar-se/passo-6"> + <div class="row spacing-buttons"> + <div class="row"> + <div class="center"> + <a id="btn-search-cep" class="waves-effect waves-light btn">Buscar CEP</a> </div> </div> - </c:if> - <!-- verifica na sessão se o cadastro atual é de empresa --> - <c:if test="${sessionScope.get('KEY_IS_REGISTER_COMPANY') == true}"> - <div class="row center spacing-buttons"> - <h4 class="center secondary-color-text"> - Qual o seu CNPJ? - </h4> - <h5 class="center secondary-color-text"> - Poderá ser usado para validar a veracidade dos dados pessoais. - </h5> - - <div class="input-field col s12 l6 offset-l3 spacing-buttons"> - <input id="cnpj" name="cnpj" type="text" value="${dto.cnpj}" class=""> - <label for="cnpj">CNPJ</label> + <div class="row"> + <div class="input-field col s8 offset-s2"> + <input id="postalCode" name="postalCode" type="text" placeholder="CEP" + class="validate"> + <label for="postalCode">CEP</label> + <span id="errorPostalCode" class="hide helper-text red-text darken-3"></span> + </div> + </div> + <div class="row"> + <div class="input-field col s8 offset-s2"> + <input id="number" name="number" type="text" placeholder="Número" + class="validate"> + <label for="number">Número</label> + </div> + </div> + <div class="row"> + <div class="input-field col s8 offset-s2"> + <input id="street" name="street" type="text" placeholder="Rua" class="validate"> + <label for="street">Rua</label> + </div> + </div> + <div class="row"> + <div class="input-field col s8 offset-s2"> + <input id="neighborhood" name="neighborhood" type="text" placeholder="Bairro" + class="validate"> + <label for="neighborhood">Bairro</label> </div> </div> - </c:if> + <div class="row"> + <div class="input-field col s8 offset-s2"> + <input id="city" name="city" type="text" placeholder="Cidade" class="validate"> + <label for="city">Cidade</label> + </div> + </div> + <div class="row"> + <div class="input-field col s8 offset-s2"> + <input id="state" name="state" type="text" placeholder="Estado" + class="validate"> + <label for="state">Estado</label> + </div> + </div> + </div> <div class="col s6 m3 offset-m3 spacing-buttons"> <div class="center"> - <a class="waves-effect waves-light btn btn-gray" - href="cadastrar-se?passo=5"> + <a href="cadastrar-se?passo=5" class="waves-effect waves-light btn btn-gray"> Voltar </a> </div> @@ -101,11 +99,9 @@ </jsp:body> </t:template> +<script src="assets/resources/scripts/cep-user-registration.js"></script> <script src="assets/libraries/jquery.mask.js"></script> <script> - $(document).ready(function () { - $('#cpf').mask('000.000.000-00', {reverse: true}); - $('#cnpj').mask('00.000.000/0000-00', {reverse: true}); - }); + $('#postalCode').mask('00000-000'); </script> \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/view/visitor/user-registration/wizard-step-07.jsp b/src/main/webapp/WEB-INF/view/visitor/user-registration/wizard-step-07.jsp index 55d2ed1b..2d2cb4cb 100644 --- a/src/main/webapp/WEB-INF/view/visitor/user-registration/wizard-step-07.jsp +++ b/src/main/webapp/WEB-INF/view/visitor/user-registration/wizard-step-07.jsp @@ -22,86 +22,149 @@ <div class="section"> <div class="row"> <h3 class="row center secondary-color-text"> - Qual o seu endereço? + Escolha uma especialidade! </h3> <h5 class="row center secondary-color-text"> - Será útil para filtrar serviços por região e de acordo com a distância - para o local de realização do serviço. + Se você tem alguma habilidade e deseja receber solicitações para execução de serviços, então + nos informe suas especialidades. </h5> - <form method="post" action="cadastrar-se/passo-7"> - <div class="row spacing-buttons"> - <div class="row"> - <div class="center"> - <a id="btn-search-cep" class="waves-effect waves-light btn">Buscar CEP</a> - </div> - </div> - <div class="row"> - <div class="input-field col s8 offset-s2"> - <input id="postalCode" name="postalCode" type="text" placeholder="CEP" - class="validate"> - <label for="postalCode">CEP</label> - <span id="errorPostalCode" class="hide helper-text red-text darken-3"></span> - </div> - </div> - <div class="row"> - <div class="input-field col s8 offset-s2"> - <input id="number" name="number" type="text" placeholder="Número" - class="validate"> - <label for="number">Número</label> + <div class="row"> + <c:choose> + <c:when test="${empty professionalExpertises}"> + <div class="row center spacing-buttons"> + <div class="col s12 l4 offset-l4 spacing-buttons"> + <div class="none-profission"> + <h5 class="center">Nenhuma profissão foi selecionada!</h5> + </div> + </div> </div> - </div> - <div class="row"> - <div class="input-field col s8 offset-s2"> - <input id="street" name="street" type="text" placeholder="Rua" class="validate"> - <label for="street">Rua</label> - </div> - </div> - <div class="row"> - <div class="input-field col s8 offset-s2"> - <input id="neighborhood" name="neighborhood" type="text" placeholder="Bairro" - class="validate"> - <label for="neighborhood">Bairro</label> - </div> - </div> - <div class="row"> - <div class="input-field col s8 offset-s2"> - <input id="city" name="city" type="text" placeholder="Cidade" class="validate"> - <label for="city">Cidade</label> - </div> - </div> - <div class="row"> - <div class="input-field col s8 offset-s2"> - <input id="state" name="state" type="text" placeholder="Estado" - class="validate"> - <label for="state">Estado</label> + </c:when> + <c:otherwise> + <div class="col s12"> + <div class="row center expertises"> + <c:forEach var="professionalExpertise" items="${professionalExpertises}"> + <div class="col s12 m5 offset-m1 card-expertise-list row"> + <div class="col s2 delete-exerpertise expertise-icon"> + <i class="material-icons">work</i> + </div> + <div class="col s8"> + <p class="center"> + <strong> + ${professionalExpertise.name} + </strong> + </p> + </div> + + <div class="col s12 right"> + <p class="center"> + Descrição da especialidade + </p> + </div> + </div> + </c:forEach> + </div> </div> - </div> + </c:otherwise> + </c:choose> + + <div class="center spacing-buttons"> + + <button class="waves-effect waves-light btn"> + <a href="#modal-expertises" class="modal-trigger"> + Adicionar especialidade + </a> + </button> </div> + </div> + + <div class="row"> <div class="col s6 m3 offset-m3 spacing-buttons"> <div class="center"> - <a href="cadastrar-se?passo=6" class="waves-effect waves-light btn btn-gray"> + <a href="cadastrar-se?passo=7" class="waves-effect waves-light btn btn-gray"> Voltar </a> </div> </div> <div class="col s6 m3 spacing-buttons"> - <div class="center"> - <button type="submit" class="waves-effect waves-light btn">Próximo</button> + <form action="cadastrar-se/passo-8" method="post"> + <div class="center"> + <button type="submit" class="waves-effect waves-light btn">Fim</button> + </div> + </form> + </div> + </div> + </div> + </div> + </div> + + <div id="modal-expertises" class="modal"> + <div class="modal-content ui-front"> + <div class="row"> + <div class="col s9"> + <h4>Escolha uma ou mais especialidades!</h4> + </div> + <div class="col s3"> + <button class="modal-close modal-expertise-close right"> + <i class="material-icons">close</i> + </button> + </div> + </div> + + <div class="row"> + <div class="col s12"> + <div class="row"> + <div class="input-field col s12"> + <i class="material-icons prefix">work</i> + <input type="text" id="txtBusca" class="autocomplete"> + <label for="txtBusca">Selecione sua especialidade</label> </div> </div> + </div> + </div> + <div class="row"> + <form class="s12" id="form-expertises" action="cadastrar-se/passo-7" method="post"> + <ul id="search-expertises"> + <c:forEach var="expertise" items="${expertises}"> + <li> + <label class='card-expertise col s12 m10 offset-m1'> + <input id='ids' name='ids' type='checkbox' class='reset-checkbox' value="${expertise.id}"> + <span class='center name-expertise'> + <i class='material-icons'>work</i> + ${expertise.name} + </span> + </label> + </li> + </c:forEach> + </ul> + + <div class="input-field col s8 offset-s1"> + <button id="submit-expertise" type="submit" class="btn waves-effect waves-light left">Salvar</button> + </div> + <div class="input-field col s3"> + <a class="btn waves-effect waves-light modal-close">Fechar</a> + </div> </form> </div> + </div> </div> </main> </jsp:body> </t:template> - -<script src="assets/resources/scripts/cep-user-registration.js"></script> -<script src="assets/libraries/jquery.mask.js"></script> - <script> - $('#postalCode').mask('00000-000'); + $(function(){ + $("#txtBusca").keyup(function(){ + var texto = $(this).val(); + $("#search-expertises li").css("display", "block"); + $("#search-expertises li").each(function(){ + if($(this).text().toUpperCase().indexOf(texto.toUpperCase()) < 0) + $(this).css("display", "none"); + }); + }); + }); + $(".myclass").hover(function(e) { + $(this).css("color",e.type === "mouseenter"?"red":"grey") + }) </script> \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/view/visitor/user-registration/wizard-step-08.jsp b/src/main/webapp/WEB-INF/view/visitor/user-registration/wizard-step-08.jsp deleted file mode 100644 index 810d69ae..00000000 --- a/src/main/webapp/WEB-INF/view/visitor/user-registration/wizard-step-08.jsp +++ /dev/null @@ -1,170 +0,0 @@ -<%@page contentType="text/html" pageEncoding="UTF-8" %> -<%@taglib prefix="t" tagdir="/WEB-INF/tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<head> - <!-- Funciona apenas com caminho absoluto porque é renderizado antes da tag base --> - <link href="${pageContext.request.contextPath}/assets/resources/styles/visitor/visitor.css" rel="stylesheet"> -</head> - -<t:template title="Servicebook - Cadastro - Passo 8"> - <jsp:body> - - <main> - <div class="container"> - <c:if test="${not empty errors}"> - <div class="card-panel red"> - <c:forEach var="e" items="${errors}"> - <span class="white-text">${e.getDefaultMessage()}</span><br> - </c:forEach> - </div> - </c:if> - - <div class="section"> - <div class="row"> - <h3 class="row center secondary-color-text"> - Escolha uma especialidade! - </h3> - <h5 class="row center secondary-color-text"> - Se você tem alguma habilidade e deseja receber solicitações para execução de serviços, então - nos informe suas especialidades. - </h5> - - <div class="row"> - <c:choose> - <c:when test="${empty professionalExpertises}"> - <div class="row center spacing-buttons"> - <div class="col s12 l4 offset-l4 spacing-buttons"> - <div class="none-profission"> - <h5 class="center">Nenhuma profissão foi selecionada!</h5> - </div> - </div> - </div> - </c:when> - <c:otherwise> - <div class="col s12"> - <div class="row center expertises"> - <c:forEach var="professionalExpertise" items="${professionalExpertises}"> - <div class="col s12 m5 offset-m1 card-expertise-list row"> - <div class="col s2 delete-exerpertise expertise-icon"> - <i class="material-icons">work</i> - </div> - <div class="col s8"> - <p class="center"> - <strong> - ${professionalExpertise.name} - </strong> - </p> - </div> - - <div class="col s12 right"> - <p class="center"> - Descrição da especialidade - </p> - </div> - </div> - </c:forEach> - </div> - </div> - </c:otherwise> - </c:choose> - - <div class="center spacing-buttons"> - - <button class="waves-effect waves-light btn"> - <a href="#modal-expertises" class="modal-trigger"> - Adicionar especialidade - </a> - </button> - </div> - </div> - - <div class="row"> - <div class="col s6 m3 offset-m3 spacing-buttons"> - <div class="center"> - <a href="cadastrar-se?passo=7" class="waves-effect waves-light btn btn-gray"> - Voltar - </a> - </div> - </div> - <div class="col s6 m3 spacing-buttons"> - <form action="cadastrar-se/passo-9" method="post"> - <div class="center"> - <button type="submit" class="waves-effect waves-light btn">Fim</button> - </div> - </form> - </div> - </div> - </div> - </div> - </div> - - <div id="modal-expertises" class="modal"> - <div class="modal-content ui-front"> - <div class="row"> - <div class="col s9"> - <h4>Escolha uma ou mais especialidades!</h4> - </div> - <div class="col s3"> - <button class="modal-close modal-expertise-close right"> - <i class="material-icons">close</i> - </button> - </div> - </div> - - <div class="row"> - <div class="col s12"> - <div class="row"> - <div class="input-field col s12"> - <i class="material-icons prefix">work</i> - <input type="text" id="txtBusca" class="autocomplete"> - <label for="txtBusca">Selecione sua especialidade</label> - </div> - </div> - </div> - </div> - <div class="row"> - <form class="s12" id="form-expertises" action="cadastrar-se/passo-8" method="post"> - <ul id="search-expertises"> - <c:forEach var="expertise" items="${expertises}"> - <li> - <label class='card-expertise col s12 m10 offset-m1'> - <input id='ids' name='ids' type='checkbox' class='reset-checkbox' value="${expertise.id}"> - <span class='center name-expertise'> - <i class='material-icons'>work</i> - ${expertise.name} - </span> - </label> - </li> - </c:forEach> - </ul> - - <div class="input-field col s8 offset-s1"> - <button id="submit-expertise" type="submit" class="btn waves-effect waves-light left">Salvar</button> - </div> - <div class="input-field col s3"> - <a class="btn waves-effect waves-light modal-close">Fechar</a> - </div> - </form> - </div> - - </div> - </div> - </main> - - </jsp:body> -</t:template> -<script> - $(function(){ - $("#txtBusca").keyup(function(){ - var texto = $(this).val(); - $("#search-expertises li").css("display", "block"); - $("#search-expertises li").each(function(){ - if($(this).text().toUpperCase().indexOf(texto.toUpperCase()) < 0) - $(this).css("display", "none"); - }); - }); - }); - $(".myclass").hover(function(e) { - $(this).css("color",e.type === "mouseenter"?"red":"grey") - }) -</script> \ No newline at end of file From 5b499414f6296cabf93043c49410d41bc3fe866e Mon Sep 17 00:00:00 2001 From: taisHryssai <thryssai@gmail.com> Date: Mon, 23 Oct 2023 22:24:12 -0300 Subject: [PATCH 2/2] adjust user registration --- .../controller/UserRegisterController.java | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/main/java/br/edu/utfpr/servicebook/controller/UserRegisterController.java b/src/main/java/br/edu/utfpr/servicebook/controller/UserRegisterController.java index ea3b249c..1b164f83 100644 --- a/src/main/java/br/edu/utfpr/servicebook/controller/UserRegisterController.java +++ b/src/main/java/br/edu/utfpr/servicebook/controller/UserRegisterController.java @@ -198,19 +198,21 @@ private void resetSessionAttributes(HttpSession httpSession) { public String saveUserEmail( HttpSession httpSession, @Validated(UserDTO.RequestUserEmailInfoGroupValidation.class) IndividualDTO dto, - @Validated(UserDTO.RequestUserNameAndCPFInfoGroupValidation.class) IndividualDTO dtouser, + //@Validated(UserDTO.RequestUserNameAndCPFInfoGroupValidation.class) IndividualDTO dtouser, BindingResult errors, RedirectAttributes redirectAttributes, Model model ) throws MessagingException { - if (errors.hasErrors()) { - return this.userRegistrationErrorForwarding("1", dto, model, errors); + if (dto.getCpf().isEmpty()) { + errors.rejectValue("cpf", "error.dto", "Por favor, insira um CPF!"); } - if (errors.hasErrors()) { - return this.userRegistrationErrorForwarding("1", dtouser, model, errors); + + if (dto.getName().isEmpty()) { + errors.rejectValue("name", "error.dto", "Por favor, insira um Nome!"); } + String email = dto.getEmail().trim(); httpSession.setAttribute(UserWizardUtil.KEY_IS_REGISTER_COMPANY, false); @@ -221,10 +223,10 @@ public String saveUserEmail( errors.rejectValue("email", "error.dto", "Email já cadastrado! Por favor, insira um email não cadastrado."); } + if (errors.hasErrors()) { return this.userRegistrationErrorForwarding("1", dto, model, errors); } - //gera um código para validar o email no passo seguinte Optional<UserCode> oUserCode = userCodeService.findByEmail(email); String actualCode = ""; @@ -248,29 +250,26 @@ public String saveUserEmail( IndividualDTO userSessionDTO = null; userSessionDTO = (IndividualDTO) userWizardUtil.getWizardState(httpSession, IndividualDTO.class, UserWizardUtil.KEY_WIZARD_INDIVIDUAL); - if (!dtouser.getCpf().isEmpty()) { + if (!dto.getCpf().isEmpty()) { //verifica se o CPF já está cadastrado para algum outro usuário - Optional<Individual> oUserCpf = individualService.findByCpf(dtouser.getCpf()); + Optional<Individual> oUserCpf = individualService.findByCpf(dto.getCpf()); if (oUserCpf.isPresent()) { errors.rejectValue("cpf", "error.dto", "CPF já cadastrado! Por favor, insira um CPF não cadastrado."); } if (errors.hasErrors()) { - return this.userRegistrationErrorForwarding("1", dtouser, model, errors); + return this.userRegistrationErrorForwarding("1", dto, model, errors); } - userSessionDTO.setCpf(dtouser.getCpf()); + userSessionDTO.setCpf(dto.getCpf()); } - System.out.println("userSessionDTO"); - System.out.println(dtouser.getCpf()); - userSessionDTO.setProfile(ProfileEnum.ROLE_USER); userSessionDTO.setEmail(email); //salva na sessão - userSessionDTO.setName(dtouser.getName()); - userSessionDTO.setCpf(dtouser.getCpf()); + userSessionDTO.setName(dto.getName()); + userSessionDTO.setCpf(dto.getCpf()); userSessionDTO.setProfileVerified(true); return "redirect:/cadastrar-se?passo=2"; } @@ -294,17 +293,18 @@ public String saveUserEmail( public String saveUserEmail( HttpSession httpSession, @Validated(UserDTO.RequestUserEmailInfoGroupValidation.class) CompanyDTO dto, - @Validated(UserDTO.RequestUserNameAndCNPJInfoGroupValidation.class) CompanyDTO dtocompany, BindingResult errors, RedirectAttributes redirectAttributes, Model model ) throws MessagingException { - if (errors.hasErrors()) { - return this.userRegistrationErrorForwarding("1", dto, model, errors); + + if (dto.getCnpj().isEmpty()) { + errors.rejectValue("cnpj", "error.dto", "Por favor, insira um CNPJ!"); } - if (errors.hasErrors()) { - return this.userRegistrationErrorForwarding("1", dtocompany, model, errors); + + if (dto.getName().isEmpty()) { + errors.rejectValue("name", "error.dto", "Por favor, insira um Nome!"); } String email = dto.getEmail().trim(); httpSession.setAttribute(UserWizardUtil.KEY_IS_REGISTER_COMPANY, true); @@ -351,14 +351,14 @@ public String saveUserEmail( CompanyDTO companySessionDTO = (CompanyDTO) userWizardUtil.getWizardState(httpSession, CompanyDTO.class, UserWizardUtil.KEY_WIZARD_COMPANY); //verifica se o CPF já está cadastrado para algum outro usuário - Optional<Company> oUserCnpj = companyService.findByCnpj(dtocompany.getCnpj()); + Optional<Company> oUserCnpj = companyService.findByCnpj(dto.getCnpj()); if (oUserCnpj.isPresent()) { errors.rejectValue("cnpj", "error.dto", "CNPJ já cadastrado! Por favor, insira um CNPJ não cadastrado."); } if (errors.hasErrors()) { - return this.userRegistrationErrorForwarding("1", dtocompany, model, errors); + return this.userRegistrationErrorForwarding("1", dto, model, errors); } companySessionDTO.setName(dto.getName().trim());