O que diz a mensagem e quando surge
O que significa exatamente a mensagem?
O Octopia Connector verifica os impostos de uma oferta da Octopia. Se um imposto for do tipo percentagem e o seu valor ficar fora do intervalo, o Odoo mostra O imposto … é uma taxa, expressa em percentagem entre 0 e 100 (20 significa 20%%). Recebido: …. (Tax … is a Rate, expressed as a percentage between 0 and 100 (20 means 20%%). Got ….). O primeiro espaço leva o código do imposto e o segundo, o valor que estava na linha ao tentar guardar. O aviso interrompe a ação: a ficha não é guardada.

Com que condição surge?
É uma verificação feita ao guardar que analisa dois campos: Tipo de imposto (Tax Type) e Valor (Value). Dispara quando se cumprem em simultâneo duas coisas: o tipo é Taxa (percentagem) (Rate (percentage)) e o valor não está entre 0 e 100. Com essa combinação, não é possível guardar a ficha. Os dois campos veem-se no separador Impostos (Taxes), dentro da tabela Impostos da oferta (Offer Taxes).

Tipo de imposto e Valor e a mensagem de erro. Os rótulos estão em inglês, o texto original do módulo.O 0 e o 100 são aceites?
A condição só dispara quando o valor fica fora do intervalo, pelo que 0 e 100 passam a verificação. Um valor negativo ou superior a 100 num imposto de tipo percentagem dispara-a.
Afeta também os impostos de tipo montante?
Não: a condição exige que o tipo seja Taxa (percentagem). Um imposto com Montante (moeda) (Amount (currency)) não passa por este intervalo. A ajuda de Tipo de imposto explica que a Octopia distingue uma taxa de um montante fixo: o IVA chega como código VAT, tipo Rate e valor 0,2, e a EcoTax chega como tipo Amount e valor 0.

Como corrigi-lo
O que faço quando aparece?
Anota o código do imposto e o valor que a mensagem indica. Abre o separador Impostos, localiza na tabela Impostos da oferta a linha com esse código e vê o Tipo de imposto. Se for Taxa (percentagem), corrige o Valor para que fique entre 0 e 100, com a percentagem tal como é: 20 para 20%. Se na realidade esse imposto for um montante fixo, como a EcoTax do exemplo da ajuda, o tipo correto é Montante (moeda). Depois, guarda outra vez.
O que escrevo para um IVA de 20%: 20 ou 0,2?
Escreve 20. A ajuda de Valor diz que, para uma taxa, é uma percentagem: 20 para um IVA de 20%. A ajuda acrescenta que a API da Octopia é assimétrica: enviar 20 guarda 0,2 e, ao reler a oferta, devolve 0,2, e que o conector conserva a percentagem legível e converte ao importar, de modo que o que escreves é o que queres dizer. Atenção ao 0,2: está entre 0 e 100, pelo que a verificação não o trava, mas também não é o que a ajuda pede. O erro não te protege nesse caso, e por isso convém escrever sempre a percentagem completa.
Perde-se alguma coisa quando surge o erro?
A ação é interrompida e a alteração que ias guardar não é guardada. Não há nada a desfazer: corrige o valor e guarda de novo. Enquanto a linha continuar com um valor fora do intervalo, a mensagem voltará a surgir sempre que tentares.
Versões, custo e ajuda
Surge em todas as versões do Odoo?
O módulo está publicado no Odoo Apps para 17.0, 18.0, 19.0 e 20.0, e a mensagem, com esse texto, está no código publicado dessas quatro ramificações. A condição que te expliquei é a do código do Odoo 20.0.
Quanto custa o módulo e onde posso pedir ajuda?
O módulo é de pagamento único por versão do Odoo e necessita da subscrição do FlexigoTech Cloud: plano Conector, 49 €/mês ou 490 €/ano sem IVA, com até 3 contas da plataforma. Se estás a implementar o Odoo e queres rever como se configuram os impostos das tuas ofertas, a FlexigoTech implementa o Odoo 17, 18, 19 e 20 e desenvolve conectores e integrações à medida. Se o erro que encontras é de outro botão, vê o artigo sobre o botão de enviar para a Octopia ou o do botão de importar.
Continue a ler
Verificado no código do conector (versão 20.0) e nas fontes indicadas
Fontes
- Código do módulo: flexigobe_octopia_connector 20.0 (4848da6a): models/octopia_offer.py
- apps.odoo.com/apps/modules/20.0/flexigobe_octopia_connector
- flexigotech.com/precios.html
- flexigotech.com/en/services.html
