OCA / l10n-brazil

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

[16.0][MIG] l10n_br_mis_report (continuação) #3343

Closed antoniospneto closed 2 days ago

antoniospneto commented 1 week ago

Continuação do #3079

Trabalho em andamento!

A principal refatoração necessária na versão 16.0 é devido à remoção do modelo de tipos de contas (account_type), que estava presente na localização brasileira na versão 14.0. Essa mudança pode ser observada na migração para a 16.0: commit de remoção.

Essa abordagem já havia sido discutida anteriormente, pois o uso de tipos de contas específicos na localização gerava conflitos com a forma nativa do Odoo de tratar as contas contábeis. Mais detalhes sobre essa discussão podem ser encontrados https://github.com/OCA/l10n-brazil/pull/1906.

A solução que proponho é duplicar os templates, criando um para cada plano de contas existente, e utilizar os prefixos da numeração das contas contábeis como identificadores, ao invés de depender dos tipos de contas. Essa abordagem é similar à utilizada na localização espanhola: exemplo da localização espanhola.

antoniospneto commented 1 week ago

Atualizei a descrição da PR com o que eu pretendo fazer

antoniospneto commented 1 week ago

Ainda não terminei, mas um dos relatórios já tá saindo:

image

rvalyi commented 1 week ago

Parece uma solução razoável. Uma outra solução porem poderia ser de usar os "account.group" do Odoo (no lugar dos tipos de contas que foram removidos) e definir os KPI no mis_builder em cima desse "account.group" (que poderiam ser introduzidos dentro do modulo l10n_br_coa).

O "problema" do account.group e que ele usa a numeração para dar match nas contas dos planos. Mas talvez a gente poderia definir os relatórios e grupos apenas para o plano genérico e falar pro usuário de editar os grupos e adaptar os números de inicio e fim para bater no plano de contas dele. Inclusive a gente poderia ter um botão ou algum hook para adaptar a numeração pro planos ITG1000 (e caso o usuário quiser usar vários planos no mesmo banco, ai sim ele deveria duplicar a definição dos relatorios mis).

Eu não pensei muito se seria melhor our não do que vc fez. Mas eu diria que temos que pensar para facilitar de adaptar os relatórios quando a empresa vai ter o próprio plano: ou ela editaria os KPI dos relatórios pro plano genérico, ou ela iria la nos grupos editar os prefixos dos grupos...

Existe também a possibilidade de usar account.tag, porem parece que a Odoo SA planejou os account.tax apenas para as taxas. De qualquer forma vale a pena dar uma olhada no que a Odoo documenta:

antoniospneto commented 1 week ago

Embora tenhamos um template de plano de contas predefinido, acredito que muitas empresas acabarão personalizando-o, já que cada uma tem suas particularidades. Além disso, muitas irão importar um plano de contas com sua própria numeração de um sistema anterior.

Como você mencionou, a alteração do template por um contador será algo tranquilo. Usar a numeração própria como identificador me parece mais natural para eles e facilita a conferência, pois elimina a necessidade de cruzar informações e verificar se a conta está associada à tag correta.

antoniospneto commented 1 week ago

@rvalyi

Acredito que o maior desafio dessa abordagem que estou seguindo aparece em ambientes multi-company, onde os planos de contas são estruturados de forma diferente, e as numerações não coincidem entre as empresas. Isso pode gerar complicações, a menos que as empresas do mesmo grupo compartilhem uma estrutura de numeração similar para os seus COAs.

Essa é a sua preocupação certo?

mileo commented 1 week ago

account.account.tag pode ser uma opção, ele esta presente nas contas e também nos produtos.

Mas ai seria interessante deixar todo o relatório em um formato só, para inclusive não confundir. Tb vale se servir de inspiração os novos reports do mis builder que sairam: https://github.com/OCA/account-financial-reporting/tree/16.0/mis_template_financial_report

rvalyi commented 1 week ago

