LevelOS-Core/UI/Dashboards/Dashmain/MainForm.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

214 lines
11 KiB
C#

using CCH;
using CustomMessageBox;
using DAL;
using LevelOS;
using System;
using System.Drawing;
using System.Windows.Forms;
using TLL;
namespace UI
{
public class MainForm : Form
{
private readonly SidebarControl _sidebar;
private readonly DashboardPanel _dashboard;
private readonly ClienteCadastroPanel _pClientes;
private readonly EmpresaCadastroPanel _pEmpresa;
private readonly EmpresaConfiguracoesPanel _pEmpresaConfig;
private readonly AgendaCadastroPanel _pAgendaCadastro;
private readonly AgendaConsultaPanel _pAgendaConsulta;
private readonly FuncionariosCadastroPanel _pfuncionariosCadastro ;
private readonly EquipamentosCadastroPanel _pequipamentosCadastroPanel;
private readonly ContratosCadastroPanel _pcontratosCadastroPanel;
private readonly FornecedoresCadastroPanel _pfornecedoresCadastroPanel;
private readonly TransportadorasCadastroPanel _ptransportadorasCadastroPanel;
private readonly ServicosCadastroPanel _pservicosCadastroPanel;
private readonly UsuariosCadastroPanel _pUsuarioCadastroPanel;
private readonly ChamadoCadastroPanel _pChamadoCadastroPanel;
//Sistma
private readonly ConfigCadastroPanel _pconfigCadastroPanel;
//Painel financeiro
private readonly BoletoCadastroPanel _pboletoCadastroPanel;
private readonly ContaPagarCadastroPanel _pcontaPagarCadastroPanel;
private readonly ContaReceberCadastroPanel _pcontaReceberCadastroPanel;
private readonly ContasCadastroPanel _pcontasCadastroPanel;
private readonly Panel _pOrdens;
private readonly Panel _pProdutos;
private readonly Panel _pEstoque;
private readonly Panel _pFinanceiro;
public MainForm()
{
Text = "LevelOS — Sistema ERP";
this.WindowState = FormWindowState.Maximized;
this.MinimumSize = new Size(1100, 750);
this.BackColor = Color.FromArgb(248, 250, 252);
_sidebar = new SidebarControl { Dock = DockStyle.Left };
_sidebar.NavItemClicked += OnNavItemClicked;
_dashboard = new DashboardPanel { Dock = DockStyle.Fill };
_pClientes = new ClienteCadastroPanel { Dock = DockStyle.Fill, Visible = false };
_pEmpresa = new EmpresaCadastroPanel { Dock = DockStyle.Fill, Visible = false };
_pEmpresaConfig = new EmpresaConfiguracoesPanel { Dock = DockStyle.Fill, Visible = false };
_pAgendaCadastro = new AgendaCadastroPanel { Dock = DockStyle.Fill, Visible = false };
_pAgendaConsulta = new AgendaConsultaPanel { Dock = DockStyle.Fill, Visible = false };
_pfuncionariosCadastro = new FuncionariosCadastroPanel { Dock = DockStyle.Fill, Visible = false };
_pboletoCadastroPanel = new BoletoCadastroPanel { Dock = DockStyle.Fill, Visible = false };
_pequipamentosCadastroPanel = new EquipamentosCadastroPanel { Dock = DockStyle.Fill, Visible = false };
_pcontratosCadastroPanel = new ContratosCadastroPanel { Dock = DockStyle.Fill, Visible = false };
_pfornecedoresCadastroPanel = new FornecedoresCadastroPanel { Dock = DockStyle.Fill, Visible = false };
_ptransportadorasCadastroPanel = new TransportadorasCadastroPanel { Dock = DockStyle.Fill, Visible = false };
_pservicosCadastroPanel = new ServicosCadastroPanel { Dock = DockStyle.Fill, Visible = false };
_pUsuarioCadastroPanel = new UsuariosCadastroPanel { Dock = DockStyle.Fill, Visible=false };
_pChamadoCadastroPanel = new ChamadoCadastroPanel { Dock = DockStyle.Fill, Visible = false };
_pconfigCadastroPanel = new ConfigCadastroPanel { Dock = DockStyle.Fill, Visible = false };
_pcontaPagarCadastroPanel = new ContaPagarCadastroPanel { Dock = DockStyle.Fill, Visible = false };
_pcontaReceberCadastroPanel = new ContaReceberCadastroPanel { Dock = DockStyle.Fill, Visible = false };
_pcontasCadastroPanel = new ContasCadastroPanel { Dock = DockStyle.Fill, Visible = false };
_pOrdens = PlaceholderPanel("Ordens de Serviço", Color.FromArgb(22, 163, 74));
_pProdutos = PlaceholderPanel("Catálogo de Produtos", Color.FromArgb(217, 119, 6));
_pEstoque = PlaceholderPanel("Controle de Estoque", Color.FromArgb(234, 88, 12));
_pFinanceiro = PlaceholderPanel("Fluxo Financeiro", Color.FromArgb(124, 58, 237));
var mainContainer = new Panel { Dock = DockStyle.Fill };
mainContainer.Controls.Add(_pFinanceiro);
mainContainer.Controls.Add(_pAgendaCadastro);
mainContainer.Controls.Add(_pAgendaConsulta);
mainContainer.Controls.Add(_pboletoCadastroPanel);
mainContainer.Controls.Add(_pequipamentosCadastroPanel);
mainContainer.Controls.Add(_pcontratosCadastroPanel);
mainContainer.Controls.Add(_pfornecedoresCadastroPanel);
mainContainer.Controls.Add(_ptransportadorasCadastroPanel);
mainContainer.Controls.Add(_pservicosCadastroPanel);
mainContainer.Controls.Add(_pUsuarioCadastroPanel);
mainContainer.Controls.Add(_pChamadoCadastroPanel);
mainContainer.Controls.Add(_pconfigCadastroPanel);
mainContainer.Controls.Add(_pcontaReceberCadastroPanel);
mainContainer.Controls.Add(_pEstoque);
mainContainer.Controls.Add(_pProdutos);
mainContainer.Controls.Add(_pOrdens);
mainContainer.Controls.Add(_pEmpresa);
mainContainer.Controls.Add(_pEmpresaConfig);
mainContainer.Controls.Add(_pClientes);
mainContainer.Controls.Add(_dashboard);
mainContainer.Controls.Add(_pfuncionariosCadastro);
mainContainer.Controls.Add(_pcontaPagarCadastroPanel);
mainContainer.Controls.Add(_pcontasCadastroPanel);
Controls.Add(mainContainer);
Controls.Add(_sidebar);
ShowPanel(_dashboard);
}
private void OnNavItemClicked(object? sender, int index)
{
/* Índices:
0 = Dashboard
2 = Ordens de Serviço
4 = Produtos
5 = Estoque
9 = Financeiro
99 = Submenu → Clientes
98 = Submenu → Empresa
*/
switch (index)
{
case 0: ShowPanel(_dashboard); break;
case 2: ShowPanel(_pOrdens); break;
case 4: ShowPanel(_pProdutos); break;
case 5: ShowPanel(_pEstoque); break;
case 9: ShowPanel(_pFinanceiro); break;
case 99: ShowPanel(_pClientes); break;
case 100: ShowPanel(_pequipamentosCadastroPanel); break;
case 101: ShowPanel(_pcontratosCadastroPanel); break;
case 102: ShowPanel(_pfornecedoresCadastroPanel); break;
case 103: ShowPanel(_pfuncionariosCadastro); break;
case 104: ShowPanel(_ptransportadorasCadastroPanel); break;
case 105: ShowPanel(_pservicosCadastroPanel); break;
case 106: ShowPanel(_pEmpresa); break;
case 107: ShowPanel(_pUsuarioCadastroPanel); break;
case 201: ShowPanel(_pconfigCadastroPanel); break;
case 202: ShowPanel(_pEmpresaConfig); break;
case 300: ShowPanel(_pAgendaCadastro); break;
case 301: ShowPanel(_pAgendaConsulta); break;
case 309: ShowPanel(_pChamadoCadastroPanel); break;
case 400: ShowPanel(_pcontasCadastroPanel); break;
case 401: ShowPanel(_pcontaReceberCadastroPanel); break;
case 402: ShowPanel(_pcontaPagarCadastroPanel); break;
case 500: ShowPanel(_pboletoCadastroPanel); break;
}
}
private void ShowPanel(Control panelToShow)
{
_dashboard.Visible = (panelToShow == _dashboard);
_pClientes.Visible = (panelToShow == _pClientes);
_pEmpresa.Visible = (panelToShow == _pEmpresa);
_pEmpresaConfig.Visible = (panelToShow == _pEmpresaConfig);
_pOrdens.Visible = (panelToShow == _pOrdens);
_pProdutos.Visible = (panelToShow == _pProdutos);
_pEstoque.Visible = (panelToShow == _pEstoque);
_pFinanceiro.Visible = (panelToShow == _pFinanceiro);
_pAgendaCadastro.Visible = (panelToShow == _pAgendaCadastro);
_pAgendaConsulta.Visible = (panelToShow == _pAgendaConsulta);
_pfuncionariosCadastro.Visible = (panelToShow == _pfuncionariosCadastro);
_pboletoCadastroPanel.Visible = (panelToShow == _pboletoCadastroPanel);
_pequipamentosCadastroPanel.Visible = (panelToShow == _pequipamentosCadastroPanel);
_pcontratosCadastroPanel.Visible = (panelToShow == _pcontratosCadastroPanel);
_pfornecedoresCadastroPanel.Visible = (panelToShow == _pfornecedoresCadastroPanel);
_ptransportadorasCadastroPanel.Visible = (panelToShow == _ptransportadorasCadastroPanel);
_pservicosCadastroPanel.Visible = (panelToShow == _pservicosCadastroPanel);
_pUsuarioCadastroPanel.Visible = (panelToShow == _pUsuarioCadastroPanel);
_pChamadoCadastroPanel.Visible = (panelToShow == _pChamadoCadastroPanel);
_pconfigCadastroPanel.Visible = (panelToShow == _pconfigCadastroPanel);
_pcontaPagarCadastroPanel.Visible = (panelToShow == _pcontaPagarCadastroPanel);
_pcontaReceberCadastroPanel.Visible = (panelToShow == _pcontaReceberCadastroPanel);
_pcontasCadastroPanel.Visible = (panelToShow == _pcontasCadastroPanel);
if (panelToShow.Visible)
{
panelToShow.BringToFront();
panelToShow.Focus();
}
}
private static Panel PlaceholderPanel(string titulo, Color cor)
{
var p = new Panel { Dock = DockStyle.Fill, Visible = false };
p.Paint += (s, e) =>
{
var g = e.Graphics;
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
var r = p.ClientRectangle;
g.Clear(Color.FromArgb(248, 250, 252));
var circle = new Rectangle(r.Width / 2 - 40, r.Height / 2 - 80, 80, 80);
g.FillEllipse(new SolidBrush(Color.FromArgb(20, cor)), circle);
using var f1 = new Font("Segoe UI Semibold", 16f);
using var f2 = new Font("Segoe UI", 10f);
var sf = new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center };
g.DrawString(titulo, f1, new SolidBrush(Color.FromArgb(30, 41, 59)),
new RectangleF(0, r.Height / 2f - 10, r.Width, 40), sf);
g.DrawString("Este módulo está sendo integrado ao LevelOS", f2, new SolidBrush(Color.FromArgb(148, 163, 184)),
new RectangleF(0, r.Height / 2f + 25, r.Width, 30), sf);
};
return p;
}
}
}