Esempio n. 1
0
        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();
                }
            }
        }
Esempio n. 2
0
        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();
                }
            }
        }
Esempio n. 3
0
        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();
                }
            }
        }
Esempio n. 4
0
        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();
                }
            }
        }