Package ecar.dao

Source Code of ecar.dao.SisGrupoAtributoDao

/*
* Created on 02/12/2004
*
*/
package ecar.dao;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

import javax.servlet.http.HttpServletRequest;

import comum.database.Dao;

import ecar.exception.ECARException;
import ecar.pojo.AtributoDemandaAtbdem;
import ecar.pojo.SisAtributoSatb;
import ecar.pojo.SisGrupoAtributoSga;
import ecar.pojo.SisTipoExibicGrupoSteg;

/**
* @author evandro
* @author felipe
*
*/
public class SisGrupoAtributoDao
    extends Dao
{
    /**
     * Construtor. Chama o Session factory do Hibernate
     * @param request
     */
    public SisGrupoAtributoDao( HttpServletRequest request )
    {
        super(  );
        this.request = request;
    }

    /**
     * Construtor padr�o.
     * @author garten
     *
     */
    public SisGrupoAtributoDao(  )
    {
        super(  );
    }

    /**
     * Devolve uma lista com os Grupos de Atributo que devem aparecer no
     * cadastro do usu�rio, ou seja, os ativos e os que n�o s�o atributos do
     * sistema, ordenados pela sequ�ncia de apresenta��o.
     *
     * @param indTabelaUso
     * @return
     * @throws ECARException
     */
    public List getGruposAtributosCadastro( String indTabelaUso )
                                    throws ECARException
    {
        SisGrupoAtributoSga sisGrupoAtributo = new SisGrupoAtributoSga(  );
        sisGrupoAtributo.setIndAtivoSga( "S" );
        sisGrupoAtributo.setIndSistemaSga( "N" );

        if ( "U".equals( indTabelaUso ) )
        {
            sisGrupoAtributo.setIndCadUsuSga( "S" );
        } else
        {
            sisGrupoAtributo.setIndTabelaUsoSga( indTabelaUso );
        }

        return this.pesquisar( sisGrupoAtributo,
                               new String[] { "seqApresentacaoSga", "asc" } );
    }

    /**
    * Devolve uma lista com os Grupos de Atributo que devem aparecer no
     * cadastro do usu�rio, ou seja, os ativos e os que n�o s�o atributos do
     * sistema, ordenados pela sequ�ncia de apresenta��o.
     *
     * @return
     * @throws ECARException
     */
    public List getGruposAtributosCadastroUsuarioSite(  )
                                               throws ECARException
    {
        SisGrupoAtributoSga sisGrupoAtributo = new SisGrupoAtributoSga(  );
        sisGrupoAtributo.setIndAtivoSga( "S" );
        sisGrupoAtributo.setIndSistemaSga( "N" );
        sisGrupoAtributo.setIndCadSiteSga( "S" );

        return this.pesquisar( sisGrupoAtributo,
                               new String[] { "seqApresentacaoSga", "asc" } );
    }

    /**
     * Retorna um List com os Atributos de um Grupo de Atributos ordenados de
     * acordo com o par�metro para definir ordena��o dos atributos do grupo
     *
     * @param sisGrupoAtributo
     * @return
     * @throws ECARException
     */
    public List getAtributosOrdenados( SisGrupoAtributoSga sisGrupoAtributo )
                               throws ECARException
    {
        List retorno = new ArrayList(  );

        if ( sisGrupoAtributo.getSisTipoOrdenacaoSto(  ) != null )
        {
            if ( sisGrupoAtributo.getSisTipoOrdenacaoSto(  ).getCodSto(  ).toString(  )
                                     .equals( SisTipoOrdenacaoDao.CODIGO_ASC ) )
            {
                retorno =
                    this.ordenaSet( sisGrupoAtributo.getSisAtributoSatbs(  ),
                                    "this.codSatb",
                                    "asc" );
            }

            if ( sisGrupoAtributo.getSisTipoOrdenacaoSto(  ).getCodSto(  ).toString(  )
                                     .equals( SisTipoOrdenacaoDao.CODIGO_DESC ) )
            {
                retorno =
                    this.ordenaSet( sisGrupoAtributo.getSisAtributoSatbs(  ),
                                    "this.codSatb",
                                    "desc" );
            }

            if ( sisGrupoAtributo.getSisTipoOrdenacaoSto(  ).getCodSto(  ).toString(  )
                                     .equals( SisTipoOrdenacaoDao.DESCRICAO_ASC ) )
            {
                retorno =
                    this.ordenaSet( sisGrupoAtributo.getSisAtributoSatbs(  ),
                                    "this.descricaoSatb",
                                    "asc" );
            }

            if ( sisGrupoAtributo.getSisTipoOrdenacaoSto(  ).getCodSto(  ).toString(  )
                                     .equals( SisTipoOrdenacaoDao.DESCRICAO_DESC ) )
            {
                retorno =
                    this.ordenaSet( sisGrupoAtributo.getSisAtributoSatbs(  ),
                                    "this.descricaoSatb",
                                    "desc" );
            }

            if ( sisGrupoAtributo.getSisTipoOrdenacaoSto(  ).getCodSto(  ).toString(  )
                                     .equals( SisTipoOrdenacaoDao.INF_COMPLEMENTAR_ASC ) )
            {
                retorno =
                    this.ordenaSet( sisGrupoAtributo.getSisAtributoSatbs(  ),
                                    "this.atribInfCompSatb",
                                    "asc" );
            }

            if ( sisGrupoAtributo.getSisTipoOrdenacaoSto(  ).getCodSto(  ).toString(  )
                                     .equals( SisTipoOrdenacaoDao.INF_COMPLEMENTAR_DESC ) )
            {
                retorno =
                    this.ordenaSet( sisGrupoAtributo.getSisAtributoSatbs(  ),
                                    "this.atribInfCompSatb",
                                    "desc" );
            }

            retorno = getSisAtributoSatbsAtivos( retorno );
        } else
        {
            retorno.addAll( getSisAtributoSatbsAtivos( new ArrayList( sisGrupoAtributo.getSisAtributoSatbs(  ) ) ) );

//            retorno.addAll(sisGrupoAtributo.getSisAtributoSatbs());
        }

        return retorno;
    }

    /**
    *
    * @param sisGrupoAtributo
    * @throws ECARException
    */
   public void alterar(SisGrupoAtributoSga sisGrupoAtributo, Long sisTipoExibicGrupoSteg)
                throws ECARException {
       try {
           boolean alterar = true;
          
           EstruturaDao estruturaDao = new EstruturaDao(this.request);
           if( estruturaDao.verificaSisGrupoAtributoRestringirVisualizacao(sisGrupoAtributo) &&
              !sisGrupoAtributo.getSisTipoExibicGrupoSteg().getCodSteg().toString().equals(sisTipoExibicGrupoSteg.toString()) ) {
               alterar = false;
               throw new ECARException("sisGrupoAtributo.validacao.sisTipoExibicGrupoSteg");
           } else {
             sisGrupoAtributo.setSisTipoExibicGrupoSteg((SisTipoExibicGrupoSteg)this.buscar(SisTipoExibicGrupoSteg.class, sisTipoExibicGrupoSteg));
           }
          
           if(alterar) {
               super.alterar(sisGrupoAtributo);
           }
       } catch(ECARException e) {
           this.logger.error(e);
           throw e;
       }
   }
          
    /**
     *
     * @param sisGrupoAtributo
     * @throws ECARException
     */
    public void excluir( SisGrupoAtributoSga sisGrupoAtributo )
                 throws ECARException
    {
        try
        {
            boolean excluir = true;
           
            EstruturaDao estruturaDao = new EstruturaDao(this.request);
            if(estruturaDao.verificaSisGrupoAtributoRestringirVisualizacao(sisGrupoAtributo)) {
                excluir = false;
                throw new ECARException("sisGrupoAtributo.exclusao.erro.sisGrpAtbRestringeVisualizacao");
            }
           
            if ( contar( sisGrupoAtributo.getSegmentoSgts(  ) ) > 0 )
            {
                excluir = false;
                throw new ECARException( "sisGrupoAtributo.exclusao.erro.segmentoSgts" );
            }

            if ( contar( sisGrupoAtributo.getSisAtributoSatbs(  ) ) > 0 )
            {
                excluir = false;
                throw new ECARException( "sisGrupoAtributo.exclusao.erro.sisAtributoSatbs" );
            }

            if ( contar( sisGrupoAtributo.getConfiguracaoCfgsByCodSgaGrAtrPgIni(  ) ) > 0 )
            {
                excluir = false;
                throw new ECARException( "sisGrupoAtributo.exclusao.erro.configuracaoCfgsByCodSgaGrAtrPgIni" );
            }

            if ( contar( sisGrupoAtributo.getConfiguracaoCfgsByCodSgaGrAtrNvPlan(  ) ) > 0 )
            {
                excluir = false;
                throw new ECARException( "sisGrupoAtributo.exclusao.erro.configuracaoCfgsByCodSgaGrAtrNvPlan" );
            }

            if ( contar( sisGrupoAtributo.getConfiguracaoCfgsByCodSgaGrAtrClAcesso(  ) ) > 0 )
            {
                excluir = false;
                throw new ECARException( "sisGrupoAtributo.exclusao.erro.configuracaoCfgsByCodSgaGrAtrClAcesso" );
            }

            if ( contar( sisGrupoAtributo.getConfiguracaoCfgsByCodSgaGrAtrLeiCapa(  ) ) > 0 )
            {
                excluir = false;
                throw new ECARException( "sisGrupoAtributo.exclusao.erro.configuracaoCfgsByCodSgaGrAtrLeiCapa" );
            }

            if ( contar( sisGrupoAtributo.getConfiguracaoCfgsByCodSgaGrAtrTpAcesso(  ) ) > 0 )
            {
                excluir = false;
                throw new ECARException( "sisGrupoAtributo.exclusao.erro.configuracaoCfgsByCodSgaGrAtrTpAcesso" );
            }

            // pesquisa nos grupos de atributos na demanda
            if ( sisGrupoAtributo.getIndTabelaUsoSga(  ).equals( "D" ) )
            {
                //valida a exclusao para o caso de demandas
                excluir = validaExclusaoDemanda( sisGrupoAtributo );
            }

            if ( excluir )
            {
                super.excluir( sisGrupoAtributo );
            }
        } catch ( ECARException e )
        {
            this.logger.error( e );
            throw e;
        }
    }

    /**
     * Retornar os Atributos definidos como Classes de Acesso em Configura��es.
     *
     * @return
     * @throws ECARException
     */
    public Set getClassesDeAcesso(  )
                           throws ECARException
    {
        SisGrupoAtributoSga grupoAtributosClasseAcesso =
            new ConfiguracaoDao( request ).getConfiguracao(  ).getSisGrupoAtributoSgaByCodSgaGrAtrClAcesso(  );
        Set lAtributosClasseAcesso = grupoAtributosClasseAcesso.getSisAtributoSatbs(  );

        return lAtributosClasseAcesso;
    }

    /**
    * Devolve uma String com c�digo Javascript para validar Grupos de Atributos
    * da Lista
    *
    * @param atributosObrigatorios
    * @return String com codigo Javascript
    */
    public String getValidacoesAtributos( List atributosObrigatorios )
    {
        return getValidacoesAtributos( atributosObrigatorios, false );
    }

    /**
     * Devolve uma String com c�digo Javascript para validar Grupos de Atributos
     * da Lista
     *
     * @param atributosObrigatorios
     * @param cadastroUsuario
     * @return String com codigo Javascript
     */
    public String getValidacoesAtributos( List atributosObrigatorios, boolean cadastroUsuario )
    {
        StringBuilder script = new StringBuilder( "" );
        Iterator it = atributosObrigatorios.iterator(  );

        while ( it.hasNext(  ) )
        {
            SisGrupoAtributoSga grupoAtributo = (SisGrupoAtributoSga) it.next(  );
            script.append( this.getValidacaoAtributo( grupoAtributo, cadastroUsuario ) );
        }

        return script.toString(  );
    }

    /**
     * Devolve uma String com c�digo Javascript para validar Grupos de Atributos do Nivel Planejamento
     *
     * @param atributosObrigatorios
     * @param cadastroUsuario
     * @param labelNivelPlanejamentoNaEstrutura
     * @return String com codigo Javascript
     */
    public String getValidacaoNivelPlanejamento( List atributosObrigatorios, boolean cadastroUsuario,
                                                 String labelNivelPlanejamentoNaEstrutura )
    {
        StringBuilder script = new StringBuilder( "" );
        Iterator it = atributosObrigatorios.iterator(  );

        while ( it.hasNext(  ) )
        {
            SisGrupoAtributoSga grupoAtributo = (SisGrupoAtributoSga) it.next(  );
            script.append( this.getValidacaoAtributo( grupoAtributo, cadastroUsuario, labelNivelPlanejamentoNaEstrutura ) );
        }

        return script.toString(  );
    }

    /**
     *
     * @param grupoAtributo
     * @return
     */
    public String getValidacaoAtributo( SisGrupoAtributoSga grupoAtributo )
    {
        return getValidacaoAtributo( grupoAtributo, false );
    }

    /**
     *
     * @param grupoAtributo
     * @param cadastroUsuario
     * @param labelAtributoNaEstrutura
     * @return
     */
    public String getValidacaoAtributo( SisGrupoAtributoSga grupoAtributo, boolean cadastroUsuario,
                                        String labelAtributoNaEstrutura )
    {
        StringBuilder script = new StringBuilder( "" );

        String labelAtributo = "";

        if ( ( labelAtributoNaEstrutura != null ) && ! labelAtributoNaEstrutura.equals( "" ) )
        {
            labelAtributo = labelAtributoNaEstrutura;
        } else
        {
            labelAtributo = grupoAtributo.getDescricaoSga(  );
        }

        boolean possuiAtributoAtivo = false;

        for ( int i = 0; i < grupoAtributo.getSisAtributoSatbs(  ).size(  ); i++ )
        {
            if ( ( (SisAtributoSatb) grupoAtributo.getSisAtributoSatbs(  ).toArray(  )[i] ).getIndAtivoSatb(  )
                       .equals( "S" ) )
            {
                possuiAtributoAtivo = true;
            }
        }

        String tipoExibicao = "";

        if ( cadastroUsuario && ( grupoAtributo.getSisTipoExibicGrupoCadUsuSteg(  ) != null ) )
        {
            tipoExibicao = grupoAtributo.getSisTipoExibicGrupoCadUsuSteg(  ).getCodSteg(  ).toString(  );
        } else
        {
            tipoExibicao = grupoAtributo.getSisTipoExibicGrupoSteg(  ).getCodSteg(  ).toString(  );
        }

        if ( possuiAtributoAtivo )
        {
            if ( SisTipoExibicGrupoDao.CHECKBOX.equals( tipoExibicao ) )
            {
                script.append( " numChecks = verificaChecks(form, \"" ).append( "a" ).append( grupoAtributo.getCodSga(  ) )
                      .append( "\");\n" ).append( "encontrouChecked = false;\n" ).append( "if(numChecks > 1){\n" )
                      .append( "for(i = 0; i < form." ).append( "a" ).append( grupoAtributo.getCodSga(  ) )
                      .append( ".length; i++){\n" ).append( "if(form." ).append( "a" )
                      .append( grupoAtributo.getCodSga(  ) ).append( "[i].checked == true){\n" )
                      .append( "encontrouChecked = true;" ).append( "}\n" ).append( "}\n" ).append( "}else{" )
                      .append( "if(form." ).append( "a" ).append( grupoAtributo.getCodSga(  ) )
                      .append( ".checked == true){\n" ).append( "encontrouChecked = true;}\n" ).append( "}\n" )
                      .append( "if(!encontrouChecked){\n" ).append( "alert(\"Obrigat�ria a sele��o do Campo " )
                      .append( labelAtributo ).append( "\");\n" ).append( "return false;\n" ).append( "}\n" );
            }

            if ( SisTipoExibicGrupoDao.COMBOBOX.equals( tipoExibicao ) ||
                     SisTipoExibicGrupoDao.LISTBOX.equals( tipoExibicao ) ||
                     SisTipoExibicGrupoDao.TEXTAREA.equals( tipoExibicao ) ||
                     SisTipoExibicGrupoDao.TEXT.equals( tipoExibicao ) )
            {
                script.append( "if(" );
                script.append( " form.a" ).append( grupoAtributo.getCodSga(  ) ).append( "!= null &&" );
                script.append( " !validaString(form." ).append( "a" ).append( grupoAtributo.getCodSga(  ) )
                      .append( ", \"" ).append( labelAtributo ).append( "\", true)){ \n" );
                script.append( "return false;\n" );
                script.append( "}\n" );
            }

            if ( SisTipoExibicGrupoDao.RADIO_BUTTON.equals( tipoExibicao ) )
            {
                // quando tiver apenas 1
                if ( grupoAtributo.getSisAtributoSatbs(  ).size(  ) == 1 )
                {
                    script.append( "if(" );
                    script.append( " form.a" ).append( grupoAtributo.getCodSga(  ) ).append( "!= null &&" );
                    script.append( " form.a" ).append( grupoAtributo.getCodSga(  ) ).append( ".checked == false " );
                    script.append( "){\n" ).append( "alert(\"Obrigat�ria a sele��o do Campo " ).append( labelAtributo )
                          .append( "\");\n" ).append( "return false;\n" ).append( "}" );
                } else
                {
                    script.append( "if(" );

                    for ( int i = 0; i < grupoAtributo.getSisAtributoSatbs(  ).size(  ); i++ )
                    {
                        if ( i > 0 )
                        {
                            script.append( "&&" );
                        }

                        script.append( " form.a" ).append( grupoAtributo.getCodSga(  ) ).append( "[" ).append( i )
                              .append( "] != null &&" );
                        script.append( " form.a" ).append( grupoAtributo.getCodSga(  ) ).append( "[" ).append( i )
                              .append( "].checked == false " );
                    }

                    script.append( "){\n" ).append( "alert(\"Obrigat�ria a sele��o do Campo " ).append( labelAtributo )
                          .append( "\");\n" ).append( "return false;\n" ).append( "}" );
                }
            }

            if ( SisTipoExibicGrupoDao.MULTITEXTO.equals( tipoExibicao ) )
            {
                script.append( "if(" );

                for ( int i = 0; i < grupoAtributo.getSisAtributoSatbs(  ).size(  ); i++ )
                {
                    SisAtributoSatb sisAtributoSatb =
                        (SisAtributoSatb) grupoAtributo.getSisAtributoSatbs(  ).toArray(  )[i];

                    if ( i > 0 )
                    {
                        script.append( " || " );
                    }

                    script.append( " Trim(form.a" ).append( grupoAtributo.getCodSga(  ) ).append( "_" )
                          .append( sisAtributoSatb.getCodSatb(  ).toString(  ) ).append( ".value)==\"\"" );
                }

                script.append( "){\n" ).append( "alert(\"Obrigat�rio o preenchimento de todas as linhas do campo " )
                      .append( labelAtributo ).append( "\");\n" ).append( "return false;\n" ).append( "}" );
            }

            if ( SisTipoExibicGrupoDao.IMAGEM.equals( tipoExibicao ) )
            {
                String path = "";
                String imageDefault = "";

                if ( request != null )
                {
                    path = request.getContextPath(  );
                    imageDefault = "/images/ImagemIndisponivel.gif";
                }

                script.append( " if(!validaImage(form." ).append( "a" ).append( grupoAtributo.getCodSga(  ) )
                      .append( ", \"" ).append( labelAtributo ).append( "\", true" ).append( ", \"" )
                      .append( path + imageDefault + "\")){ \n" );
                script.append( "return false;\n" );
                script.append( "}\n" );
            }

            if ( SisTipoExibicGrupoDao.VALIDACAO.equals( tipoExibicao ) )
            {
                script.append( " if(!validaString(form." ).append( "a" ).append( grupoAtributo.getCodSga(  ) )
                      .append( ", \"" ).append( labelAtributo ).append( "\", true)){ \n" );
                script.append( "return false;\n" );
                script.append( "}\n" );
            }
        }

        return script.toString(  );
    }

    /**
     *
     * @param grupoAtributo
     * @param cadastroUsuario
     * @return
     */
    public String getValidacaoAtributo( SisGrupoAtributoSga grupoAtributo, boolean cadastroUsuario )
    {
        return getValidacaoAtributo( grupoAtributo, cadastroUsuario, "" );
    }

    /**
     *
     * @param grupoAtributo
     * @param novoLabelGrupo
     * @return
     */
    public String getValidacaoAtributo( SisGrupoAtributoSga grupoAtributo, String novoLabelGrupo )
    {
        return getValidacaoAtributo( grupoAtributo, novoLabelGrupo, false );
    }

    //M�todo igual ao getValidacaoAtributo(SisGrupoAtributoSga grupoAtributo), s� que leva em considera��o
    //o label passado
    /**
     *
     * @param grupoAtributo
     * @param novoLabelGrupo
     * @param cadastroUsuario
     * @return
     */
    public String getValidacaoAtributo( SisGrupoAtributoSga grupoAtributo, String novoLabelGrupo,
                                        boolean cadastroUsuario )
    {
        StringBuilder script = new StringBuilder( "" );

        boolean possuiAtributoAtivo = false;

        for ( int i = 0; i < grupoAtributo.getSisAtributoSatbs(  ).size(  ); i++ )
        {
            if ( ( (SisAtributoSatb) grupoAtributo.getSisAtributoSatbs(  ).toArray(  )[i] ).getIndAtivoSatb(  )
                       .equals( "S" ) )
            {
                possuiAtributoAtivo = true;
            }
        }

        String tipoExibicao = "";

        if ( cadastroUsuario && ( grupoAtributo.getSisTipoExibicGrupoCadUsuSteg(  ) != null ) )
        {
            tipoExibicao = grupoAtributo.getSisTipoExibicGrupoCadUsuSteg(  ).getCodSteg(  ).toString(  );
        } else
        {
            tipoExibicao = grupoAtributo.getSisTipoExibicGrupoSteg(  ).getCodSteg(  ).toString(  );
        }

        if ( possuiAtributoAtivo )
        {
            if ( SisTipoExibicGrupoDao.CHECKBOX.equals( tipoExibicao ) )
            {
                script.append( " numChecks = verificaChecks(form, \"" ).append( "a" ).append( grupoAtributo.getCodSga(  ) )
                      .append( "\");\n" ).append( "encontrouChecked = false;\n" ).append( "if(numChecks > 1){\n" )
                      .append( "for(i = 0; i < form." ).append( "a" ).append( grupoAtributo.getCodSga(  ) )
                      .append( ".length; i++){\n" ).append( "if(form." ).append( "a" )
                      .append( grupoAtributo.getCodSga(  ) ).append( "[i].checked == true){\n" )
                      .append( "encontrouChecked = true;" ).append( "}\n" ).append( "}\n" ).append( "}else{" )
                      .append( "if(form." ).append( "a" ).append( grupoAtributo.getCodSga(  ) )
                      .append( ".checked == true){\n" ).append( "encontrouChecked = true;}\n" ).append( "}\n" )
                      .append( "if(!encontrouChecked){\n" ).append( "alert(\"Obrigat�ria a sele��o do Campo " )
                      .append( novoLabelGrupo ).append( "\");\n" ).append( "return false;\n" ).append( "}\n" );
            }

            if ( SisTipoExibicGrupoDao.COMBOBOX.equals( tipoExibicao ) ||
                     SisTipoExibicGrupoDao.LISTBOX.equals( tipoExibicao ) ||
                     SisTipoExibicGrupoDao.TEXTAREA.equals( tipoExibicao ) ||
                     SisTipoExibicGrupoDao.TEXT.equals( tipoExibicao ) )
            {
                //valida atributo apenas se seu grupo estiver ativo
                if ( grupoAtributo.getIndAtivoSga(  ).equals( "S" ) )
                {
                    script.append( " if(!validaString(form." ).append( "a" ).append( grupoAtributo.getCodSga(  ) )
                          .append( ", \"" ).append( novoLabelGrupo ).append( "\", true)){ \n" );
                    script.append( "return false;\n" );
                    script.append( "}\n" );
                }
            }

            if ( SisTipoExibicGrupoDao.RADIO_BUTTON.equals( tipoExibicao ) )
            {
                script.append( "if(" );

                if ( grupoAtributo.getSisAtributoSatbs(  ).size(  ) == 1 )
                {
                    script.append( " form.a" ).append( grupoAtributo.getCodSga(  ) ).append( ".checked == false " )
                          .append( "){\n" ).append( "alert(\"Obrigat�ria a sele��o do Campo " ).append( novoLabelGrupo )
                          .append( "\");\n" ).append( "return false;\n" ).append( "}" );
                } else
                {
                    for ( int i = 0; i < grupoAtributo.getSisAtributoSatbs(  ).size(  ); i++ )
                    {
                        if ( i > 0 )
                        {
                            script.append( "&&" );
                        }

                        script.append( " form.a" ).append( grupoAtributo.getCodSga(  ) ).append( "[" ).append( i )
                              .append( "].checked == false " );
                    }

                    script.append( "){\n" ).append( "alert(\"Obrigat�ria a sele��o do Campo " ).append( novoLabelGrupo )
                          .append( "\");\n" ).append( "return false;\n" ).append( "}" );
                }
            }

            if ( SisTipoExibicGrupoDao.MULTITEXTO.equals( tipoExibicao ) )
            {
                script.append( "if(" );

                for ( int i = 0; i < grupoAtributo.getSisAtributoSatbs(  ).size(  ); i++ )
                {
                    SisAtributoSatb sisAtributoSatb =
                        (SisAtributoSatb) grupoAtributo.getSisAtributoSatbs(  ).toArray(  )[i];

                    if ( i > 0 )
                    {
                        script.append( " || " );
                    }

                    script.append( " Trim(form.a" ).append( grupoAtributo.getCodSga(  ) ).append( "_" )
                          .append( sisAtributoSatb.getCodSatb(  ).toString(  ) ).append( ".value)==\"\"" );
                }

                script.append( "){\n" ).append( "alert(\"Obrigat�rio o preenchimento de todas as linhas do campo " )
                      .append( novoLabelGrupo ).append( "\");\n" ).append( "return false;\n" ).append( "}" );
            }

            if ( SisTipoExibicGrupoDao.IMAGEM.equals( tipoExibicao ) )
            {
                String path = "";
                String imageDefault = "";

                if ( request != null )
                {
                    path = request.getContextPath(  );
                    imageDefault = "/images/ImagemIndisponivel.gif";
                }

                script.append( " if(!validaImage(form." ).append( "a" ).append( grupoAtributo.getCodSga(  ) )
                      .append( ", \"" ).append( novoLabelGrupo ).append( "\", true" ).append( ", \"" )
                      .append( path + imageDefault + "\")){ \n" );
                script.append( "return false;\n" );
                script.append( "}\n" );
            }

            if ( SisTipoExibicGrupoDao.VALIDACAO.equals( tipoExibicao ) )
            {
                script.append( " if(!validaString(form." ).append( "a" ).append( grupoAtributo.getCodSga(  ) )
                      .append( ", \"" ).append( novoLabelGrupo ).append( "\", true)){ \n" );
                script.append( "return false;\n" );
                script.append( "}\n" );
            }
        }

        return script.toString(  );
    }

    /**
     * Valida��es de exclus�o se o grupo de atributos for de demanda
     *
     * @param sisGrupoAtributo
     * @return existe Se for true, pode excluir. Se for false, nao pode excluir
     * @throws ECARException
     */
    public boolean validaExclusaoDemanda( SisGrupoAtributoSga sisGrupoAtributo )
                                  throws ECARException
    {
        boolean excluir = false;

        AtributoDemandaAtbdem atributoDemandaAtbdem = new AtributoDemandaAtbdem(  );
        atributoDemandaAtbdem.setSisGrupoAtributoSga( sisGrupoAtributo );

        //pesquisa se existe algum atributo do grupo de atributos que esteja sendo usado em demanda
        if ( this.pesquisar( atributoDemandaAtbdem, null ).size(  ) > 0 )
        {
            throw new ECARException( "sisGrupoAtributo.exclusao.erro.atributoAssociadoDemanda" );
        } else
        {
            excluir = true;
        }

        return excluir;
    }

    /**
     * Retorna os atribuos livres que s�o ativo
     *
     * @param sisAtributoSatbs
     * @return List
     */
    public static List getSisAtributoSatbsAtivos( List<SisAtributoSatb> sisAtributoSatbs )
    {
        List sisAtributoSatbsAtivos = new ArrayList<SisAtributoSatb>(  );
        Iterator<SisAtributoSatb> it = sisAtributoSatbs.iterator(  );
        int i = 0;

        while ( it.hasNext(  ) )
        {
            SisAtributoSatb type = (SisAtributoSatb) it.next(  );

            if ( ( type.getIndAtivoSatb(  ) != null ) && type.getIndAtivoSatb(  ).equals( "S" ) )
            {
                sisAtributoSatbsAtivos.add( type );
            }
        }

        return sisAtributoSatbsAtivos;
    }
   
    /**
     * Retorna um List com os Atributos de um Grupo de Atributos ordenados de
     * acordo com o par�metro para definir ordena��o dos atributos do grupo
     *
     * @param sisGrupoAtributo
     * @return
     * @throws ECARException
     */
    public List ordenadarSisAtributos( SisGrupoAtributoSga sga, List satbs ) throws ECARException
    {
        List retorno = new ArrayList();

        if ( sga.getSisTipoOrdenacaoSto(  ) != null ) {
            if ( sga.getSisTipoOrdenacaoSto(  ).getCodSto(  ).toString(  )
                                     .equals( SisTipoOrdenacaoDao.CODIGO_ASC ) )
            {
                retorno =
                    this.ordenaListInvert( satbs,
                                    "codSatb");
            }

            if ( sga.getSisTipoOrdenacaoSto(  ).getCodSto(  ).toString(  )
                                     .equals( SisTipoOrdenacaoDao.CODIGO_DESC ) )
            {
                retorno =
                    this.ordenaList(satbs,
                                    "codSatb");
            }

            if ( sga.getSisTipoOrdenacaoSto(  ).getCodSto(  ).toString(  )
                                     .equals( SisTipoOrdenacaoDao.DESCRICAO_ASC ) )
            {
                retorno =
                    this.ordenaListInvert( satbs,
                                    "descricaoSatb");
            }

            if ( sga.getSisTipoOrdenacaoSto(  ).getCodSto(  ).toString(  )
                                     .equals( SisTipoOrdenacaoDao.DESCRICAO_DESC ) )
            {
                retorno =
                    this.ordenaList(satbs,
                                    "descricaoSatb");
            }

            if ( sga.getSisTipoOrdenacaoSto(  ).getCodSto(  ).toString(  )
                                     .equals( SisTipoOrdenacaoDao.INF_COMPLEMENTAR_ASC ) )
            {
                retorno =
                    this.ordenaListInvert( satbs,
                                    "atribInfCompSatb");
            }

            if ( sga.getSisTipoOrdenacaoSto(  ).getCodSto(  ).toString(  )
                                     .equals( SisTipoOrdenacaoDao.INF_COMPLEMENTAR_DESC ) )
            {
                retorno =
                    this.ordenaList(satbs,
                                    "atribInfCompSatb");
            }
        } else {
          retorno = satbs;
        }

        return retorno;
    }
}
TOP

Related Classes of ecar.dao.SisGrupoAtributoDao

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.