toolbarnewsavereturn
Last updated
Was this helpful?
Last updated
Was this helpful?
Genera los botones new, save, return.
Generalmente lo usamos con formularios donde no validamos por un campo en especial si no solamente al guardar
El <jmoordbjsf:toolbarnewsavereturn/>, se coloca en la parte inferior.
El método isNew() no valida si existe o no el elemento ya que no hay una búsqueda sino al guardar
el método save() debe implementarse la validaciòn para verificar si existe o no.
En el init() en el switch para new se debe invocar el isNew()
<jmoordbjsf:toolbarnewsavereturn
renderedNew ="#{applicationMenu.solicitudDocentePorAdministrador.create}"
rendererList="#{applicationMenu.solicitudDocentePorAdministrador.list}"
renderedSave="#{applicationMenu.solicitudDocentePorAdministrador.create}"
controller="#{solicitudController}"
entity="#{solicitudController.solicitud}"
repository="#{solicitudController.solicitudRepository}"
/>
case "gonew":
solicitud = new Solicitud();
writable = false;
isNew();
Método init() simplificado se elimino parte del código y solo se incluyo la sección que cambia case "gonew"
@PostConstruct
public void init() {
try {
if (action != null) {
switch (action) {
case "gonew":
solicitud = new Solicitud();
writable = false;
isNew();
//
break;
case "view":
break;
case "golist":
}
} else {
move();
}
} catch (Exception e) {
errorServices.errorMessage(nameOfClass(), nameOfMethod(), e.getLocalizedMessage());
}
}
No validar si existe o no un registro
public String isNew() {
try {
writable = true;
Date idsecond = solicitud.getFecha();
Integer id = solicitud.getIdsolicitud();
// List<Solicitud> list = solicitudRepository.findBy(new Document("usuario.username", loginController.getUsuario().getUsername()).append("fecha", solicitud.getFecha()));
// if (!list.isEmpty()) {
// JsfUtil.warningDialog(rf.getAppMessage("warning.view"), rf.getMessage("warning.yasolicitoviajeenestafecha"));
// }
// if (DateUtil.fechaMenor(solicitud.getFecha(), DateUtil.getFechaActual())) {
// JsfUtil.warningDialog(rf.getAppMessage("warning.view"), rf.getMessage("warning.fechasolicitudmenorqueactual"));
// writable = false;
//
// }
solicitud = new Solicitud();
solicitudSelected = new Solicitud();
solicitud.setIdsolicitud(id);
solicitud.setFecha(idsecond);
solicitud.setMision("---");
solicitud.setNumerodevehiculos(1);
solicitud.setPasajeros(25);
solicitud.setLugarpartida("UTP-AZUERO");
solicitud.setFechaestatus(DateUtil.getFechaHoraActual());
solicita = loginController.getUsuario();
responsable = solicita;
responsableOld = responsable;
usuarioList = new ArrayList<>();
usuarioList.add(solicita);
usuarioList.add(responsable);
solicitud.setUsuario(usuarioList);
solicitud.setPeriodoacademico(DateUtil.getAnioActual().toString());
solicitud.setFechahorapartida(solicitud.getFecha());
solicitud.setFechahoraregreso(solicitud.getFecha());
unidadList = new ArrayList<>();
unidadList.add(loginController.getUsuario().getUnidad());
Integer mes = DateUtil.mesDeUnaFecha(solicitud.getFecha());
String idsemestre = "V";
if (mes <= 3) {
//verano
idsemestre = "V";
} else {
if (mes <= 7) {
//primer
idsemestre = "I";
} else {
//segundo
idsemestre = "II";
}
}
solicitud.setSemestre(semestreServices.findById(idsemestre));
List<Tipovehiculo> tipovehiculoList = new ArrayList<>();
tipovehiculoList.add(tipovehiculoServices.findById("BUS"));
solicitud.setTipovehiculo(tipovehiculoList);
solicitud.setEstatus(estatusServices.findById("SOLICITADO"));
String textsearch = "DOCENTE";
solicitud.setTiposolicitud(tiposolicitudServices.findById(textsearch));
solicitudSelected = solicitud;
} catch (Exception e) {
errorServices.errorMessage(nameOfClass(), nameOfMethod(), e.getLocalizedMessage());
}
return "";
}
Incluir la validación de si existe o no.
Recuerde que no es necesario implementarlo en el Controller el método save ya que esta en el composite
O la validación que se considere necesaria
@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 "";
}
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html>
<ui:composition template="/layout/template.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:b="http://bootsfaces.net/ui"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:e="http://xmlns.jcp.org/jsf/composite/extensions"
xmlns:jmoordbjsf="http://jmoordbjsf.com/taglib">
<ui:define name="content">
<!--<h:outputStylesheet library="bsf" name="css/thumbnails.css"/>-->
<style>
.thumbnail { max-width: 100%; }
img.thumbnail:hover, img.thumbnail:focus {
border: 1px solid;
border-color: #428BCA;
}
</style>
<b:form id="form" prependId="false" rendered="#{loginController.loggedIn and applicationMenu.solicitudDocentePorAdministrador.create}" onkeypress="if (event.keyCode == 13) {
return false;
}">
<h:panelGroup id="content" layout="block">
<jmoordbjsf:messages id="msg"/>
<b:panel title="#{msg['titleview.solicitudmanualdocente']}" look="primary" >
<b:panelGrid id="panel" colSpans="2,10" size="xs" >
<p:outputLabel value="#{msg['field.lugarllegada']}" />
<jmoordbjsf:inputText span="8" value="#{solicitudManualDocenteController.solicitud.lugarllegada}" id="lugarllegada" label="#{msg['field.lugarllegada']}" />
<p:outputLabel value="#{msg['field.recursossolicitados']}" />
<p:chips value="#{solicitudManualDocenteController.solicitud.recursossolicitados}" id="recursossolicitados" title="#{msg['field.chips']}" />
<p:outputLabel value="#{msg['field.observaciones']}" />
<b:inputTextarea rows="2" span="8" value="#{solicitudManualDocenteController.solicitud.observaciones}" id="observaciones" label="#{msg['field.observaciones']}" />
<p:outputLabel value="#{msg['field.sugerencia']}" style="font-size: 25;" />
<b:dataTable value="#{sugerenciaController.sugerenciaDataModel}"
var="item"
id="dataTable2"
paginated="false"
onpage="console.log('page');">
<b:dataTableColumn value="#{item.descripcion}" label="#{msg['field.descripcion']}"/>
</b:dataTable>
<jmoordbjsf:toolbarnewsavereturn
renderedNew ="#{applicationMenu.solicitudDocentePorAdministrador.create}"
rendererList="#{applicationMenu.solicitudDocentePorAdministrador.list}"
renderedSave="#{applicationMenu.solicitudDocentePorAdministrador.create}"
controller="#{solicitudManualDocenteController}"
entity="#{solicitudManualDocenteController.solicitud}"
repository="#{solicitudManualDocenteController.solicitudRepository}"
/>
</b:panelGrid>
</b:panel>
</h:panelGroup>
</b:form>
<jmoordbjsf:denegado renderedcondition="#{!loginController.loggedIn or !applicationMenu.solicitudDocentePorAdministrador.create}" />
<br/><br/><br/>
</ui:define>
</ui:composition>