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

126 lines
5.1 KiB
C#

using CPM;
using MLL;
using System;
using System.Drawing;
using System.Windows.Forms;
using UI;
namespace UI
{
public partial class TransportadorasCadastroPanel : FormularioModelo
{
private ModeloTransportadoras _transportadora = new ModeloTransportadoras();
// Controles - Identificação
private LV_TEXTBOX1 txtId, txtEmpresaId, txtRazaoSocial, txtNomeFantasia, txtCNPJ;
// Controles - Localização
private LV_TEXTBOX1 txtCep, txtEndereco, txtNumero, txtBairro, txtCidade, txtUF, txtComplemento;
// Controles - Logística e Contato
private LV_TEXTBOX1 txtTelefone, txtEmail, txtTipoFrete, txtPrazo, txtValorFrete, txtObservacoes;
private CheckBox chkAtivo;
public TransportadorasCadastroPanel()
{
this.Titulo = "Cadastro de Transportadoras";
MontarInterface();
}
private void MontarInterface()
{
// --- SEÇÃO 1: Identificação ---
content.Controls.Add(CreateSectionHeader("DADOS DA TRANSPORTADORA", 20));
txtId = AddInput(content, "ID", 20, 50, 70, 30, true);
txtEmpresaId = AddInput(content, "ID EMPRESA", 100, 50, 80, 30);
txtCNPJ = AddInput(content, "CNPJ", 190, 50, 200, 30);
txtRazaoSocial = AddInput(content, "RAZÃO SOCIAL", 20, 105, 430, 30);
txtNomeFantasia = AddInput(content, "NOME FANTASIA", 460, 105, 420, 30);
// --- SEÇÃO 2: Localização ---
content.Controls.Add(CreateSectionHeader("ENDEREÇO SEDE", 175));
txtCep = AddInput(content, "CEP", 20, 205, 100, 30);
txtEndereco = AddInput(content, "LOGRADOURO", 130, 205, 350, 30);
txtNumero = AddInput(content, "Nº", 490, 205, 70, 30);
txtBairro = AddInput(content, "BAIRRO", 570, 205, 190, 30);
txtUF = AddInput(content, "UF", 770, 205, 50, 30);
txtCidade = AddInput(content, "CIDADE", 20, 260, 300, 30);
txtComplemento = AddInput(content, "COMPLEMENTO", 330, 260, 550, 30);
// --- SEÇÃO 3: Regras de Logística e Contato ---
content.Controls.Add(CreateSectionHeader("CONFIGURAÇÕES DE FRETE E CONTATO", 330));
txtTipoFrete = AddInput(content, "TIPO DE FRETE (CIF/FOB)", 20, 360, 180, 30);
txtPrazo = AddInput(content, "PRAZO MÉDIO (DIAS)", 210, 360, 150, 30);
txtValorFrete = AddInput(content, "VALOR PADRÃO (R$)", 370, 360, 150, 30);
chkAtivo = CreateCheckBox("TRANSPORTADORA ATIVA", 540, 378);
content.Controls.Add(chkAtivo);
txtTelefone = AddInput(content, "TELEFONE", 20, 415, 180, 30);
txtEmail = AddInput(content, "E-MAIL PARA COTAÇÃO", 210, 415, 670, 30);
// --- SEÇÃO 4: Observações ---
content.Controls.Add(CreateSectionHeader("OBSERVAÇÕES ADICIONAIS", 485));
txtObservacoes = AddInput(content, "NOTAS DE LOGÍSTICA", 20, 515, 860, 80);
txtObservacoes.Height = 80;
content.Height = 630;
}
private void PreencherModel()
{
_transportadora.RazaoSocial = txtRazaoSocial.Text;
_transportadora.NomeFantasia = txtNomeFantasia.Text;
_transportadora.CNPJ = txtCNPJ.Text;
_transportadora.Cep = txtCep.Text;
_transportadora.Endereco = txtEndereco.Text;
_transportadora.Bairro = txtBairro.Text;
_transportadora.Cidade = txtCidade.Text;
_transportadora.UF = txtUF.Text;
_transportadora.Complemento = txtComplemento.Text;
// Conversões numéricas
if (int.TryParse(txtNumero.Text, out int num)) _transportadora.Numero = num;
if (int.TryParse(txtEmpresaId.Text, out int emp)) _transportadora.EmpresaId = emp;
if (int.TryParse(txtPrazo.Text, out int prazo)) _transportadora.PrazoEntrega = prazo;
if (decimal.TryParse(txtValorFrete.Text, out decimal valor)) _transportadora.ValorFretePadrao = valor;
_transportadora.TipoFrete = txtTipoFrete.Text;
_transportadora.Telefone = txtTelefone.Text;
_transportadora.Email = txtEmail.Text;
_transportadora.Observacoes = txtObservacoes.Text;
_transportadora.Ativo = chkAtivo.Checked;
}
protected override void OnNovo()
{
_transportadora = new ModeloTransportadoras();
txtCNPJ.Focus();
}
protected override void OnSalvar()
{
try
{
PreencherModel();
// BLLTransportadora.Salvar(_transportadora);
MessageBox.Show("Transportadora registrada com sucesso!", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show("Erro ao processar dados: " + ex.Message);
}
}
protected override void OnAlterar() { }
protected override void OnExcluir() { }
protected override void OnLocalizar() { }
protected override void OnCancelar() { OnNovo(); }
}
}