using CPM; using MLL; using System; using System.Drawing; using System.Windows.Forms; using UI; namespace UI { public partial class ConfigBoletosCadastroPanel : FormularioModelo { private ModeloConvenioBoletos _config = new ModeloConvenioBoletos(); // Controles - Dados Bancários private LV_TEXTBOX1 txtId, txtCodigo, txtBanco, txtAgencia, txtConta; private LV_TEXTBOX1 txtCarteira, txtConvenio, txtNomeCedente, txtLocalPgto; // Controles - Configurações de Cobrança private LV_TEXTBOX1 txtDiasProtesto, txtTipoDoc, txtEspecieDoc; // Controles - Instruções (Array para facilitar o mapeamento) private LV_TEXTBOX1[] txtInstrucoes = new LV_TEXTBOX1[10]; public ConfigBoletosCadastroPanel() { this.Titulo = "Configuração de Convênios Bancários (Boletos)"; MontarInterface(); } private void MontarInterface() { // --- SEÇÃO 1: Dados da Conta e Convênio --- content.Controls.Add(CreateSectionHeader("DADOS BANCÁRIOS E CEDENTE", 20)); txtId = AddInput(content, "ID", 20, 50, 70, 30, true); txtCodigo = AddInput(content, "CÓD. INTERNO", 100, 50, 100, 30); txtBanco = AddInput(content, "BANCO (NOME/Nº)", 210, 50, 200, 30); txtNomeCedente = AddInput(content, "NOME DO CEDENTE (RAZÃO SOCIAL)", 420, 50, 460, 30); txtAgencia = AddInput(content, "AGÊNCIA", 20, 105, 110, 30); txtConta = AddInput(content, "CONTA CORRENTE", 140, 105, 150, 30); txtCarteira = AddInput(content, "CARTEIRA", 300, 105, 100, 30); txtConvenio = AddInput(content, "Nº CONVÊNIO", 410, 105, 180, 30); txtLocalPgto = AddInput(content, "LOCAL DE PAGAMENTO", 600, 105, 280, 30); // --- SEÇÃO 2: Regras de Cobrança --- content.Controls.Add(CreateSectionHeader("REGRAS DE PROTESTO E DOCUMENTO", 175)); txtDiasProtesto = AddInput(content, "DIAS PARA PROTESTO", 20, 205, 150, 30); txtTipoDoc = AddInput(content, "TIPO DOC. COBRANÇA", 180, 205, 180, 30); txtEspecieDoc = AddInput(content, "ESPÉCIE DOC.", 370, 205, 150, 30); // --- SEÇÃO 3: Instruções no Boleto --- content.Controls.Add(CreateSectionHeader("INSTRUÇÕES DE CAIXA (MENSAGENS NO BOLETO)", 270)); // Criando os 10 campos de instrução em 2 colunas para economizar espaço for (int i = 0; i < 10; i++) { int coluna = i % 2; // 0 ou 1 int linha = i / 2; // 0 a 4 int posX = 20 + (coluna * 440); int posY = 300 + (linha * 55); txtInstrucoes[i] = AddInput(content, $"INSTRUÇÃO {(i + 1):D2}", posX, posY, 420, 30); } // Ajuste da altura para acomodar as instruções content.Height = 620; } private void PreencherModel() { _config.CODIGO = txtCodigo.Text; _config.BANCO = txtBanco.Text; _config.AGENCIA = txtAgencia.Text; _config.CONTA = txtConta.Text; _config.CARTEIRA = txtCarteira.Text; _config.CONVENIO = txtConvenio.Text; _config.NOME_CEDENTE = txtNomeCedente.Text; _config.LOCAL_PGTO = txtLocalPgto.Text; _config.DIAS_PROTESTO = txtDiasProtesto.Text; _config.TIPO_DOC_COB = txtTipoDoc.Text; _config.TIPO_ESP_DOC = txtEspecieDoc.Text; // Mapeamento das 10 instruções _config.INSTRU_01 = txtInstrucoes[0].Text; _config.INSTRU_02 = txtInstrucoes[1].Text; _config.INSTRU_03 = txtInstrucoes[2].Text; _config.INSTRU_04 = txtInstrucoes[3].Text; _config.INSTRU_05 = txtInstrucoes[4].Text; _config.INSTRU_06 = txtInstrucoes[5].Text; _config.INSTRU_07 = txtInstrucoes[6].Text; _config.INSTRU_08 = txtInstrucoes[7].Text; _config.INSTRU_09 = txtInstrucoes[8].Text; _config.INSTRU_10 = txtInstrucoes[9].Text; } protected override void OnNovo() { _config = new ModeloConvenioBoletos(); txtBanco.Focus(); } protected override void OnSalvar() { try { PreencherModel(); // BLL.Salvar(_config); MessageBox.Show("Configuração de boleto salva com sucesso!"); } catch (Exception ex) { MessageBox.Show("Erro ao salvar: " + ex.Message); } } protected override void OnAlterar() { } protected override void OnExcluir() { } protected override void OnLocalizar() { } protected override void OnCancelar() { OnNovo(); } } }