コード例 #1
0
        public string GetCampoLivreCodigoBarra(blTitulo ATitulo) //{Retorna o conteúdo da parte variável do código de barras}
        {
            string cl = ATitulo.Cedente.CodigoCedente.FormatStringEsquerda(6, '0') +
                        ATitulo.Nosso_numero.FormatStringEsquerda(17, '0') +
                        ATitulo.Carteira.FormatStringEsquerda(2, '0');

            return(cl.Trim());
        }
コード例 #2
0
 public string GetCampoLivreCodigoBarra(blTitulo ATitulo) //{Retorna o conteúdo da parte variável do código de barras}
 {
     return(ATitulo.Cedente.ContaBancaria.CodigoAgencia.Trim().PadLeft(4, '0') +
            ATitulo.Carteira.Trim().PadLeft(2, '0') +
            ATitulo.Nosso_numero.Trim().PadLeft(11, '0') +
            ATitulo.Cedente.ContaBancaria.NumeroConta.Trim().PadLeft(7, '0') +
            "0");
 }
コード例 #3
0
 public string GetCampoLivreCodigoBarra(blTitulo ATitulo) //{Retorna o conteúdo da parte variável do código de barras}
 {
     return(ATitulo.Nosso_numero.Trim() +
            ATitulo.Digito_NossoNumero +
            ATitulo.Cedente.ContaBancaria.CodigoAgencia.Trim().PadLeft(4, '0') + //codigo da agencia
            ATitulo.Cedente.ContaBancaria.NumeroConta.Trim().PadLeft(7, '0') +   //numero da conta
            ATitulo.Modalidade.FormatStringEsquerda(2, '0') +
            '1');                                                                //Codigo do aplicativo de cobranca
 }
コード例 #4
0
 public string GetCampoLivreCodigoBarra(blTitulo ATitulo) //{Retorna o conteúdo da parte variável do código de barras}
 {
     return("7" +
            ATitulo.Cedente.ContaBancaria.CodigoAgencia.Trim() +
            ATitulo.Cedente.ContaBancaria.NumeroConta.Trim().FormatStringEsquerda(9, '0') +
            ATitulo.Nosso_numero.Trim() +
            ATitulo.Digito_NossoNumero +
            "2");
 }
コード例 #5
0
        public string CalcularDigitoNossoNumero(blTitulo ATitulo) //{Calcula o dígito do NossoNumero, conforme critérios definidos por cada banco}
        {
            string ret = Utils.Estruturas.Mod11(ATitulo.Cedente.ContaBancaria.CodigoAgencia.Trim().PadLeft(4, '0') +
                                                ATitulo.Cedente.Postocedente.Trim().PadLeft(2, '0') +
                                                ATitulo.Cedente.CodigoCedente.Trim().PadLeft(5, '0') +
                                                ATitulo.Nosso_numero.Trim().Remove(ATitulo.Nosso_numero.Trim().LastIndexOf("/"), 1), 9, false, 0).ToString().Trim();

            return(ret);
        }
コード例 #6
0
        public string GetCampoLivreCodigoBarra(blTitulo ATitulo) //{Retorna o conteúdo da parte variável do código de barras}
        {
            string nosso_numero = ATitulo.Nosso_numero.Trim() + CalcularDigitoNossoNumero(ATitulo);
            string cl           = (ATitulo.Tp_cobranca.Trim().ToUpper().Equals("CR") ? "1" : "3") +          //Tipo de cobranca
                                  ATitulo.Carteira.Trim() +                                                  //Tipo carteira 1 - cobranca simples
                                  nosso_numero.Trim().Remove(nosso_numero.Trim().LastIndexOf("/"), 1) +      //Nosso numero
                                  ATitulo.Cedente.ContaBancaria.CodigoAgencia.FormatStringEsquerda(4, '0') + //Agencia
                                  ATitulo.Cedente.Postocedente.Trim() +                                      //Posto
                                  ATitulo.Cedente.CodigoCedente.Trim() +                                     //Codigo cedente
                                  "1" +                                                                      //Valor expresso no campo valor documento
                                  "0";                                                                       //Filler

            return(cl.Trim() + Utils.Estruturas.Mod11(cl.Trim(), 9, false, 0).ToString().Trim());
        }
