LevelOS-Core/UI/Dashboards/Configurações/OrdemServico/OSConfiguracoesPanel.cs

157 lines
6.9 KiB
C#

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(); }
}
}