package gcom.gui.cobranca; import gcom.cadastro.empresa.Empresa; import gcom.cadastro.empresa.FiltroEmpresa; import gcom.cobranca.ComandoEmpresaCobrancaConta; import gcom.cobranca.ComandoEmpresaCobrancaContaExtensao; import gcom.cobranca.GerarExtensaoComandoContasCobrancaEmpresaHelper; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.relatorio.ExibidorProcessamentoTarefaRelatorio; import gcom.seguranca.acesso.usuario.Usuario; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; 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; /** * [UC0879] Gerar Arquivo Texto das Contas em Cobran�a por Empresa * * @author R�mulo Aur�lio * @since 02/01/2009 */ public class GerarExtensaoComandoContasCobrancaEmpresaAction extends ExibidorProcessamentoTarefaRelatorio { /** * * @param actionMapping * @param actionForm * @param httpServletRequest * @param httpServletResponse * @return * @throws */ @SuppressWarnings("unchecked") public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException { ActionForward retorno = actionMapping.findForward("telaSucesso"); GerarExtensaoComandoContasCobrancaEmpresaActionForm form = (GerarExtensaoComandoContasCobrancaEmpresaActionForm) actionForm; // Obtendo uma instancia da sessao HttpSession sessao = httpServletRequest.getSession(false); Fachada fachada = Fachada.getInstancia(); String[] idsRegistros = form.getIdRegistros(); String idEmpresa = form.getIdEmpresa(); Collection colecaoGerarExtensaoComandoContasCobrancaEmpresaHelper = (Collection) sessao .getAttribute("colecaoGerarExtensaoComandoContasCobrancaEmpresaHelper"); Collection colecaoComandoEmpresaCobrancaContaExtensao = new ArrayList(); Usuario usuarioLogado = (Usuario) sessao.getAttribute("usuarioLogado"); ComandoEmpresaCobrancaContaExtensao comandoEmpresaCobrancaContaExtensao = null; int count = 0; if (idEmpresa != null && !idEmpresa.trim().equals("")) { FiltroEmpresa filtroEmpresa = new FiltroEmpresa(); filtroEmpresa.adicionarParametro(new ParametroSimples( FiltroEmpresa.ID, idEmpresa)); Collection colecaoEmpresa = fachada.pesquisar(filtroEmpresa, Empresa.class.getName()); if (colecaoEmpresa == null || colecaoEmpresa.isEmpty()) { throw new ActionServletException("atencao.empresa.inexistente "); } else { if (idsRegistros != null && idsRegistros.length != 0) { for (int i = 0; i < idsRegistros.length; i++) { comandoEmpresaCobrancaContaExtensao = new ComandoEmpresaCobrancaContaExtensao(); ComandoEmpresaCobrancaConta comandoEmpresaCobrancaConta = new ComandoEmpresaCobrancaConta(); Integer id = Integer.parseInt(idsRegistros[i]); // ----------------------------------------------- Iterator it = colecaoGerarExtensaoComandoContasCobrancaEmpresaHelper .iterator(); String dataInicial; String dataFinal; while (it.hasNext()) { GerarExtensaoComandoContasCobrancaEmpresaHelper helper = (GerarExtensaoComandoContasCobrancaEmpresaHelper) it .next(); if (helper .getGerarArquivoTextoContasCobrancaEmpresaHelper() .getIdComandoEmpresaCobrancaConta() .toString().equals(id.toString())) { dataInicial = (String) httpServletRequest .getParameter("a" + helper .getGerarArquivoTextoContasCobrancaEmpresaHelper() .getIdComandoEmpresaCobrancaConta() .toString()); if (dataInicial == null || dataInicial.equals("")) { throw new ActionServletException( "atencao.Informe_entidade", null, "Refer�ncia Inicial da extens�o do comando"); } Integer anoMesInicialReferencia = Util .formatarMesAnoComBarraParaAnoMes(dataInicial); if(Util.validarAnoMesSemBarra(anoMesInicialReferencia.toString())){ throw new ActionServletException("atencao.invalid",null,"Refer�ncia"); } dataFinal = (String) httpServletRequest .getParameter("b" + helper .getGerarArquivoTextoContasCobrancaEmpresaHelper() .getIdComandoEmpresaCobrancaConta() .toString()); if (dataFinal == null || dataFinal.equals("")) { throw new ActionServletException( "atencao.Informe_entidade", null, "Refer�ncia Final da extens�o do comando"); } Integer anoMesFinalReferencia = Util .formatarMesAnoComBarraParaAnoMes(dataFinal); if(Util.validarAnoMesSemBarra(anoMesInicialReferencia.toString())){ throw new ActionServletException("atencao.invalid",null,"Refer�ncia"); } if (anoMesInicialReferencia != null && anoMesFinalReferencia != null && Util.compararAnoMesReferencia( anoMesInicialReferencia, anoMesFinalReferencia, ">")) { throw new ActionServletException( "atencao.referencia_final_anterior_referencia_inicial"); } comandoEmpresaCobrancaContaExtensao .setReferenciaContaInicial(anoMesInicialReferencia); comandoEmpresaCobrancaContaExtensao .setReferenciaContaFinal(anoMesFinalReferencia); // ----------------------------------------- comandoEmpresaCobrancaConta.setId(id); comandoEmpresaCobrancaContaExtensao .setComandoEmpresaCobrancaConta(comandoEmpresaCobrancaConta); comandoEmpresaCobrancaConta .setEmpresa((Empresa) Util .retonarObjetoDeColecao(colecaoEmpresa)); comandoEmpresaCobrancaContaExtensao .setUsuario(usuarioLogado); colecaoComandoEmpresaCobrancaContaExtensao .add(comandoEmpresaCobrancaContaExtensao); fachada .inserirExtensaoComandoContasCobrancaEmpresa( comandoEmpresaCobrancaContaExtensao, colecaoGerarExtensaoComandoContasCobrancaEmpresaHelper); count = count + 1; } } } } } } else { throw new ActionServletException("atencao.Informe_entidade", null, "Empresa"); } // montando p�gina de sucesso montarPaginaSucesso(httpServletRequest, "Foram geradas " + count + " extens�es de comandos de contas em cobran�a com sucesso.", "Gerar outra Extens�o de Comando de Contas por Empresa", "exibirGerarExtensaoComandoContasCobrancaEmpresaAction.do?menu=sim"); return retorno; } }