コード例 #7
0
        public string CalcularDigitoNossoNumero(blTitulo ATitulo) //{Calcula o dígito do NossoNumero, conforme critérios definidos por cada banco}
        {
            int digito_nossonumero = Estruturas.Mod11(ATitulo.Carteira.Trim() + ATitulo.Nosso_numero.Trim(), 7, true, 0);

            if (digito_nossonumero.Equals(1))
            {
                return("P");
            }
            else if (digito_nossonumero.Equals(0))
            {
                return("0");
            }
            else
            {
                return((11 - digito_nossonumero).ToString());
            }
        }
コード例 #8
0
 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);
 }
コード例 #9
0
        private bool LerRetornoCNAB400(blCobranca ACobranca, string[] Retorno)
        {
            string   ACodigoBanco;
            string   ACodigoCedente;
            int      NumeroRegistro = 0;
            blTitulo ATitulo        = null;

            try
            {
                //{ Lê registro HEADER}
                ACodigoBanco = Retorno[NumeroRegistro].Substring(76, 3);
                if (ACodigoBanco != CodigoBanco)
                {
                    throw new Exception("Este não é um retorno de cobrança do banco " + CodigoBanco + " " + NomeBanco);
                }
                //Buscar codigo cedente
                ACodigoCedente = Convert.ToInt32(Retorno[NumeroRegistro].Substring(26, 20)).ToString();

                if (Retorno[NumeroRegistro].Substring(94, 6).PadLeft(6, '0') != "000000")
                {
                    ACobranca.DataArquivo = new DateTime(2000 + Convert.ToInt32(Retorno[NumeroRegistro].Substring(98, 2)),
                                                         Convert.ToInt32(Retorno[NumeroRegistro].Substring(96, 2)),
                                                         Convert.ToInt32(Retorno[NumeroRegistro].Substring(94, 2)));
                }
                else
                {
                    ACobranca.DataArquivo = DateTime.Now;
                }

                //{Lê os registros DETALHE}
                //{Processa até o penúltimo registro porque o último contém apenas o TRAILLER}
                for (NumeroRegistro = 1; NumeroRegistro <= (Retorno.Length - 2); NumeroRegistro++)
                {
                    //{Confirmar se o tipo do registro é 1}
                    if (Retorno[NumeroRegistro].Substring(0, 1) != "1")
                    {
                        continue; //{Não processa o registro atual}
                    }
                    //Dados Titulo
                    ATitulo = new blTitulo();
                    ATitulo.Cedente.ContaBancaria.Banco.Codigo = ACodigoBanco;
                    ATitulo.Cedente.CodigoCedente = ACodigoCedente;
                    //Nosso numero
                    ATitulo.Nosso_numero = Retorno[NumeroRegistro].Substring(70, 11);
                    //Ocorrencia
                    ATitulo.Cd_ocorrencia = Retorno[NumeroRegistro].Substring(108, 2);
                    //Descricao ocorrencia
                    ATitulo.Ds_ocorrencia = TratarOcorrencia(ATitulo.Cd_ocorrencia);
                    //Data ocorrencia
                    if (Retorno[NumeroRegistro].Substring(110, 6).PadLeft(6, '0') != "000000")
                    {
                        ATitulo.Dt_ocorrencia = new DateTime(2000 + Convert.ToInt32(Retorno[NumeroRegistro].Substring(114, 2)),
                                                             Convert.ToInt32(Retorno[NumeroRegistro].Substring(112, 2)),
                                                             Convert.ToInt32(Retorno[NumeroRegistro].Substring(110, 2)));
                    }
                    else
                    {
                        ATitulo.Dt_ocorrencia = DateTime.Now;
                    }
                    //Data vencimento
                    if (Retorno[NumeroRegistro].Substring(146, 6).PadLeft(6, '0') != "000000")
                    {
                        ATitulo.Dt_vencimento = new DateTime(2000 + Convert.ToInt32(Retorno[NumeroRegistro].Substring(150, 2)),
                                                             Convert.ToInt32(Retorno[NumeroRegistro].Substring(148, 2)),
                                                             Convert.ToInt32(Retorno[NumeroRegistro].Substring(146, 2)));
                    }
                    else
                    {
                        ATitulo.Dt_vencimento = null;
                    }
                    //Valor titulo
                    if (Retorno[NumeroRegistro].Substring(152, 13).PadLeft(13, '0') != "0000000000000")
                    {
                        ATitulo.Vl_documento = Convert.ToDecimal(Retorno[NumeroRegistro].Substring(152, 13)) / 100;
                    }
                    else
                    {
                        ATitulo.Vl_documento = decimal.Zero;
                    }
                    //Valor despesas
                    if (Retorno[NumeroRegistro].Substring(175, 13).PadLeft(13, '0') != "0000000000000")
                    {
                        ATitulo.Vl_despesa_cobranca = Convert.ToDecimal(Retorno[NumeroRegistro].Substring(175, 13)) / 100;
                    }
                    else
                    {
                        ATitulo.Vl_despesa_cobranca = decimal.Zero;
                    }
                    //Abatimento
                    if (Retorno[NumeroRegistro].Substring(227, 13).PadLeft(13, '0') != "0000000000000")
                    {
                        ATitulo.Vl_abatimento = Convert.ToDecimal(Retorno[NumeroRegistro].Substring(227, 13)) / 100;
                    }
                    else
                    {
                        ATitulo.Vl_abatimento = decimal.Zero;
                    }
                    //Desconto
                    if (Retorno[NumeroRegistro].Substring(240, 13).PadLeft(13, '0') != "0000000000000")
                    {
                        ATitulo.Vl_desconto = Convert.ToDecimal(Retorno[NumeroRegistro].Substring(240, 13)) / 100;
                    }
                    else
                    {
                        ATitulo.Vl_desconto = decimal.Zero;
                    }
                    //Juro
                    if (Retorno[NumeroRegistro].Substring(266, 13).PadLeft(13, '0') != "0000000000000")
                    {
                        ATitulo.Vl_morajuros = Convert.ToDecimal(Retorno[NumeroRegistro].Substring(266, 13)) / 100;
                    }
                    else
                    {
                        ATitulo.Vl_morajuros = decimal.Zero;
                    }
                    //Outros creditos
                    if (Retorno[NumeroRegistro].Substring(279, 13).PadLeft(13, '0') != "0000000000000")
                    {
                        ATitulo.vl_outros_creditos = Convert.ToDecimal(Retorno[NumeroRegistro].Substring(279, 13)) / 100;
                    }
                    else
                    {
                        ATitulo.vl_outros_creditos = decimal.Zero;
                    }
                    //Motivo ocorrencia
                    string codigo = Retorno[NumeroRegistro].Substring(318, 10);
                    if (!string.IsNullOrEmpty(codigo))
                    {
                        if (codigo.Substring(0, 2) != "00")
                        {
                            ATitulo.Ds_motivoocorrencia += TratarMotivo(ATitulo.Cd_ocorrencia, codigo.Substring(0, 2)) + "|";
                        }
                        if (codigo.Substring(2, 2) != "00")
                        {
                            ATitulo.Ds_motivoocorrencia += TratarMotivo(ATitulo.Cd_ocorrencia, codigo.Substring(2, 2)) + "|";
                        }
                        if (codigo.Substring(4, 2) != "00")
                        {
                            ATitulo.Ds_motivoocorrencia += TratarMotivo(ATitulo.Cd_ocorrencia, codigo.Substring(4, 2)) + "|";
                        }
                        if (codigo.Substring(6, 2) != "00")
                        {
                            ATitulo.Ds_motivoocorrencia += TratarMotivo(ATitulo.Cd_ocorrencia, codigo.Substring(6, 2)) + "|";
                        }
                        if (codigo.Substring(8, 2) != "00")
                        {
                            ATitulo.Ds_motivoocorrencia += TratarMotivo(ATitulo.Cd_ocorrencia, codigo.Substring(8, 2)) + "|";
                        }
                    }
                    if (!string.IsNullOrEmpty(ATitulo.Ds_motivoocorrencia))
                    {
                        if (ATitulo.Ds_motivoocorrencia.Substring(ATitulo.Ds_motivoocorrencia.Trim().Length - 1, 1).Equals("|"))
                        {
                            ATitulo.Ds_motivoocorrencia = ATitulo.Ds_motivoocorrencia.Remove(ATitulo.Ds_motivoocorrencia.Trim().Length - 1, 1);
                        }
                    }
                    //Data credito
                    if (Retorno[NumeroRegistro].Substring(295, 6).Trim().PadLeft(6, '0') != "000000")
                    {
                        ATitulo.Dt_credito = new DateTime(2000 + Convert.ToInt32(Retorno[NumeroRegistro].Substring(299, 2)),
                                                          Convert.ToInt32(Retorno[NumeroRegistro].Substring(297, 2)),
                                                          Convert.ToInt32(Retorno[NumeroRegistro].Substring(295, 2)));
                        ATitulo.Dt_creditotaxa = ATitulo.Dt_credito;
                    }
                    else
                    {
                        ATitulo.Dt_credito     = DateTime.Now;
                        ATitulo.Dt_creditotaxa = ATitulo.Dt_credito;
                    }
                    //Inserir titulo na lista
                    ACobranca.Titulos.Add(ATitulo);
                }
                return(true);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
コード例 #10
0
 public void FormatarBoleto(blTitulo ATitulo, string AAgenciaCodigoCedente, string ANossoNumero, string ACarteira, string AEspecieDocumento) //{Define o formato como alguns valores serão apresentados no boleto }
 {
 }
コード例 #11
0
 public string CalcularDigitoNossoNumero(blTitulo ATitulo) //{Calcula o dígito do NossoNumero, conforme critérios definidos por cada banco}
 {
     return("");
 }
コード例 #12
0
 public string GetCampoLivreCodigoBarra(blTitulo ATitulo) //{Retorna o conteúdo da parte variável do código de barras}
 {
     return("");
 }
コード例 #13
0
        private bool LerRetornoCNAB240(blCobranca ACobranca, string[] Retorno)
        {
            string   ACodigoBanco;
            string   ACodigoCedente;
            int      NumeroRegistro = 0;
            blTitulo ATitulo        = null;

            try
            {
                #region HEADER
                //Codigo do banco
                ACodigoBanco = Retorno[NumeroRegistro].Substring(0, 3);
                if (ACodigoBanco != CodigoBanco)
                {
                    throw new Exception("Este não é um retorno de cobrança do banco " + CodigoBanco + " " + NomeBanco);
                }
                //Codigo cedente
                ACodigoCedente = Retorno[NumeroRegistro].Substring(32, 20);
                //Data do arquivo
                if (Retorno[NumeroRegistro].Substring(143, 8) != "00000000")
                {
                    ACobranca.DataArquivo = DateTime.Parse(Retorno[NumeroRegistro].Substring(143, 2) + "/" +
                                                           Retorno[NumeroRegistro].Substring(145, 2) + "/" +
                                                           Retorno[NumeroRegistro].Substring(147, 4));
                }
                else
                {
                    ACobranca.DataArquivo = DateTime.Now;
                }
                //Numero arquivo
                ACobranca.SequencialArq = decimal.Parse(Retorno[NumeroRegistro].Substring(157, 6));
                #endregion

                for (NumeroRegistro = 1; NumeroRegistro <= (Retorno.Length - 2); NumeroRegistro++)
                {
                    //Tipo registro é 3
                    if (Retorno[NumeroRegistro].Substring(7, 1) == "3")
                    {
                        ATitulo = new blTitulo();
                        ATitulo.Cedente.ContaBancaria.Banco.Codigo = ACodigoBanco;
                        //Codigo do cedente
                        ATitulo.Cedente.CodigoCedente = ACodigoCedente;
                        //Ocorrencia
                        ATitulo.Cd_ocorrencia = Retorno[NumeroRegistro].Substring(15, 2);
                        //Descricao ocorrencia
                        ATitulo.Ds_ocorrencia = TratarOcorrencia(ATitulo.Cd_ocorrencia);
                        //Nosso numero
                        ATitulo.Nosso_numero = Retorno[NumeroRegistro].Substring(37, 20);
                        //Data de vencimento
                        if (Retorno[NumeroRegistro].Substring(73, 8) != "00000000")
                        {
                            ATitulo.Dt_vencimento = DateTime.Parse(Retorno[NumeroRegistro].Substring(73, 2) + "/" +
                                                                   Retorno[NumeroRegistro].Substring(75, 2) + "/" +
                                                                   Retorno[NumeroRegistro].Substring(77, 4));
                        }
                        else
                        {
                            ATitulo.Dt_vencimento = DateTime.Now;
                        }
                        //Valor do titulo
                        if (Retorno[NumeroRegistro].Substring(81, 13) != "0000000000000")
                        {
                            ATitulo.Vl_documento = Convert.ToDecimal(Retorno[NumeroRegistro].Substring(81, 13)) / 100;
                        }
                        else
                        {
                            ATitulo.Vl_documento = decimal.Zero;
                        }
                        //Valor das despesas
                        if (Retorno[NumeroRegistro].Substring(198, 13) != "0000000000000")
                        {
                            ATitulo.Vl_despesa_cobranca = Convert.ToDecimal(Retorno[NumeroRegistro].Substring(198, 13)) / 100;
                        }
                        else
                        {
                            ATitulo.Vl_despesa_cobranca = decimal.Zero;
                        }

                        //Motivo ocorrencia
                        ATitulo.Ds_motivoocorrencia = TratarMotivoOcorrencia(Retorno[NumeroRegistro].Substring(213, 10));

                        if (Retorno[NumeroRegistro + 1].Substring(7, 1).Equals("3") &&
                            Retorno[NumeroRegistro + 1].Substring(13, 1).Equals("U"))
                        {
                            NumeroRegistro++;
                            //Juros
                            if (Retorno[NumeroRegistro].Substring(17, 13) != "0000000000000")
                            {
                                ATitulo.Vl_morajuros = Convert.ToDecimal(Retorno[NumeroRegistro].Substring(17, 13)) / 100;
                            }
                            else
                            {
                                ATitulo.Vl_morajuros = decimal.Zero;
                            }
                            //Desconto
                            if (Retorno[NumeroRegistro].Substring(32, 13) != "0000000000000")
                            {
                                ATitulo.Vl_desconto = Convert.ToDecimal(Retorno[NumeroRegistro].Substring(32, 13)) / 100;
                            }
                            else
                            {
                                ATitulo.Vl_desconto = decimal.Zero;
                            }
                            //Abatimento
                            if (Retorno[NumeroRegistro].Substring(47, 13) != "0000000000000")
                            {
                                ATitulo.Vl_abatimento = Convert.ToDecimal(Retorno[NumeroRegistro].Substring(47, 13)) / 100;
                            }
                            else
                            {
                                ATitulo.Vl_abatimento = decimal.Zero;
                            }
                            //Outras despesas
                            if (Retorno[NumeroRegistro].Substring(107, 13) != "0000000000000")
                            {
                                ATitulo.Vl_outras_despesas = Convert.ToDecimal(Retorno[NumeroRegistro].Substring(107, 13)) / 100;
                            }
                            else
                            {
                                ATitulo.Vl_outras_despesas = decimal.Zero;
                            }
                            //Outros creditos
                            if (Retorno[NumeroRegistro].Substring(122, 13) != "0000000000000")
                            {
                                ATitulo.vl_outros_creditos = Convert.ToDecimal(Retorno[NumeroRegistro].Substring(122, 13)) / 100;
                            }
                            else
                            {
                                ATitulo.vl_outros_creditos = decimal.Zero;
                            }
                            //Data ocorrencia
                            if (Retorno[NumeroRegistro].Substring(137, 8) != "00000000")
                            {
                                ATitulo.Dt_ocorrencia = DateTime.Parse(Retorno[NumeroRegistro].Substring(137, 2) + "/" +
                                                                       Retorno[NumeroRegistro].Substring(139, 2) + "/" +
                                                                       Retorno[NumeroRegistro].Substring(141, 4));
                            }
                            else
                            {
                                ATitulo.Dt_ocorrencia = DateTime.Now;
                            }
                            //Data credito
                            if (Retorno[NumeroRegistro].Substring(145, 8) != "00000000")
                            {
                                ATitulo.Dt_credito = DateTime.Parse(Retorno[NumeroRegistro].Substring(145, 2) + "/" +
                                                                    Retorno[NumeroRegistro].Substring(147, 2) + "/" +
                                                                    Retorno[NumeroRegistro].Substring(149, 4));
                            }
                            else
                            {
                                ATitulo.Dt_credito = DateTime.Now;
                            }
                        }
                        ACobranca.Titulos.Add(ATitulo);
                    }
                }
                return(true);
            }
            catch (Exception ex)
            { throw new Exception(ex.Message); }
        }
コード例 #14
0
 public string CalcularDigitoNossoNumero(blTitulo ATitulo) //{Calcula o dígito do NossoNumero, conforme critérios definidos por cada banco}
 {
     return(Estruturas.Mod11(ATitulo.Nosso_numero.Trim(), 9, false, 0).ToString().Trim());
 }
コード例 #15
0
 public string GetCampoLivreCodigoBarra(blTitulo ATitulo) //{Retorna o conteúdo da parte variável do código de barras}
 {
     return("9" + ATitulo.Cedente.CodigoCedente.Trim() + "00000" + ATitulo.Nosso_numero + ATitulo.Digito_NossoNumero + "0" + ATitulo.Modalidade);
 }