Ir para conteúdo
  • Cadastre-se

Eraldo

Membros
  • Total de ítens

    28
  • Registro em

  • Última visita

Posts postados por Eraldo

  1. 20 horas atrás, Italo Jurisato Junior disse:

    Boa noite Eraldo,

    Você tem um XML de consulta para que eu possa analisar?

    Se sim, favor anexar.

    Boa noite Italo,

    Não tenho agora pra te passar. 

    Fiz mais um teste excluindo essa const cDTD e, como imaginava, não faz falta alguma, ao contrário.

    Para confirmar, experimente setar essa const cDTD que esta na unit ACBrDFeOpenSSL, com vazio ( Const cDTD = ''; ) e observe que irá funcionar normalmente.

    Como está atualmente a consulta não funciona e para o envio, não faz falta. 

     

    Att. Eraldo

      

     

    Desculpe-me, pela postagem anterior, me confundi.

     

    Boa tarde Italo,

    Na consulta o XML vai assim  <!DOCTYPE test [<!ATTLIST id ID #IMPLIED>]>' e isso da erro.

    Porque  ele pega <!DOCTYPE test [<!ATTLIST &infElement& Id ID #IMPLIED>]>' e substitui a TagElemento por ''.

    Se debuguar qualquer consulta pelo openssl, pegue o valor da variável ConteudoXML antes do  xmlParseDoc e observe o que disse.

     

    Sustento que não precisa atribuir nada a constante  cDTD no caso do openssl pelo menos.

    Gostaria de saber se tem algum colega que usa openssl e funciona.

    Eu até agora, atribuindo  '' para a const cDTD, está funcionando que é uma maravilha.

     

    Att. Eraldo

  2. 2 horas atrás, Italo Jurisato Junior disse:

    Boa noite Eraldo,

    Você tem um XML de consulta para que eu possa analisar?

    Se sim, favor anexar.

    Boa noite Italo,

    Não tenho agora pra te passar. 

    Fiz mais um teste excluindo essa const cDTD e, como imaginava, não faz falta alguma, ao contrário.

    Para confirmar, experimente setar essa const cDTD que esta na unit ACBrDFeOpenSSL, com vazio ( Const cDTD = ''; ) e observe que irá funcionar normalmente.

    Como está atualmente a consulta não funciona e para o envio, não faz falta. 

     

    Att. Eraldo

      

     

  3. 3 horas atrás, Italo Jurisato Junior disse:

    Boa tarde Eraldo,

    Em uma outra postagem você disse que tinha caminhado ao atribuir o nome da TAG:

     proInfisc: TagElemento := 'infNFSe';

    Isso não resolve o problema do DTD ?

    Boa tarde Otimizy,

    A principio cada provedor possui o seu próprio schema e este é usando para todas as cidades.

    A não ser que no seu caso para a cidade em questão o provedor ainda esta usando uma versão antiga do schema, dai os erros.

     

    Italo,

    Resolve sim, mas para o caso da geração do XML do envio do Lote.

    No XML da consulta falha porque não existe atribuição para nenhum provedor.

    Para o caso de usar  openssl, acredito que por ser mais restritivo, não acetia um campo ID sem referencia no XML como abaixo

    '<!DOCTYPE test [<!ATTLIST id ID #IMPLIED>]>'

    acima esta dizendo que o XML possui um elemento chave mas não está passando nada.

    No cado do XML do lote você informa que o elemento chave do XML é o "infNFSe"

    No caso da consulta, não esta sendo informado nada. E falha no parser do openssl.  

    Percebi que esse elemento chave ID não é necessário. Os XML´s já tem os schemas que fazem a validação. Não precisamos dizer que o XML tem um campo chave...

    ou seja,  a const cDTD pode ser  apenas :  cDTD = '<!DOCTYPE test []>';

     

    Att. Eraldo

  4. 15 horas atrás, Italo Jurisato Junior disse:

    Boa noite Eraldo,

    Muito obrigado pela colaboração é preciso agora testar com o Capicom.

    Favor atualizar todos os fontes e realize novos testes.

    Boa tarde Italo e colegas,

    Avançando ainda no NFSe utilizando A1 com openssl, acredito não ser necessário atribuir  o identificador ID no ATTLIST dos XML´s.

    Com Capicom passa, acredito que por não fazer a consistência do dessa informação na estrutura do XML...talvez alguém com mais conhecimento poderá confirmar/refutar isso.  Já com o parser usando openssl a coisa é mais restritiva.

    Explico:

    Existe na unit ACBrDFeOpenSSL a  a const cDTD, conforme trecho abaixo  

    .....

      HTTPSend, ssl_openssl,
      libxmlsec, libxslt, libxml2;

    const
      cDTD = '<!DOCTYPE test [<!ATTLIST &infElement& Id ID #IMPLIED>]>';            ///<<-- ME REFIRO A ESSA!

      cErrMngrCreate = 'Erro: Falha ao criar Gerenciador de Chaves "xmlSecKeysMngrCreate"';
      cErrMngrInit = 'Erro: Falha ao inicializar o Gerenciador de Chaves "xmlSecCryptoAppDefaultKeysMngrInit"';
      cErrCertLoad = 'Erro: Falha ao ler informação do Certificado no Gerenciador de Chaves';
      cErrParseDoc = 'Erro: Falha ao interpretar o XML "xmlParseDoc"';
    .......

    E percebo que não é obrigatório informar o elemento do tipo ID, nem para a geração do XML para envio , e nem para consulta... hoje implementei  a consulta também usando openssl aqui para Caxias do Sul. Mas tive que alterar a constante cDTD.

    O que proponho é que, pelo menos com Openssl, não informar ATTLIST. Então a const cDTD seria como abaixo. 

    cDTD = '<!DOCTYPE test []>';
     

    Nos testes que fiz até esse momento, fiz essa alteração e a geração/envio e consulta da NFSe, usando openssl para o provefor  Infisc funcionou perfeitamente.

    Como tem efeito somente em openssl, Capicom não altera nada.

     

    Att. Eraldo

     

     

     

     

     

  5. Boa noite colegas, 

    Estou implementando a nota pelo provedor Infisc e tentando usar A1 com openssl...

    Não passava de jeito nenhum pela function xmlParseDoc,  chamada na function TDFeOpenSSL.XmlSecSign da Unit  ACBrDFeOpenSSL.

    Ai descobri um detalhe na procedure TNFSeEnviarLoteRPS.DefinirDadosMsg da Unit ACBrNFSeWebServices

    Descobrir que não faz o Parse por causa da variável  TagElemento que no caso do provedor ser Infisc está sendo setada com vazio ('')

     

    Trecho dos fontes de hoje, 23 fevereiro de 2016

    GerarDadosMsg := TNFSeG.Create;
      try
        case Provedor of
          proInfisc: TagGrupo := 'envioLote';
          proISSDSF: TagGrupo := 'ReqEnvioLoteRPS';
          proEquiplano: TagGrupo := 'enviarLoteRpsEnvio';
        else
          TagGrupo := 'EnviarLoteRpsEnvio';
        end;

        case FProvedor of
          proInfisc: TagElemento := '';   // <<<<<<<< Para "parsear" usando openssl essa variável tem que ter valor. 
        else
          TagElemento := 'LoteRps';
        end;

    Alterei conforme abaixo e passou.

        case FProvedor of
          proInfisc: TagElemento := 'infNFSe';    // <<<<<< 
        else
          TagElemento := 'LoteRps';
        end;
     

    O que me dizem? Confere minha observação?

     

     

     

  6. Ola colegas de profissão,

     

     

    Estou usando OpenSSL para as NF-e´s

     

    O problema é que quando uso o cst60 o xml tem que constar as tag´s vBCSTRet e vICMSSTRet, mesmo zeradas.

     

    e vi que a se comentar a linha 1260 unit t pcnNFeW.pas

     >>    if (nfe.Det.Imposto.ICMS.vBCSTRET > 0) or (nfe.Det.Imposto.ICMS.vICMSSTRET > 0) then     

     

    funciona.

     

    há algum inconveniente em deixar enviar 0.00?

     

    ou alguém tem outra solução?

     

    Agradeço qualquer ajuda.

     

     

  7. Boa tarde,

     

    Já fiz dezenas de tentativas e pesquisas mas não resolvi.

     

    O problema é que não consigo usar o certificado A1 instalado numa VPS Windows Server 2008R2. com meu programa.

     

    Instalei e removi todos os CAPICOM que encontrei.

     

    O certificado esta instalado corretamente... Fiz testes com 2 páginas que fazem isso funciona, assina usando o certificado.

     

    No meu software sempre funcionou(XP, 7, 8, Server 2008). O problema é que quero colocar o programa numa VPS.

     

    Alguém já passou por isso?

     

     

     

  8. Hoje eu estou aumentando meus posts que é uma beleza

     

    Na função GetURLSepara(URL: String): String;  

     

     

    Acredito deva ser alterada a para:
    function GetURLSepara(URL: String): String;
      var
        I, R: Integer;
    begin
      R:= Length(URL);
      for I := 0 to Length(URL)  - 1  do  // Adicionar  '-1' por causa do range... ou então     "for I := 0 to  R - 1" para não chamar a função Length desnecessariamente....

     

        if URL = '/' then
          R:= I;
      Result:= Copy(URL, 1, R);
    end;
     

     

  9. Entendo,  a pessoa responsável que me refiro seria a pessoa que desenvolveu para a Receita Federal ou a pessoa na RF responsável por esse WebService...alterar e acrescentar mais essa informação no retorno do WS. 

    Penso ser interessante, pelo menos, saber como isso funciona na Receita...quem codifica, como funcionam as atualizações, essas coisas.

     

    De qualquer forma o código do IBGE pode ser pego fazendo uma triangulação com o CEP...

  10. Bom dia,

     

    (ainda não fui pro almoço)

     

     

    Dá pra acrescentar a remoção de espaços extra no campo complemento?

     

    Motivo: Uma consulta ao CNPJ 11.200.418/0004-01 (é bem famoso) o complemento vem assim: "BLOCO 200                       LT POPULAR                (FAZENDA GRANDE)    LOTE  GLA2G"

     

    Como podem perceber, vem com mais de 1 espaços entre os termos.

     

    Vejam ai os responsáveis pela criança.

     

    Obrigado pelo componente.

  11. Bom dia,

     

    Para a NFG (Nota Gaúcha), como estão tratando aquela inconsistência no arquivo gerado importado pelo software Nota Fiscal Gaúcha Desktop?

     

    A mensagem é: "Campo Nro: 14.Situação: Campo com conteúdo inválido - 'MFD'.Registro/Erro:E01 - Código de comando utilizado para gerar o arquivo difere de TDM." causada pelo formato que esta sendo utilizado pela função PafMF_MFD_Cotepe1704 que informa a finalidade "finMFD" e, acredito pela msg, que deveria ser "finTDM"

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