package gcom.gui.faturamento;
import gcom.cadastro.localidade.FiltroSetorComercial;
import gcom.cadastro.localidade.Localidade;
import gcom.cadastro.localidade.SetorComercial;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
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 org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class FiltrarFaturamentoSeletivoAction extends GcomAction {
@Override
public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping.findForward("filtrarFaturamentoSeletivo");
FaturamentoSeletivoActionForm form = (FaturamentoSeletivoActionForm) actionForm;
Fachada fachada = Fachada.getInstancia();
if (httpServletRequest.getParameter("menu") != null && httpServletRequest.getParameter("menu").equals("sim")) {
form.setIdLocalidade("");
form.setLocalidadeDescricao("");
form.setCodigoSetorComercial("");
form.setSetorComercialDescricao("");
form.setRota("");
form.setBloquearCampos("");
form.setTipo("1");
}
if (httpServletRequest.getParameter("idLocalidade") != null
&& !httpServletRequest.getParameter("idLocalidade").equals("")) {
form.setIdLocalidade("" + httpServletRequest.getParameter("idLocalidade"));
}
if (httpServletRequest.getParameter("codigoSetorComercial") != null
&& !httpServletRequest.getParameter("codigoSetorComercial").equals("")) {
form.setCodigoSetorComercial("" + httpServletRequest.getParameter("codigoSetorComercial"));
}
if (httpServletRequest.getParameter("bloquearCampos") != null
&& !httpServletRequest.getParameter("bloquearCampos").equals("")) {
form.setBloquearCampos("sim");
}
String idDigitadoEnterLocalidade = form.getIdLocalidade();
if (idDigitadoEnterLocalidade != null && !idDigitadoEnterLocalidade.equalsIgnoreCase("") && Util.validarValorNaoNumerico(idDigitadoEnterLocalidade)) {
httpServletRequest.setAttribute("nomeCampo", "idLocalidade");
throw new ActionServletException("atencao.nao.numerico", null, "Localidade ");
}
verificaExistenciaCodLocalidade(idDigitadoEnterLocalidade, form, httpServletRequest, fachada);
String idDigitadoEnterSetorComercial = form.getCodigoSetorComercial();
if (idDigitadoEnterSetorComercial != null && !idDigitadoEnterSetorComercial.equalsIgnoreCase("") && Util.validarValorNaoNumerico(idDigitadoEnterSetorComercial)) {
httpServletRequest.setAttribute("nomeCampo", "codigoSetorComercial");
throw new ActionServletException("atencao.nao.numerico", null, "Setor Comercial ");
}
if (httpServletRequest.getParameter("tipoConsulta") != null && !httpServletRequest.getParameter("tipoConsulta").equals("")) {
if (httpServletRequest.getParameter("tipoConsulta").equals("localidade")) {
form.setIdLocalidade(httpServletRequest.getParameter("idCampoEnviarDados"));
form.setLocalidadeDescricao(httpServletRequest.getParameter("descricaoCampoEnviarDados"));
httpServletRequest.setAttribute("nomeCampo", "codigoSetorComercial");
} else if (httpServletRequest.getParameter("tipoConsulta").equals("setorComercial")) {
form.setCodigoSetorComercial(httpServletRequest.getParameter("idCampoEnviarDados"));
form.setSetorComercialDescricao(httpServletRequest.getParameter("descricaoCampoEnviarDados"));
httpServletRequest.setAttribute("nomeCampo", "codigoRota");
}
}
verificaExistenciaCodSetorComercial(idDigitadoEnterLocalidade, idDigitadoEnterSetorComercial, form, httpServletRequest, fachada);
return retorno;
}
private void verificaExistenciaCodLocalidade(String idDigitadoEnterLocalidade, FaturamentoSeletivoActionForm form,
HttpServletRequest httpServletRequest, Fachada fachada) {
if (idDigitadoEnterLocalidade != null && !idDigitadoEnterLocalidade.trim().equals("") && Integer.parseInt(idDigitadoEnterLocalidade) > 0) {
Localidade localidadeEncontrada = fachada.pesquisarLocalidadeDigitada(new Integer(idDigitadoEnterLocalidade));
if (localidadeEncontrada != null) {
form.setIdLocalidade("" + (localidadeEncontrada.getId()));
form.setLocalidadeDescricao(localidadeEncontrada.getDescricao());
httpServletRequest.setAttribute("idLocalidadeNaoEncontrada", "true");
httpServletRequest.setAttribute("nomeCampo", "codigoSetorComercial");
} else {
form.setIdLocalidade("");
httpServletRequest.setAttribute("idLocalidadeNaoEncontrada", "exception");
form.setLocalidadeDescricao("LOCALIDADE INEXISTENTE");
}
}
}
@SuppressWarnings("unchecked")
private void verificaExistenciaCodSetorComercial(String idDigitadoEnterLocalidade, String idDigitadoEnterSetorComercial,
FaturamentoSeletivoActionForm form, HttpServletRequest httpServletRequest, Fachada fachada) {
if ((idDigitadoEnterSetorComercial != null && !idDigitadoEnterSetorComercial.toString().trim().equalsIgnoreCase(""))
&& (idDigitadoEnterLocalidade != null && !idDigitadoEnterLocalidade.toString().trim().equalsIgnoreCase(""))) {
FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial();
if (idDigitadoEnterLocalidade != null && !idDigitadoEnterLocalidade.toString().trim().equalsIgnoreCase("")) {
filtroSetorComercial.adicionarParametro(new ParametroSimples(FiltroSetorComercial.ID_LOCALIDADE, new Integer(idDigitadoEnterLocalidade)));
}
filtroSetorComercial.adicionarParametro(new ParametroSimples(FiltroSetorComercial.CODIGO_SETOR_COMERCIAL,new Integer(idDigitadoEnterSetorComercial)));
Collection<SetorComercial> setorComerciais = fachada.pesquisar(filtroSetorComercial, SetorComercial.class.getName());
if (setorComerciais != null && !setorComerciais.isEmpty()) {
SetorComercial setorComercialEncontrado = (SetorComercial) Util.retonarObjetoDeColecao(setorComerciais);
form.setCodigoSetorComercial("" + (setorComercialEncontrado.getCodigo()));
form.setSetorComercialDescricao(setorComercialEncontrado.getDescricao());
httpServletRequest.setAttribute("idSetorComercialNaoEncontrada", "true");
httpServletRequest.setAttribute("nomeCampo", "rota");
} else {
form.setCodigoSetorComercial("");
httpServletRequest.setAttribute("idSetorComercialNaoEncontrada", "exception");
form.setSetorComercialDescricao("SETOR COMERCIAL INEXISTENTE");
}
}
}
}