LevelOS-Core/UI/Dashboards/Cadastros/EquipamentosCadastroPanel.cs

123 lines
4.6 KiB
C#

using CPM;
using MLL; // Namespace da sua model
using System;
using System.Drawing;
using System.Windows.Forms;
using UI; // Namespace do seu FormularioModelo
namespace UI
{
public partial class EquipamentosCadastroPanel : FormularioModelo
{
// Instância da model para controle de dados
private ModeloEquipamentos _equipamento = new ModeloEquipamentos();
// Controles do formulário
private LV_TEXTBOX1 txtId, txtCodigo, txtDescricao, txtMarca, txtModelo;
private LV_TEXTBOX1 txtSerie, txtPatrimonio, txtDataCompra, txtRevenda;
private LV_TEXTBOX1 txtNF, txtCertificado, txtObservacoes;
public EquipamentosCadastroPanel()
{
this.Titulo = "Cadastro de Equipamentos";
MontarInterface();
LimparTela();
}
private void MontarInterface()
{
// --- SEÇÃO 1: Identificação ---
content.Controls.Add(CreateSectionHeader("IDENTIFICAÇÃO E DESCRIÇÃO", 20));
txtId = AddInput(content, "ID", 20, 50, 80, 30, true); // Somente leitura
txtCodigo = AddInput(content, "CÓDIGO INTERNO", 110, 50, 150, 30);
txtDescricao = AddInput(content, "DESCRIÇÃO DO EQUIPAMENTO", 270, 50, 450, 30);
// --- SEÇÃO 2: Detalhes Técnicos ---
content.Controls.Add(CreateSectionHeader("ESPECIFICAÇÕES TÉCNICAS", 110));
txtMarca = AddInput(content, "MARCA", 20, 140, 240, 30);
txtModelo = AddInput(content, "MODELO", 270, 140, 240, 30);
txtSerie = AddInput(content, "Nº DE SÉRIE", 520, 140, 200, 30);
txtPatrimonio = AddInput(content, "PATRIMÔNIO (PAT)", 730, 140, 150, 30);
// --- SEÇÃO 3: Compra e Garantia ---
content.Controls.Add(CreateSectionHeader("DADOS DE AQUISIÇÃO E GARANTIA", 200));
txtDataCompra = AddInput(content, "DATA DA COMPRA", 20, 230, 150, 30);
txtRevenda = AddInput(content, "REVENDA / FORNECEDOR", 180, 230, 330, 30);
txtNF = AddInput(content, "NOTA FISCAL", 520, 230, 150, 30);
txtCertificado = AddInput(content, "Nº CERT. GARANTIA", 680, 230, 200, 30);
// --- SEÇÃO 4: Observações ---
content.Controls.Add(CreateSectionHeader("OBSERVAÇÕES ADICIONAIS", 290));
txtObservacoes = AddInput(content, "NOTAS GERAIS", 20, 320, 860, 60);
// Se o seu LV_TEXTBOX1 suportar Multiline, você pode ajustar aqui
}
private void LimparTela()
{
_equipamento = new ModeloEquipamentos();
// Lógica para limpar todos os campos txtId.Text = "", etc.
// Dica: Você pode criar um método auxiliar na base para limpar o 'content'
}
// --- IMPLEMENTAÇÃO DOS MÉTODOS DA BASE ---
protected override void OnNovo()
{
LimparTela();
txtCodigo.Focus();
}
protected override void OnSalvar()
{
try
{
// Mapeia a tela para a model
_equipamento.CODIGO = txtCodigo.Text;
_equipamento.DESCRICAO = txtDescricao.Text;
_equipamento.MARCA = txtMarca.Text;
_equipamento.MODELO = txtModelo.Text;
_equipamento.SERIE = txtSerie.Text;
_equipamento.PAT = txtPatrimonio.Text;
_equipamento.DATA_COMPRA = txtDataCompra.Text;
_equipamento.REVENDA = txtRevenda.Text;
_equipamento.NUM_NF = txtNF.Text;
_equipamento.NUM_CERTGAR = txtCertificado.Text;
_equipamento.OBSERVACOES = txtObservacoes.Text;
// Aqui você chamaria sua BLL ou DAL passando o _equipamento
MessageBox.Show("Equipamento salvo com sucesso!", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show("Erro ao salvar: " + ex.Message);
}
}
protected override void OnAlterar()
{
// Lógica para habilitar campos ou mudar estado
}
protected override void OnExcluir()
{
if (MessageBox.Show("Deseja excluir este equipamento?", "Confirmar", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
// Lógica de exclusão
}
}
protected override void OnLocalizar()
{
// Aqui você abriria um formulário de busca
}
protected override void OnCancelar()
{
LimparTela();
}
}
}