Code Monkey home page Code Monkey logo

Comments (7)

robmachado avatar robmachado commented on July 29, 2024

Estou usando a versão 2.7.8 sem problemas, já usei versões anteriores
também sem problemas.

Existem algumas "expressões regulares" no xsd da receita que causam
problemas, veja no wiki.

Roberto

Em 13 de fevereiro de 2014 14:51, Ricardo F. Verhaeg <
[email protected]> escreveu:

Olá,

vi os resultados sobre os erros de validação, e para atualizar:

  • Tenho instalado e configurado a versão 2.9.1 do libxml2, e mesmo
    assim não consigo validar nenhum XML.

O bug que eles possuem é que não conseguem fazer um parse em regras de
expressão regular do tipo {a,b} e {a,} (onde a e b são números)

Qualquer validador em linux que se baseie no libxml2 irá ter problemas:

  • xmlstarlet, lxml (python), xmllint, e outros.

Se alguém conseguiu validar usando a versão mais nova, por favor me digam
como, pois estou sem sucesso.

Reply to this email directly or view it on GitHubhttps://github.com//issues/68
.

Roberto

Nisi utile est quod facimus stulta est gloriae (Julius Phaedous)

from nfephp.

Verhaeg avatar Verhaeg commented on July 29, 2024

Eu vi Roberto, o que mencionei é que se não alterar o XSD, ele dá erro em alguns casos. Por exemplo, as unidades tributárias e comerciais. Caçando informações sobre isso, eles haviam dito que haviam corrigido o problema na versão 2.6.26, mas parece que houve uma regressão.

Ao menos utilizando o XSD sem alterações, e rodando tanto com o xmllint ou xmlstarlet, eles falham a validação.

A questão era mais para atualização da wiki, seria bom se corrigissem o libxml2 ou a receita alterar o XSD para evitar essas expressões regulares, assim sem necessidade de alterar o XSD para validar.

Ricardo

from nfephp.

robmachado avatar robmachado commented on July 29, 2024

Esse e o mundo em que vivemos ... nós é que temos de correr atrás da
solução.

A SEFAZ usa como padrão o .NET (arhhg!!), e nossos amigos que mantem o
libxml não chegam a um acordo, acredito que muito por culpar ada própria
micofofi ou por lerdeza deles mesmo. Por enquanto o melhor é corrigir o XSD
no repositório.

Quais são as correções para esses casos que você mencionou ? Vamos
corrigir o XSD e o WIKI !!

Abraço
Roberto

from nfephp.

Verhaeg avatar Verhaeg commented on July 29, 2024

Oi Roberto,
no momento estou utilizando os XSD com modificações providos aqui. Senti falta dele não verificar qual versão utilizar para validar a nota, e sim usar a partir de uma configuração e apenas em meio termo. De qualquer forma, acredito que os principais problemas na validação surjam com regras de regex do tipo {0,} ou {0,2}.. coisas assim..
o primeiro caso é simples, somente substituir por *, como já está sendo feito, no segundo caso e similares fica um pouco mais difícil, pois pode ser necessário alterar a regra completamente. Ainda não esbarrei nesses casos, mas qualquer coisa aviso ;)

Abraços

from nfephp.

robmachado avatar robmachado commented on July 29, 2024

Ricardo;

Quanto a verificar qual XSD usar a partir da VERSÃO da nota ...

Isso não iria funcionar pois existem (e podem existir) várias versões de
XSD (ativos) para uma mesma versão de nota.
Por exemplo para a versão 2.00 as SEFAZ usam :
PL_006i, PL_006j, PL_006n, PL_006m, PL_006p, PL_006q, PL_006r, PL_006s,
PL_007a, PL_007b, etc.

Temos 17 servidores de websrvices e cada um "pode" estar usando um schema
diferente, usualmente o RS e a Receita usam os schemas mais atuais, porém
as demais não. Então apenas pela versão da NFe, não dá para dizer qual
schema você deve usar, se fizermos isso pode ocorrer, do sistema liberar a
NFe com um schema mais atual e a SEFAZ rejeitar (isso já ocorreu comigo em
SP).

Ou seja eu estava usando o schema mais atual e a SEFAZ não !!!

Roberto

from nfephp.

Verhaeg avatar Verhaeg commented on July 29, 2024

Caramba, eles gostam de ajudar hein...
O que voce me diz da configuração da pasta (PL_*) ser baseada por versão da nota? assim ao menos ele consegue validar corretamente notas na versão 1, 2 e 3, considerando que os schemas estão corretos. algo como tornar a configuração assim:

$versao = array(
    '2.00' => 'PL_006s',
    '3.10' => 'PL_008b',
);

e retornar erro caso a versão não esteja definida.

from nfephp.

robmachado avatar robmachado commented on July 29, 2024

É uma ideia a ser considerada, outra forma seria usando o modelo da NFe,
por exemplo :

$modelo = array(

 '55' => 'PL_006s',
 '65' => 'PL_008b'

);

Vamos pensar mais um pouco estou já fazendo alguns testes para modificar a
classe tools para adaptação para ambos os modelos (55 e 65).

Roberto

from nfephp.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.