package gcom.gui.micromedicao; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.Date; import java.util.List; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.micromedicao.ContratoEmpresaAditivo; import gcom.micromedicao.InformarItensContratoServicoHelper; import gcom.util.Util; 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; /** * Tela de PopUp de Incluir Aditivo * * @author Mariana Victor * @date 24/11/2010 */ public class IncluirAditivoAction extends GcomAction{ /** * < <Descri��o do m�todo>> * * @param actionMapping * Descri��o do par�metro * @param actionForm * Descri��o do par�metro * @param httpServletRequest * Descri��o do par�metro * @param httpServletResponse * Descri��o do par�metro * @return Descri��o do retorno */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("incluirAditivo"); HttpSession sessao = httpServletRequest.getSession(false); ExibirInformarItensContratoServicoActionForm form = (ExibirInformarItensContratoServicoActionForm) actionForm; List colecaoHelper = (List) sessao.getAttribute("colecaoHelper"); InformarItensContratoServicoHelper helper = null; Integer posicaoComponente = new Integer(form.getIdNumeroContrato()); helper = (InformarItensContratoServicoHelper) colecaoHelper.get(posicaoComponente-1); ContratoEmpresaAditivo contratoEmpresaAditivo = new ContratoEmpresaAditivo(); contratoEmpresaAditivo.setUltimaAlteracao(new Date()); contratoEmpresaAditivo.setContratoEmpresaServico(helper.getContratoEmpresaServico()); contratoEmpresaAditivo.setDataInicioContrato(Util.converteStringParaDate(form.getDataInicioAditivo())); if (form.getDataFimAditivo() != null && !form.getDataFimAditivo().equals("")) { contratoEmpresaAditivo.setDataFimContrato(Util.converteStringParaDate(form.getDataFimAditivo())); this.verificarData(form.getDataInicioAditivo(), form.getDataFimAditivo()); } if (form.getValorAditivoContrato() != null && !form.getValorAditivoContrato().equals("")) { BigDecimal igualZero = new BigDecimal(0); BigDecimal valorAditivoContratoAtual = null; String valorAditivoContrato = form.getValorAditivoContrato() .toString().replace(".", ""); valorAditivoContrato = valorAditivoContrato.replace(",", "."); valorAditivoContratoAtual = new BigDecimal(valorAditivoContrato); if (valorAditivoContratoAtual.compareTo(igualZero) <= -1){ throw new ActionServletException("atencao.invalido_zero", null ,"O Valor do Aditivo do Contrato" ); } contratoEmpresaAditivo.setValorAditivoContrato(valorAditivoContratoAtual); } if (form.getPercentualTaxaSucessoAditivo() != null && !form.getPercentualTaxaSucessoAditivo() .equals("")) { BigDecimal percentualTaxaSucessoAtual = null; String percentualTaxaSucesso = form.getPercentualTaxaSucessoAditivo() .toString().replace(".", ""); percentualTaxaSucesso = percentualTaxaSucesso.replace(",", "."); percentualTaxaSucessoAtual = new BigDecimal(percentualTaxaSucesso); contratoEmpresaAditivo .setPercentualTaxaSucesso(percentualTaxaSucessoAtual); } else { contratoEmpresaAditivo .setPercentualTaxaSucesso(null); } ArrayList colecaoAditivo = new ArrayList(); if (helper.getContratoEmpresaAditivo() != null && helper.getContratoEmpresaAditivo().size() > 0) { colecaoAditivo = (ArrayList) helper.getContratoEmpresaAditivo(); } colecaoAditivo.add(contratoEmpresaAditivo); helper.setContratoEmpresaAditivo((List<ContratoEmpresaAditivo>) colecaoAditivo); colecaoHelper.remove(posicaoComponente-1); colecaoHelper.add(helper); // o sistema classifica a lista de InformarItensContratoServicoHelper recebidas por Empresa Collections.sort((List) colecaoHelper, new Comparator() { public int compare(Object a, Object b) { String codigo1 = ((InformarItensContratoServicoHelper) a) .getContratoEmpresaServico().getDescricaoContrato(); String codigo2 = ((InformarItensContratoServicoHelper) b) .getContratoEmpresaServico().getDescricaoContrato(); if (codigo1 == null || codigo1.equals("")) { return -1; } else { return codigo1.compareTo(codigo2); } } }); sessao.setAttribute("colecaoHelper", colecaoHelper); form.setDataInicioAditivo(""); form.setDataFimAditivo(""); form.setValorAditivoContrato(""); form.setPercentualTaxaSucessoAditivo(""); sessao.removeAttribute("colecaoAditivo"); sessao.setAttribute("colecaoAditivo", colecaoAditivo); httpServletRequest.setAttribute("fecharPopup", "OK"); sessao.setAttribute("fecharPopup", "OK"); return retorno; } /** * @param form */ private void verificarData(String dataInicio, String dataFim) { // Verifica se a Data Final � maior que a Inicial if ( dataInicio != null && !dataInicio.equals("") && dataFim != null && !dataFim.equals("")){ Date dtInicial = Util.converteStringParaDate( dataInicio); Date dtFinal = Util.converteStringParaDate( dataFim); if (Util.compararData(dtFinal, dtInicial) == -1){ throw new ActionServletException("atencao.data.intervalo.invalido", null ,"Data Inv�lida" ); } } } }