243 lines
14 KiB
C#
243 lines
14 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;
|
|
|
|
//Sistema
|
|
private readonly ConfigCadastroPanel _pconfigCadastroPanel;
|
|
private readonly SshClienteCadastroPanel _psshClienteCadastroPanel;
|
|
private readonly SmtpClienteCadastroPanel _psmtpClienteCadastroPanel;
|
|
private readonly FtpClienteCadastroPanel _pftpClienteCadastroPanel;
|
|
private readonly TelegramClienteCadastroPanel _ptelegramClienteCadastroPanel;
|
|
private readonly BackupAutomaticoCadastroPanel _pBackupAutomaticoCadastroPanel;
|
|
private readonly CloudStorageCadastroPanel _pCloudStorageCadastroPanel;
|
|
//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 };
|
|
_psshClienteCadastroPanel = new SshClienteCadastroPanel { Dock = DockStyle.Fill, Visible = false };
|
|
_psmtpClienteCadastroPanel = new SmtpClienteCadastroPanel { Dock = DockStyle.Fill, Visible = false };
|
|
_pftpClienteCadastroPanel = new FtpClienteCadastroPanel { Dock = DockStyle.Fill, Visible = false };
|
|
_ptelegramClienteCadastroPanel = new TelegramClienteCadastroPanel { Dock = DockStyle.Fill, Visible = false };
|
|
_pBackupAutomaticoCadastroPanel = new BackupAutomaticoCadastroPanel { Dock = DockStyle.Fill, Visible = false };
|
|
_pCloudStorageCadastroPanel = new CloudStorageCadastroPanel { 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);
|
|
mainContainer.Controls.Add(_psshClienteCadastroPanel);
|
|
mainContainer.Controls.Add(_psmtpClienteCadastroPanel);
|
|
mainContainer.Controls.Add(_pftpClienteCadastroPanel);
|
|
mainContainer.Controls.Add(_ptelegramClienteCadastroPanel);
|
|
mainContainer.Controls.Add(_pBackupAutomaticoCadastroPanel);
|
|
mainContainer.Controls.Add(_pCloudStorageCadastroPanel);
|
|
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 203: ShowPanel(_pftpClienteCadastroPanel); break;
|
|
case 204: ShowPanel(_ptelegramClienteCadastroPanel); break;
|
|
case 205: ShowPanel(_psmtpClienteCadastroPanel); break;
|
|
case 206: ShowPanel(_psshClienteCadastroPanel); break;
|
|
case 207: ShowPanel(_pBackupAutomaticoCadastroPanel); break;
|
|
case 208: ShowPanel(_pCloudStorageCadastroPanel); 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);
|
|
_psshClienteCadastroPanel.Visible = (panelToShow == _psshClienteCadastroPanel);
|
|
_psmtpClienteCadastroPanel.Visible = (panelToShow == _psmtpClienteCadastroPanel);
|
|
_pftpClienteCadastroPanel.Visible = (panelToShow == _pftpClienteCadastroPanel);
|
|
_ptelegramClienteCadastroPanel.Visible = (panelToShow == _ptelegramClienteCadastroPanel);
|
|
_pBackupAutomaticoCadastroPanel.Visible = (panelToShow == _pBackupAutomaticoCadastroPanel);
|
|
_pCloudStorageCadastroPanel.Visible = (panelToShow == _pCloudStorageCadastroPanel);
|
|
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;
|
|
}
|
|
}
|
|
} |