Beispiel #1
0
    /// <summary>
    /// Verifica o tipo de documento selecionado
    /// e mostra somente os campos correspondentes a esse tipo de documento.
    /// </summary>
    /// <param name="e">Item do repeater</param>
    public void MostraCamposCorretosDeCadaDocumento(RepeaterItemEventArgs e)
    {
        var tiposDocumentos = _VS_tipos_documentos;

        //CASO A VIEWSTATE DE TIPOS DE DOCUMENTOS NÃO EXISTA, DÁ GET NO BANCO E SETA PARA A MESMA
        if (tiposDocumentos == null)
        {
            tiposDocumentos = SYS_TipoDocumentacaoBO.GetSelect(Guid.Empty, "", "", 0, false, 1, 1);

            _VS_tipos_documentos = tiposDocumentos;
        }

        //CAMPOS(DIVS) QUE DEVERÃO SER MOSTRADAS OU OCULTADAS DEPENDENDO DO TIPO DE DOCUMENTO
        var campos = new string[] { "Categoria", "Classificacao", "Csm", "DtEmissao", "DataEntrada"
                                    , "DataExpedicao", "DataValidade", "UF", "InfCompl", "NumDoc", "OrgEmissor", "Pais"
                                    , "NumeroRA", "RegiaoMilitar", "Secao", "Serie", "TipoGuarda", "Via"
                                    , "Zona" };

        //PEGA OS ATRIBUTOS DE CADA DOCUMENTO
        var atributos = (from DataRow dr in tiposDocumentos.Rows
                         where (Guid)dr["tdo_id"] == new Guid(((DropDownList)e.Item.FindControl("ddlTipoDoc")).SelectedValue)
                         select(dr["tdo_atributos"] != DBNull.Value ? (string)dr["tdo_atributos"] : null)).FirstOrDefault();

        //CASO O CAMPO ATRIBUTOS ESTEJA NULO, DA GET NO BANCO NOS ATRIBUTOS DEFAULT
        if (String.IsNullOrEmpty(atributos))
        {
            atributos = _VS_tipos_documentos_atributos_default;

            if (String.IsNullOrEmpty(atributos))
            {
                try
                {
                    var tipoDocumentacaoAtributos = SYS_TipoDocumentacaoAtributoBO.SelecionarAtributos();

                    var auxAtributo = (from DataRow dr in tipoDocumentacaoAtributos.Rows
                                       select(dr["tda_default"] != DBNull.Value ? (bool)dr["tda_default"] : false));

                    auxAtributo.ToList().ForEach(x => atributos += Convert.ToByte(x));
                }
                catch (Exception ex)
                {
                    atributos = "0001000111100000000";
                }

                _VS_tipos_documentos_atributos_default = atributos;
            }
        }

        if (atributos != null)
        {
            //ESCONDE OS CAMPOS QUE NÃO PERTENCEM AO TIPO DE DOCUMENTO ESCOLHIDO
            for (int i = 0; i < atributos.Length; i++)
            {
                if (atributos[i] == '0')
                {
                    (e.Item.FindControl(campos[i])).Visible = false;
                }
            }
        }
    }
    protected void CarregarAtributos(bool selecionarAtributosDefault = false)
    {
        // Carrega os atributos do tipo de documento, validando se é para checar os atributos que estão marcados como default
        DataTable dt = SYS_TipoDocumentacaoAtributoBO.SelecionarAtributos();

        _ckbAtributos.Items.Clear();
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            _ckbAtributos.Items.Add(new ListItem(dt.Rows[i]["tda_descricao"].ToString(), dt.Rows[i]["tda_id"].ToString()));

            if (selecionarAtributosDefault)
            {
                if ((bool)dt.Rows[i]["tda_default"])
                {
                    _ckbAtributos.Items.FindByValue(dt.Rows[i]["tda_id"].ToString()).Selected = true;
                }
            }
        }
    }