OCA / l10n-brazil

Localização brasileira oficial do Odoo.
https://odoo-community.org/psc-teams/brazil-66
GNU Affero General Public License v3.0
247 stars 246 forks source link

Impossibilidade de informar NCM com inicio em 09.. #3095

Closed crsilveira closed 2 weeks ago

crsilveira commented 5 months ago

Ao tentar cadastrar um produto com NCM iniciado em 09, o mesmo é alterado para 00000, tipo Serviço. ksnip_20240524-100413 ksnip_20240524-100438

crsilveira commented 5 months ago

Isso é causado por isso: PRODUCT_FISCAL_TYPE_SERVICE = "09".

@api.onchange("ncm_id", "fiscal_genre_id")
def _onchange_ncm_id(self):
     ....
     if r.fiscal_genre_id.code == PRODUCT_FISCAL_TYPE_SERVICE:
            r.ncm_id = self.env.ref(NCM_FOR_SERVICE_REF)
antoniospneto commented 5 months ago

Boa observação, @crsilveira.

Parece que houve um equívoco na implementação deste código. O PRODUCT_FISCAL_TYPE_SERVICE foi utilizado para tratar do código de serviço no campo fiscal_type, onde realmente, para serviços, o valor é "09". No entanto, ao considerar o campo fiscal_genre_id, que representa o "Código do Gênero Fiscal" e é uma classificação distinta, o código correto para serviço é "00".

Sugiro criar uma nova constante chamada FISCAL_GENRE_SERVICE com o valor "00" e substituir as ocorrências pertinentes no código.

Você consegue propor uma PR com essa correção?

crsilveira commented 5 months ago

sim , vou fazer.

crsilveira commented 5 months ago

Parece q o problema é somente no onchange do ncm_id :

aqui : if r.fiscal_genre_id.code == PRODUCT_FISCAL_TYPE_SERVICE: r.ncm_id = self.env.ref(NCM_FOR_SERVICE_REF)

assim , resolveria : if r.fiscal_type == PRODUCT_FISCAL_TYPE_SERVICE: r.ncm_id = self.env.ref(NCM_FOR_SERVICE_REF)

obviamente, com o código assim, se o tipo fiscal(fiscal_type) for Serviço, não será aceito nenhum outro NCM , somente o NCM_FOR_SERVICE_REF, posso fazer assim ?

antoniospneto commented 5 months ago

Parece q o problema é somente no onchange do ncm_id :

aqui : if r.fiscal_genre_id.code == PRODUCT_FISCAL_TYPE_SERVICE: r.ncm_id = self.env.ref(NCM_FOR_SERVICE_REF)

assim , resolveria : if r.fiscal_type == PRODUCT_FISCAL_TYPE_SERVICE: r.ncm_id = self.env.ref(NCM_FOR_SERVICE_REF)

obviamente, com o código assim, se o tipo fiscal(fiscal_type) for Serviço, não será aceito nenhum outro NCM , somente o NCM_FOR_SERVICE_REF, posso fazer assim ?

Parece q o problema é somente no onchange do ncm_id :

aqui : if r.fiscal_genre_id.code == PRODUCT_FISCAL_TYPE_SERVICE: r.ncm_id = self.env.ref(NCM_FOR_SERVICE_REF)

assim , resolveria : if r.fiscal_type == PRODUCT_FISCAL_TYPE_SERVICE: r.ncm_id = self.env.ref(NCM_FOR_SERVICE_REF)

obviamente, com o código assim, se o tipo fiscal(fiscal_type) for Serviço, não será aceito nenhum outro NCM , somente o NCM_FOR_SERVICE_REF, posso fazer assim ?

Me parece uma boa, pra mim tá OK

antoniospneto commented 2 weeks ago

Resolvido em #3469