String id = _form.getString("idSolucao");
String lVigencia = _form.getString("txtDatVigencia");
String lHoraVigencia = _form.getString("txtHoraVigencia");
try {
SolucaoCtrl ctrlSolucao = new SolucaoCtrl(getDaoFactory());
// Verifica se foi passado o id do script
if (id != null) {
Solucao solucao = ctrlSolucao.get(new Long(id));
// Se não encontrou a solucao, reporta o erro
if (solucao == null) {
errorMsgs.add(ActionMessages.GLOBAL_MESSAGE,
new ActionMessage("error.solucao.notFound"));
saveMessages(request, errorMsgs);
} else {
// Altera os dados
solucao.setTexto(lTexto);
solucao.setTitulo(lTitulo);
if ((lVigencia != null) && (!lVigencia.equals(""))) {
// Trata a vigência
String lVigenciaFormatada = lVigencia.substring(6)
+ "-" + lVigencia.substring(3, 5) + "-"
+ lVigencia.substring(0, 2) + " "
+ lHoraVigencia + ":00.000000000";
Timestamp vigencia = Timestamp
.valueOf(lVigenciaFormatada);
solucao.setDataVigencia(vigencia);
} else {
solucao.setDataVigencia(null);
}
// Recupera Assunto
AssuntoCtrl ctrlAssnt = new AssuntoCtrl(getDaoFactory());
Assunto assunto = ctrlAssnt.get(new Long(lAssunto));
solucao.setAssunto(assunto);
// Seta o status da solucao para Pendente
EstadoSolucao estado=new EstadoSolucao(EstadoSolucao.PENDENTE.getId(),
EstadoSolucao.PENDENTE.getDescricao());
solucao.setEstado(estado);
// Salva a solucao
ctrlSolucao.save(solucao);
}
// Passa através da requisição a solução escolhida
// e a ação chamadora, caso exista
request.setAttribute("Solucao", solucao);