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

95 lines
3.8 KiB
C#

using CPM;
using MLL;
using System.Drawing;
using System.Windows.Forms;
namespace UI
{
public class OrdensDeslocamentoPanel : FormularioModelo
{
// Inputs para Saída e Chegada
private LV_TEXTBOX1 txtId, txtCodOrdem, txtDia;
private LV_TEXTBOX1 txtHoraSai, txtKmSai, txtHoraChega, txtKmChega;
// Inputs para Volta
private LV_TEXTBOX1 txtHoraVoltaSai, txtKmVoltaSai, txtHoraVolta, txtKmVolta;
// Despesas extras
private LV_TEXTBOX1 txtAlimenta, txtHospeda;
public OrdensDeslocamentoPanel()
{
this.Titulo = "CONTROLE DE DESLOCAMENTO / VIAGEM";
MontarInterface();
}
private void MontarInterface()
{
// --- SEÇÃO 1: IDENTIFICAÇÃO ---
content.Controls.Add(CreateSectionHeader("Dados Gerais", 20));
txtId = AddInput(content, "ID REGISTRO", 20, 55, 100, 28, true);
txtCodOrdem = AddInput(content, "CÓDIGO O.S.", 130, 55, 120, 28, true);
txtDia = AddInput(content, "DATA DA VIAGEM", 260, 55, 150, 28);
// --- SEÇÃO 2: IDA (SAÍDA E CHEGADA NO DESTINO) ---
content.Controls.Add(CreateSectionHeader("Ida ao Cliente / Destino", 115));
txtHoraSai = AddInput(content, "HORA SAÍDA", 20, 150, 120, 28);
txtKmSai = AddInput(content, "KM SAÍDA", 150, 150, 120, 28);
txtHoraChega = AddInput(content, "HORA CHEGADA", 300, 150, 120, 28);
txtKmChega = AddInput(content, "KM CHEGADA", 430, 150, 120, 28);
// --- SEÇÃO 3: VOLTA (SAÍDA DO CLIENTE E CHEGADA NA BASE) ---
content.Controls.Add(CreateSectionHeader("Retorno à Base", 210));
txtHoraVoltaSai = AddInput(content, "HORA VOLTA (SAÍDA)", 20, 245, 120, 28);
txtKmVoltaSai = AddInput(content, "KM VOLTA (SAÍDA)", 150, 245, 120, 28);
txtHoraVolta = AddInput(content, "HORA FINAL", 300, 245, 120, 28);
txtKmVolta = AddInput(content, "KM FINAL", 430, 245, 120, 28);
// --- SEÇÃO 4: DESPESAS ADICIONAIS ---
content.Controls.Add(CreateSectionHeader("Despesas de Viagem", 305));
txtAlimenta = AddInput(content, "ALIMENTAÇÃO (R$)", 20, 340, 150, 28);
txtHospeda = AddInput(content, "HOSPEDAGEM (R$)", 180, 340, 150, 28);
}
// --- IMPLEMENTAÇÃO DOS MÉTODOS ABSTRATOS ---
protected override void OnNovo()
{
// Limpar todos os campos para novo registro
foreach (Control c in content.Controls)
{
if (c is LV_TEXTBOX1 txt && !txt.ReadOnly) txt.Text = string.Empty;
}
txtDia.Focus();
}
protected override void OnSalvar()
{
// Mapeando para o seu ModeloOrdensDeslocamento
var deslocamento = new ModeloOrdensDeslocamento
{
DIA = txtDia.Text,
HORA_SAI = txtHoraSai.Text,
KM_SAI = txtKmSai.Text,
HORA_CHEGA = txtHoraChega.Text,
KM_CHEGA = txtKmChega.Text,
HORA_VOLTA_SAI = txtHoraVoltaSai.Text,
KM_VOLTA_SAI = txtKmVoltaSai.Text,
HORA_VOLTA = txtHoraVolta.Text,
KM_VOLTA = txtKmVolta.Text,
ALIMENTA = txtAlimenta.Text,
HOSPEDA = txtHospeda.Text
};
// Aqui você chamaria a sua BLL/DAL para persistir
MessageBox.Show("Dados de deslocamento registrados!", "LevelOS", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
protected override void OnAlterar() { /* Lógica de Alteração */ }
protected override void OnExcluir() { /* Lógica de Exclusão */ }
protected override void OnLocalizar() { /* Abrir tela de busca */ }
protected override void OnCancelar() { OnNovo(); }
}
}