package gcom.gui.atendimentopublico.ordemservico;
import gcom.atendimentopublico.ordemservico.Material;
import gcom.atendimentopublico.ordemservico.MaterialUnidade;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.util.Util;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
/**
* [UC0383] MANTER TIPO MATERIAL
* [SB0001] Atualizar Material
*
* @author K�ssia Albuquerque
* @date 17/11/2006
*/
public class AtualizarMaterialAction extends GcomAction{
public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping.findForward("telaSucesso");
AtualizarMaterialActionForm atualizarMaterialActionForm = (AtualizarMaterialActionForm) actionForm;
Fachada fachada = Fachada.getInstancia();
HttpSession sessao = httpServletRequest.getSession(false);
Usuario usuarioLogado = (Usuario) sessao.getAttribute("usuarioLogado");
if(validarCampos(atualizarMaterialActionForm)){
Material material = new Material();
material.setId(Integer.valueOf(atualizarMaterialActionForm.getId()));
if(Util.verificarIdNaoVazio(atualizarMaterialActionForm.getCodigo())){
try{
material.setCodigo(Integer.valueOf(atualizarMaterialActionForm.getCodigo()));
}catch (NumberFormatException e) {
throw new ActionServletException("atencao.codigo_formato_invalido");
}
}
material.setId(new Integer(atualizarMaterialActionForm.getId()));
material.setDescricao(atualizarMaterialActionForm.getDescricaoMaterial());
material.setDescricaoAbreviada(atualizarMaterialActionForm.getAbrevMaterial());
MaterialUnidade materialUnidade = new MaterialUnidade();
materialUnidade.setId(Integer.valueOf(atualizarMaterialActionForm.getUnidadeMaterial()));
material.setMaterialUnidade(materialUnidade);
material.setIndicadorUso(new Short(atualizarMaterialActionForm.getIndicadorUso()));
//atualiza na base de dados Material
fachada.atualizarMaterial(material, usuarioLogado);
}else{
throw new ActionServletException("atencao.parametros.obrigatorios.nao.selecionados");
}
//[FS0004]Verificar Sucesso da Atualiza��o
//Monta a p�gina de sucesso
montarPaginaSucesso(httpServletRequest, "Material "+ atualizarMaterialActionForm.getDescricaoMaterial() +
" atualizado com sucesso.", "Realizar outra Manuten��o do Material",
"exibirFiltrarMaterialAction.do?menu=sim");
return retorno;
}
//[FS0003] Verificar Preenchimento dos campos
private boolean validarCampos(AtualizarMaterialActionForm form){
boolean valido = false;
if(Util.verificarIdNaoVazio(form.getId()) && Util.verificarNaoVazio(form.getDescricaoMaterial()) &&
Util.verificarNaoVazio(form.getIndicadorUso()) && Util.verificarIdNaoVazio(form.getUnidadeMaterial())){
valido = true;
}
return valido;
}
}