Ir para conteúdo
  • Cadastre-se

tborges

Membros Pro
  • Total de ítens

    20
  • Registro em

  • Última visita

  • Days Won

    1

Tudo que tborges postou

  1. @Daniel InfoCotidiano só para te deixar sem nenhuma resposta, estamos com uma prioridade aqui na frente, tento atualizar e te dar uma resposta final até o final do dia. Obrigado.
  2. O mesmo ocorre na geração do CNAB, apesar de existirem 5 boletos, o cnab é gerado apenas com 1
  3. @Daniel InfoCotidiano eu gero o array de forma dinamica. Olhe esse trecho de código Dim Titulo As ACBrLib.Boleto.Titulo Dim Titulos As New List(Of ACBrLib.Boleto.Titulo) For Each dr As DataRow In DTTitulo.Rows boTF = dr("Titulo.NossoNumero") > 0 And dr("A.BancoNr") = drConta("Banco.Numero") 'True - mantém mesmo número do boleto If Not boTF Then nNossoNumero += 1 dr("Titulo.NossoNumero") = nNossoNumero End If 'aqui prepara valores de colunas e passar corrreto para a function abaixo If dr.Table.Columns("Mensagem") IsNot Nothing Then dr("Mensagem") = RemoveAcentos(dr("Mensagem").ToString) Else dr("Titulo.Mensagem") = RemoveAcentos(dr("Titulo.Mensagem").ToString) End If Titulo = New ACBrLib.Boleto.Titulo Call DataRowObject(dr, Titulo, "Titulo.", True) Call DataRowObject(dr, Titulo.Sacado, "Sacado.", True) Call DataRowObject(dr, Titulo.Sacado.Avalista, "Sacado.Avalista.", True) Titulos.Add(Titulo) Se você olhar o código fonte do ACBRLib.Boleto vera que ele seta index = 0, por isso meu array fica sempre [Titulo] namespace ACBrLib.Boleto { public sealed class Titulo { [IniIgnore] public int Index { get; internal set; } = 0; O que eu fiz, editei o código e compilei uma nova dll com public int Index { get; set; } dentro do meu for, eu contei titulo.index, então agora chega um array da forma como você pediu (mas só depois que eu mexi no código fonte de vocês) No entanto, apesar de agora ele passar no ACBoleto.IncluirTitulos(Titulos.ToArray) e como você pode ver na imagem acima, tem 5 boletos dentro do array, quando chamo ACBoleto.Imprimir(), ele imprime apenas 1 boleto (o primeiro item do array) Repito, todo esse código funciona há 3 anos, ele só deu problema agora que atualizei a dll de vocês visando tentar resolver um erro no arquivo retorno do C6 bank, se não tivesse erro na versão 0.2.0.156, eu nem estaria perdendo tempo tentando refazer o que já esta rodando. Alguma coisa foi alterada nesse sentido? Apenas mais um detalhe, mesmo index sendo = 0 como estava antes, IncluirTitulos deveria estar contando eles e o erro de item com a mesma chave não deveria ocorrer public void IncluirTitulos(params Titulo[] titulos) { ACBrIniFile aCBrIniFile = new ACBrIniFile(); for (int i = 0; i < titulos.Length; i++) { titulos[i].WriteToIni(aCBrIniFile); titulos[i].Index = i++; } IncluirTitulos(aCBrIniFile.ToString()); }
  4. Olá, bom dia. Estou com a versão 0.2.0.267 e nela da esse erro descrito, anteriormente eu estava com a versão 0.2.0.156 e nela o erro não ocorre, se eu voltar ela, tudo funciona normalmente. Eu gero os boletos usando as classes titulos, monto um array com todos os boletos que o usuário deseja imprimir e chamo IncluirTitulos passando esse array: ACBoleto.LimparLista() ACBoleto.IncluirTitulos(Titulos.ToArray) ACBoleto.Imprimir() O problema ocorre com qualquer banco. Abaixo um exemplo de 3 titulos dentro do array que estou passando para IncluirTitulos, se eu voltar a versão 0.2.0.156 isso funciona normal: {[Titulo] Aceite=1 TipoDiasProtesto=1 TipoDiasNegativacao=0 TipoImpressao=1 TipoDesconto=0 TipoDesconto2=0 CarteiraEnvio=0 MultaValorFixo=0 LocalPagamento=PAGÁVEL EM QUALQUER AGÊNCIA BANCÁRIA MESMO APÓS O VENCIMENTO Vencimento=31/01/2023 DataDocumento=20/12/2023 DataProcessamento=20/12/2023 DataMoraJuros=01/02/2023 DataMulta=01/02/2023 DiasDeProtesto=0 CodigoNegativacao=3 DiasDeNegativacao=0 DataBaixa=15/02/2023 DataLimitePagto=15/02/2023 NumeroDocumento=2023-56511/1 Especie=RC Carteira=RG NossoNumero=6 ValorDocumento=6951 EspecieMod=R$ Parcela=1 TotalParcelas=0 ValorAbatimento=0,00 ValorDesconto=0 ValorMoraJuros=20,853 ValorIOF=0,00 ValorOutrasDespesas=0,00 SeuNumero=1082 PercentualMulta=2 CodigoMora=1 CodigoMoraJuros=0 ArquivoLogoEmp=C:\Projetos\AGE\01. Dev\bin\x86\Debug\Temp\logo1.PNG Verso=0 OcorrenciaOriginal.TipoOcorrencia=0 Sacado.Pessoa=1 Sacado.NomeSacado=ESTRA PRODUTOS ALIMENTÍCIOS LTDA [email protected] Sacado.CNPJCPF=82957335150134 Sacado.Logradouro=RUA ARISTÍDES DE OLIVEIRA PATRÍCIO Sacado.Numero=34 Sacado.Bairro=JARDIM ANA EMILIA Sacado.Cidade=TAUBATE Sacado.UF=SP Sacado.CEP=12070-230 Sacado.SacadoAvalista.Pessoa=0 Sacado.SacadoAvalista.CNPJCPF=00000000000000 Mensagem= } {[Titulo] Aceite=1 TipoDiasProtesto=1 TipoDiasNegativacao=0 TipoImpressao=1 TipoDesconto=0 TipoDesconto2=0 CarteiraEnvio=0 MultaValorFixo=1 LocalPagamento=PAGÁVEL EM QUALQUER AGÊNCIA BANCÁRIA MESMO APÓS O VENCIMENTO Vencimento=31/01/2023 DataDocumento=20/12/2023 DataProcessamento=20/12/2023 DataMoraJuros=01/02/2023 DataMulta=01/02/2023 DiasDeProtesto=0 CodigoNegativacao=3 DiasDeNegativacao=0 DataBaixa=15/02/2023 DataLimitePagto=15/02/2023 NumeroDocumento=2023-5515/1 Especie=RC Carteira=RG NossoNumero=7 ValorDocumento=500 EspecieMod=R$ Parcela=1 TotalParcelas=0 ValorAbatimento=0,00 ValorDesconto=0 ValorMoraJuros=1,5 ValorIOF=0,00 ValorOutrasDespesas=0,00 SeuNumero=1078 PercentualMulta=2 CodigoMora=1 CodigoMoraJuros=0 ArquivoLogoEmp=C:\Projetos\AGE\01. Dev\bin\x86\Debug\Temp\logo1.PNG Verso=0 OcorrenciaOriginal.TipoOcorrencia=0 Sacado.Pessoa=1 Sacado.NomeSacado=ESTRA PRODUTOS ALIMENTÍCIOS LTDA [email protected] Sacado.CNPJCPF=82957335150134 Sacado.Logradouro=RUA ARISTÍDES DE OLIVEIRA PATRÍCIO Sacado.Numero=34 Sacado.Bairro=JARDIM ANA EMILIA Sacado.Cidade=TAUBATE Sacado.UF=SP Sacado.CEP=12070-230 Sacado.SacadoAvalista.Pessoa=0 Sacado.SacadoAvalista.CNPJCPF=00000000000000 Mensagem= } {[Titulo] Aceite=1 TipoDiasProtesto=1 TipoDiasNegativacao=0 TipoImpressao=1 TipoDesconto=0 TipoDesconto2=0 CarteiraEnvio=0 MultaValorFixo=1 LocalPagamento=PAGÁVEL EM QUALQUER AGÊNCIA BANCÁRIA MESMO APÓS O VENCIMENTO Vencimento=31/01/2023 DataDocumento=20/12/2023 DataProcessamento=20/12/2023 DataMoraJuros=01/02/2023 DataMulta=01/02/2023 DiasDeProtesto=0 CodigoNegativacao=3 DiasDeNegativacao=0 DataBaixa=15/02/2023 DataLimitePagto=15/02/2023 NumeroDocumento=2023-505450/1 Especie=RC Carteira=RG NossoNumero=8 ValorDocumento=600 EspecieMod=R$ Parcela=1 TotalParcelas=0 ValorAbatimento=0,00 ValorDesconto=0 ValorMoraJuros=1,8 ValorIOF=0,00 ValorOutrasDespesas=0,00 SeuNumero=1075 PercentualMulta=2 CodigoMora=1 CodigoMoraJuros=0 ArquivoLogoEmp=C:\Projetos\AGE\01. Dev\bin\x86\Debug\Temp\logo1.PNG Verso=0 OcorrenciaOriginal.TipoOcorrencia=0 Sacado.Pessoa=1 Sacado.NomeSacado=ESTRA PRODUTOS ALIMENTÍCIOS LTDA [email protected] Sacado.CNPJCPF=82957335150134 Sacado.Logradouro=RUA ARISTÍDES DE OLIVEIRA PATRÍCIO Sacado.Numero=34 Sacado.Bairro=JARDIM ANA EMILIA Sacado.Cidade=TAUBATE Sacado.UF=SP Sacado.CEP=12070-230 Sacado.SacadoAvalista.Pessoa=0 Sacado.SacadoAvalista.CNPJCPF=00000000000000 Mensagem= }
  5. boa noite pessoal, eu uso o acbrlib boleto já algum tempo e td esta rodando normal...Fui atualizar as dlls e não consigo mais gerar mais de um boleto junto. ele me retorna a msg "Já foi adicionado um item com a mesma chave." qnd chamo IncluirTitulos ACBoleto.LimparLista() CBoleto.IncluirTitulos(Titulos.ToArray) CBoleto.Imprimir() alguém tem ideia do que pode ser? se eu não atualizar a dll td funciona normalmente td esta preenchido corretamente, nenhum SeNumero, NossoNumero ou NumeroDocumento se repete
  6. Muitíssimo obrigado por apontar um descuido meu. Tudo funcionando, pode encerrar este post. Tenha um bom dia.
  7. Junior bom dia. AGENFe.Configuracao(ACNFe, dtEmpresa.Rows(0), dhEmi, CInt(Controls("NFeAmbiente").Text)) Dim FNFe As String = IO.File.ReadAllText("C:\Temp\NFe.xml") ACNFe.CarregarXML(FNFe) ACNFe.Assinar() ACNFe.Validar() ACNFe.Imprimir() Este código nada acontece, passa 'batido' por todas as linhas e nada ocorre. Em anexo o xml carregado. NFe.xml
  8. Ok...Na 2ª eu carrego xmls válidos e inválidos para analisar o comportamento e reporto o ocorrido. Bom final de semana...
  9. O que esta dizendo é que jamais poderei usar um código como o abaixo.(Pegar um xml do em algum lugar e carregar na Lib) Isso mesmo? tenho que tomar o caminho de NFE_CarregarXML(), apesar de os exemplos nas Demos estarem .CarregarXML(str)! Desculpe pela falta de conhecimento sobre os dois métodos, mas preciso saber alguns 'porques', para que eu possa montar um Classe de Negócio sobre a ACBrLIB com a maior performance possível. E .CarregarXML(stringxml) seria uma 'baita' mão na roda, em um sufoco no Cliente, poderia editar o XML, carrega-lo e enviar a SEFAZ. Grato pela atenção, e código abaixo jamais? Dim ACNFe As New ACBrNFe ACNFe.Config(.......) Dim StrIni As String = IO.File.ReadAllText("C:\Temp\NFe.xml") ACNFe.CarregarXML(StrIni)
  10. tborges

    Tributo ICMS

    Junior quanto a dll corrigida, agora esta gerando correto a section ICMS, parabéns e vlw. [rastro001001] qLote=0 dFab=01/01/0001 dVal=01/01/0001 [ICMS001] orig=0 CSOSN=201 modBCST=4 pMVAST=33,3300 vBCST=287,99 pICMSST=18,0000 vICMSST=12,96 pCredSN=0,0000 vCredICMSSN=0,00
  11. Junior aproveitando olhe este outro problema. Se antes disso você carregar um ini como abaixo, ai ele permite carregar o xml, mas no meu caso eu preciso é que carregue o xml. Dim StrIni As String = IO.File.ReadAllText("C:\Temp\1302.txt") ACNFe.CarregarINI(StrIni) Dim X As String = ACNFe.ObterIni(0) NFe.xml
  12. OK, vamos testar pela manhã e lhe dou um feedback. Obrigado.
  13. tborges

    Geração de Tributo ICMS

    Estou obtendo a seguinte validação de regra de negócio de uma NFe. se eu continuar e mandar validar obtenho mais esta mensagem. o String Ini da Classe gerada é este...local onde obtive o string ' ACNFe.CarregarNota(ACNotaFiscal)' [Produto001] cProd=025 cEAN=17898955143022 cEANTrib=17898955143022 xProd=Achocolatado EstraFoods Pacote 200 Gr NCM=18069000 CEST=1700600 CFOP=5.401 uCom=PCT qCom=400,000000 vUnCom=0,540000 vProd=216,00 uTrib=PCT qTrib=400,000000 vUnTrib=0,540000 vFrete=0,000000 vSeg=0,000000 vDesc=0 indTot=1 nItemPed=1 pDevol=0 vIPIDevol=0 vTotTrib=12,96 indEscala=S [rastro001001] qLote=0 dFab=01/01/0001 dVal=01/01/0001 [ICMS002] orig=0 CSOSN=201 modBCST=4 pMVAST=33,3300 vBCST=287,99 pICMSST=18,0000 vICMSST=12,96 pCredSN=0,0000 vCredICMSSN=0,00 [Total] vBC=0 vICMS=0 vICMSDeson=0 vBCST=287,99 vST=12,96 vProd=216,000000 vFrete=0,000000 vSeg=0,000000 vDesc=0,000000 vII=0 vPIS=0 vCOFINS=0 vOutro=0,000000 vNF=228,960000 vFCP=0,00 vFCPST=0,00 vFCPSTRet=0 vIPI=0 vTotTrib=12,96 vIPIDevol=0 O Codigo que gerou a Classe ACNotaFiscal = New ACBrLib.NFe.NotaFiscal é este Se observarem a Section [ICMS002] é a unica incorreta, se eu editar a string para [ICMS001] gravar um arquivo texto, chamar via CarregarINI, não ocorre nenhuma mensagem. Minha pergunta é : No codigo acima esta faltando alguma linha para definir que a Sections que foi gerada é '001' ou o Metodo da Classe esta contanto o [ICMS] incorretamente?
  14. Acho que o problema é esta Classe aqui... Ela disponibiliza CNPJ e não CNPJCPF, veja ai se isso confere... Se for isso e vocês arrumarem ai os codigos de inicialização de classes deve mudar.... Dim Encerramento As New EventoEncerramento With {.chMDFe = ChaveAcesso, .cMun = cMun, .CNPJ = CNPJ, .cOrgao = 35, .cUF = nUF, .dhEvento = DateTime.Now, .dtEnc = DtEncerramento, .nProt = Protocolo, .nSeqEvento = Eventos} MDFE.CarregarEvento(Encerramento) Dim Ini As String = Encerramento.ToString Ini = Ini.Replace("CNPJ", "CNPJCPF") Onde esta .CNPJ disponibilizado pela Classe deve aprensetar CNPJCPF quando arrumar a Classe EventoBase... Ai o truque do INI e INI.replace sai do código... Check isso...at+ Italo como disse meu prazo de termino do MDFe era hoje e hoje foi finalizado... Gerando MDFe com todas as Classes envolvidas e todos os Eventos... Isso reforça que o uso da Lib é ótimo... Foram gasto 5 dias para escrever todo o MDFe, apesar dos 3 problemas encontrados... Então vale a pena corrigi-los, pois vai aumentar em muito a produtividade e confiança dos programadores de Aplicações Comerciais e Industruiais. Um abraço e um bom final se semana, vou para uma cervejinha merecida hoje...
  15. Acho que o problema é esta Classe aqui... Ela disponibiliza CNPJ e não CNPJCPF, veja ai se isso confere... Se for isso e vocês arrumarem ai os codigos de inicialização de classes deve mudar.... Dim Encerramento As New EventoEncerramento With {.chMDFe = ChaveAcesso, .cMun = cMun, .CNPJ = CNPJ, .cOrgao = 35, .cUF = nUF, .dhEvento = DateTime.Now, .dtEnc = DtEncerramento, .nProt = Protocolo, .nSeqEvento = Eventos} MDFE.CarregarEvento(Encerramento) Dim Ini As String = Encerramento.ToString Ini = Ini.Replace("CNPJ", "CNPJCPF") Onde esta .CNPJ disponibilizado pela Classe deve aprensetar CNPJCPF quando arrumar a Classe EventoBase... Ai o truque do INI e INI.replace sai do código... Check isso...at+
  16. O problema Italo é que não gero arquivo Ini, se olhar o código eu uso as Classes...então o bug esta no Metodo que converte a Classe em Ini string... As Classes são ferramentas mais modernas...me permite serializar,que não usei ainda porque estou entrando agora no mundo ACBr Lib... Usando as Classes Boleto fiz todo o processo em 4 dias... O MDFe iniciei na 2ª e agora só falta Encerrar que pretendo terminar ainda hoje a tarde.... E considero isso um aquecimento para entrar na NFe... Mas valeu sua atenção....
  17. Como EventoIncCondutor apresenta a propriedade .CNPJ e o String INI usa CNPJCPF a solução mais rápida encontra foi esta.... E funciona 100%, até que a equipe de desenvolvimento da ACBr resolva este problema.. Solução adotada(morde e assopra) MDFE.LimparListaEventos() Dim Condutor As New EventoIncCondutor With {.nSeqEvento = Eventos, .chMDFe = Chave, .xNome = Nome, .CNPJ = CNPJ, .CPF = CPF, .dhEvento = DateTime.Now, .cOrgao = 35} MDFE.CarregarEvento(Condutor) Dim Ini As String = Condutor.ToString Ini = Ini.Replace("CNPJ", "CNPJCPF") MDFE.LimparListaEventos() MDFE.CarregarEventoINI(Ini)
  18. Bom dia, Conforme relatado no Discord, estamos utilizando a Sub EventoIncCondutor para gerar o evento de inclusão de condutores, no entanto ela esta gerando .INI de maneira incorreta e a SEFAZ rejeita o evento. A sub possui apenas a propriedade CNPJ, mas o correto é CNPJCPF. Dessa forma, não é possivel efetuar a inclusão do Condutor na SEFAZ pois falha a validação de schema. {[EVENTO] idLote=1 [EVENTO001] xNome=Condutor 11 CPF=11111111111 chMDFe=35220505379815000147580030000001821000000012 cOrgao=35 CNPJ=xxxxxxxxxxxxxxxx (Deveria ser CNPJCPF) dhEvento=20/05/2022 10:51:18 tpEvento=110114 nSeqEvento=1 versaoEvento=3.00 } O código que estamos utilizando é o seguinte: Dim MDFe As New ACBrMDFe Dim Lote As Integer = 1 Dim Eventos As Integer = 1 Dim boRet As Boolean = False MDFe.LimparListaEventos() Dim Condutor As New EventoIncCondutor With {.nSeqEvento = Eventos, .chMDFe = Chave, .xNome = Nome, .CPF = CPF, .dhEvento = DateTime.Now, .cOrgao = 35, .CNPJ = xxxxxxxxxxxxx} MDFe.CarregarEvento(Condutor) MDFe.EnviarEvento(Lote) Fizemos um truque de pegar o valor de Condutor após chamar a sub, substituir CNPJ por CNPJCPF e passar corrigido para MDFe.CarregarEvento e passou na SEFAZ. É necessário corrigir EventoIncCondutor para gerar CNPJCPF
  19. @Haroldo Lafetá segue um exemplo de como estamos setando as configurações em VB.Net, talevz te de uma luz para fazer em C# Dim MDFe As New ACBrMDFe MDFe.LimparLista() With MDFe.Config .Principal.TipoResposta = ACBrLib.Core.TipoResposta.fmtINI .Principal.LogNivel = ACBrLib.Core.NivelLog.logCompleto .Principal.LogPath = "C:\temp\ACBR\log.ini" .FormaEmissao = ACBrLib.Core.DFe.TipoEmissao.teNormal If tpAmb = 1 Then (Tome muito cuidado aqui, o componente esta vacilando no ENum de tpAmb) .Ambiente = ACBrLib.Core.DFe.TipoAmbiente.taProducao Else .Ambiente = ACBrLib.Core.DFe.TipoAmbiente.taHomologacao End If .VersaoDF = VersaoMDFe.ve300 .ExibirErroSchema =True .RetirarAcentos = True .RetirarEspacos = True .IdentarXML = True .Visualizar = False 'Define se as mensagens de retorno dos webservices serão apresentadas na tela .SalvarWS = True 'Define se os XML de envio e de retorno com os envelopes serão salvos em disco .SalvarArq = True 'Define se os XML dos eventos serão salvos em disco .SSLType =5 .Timeout = 5000 .IniServicos = PastaConfig & "\ACBrMDFeServicos.ini" 'Caminho e nome do arquivo INI que contem as URLs de homologação e produção .PathSalvar = PastaXML & "log\" .PathEvento = PastaXML & "log\" .PathSchemas = PastaConfig & "Schemas\" .PathMDFe = Pasta .SepararPorCNPJ = False .SepararPorModelo = False .SepararPorAno = False .SepararPorMes = False .SepararPorDia = False .DAMDFe.PathLogo = PastaLogo .DAMDFe.MostraSetup = True .DAMDFe.MostraPreview = True .DAMDFe.MostraStatus = True .DAMDFe.ExpandeLogoMarca = True .DAMDFe.TipoDAMDFe = 1 .DFe.SSLCryptLib = ACBrLib.Core.DFe.SSLCryptLib.cryWinCrypt .DFe.SSLHttpLib = ACBrLib.Core.DFe.SSLHttpLib.httpWinHttp .DFe.SSLXmlSignLib = ACBrLib.Core.DFe.SSLXmlSignLib.xsLibXml2 'Dados certificado .DFe.VerificarValidade = False .DFe.NumeroSerie = "111111111" .DFe.Senha = "XXXXXXXXXXX" Depois como estamos chegando o status do serviço Public Shared Function StatusServico(ACMDFe As ACBrLib.MDFe.ACBrMDFe) As Boolean Dim bo As Boolean = False Dim Status As ACBrLib.Core.DFe.StatusServicoResposta = ACMDFe.StatusServico() If Not Status.CStat = 107 Then Dim Obs As String = "" If Status.XObs IsNot Nothing Then Obs = Status.XObs MessageBox.Show(Status.XMotivo & Chr(13) & Obs, "Status SEFAZ", MessageBoxButtons.OK, MessageBoxIcon.Information) Else bo = True End If Return bo End Function
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...