private void afterBusca() { if (cbEmpresa.SelectedItem != null && !string.IsNullOrEmpty(cd_clifor_sacado.Text)) { dsBloqueto.DataSource = TCN_Titulo.Buscar(cbEmpresa.SelectedValue.ToString(), decimal.Zero, decimal.Zero, decimal.Zero, string.Empty, string.Empty, string.Empty, cd_clifor_sacado.Text, string.Empty, decimal.Zero, decimal.Zero, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, "'A'", string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, false, 0, null); } }
private void afterGrava() { if (string.IsNullOrEmpty(id_config.Text)) { MessageBox.Show("Obrigatório Informar configuração para gerar boleto.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); id_config.Focus(); return; } if (bsParcelas.Count <= 0) { MessageBox.Show("Não existe parcelas para gerar boleto.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (!(bsParcelas.DataSource as TList_RegLanParcela).Exists(p => p.St_bloquetobool)) { MessageBox.Show("Não existe parcela selecionado para gerar boleto.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } //Gerar Boleto Bancario try { blListaTitulo lTitulo = TCN_Titulo.GerarBloqueto(id_config.Text, (bsParcelas.DataSource as TList_RegLanParcela).FindAll(p => p.St_bloquetobool), null); MessageBox.Show("Bloquetos gravados com sucesso!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); DialogResult = DialogResult.OK; } catch (Exception ex) { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void AtualizarTitulo() { if (dsBloqueto.Current != null) { if (!(dsBloqueto.Current as blTitulo).St_registro.Trim().ToUpper().Equals("A")) { MessageBox.Show("Permitido atualizar somente titulo ABERTO.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } using (TFAtualizaBoleto fAtualiza = new TFAtualizaBoleto()) { fAtualiza.rBloqueto = dsBloqueto.Current as blTitulo; if (fAtualiza.ShowDialog() == DialogResult.OK) { try { (dsBloqueto.Current as blTitulo).Vl_multacalc = fAtualiza.pVl_multacalc; (dsBloqueto.Current as blTitulo).Vl_jurocalc += fAtualiza.pVl_jurocalc; TCN_Titulo.AtualizarBoleto(dsBloqueto.Current as blTitulo, fAtualiza.pDt_atualizada, null); if (MessageBox.Show("Boleto atualizado com sucesso.\r\nDeseja Imprimir Boleto?", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes) { (dsBloqueto.Current as blTitulo).Dt_vencimento = fAtualiza.pDt_atualizada; afterPrint(); } afterBusca(); } catch (Exception ex) { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } }
private void afterExclui() { if (dsBloqueto.Current != null) { if ((dsBloqueto.Current as blTitulo).St_registro.Trim().ToUpper().Equals("C")) { MessageBox.Show("Bloqueto ja se encontra CANCELADO!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if ((dsBloqueto.Current as blTitulo).St_registro.Trim().ToUpper().Equals("P")) { MessageBox.Show("Não é permitido excluir um bloqueto compensado!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } string msg = string.Empty; if (new TCD_LoteRemessa().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "isnull(a.st_registro, 'A')", vOperador = "=", vVL_Busca = "'P'" }, new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_cob_loteremessa_x_titulo x " + "where x.id_lote = a.id_lote " + "and x.cd_empresa = '" + (dsBloqueto.Current as blTitulo).Cd_empresa.Trim() + "' " + "and x.nr_lancto = " + (dsBloqueto.Current as blTitulo).Nr_lancto.Value.ToString() + " " + "and x.cd_parcela = " + (dsBloqueto.Current as blTitulo).Cd_parcela.Value.ToString() + " " + "and x.id_cobranca = " + (dsBloqueto.Current as blTitulo).Id_cobranca.Value.ToString() + " " + "and isnull(x.ST_LoteRemessa, 'B') <> 'B' " + ") " } }, "1") != null) { msg = "Boleto ja enviado para o banco."; } if (MessageBox.Show((string.IsNullOrEmpty(msg) ? string.Empty : msg + "\r\n") + "Confirma a exclusão do Bloqueto?\r\n" + "Obs.: A exclusão do boleto não ira cancelar o financeiro utilizado para gerar o mesmo.\r\n" + "Para cancelar o financeiro utilize a tela de <CONTAS A PAGAR/RECEBER>.\r\n", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes) { try { TCN_Titulo.Excluir((dsBloqueto.Current as blTitulo), null); MessageBox.Show("Bloqueto excluido com sucesso!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); afterBusca(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } }
private void reprocessarBloqueto(blTitulo r) { //Gerar atualização do bloqueto //Calcular Multa if (r.Pc_multa > decimal.Zero) { if (r.Dt_vencimento.Value.AddDays(Convert.ToDouble(r.Nr_diasmulta)).Date < CamadaDados.UtilData.Data_Servidor().Date) { r.Vl_multacalc = Math.Round(r.Tp_multa.Trim().ToUpper().Equals("P") ? ((r.Vl_documento * r.Pc_multa) / 100) : r.Pc_multa, 2); } } //Calcular Juro if ((r.Pc_jurodia > decimal.Zero) && (r.Dt_vencimento.Value.Date < CamadaDados.UtilData.Data_Servidor().Date)) { r.Vl_jurocalc += Math.Round((r.Tp_jurodia.Trim().ToUpper().Equals("P") ? ((r.Vl_documento * r.Pc_jurodia) / 100) : r.Pc_jurodia), 2) * CamadaDados.UtilData.Data_Servidor().Subtract(r.Dt_vencimento.Value).Days; } TCN_Titulo.AtualizarBoleto(r, CamadaDados.UtilData.Data_Servidor(), null); }
private void ProtestarTitulo() { if (dsBloqueto.Current != null) { if (!(dsBloqueto.Current as blTitulo).St_registro.Trim().ToUpper().Equals("A")) { MessageBox.Show("Permitido protestar somente titulo ABERTO.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if ((dsBloqueto.Current as blTitulo).St_protestadobool) { MessageBox.Show("Titulo ja se encontra PROTESTADO.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (MessageBox.Show("Confirma protesto do titulo?", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes) { InputBox inp = new InputBox("00/00/0000", "Data Protesto."); inp.Text = "Informar Data Protesto Titulo."; DateTime dt_protesto; try { dt_protesto = DateTime.Parse(inp.ShowDialog()); } catch { dt_protesto = CamadaDados.UtilData.Data_Servidor(); } try { (dsBloqueto.Current as blTitulo).St_protestado = "S"; (dsBloqueto.Current as blTitulo).Dt_protesto = dt_protesto; TCN_Titulo.Gravar(dsBloqueto.Current as blTitulo, null); MessageBox.Show("Titulo Protestado com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); afterBusca(); } catch (Exception ex) { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }
private void afterBusca() { string st_reg = string.Empty; string virg = string.Empty; if (CB_Abertas.Checked) { st_reg += virg + "'A'"; virg = ","; } if (CB_Liquidadas.Checked) { st_reg += virg + "'P'"; virg = ","; } if (cbCancelado.Checked) { st_reg += virg + "'C'"; virg = ","; } if (cbDescontado.Checked) { st_reg += virg + "'D'"; virg = ","; } blListaTitulo lista = TCN_Titulo.Buscar(CD_Empresa.Text, decimal.Zero, decimal.Zero, decimal.Zero, cd_contager.Text, cd_banco.Text, string.Empty, cd_clifor_sacado.Text, NR_Docto.Text, VL_Inicial.Value, VL_Final.Value, rgData.NM_Valor, DT_Inicial.Text, DT_Final.Text, CB_Vencidas.Checked ? "V" : string.Empty, CB_AVencer.Checked ? "AV" : string.Empty, st_reg, string.Empty, string.Empty, nosso_numero.Text, string.Empty, string.Empty, string.Empty, st_protestado.Checked, 0, null); //Totalizar titulo abertos if (lista.Count > 0) { tot_doc_aberto.Value = lista.Where(p => p.St_registro.Trim().ToUpper().Equals("A") || p.St_registro.Trim().ToUpper().Equals("D")).Sum(v => v.Vl_atual); //Totalizar titulo compensado tot_doc_compensado.Value = lista.Where(p => p.St_registro.Trim().ToUpper().Equals("P")).Sum(v => v.Vl_nominal); //Totalizar despesas cobranca tot_despcob.Value = lista.Sum(v => v.Vl_despesa_cobranca); tot_documento.Value = tot_doc_aberto.Value + tot_doc_compensado.Value; } dsBloqueto.DataSource = lista; dsBloqueto_PositionChanged(this, new EventArgs()); }
private void BB_Conciliar_Click(object sender, EventArgs e) { if (bsBloqueto.Count > 0) { Cursor = Cursors.WaitCursor; try { string msg = string.Empty; if (TCN_Titulo.ConciliarRetorno(bsBloqueto.List as blListaTitulo, cbCfgBoleto.SelectedItem as TRegistro_CadCFGBanco, null, ref msg).Trim() != string.Empty) { MessageBox.Show("Conciliação de bloquetos realizada com sucesso." + (msg.Trim() != string.Empty ? "\r\n\r\nBloqueto que não foram compensados:\r\n" + msg.Trim() : string.Empty), "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); //Gravar tarifa de cobranca if (((bsBloqueto.List as blListaTitulo).Sum(p => p.Vl_despesa_cobranca) > decimal.Zero || (cbCfgBoleto.SelectedItem as TRegistro_CadCFGBanco).Vl_taxa > decimal.Zero) && (!string.IsNullOrEmpty((cbCfgBoleto.SelectedItem as TRegistro_CadCFGBanco).Cd_historico_taxacob))) { try { TCN_Titulo.GravarTarifas(bsBloqueto.List as blListaTitulo, cbCfgBoleto.SelectedItem as TRegistro_CadCFGBanco, null); MessageBox.Show("Tarifa(s) gravada(s) com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show("Erro gravar tarifa: " + ex.Message); } } //Verificar se empresa integra Vendas Externa TList_CFGVendasExterna lCfg = TCN_CFGVendasExterna.Buscar((cbCfgBoleto.SelectedItem as TRegistro_CadCFGBanco).Empresa.Cd_empresa, null); if (lCfg.Count > 0) { if (ValidarToken(lCfg[0].Login, lCfg[0].Senha, lCfg[0].Licenca, lCfg[0].Integracao)) { string mensagem = string.Empty; (bsBloqueto.List as blListaTitulo) .Where(x => x.Vl_recebido > decimal.Zero) .ToList() .ForEach(x => { try { if (ServiceRest.DataService.BaixarBoletos( new BaixarBoleto { CODIGO = x.Cd_integracao, DATA_PAGAMENTO = x.Dt_credito.Value.ToString("yyyy-MM-dd HH:mm:ss"), VALOR_PAGO = x.Vl_recebido.ToString("N2", new System.Globalization.CultureInfo("en-US", true)) }, _token)) { x.St_baixadointegracao = "S"; TCN_Titulo.Gravar(x, null); } else { mensagem += "Boleto Nº" + x.Nosso_numero + " não foi integrada\r\n"; } } catch { mensagem += "Boleto Nº" + x.Nosso_numero + " não foi integrada\r\n"; } }); if (string.IsNullOrWhiteSpace(mensagem)) { MessageBox.Show("Relação de boletos não integrados com Vendas Externas.\r\n" + mensagem, "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } //Mover arquivos processados para pasta backup if (!System.IO.Directory.Exists(path_retorno.Text.Trim() + System.IO.Path.DirectorySeparatorChar.ToString() + "bkp")) { System.IO.Directory.CreateDirectory(path_retorno.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "bkp"); } for (int i = 0; i < lArquivos.CheckedItems.Count; i++) { if (!System.IO.File.Exists(path_retorno.Text.Trim() + System.IO.Path.DirectorySeparatorChar.ToString() + "bkp" + System.IO.Path.DirectorySeparatorChar.ToString() + lArquivos.CheckedItems[i].ToString().Trim())) { System.IO.File.Move(path_retorno.Text.Trim() + System.IO.Path.DirectorySeparatorChar.ToString() + lArquivos.CheckedItems[i].ToString().Trim(), path_retorno.Text.Trim() + System.IO.Path.DirectorySeparatorChar.ToString() + "bkp" + System.IO.Path.DirectorySeparatorChar.ToString() + lArquivos.CheckedItems[i].ToString().Trim()); } else { System.IO.File.Delete(path_retorno.Text.Trim() + System.IO.Path.DirectorySeparatorChar.ToString() + "bkp" + System.IO.Path.DirectorySeparatorChar.ToString() + lArquivos.CheckedItems[i].ToString().Trim()); } } bsBloqueto.Clear(); MontarListaArqRet(); } else { MessageBox.Show("Não existe bloqueto em aberto para compensar neste arquivo.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); //Mover arquivos processados para pasta backup if (!System.IO.Directory.Exists(path_retorno.Text.Trim() + System.IO.Path.DirectorySeparatorChar.ToString() + "bkp")) { System.IO.Directory.CreateDirectory(path_retorno.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "bkp"); } for (int i = 0; i < lArquivos.CheckedItems.Count; i++) { if (!System.IO.File.Exists(path_retorno.Text.Trim() + System.IO.Path.DirectorySeparatorChar.ToString() + "bkp" + System.IO.Path.DirectorySeparatorChar.ToString() + lArquivos.CheckedItems[i].ToString().Trim())) { System.IO.File.Move(path_retorno.Text.Trim() + System.IO.Path.DirectorySeparatorChar.ToString() + lArquivos.CheckedItems[i].ToString().Trim(), path_retorno.Text.Trim() + System.IO.Path.DirectorySeparatorChar.ToString() + "bkp" + System.IO.Path.DirectorySeparatorChar.ToString() + lArquivos.CheckedItems[i].ToString().Trim()); } else { System.IO.File.Delete(path_retorno.Text.Trim() + System.IO.Path.DirectorySeparatorChar.ToString() + "bkp" + System.IO.Path.DirectorySeparatorChar.ToString() + lArquivos.CheckedItems[i].ToString().Trim()); } } bsBloqueto.Clear(); MontarListaArqRet(); } //Cobrança //gerarCobrancaPorEmail(); } catch (Exception ex) { MessageBox.Show("Erro: " + ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { Cursor = Cursors.Default; } } else { MessageBox.Show("Não existe titulos para ser conciliado.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
private void BB_Retorno_Click(object sender, EventArgs e) { if (lArquivos.CheckedItems != null) { if (cbCfgBoleto.SelectedItem == null) { MessageBox.Show("Obrigatorio informar configuração.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); cbCfgBoleto.Focus(); return; } string[] files = new string[lArquivos.CheckedItems.Count]; for (int i = 0; i < lArquivos.CheckedItems.Count; i++) { files[i] = lArquivos.CheckedItems[i].ToString().Trim(); } if (files.Length > 0) { try { blListaTitulo lTitulos = TCN_Titulo.LerRetorno((cbCfgBoleto.SelectedItem as TRegistro_CadCFGBanco).Empresa.Cd_empresa, (cbCfgBoleto.SelectedItem as TRegistro_CadCFGBanco).Banco.Cd_banco, path_retorno.Text, (cbCfgBoleto.SelectedItem as TRegistro_CadCFGBanco).Cd_bancocorrespondente, files); if (lTitulos == null ? true : lTitulos.Count.Equals(0)) { MessageBox.Show("Lote retorno não possui titulos para serem processados.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); //Mover arquivos processados para pasta backup if (!System.IO.Directory.Exists(path_retorno.Text.Trim() + System.IO.Path.DirectorySeparatorChar.ToString() + "bkp")) { System.IO.Directory.CreateDirectory(path_retorno.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "bkp"); } for (int i = 0; i < lArquivos.CheckedItems.Count; i++) { if (!System.IO.File.Exists(path_retorno.Text.Trim() + System.IO.Path.DirectorySeparatorChar.ToString() + "bkp" + System.IO.Path.DirectorySeparatorChar.ToString() + lArquivos.CheckedItems[i].ToString().Trim())) { System.IO.File.Move(path_retorno.Text.Trim() + System.IO.Path.DirectorySeparatorChar.ToString() + lArquivos.CheckedItems[i].ToString().Trim(), path_retorno.Text.Trim() + System.IO.Path.DirectorySeparatorChar.ToString() + "bkp" + System.IO.Path.DirectorySeparatorChar.ToString() + lArquivos.CheckedItems[i].ToString().Trim()); } else { System.IO.File.Delete(path_retorno.Text.Trim() + System.IO.Path.DirectorySeparatorChar.ToString() + "bkp" + System.IO.Path.DirectorySeparatorChar.ToString() + lArquivos.CheckedItems[i].ToString().Trim()); } } bsBloqueto.Clear(); MontarListaArqRet(); } else { //Buscar Cd.Sacado e Nm.Sacado dos titulos lTitulos.ForEach(x => { blListaTitulo lTitulo = new TCD_Titulo().Select( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + (cbCfgBoleto.SelectedItem as TRegistro_CadCFGBanco).Empresa.Cd_empresa.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.id_config", vOperador = "=", vVL_Busca = (cbCfgBoleto.SelectedItem as TRegistro_CadCFGBanco).Id_configstr }, new TpBusca() { vNM_Campo = "a.NossoNumero", vOperador = "=", vVL_Busca = "'" + x.Nosso_numero.Trim() + "'" } }, 0, string.Empty); if (lTitulo.Count > 0) { x.Cd_sacado = lTitulo[0].Cd_sacado; x.Sacado.Nome = lTitulo[0].Nm_sacado; } }); bsBloqueto.DataSource = lTitulos; tot_documento.Text = (bsBloqueto.List as blListaTitulo).Sum(p => p.Vl_atual).ToString("N2", new System.Globalization.CultureInfo("pt-BR")); bsBloqueto_PositionChanged(this, new EventArgs()); } } catch (Exception ex) { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); //Mover arquivos processados para pasta backup if (!System.IO.Directory.Exists(path_retorno.Text.Trim() + System.IO.Path.DirectorySeparatorChar.ToString() + "bkp")) { System.IO.Directory.CreateDirectory(path_retorno.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "bkp"); } for (int i = 0; i < lArquivos.CheckedItems.Count; i++) { if (!System.IO.File.Exists(path_retorno.Text.Trim() + System.IO.Path.DirectorySeparatorChar.ToString() + "bkp" + System.IO.Path.DirectorySeparatorChar.ToString() + lArquivos.CheckedItems[i].ToString().Trim())) { System.IO.File.Move(path_retorno.Text.Trim() + System.IO.Path.DirectorySeparatorChar.ToString() + lArquivos.CheckedItems[i].ToString().Trim(), path_retorno.Text.Trim() + System.IO.Path.DirectorySeparatorChar.ToString() + "bkp" + System.IO.Path.DirectorySeparatorChar.ToString() + lArquivos.CheckedItems[i].ToString().Trim()); } else { System.IO.File.Delete(path_retorno.Text.Trim() + System.IO.Path.DirectorySeparatorChar.ToString() + "bkp" + System.IO.Path.DirectorySeparatorChar.ToString() + lArquivos.CheckedItems[i].ToString().Trim()); } } bsBloqueto.Clear(); MontarListaArqRet(); } } } }
public static string Gravar(TRegistro_LoteBloqueto val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_LoteBloqueto qtb_lote = new TCD_LoteBloqueto(); try { if (banco == null) { st_transacao = qtb_lote.CriarBanco_Dados(true); } else { qtb_lote.Banco_Dados = banco; } //Gravar Lote string retorno = qtb_lote.Gravar(val); //Deletar Bloquetos val.lBloquetosExcluir.ForEach(p => { TCN_Lote_X_Titulo.Excluir(new TRegistro_Lote_X_Titulo() { Cd_empresa = p.Cd_empresa, Cd_parcela = p.Cd_parcela, Id_cobranca = p.Id_cobranca, Id_lote = val.Id_lote.Value, Nr_lancto = p.Nr_lancto }, qtb_lote.Banco_Dados); //Verificar se o bloqueto tem liquidacao object obj = new CamadaDados.Financeiro.Duplicata.TCD_LanLiquidacao(qtb_lote.Banco_Dados).BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + p.Cd_empresa.Trim() + "'", }, new TpBusca() { vNM_Campo = "a.nr_lancto", vOperador = "=", vVL_Busca = p.Nr_lancto.ToString() }, new TpBusca() { vNM_Campo = "a.cd_parcela", vOperador = "=", vVL_Busca = p.Cd_parcela.ToString() }, new TpBusca() { vNM_Campo = "isnull(a.st_registro, 'A')", vOperador = "<>", vVL_Busca = "'C'" } }, "1"); if (obj != null) { if (obj.ToString().Equals("1")) { p.St_registro = "C"; } else { p.St_registro = "A"; } } else { p.St_registro = "A"; } TCN_Titulo.Gravar(p, qtb_lote.Banco_Dados); }); //Gravar Bloquetos val.ListaBloqueto.ForEach(p => { TCN_Lote_X_Titulo.Gravar(new TRegistro_Lote_X_Titulo() { Cd_empresa = p.Cd_empresa, Cd_parcela = p.Cd_parcela, Id_cobranca = p.Id_cobranca, Id_lote = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(retorno, "@P_ID_LOTE")), Nr_lancto = p.Nr_lancto }, qtb_lote.Banco_Dados); }); if (st_transacao) { qtb_lote.Banco_Dados.Commit_Tran(); } return(retorno); } catch (Exception ex) { if (st_transacao) { qtb_lote.Banco_Dados.RollBack_Tran(); } throw new Exception(ex.Message); } finally { if (st_transacao) { qtb_lote.deletarBanco_Dados(); } } }
public static string Excluir(TRegistro_LoteBloqueto val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_LoteBloqueto qtb_lote = new TCD_LoteBloqueto(); try { if (banco == null) { st_transacao = qtb_lote.CriarBanco_Dados(true); } else { qtb_lote.Banco_Dados = banco; } //Alterar o status dos bloquetos para A - Ativo val.ListaBloqueto.ForEach(p => { p.St_registro = "A"; TCN_Titulo.Gravar(p, qtb_lote.Banco_Dados); //Deletar tabela lote X titulo TCN_Lote_X_Titulo.Excluir(new TRegistro_Lote_X_Titulo() { Cd_empresa = p.Cd_empresa, Cd_parcela = p.Cd_parcela, Id_cobranca = p.Id_cobranca, Id_lote = val.Id_lote.Value, Nr_lancto = p.Nr_lancto }, qtb_lote.Banco_Dados); }); val.lBloquetosExcluir.ForEach(p => { p.St_registro = "A"; TCN_Titulo.Gravar(p, qtb_lote.Banco_Dados); //Deletar tabela lote X titulo TCN_Lote_X_Titulo.Excluir(new TRegistro_Lote_X_Titulo() { Cd_empresa = p.Cd_empresa, Cd_parcela = p.Cd_parcela, Id_cobranca = p.Id_cobranca, Id_lote = val.Id_lote.Value, Nr_lancto = p.Nr_lancto }, qtb_lote.Banco_Dados); }); //Deletar Lote qtb_lote.Excluir(val); if (st_transacao) { qtb_lote.Banco_Dados.Commit_Tran(); } return("OK"); } catch (Exception ex) { if (st_transacao) { qtb_lote.Banco_Dados.RollBack_Tran(); } throw new Exception(ex.Message); } finally { if (st_transacao) { qtb_lote.deletarBanco_Dados(); } } }
public static string ProcessarLote(TRegistro_LoteBloqueto val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_LoteBloqueto qtb_lote = new TCD_LoteBloqueto(); try { if (banco == null) { st_transacao = qtb_lote.CriarBanco_Dados(true); } else { qtb_lote.Banco_Dados = banco; } //Lancamento de caixa no valor liquido //Buscar historico na configuracao do banco TList_CadCFGBanco lCfg = Cadastros.TCN_CadCFGBanco.Buscar(val.Id_configstr, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, 1, qtb_lote.Banco_Dados); if (lCfg.Count > 0) { if (string.IsNullOrEmpty(lCfg[0].Cd_historico_desconto)) { throw new Exception("Não existe configuração de historico para desconto de bloquetos\r\n" + "para a configuração " + val.Ds_config.Trim()); } decimal total_bloquetos = val.ListaBloqueto.Sum(p => p.Vl_documento); string retorno = TCN_LanCaixa.GravaLanCaixa( new TRegistro_LanCaixa() { Cd_ContaGer = val.Cd_contager, Cd_Empresa = val.Cd_empresa, Cd_Historico = lCfg[0].Cd_historico_desconto, ComplHistorico = "DESCONTO DE BLOQUETOS DO LOTE " + val.Id_lotestr, Dt_lancto = val.Dt_processamento, Nr_Docto = "LOTE" + val.Id_lotestr, St_Estorno = "N", Vl_PAGAR = 0, Vl_RECEBER = total_bloquetos }, qtb_lote.Banco_Dados); //Amarrar este lancamento de caixa ao lote //com o campo TP_Registro = D (DESCONTO) TCN_Bloqueto_X_Caixa.Gravar(new TRegistro_Lote_X_Caixa() { Cd_contager = val.Cd_contager, Cd_lanctocaixa = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(retorno, "@P_CD_LANCTOCAIXA")), Id_lote = val.Id_lote.Value, Tp_registro = "D" }, qtb_lote.Banco_Dados); //Lancar Taxa if (string.IsNullOrEmpty(lCfg[0].Cd_historico_taxadesc)) { throw new Exception("Não existe configuração de historico para taxa desconto de bloquetos\r\n" + "para a configuração " + val.Ds_config.Trim()); } retorno = TCN_LanCaixa.GravaLanCaixa(new TRegistro_LanCaixa() { Cd_ContaGer = val.Cd_contager, Cd_Empresa = val.Cd_empresa, Cd_Historico = lCfg[0].Cd_historico_taxadesc, ComplHistorico = "TAXA DESCONTO BLOQUETOS DO LOTE " + val.Id_lotestr, Dt_lancto = val.Dt_processamento, Nr_Docto = "LOTE" + val.Id_lote, St_Estorno = "N", Vl_PAGAR = val.Vl_taxa, Vl_RECEBER = decimal.Zero }, qtb_lote.Banco_Dados); //Amarrar este lancamento de caixa ao lote //com o campo TP_Registro = T (TAXA) TCN_Bloqueto_X_Caixa.Gravar(new TRegistro_Lote_X_Caixa() { Cd_contager = val.Cd_contager, Cd_lanctocaixa = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(retorno, "@P_CD_LANCTOCAIXA")), Id_lote = val.Id_lote.Value, Tp_registro = "T" }, qtb_lote.Banco_Dados); //Gravar centro resultado taxa cobrança if (!string.IsNullOrEmpty(lCfg[0].Cd_centroresultTXCob)) { //Gravar Lancto Resultado string id = CCustoLan.TCN_LanCCustoLancto.Gravar( new CamadaDados.Financeiro.CCustoLan.TRegistro_LanCCustoLancto() { Cd_empresa = val.Cd_empresa, Cd_centroresult = lCfg[0].Cd_centroresultTXCob, Vl_lancto = val.Vl_taxa, Dt_lancto = val.Dt_processamento }, qtb_lote.Banco_Dados); //Amarrar Lancto a Caixa TCN_Caixa_X_CCusto.Gravar(new TRegistro_Caixa_X_CCusto() { Cd_contager = val.Cd_contager, Cd_lanctocaixa = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(retorno, "@P_CD_LANCTOCAIXA")), Id_ccustolan = decimal.Parse(id) }, qtb_lote.Banco_Dados); } val.ListaBloqueto.ForEach(p => { //Alterar status dos bloquetos para D - Descontado p.St_registro = "D"; TCN_Titulo.Gravar(p, qtb_lote.Banco_Dados); //Criar lista de lote x titulo val.lBloquetos.Add(new TRegistro_Lote_X_Titulo() { Cd_empresa = p.Cd_empresa, Cd_parcela = p.Cd_parcela, Id_cobranca = p.Id_cobranca, Id_lote = val.Id_lote.Value, Nr_lancto = p.Nr_lancto, Vl_documento = p.Vl_documento }); }); //Calcular valor taxa por bloqueto val.lBloquetos.ForEach(p => p.Vl_taxa = Math.Round(((val.Vl_taxa / total_bloquetos) * p.Vl_documento), 2)); decimal total_taxa = val.lBloquetos.Sum(p => p.Vl_taxa); if (val.Vl_taxa != total_taxa) { val.lBloquetos[val.lBloquetos.Count - 1].Vl_taxa += (val.Vl_taxa - total_taxa); } //Gravar lote x titulo com o valor da taxa val.lBloquetos.ForEach(p => TCN_Lote_X_Titulo.Gravar(p, qtb_lote.Banco_Dados)); //Limpar lista de bloquetos para //que a gravacao do lote nao altere //novamente a lista de bloquetos val.ListaBloqueto.Clear(); //Alterar status do lote para processado val.St_registro = "P"; Gravar(val, qtb_lote.Banco_Dados); if (st_transacao) { qtb_lote.Banco_Dados.Commit_Tran(); } return(retorno); } else { throw new Exception("Não existe configuração para emissão de bloquetos para a empresa " + val.Cd_empresa.Trim() + " e conta gerencial " + val.Cd_contager.Trim()); } } catch (Exception ex) { if (st_transacao) { qtb_lote.Banco_Dados.RollBack_Tran(); } throw new Exception(ex.Message); } finally { if (st_transacao) { qtb_lote.deletarBanco_Dados(); } } }