using CPM; using MLL; using System; using System.Drawing; using System.Windows.Forms; namespace UI { public class OSPersonConfigPanel : FormularioModelo { private TabControl tabPrincipal; private ModeloOSPerson _configAtual; // --- CAMPOS DA ABA: GERAL E EQUIPAMENTO --- private LV_TEXTBOX1 txtDesc, txtMarca, txtModelo, txtSerie, txtPat, txtTituloOS, txtEquipam; // --- CAMPOS DA ABA: FINANCEIRO E TAXAS --- private LV_TEXTBOX1 txtVDesloca, txtVTerceiros, txtMaxDesc; private CheckBox chkCobraDesloca, chkCobraTerceiros, chkBaixaEstoque; // --- CAMPOS DA ABA: GARANTIA E TEXTOS --- private LV_TEXTBOX1 txtPrazoGar, txtTermoGar, txtObsRec1, txtObsRec2, txtObsRec3, txtObsRec4; // --- CAMPOS DA ABA: IMPRESSÃO (ESC/P) --- private LV_TEXTBOX1 txtPortaPrn, txtSaltos, txtCopiasRec, txtCopiasEnt; private CheckBox chkNoEpson, chk40Colunas; // --- CAMPOS DA ABA: WEB E E-MAIL --- private LV_TEXTBOX1 txtEmailAbrir, txtEmailFechar, txtWeb1, txtWeb2, txtWeb3, txtWeb4, txtWeb5; public OSPersonConfigPanel() { this.Titulo = "PARAMETRIZAÇÃO GLOBAL DO SISTEMA (LEVELOS)"; _configAtual = new ModeloOSPerson(); MontarInterfaceCompleta(); } private void MontarInterfaceCompleta() { // Inicializando o TabControl tabPrincipal = new TabControl { Location = new Point(10, 10), Size = new Size(1060, 520), Font = new Font("Segoe UI", 9.5f) }; // Criando as Abas var tpGeral = new TabPage("Equipamento / Geral"); var tpFinanceiro = new TabPage("Financeiro / Regras"); var tpGarantia = new TabPage("Textos / Garantia"); var tpImpressao = new TabPage("Impressão / PDV"); var tpWeb = new TabPage("Web / Integração"); tabPrincipal.TabPages.AddRange(new[] { tpGeral, tpFinanceiro, tpGarantia, tpImpressao, tpWeb }); content.Controls.Add(tabPrincipal); ConfigurarAbaGeral(tpGeral); ConfigurarAbaFinanceiro(tpFinanceiro); ConfigurarAbaGarantia(tpGarantia); ConfigurarAbaImpressao(tpImpressao); ConfigurarAbaWeb(tpWeb); } private void ConfigurarAbaGeral(TabPage tp) { txtTituloOS = AddInput(tp, "TÍTULO DA ORDEM DE SERVIÇO", 20, 20, 450, 28); txtDesc = AddInput(tp, "DESCRIÇÃO PADRÃO", 20, 80, 450, 28); txtMarca = AddInput(tp, "MARCA", 20, 140, 200, 28); txtModelo = AddInput(tp, "MODELO", 240, 140, 230, 28); txtSerie = AddInput(tp, "Nº SÉRIE", 20, 200, 200, 28); txtPat = AddInput(tp, "PATRIMÔNIO", 240, 200, 230, 28); txtEquipam = AddInput(tp, "TEXTO EQUIPAMENTO", 20, 260, 450, 60); } private void ConfigurarAbaFinanceiro(TabPage tp) { txtVDesloca = AddInput(tp, "VALOR DESLOCAMENTO (PADRÃO)", 20, 20, 180, 28); txtVTerceiros = AddInput(tp, "VALOR TERCEIROS (PADRÃO)", 220, 20, 180, 28); chkCobraDesloca = CreateCheckBox(tp, "Cobrar Deslocamento por Padrão?", 20, 70); chkCobraTerceiros = CreateCheckBox(tp, "Cobrar Terceiros por Padrão?", 20, 95); chkBaixaEstoque = CreateCheckBox(tp, "Baixa de estoque automática no lançamento?", 20, 120); txtMaxDesc = AddInput(tp, "% MÁXIMO DESCONTO VENDAS", 20, 160, 180, 28); } private void ConfigurarAbaGarantia(TabPage tp) { txtPrazoGar = AddInput(tp, "PRAZO DE GARANTIA (EX: 90 DIAS)", 20, 20, 250, 28); txtTermoGar = AddInput(tp, "TERMO DE GARANTIA COMPLETO", 20, 80, 600, 100); txtObsRec1 = AddInput(tp, "OBS. RECEBIMENTO LINHA 1", 20, 200, 400, 28); txtObsRec2 = AddInput(tp, "OBS. RECEBIMENTO LINHA 2", 20, 245, 400, 28); } private void ConfigurarAbaImpressao(TabPage tp) { txtPortaPrn = AddInput(tp, "PORTA IMPRESSORA (EX: LPT1, COM1)", 20, 20, 200, 28); txtSaltos = AddInput(tp, "SALTOS DE LINHA (DRAFT)", 240, 20, 100, 28); chkNoEpson = CreateCheckBox(tp, "Não utilizar comandos Epson (ESC/P)?", 20, 70); chk40Colunas = CreateCheckBox(tp, "Habilitar modo 40 colunas (Bobina)?", 20, 95); txtCopiasRec = AddInput(tp, "Nº CÓPIAS RECIBO", 20, 130, 100, 28); txtCopiasEnt = AddInput(tp, "Nº CÓPIAS ENTREGA", 140, 130, 100, 28); } private void ConfigurarAbaWeb(TabPage tp) { txtEmailAbrir = AddInput(tp, "ASSUNTO E-MAIL (ABERTURA)", 20, 20, 450, 28); txtEmailFechar = AddInput(tp, "ASSUNTO E-MAIL (FECHAMENTO)", 20, 80, 450, 28); txtWeb1 = AddInput(tp, "URL/TEXTO WEB 1", 20, 140, 450, 28); txtWeb2 = AddInput(tp, "URL/TEXTO WEB 2", 20, 190, 450, 28); } // Helper para criar CheckBoxes no padrão do sistema private CheckBox CreateCheckBox(Control parent, string text, int x, int y) { var ck = new CheckBox { Text = text, Location = new Point(x, y), AutoSize = true, ForeColor = Color.FromArgb(64, 64, 64) }; parent.Controls.Add(ck); return ck; } // --- IMPLEMENTAÇÃO DA LÓGICA DE PERSISTÊNCIA --- protected override void OnSalvar() { // Mapeando todos os campos de volta para o objeto de modelo _configAtual.TX_DESC = txtDesc.Text; _configAtual.TX_MARCA = txtMarca.Text; _configAtual.TX_MODELO = txtModelo.Text; _configAtual.TX_SERIE = txtSerie.Text; _configAtual.TX_PAT = txtPat.Text; _configAtual.OS_TITULO = txtTituloOS.Text; _configAtual.PRAZO_GARANTIA = txtPrazoGar.Text; _configAtual.TERMO_GARANTIA = txtTermoGar.Text; // Tratando os "booleanos" que no banco são string (S/N) _configAtual.COBRA_DESLOCA = chkCobraDesloca.Checked ? "S" : "N"; _configAtual.COBRA_TERCEIROS = chkCobraTerceiros.Checked ? "S" : "N"; _configAtual.BAIXA_ESTOQUE_NAHORA = chkBaixaEstoque.Checked ? "S" : "N"; _configAtual.NO_EPSON = chkNoEpson.Checked ? "S" : "N"; _configAtual.VENDA_40COLUNAS = chk40Colunas.Checked ? "S" : "N"; // Chamada para a sua BLL (LevelCode) MessageBox.Show("Parâmetros do sistema salvos com sucesso!", "LevelOS", MessageBoxButtons.OK, MessageBoxIcon.Information); } protected override void OnNovo() { /* Carregar padrão */ } protected override void OnAlterar() { /* Habilitar campos */ } protected override void OnExcluir() { /* Bloqueado para configurações */ } protected override void OnLocalizar() { /* Buscar configuração ativa */ } protected override void OnCancelar() { OnLocalizar(); } } }