package gcom.gui.micromedicao;
import gcom.atendimentopublico.ordemservico.FiltroServicoTipo;
import gcom.atendimentopublico.ordemservico.ServicoTipo;
import gcom.cadastro.empresa.Empresa;
import gcom.cadastro.empresa.FiltroEmpresa;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.micromedicao.ContratoEmpresaAditivo;
import gcom.micromedicao.ContratoEmpresaServico;
import gcom.micromedicao.FiltroItemServico;
import gcom.micromedicao.InformarItensContratoServicoHelper;
import gcom.micromedicao.ItemServico;
import gcom.micromedicao.ItemServicoContrato;
import gcom.seguranca.acesso.FiltroOperacao;
import gcom.util.ConstantesSistema;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
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;
/**
* [UC1055] Informar Valor de Item de Servico Por Contrato
*
* @author Hugo Leonardo, Mariana Victor
* @date 22/07/2010, 23/11/2010
*/
public class ExibirInformarItensContratoServicoAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping
.findForward("exibirInformarItensContratoServicoAction");
try{
ExibirInformarItensContratoServicoActionForm form =
(ExibirInformarItensContratoServicoActionForm) actionForm;
// Obt�m a inst�ncia da fachada
Fachada fachada = Fachada.getInstancia();
HttpSession sessao = httpServletRequest.getSession(false);
ArrayList colecaoItemServicoContratoSelecionados = null;
ArrayList colecaoAditivo = null;
List colecaoHelper = null;
Integer idContratoServico = null;
int posicaoComponente = 0;
sessao.removeAttribute("colecaoItemServicoContratoSelecionados");
sessao.removeAttribute("colecaoAditivo");
if(sessao.getAttribute("colecaoItemServicoContratoSelecionados") == null ){
colecaoItemServicoContratoSelecionados = new ArrayList();
}else{
colecaoItemServicoContratoSelecionados = (ArrayList)
sessao.getAttribute("colecaoItemServicoContratoSelecionados");
}
if(sessao.getAttribute("colecaoAditivo") == null ){
colecaoAditivo = new ArrayList();
}else{
colecaoAditivo = (ArrayList)
sessao.getAttribute("colecaoAditivo");
}
if(sessao.getAttribute("colecaoEmpresa") == null){
this.pesquisarEmpresa(sessao, form);
}
if(sessao.getAttribute("colecaoItemServico") == null){
this.pesquisaItemServico(sessao, form);
}
if(form.getIdEmpresa() != null && !form.getIdEmpresa().equals("-1")){
if(sessao.getAttribute("colecaoHelper") == null){
colecaoHelper = new ArrayList();
colecaoHelper = fachada.obterDadosItensContratoServico(
new Integer(form.getIdEmpresa()));
if(colecaoHelper != null && colecaoHelper.size() > 0){
sessao.setAttribute("colecaoHelper", colecaoHelper);
}
}else{
colecaoHelper = (List) sessao.getAttribute("colecaoHelper");
}
}else {
sessao.removeAttribute("colecaoHelper");
form.getReset();
}
if(httpServletRequest.getParameter("acao") != null &&
httpServletRequest.getParameter("acao").equals("adicionarAditivo") &&
form.getIdEmpresa() != null &&
!form.getIdEmpresa().equals("-1") &&
(form.getIdNumeroContrato() != null || !form.getIdNumeroContrato().equals("") )){
idContratoServico = new Integer(form.getIdNumeroContrato());
}
// bot�o desfazer
if ( httpServletRequest.getParameter("desfazer") != null &&
httpServletRequest.getParameter("desfazer").equals("S") ) {
//form.setIdNumeroContrato("");
if(form.getIdNumeroContrato() != null && !form.getIdNumeroContrato().equalsIgnoreCase("")){
posicaoComponente = new Integer(form.getIdNumeroContrato());
InformarItensContratoServicoHelper helper = null;
colecaoHelper = fachada.obterDadosItensContratoServico(
new Integer(form.getIdEmpresa()));
if(colecaoHelper != null){
helper = (InformarItensContratoServicoHelper) colecaoHelper.get(posicaoComponente-1);
// N�mero do contrato
form.setIdContrato(helper.getContratoEmpresaServico().getDescricaoContrato());
// Data Inicio do Contrato
String dataInicial = Util.formatarData(helper.getContratoEmpresaServico().getDataInicioContrato());
form.setDtInicioContrato(dataInicial);
// Data Fim do Contrato
if(helper.getContratoEmpresaServico().getDataFimContrato() != null){
String dataFinal = Util.formatarData(helper.getContratoEmpresaServico().getDataFimContrato());
form.setDtFimContrato(dataFinal);
}else{
form.setDtFimContrato("");
}
// Observa��o
if (helper.getContratoEmpresaServico().getObservacao() != null) {
form.setObservacao(helper.getContratoEmpresaServico().getObservacao());
} else {
form.setObservacao("");
}
sessao.setAttribute("colecaoHelper", colecaoHelper);
}else{
form.setIdItemContrato("-1");
form.setIdContrato("");
form.setDtInicioContrato("");
form.setDtFimContrato("");
form.setValorItemContrato("");
form.setObservacao("");
sessao.removeAttribute("colecaoItemServicoContratoSelecionados");
sessao.removeAttribute("colecaoAditivo");
sessao.removeAttribute("contratoSelecionado");
sessao.removeAttribute("colecaoHelper");
}
form.setPercentualServicosNaoExecutados("");
form.setPercentualMultaAplicar("");
form.setQuantidadeOrcadaItemContrato("");
form.setValorOrcadoItemContrato("");
form.setValorItemContrato("");
form.setIdItemContrato("-1");
form.setIdNumeroContrato("");
form.setObservacao("");
//sessao.setAttribute("colecaoHelper", colecaoHelper);
sessao.removeAttribute("colecaoItemServicoContratoSelecionados");
sessao.removeAttribute("colecaoAditivo");
}else{
if(form.getIdEmpresa() != null && !form.getIdEmpresa().equals("")){
colecaoHelper = fachada.obterDadosItensContratoServico(
new Integer(form.getIdEmpresa()));
if(colecaoHelper != null && colecaoHelper.size() > 0){
sessao.setAttribute("colecaoHelper", colecaoHelper);
}else{
sessao.removeAttribute("colecaoHelper");
sessao.removeAttribute("contratoSelecionado");
}
}else{
colecaoHelper = null;
}
form.setIdEmpresa("");
form.setIdItemContrato("-1");
form.setIdContrato("");
form.setDtInicioContrato("");
form.setDtFimContrato("");
form.setValorItemContrato("");
form.setPercentualServicosNaoExecutados("");
form.setPercentualMultaAplicar("");
form.setQuantidadeOrcadaItemContrato("");
form.setValorOrcadoItemContrato("");
form.setObservacao("");
sessao.removeAttribute("colecaoItemServicoContratoSelecionados");
sessao.removeAttribute("colecaoAditivo");
//sessao.removeAttribute("contratoSelecionado");
}
}
// caso selecione um contrato
if(form.getIdNumeroContrato() != null && !form.getIdNumeroContrato().equalsIgnoreCase("")
&& (httpServletRequest.getParameter("id") != null || idContratoServico != null)){
sessao.setAttribute("contratoSelecionado", true);
InformarItensContratoServicoHelper helper = null;
if (idContratoServico != null)
posicaoComponente = idContratoServico;
else
posicaoComponente = new Integer(form.getIdNumeroContrato());
helper = (InformarItensContratoServicoHelper) colecaoHelper.get(posicaoComponente-1);
// N�mero do contrato
form.setIdContrato(helper.getContratoEmpresaServico().getDescricaoContrato());
// Data Inicio do Contrato
String dataInicial = Util.formatarData(helper.getContratoEmpresaServico().getDataInicioContrato());
form.setDtInicioContrato(dataInicial);
if (helper.getContratoEmpresaServico().getValorGlobalContrato() != null) {
String valorGlobal = Util.formataBigDecimal(helper.getContratoEmpresaServico().getValorGlobalContrato(),2,true);
form.setValorGlobalContrato(valorGlobal);
sessao.setAttribute("valorGlobContrato", true);
} else {
form.setValorGlobalContrato(null);
sessao.removeAttribute("valorGlobContrato");
}
if (helper.getContratoEmpresaServico().getPercentualTaxaSucesso() != null) {
String percentualTaxaSucesso = Util.formataBigDecimal(helper.getContratoEmpresaServico().getPercentualTaxaSucesso(),2,true);
form.setPercentualTaxaSucesso(percentualTaxaSucesso);
sessao.setAttribute("percTxSucesso", true);
} else {
form.setPercentualTaxaSucesso(null);
sessao.removeAttribute("percTxSucesso");
}
// Observa��o
if (helper.getContratoEmpresaServico().getObservacao() != null
&& !helper.getContratoEmpresaServico().getObservacao().equals("")) {
form.setObservacao(helper.getContratoEmpresaServico().getObservacao());
} else {
form.setObservacao("");
}
// Data Fim do Contrato
if(helper.getContratoEmpresaServico().getDataFimContrato() != null){
String dataFinal = Util.formatarData(helper.getContratoEmpresaServico().getDataFimContrato());
form.setDtFimContrato(dataFinal);
sessao.setAttribute("dataFimContrato", true);
}else{
form.setDtFimContrato(null);
sessao.removeAttribute("dataFimContrato");
}
// Exibe os itens de servi�o do contrato
if(sessao.getAttribute("colecaoHelper") != null
&& (httpServletRequest.getParameter("id") != null || idContratoServico != null)){
if (colecaoHelper != null){
if (colecaoHelper.size() >= posicaoComponente) {
if(helper.getItemServicoContrato() != null && helper.getItemServicoContrato().size() > 0){
Iterator iterator = helper.getItemServicoContrato().iterator();
ItemServicoContrato itemServicoContrato = null;
while (iterator.hasNext()) {
itemServicoContrato = (ItemServicoContrato) iterator.next();
colecaoItemServicoContratoSelecionados.add(itemServicoContrato);
}
// o sistema classifica a lista de ItemServicoContrato recebidas por contrato
Collections.sort((List) colecaoItemServicoContratoSelecionados,
new Comparator() {
public int compare(Object a, Object b) {
String codigo1 = ((ItemServicoContrato) a)
.getItemServico().getDescricao();
String codigo2 = ((ItemServicoContrato) b)
.getItemServico().getDescricao();
if (codigo1 == null || codigo1.equals("")) {
return -1;
} else {
return codigo1.compareTo(codigo2);
}
}
});
sessao.setAttribute("colecaoItemServicoContratoSelecionados",
colecaoItemServicoContratoSelecionados);
}else{
sessao.removeAttribute("colecaoItemServicoContratoSelecionados");
}
//Exibe os Aditivos do contrato
if (helper.getContratoEmpresaAditivo() != null && helper.getContratoEmpresaAditivo().size() > 0) {
Iterator iterator = helper.getContratoEmpresaAditivo().iterator();
ContratoEmpresaAditivo contratoEmpresaAditivo = null;
while (iterator.hasNext()) {
contratoEmpresaAditivo = (ContratoEmpresaAditivo) iterator.next();
colecaoAditivo.add(contratoEmpresaAditivo);
}
sessao.setAttribute("colecaoAditivo",
colecaoAditivo);
} else {
sessao.removeAttribute("colecaoAditivo");
}
}
}
}
}else{
sessao.removeAttribute("contratoSelecionado");
}
// Adicionar um novo Contrato
if(httpServletRequest.getParameter("acao") != null &&
httpServletRequest.getParameter("acao").equals("adicionar") &&
form.getIdEmpresa() != null &&
!form.getIdEmpresa().equals("-1") &&
(form.getIdNumeroContrato() == null || form.getIdNumeroContrato().equals("") )&&
!form.getIdContrato().equals("") && !form.getDtInicioContrato().equals("") &&
!form.getIdItemContrato().equals("-1") && !form.getValorItemContrato().equals("") ){
if(sessao.getAttribute("colecaoHelper") == null){
colecaoHelper = new ArrayList();
sessao.setAttribute("colecaoHelper", colecaoHelper);
}
if(sessao.getAttribute("colecaoHelper") != null){
InformarItensContratoServicoHelper helper = new InformarItensContratoServicoHelper();
colecaoItemServicoContratoSelecionados.clear();
colecaoAditivo.clear();
// Pesquisar Empresa
Empresa empresa = this.pesquisarEmpresaSelecionada(Integer.parseInt(form.getIdEmpresa()));
// Pesquisar Contrato Empresa Servico
ContratoEmpresaServico contratoEmpresaServico = new ContratoEmpresaServico();
// Verificar Data
this.verificarData(form.getDtInicioContrato(), form.getDtFimContrato());
// Verificar se pode adicionar itens
this.verificarPodeAdicionarItem(form.getDtInicioContrato(), form.getDtFimContrato());
contratoEmpresaServico.setEmpresa(empresa);
contratoEmpresaServico.setDescricaoContrato(form.getIdContrato());
// Observa��o
if (form.getObservacao() != null) {
contratoEmpresaServico.setObservacao(form.getObservacao());
} else {
contratoEmpresaServico.setObservacao(null);
}
Date DataInicio = Util.converteStringParaDate(form.getDtInicioContrato());
contratoEmpresaServico.setDataInicioContrato(DataInicio);
if(form.getDtFimContrato() != null && !form.getDtFimContrato().equals("")){
Date DataFim = Util.converteStringParaDate(form.getDtFimContrato());
contratoEmpresaServico.setDataFimContrato(DataFim);
}
contratoEmpresaServico.setUltimaAlteracao( new Date());
// Valida��o do valor do Item do Contrato
BigDecimal igualZero = new BigDecimal(0);
if (form.getValorGlobalContrato() != null && !form.getValorGlobalContrato().equals("")) {
BigDecimal valorGlobalContrato = Util.formatarMoedaRealparaBigDecimal(form.getValorGlobalContrato());
if (valorGlobalContrato.compareTo(igualZero) <= -1){
throw new ActionServletException("atencao.invalido_zero", null ,"O Valor Global do Contrato" );
}
contratoEmpresaServico.setValorGlobalContrato(valorGlobalContrato);
}
if (form.getPercentualTaxaSucesso() != null
&& !form.getPercentualTaxaSucesso()
.equals("")) {
BigDecimal percentualTaxaSucessoAtual = null;
String percentualTaxaSucesso = form.getPercentualTaxaSucesso()
.toString().replace(".", "");
percentualTaxaSucesso = percentualTaxaSucesso.replace(",", ".");
percentualTaxaSucessoAtual = new BigDecimal(percentualTaxaSucesso);
contratoEmpresaServico
.setPercentualTaxaSucesso(percentualTaxaSucessoAtual);
}
// Pesquisar Item Servico Contrato
ItemServicoContrato itemServicoContrato = new ItemServicoContrato();
ItemServico itemServico = this.pesquisaItemServicoSelecionado(
new Integer(form.getIdItemContrato()));
BigDecimal valorItem = Util.formatarMoedaRealparaBigDecimal(form.getValorItemContrato());
if (valorItem.compareTo(igualZero) <= -1){
throw new ActionServletException("atencao.invalido_zero", null ,"O Valor do Item" );
}
// Valida��o do percentual de servi�os n�o executados
BigDecimal percentualServicosNaoExecutados = null;
try{
if(Util.verificarNaoVazio(form.getPercentualServicosNaoExecutados())){
percentualServicosNaoExecutados = Util.formatarMoedaRealparaBigDecimal(form.getPercentualServicosNaoExecutados());
}
}catch (NumberFormatException e) {
throw new ActionServletException("atencao.gsan.campo_formato_invalido", null, "Percentual de servi�os n�o executados");
}
// Valida��o do percentual de servi�os n�o executados
BigDecimal percentualMultaSerAplicada = null;
try{
if(Util.verificarNaoVazio(form.getPercentualMultaAplicar())){
percentualMultaSerAplicada = Util.formatarMoedaRealparaBigDecimal(form.getPercentualMultaAplicar());
}
}catch (NumberFormatException e) {
throw new ActionServletException("atencao.gsan.campo_formato_invalido", null, "Percentual de multa a ser aplicada");
}
// Valida��o de quantidade or�ada para o item de contrato
BigDecimal quantidadeOrcada = null;
try{
if(Util.verificarNaoVazio(form.getQuantidadeOrcadaItemContrato())){
quantidadeOrcada = Util.formatarMoedaRealparaBigDecimal(form.getQuantidadeOrcadaItemContrato());
}
}catch (NumberFormatException e) {
throw new ActionServletException("atencao.gsan.campo_formato_invalido", null, "Quantidade or�ada para o item de contrato");
}
// Valida��o do valor or�ado para o item de contrato
BigDecimal valorOrcado = null;
try{
if(Util.verificarNaoVazio(form.getValorOrcadoItemContrato())){
valorOrcado = Util.formatarMoedaRealparaBigDecimal(form.getValorOrcadoItemContrato());
}
}catch (NumberFormatException e) {
throw new ActionServletException("atencao.gsan.campo_formato_invalido", null, "Valor or�ado para o item de contrato");
}
itemServicoContrato.setPercentualServicosNaoExecutados(percentualServicosNaoExecutados);
itemServicoContrato.setPercentualMultaSerAplicada(percentualMultaSerAplicada);
itemServicoContrato.setQuantidadeOrcadaItemContrato(quantidadeOrcada);
itemServicoContrato.setValorOrcadoItemContrato(valorOrcado);
itemServicoContrato.setItemServico(itemServico);
itemServicoContrato.setValor(valorItem);
itemServicoContrato.setContratoEmpresaServico(contratoEmpresaServico);
itemServicoContrato.setUltimaAlteracao( new Date());
helper.setContratoEmpresaServico(contratoEmpresaServico);
colecaoItemServicoContratoSelecionados.add(itemServicoContrato);
// o sistema classifica a lista de ItemServicoContrato recebidas por contrato
Collections.sort((List) colecaoItemServicoContratoSelecionados,
new Comparator() {
public int compare(Object a, Object b) {
String codigo1 = ((ItemServicoContrato) a)
.getItemServico().getDescricao();
String codigo2 = ((ItemServicoContrato) b)
.getItemServico().getDescricao();
if (codigo1 == null || codigo1.equals("")) {
return -1;
} else {
return codigo1.compareTo(codigo2);
}
}
});
helper.setItemServicoContrato((List<ItemServicoContrato>) colecaoItemServicoContratoSelecionados);
colecaoHelper.add(helper);
// o sistema classifica a lista de ItemServicoContrato recebidas por contrato
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);
httpServletRequest.setAttribute("idContrato", form.getIdContrato());
form.setIdContrato("");
form.setDtInicioContrato("");
form.setDtFimContrato("");
form.setValorItemContrato("");
form.setValorGlobalContrato("");
form.setPercentualTaxaSucesso("");
form.setIdItemContrato("-1");
form.setObservacao("");
form.setIdServicoTipo("");
form.setDescricaoServicoTipo("");
form.setPercentualServicosNaoExecutados("");
form.setPercentualMultaAplicar("");
form.setQuantidadeOrcadaItemContrato("");
form.setValorOrcadoItemContrato("");
}
}
// Verifica se o usuario clicou no botao adicionar
if ( httpServletRequest.getParameter("acao") != null &&
httpServletRequest.getParameter("acao").equals("adicionar") && form.getIdEmpresa() != null
&& !form.getIdEmpresa().equals("-1") && !form.getIdContrato().equals("") &&
form.getIdNumeroContrato()!= null && !form.getIdNumeroContrato().equals("")
&& !form.getDtInicioContrato().equals("") && !form.getIdItemContrato().equals("-1")
&& !form.getValorItemContrato().equals("")) {
posicaoComponente = new Integer(form.getIdNumeroContrato());
// Verificar Data
this.verificarData(form.getDtInicioContrato(), form.getDtFimContrato());
// Verificar se pode adicionar itens
this.verificarPodeAdicionarItem(form.getDtInicioContrato(), form.getDtFimContrato());
colecaoItemServicoContratoSelecionados.clear();
colecaoAditivo.clear();
if (colecaoHelper.size() >= posicaoComponente) {
InformarItensContratoServicoHelper helper = (InformarItensContratoServicoHelper)
colecaoHelper.get(posicaoComponente-1);
ItemServico itemServico = this.pesquisaItemServicoSelecionado(
new Integer(form.getIdItemContrato()));
ContratoEmpresaServico contratoEmpresaServico = helper.getContratoEmpresaServico();
colecaoAditivo = (ArrayList) helper.getContratoEmpresaAditivo();
if(helper.getItemServicoContrato() != null && helper.getItemServicoContrato().size() > 0){
Iterator iteratorItemServicoContrato = helper.getItemServicoContrato().iterator();
// Valida se ja existe itens de contrato
while (iteratorItemServicoContrato.hasNext()) {
ItemServicoContrato itemServicoContrato = (ItemServicoContrato) iteratorItemServicoContrato.next();
if ( itemServico.getId().intValue() == itemServicoContrato.getItemServico().getId().intValue() ) {
colecaoItemServicoContratoSelecionados.clear();
throw new ActionServletException("atencao.item_contrato_ja_informado",
null ,"Item Contrato" );
}
colecaoItemServicoContratoSelecionados.add(itemServicoContrato);
}
}
// Valida��o do valor do Item de Contrato
BigDecimal valorItemContrato = Util.formatarMoedaRealparaBigDecimal
(form.getValorItemContrato());
// Valida��o do valor do Item do Contrato
BigDecimal igualZero = new BigDecimal(0);
if (valorItemContrato.compareTo(igualZero) <= -1){
throw new ActionServletException("atencao.invalido_zero", null ,"O Valor do Item" );
}
ItemServicoContrato itemServicoContrato = new ItemServicoContrato();
itemServicoContrato.setItemServico(itemServico);
itemServicoContrato.setValor(valorItemContrato);
itemServicoContrato.setContratoEmpresaServico(contratoEmpresaServico);
itemServicoContrato.setUltimaAlteracao(new Date());
if (form.getIdServicoTipo() != null && !form.getIdServicoTipo().equals("")) {
FiltroServicoTipo filtroServicoTipo = new FiltroServicoTipo();
filtroServicoTipo.adicionarParametro(new ParametroSimples(
FiltroServicoTipo.ID, form.getIdServicoTipo()));
filtroServicoTipo.adicionarParametro(new ParametroSimples(
FiltroServicoTipo.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection servicoTipoEncontrado = fachada.pesquisar(
filtroServicoTipo, ServicoTipo.class.getName());
if (servicoTipoEncontrado != null && !servicoTipoEncontrado.isEmpty()) {
ServicoTipo servicoTipo = (ServicoTipo) Util.retonarObjetoDeColecao(servicoTipoEncontrado);
itemServicoContrato.setServicoTipo(servicoTipo);
} else {
itemServicoContrato.setServicoTipo(null);
}
}
// Valida��o do percentual de servi�os n�o executados
BigDecimal percentualServicosNaoExecutados = null;
try{
if(Util.verificarNaoVazio(form.getPercentualServicosNaoExecutados())){
percentualServicosNaoExecutados = Util.formatarMoedaRealparaBigDecimal(form.getPercentualServicosNaoExecutados());
}
}catch (NumberFormatException e) {
throw new ActionServletException("atencao.gsan.campo_formato_invalido", null, "Percentual de servi�os n�o executados");
}
// Valida��o do percentual de servi�os n�o executados
BigDecimal percentualMultaSerAplicada = null;
try{
if(Util.verificarNaoVazio(form.getPercentualMultaAplicar())){
percentualMultaSerAplicada = Util.formatarMoedaRealparaBigDecimal(form.getPercentualMultaAplicar());
}
}catch (NumberFormatException e) {
throw new ActionServletException("atencao.gsan.campo_formato_invalido", null, "Percentual de multa a ser aplicada");
}
// Valida��o de quantidade or�ada para o item de contrato
BigDecimal quantidadeOrcada = null;
try{
if(Util.verificarNaoVazio(form.getQuantidadeOrcadaItemContrato())){
quantidadeOrcada = Util.formatarMoedaRealparaBigDecimal(form.getQuantidadeOrcadaItemContrato());
}
}catch (NumberFormatException e) {
throw new ActionServletException("atencao.gsan.campo_formato_invalido", null, "Quantidade or�ada para o item de contrato");
}
// Valida��o do valor or�ado para o item de contrato
BigDecimal valorOrcado = null;
try{
if(Util.verificarNaoVazio(form.getValorOrcadoItemContrato())){
valorOrcado = Util.formatarMoedaRealparaBigDecimal(form.getValorOrcadoItemContrato());
}
}catch (NumberFormatException e) {
throw new ActionServletException("atencao.gsan.campo_formato_invalido", null, "Valor or�ado para o item de contrato");
}
itemServicoContrato.setPercentualServicosNaoExecutados(percentualServicosNaoExecutados);
itemServicoContrato.setPercentualMultaSerAplicada(percentualMultaSerAplicada);
itemServicoContrato.setQuantidadeOrcadaItemContrato(quantidadeOrcada);
itemServicoContrato.setValorOrcadoItemContrato(valorOrcado);
colecaoItemServicoContratoSelecionados.add(itemServicoContrato);
// o sistema classifica a lista de ItemServicoContrato recebidas por contrato
Collections.sort((List) colecaoItemServicoContratoSelecionados,
new Comparator() {
public int compare(Object a, Object b) {
String codigo1 = ((ItemServicoContrato) a)
.getItemServico().getDescricao();
String codigo2 = ((ItemServicoContrato) b)
.getItemServico().getDescricao();
if (codigo1 == null || codigo1.equals("")) {
return -1;
} else {
return codigo1.compareTo(codigo2);
}
}
});
helper.setItemServicoContrato((List<ItemServicoContrato>) colecaoItemServicoContratoSelecionados);
helper.setContratoEmpresaServico(contratoEmpresaServico);
helper.setContratoEmpresaAditivo(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);
sessao.setAttribute("colecaoItemServicoContratoSelecionados",
colecaoItemServicoContratoSelecionados);
sessao.setAttribute("colecaoAditivo", colecaoAditivo);
form.setIdItemContrato("-1");
form.setValorItemContrato("");
form.setIdServicoTipo("");
form.setDescricaoServicoTipo("");
form.setPercentualServicosNaoExecutados("");
form.setPercentualMultaAplicar("");
form.setQuantidadeOrcadaItemContrato("");
form.setValorOrcadoItemContrato("");
}
}
// Remover Itens do Contrato da Colecao
if ( httpServletRequest.getParameter("acao") != null &&
httpServletRequest.getParameter("acao").equals("remover") ) {
posicaoComponente = new Integer(form.getIdNumeroContrato());
Integer indice = new Integer(httpServletRequest.getParameter("id")).intValue();
if (colecaoHelper.size() >= posicaoComponente) {
InformarItensContratoServicoHelper helper = (InformarItensContratoServicoHelper)
colecaoHelper.get(posicaoComponente-1);
ContratoEmpresaServico contratoEmpresaServico = helper.getContratoEmpresaServico();
colecaoItemServicoContratoSelecionados = (ArrayList) helper.getItemServicoContrato();
// o sistema classifica a lista de ItemServicoContrato recebidas por contrato
Collections.sort((List) colecaoItemServicoContratoSelecionados,
new Comparator() {
public int compare(Object a, Object b) {
String codigo1 = ((ItemServicoContrato) a)
.getItemServico().getDescricao();
String codigo2 = ((ItemServicoContrato) b)
.getItemServico().getDescricao();
if (codigo1 == null || codigo1.equals("")) {
return -1;
} else {
return codigo1.compareTo(codigo2);
}
}
});
if (colecaoItemServicoContratoSelecionados != null &&
!colecaoItemServicoContratoSelecionados.isEmpty() &&
colecaoItemServicoContratoSelecionados.size() > 0) {
if (colecaoItemServicoContratoSelecionados.size() >= indice) {
colecaoItemServicoContratoSelecionados.remove(indice-1);
}
sessao.setAttribute("colecaoItemServicoContratoSelecionados", colecaoItemServicoContratoSelecionados);
} else if (colecaoItemServicoContratoSelecionados.size() <= 0){
throw new ActionServletException("atencao.item_contrato_existente", null ,"Item Contrato" );
}
helper.setItemServicoContrato((List<ItemServicoContrato>) colecaoItemServicoContratoSelecionados);
helper.setContratoEmpresaServico(contratoEmpresaServico);
colecaoHelper.remove(posicaoComponente-1);
colecaoHelper.add(helper);
sessao.setAttribute("colecaoHelper", colecaoHelper);
}
}
// Remover Aditivos da Colecao
if ( httpServletRequest.getParameter("acao") != null &&
httpServletRequest.getParameter("acao").equals("removerAditivo") ) {
posicaoComponente = new Integer(form.getIdNumeroContrato());
Integer indice = new Integer(httpServletRequest.getParameter("idAditivo")).intValue();
if (colecaoHelper.size() >= posicaoComponente) {
InformarItensContratoServicoHelper helper = (InformarItensContratoServicoHelper)
colecaoHelper.get(posicaoComponente-1);
ContratoEmpresaServico contratoEmpresaServico = helper.getContratoEmpresaServico();
colecaoAditivo = (ArrayList) helper.getContratoEmpresaAditivo();
colecaoItemServicoContratoSelecionados = (ArrayList) helper.getItemServicoContrato();
// o sistema classifica a lista de ItemServicoContrato recebidas por contrato
Collections.sort((List) colecaoItemServicoContratoSelecionados,
new Comparator() {
public int compare(Object a, Object b) {
String codigo1 = ((ItemServicoContrato) a)
.getItemServico().getDescricao();
String codigo2 = ((ItemServicoContrato) b)
.getItemServico().getDescricao();
if (codigo1 == null || codigo1.equals("")) {
return -1;
} else {
return codigo1.compareTo(codigo2);
}
}
});
sessao.removeAttribute("colecaoItemServicoContratoSelecionados");
sessao.setAttribute("colecaoItemServicoContratoSelecionados", colecaoItemServicoContratoSelecionados);
if (colecaoAditivo != null &&
!colecaoAditivo.isEmpty() &&
colecaoAditivo.size() > 0) {
if (colecaoAditivo.size() >= indice) {
colecaoAditivo.remove(indice-1);
}
sessao.removeAttribute("colecaoAditivo");
sessao.setAttribute("colecaoAditivo", colecaoAditivo);
helper.setContratoEmpresaAditivo((List<ContratoEmpresaAditivo>) colecaoAditivo);
helper.setContratoEmpresaServico(contratoEmpresaServico);
colecaoHelper.remove(posicaoComponente-1);
colecaoHelper.add(helper);
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("contratoSelecionado", true);
sessao.setAttribute("contratoSelecionado", true);
sessao.setAttribute("colecaoHelper", colecaoHelper);
}
}
}
// Pesquisar Tipo de Servi�o
String idServicoTipo = form.getIdServicoTipo();
String descricaoServicoTipo = form.getDescricaoServicoTipo();
if ((idServicoTipo != null && !idServicoTipo.equals(""))
&& (descricaoServicoTipo == null || descricaoServicoTipo.equals(""))) {
FiltroServicoTipo filtroServicoTipo = new FiltroServicoTipo();
filtroServicoTipo.adicionarParametro(new ParametroSimples(
FiltroServicoTipo.ID, idServicoTipo));
filtroServicoTipo.adicionarParametro(new ParametroSimples(
FiltroServicoTipo.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection servicoTipoEncontrado = fachada.pesquisar(
filtroServicoTipo, ServicoTipo.class.getName());
if (servicoTipoEncontrado != null && !servicoTipoEncontrado.isEmpty()) {
ServicoTipo servicoTipo = (ServicoTipo) Util.retonarObjetoDeColecao(servicoTipoEncontrado);
// O servi�o tipo foi encontrado
form.setIdServicoTipo("" + servicoTipo.getId());
form.setDescricaoServicoTipo(servicoTipo.getDescricao());
httpServletRequest.setAttribute("idServicoTipoNaoEncontrado", "true");
httpServletRequest.setAttribute("nomeCampo", "ButtonAtividade");
} else {
form.setIdServicoTipo("");
httpServletRequest.setAttribute("nomeCampo", "idServicoTipo");
httpServletRequest.setAttribute("idServicoTipoNaoEncontrado", "exception");
form.setDescricaoServicoTipo("Tipo Servi�o Inexistente");
}
}
this.verificarData(form.getDtInicioContrato(), form.getDtFimContrato());
}catch (NumberFormatException e) {
throw new ActionServletException("atencao.gsan.campo_formato_invalido", null, "teste");
}
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" );
}
}
}
private void verificarPodeAdicionarItem(String dataInicio, String dataFim) {
// Verifica se a Data Final � maior que a Inicial
if ( dataInicio != null && !dataInicio.equals("")
&& dataFim != null && !dataFim.equals("")){
Date dtFinal = Util.converteStringParaDate( dataFim);
if (Util.compararData(dtFinal, new Date()) == -1){
throw new ActionServletException("atencao.item_contrato_nao_pode_ser_informado", null ,"" );
}
}
}
private void pesquisarEmpresa(HttpSession sessao,
ExibirInformarItensContratoServicoActionForm form){
FiltroEmpresa filtroEmpresa = new FiltroEmpresa();
filtroEmpresa.setConsultaSemLimites(true);
filtroEmpresa.adicionarParametro( new ParametroSimples( FiltroEmpresa.INDICADOR_EMPRESA_PRINCIPAL,
new Short("2") ));
filtroEmpresa.adicionarParametro( new ParametroSimples(
FiltroEmpresa.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO));
filtroEmpresa.setCampoOrderBy(FiltroOperacao.DESCRICAO);
Collection colecaoEmpresa =
this.getFachada().pesquisar(filtroEmpresa, Empresa.class.getName());
if (colecaoEmpresa == null || colecaoEmpresa.isEmpty()) {
throw new ActionServletException("atencao.naocadastrado", null, "Empresa");
} else {
sessao.setAttribute("colecaoEmpresa", colecaoEmpresa);
}
}
private Empresa pesquisarEmpresaSelecionada(Integer idEmpresa){
Empresa retorno = null;
FiltroEmpresa filtroEmpresa = new FiltroEmpresa();
filtroEmpresa.adicionarParametro( new ParametroSimples( FiltroEmpresa.ID, idEmpresa));
Collection colecaoEmpresa =
this.getFachada().pesquisar(filtroEmpresa, Empresa.class.getName());
if (colecaoEmpresa != null && !colecaoEmpresa.isEmpty()) {
Empresa empresa = (Empresa) Util.retonarObjetoDeColecao(colecaoEmpresa);
retorno = empresa;
}
return retorno;
}
private void pesquisaItemServico(HttpSession sessao,
ExibirInformarItensContratoServicoActionForm form){
FiltroItemServico filtroItemServico = new FiltroItemServico();
filtroItemServico.setConsultaSemLimites(true);
filtroItemServico.adicionarParametro( new ParametroSimples( FiltroItemServico.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
filtroItemServico.setCampoOrderBy(FiltroItemServico.DESCRICAO);
Collection colecaoItemServico =
this.getFachada().pesquisar(filtroItemServico, ItemServico.class.getName());
if (colecaoItemServico == null || colecaoItemServico.isEmpty()) {
throw new ActionServletException("atencao.naocadastrado", null, "Item Servico");
} else {
sessao.setAttribute("colecaoItemServico", colecaoItemServico);
}
}
private ItemServico pesquisaItemServicoSelecionado(Integer idItemServico){
ItemServico retorno = null;
FiltroItemServico filtroItemServico = new FiltroItemServico();
filtroItemServico.adicionarParametro( new ParametroSimples( FiltroItemServico.ID, idItemServico));
Collection colecaoItemServico =
this.getFachada().pesquisar(filtroItemServico, ItemServico.class.getName());
if (colecaoItemServico != null && !colecaoItemServico.isEmpty()) {
ItemServico itemServico = (ItemServico) Util.retonarObjetoDeColecao(colecaoItemServico);
retorno = itemServico;
}
return retorno;
}
}