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.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.seguranca.acesso.Operacao;
import gcom.seguranca.acesso.OperacaoEfetuada;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.util.Collection;
import java.util.Date;
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;
public class InserirGerenciaRegionalAction extends GcomAction {
/**
* Este caso de uso permite inserir uma Ag�ncia Banc�ria
*
* [UC0515] Inserir Ag�ncia Banc�ria
*
* @param actionMapping
* @param actionForm
* @param httpServletRequest
* @param httpServletResponse
* @return
* @author Thiago Ten�rio
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Seta o retorno
ActionForward retorno = actionMapping.findForward("telaSucesso");
// Obt�m a inst�ncia da fachada
Fachada fachada = Fachada.getInstancia();
// Obt�m a sess�o
HttpSession sessao = httpServletRequest.getSession(false);
InserirGerenciaRegionalActionForm inserirGerenciaRegionalActionForm = (InserirGerenciaRegionalActionForm) actionForm;
Operacao operacao = new Operacao();
operacao.setId(Operacao.OPERACAO_AGENCIA_BANCARIA_INSERIR);
OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada();
operacaoEfetuada.setOperacao(operacao);
// ------------ REGISTRAR TRANSA��O ----------------
String nome = inserirGerenciaRegionalActionForm.getNome();
String nomeAbreviado = inserirGerenciaRegionalActionForm
.getNomeAbreviado();
Collection colecaoEnderecos = (Collection) sessao
.getAttribute("colecaoEnderecos");
String telefone = inserirGerenciaRegionalActionForm.getTelefone();
String ramal = inserirGerenciaRegionalActionForm.getRamal();
String fax = inserirGerenciaRegionalActionForm.getFax();
String email = inserirGerenciaRegionalActionForm.getEmail();
String idCliente = inserirGerenciaRegionalActionForm.getIdCliente();
String cnpjGerenciaRegional = inserirGerenciaRegionalActionForm.getCnpjGerenciaRegional();
GerenciaRegional gerenciaRegionalInserir = new GerenciaRegional();
Collection colecaoPesquisa = null;
sessao.removeAttribute("tipoPesquisaRetorno");
if (colecaoEnderecos != null && !colecaoEnderecos.isEmpty()) {
gerenciaRegionalInserir = (GerenciaRegional) Util
.retonarObjetoDeColecao(colecaoEnderecos);
gerenciaRegionalInserir.setLogradouroCep(gerenciaRegionalInserir
.getLogradouroCep());
gerenciaRegionalInserir.setLogradouroBairro(gerenciaRegionalInserir
.getLogradouroBairro());
gerenciaRegionalInserir.setComplementoEndereco(gerenciaRegionalInserir
.getComplementoEndereco());
gerenciaRegionalInserir.setNumeroImovel(gerenciaRegionalInserir
.getNumeroImovel());
gerenciaRegionalInserir.setEnderecoReferencia(gerenciaRegionalInserir
.getEnderecoReferencia());
gerenciaRegionalInserir.setIndicadorUso(gerenciaRegionalInserir
.getIndicadorUso());
}
gerenciaRegionalInserir.setNome(nome);
gerenciaRegionalInserir.setNomeAbreviado(nomeAbreviado);
// O Endere�o � obrigat�rio.
if (colecaoEnderecos == null || colecaoEnderecos.equals("")) {
throw new ActionServletException("atencao.required", null,
"Endere�o ");
}
// O nome da Ag�ncia Bancaria � obrigat�rio.
if (nomeAbreviado == null || nomeAbreviado.equalsIgnoreCase("")) {
throw new ActionServletException("atencao.required", null,
"Nome da Ag�ncia Banc�ria");
}
gerenciaRegionalInserir.setNome(nome);
gerenciaRegionalInserir.setNomeAbreviado(nomeAbreviado);
// O telefone � obrigat�rio caso o ramal tenha sido informado.
if (ramal != null && !ramal.equalsIgnoreCase("")) {
gerenciaRegionalInserir.setRamalFone(ramal);
if (telefone == null || telefone.equalsIgnoreCase("")) {
throw new ActionServletException(
"atencao.telefone_gerencia_regional_nao_informado");
} else if (telefone.length() < 7) {
throw new ActionServletException(
"atencao.telefone_ou_fax_gerencia_regional_menor_sete_digitos",
null, "Telefone");
}
}
// O telefone � obrigat�rio caso o ramal tenha sido informado.
if (ramal != null && !ramal.equalsIgnoreCase("")) {
gerenciaRegionalInserir.setRamalFone(ramal);
if (telefone == null || telefone.equalsIgnoreCase("")) {
throw new ActionServletException(
"atencao.telefone_gerencia_regional_nao_informado");
} else if (telefone.length() < 7) {
throw new ActionServletException(
"atencao.telefone_ou_fax_gerencia_regional_menor_sete_digitos",
null, "Telefone");
}
}
// Telefone.
if (telefone != null && !telefone.equalsIgnoreCase("")) {
if (telefone.length() < 7) {
throw new ActionServletException(
"atencao.telefone_ou_fax_agencia_bancaria_menor_sete_digitos",
null, "Telefone");
} else {
gerenciaRegionalInserir.setFone(telefone);
}
}
// Fax.
if (fax != null && !fax.equalsIgnoreCase("")) {
if (fax.length() < 7) {
throw new ActionServletException(
"atencao.telefone_ou_fax_agencia_bancaria_menor_sete_digitos",
null, "Fax");
} else {
gerenciaRegionalInserir.setFax(fax);
}
}
// E-mail.
if (email != null && !email.equalsIgnoreCase("")) {
gerenciaRegionalInserir.setEmail(email);
}
// Indicador de Uso
gerenciaRegionalInserir.setIndicadorUso(new Short("1"));
FiltroGerenciaRegional filtroGerenciaRegional = new FiltroGerenciaRegional();
filtroGerenciaRegional.adicionarParametro(new ParametroSimples(
FiltroGerenciaRegional.NOME,
gerenciaRegionalInserir.getNome()));
// Verificar exist�ncia da Descri��o da Gerencia Regional
colecaoPesquisa = fachada.pesquisar(filtroGerenciaRegional,
GerenciaRegional.class.getName());
if (colecaoPesquisa != null && !colecaoPesquisa.isEmpty()) {
// Descri��o da gerencia Regional j� existe
throw new ActionServletException(
"atencao.pesquisa_descricao_da_gerenciaregional_ja_cadastrada",
null, nome);
}
// Verificar exist�ncia do CNPJ da Gerencia Regional
if(cnpjGerenciaRegional != null && !cnpjGerenciaRegional.equalsIgnoreCase("")){
//filtroGerenciaRegional = null;
FiltroGerenciaRegional filtro = new FiltroGerenciaRegional();
filtro.adicionarParametro(new ParametroSimples(
FiltroGerenciaRegional.CNPJ_GERENCIA_REGIONAL , cnpjGerenciaRegional));
Collection colecaoGerenciaRegional = fachada.pesquisar(filtro,GerenciaRegional.class.getName());
GerenciaRegional gerenciaRegionalEncontrada = (GerenciaRegional) Util.retonarObjetoDeColecao(colecaoGerenciaRegional);
if(gerenciaRegionalEncontrada != null){
// CNPJ da gerencia Regional j� existe
throw new ActionServletException(
"atencao.pesquisa_cnpj_da_gerenciaregional_ja_cadastrada",
null, "" + gerenciaRegionalEncontrada.getNome() + "");
}
gerenciaRegionalInserir.setCnpjGerenciaRegional(cnpjGerenciaRegional);
}
// Gerente da Gerencia Regional
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");
}
gerenciaRegionalInserir.setCliente(cliente);
} else {
throw new ActionServletException("atencao.cliente.inexistente");
}
}
// Ultima altera��o
gerenciaRegionalInserir.setUltimaAlteracao(new Date());
// Verificar exist�ncia da Ger�ncia Regional
colecaoPesquisa = fachada.pesquisar(filtroGerenciaRegional,
GerenciaRegional.class.getName());
{
Integer idGerenciaRegional = null;
idGerenciaRegional = fachada
.inserirGerenciaRegional(gerenciaRegionalInserir);
montarPaginaSucesso(httpServletRequest,
"Ger�ncia Regional de c�digo "
+ gerenciaRegionalInserir.getId()
+ " inserida com sucesso.",
"Inserir outra Ger�ncia Regional",
"exibirInserirGerenciaRegionalAction.do?menu=sim",
"exibirAtualizarGerenciaRegionalAction.do?idRegistroAtualizacao="
+ idGerenciaRegional,
"Atualizar Ger�ncia Regional Inserida");
}
sessao.removeAttribute("colecaoEnderecos");
// devolve o mapeamento de retorno
return retorno;
}
}