Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Banco Máxima Layout novo #843

Open
keilacastro opened this issue Mar 9, 2020 · 30 comments
Open

Banco Máxima Layout novo #843

keilacastro opened this issue Mar 9, 2020 · 30 comments

Comments

@keilacastro
Copy link

Boa tarde!
Quero agradecer pelo projeto disponibilizado pela comunidade. Tive contato com ele com o Banco Itaú, mas agora preciso criar um Layout novo para o Banco Máxima. Estou sentindo muita dificuldade.
Peguei a DLL e criei classe novas me espelhando no Itaú que é a mais próxima. Mas estou com dúvidas.
Na documentação têm os dados

DOCUMENTAÇÃO | FORMATO | CONTEÚDO,
Já no código têm
reg.Adicionar(TTiposDadoEDI.ediNumericoSemSeparador_, 0004, 014, 0, boleto.Banco.Cedente.CPFCNPJ, '0');

Você saberia me dizer se

  1. ediNumericoSemSeparador_ - a quantidade de underline tem alguma coisa a ver com os espaços que deverão ser dados?

  2. 0004, 014 - na documentação tem 004 017 em POSIÇÃO. Mas olhando na documentação do Itaú ela não segue também a documentação no caso da segunda posição, 017. No código está 014. Sabem me dizer a que se refere esse 14?

Aguardo e agradeço

Keila

@carloscds
Copy link
Contributor

@keilacastro Estas variaveis são para formatar o arquivo de remessa/retorno, mas você pode colocar manualmente seguindo o manual do banco.

@keilacastro
Copy link
Author

Obrigada, @carloscds , mas e a dll do Boleto Net? Desculpe-me pela ignorância.

@keilacastro
Copy link
Author

@carloscds, aqui no GIT um projeto seu que tem um classe Banco_Maxima.cs
Banco_Maxima.txt.
Estou explorando, Preciso do CNAB 400 e também as carteiras não têm. O que eu não entendi é como vou fazer as para adaptar a documentação com o código do boleto net, Desculpe pela minha ignorância. Não me encontrei ainda. Assim que der certo, postarei o código para que o Máxima também seja homologado!! Agradeço muito se puder me dar uma luz.

@carloscds
Copy link
Contributor

@keilacastro O banco Maxima existe aqui no projeto: https://github.com/BoletoNet/boletonet/blob/master/src/Boleto.Net/Banco/Banco_Maxima.cs
Você pode validar se o que foi feito la esta de acordo com o banco.

@keilacastro
Copy link
Author

@carloscds procurar fazer a carteira. Respirar fundo :) muito obrigada

@carloscds
Copy link
Contributor

@keilacastro Vai dando uma olhada nos outros bancos, não é muito dificil. O ultimo que eu implementei foi o Uniprime, tem até teste unitário.

@keilacastro
Copy link
Author

@carloscds estou caminhando, mas não fecha aqui não, por favor! Ainda preciso de sua grande ajuda!! Muito obrigada!

@carloscds
Copy link
Contributor

@keilacastro Vou fechar não, fique tranquila!

@keilacastro
Copy link
Author

@carloscds, Bom dia! Estou no trabalho ainda no layout do Máxima. Enfim hoje consegui visualizar o boleto em tela, mas tenho alguns erros:

  1. tive de comentar o ValidaBoleto() - no AbstractBanco.cs tem um método, mas não está implementado. Na verdade não sei como fazê-lo.
  2. o código de barras aparece uma barra somente, não preenche ela completa.
  3. o logo do banco não carrega, mesmo eu tenho incluido no projeto e o nomeado com o mesmo nº do banco, 243. Também chamei o arquivo no Banco_Maxima.cs.
  4. quando implemento o código para Montar o PDF ele dá uma série de erros e não monta.

Há várias outros pontos que preciso acertar, mas esses são o que posso demonstrar. Segue o boleto que gerei, mais os erros.

Desde já agradeço imensamente

errosBoletoMaxima.txt
TesteMaxima- Imprimir.pdf

