package gcom.gui.cadastro.localidade;
import gcom.cadastro.cliente.Cliente;
import gcom.cadastro.cliente.FiltroCliente;
import gcom.cadastro.localidade.FiltroGerenciaRegional;
import gcom.cadastro.localidade.FiltroUnidadeNegocio;
import gcom.cadastro.localidade.GerenciaRegional;
import gcom.cadastro.localidade.UnidadeNegocio;
import gcom.fachada.Fachada;
import gcom.gui.GcomAction;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.util.Collection;
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;
/**
* [UC0???]Manter Unidade Negocio
*
* @author R�mulo Aur�lio
* @date 30/09/2008
*/
public class ExibirAtualizarUnidadeNegocioAction extends GcomAction {
/**
* M�todo responsavel por responder a requisicao
*
* @param actionMapping
* Descri��o do par�metro
* @param actionForm
* Descri��o do par�metro
* @param httpServletRequest
* Descri��o do par�metro
* @param httpServletResponse
* Descri��o do par�metro
* @return Descri��o do retorno
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping
.findForward("unidadeNegocioAtualizar");
AtualizarUnidadeNegocioActionForm form = (AtualizarUnidadeNegocioActionForm) actionForm;
Fachada fachada = Fachada.getInstancia();
HttpSession sessao = httpServletRequest.getSession(false);
String id = null;
String idCliente = form.getIdCliente();
if (idCliente == null ) {
idCliente = "";
}
String idGerenciaRegional = form.getIdGerenciaRegional();
if (idGerenciaRegional == null ) {
idGerenciaRegional = "";
}
if (idCliente != null && !idCliente.trim().equals("")) {
// Pesquisa o cliente na base
FiltroCliente filtroCliente = new FiltroCliente();
filtroCliente.adicionarParametro(new ParametroSimples(
FiltroCliente.ID, idCliente));
Collection colecaoCliente = fachada.pesquisar(filtroCliente,
Cliente.class.getName());
if (colecaoCliente != null && !colecaoCliente.isEmpty()) {
Cliente cliente = (Cliente) colecaoCliente.iterator().next();
form.setIdCliente(cliente.getId().toString());
form.setNomeCliente(cliente.getNome());
} else {
form.setIdCliente("");
form.setNomeCliente("Cliente inexistente");
httpServletRequest.setAttribute("corCliente", "exception");
httpServletRequest.setAttribute("nomeCampo", "idCliente");
}
}
if (idGerenciaRegional != null && !idGerenciaRegional.trim().equals("")) {
// Pesquisa o cliente na base
FiltroGerenciaRegional filtroGerenciaRegional = new FiltroGerenciaRegional();
filtroGerenciaRegional.adicionarParametro(new ParametroSimples(
FiltroGerenciaRegional.ID, idGerenciaRegional));
Collection colecaoGerenciaRegional = fachada.pesquisar(
filtroGerenciaRegional, GerenciaRegional.class.getName());
if (colecaoGerenciaRegional != null
&& !colecaoGerenciaRegional.isEmpty()) {
GerenciaRegional gerenciaRegional = (GerenciaRegional) colecaoGerenciaRegional
.iterator().next();
form.setIdGerenciaRegional(gerenciaRegional.getId().toString());
form.setNomeGerenciaRegional(gerenciaRegional.getNome());
} else {
form.setIdGerenciaRegional("");
form.setNomeGerenciaRegional("Ger�ncia Regional inexistente");
httpServletRequest.setAttribute("corGerenciaRegional",
"exception");
httpServletRequest.setAttribute("nomeCampo",
"idGerenciaRegional");
}
}
if (httpServletRequest.getParameter("idRegistroAtualizacao") != null) {
id = httpServletRequest.getParameter("idRegistroAtualizacao");
UnidadeNegocio unidadeNegocio = new UnidadeNegocio();
unidadeNegocio.setId(new Integer(id));
sessao.setAttribute("unidadeNegocio", unidadeNegocio);
} else {
id = ((UnidadeNegocio) sessao.getAttribute("unidadeNegocio"))
.getId().toString();
}
if (httpServletRequest.getParameter("manter") != null) {
sessao.setAttribute("manter", true);
} else if (httpServletRequest.getParameter("filtrar") != null) {
sessao.removeAttribute("manter");
}
if (id == null) {
if (httpServletRequest.getAttribute("idRegistroAtualizacao") == null) {
id = (String) sessao.getAttribute("idRegistroAtualizacao");
} else {
id = (String) httpServletRequest.getAttribute(
"idRegistroAtualizacao").toString();
}
} else {
sessao.setAttribute("i", true);
}
UnidadeNegocio unidadeNegocio = new UnidadeNegocio();
if (id != null && !id.trim().equals("") && Integer.parseInt(id) > 0) {
FiltroUnidadeNegocio filtroUnidadeNegocio = new FiltroUnidadeNegocio();
filtroUnidadeNegocio.adicionarParametro(new ParametroSimples(
FiltroUnidadeNegocio.ID, id));
filtroUnidadeNegocio
.adicionarCaminhoParaCarregamentoEntidade(FiltroUnidadeNegocio.CLIENTE);
filtroUnidadeNegocio
.adicionarCaminhoParaCarregamentoEntidade(FiltroUnidadeNegocio.GERENCIA);
Collection colecaoUnidadeNegocio = fachada.pesquisar(
filtroUnidadeNegocio, UnidadeNegocio.class.getName());
if (colecaoUnidadeNegocio != null
&& !colecaoUnidadeNegocio.isEmpty()) {
unidadeNegocio = (UnidadeNegocio) Util
.retonarObjetoDeColecao(colecaoUnidadeNegocio);
}
if ( idCliente.equals("") || unidadeNegocio.getCliente() != null && idCliente == ""+ unidadeNegocio.getCliente().getId()) {
if ( idGerenciaRegional.equals("") || unidadeNegocio.getCliente() != null && idGerenciaRegional == ""+ unidadeNegocio.getGerenciaRegional().getId()) {
if (id == null || id.trim().equals("")) {
form.setId(unidadeNegocio.getId().toString());
form.setNome(unidadeNegocio.getNome());
form.setNomeAbreviado(unidadeNegocio.getNomeAbreviado());
if (unidadeNegocio.getCliente() != null) {
form.setIdCliente(unidadeNegocio.getCliente().getId()
.toString());
form.setNomeCliente(unidadeNegocio.getCliente().getNome());
}
form.setIdGerenciaRegional(unidadeNegocio.getGerenciaRegional()
.getId().toString());
form.setNomeGerenciaRegional(unidadeNegocio
.getGerenciaRegional().getNome());
form.setIndicadorUso(unidadeNegocio.getIndicadorUso()
.toString());
if (unidadeNegocio.getCnpj() != null) {
form.setNumeroCnpj(unidadeNegocio.getCnpj());
} else {
form.setNumeroCnpj("");
}
}
form.setId(unidadeNegocio.getId().toString());
form.setNome(unidadeNegocio.getNome());
form.setNomeAbreviado(unidadeNegocio.getNomeAbreviado());
if (unidadeNegocio.getCliente() != null) {
form.setIdCliente(unidadeNegocio.getCliente().getId()
.toString());
form.setNomeCliente(unidadeNegocio.getCliente().getNome());
}
form.setIdGerenciaRegional(unidadeNegocio.getGerenciaRegional()
.getId().toString());
form.setNomeGerenciaRegional(unidadeNegocio.getGerenciaRegional()
.getNome());
form.setIndicadorUso(unidadeNegocio.getIndicadorUso().toString());
if (unidadeNegocio.getCnpj() != null) {
form.setNumeroCnpj(unidadeNegocio.getCnpj());
} else {
form.setNumeroCnpj("");
}
sessao.setAttribute("atualizarUnidadeNegocio", unidadeNegocio);
if (sessao.getAttribute("colecaoUnidadeNegocio") != null) {
sessao.setAttribute("caminhoRetornoVoltar",
"/gsan/filtrarUnidadeNegocioAction.do");
} else {
sessao.setAttribute("caminhoRetornoVoltar",
"/gsan/exibirFiltrarUnidadeNegocioAction.do");
}
}
}
}
if ( httpServletRequest.getParameter("desfazer") != null &&
httpServletRequest.getParameter("desfazer").equals("S") ) {
form.setId(unidadeNegocio.getId().toString());
form.setNome(unidadeNegocio.getNome());
form.setNomeAbreviado(unidadeNegocio.getNomeAbreviado());
if (unidadeNegocio.getCliente() != null) {
form.setIdCliente(unidadeNegocio.getCliente().getId()
.toString());
form.setNomeCliente(unidadeNegocio.getCliente().getNome());
}
form.setIdGerenciaRegional(unidadeNegocio.getGerenciaRegional()
.getId().toString());
form.setNomeGerenciaRegional(unidadeNegocio.getGerenciaRegional()
.getNome());
form.setIndicadorUso(unidadeNegocio.getIndicadorUso().toString());
if (unidadeNegocio.getCnpj() != null) {
form.setNumeroCnpj(unidadeNegocio.getCnpj());
} else {
form.setNumeroCnpj("");
}
}
return retorno;
}
}