public static string Gravar(TRegistro_LoteRemessa val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_LoteRemessa qtb_lote = new TCD_LoteRemessa(); try { if (banco == null) { st_transacao = qtb_lote.CriarBanco_Dados(true); } else { qtb_lote.Banco_Dados = banco; } val.Id_lote = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(qtb_lote.Gravar(val), "@P_ID_LOTE")); //Excluir titulos do lote val.lTitulosDel.ForEach(p => TCN_LoteRemessa_X_Titulo.Excluir( new TRegistro_LoteRemessa_X_Titulo() { Cd_empresa = p.Cd_empresa, Cd_parcela = p.Cd_parcela, Id_cobranca = p.Id_cobranca, Id_lote = val.Id_lote, Nr_lancto = p.Nr_lancto }, qtb_lote.Banco_Dados)); //Incluir titulo lote val.lTitulos.ForEach(p => TCN_LoteRemessa_X_Titulo.Gravar( new TRegistro_LoteRemessa_X_Titulo() { Cd_empresa = p.Cd_empresa, Cd_parcela = p.Cd_parcela, Id_cobranca = p.Id_cobranca, Id_lote = val.Id_lote, Nr_lancto = p.Nr_lancto }, qtb_lote.Banco_Dados)); if (st_transacao) { qtb_lote.Banco_Dados.Commit_Tran(); } return(val.Id_lotestr); } catch (Exception ex) { if (st_transacao) { qtb_lote.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar lote remessa: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_lote.deletarBanco_Dados(); } } }
public static void AlterarSeqRemessa(TRegistro_LoteRemessa val, decimal Nr_seq, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_LoteRemessa qtb_lote = new TCD_LoteRemessa(); try { if (banco == null) { st_transacao = qtb_lote.CriarBanco_Dados(true); } else { qtb_lote.Banco_Dados = banco; } val.Nr_arqRemessa = Nr_seq; qtb_lote.Gravar(val); if (st_transacao) { qtb_lote.Banco_Dados.Commit_Tran(); } } catch (Exception ex) { if (st_transacao) { qtb_lote.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro alterar sequencial remessa: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_lote.deletarBanco_Dados(); } } }
public static string Excluir(TRegistro_LoteRemessa val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_LoteRemessa qtb_lote = new TCD_LoteRemessa(); try { if (banco == null) { st_transacao = qtb_lote.CriarBanco_Dados(true); } else { qtb_lote.Banco_Dados = banco; } qtb_lote.Excluir(val); if (st_transacao) { qtb_lote.Banco_Dados.Commit_Tran(); } return(val.Id_lotestr); } catch (Exception ex) { if (st_transacao) { qtb_lote.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro excluir lote remessa: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_lote.deletarBanco_Dados(); } } }
public static void ProcessarRemessa(TRegistro_LoteRemessa val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_LoteRemessa qtb_lote = new TCD_LoteRemessa(); try { if (banco == null) { st_transacao = qtb_lote.CriarBanco_Dados(true); } else { qtb_lote.Banco_Dados = banco; } if (val.lTitulos.Count < 1) { throw new Exception("Lote não possui titulos para gerar arquivo remessa."); } TList_CadCFGBanco lCfgBanco = TCN_CadCFGBanco.Buscar(string.Empty, val.lTitulos[0].Cd_banco, val.Cd_empresa, val.lTitulos[0].Cedente.CodigoCedente, "CR", val.Cd_contager, "A", string.Empty, 1, qtb_lote.Banco_Dados); if (lCfgBanco.Count < 1) { throw new Exception("Não existe configuração para emissão de bloquetos para o banco: " + val.lTitulos[0].Cd_banco); } //Criar registro cobranca blCobranca rCobranca = new blCobranca(); if (val.Nr_arqRemessa > decimal.Zero) { rCobranca.SequencialArq = val.Nr_arqRemessa; } else { //Sequencial do Arquivo object obj = new TCD_LoteRemessa(qtb_lote.Banco_Dados).BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.id_config", vOperador = "=", vVL_Busca = lCfgBanco[0].Id_configstr } }, "isnull(max(a.nr_arqremessa), 0)"); rCobranca.SequencialArq = obj == null ? 1 : decimal.Parse(obj.ToString()) + 1; val.Nr_arqRemessa = rCobranca.SequencialArq; } rCobranca.Cd_instrucao = blCobranca.TratarInstrucaoRemessa(val.lTitulos[0].Cd_banco, val.Tp_instrucao); rCobranca.DataArquivo = CamadaDados.UtilData.Data_Servidor(qtb_lote.Banco_Dados); rCobranca.LayoutArquivo = lCfgBanco[0].Tp_layoutremessa.Trim().Equals("2") ? TLayoutArquivo.laCNAB240 : lCfgBanco[0].Tp_layoutremessa.Trim().Equals("4") ? TLayoutArquivo.laCNAB400 : TLayoutArquivo.laOutro; rCobranca.TipoMovimento = TTipoMovimento.tmRemessa; rCobranca.Cd_bancocorrespondente = lCfgBanco[0].Cd_bancocorrespondente; rCobranca.Titulos = val.lTitulos; if (rCobranca.GerarRemessa(val.lTitulos[0].Cd_banco, val.Path_remessa)) { val.St_registro = "P";//Processado val.Dt_lote = rCobranca.DataArquivo; Gravar(val, qtb_lote.Banco_Dados); } if (st_transacao) { qtb_lote.Banco_Dados.Commit_Tran(); } } catch (Exception ex) { if (st_transacao) { qtb_lote.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gerar arquivo remessa: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_lote.deletarBanco_Dados(); } } }