-
Total de ítens
274 -
Registro em
-
Última visita
-
Days Won
1
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Posts postados por Aggille Sistemas de Gestão
-
-
se eu comentar a linha ou colocar ou colocar
try
protNFe.cMsg := Leitor.rCampo(tcStr, 'cMsg');
except
protNFe.cMsg := 0;
end;
dai a consulta volta a funcionar...
o problema todo, ao meu ver está nas linhas 249 e 250
except
Result := False;acho que deveria levantar exceção nestes casos pra identificarmos o problema..
-
42 minutos atrás, Aggille Sistemas de Gestão disse:
antes de cancelar uma NF-e, eu costumo consulta ela pra saber se já não está cancacelada.. e reparei que a consulta do ACBR não retornada nada.. então depurei e constatei o seguinte...
Na UnitpcnRetConsSitNfe, na linha 204 ( Leitor.rCampo(tcStr, 'cMsg') ) , ele levantava uma Exception, e sempre que tinha exception, a rotina retornava False.. coloquei um ponto de parada pra ver qual o tipo de Exceção que levantava e é do tipo 'Could not convert variant of type (UnicodeString) into type (Integer)'...Pois então... quando ele vai ler essa TAG, na unit pcnLeitor.. ele lê da variável FGrupo que contém
'<infProt Id="ID143190000653179"><tpAmb>2</tpAmb><verAplic>RS201904120803</verAplic><chNFe>43190490205691000152550010000491251723293854</chNFe><dhRecbto>2019-04-26T09:12:53-03:00</dhRecbto><nProt>143190000653179</nProt><digVal>RwnbSsvnIY5GEkkzn6Lm+yP3zlk=</digVal><cStat>100</cStat><xMotivo>Autorizado o uso da NF-e</xMotivo></infProt>'na linha 214, ele pega o ConteudoDaTag que está vazio, pois não existe a TAG cMsg...
Ou seja.. a consulta retorna sempre FALSE...
-
antes de cancelar uma NF-e, eu costumo consulta ela pra saber se já não está cancacelada.. e reparei que a consulta do ACBR não retornada nada.. então depurei e constatei o seguinte...
Na UnitpcnRetConsSitNfe, na linha 204 ( Leitor.rCampo(tcStr, 'cMsg') ) , ele levantava uma Exception, e sempre que tinha exception, a rotina retornava False.. coloquei um ponto de parada pra ver qual o tipo de Exceção que levantava e é do tipo 'Could not convert variant of type (UnicodeString) into type (Integer)'...Pois então... quando ele vai ler essa TAG, na unit pcnLeitor.. ele lê da variável FGrupo que contém
'<infProt Id="ID143190000653179"><tpAmb>2</tpAmb><verAplic>RS201904120803</verAplic><chNFe>43190490205691000152550010000491251723293854</chNFe><dhRecbto>2019-04-26T09:12:53-03:00</dhRecbto><nProt>143190000653179</nProt><digVal>RwnbSsvnIY5GEkkzn6Lm+yP3zlk=</digVal><cStat>100</cStat><xMotivo>Autorizado o uso da NF-e</xMotivo></infProt>'na linha 214, ele pega o ConteudoDaTag que está vazio, pois não existe a TAG cMsg...
-
16 horas atrás, Juliana Tamizou disse:
Boa tarde.
Vendo um tópico relativo a outro assunto, notei que ja unit do BB já existe a função para separar o convenio do nosso número, seria a NossoNumeroSemFormatacaoLerRetorno().
Faça um teste utilizando a mesma.
Att.
meu sistema chama a rotina AcbrBoleto.LeRetorno()...
o próprio ACBR chama essa função na linha 1157 ( NossoNumero := NossoNumeroSemFormatacaoLerRetorno(ACBrBoleto.Cedente.Convenio, Carteira, Linha); ) da unit AcbrBancoBrasil.. porém é na rotina de leitura do regidtro 240, e no caso meu arquivo é cbr643 que é de 400 posições...Então, fui na linha 1837 ()método LerRetorno400Pos6 ) e substitui NossoNumero := Copy(Linha,63,11); ( ele esta lendo 11 caracteres e é aqui que ocorre o erro porque diz que o máximo é 5..)
e substitui por NossoNumero := NossoNumeroSemFormatacaoLerRetorno(ACBrBoleto.Cedente.Convenio, Carteira, Linha); e o retorno é sempre '00000' -
4 horas atrás, Juliana Tamizou disse:
Exatamente, mas seria em relação as posições de uso livre...
Att.
oi.. não é dessa forma que entendi.. mas tudo bem.. de qualquer forma o arquivo de retorno está correto...
-
Oi Juliana...
a Exception acontece na Unit AcbrBoleto na linha 1603:
wTamNossoNumero:= CalcularTamMaximoNossoNumero(Carteira, wNossoNumero,
ACBrBoleto.Cedente.Convenio);if Length(trim(wNossoNumero)) > wTamNossoNumero then
raise Exception.Create( ACBrStr('Tamanho Máximo do Nosso Número é: '+ IntToStr(wTamNossoNumero) ));
Ali ele compara o tamanho do NossoNumero que leu no arqauivo de retorno com o valor retornado prla funcao CalcularTamMaximoNossoNumero.. e como ela retorna 5 e vem 11 no arquivo, ele levanta a exceção...sds,
-
Oi Juliana... a função se chama CalcularTamMaximoNossoNumero , imagino que ela retorne o comprimento máximo do campo nosso número.. vou analisar de que forma ela é usada dentro da leitura do arquivo de retorno então..
obrigado..
-
Bom dia Juliana...obrigado pelo retorno...
segue manual de especificações do Banco do Brasil de Novembro de 2018.. na página 17 ( convênio de 6 digitos ), ali fala que o nosso numero deve ter 11 posições..
Do jeito que está no ACBR está tratando como 5....
Fiz a alteração aqui do jeito que falei acima e está funcionando em todos os clientes desde a semana passada..
Mas aguardo uma análise mais profunda...sds,
-
5 horas atrás, BigWings disse:
Provavelmente são as quebras de linha no meio de campos e tags.
O XML nem mesmo valida pelo validador da SEFAZ-RS:
é possível... também estava pensando nisso..não podemos garantir a qualidade do xmls dos outros...
obrigado..
-
Convênio 148244 padrao cnab 400...
Neste convenio de 6 digitos o tamanho do nosso numero deveria de 11... -
Boa tarde Juliana...
Lá no tratamento do retorno é chamada essa rotina pra pegar o tamanho do NossoNumero ( que retorna 5 do jeito que estava ).
O Nosso Numero dessa carteira vem com 11 caracteres no arquivo de retorno, que gera um erro do acbr, dizendo que o número máximo do nosso número é 5,
quando deveria ser 11 devido ao convênio ter 6 digitos.
Do jeito que estava não estava conseguindo processar os arquivo de retorno. -
Boa tarde.. tenho um convenio no BB que é de 6 posições e carteira 17...
No processamento do arquivo de retorno, tenho recebido erro que de o tamanho máximo no nosso número é 5.
assim está as Regra..
Meu convenio está caindo na regra em negrito.. quando deveria cair na regra subilinhada, por confirma minha conversa com
a área técnica do BB, sempre que o convênio for de 6 posições, o nosso número será de 11 posições...** Unit AcbrBancoBrasil.PAS **
if (Length(trim(NossoNumero)) > 10) and
(((wTamConvenio = 6) and ((wCarteira = '16') or (wCarteira = '18'))) or
((wTamConvenio = 7) and (wCarteira = '18'))) then
Result:= 17
else if (wTamConvenio <= 4) then
Result := 7
else if ((wTamConvenio > 4) and (wTamConvenio < 6)) or
((wTamConvenio = 6) and ((wCarteira = '12') or (wCarteira = '15') or
(wCarteira = '17') or (wCarteira = '18'))) then
Result := 5
else if (wTamConvenio = 6) then
Result := 11
else if (wTamConvenio = 7) then
Result := 10;Inverti para essa forma e funcionou para todas as carteira..
if (Length(trim(NossoNumero)) > 10) and
(((wTamConvenio = 6) and ((wCarteira = '16') or (wCarteira = '18'))) or
((wTamConvenio = 7) and (wCarteira = '18'))) then
Result:= 17
else if (wTamConvenio <= 4) then
Result := 7
else if (wTamConvenio = 6) then
Result := 11
else if (wTamConvenio = 7) then
Result := 10
else if ((wTamConvenio > 4) and (wTamConvenio < 6)) or
((wTamConvenio = 6) and ((wCarteira = '12') or (wCarteira = '15') or
(wCarteira = '17') or (wCarteira = '18'))) then
Result := 5 ;
-
Não acontece em todos os xmls.. está acontecendo nesse e em mais um.. estou analisando pra descobrir o que eles têm de diferente..
-
Boa tarde.... quando carrego um XML esta dando esse erro..."4- is not a valid integer value'.
o erro ocorre na unit pcnLeitor, linha 243.. pelo que percebi ele esta lendo um caracter a menos na data de emissão..
em anexo segue o xml que estou tentando ler e um print do erro..
sds,
-
Também me perguntei sobre isso....
Mas, na esperança que um dia esse serviço melhore, acho que vale o esforço...
sds, -
Boa tarde... a consulta por CNPJ no SEFAZ já está portada para o ACBRLib ?
Grato..
-
boa tarde... fiz a implementação acima e registrou certo no banco.. algumdos moderadores poderia repessar a alteração pro servidor ?
grato...
-
Segue em anexo a alterção... coloquei um IF na linha 910, verificando se tem instrução 88 ...
-
Conforme o layout do BB, padrão CNAB 400, quando for instrução de negativação, deverá ir na posição 157/158 ou 159/160 ( instrução codificada 1 ou instrução codificada 2 ) a instrução '88' ( conforme nota 09 ).
E na posição 392-393 ( Numero de Dias para Protesto ) a quantidade de dias a ser negativado..
Fiz os testes aqui, mas o componente não coloca o campo na posição 392...
Segue em anexo o manual para analise..
-
sei disso e já trato o erro quando é duplicidade...
as consultas de notas proprias, vêm todos os eventos, mas as notas emitidas por terceiros nâo vêm.. nem na distribuicaoDFE
-
Boa tarde... já tentei...
tenho inclusive o xml baixado pelo DistribuiçãoDFE e não vêm os eventos...
ja fiz desse jeito... baixei pelo DistribuiçãoDFE, carreguei no componente, executei a consulta.. e não vêm os eventos..
se consultar a chave no siete do sefaz vêm certo..
-
Quando o usuário vai dar Confirmação ou Cancelamento de Operação, durante o processo, pode ocorrer um erro qualquer..
Então quando o usuário faz a mesma operação novamento, ocorre erro de evento duplicado...
No XML que baixo do fornecedor não vêm os eventos...
Ná algum webservice que liste os eventos de uma NF-e de fornecedor ( que já foi devidamente dada a ciência da operação ) ?
Hoje, eu mando o evento, e se retornar 537 ( duplicidade ), sei que a operação deu certo...
Mas não há uma forma de buscar os eventos ?
-
Tem algum evento que ocorre logo apos excluir uma Aba ? tenho uma imagem de fundo no form principal, então, quando não tiver nenhuma aba no TDI, quero colocar ele como visible=false para que mostre a imagem de fundo...
coloquei um TImage na propriedade background.. porém quando removo todas as abas, a imagem some..
obrigao..
Tamanho Nosso Número do BB
em ACBrBoleto
Postado
ótima solução.. funcionou perfeitamente.. obrigado..