depois de pensar melhor @antoniospneto eu acho que dessa forma como vc fez é da melhor forma mesmo. Qto tiver OK para revisar so avisar.

rvalyi commented 1 week ago

depois de pensar melhor @antoniospneto eu acho que dessa forma como vc fez é da melhor forma mesmo. Qto tiver OK para revisar so avisar.

Mas ai isso tb traz a pergunta, ainda serviria para alguma coisa os account.account.type que temos no l10n_br_coa https://github.com/OCA/l10n-brazil/blob/14.0/l10n_br_coa/data/account_type_data.xml ?

antoniospneto commented 1 week ago

depois de pensar melhor @antoniospneto eu acho que dessa forma como vc fez é da melhor forma mesmo. Qto tiver OK para revisar so avisar.

Mas ai isso tb traz a pergunta, ainda serviria para alguma coisa os account.account.type que temos no l10n_br_coa https://github.com/OCA/l10n-brazil/blob/14.0/l10n_br_coa/data/account_type_data.xml ?

acho que apenas para emitir esse relatório mesmo, mas não sei se vale a pena fazer o forwardport pra lá

rvalyi commented 1 week ago

depois de pensar melhor @antoniospneto eu acho que dessa forma como vc fez é da melhor forma mesmo. Qto tiver OK para revisar so avisar.

Mas ai isso tb traz a pergunta, ainda serviria para alguma coisa os account.account.type que temos no l10n_br_coa https://github.com/OCA/l10n-brazil/blob/14.0/l10n_br_coa/data/account_type_data.xml ?

acho que apenas para emitir esse relatório mesmo, mas não sei se vale a pena fazer o forwardport pra lá

Ah sim vc ainda tá usando esses account.account.type para alguns kpi, eu não tinha visto. Não entendi a sua colocação sobre o forward port. Será se serve tentar encaixar seu plano nesses tipo em vez de simplesmente usar a numeração nos kpi? Disclaimer: não pensei muito.

antoniospneto commented 1 week ago

Ah sim vc ainda tá usando esses account.account.type para alguns kpi, eu não tinha visto. Não entendi a sua colocação sobre o forward port. Será se serve tentar encaixar seu plano nesses tipo em vez de simplesmente usar a numeração nos kpi? Disclaimer: não pensei muito.

ah não, aqui na 16.0 não vai servir, é que eu não terminei o trabalho ainda, mas eu vou remover o uso deles, pelo menos os da localização que existia antes, vai ficar o uso apenas dos account.account.type nativos.

mileo commented 1 week ago

Continuação do #3079

Trabalho em andamento!

A principal refatoração necessária na versão 16.0 é devido à remoção do modelo de tipos de contas (account_type), que estava presente na localização brasileira na versão 14.0. Essa mudança pode ser observada na migração para a 16.0: commit de remoção.

Essa abordagem já havia sido discutida anteriormente, pois o uso de tipos de contas específicos na localização gerava conflitos com a forma nativa do Odoo de tratar as contas contábeis. Mais detalhes sobre essa discussão podem ser encontrados #1906.

A solução que proponho é duplicar os templates, criando um para cada plano de contas existente, e utilizar os prefixos da numeração das contas contábeis como identificadores, ao invés de depender dos tipos de contas. Essa abordagem é similar à utilizada na localização espanhola: exemplo da localização espanhola.

Duplicar os templates e usar a numeração faz tb com que a explicação / customização por parte do cliente fique em mais simples. Alem de ser simples de adaptar para um plano de contas novo.

antoniospneto commented 5 days ago

PR pronta para revisão.

Aproveitei para fazer melhorias no README, adicionando algumas observações importantes.

Durante a migração do módulo, percebi que esses relatórios estão um pouco defasados. No futuro, seria interessante reestruturá-los, já que o documento ITG 1000 fornece modelos distintos para Empresas de Pequeno Porte e Microentidades. Seria ideal replicar essa distinção aqui.