@keilacastro
Copy link
Author

@carloscds e caros colegas!, Boa tarde

Aos trancos e barrancos estou desenvolvendo Boleto para o Banco máxima. Devido minhas demandas, tenho extendido o desenvolvimento dele. Mas agora estou na questão do CNAB 400. Fiz o ajuste para o método GerarHeaderRemessaCNAB400, mas estou com problemas, ele dá erro ao validar. Será que poderiam me ajudar?

@keilacastro
Copy link
Author

keilacastro commented Jun 1, 2020

private string GerarHeaderRemessaCNAB400(int numeroConvenio, Cedente cedente, int numeroArquivoRemessa)
{
try
{
StringBuilder header = new StringBuilder(400);
//Identificação do Registro Header
header.Append("1");
// Identificação de Arquivo Remessa
header.AppendFormat("{0,7}", "REMESSA");
// Identificação da empresa no banco
header.Append("01");
// Identificação por extenso do tipo de serviço
header.AppendFormat("{0,15}", "COBRANÇA");
// Identificação da empresa no banco (convenio)
//header.Append(Utils.FormatCode(cedente.CodigoTransmissao.ToString(), " ", 20));
header.AppendFormat(numeroConvenio.ToString(), " ", 20);
// Nome da Empresa
header.AppendFormat(cedente.Nome, " ", 30);
// N° do banco na Câmara de Compensação Bancária
header.AppendFormat(cedente.Codigo, " ", 3);
// Nome por extenso do banco
header.Append(Utils.FormatCode(Nome, " ", 15));
// Data da gravação do arquivo
header.Append(DateTime.Now.ToString("ddMMyy"));
// Complementação do Registro
header.AppendFormat("{0,294}", " ");
// N° Seqüencial do Registro no arquivo
header.AppendFormat(cedente.NumeroSequencial.ToString());

            return Utils.SubstituiCaracteresEspeciais(header.ToString());

        }
        catch (Exception ex)
        {
            throw new Exception("Erro ao gerar HEADER do arquivo de remessa do CNAB400.", ex);
        }
    }

@keilacastro
Copy link
Author

O Código roda até chamar o método e dá erro:

public override string GerarHeaderRemessa(string numeroConvenio, Cedente cedente, TipoArquivo tipoArquivo, int numeroArquivoRemessa)
{
try
{
string header = "";

            switch (tipoArquivo)
            {
                case TipoArquivo.CNAB240:
                    header = GerarHeaderRemessaCNAB240(int.Parse(numeroConvenio), cedente, numeroArquivoRemessa);
                    break;
                case TipoArquivo.CNAB400:
                    header = GerarHeaderRemessaCNAB400(int.Parse(numeroConvenio), cedente, numeroArquivoRemessa);
                    break;
                default:
                    throw new NotImplementedException();
            }

            return header;

        }
        catch (Exception ex)
        {
            throw new Exception("Erro durante a geração do HEADER do arquivo de REMESSA.", ex);
        }
    }

@carloscds
Copy link
Contributor

@keilacastro Qual erro ? Alguma linha em específico ?

@keilacastro
Copy link
Author

na linha 354
header = GerarHeaderRemessaCNAB400(int.Parse(numeroConvenio), cedente, numeroArquivoRemessa);

@carloscds
Copy link
Contributor

@keilacastro Sim, mas esta linha chama a geracao do header, o erro deve estar ai dentro, nao ?

@keilacastro
Copy link
Author

erroRemessa_2
erroRemessa_1

Salvei esses dois erros, mas tem mais

@keilacastro
Copy link
Author

