@Override
public ActionForward continueCandidacyCreation(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws IOException {
IndividualCandidacyProcessBean bean = getIndividualCandidacyProcessBean();
final PersonBean personBean = bean.getPersonBean();
if (existsIndividualCandidacyProcessForDocumentId(request, personBean.getIdDocumentType(),
personBean.getDocumentIdNumber())) {
addActionMessage("individualCandidacyMessages", request, "error.candidacy.for.person.already.exists");
return executeCreateCandidacyPersonalInformationInvalid(mapping, form, request, response);
}
final Set<Person> persons = new HashSet<Person>(Person.readByDocumentIdNumber(personBean.getDocumentIdNumber()));
if (persons.size() > 1) {
addActionMessage("individualCandidacyMessages", request, getProcessType().getSimpleName()
+ ".error.public.candidacies.fill.personal.information.and.institution.person.already.exist");
return executeCreateCandidacyPersonalInformationInvalid(mapping, form, request, response);
}
final Person person = persons.size() == 1 ? persons.iterator().next() : null;
// check if person already exists
if (person != null) {
if (isPersonStudentAndNumberIsCorrect(person, bean.getPersonNumber())) {
if (!person.getDateOfBirthYearMonthDay().equals(personBean.getDateOfBirth())) {
// found person with diff date
addActionMessage("individualCandidacyMessages", request, getProcessType().getSimpleName()
+ ".error.public.candidacies.fill.personal.information.and.institution.id.birth");
return executeCreateCandidacyPersonalInformationInvalid(mapping, form, request, response);
} else if (!StringUtils.isEmpty(personBean.getSocialSecurityNumber())
&& !StringUtils.isEmpty(person.getSocialSecurityNumber())
&& !person.getSocialSecurityNumber().equals(personBean.getSocialSecurityNumber())) {
// found person with diff social security number
addActionMessage("individualCandidacyMessages", request, getProcessType().getSimpleName()
+ ".error.public.candidacies.fill.personal.information.and.institution.id.contributorNumber");
return executeCreateCandidacyPersonalInformationInvalid(mapping, form, request, response);
} else {
personBean.setPerson(person);
}
} else {
// found person with diff ist userid
addActionMessage("individualCandidacyMessages", request, getProcessType().getSimpleName()
+ ".error.public.candidacies.fill.personal.information.and.institution.id.userId");
return executeCreateCandidacyPersonalInformationInvalid(mapping, form, request, response);
}
} else {
if (Person.readByContributorNumber(personBean.getSocialSecurityNumber()) != null) {
// found person with same contributor number
addActionMessage("individualCandidacyMessages", request, getProcessType().getSimpleName()
+ ".error.public.candidacies.fill.personal.information.and.institution.id.contributorNumber");
return executeCreateCandidacyPersonalInformationInvalid(mapping, form, request, response);
}