LevelOS-Core/UI/Dashboards/Cadastros/ConfigEcfCadastroPanel.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

92 lines
3.1 KiB
C#

using CPM;
using MLL;
using System;
using System.Drawing;
using System.Windows.Forms;
using UI;
namespace UI
{
public partial class ConfigEcfCadastroPanel : FormularioModelo
{
private ModeloEcfCfg _configEcf = new ModeloEcfCfg();
// Controles - Identificação e Hardware
private LV_TEXTBOX1 txtId, txtCodigo, txtModelo, txtPorta, txtIndiceServico;
// Controles - Periféricos
private CheckBox chkTemGaveta;
public ConfigEcfCadastroPanel()
{
this.Titulo = "Configuração de Impressora Fiscal (ECF)";
MontarInterface();
}
private void MontarInterface()
{
// --- SEÇÃO 1: Identificação do Equipamento ---
content.Controls.Add(CreateSectionHeader("DADOS DO EQUIPAMENTO FISCAL", 20));
txtId = AddInput(content, "ID", 20, 50, 70, 30, true);
txtCodigo = AddInput(content, "CÓD. INTERNO", 100, 50, 100, 30);
// Modelo da Impressora (Ex: Bematech, Daruma, Epson)
txtModelo = AddInput(content, "MODELO DO ECF", 210, 50, 300, 30);
// --- SEÇÃO 2: Comunicação e Parâmetros ---
content.Controls.Add(CreateSectionHeader("COMUNICAÇÃO E SERVIÇOS", 110));
// Porta de Comunicação (Ex: COM1, COM2, LPT1, USB)
txtPorta = AddInput(content, "PORTA DE COMUNICAÇÃO", 20, 140, 180, 30);
// Índice Alíquota de Serviço (Comum em ECFs para ISSQN)
txtIndiceServico = AddInput(content, "ÍNDICE ALÍQUOTA SERV.", 210, 140, 180, 30);
// --- SEÇÃO 3: Periféricos ---
content.Controls.Add(CreateSectionHeader("CONFIGURAÇÕES ADICIONAIS", 195));
chkTemGaveta = CreateCheckBox("POSSUI GAVETA DE DINHEIRO CONECTADA", 20, 230);
content.Controls.Add(chkTemGaveta);
content.Height = 320;
}
private void PreencherModel()
{
_configEcf.CODIGO = txtCodigo.Text;
_configEcf.MODELO = txtModelo.Text;
_configEcf.PORTA = txtPorta.Text;
_configEcf.INDICE_AL_SERV = txtIndiceServico.Text;
// Conversão para o padrão string S/N que você utiliza
_configEcf.TEM_GAVETA = chkTemGaveta.Checked ? "S" : "N";
}
protected override void OnNovo()
{
_configEcf = new ModeloEcfCfg();
txtPorta.Text = "COM1"; // Sugestão padrão de porta serial
txtModelo.Focus();
}
protected override void OnSalvar()
{
try
{
PreencherModel();
// BLL.Salvar(_configEcf);
MessageBox.Show("Configuração de hardware salva com sucesso!", "PDV Config", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show("Erro ao configurar ECF: " + ex.Message);
}
}
protected override void OnAlterar() { }
protected override void OnExcluir() { }
protected override void OnLocalizar() { }
protected override void OnCancelar() { OnNovo(); }
}
}