@carloscds, sim, @carloscds . Não consigo reconhecer onde. Sei que ele quando vai chamar o método dá o erro. Mas não entra no método. :(

@carloscds
Copy link
Contributor

@keilacastro tem uma inner exception, vc verificou ?

@keilacastro
Copy link
Author

at BoletoNet.ArquivoRemessaCNAB400.GerarArquivoRemessa(String numeroConvenio, IBanco banco, Cedente cedente, Boletos boletos, Stream arquivo, Int32 numeroArquivoRemessa) in C:\Users\keila\Desktop\boletonet-master\boletonet-master\src\Boleto.Net\Arquivo\ArquivoRemessaCNAB400.cs:line 137
at BoletoNet.AbstractArquivoRemessa.GerarArquivoRemessa(String numeroConvenio, IBanco banco, Cedente cedente, Boletos boletos, Stream arquivo, Int32 numeroArquivoRemessa) in C:\Users\keila\Desktop\boletonet-master\boletonet-master\src\Boleto.Net\Arquivo\AbstractArquivoRemessa.cs:line 148
at BoletoPDG.Models.boletoModel.GeraBoletoBancario() in C:\Users\keila\Desktop\boletonet-master\boletonet-master\src\BoletoPDG\BoletoPDG\Models\boletoModel.cs:line 130
at ASP._Page_Views_Boleto_ExibeBoleto_cshtml.Execute() in c:\Users\keila\Desktop\boletonet-master\boletonet-master\src\BoletoPDG\BoletoPDG\Views\Boleto\ExibeBoleto.cshtml:line 6
at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
at System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
at System.Web.WebPages.StartPage.RunPage()
at System.Web.WebPages.StartPage.ExecutePageHierarchy()
at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
at System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance)
at System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer)
at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)

@keilacastro
Copy link
Author

@keilacastro tem uma inner exception, vc verificou ?

não sei onde verificar, desculpe pela minha ignorância

@carloscds
Copy link
Contributor

@keilacastro PElo erro "cadeia de caracteres esta em um formato inválido" parece estar faltando alguma informacao nas configuracoes: cedente, boleto ou banco. Você já verificou ?

@keilacastro
Copy link
Author

@keilacastro tem uma inner exception, vc verificou ?

não sei onde verificar, desculpe pela minha ignorância

poxa, pensei que fosse outra coisa. Já vi. DESCULPE.

@keilacastro
Copy link
Author

@carloscds , o que estou em dúvida é com o "numeroConvenio". Não sei muito bem de onde ele vem. Sei que ele traz, mas nesse ponto, não sei como recuperá-lo.

@keilacastro
Copy link
Author

@carloscds , o que estou em dúvida é com o "numeroConvenio". Não sei muito bem de onde ele vem. Sei que ele traz, mas nesse ponto, não sei como recuperá-lo.

na documentação, não diz sobre inserir o "numeroConvenio" no HEADER, só se chama de outro modo. Consigo trazer uma linha no documento .REM, mas o HEADER, não

@keilacastro
Copy link
Author

keilacastro commented Jun 1, 2020

658781144.txt

@carloscds

@carloscds
Copy link
Contributor

@keilacastro O numero do convênio, quando existe, é fornecido pelo banco. Então você precisa ver com eles.

@keilacastro
Copy link
Author

keilacastro commented Jun 1, 2020

@keilacastro O numero do convênio, quando existe, é fornecido pelo banco. Então você precisa ver com eles.

é o nº que identifica a minha conta no banco? Isso eu tenho. Mas ele está retornando um numero já, não sei de onde ele está vindo, essa é a verdade. Tentei deixá-lo em um xml onde estão os dados do cedente, mas ele não puxa de lá; Mas mesmo assim, ele não passa da chamada do método.
erroRemessa_4
erroRemessa_3

@carloscds
Copy link
Contributor

@keilacastro Numero do convenio não é o numero da conta, mas pergunte ao gerente do banco, pis isto varia muito de um banco para outro.

@keilacastro
Copy link
Author

@keilacastro Numero do convenio não é o numero da conta, mas pergunte ao gerente do banco, pis isto varia muito de um banco para outro.

@carloscds, perguntarei espeficicamente. Por enquanto, muito obrigada!

@carloscds
Copy link
Contributor

@keilacastro Conseguiu evoluir com esta issue ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants