115 lines
4.1 KiB
C#
115 lines
4.1 KiB
C#
using CPM;
|
|
using MLL;
|
|
using System;
|
|
using System.Drawing;
|
|
using System.Windows.Forms;
|
|
|
|
namespace UI
|
|
{
|
|
public class PerfilPanel : FormularioModelo
|
|
{
|
|
// Mapeamento absoluto de todas as propriedades do ModeloPerfil
|
|
private LV_TEXTBOX1 txtId;
|
|
private LV_TEXTBOX1 txtEmpresaId;
|
|
private LV_TEXTBOX1 txtNome;
|
|
private LV_TEXTBOX1 txtDescricao;
|
|
private CheckBox chkAtivo;
|
|
|
|
public PerfilPanel()
|
|
{
|
|
this.Titulo = "CONTROLE DE PERFIS DE ACESSO";
|
|
MontarInterfaceCompleta();
|
|
}
|
|
|
|
private void MontarInterfaceCompleta()
|
|
{
|
|
// --- SEÇÃO ÚNICA: ESTRUTURA DO PERFIL ---
|
|
content.Controls.Add(CreateSectionHeader("Configurações do Perfil de Usuário", 20));
|
|
|
|
// Linha 1: Chaves de Identificação e Vínculo Multi-Empresa
|
|
txtId = AddInput(content, "ID PERFIL", 20, 55, 110, 28, true);
|
|
txtEmpresaId = AddInput(content, "ID EMPRESA", 145, 55, 120, 28);
|
|
|
|
// Status Ativo/Inativo posicionado de forma alinhada na primeira linha
|
|
chkAtivo = new CheckBox
|
|
{
|
|
Text = "Perfil Liberado / Ativo",
|
|
Location = new Point(285, 71),
|
|
AutoSize = true,
|
|
Font = new Font("Segoe UI", 10F, FontStyle.Bold),
|
|
ForeColor = Color.FromArgb(64, 64, 64)
|
|
};
|
|
content.Controls.Add(chkAtivo);
|
|
|
|
// Linha 2: Nome do Grupo/Perfil
|
|
txtNome = AddInput(content, "NOME DO PERFIL (EX: ADMINISTRADOR, VENDEDOR)", 20, 115, 500, 28);
|
|
|
|
// Linha 3: Detalhamento das Permissões do Perfil
|
|
txtDescricao = AddInput(content, "DESCRIÇÃO DAS ATRIBUIÇÕES E PERMISSÕES DESTE NÍVEL", 20, 175, 500, 28);
|
|
}
|
|
|
|
// --- MÉTODOS OBRIGATÓRIOS DO FORMULÁRIO MODELO ---
|
|
|
|
protected override void OnNovo()
|
|
{
|
|
// Limpa os campos de texto editáveis
|
|
txtEmpresaId.Text = string.Empty;
|
|
txtNome.Text = string.Empty;
|
|
txtDescricao.Text = string.Empty;
|
|
|
|
// Estado padrão para novas inserções
|
|
txtId.Text = "0";
|
|
chkAtivo.Checked = true;
|
|
|
|
txtEmpresaId.Focus();
|
|
}
|
|
|
|
protected override void OnSalvar()
|
|
{
|
|
// Validação simples antes de montar o objeto
|
|
if (string.IsNullOrWhiteSpace(txtNome.Text))
|
|
{
|
|
MessageBox.Show("O nome do perfil é obrigatório.", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
|
txtNome.Focus();
|
|
return;
|
|
}
|
|
|
|
// Mapeamento absoluto de todas as propriedades da classe
|
|
var perfil = new ModeloPerfil
|
|
{
|
|
Id = string.IsNullOrEmpty(txtId.Text) ? 0 : Convert.ToInt32(txtId.Text),
|
|
EmpresaId = string.IsNullOrEmpty(txtEmpresaId.Text) ? 0 : Convert.ToInt32(txtEmpresaId.Text),
|
|
Nome = txtNome.Text,
|
|
Descricao = txtDescricao.Text,
|
|
Ativo = chkAtivo.Checked // Atribuição booleana direta sem necessidade de conversão de string
|
|
};
|
|
|
|
// Envio do objeto limpo e populado para sua camada BLL / DAL do SQL Server
|
|
MessageBox.Show("Perfil de acesso salvo com sucesso!", "LevelOS", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|
}
|
|
|
|
protected override void OnAlterar()
|
|
{
|
|
txtNome.Focus();
|
|
}
|
|
|
|
protected override void OnExcluir()
|
|
{
|
|
if (MessageBox.Show("Deseja realmente remover este perfil? Usuários vinculados a ele podem perder o acesso ao sistema.", "LevelOS", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
|
|
{
|
|
// Executa exclusão física ou lógica...
|
|
OnNovo();
|
|
}
|
|
}
|
|
|
|
protected override void OnLocalizar()
|
|
{
|
|
// Abre sua Grid / Tela de pesquisa para buscar os perfis existentes
|
|
}
|
|
|
|
protected override void OnCancelar()
|
|
{
|
|
OnNovo();
|
|
}
|
|
}
|
|
} |