Ir para conteúdo
  • Cadastre-se

dev botao

Sugestão: qVol Integer para Currency


onyxsistemas
  • Este tópico foi criado há 1399 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa tarde!

Para atender um cliente madeireira precisei alterar o ACBr para aceitar Double ao invés de Integer no qVol - Quantidade de volumes transportados;

Segui o padrão do ACBr usando Currency, como na documentação fala apenas que é numérico, aqui deu certo a alteração;

 

Gostaria que analisassem e se possível subirem  no svn.

 

Segue as imagens de onde houve as alterações e os mesmos alterados.

 

Grato!

qVolManual.png

qVolNotasFiscais.png

qVolpcnNFe.png

qVolAlterado.jpeg

ACBrNFeNotasFiscais.pas pncNFe.pas

ONYX Tecnologia em Softwares
[ Simplicidade e Segurança ]
www.onyxsistemas.com
[email protected]
© ONYX Sistemas - Todos os Direitos Reservados

Link para o comentário
Compartilhar em outros sites

Sim, mais dessa forma não passa na fiscalização

Agora, onyxsistemas disse:

Sim, mais dessa forma não passa na fiscalização

Madeireira trabalha com Metro cúbico, que é onde existe quebra;

Tanto que no arquivo ACBrNFeDANFEFRDM.pas já esta correto, como mostra a imagem anexada.

qVolACBrNFeDANFEFRDM.png

ONYX Tecnologia em Softwares
[ Simplicidade e Segurança ]
www.onyxsistemas.com
[email protected]
© ONYX Sistemas - Todos os Direitos Reservados

Link para o comentário
Compartilhar em outros sites

Estou encontrando esse problema Juliomar, porque ao visualizar o DANFe, esta ok, mais ao enviar ele é arredondado de 18.56 para 19

4 minutos atrás, Juliomar Marchetti disse:

Perguntas. o schema validou o seu xml?

tu conseguiu enviar ele para o sefaz e assinar?

 

ONYX Tecnologia em Softwares
[ Simplicidade e Segurança ]
www.onyxsistemas.com
[email protected]
© ONYX Sistemas - Todos os Direitos Reservados

Link para o comentário
Compartilhar em outros sites

  • Moderadores
57 minutos atrás, onyxsistemas disse:

Segui o padrão do ACBr usando Currency, como na documentação fala apenas que é numérico, aqui deu certo a alteração;

Imprimir algo no DANFE diferente de como está no XML vai contra o manual e isso sim pode causar autuação.

Aqui nos casos em que o usuário insiste em mostrar a quantidade em M3 nos volumes transportados orientamos a informar multiplicado por 1000 e truncando as casas decimais.

Ex.:

10,83 M3 = 10830

2 M3 = 2000

5,8743 M3 = 5874

Dessa forma não deve ter problema com a fiscalização.

  • Curtir 1
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

Analisando e pesquisando sobre qVol no acbr, existem vários lugares onde se passa dessa forma:

 

Result.AppendChild(AddNode(tcInt, 'X27', 'qVol  ', 01, 15, 1, NFe.Transp.Vol.qVol, DSC_QVOL));

Acredito que para funcionar com quebra, deveria ser tcDe2, tcDe3, tcDe4, tcDe6, tcDe8 ou tcDe10

3 minutos atrás, BigWings disse:

Imprimir algo no DANFE diferente de como está no XML vai contra o manual e isso sim pode causar autuação.

Aqui nos casos em que o usuário insiste em mostrar a quantidade em M3 nos volumes transportados orientamos a informar multiplicado por 1000 e truncando as casas decimais.

Ex.:

10,83 M3 = 10830

2 M3 = 2000

5,8743 M3 = 5874

Dessa forma não deve ter problema com a fiscalização.

Este ainda não foi testado, mais não existirá problemas por causa da vírgula?

ONYX Tecnologia em Softwares
[ Simplicidade e Segurança ]
www.onyxsistemas.com
[email protected]
© ONYX Sistemas - Todos os Direitos Reservados

