LevelOS-Core/UI/Dashboards/Cadastros/ContratoEquipamentosCadastroPanel.cs
levelcode365 ae72c2768e 25/04/2026 - implementa formulários de cadastro para o ecossistema LevelOS
- Adicionado ContratoEquipamentosCadastroPanel
- Adicionado ConfigBoletosCadastroPanel (Gestão de convênios)
- Adicionado ConfigCartoesCadastroPanel (Taxas e operadoras)
- Adicionado ConfigImpressaoCadastroPanel (Coordenadas X/Y)
- Adicionado DespesasCadastroPanel e DespFixaCadastroPanel
- Adicionado ConfigEcfCadastroPanel (Hardware Fiscal)
- Adicionado EmpresaCadastroPanel (Emitente e Web3/Crypto)
- Adicionado EquipamentosCadastroPanel (Ativos e Garantia)
- Adicionado EsquemasTecnicosCadastroPanel (Biblioteca de Manuais)
- Adicionado FluxoCaixaCadastroPanel (Tesouraria)
- Adicionado FornecedorItemVinculoPanel (Logística de Suprimentos)

Padronização de interface utilizando FormularioModelo e LV_TEXTBOX1."
2026-04-25 17:48:04 -03:00

122 lines
4.4 KiB
C#

using CPM;
using MLL;
using System;
using System.Drawing;
using System.Windows.Forms;
using UI;
namespace UI
{
public partial class ContratoEquipamentosCadastroPanel : FormularioModelo
{
private ModeloContratoEquipamentos _itemContrato = new ModeloContratoEquipamentos();
// Controles - Vínculo e Identificação
private LV_TEXTBOX1 txtId, txtContratoId, txtDescricaoContrato;
private Button btnBuscaContrato;
// Controles - Especificações do Equipamento
private LV_TEXTBOX1 txtModelo, txtMarca, txtOperadora;
private LV_TEXTBOX1 txtSerial, txtPatrimonio, txtObservacoes;
public ContratoEquipamentosCadastroPanel()
{
this.Titulo = "Vínculo de Equipamentos ao Contrato";
MontarInterface();
}
private void MontarInterface()
{
// --- SEÇÃO 1: Vínculo com o Contrato ---
content.Controls.Add(CreateSectionHeader("DADOS DO CONTRATO", 20));
txtId = AddInput(content, "ID VÍNCULO", 20, 50, 90, 30, true);
txtContratoId = AddInput(content, "ID CONTRATO", 120, 50, 90, 30);
btnBuscaContrato = CriarBotaoLupa(215, 66, OnBuscaContrato);
txtDescricaoContrato = AddInput(content, "DESCRIÇÃO / CLIENTE DO CONTRATO", 255, 50, 400, 30, true);
// --- SEÇÃO 2: Especificações Técnicas ---
content.Controls.Add(CreateSectionHeader("ESPECIFICAÇÕES DO EQUIPAMENTO", 110));
txtMarca = AddInput(content, "MARCA", 20, 140, 240, 30);
txtModelo = AddInput(content, "MODELO", 270, 140, 240, 30);
txtOperadora = AddInput(content, "OPERADORA (CHIP/LINK)", 520, 140, 200, 30);
// --- SEÇÃO 3: Identificação Única ---
content.Controls.Add(CreateSectionHeader("IDENTIFICAÇÃO E RASTREABILIDADE", 200));
txtSerial = AddInput(content, "NÚMERO DE SÉRIE / IMEI", 20, 230, 300, 30);
txtPatrimonio = AddInput(content, "Nº PATRIMÔNIO", 330, 230, 200, 30);
// --- SEÇÃO 4: Observações ---
content.Controls.Add(CreateSectionHeader("NOTAS DO ITEM", 290));
txtObservacoes = AddInput(content, "OBSERVAÇÕES DE INSTALAÇÃO/ESTADO", 20, 320, 860, 60);
content.Height = 450;
}
// Helper para criar lupas (reutilizando a lógica do financeiro)
private Button CriarBotaoLupa(int x, int y, EventHandler clickEvent)
{
var btn = new Button
{
Text = "🔍",
Location = new Point(x, y),
Size = new Size(32, 30),
BackColor = AccentBlue,
ForeColor = Color.White,
FlatStyle = FlatStyle.Flat,
Cursor = Cursors.Hand
};
btn.FlatAppearance.BorderSize = 0;
btn.Click += clickEvent;
content.Controls.Add(btn);
return btn;
}
private void OnBuscaContrato(object sender, EventArgs e)
{
// Abre sua tela de busca de ModeloContrato
MessageBox.Show("Abrir busca de Contratos ativos");
}
private void PreencherModel()
{
if (int.TryParse(txtContratoId.Text, out int cId)) _itemContrato.ContratoId = cId;
_itemContrato.Marca = txtMarca.Text;
_itemContrato.Modelo = txtModelo.Text;
_itemContrato.Operadora = txtOperadora.Text;
_itemContrato.Serial = txtSerial.Text;
_itemContrato.NumeroPatrimonio = txtPatrimonio.Text;
_itemContrato.Observacoes = txtObservacoes.Text;
}
protected override void OnNovo()
{
_itemContrato = new ModeloContratoEquipamentos();
txtContratoId.Focus();
}
protected override void OnSalvar()
{
try
{
PreencherModel();
// BLL.Salvar(_itemContrato);
MessageBox.Show("Equipamento vinculado ao contrato com sucesso!");
}
catch (Exception ex)
{
MessageBox.Show("Erro: " + ex.Message);
}
}
protected override void OnAlterar() { }
protected override void OnExcluir() { }
protected override void OnLocalizar() { }
protected override void OnCancelar() { OnNovo(); }
}
}