@Override
public String save() {
try {
List<Solicitud> list = solicitudRepository.findBy(new Document("usuario.username", loginController.getUsuario().getUsername()).append("fecha", solicitud.getFechahorapartida()));
if (!list.isEmpty()) {
JsfUtil.warningDialog(rf.getAppMessage("warning.view"), rf.getMessage("warning.yasolicitoviajeenestafecha"));
}
if (DateUtil.fechaMenor(solicitud.getFechahorapartida(), DateUtil.getFechaActual())) {
JsfUtil.warningDialog(rf.getAppMessage("warning.view"), rf.getMessage("warning.fechasolicitudmenorqueactual"));
return "";
}
//Lo datos del usuario
solicitud.setUserInfo(userInfoServices.generateListUserinfo(loginController.getUsername(), "create"));
if (solicitudRepository.save(solicitud)) {
//guarda el contenido anterior
revisionHistoryTransporteejbRepository.save(revisionHistoryServices.getRevisionHistory(solicitud.getIdsolicitud().toString(), loginController.getUsername(),
"create", "solicitud", solicitudRepository.toDocument(solicitud).toString()));
//enviarEmails();
//si cambia el email o celular del responsable actualizar ese usuario
if (!responsableOld.getEmail().equals(responsable.getEmail()) || !responsableOld.getCelular().equals(responsable.getCelular())) {
usuarioRepository.update(responsable);
//actuliza el que esta en el login
if (responsable.getUsername().equals(loginController.getUsuario().getUsername())) {
loginController.setUsuario(responsable);
}
}
// JsfUtil.successMessage(rf.getAppMessage("info.save"));
// reset();
} else {
JsfUtil.successMessage("save() " + solicitudRepository.getException().toString());
}
//Asigna la solicitud padre para las demas solicitudes
if (index.equals(0)) {
solicitud.setSolicitudpadre(solicitud.getIdsolicitud());
}
}
JsfUtil.successMessage(rf.getMessage("info.savesolicitudes") + " : " + solicitudesGuardadas.toString() + " " + rf.getMessage("info.solicitudesde") + solicitud.getNumerodevehiculos());
reset();
} catch (Exception e) {
errorServices.errorMessage(nameOfClass(), nameOfMethod(), e.getLocalizedMessage());
}
return "";
}