package gcom.gui.cadastro; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; 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; import gcom.cadastro.empresa.Empresa; import gcom.cadastro.empresa.EmpresaCobrancaFaixa; import gcom.cadastro.empresa.FiltroEmpresa; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.Util; /** * @author Arthur Carvalho * @created 14 de maio de 2008 */ public class ExibirInserirEmpresaAction 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); ActionForward retorno = actionMapping.findForward("inserirEmpresa"); InserirEmpresaActionForm inserirEmpresaActionForm = (InserirEmpresaActionForm) actionForm; Fachada fachada = Fachada.getInstancia(); List<EmpresaCobrancaFaixa> colecaoEmpresaCobrancaFaixa = new ArrayList(); if (sessao.getAttribute("colecaoEmpresaCobrancaFaixa") != null && !sessao.getAttribute("colecaoEmpresaCobrancaFaixa").equals("")){ colecaoEmpresaCobrancaFaixa = (List<EmpresaCobrancaFaixa>) sessao.getAttribute("colecaoEmpresaCobrancaFaixa"); } if (httpServletRequest.getParameter("menu") != null && httpServletRequest.getParameter("menu").equals("sim")) { inserirEmpresaActionForm .setIndicadorEmpresaPrincipal(ConstantesSistema.INDICADOR_USO_DESATIVO); inserirEmpresaActionForm.setIndicadorEmpresaCobranca("" + ConstantesSistema.INDICADOR_USO_DESATIVO); inserirEmpresaActionForm .setIndicadorLeitura(ConstantesSistema.SIM); } if ((httpServletRequest.getParameter("desfazer") != null && httpServletRequest .getParameter("desfazer").equalsIgnoreCase("S"))) { inserirEmpresaActionForm.setDescricao(""); if (inserirEmpresaActionForm.getDescricao() == null || inserirEmpresaActionForm.getDescricao().equals("")) { Collection colecaoPesquisa = null; FiltroEmpresa filtroEmpresa = new FiltroEmpresa(); filtroEmpresa.setCampoOrderBy(FiltroEmpresa.ID); colecaoPesquisa = fachada.pesquisar(filtroEmpresa, Empresa.class.getName()); if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) { throw new ActionServletException( "atencao.pesquisa.nenhum_registro_tabela", null, "Empresa"); } else { sessao.setAttribute("colecaoEmpresa", colecaoPesquisa); } // Cole��o de Empresa filtroEmpresa = new FiltroEmpresa(); filtroEmpresa.setCampoOrderBy(FiltroEmpresa.ID); Collection colecaoEmpresa = fachada.pesquisar(filtroEmpresa, Empresa.class.getName()); sessao.setAttribute("colecaoEmpresa", colecaoEmpresa); } } // Adicionar EmpresaCobrancaFaixa if (httpServletRequest.getParameter("adicionarFaixa") != null && httpServletRequest.getParameter("adicionarFaixa").equals("sim") && inserirEmpresaActionForm.getQuantidadeMinimaContas() != null && !inserirEmpresaActionForm.getQuantidadeMinimaContas().equals("") && inserirEmpresaActionForm.getPercentualDaFaixa() != null && !inserirEmpresaActionForm.getPercentualDaFaixa().equals("")) { Integer quantidadeMinimaContas = new Integer(inserirEmpresaActionForm.getQuantidadeMinimaContas()); BigDecimal percentualFaixa = Util.formatarMoedaRealparaBigDecimal(inserirEmpresaActionForm.getPercentualDaFaixa()); if (colecaoEmpresaCobrancaFaixa != null && !colecaoEmpresaCobrancaFaixa.isEmpty()) { Iterator iterator = colecaoEmpresaCobrancaFaixa.iterator(); while(iterator.hasNext()) { EmpresaCobrancaFaixa empresaCobrancaFaixa = (EmpresaCobrancaFaixa) iterator.next(); if (empresaCobrancaFaixa.getNumeroMinimoContasFaixa().compareTo(quantidadeMinimaContas) >= 0) { throw new ActionServletException( "atencao.quantidade.maior.que.quantidade.anterior", null, "Quantidade M�nima de Contas"); } } } EmpresaCobrancaFaixa empresaCobrancaFaixa = new EmpresaCobrancaFaixa(); empresaCobrancaFaixa.setNumeroMinimoContasFaixa(quantidadeMinimaContas); empresaCobrancaFaixa.setPercentualFaixa(percentualFaixa); colecaoEmpresaCobrancaFaixa.add(empresaCobrancaFaixa); sessao.setAttribute("colecaoEmpresaCobrancaFaixa", colecaoEmpresaCobrancaFaixa); inserirEmpresaActionForm.setPercentualDaFaixaInformado("sim"); inserirEmpresaActionForm.setQuantidadeMinimaContas(""); inserirEmpresaActionForm.setPercentualDaFaixa(""); } // Remover EmpresaCobrancaFaixa if (httpServletRequest.getParameter("removerEmpresaCobrancaFaixa") != null && !httpServletRequest.getParameter("removerEmpresaCobrancaFaixa").equals("")) { Integer indice = new Integer(httpServletRequest.getParameter("removerEmpresaCobrancaFaixa")); if (colecaoEmpresaCobrancaFaixa != null && !colecaoEmpresaCobrancaFaixa.isEmpty() && colecaoEmpresaCobrancaFaixa.size() >= indice) { colecaoEmpresaCobrancaFaixa.remove(indice-1); sessao.setAttribute("colecaoEmpresaCobrancaFaixa", colecaoEmpresaCobrancaFaixa); if (colecaoEmpresaCobrancaFaixa != null && !colecaoEmpresaCobrancaFaixa.isEmpty()) { inserirEmpresaActionForm.setPercentualDaFaixaInformado("sim"); } else { inserirEmpresaActionForm.setPercentualDaFaixaInformado(""); } } } // Limpar Formul�rio if (httpServletRequest.getParameter("limparFaixa") != null && httpServletRequest.getParameter("limparFaixa").equals("sim")) { sessao.removeAttribute("colecaoEmpresaCobrancaFaixa"); inserirEmpresaActionForm.setPercentualDaFaixaInformado(""); } return retorno; } }