Link para o comentário
Compartilhar em outros sites

  • Moderadores
1 minuto atrás, onyxsistemas disse:

Result.AppendChild(AddNode(tcInt, 'X27', 'qVol  ', 01, 15, 1, NFe.Transp.Vol.qVol, DSC_QVOL));

Acredito que para funcionar com quebra, deveria ser tcDe2, tcDe3, tcDe4, tcDe6, tcDe8 ou tcDe10

O campo qVol no layout é numérico, não permite decimais.

Se alterar dessa forma você vai ter erro de validação por schemas.

Quantidade de volumes transportados não é o mesmo que quantidade transportada.

  • Curtir 1
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

2 minutos atrás, BigWings disse:

O campo qVol no layout é numérico, não permite decimais.

Se alterar dessa forma você vai ter erro de validação por schemas.

Quantidade de volumes transportados não é o mesmo que quantidade transportada.

Estou tentando obter o xml assinado e validado na sefaz com esses dados que o usuário esta tentando fazer devolução. um momento por favor.

ONYX Tecnologia em Softwares
[ Simplicidade e Segurança ]
www.onyxsistemas.com
[email protected]
© ONYX Sistemas - Todos os Direitos Reservados

Link para o comentário
Compartilhar em outros sites

Não confunda, itens transportado com a quantidade de algo.
Você transportar 1 volume que contem 13, 5 Mts Quadrado, mas sempre transporta 1 ou mais volumes, se você divide um volume ele passa a ser 2 volumes transportados.
Por isso que disse não existe meio volume em transporte, você esta confundindo as coisas.
Agora so para deixar mais claro olhe um pouco abaixo ai no manual o campo pesoL ou pesoB e tu vai ver que o tamanho vai estar 12v3 este numero depois do v indica a quantidade de casas decimais que o campo aceita, podendo ter varias tais como 3v2-4, que significa 3 casa numéricas e de 2 ate 4 casas decimais.

Sem título.png

Caso ainda tenha duvidas olha o que o manual diz sobre isso na pagina 231

Citar

h) Coluna tamanho: x-y(vz), onde x indica o tamanho mínimo e y o tamanho máximo; v, quando presente, indica a possibilidade de valores decimais (vírgula) e z indica
a quantidade máxima de casas decimais do campo; a existência de um único valor indica que o campo tem tamanho fixo, devendo-se informar a quantidade de
caracteres exigidos, preenchendo-se os zeros não significativos; tamanhos separados por vírgula indicam que o campo deve ter um dos tamanhos fixos da lista.

 

  • Curtir 2

 

Link para o comentário
Compartilhar em outros sites

19 minutos atrás, Rafael Dias disse:

Não confunda, itens transportado com a quantidade de algo.
Você transportar 1 volume que contem 13, 5 Mts Quadrado, mas sempre transporta 1 ou mais volumes, se você divide um volume ele passa a ser 2 volumes transportados.
Por isso que disse não existe meio volume em transporte, você esta confundindo as coisas.
Agora so para deixar mais claro olhe um pouco abaixo ai no manual o campo pesoL ou pesoB e tu vai ver que o tamanho vai estar 12v3 este numero depois do v indica a quantidade de casas decimais que o campo aceita, podendo ter varias tais como 3v2-4, que significa 3 casa numéricas e de 2 ate 4 casas decimais.

Sem título.png

Caso ainda tenha duvidas olha o que o manual diz sobre isso na pagina 231

 

Cara.. leia novamente minha mensagem, eu sei o que estou falando, em nenhum momento falei de pesos, digo porque tem uma nova válida com o qVol como double;

Tenho certeza que se os componentes de terceiros estão fazendo isso, a sefaz esta aceitando e provavelmente é com os mesmos schemas, algo esta errado, 

pode ser eles ou nós, mais também não custa verificar e fazer o componente crescer, a comunidade esta aqui para apoiar e ajudar no que for preciso e como puder, assim que possível posto o xml para a equipe técnica analisar;

