Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP]l10n_br_cte - test #3482

Open
wants to merge 28 commits into
base: 14.0
Choose a base branch
from

Conversation

marcelsavegnago
Copy link
Member

No description provided.

@OCA-git-bot
Copy link
Contributor

Hi @renatonlima, @rvalyi,
some modules you are maintaining are being modified, check this out!

@marcelsavegnago
Copy link
Member Author

tpServ - GTV

<xs:element name="tpServ">
	<xs:annotation>
		<xs:documentation>Tipo do Serviço</xs:documentation>
		<xs:documentation>Preencher com: 

9 - GTV</xs:documentation>
	</xs:annotation>
	<xs:simpleType>
		<xs:restriction base="xs:string">
			<xs:whiteSpace value="preserve"/>
			<xs:enumeration value="9"/>
		</xs:restriction>
	</xs:simpleType>
</xs:element>

tpServ - CTe Simplificado

<xs:element name="tpServ">
	<xs:annotation>
		<xs:documentation>Tipo do Serviço</xs:documentation>
		<xs:documentation>Preencher com: 
0 - Normal;
1 - Subcontratação;
2 - Redespacho;</xs:documentation>
	</xs:annotation>
	<xs:simpleType>
		<xs:restriction base="xs:string">
			<xs:whiteSpace value="preserve"/>
			<xs:enumeration value="0"/>
			<xs:enumeration value="1"/>
			<xs:enumeration value="2"/>
		</xs:restriction>
	</xs:simpleType>
</xs:element>

tpServ - CTe Normal

<xs:element name="tpServ">
	<xs:annotation>
		<xs:documentation>Tipo do Serviço</xs:documentation>
		<xs:documentation>Preencher com: 
0 - Normal;
1 - Subcontratação;
2 - Redespacho;
3 - Redespacho Intermediário; 
4 - Serviço Vinculado a Multimodal</xs:documentation>
	</xs:annotation>
	<xs:simpleType>
		<xs:restriction base="xs:string">
			<xs:whiteSpace value="preserve"/>
			<xs:enumeration value="0"/>
			<xs:enumeration value="1"/>
			<xs:enumeration value="2"/>
			<xs:enumeration value="3"/>
			<xs:enumeration value="4"/>
		</xs:restriction>
	</xs:simpleType>
</xs:element>		

tpServ - CTeOS

<xs:element name="tpServ">
	<xs:annotation>
		<xs:documentation>Tipo do Serviço</xs:documentation>
		<xs:documentation>Preencher com: 

6 - Transporte de Pessoas;
7 - Transporte de Valores;
8 - Excesso de Bagagem.</xs:documentation>
	</xs:annotation>
	<xs:simpleType>
		<xs:restriction base="xs:string">
			<xs:whiteSpace value="preserve"/>
			<xs:enumeration value="6"/>
			<xs:enumeration value="7"/>
			<xs:enumeration value="8"/>
		</xs:restriction>
	</xs:simpleType>
</xs:element>							

Temos o campo tpServ em 4 modelos diferentes. Este campo é um selection e que depende de uma constante, veja como ficou a constante:

https://github.com/akretion/nfelib/blob/b4bcd6c9b2d20e8aaa1a3b71550b24a807f55f8d/nfelib/cte/bindings/v4_0/cte_tipos_basico_v4_00.py#L290

class IdeTpServ(Enum):
    VALUE_9 = "9"

"Tipo do Serviço"
IDE_TPSERV = [
    ("9", "9"),
]

Enfim, pelo que entendi ao gerar os arquivos via xsdata, o mesmo assumiu o valor do tipo de serviço que apareceu a primeira vez. Isso pode ter acontecido em outros casos tbm. Consequentemente ao gerar os arquivos para o Odoo, a constante utilizada pelo campo cte40_tpServ tem apenas a opcao 9 disponivel ao invés de 0,1,2,3,4 que seria o caso do CT-e Normal.

cc @rvalyi

@rvalyi
Copy link
Member

rvalyi commented Nov 9, 2024

@marcelsavegnago muito boa essa sua colocação. Pelo jeito parece bug do xsdata mesmo... Vale a pena dar uma busca nos issues to xsdata para ver se isso não foi reportado já...

Eu vejo varias saídas:

  • corrigir o bug no xsdata (pode ser difícil) ou achar uma PR que resolve
  • reportar o bug no xsdata
  • fazer um patch no nfelib/cte. Eu não vejo grande problema se for um patch limitado e documentado.
  • fazer uma gambiarra na nfelib ou no l10n_br_cte para corrigir o valor do campo tpServ ao serializar ou ao importar. Eu imagino que não seja tão difícil.
  • vale a pena tentar uma deteção sistematica para ver se teria outros casos do mesmo tipo.
  • a gente ainda poderia cogitar usar a funcionalidade do XSDATA_SKIP do xsdata-odoo para filtrar algumas classes da geração como eu fiz para as tags de impostos na NFe https://github.com/OCA/l10n-brazil/tree/14.0/l10n_br_nfe_spec#gera%C3%A7%C3%A3o porem na melhor das hipoteses isso afetaria apenas a geração dos mixins Odoo e não dos bindings do nfelib...

Para a NFe eu tive que fazer uma pequena alteração no xsdata akretion/nfelib#40 . Considerando que a CT-e é quase tão complexa qto à NF-e não me surpreende se temos que resolver um detalhe ou outro no xsdata.

Valeu pelo trabalho com a CTe!

@marcelsavegnago
Copy link
Member Author

  • fazer um patch no nfelib/cte. Eu não vejo grande problema se for um patch limitado e documentado.

Eu nao vejo problema em fazer a correção no nfelib e ainda temos pequenos detalhes para incluir. O problema que hoje estamos travados na versão 2.0.7. Indo para a ultima entendo que já facilita bem.

@marcelsavegnago marcelsavegnago force-pushed the 14.0-add-l10n_br_cte-rebased-versao-sem-commits-l10n_br_cte_spec-voltando-cte_spec branch from 8a90012 to be9a1c1 Compare November 9, 2024 20:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants