LevelOS-Core/UI/Dashboards/Cadastros/NfeInutilizadasCadastroPanel.cs

97 lines
3.4 KiB
C#

using CPM;
using MLL;
using System;
using System.Drawing;
using System.Windows.Forms;
using UI;
namespace UI
{
public partial class NfeInutilizadasCadastroPanel : FormularioModelo
{
private ModeloNFEInutilizadas _inutilizada = new ModeloNFEInutilizadas();
// Controles - Identificação e Fiscal
private LV_TEXTBOX1 txtId, txtCodigo, txtModelo, txtDia;
// Controles - Faixa Numérica
private LV_TEXTBOX1 txtNumeroInicial, txtNumeroFinal;
// Controles - Justificativa
private LV_TEXTBOX1 txtMotivo;
public NfeInutilizadasCadastroPanel()
{
this.Titulo = "Inutilização de Numeração de NF-e";
MontarInterface();
}
private void MontarInterface()
{
// --- SEÇÃO 1: Dados do Evento ---
content.Controls.Add(CreateSectionHeader("DADOS DO PROTOCOLO", 20));
txtId = AddInput(content, "ID", 20, 50, 70, 30, true);
txtCodigo = AddInput(content, "PROTOCOLO SEFAZ", 100, 50, 250, 30);
txtDia = AddInput(content, "DATA DO EVENTO", 360, 50, 150, 30);
txtModelo = AddInput(content, "MOD (EX: 55)", 520, 50, 80, 30);
// --- SEÇÃO 2: Faixa de Números ---
content.Controls.Add(CreateSectionHeader("FAIXA DE NUMERAÇÃO INUTILIZADA", 115));
txtNumeroInicial = AddInput(content, "NÚMERO INICIAL", 20, 145, 180, 30);
txtNumeroFinal = AddInput(content, "NÚMERO FINAL", 210, 145, 180, 30);
Label lblDica = new Label
{
Text = "* Se for apenas uma nota, repita o número no Inicial e Final.",
Location = new Point(400, 161),
AutoSize = true,
ForeColor = Color.DimGray,
Font = new Font("Segoe UI", 8, FontStyle.Italic)
};
content.Controls.Add(lblDica);
// --- SEÇÃO 3: Justificativa ---
content.Controls.Add(CreateSectionHeader("MOTIVO DA INUTILIZAÇÃO", 210));
txtMotivo = AddInput(content, "JUSTIFICATIVA (MÍNIMO 15 CARACTERES)", 20, 240, 780, 60);
content.Height = 330;
}
private void PreencherModel()
{
_inutilizada.CODIGO = txtCodigo.Text;
_inutilizada.DIA = txtDia.Text;
_inutilizada.MODELO = txtModelo.Text;
_inutilizada.NUMERO_INICIAL = txtNumeroInicial.Text;
_inutilizada.NUMERO_FINAL = txtNumeroFinal.Text;
_inutilizada.MOTIVO = txtMotivo.Text;
}
protected override void OnNovo()
{
_inutilizada = new ModeloNFEInutilizadas();
txtDia.Text = DateTime.Now.ToString("dd/MM/yyyy HH:mm");
txtModelo.Text = "55"; // Valor padrão para NF-e
txtNumeroInicial.Focus();
}
protected override void OnSalvar()
{
if (txtMotivo.Text.Length < 15)
{
MessageBox.Show("A SEFAZ exige uma justificativa com no mínimo 15 caracteres.", "Validação Fiscal");
return;
}
PreencherModel();
MessageBox.Show("Inutilização registrada e vinculada ao histórico fiscal!", "LevelOS Fiscal");
}
protected override void OnAlterar() { }
protected override void OnExcluir() { }
protected override void OnLocalizar() { }
protected override void OnCancelar() { }
}
}