Ir para conteúdo
  • Cadastre-se

Aggille Sistemas de Gestão

Membros
  • Total de ítens

    274
  • Registro em

  • Última visita

  • Days Won

    1

Posts postados por Aggille Sistemas de Gestão

  1. 19 minutos atrás, Juliana Tamizou disse:

    Bom dia.

    Após mais algum tempo de análise, cheguei a conclusão que como é sabdio que as 6 primeiras posições sempre se referem ao convênio, basta iniciar a leitura do nosso número a partir da 7ª posição.

    Alterações no svn.

    Att.

    ótima solução.. funcionou perfeitamente.. obrigado..

     

    • Curtir 2
  2. 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..

  3. 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...

     

  4. 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...

     

     

  5. 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'

     

     

  6. 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,

  7. 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..

  8. 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,

     

    Doc5175Bloqueto.pdf

  9. 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..

  10. 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.

  11. 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 ;
     

     

     

  12. 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..

     

     

    cbr641.pdf

  13. 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

     

  14. 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..

     

  15. 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 ?

     

  16. 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..

     

×
×
  • 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.