O mesmo vale para os planos de contas. Atualmente, existem dois planos de contas (COAs), mas ambos atendem tanto Empresas de Pequeno Porte quanto Microentidades, sem seguir o plano de contas sugerido pelo ITG 1000. Penso que poderíamos substituir os planos de contas l10n_br_coa_generic e l10n_br_coa_simples pelos seguintes:

l10n_br_coa_sb: para Empresa de Pequeno Porte (Small Business) l10n_br_coa_me: para Microentidades (Microentity)

Sobre a classificação do porte da empresa e as normas aplicáveis, segue um trecho do ITG 1000:

Definição do Tipo de Entidade e Normas Aplicáveis

  1. Para fins das Normas Brasileiras de Contabilidade, considera-se:

    a) Empresa de grande porte: a Sociedade de Grande Porte definida nos termos do Parágrafo único do art. 3º da Lei nº 11.638/2007, ou seja, que tenha receita bruta superior a R$ 300.000.000,00 ou ativos superiores a R$ 240.000.000,00 no exercício anterior;

    b) Empresa de médio porte: a entidade cuja receita bruta do exercício anterior tenha sido superior a R$ 78.000.000,00 e igual ou inferior a R$ 300.000.000,00;

    c) Pequena Empresa: a entidade cuja receita bruta do exercício anterior tenha sido superior a R$ 4.800.000,00 e igual ou inferior a R$ 78.000.000,00; e

    d) Microentidade: a entidade cuja receita bruta do exercício anterior tenha sido igual ou inferior a R$ 4.800.000,00.

  2. As Normas Brasileiras de Contabilidade Completas devem ser adotadas pelas empresas de grande porte e por quaisquer entidades que possuam obrigação pública de prestação de contas, nos termos do item 1.3 da NBC TG 1000.

  3. A NBC TG 1000 – Contabilidade para Médias Empresas deve ser adotada pelas empresas de médio porte, ressalvada a hipótese de adoção das Normas Brasileiras de Contabilidade Completas.

  4. A NBC TG 1001 – Contabilidade para Pequenas Empresas deve ser adotada pelas pequenas empresas, ressalvada a hipótese de adoção das normas de que tratam os itens 6 ou 7.

  5. A NBC TG 1002 – Contabilidade para Microentidades deve ser adotada pelas microentidades, ressalvada a hipótese de adoção das normas de que tratam os itens 6, 7 ou 8.

  6. A pequena empresa e a microentidade qualificadas como companhia fechada ou sujeitas à tributação com base no lucro real deverão seguir o que determina a Lei nº 6.404/76 e assim aplicar a norma contábil mais adequada.

  7. Os limites de R$4.800.000,00 e R$78.000.000,00, previstos nas alíneas “b” a “d” do item 5, estão vinculados, respectivamente, ao inciso II do art. 3º da Lei Complementar nº 123/2006 e ao limite do Lucro Presumido de que trata o art. 13 da Lei nº 9.718/1998. Ocorrendo a alteração de tais limites, ela também será considerada para fins de categorização das entidades, independentemente da atualização das NBC TG 1001, NCT TG 1002 e desta Interpretação.

Para mais informações, o documento completo pode ser acessado em: https://cfc.org.br/tecnica/normas-brasileiras-de-contabilidade/normas-simplificadas-para-pmes/

OCA-git-bot commented 2 days ago

This PR has the approved label and has been created more than 5 days ago. It should therefore be ready to merge by a maintainer (or a PSC member if the concerned addon has no declared maintainer). 🤖

marcelsavegnago commented 2 days ago

/ocabot merge nobump

OCA-git-bot commented 2 days ago

What a great day to merge this nice PR. Let's do it! Prepared branch 16.0-ocabot-merge-pr-3343-by-marcelsavegnago-bump-nobump, awaiting test results.

OCA-git-bot commented 2 days ago

Congratulations, your PR was merged at 41d0ff7fd2d03c14ff01b12f1c5afe9112ccd49f. Thanks a lot for contributing to OCA. ❤️