/// <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; } } } }
private void _LoadFromEntity(Guid tdo_id) { try { string atributos = ""; int posId = 0; SYS_TipoDocumentacao TipoDocumentacao = new SYS_TipoDocumentacao { tdo_id = tdo_id }; SYS_TipoDocumentacaoBO.GetEntity(TipoDocumentacao); _VS_tdo_id = TipoDocumentacao.tdo_id; _ddlClassificacao.SelectedValue = TipoDocumentacao.tdo_classificacao.ToString(); _txtDocumento.Text = TipoDocumentacao.tdo_nome; _txtSigla.Text = TipoDocumentacao.tdo_sigla; _ddlValidacao.SelectedValue = TipoDocumentacao.tdo_validacao.ToString(); _ckbBloqueado.Checked = !TipoDocumentacao.tdo_situacao.Equals(1); _ckbBloqueado.Visible = true; if (_ddlClassificacao.SelectedValue.ToString() != "99") { atributos = TipoDocumentacao.tdo_atributos; } else { atributos = SYS_TipoDocumentacaoAtributoBO.SelecionarStringAtributosDefault(); } CarregarAtributos(); if (!string.IsNullOrEmpty(atributos)) { // Verifica quais foram os atributos selecionados foreach (ListItem item in _ckbAtributos.Items) { posId = Convert.ToInt16(item.Value); if (posId <= atributos.Length) { if (atributos.Substring(posId - 1, 1) == "1") { item.Selected = true; } } } } // Habilita/Desabilita os checkboxes se a classificação estiver default OnOffAtributosDefault(_ddlClassificacao.SelectedValue.ToString() == "99" ? false : true); } catch (Exception e) { ApplicationWEB._GravaErro(e); _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar carregar o tipo de documentação.", UtilBO.TipoMensagem.Erro); } }
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; } } } }