package gcom.gui.cadastro.localidade;
import gcom.cadastro.cliente.Cliente;
import gcom.cadastro.cliente.FiltroCliente;
import gcom.cadastro.localidade.FiltroGerenciaRegional;
import gcom.cadastro.localidade.GerenciaRegional;
import gcom.cadastro.localidade.UnidadeNegocio;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.util.ConstantesSistema;
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;
/**
* @author R�mulo Aur�lio
* @created 29/09/2008
*/
public class InserirUnidadeNegocioAction extends GcomAction {
/**
* Description of the Method
*
* @param actionMapping
* Description of the Parameter
* @param actionForm
* Description of the Parameter
* @param httpServletRequest
* Description of the Parameter
* @param httpServletResponse
* Description of the Parameter
* @return Description of the Return Value
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
HttpSession sessao = httpServletRequest.getSession(false);
// Seta o retorno
ActionForward retorno = actionMapping.findForward("telaSucesso");
InserirUnidadeNegocioActionForm form = (InserirUnidadeNegocioActionForm) actionForm;
Usuario usuarioLogado = (Usuario) sessao.getAttribute("usuarioLogado");
Fachada fachada = Fachada.getInstancia();
String nome = form.getNome();
String nomeAbreviado = form.getNomeAbreviado();
String numeroCnpj = form.getNumeroCnpj();
String idCliente = form.getIdCliente();
String idGerenciaRegional = form.getIdGerenciaRegional();
UnidadeNegocio unidadeNegocio = new UnidadeNegocio();
// Nome
if (nome != null && !nome.equals("")) {
unidadeNegocio.setNome(nome);
}
// Nome Abreviado
if (nomeAbreviado != null && !nomeAbreviado.equals("")) {
unidadeNegocio.setNomeAbreviado(nomeAbreviado);
}
// Cliente
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();
Integer clienteFuncionario = fachada.verificarClienteSelecionadoFuncionario(new Integer(idCliente));
if(clienteFuncionario == null){
throw new ActionServletException("atencao.cliente_selecionado_nao_e_funcionario");
}
unidadeNegocio.setCliente(cliente);
} else {
throw new ActionServletException("atencao.cliente.inexistente");
}
}
// Gerencia Regional
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();
unidadeNegocio.setGerenciaRegional(gerenciaRegional);
} else {
throw new ActionServletException(
"atencao.gerenciaRegional_inexistente");
}
}
// Cnpj
if (numeroCnpj != null && !numeroCnpj.equals("")) {
unidadeNegocio.setCnpj(numeroCnpj);
}
// Indicador de Uso
unidadeNegocio.setIndicadorUso(ConstantesSistema.INDICADOR_USO_ATIVO);
Integer idUnidadeNegocio = fachada.inserirUnidadeNegocio(
unidadeNegocio, usuarioLogado);
montarPaginaSucesso(httpServletRequest,
"Unidade de Neg�cio de c�digo " + idUnidadeNegocio
+ " inserida com sucesso.",
"Inserir outra Unidade de Neg�cio",
"exibirInserirUnidadeNeg�cioAction.do?menu=sim",
"exibirAtualizarUnidadeNegocioAction.do?idRegistroAtualizacao="
+ idUnidadeNegocio,
"Atualizar Unidade de Neg�cio Inserida");
return retorno;
}
}