1 minuto atrás, onyxsistemas disse:

Cara.. leia novamente minha mensagem, eu sei o que estou falando, em nenhum momento falei de pesos, digo porque tem uma nova válida com o qVol como double;

Tenho certeza que se os componentes de terceiros estão fazendo isso, a sefaz esta aceitando e provavelmente é com os mesmos schemas, algo esta errado, 

pode ser eles ou nós, mais também não custa verificar e fazer o componente crescer, a comunidade esta aqui para apoiar e ajudar no que for preciso e como puder, assim que possível posto o xml para a equipe técnica analisar;

digo: nota válida

ONYX Tecnologia em Softwares
[ Simplicidade e Segurança ]
www.onyxsistemas.com
[email protected]
© ONYX Sistemas - Todos os Direitos Reservados

Link para o comentário
Compartilhar em outros sites

Você esta falando besteira e não vamos perder nosso tempo com isso, o manual é claro que você esta errado, se a SEFAZ aceita problema dela nos seguimos o manual e por isso o topico esta encerrado.

Afinal você não tem inteligência para entender uma coisa simples e nem leu o que foi passado, se quiser altere localmente e use, a sua sugestão não vai ser aceita pois esta fora dos padrões especificados.

  • Curtir 2

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa noite Onyx,

Você alterou o componente para que a tag <qVol> seja gerada com 2 casas decimais, correto?

Gerou o XML e mandou imprimir o DANFE, correto?

Foi impresso da forma que o seu cliente deseja, correto?

Depois assinou e tentou validar, correto?

Ocorreu erro na validação?

Com certeza sim, pois veja como esta definido no schema da SEFAZ essa tag:

<xs:element name="qVol" minOccurs="0">
	<xs:annotation>
		<xs:documentation>Quantidade de volumes transportados</xs:documentation>
	</xs:annotation>
	<xs:simpleType>
		<xs:restriction base="xs:string">
			<xs:whiteSpace value="preserve"/>
			<xs:pattern value="[0-9]{1,15}"/>
		</xs:restriction>
	</xs:simpleType>
</xs:element>

Na linha:

<xs:pattern value="[0-9]{1,15}"/>

Esta claro que a tag <qVol> pode conter de 1 até 15 caracteres que estejam dentro do dominio [0-9], ou seja, somente dígitos.

Na linha a baixo é um patter de uma tag que aceita até 15 dígitos,  sendo 13 de corpo (parte inteira) e 2  decimais.

<xs:pattern value="0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?"/>

Deu para perceber bem a diferença.

Resumindo não ainda você fazer a alteração que você fez pois o Schema não vai aceitar um numero real onde se espera um numero inteiro.

Mas vamos em frente e atrás vem gente.

Mantenha a sua alteração e comente a linha que realiza a validação do XML, desta forma, não vai ocorrer o erro de validação e o XML vai ser enviado para a SEFAZ.

Veja a linha que deve ser comentada a baixo:

function TACBrNFe.Enviar(const ALote: String; Imprimir: Boolean; Sincrono: Boolean;
  Zipado: Boolean): Boolean;
var
  i: integer;
begin
  WebServices.Enviar.Clear;
  WebServices.Retorno.Clear;
  
  (...)

  NotasFiscais.Assinar;
//  NotasFiscais.Validar;     Linha comentada para não realizar a validação do XML antes do seu envio

  Result := WebServices.Envia(ALote, Sincrono, Zipado);

  (...)

  end;
end;

Se a SEFAZ aceitar a tag <qVol> como sendo um numero real em vez de inteiro, podemos concluir duas coisas:

1. A SEFAZ não valida essa informação, ela simplesmente trata ela como sendo uma simples string com no máximo 15 caracteres.

2. A SEFAZ valida essa informação, logo os schemas disponibilizados por ela a anos esta errado a definição dessa tag.

Estou ansioso em saber se a nota foi autorizada ou não.

  • Curtir 3
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1399 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.