-
-
Notifications
You must be signed in to change notification settings - Fork 247
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
[14.0][IMP] l10n_br_account_withholding: handling of partner_id assignment #3181
base: 14.0
Are you sure you want to change the base?
[14.0][IMP] l10n_br_account_withholding: handling of partner_id assignment #3181
Conversation
Hi @marcelsavegnago, @renatonlima, |
ea2b75c
to
f8c3192
Compare
@rvalyi @antoniospneto @renatonlima .. Para esta questão estamos criando um campo em res.city para informar o parceiro de retenção. Se por acaso ter este dado na cidade ou até mesmo no estado e pais for algo seja valido deixar direto no fiscal, podemos implementar lah... mas por ora estamos implementando pelo modulo wh. Falo disso porque hoje no fiscal existe o campo partner wh no fiscal group. O que tbm podemos retirar no fiscal e mover para o modulo wh. |
f8c3192
to
a39bdc5
Compare
c79e222
to
4565721
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Revisão técnica apenas, mas me parece tudo ok
@Matthwhy faça uma revisão funcional e evidencie aqui por favor |
@marcelsavegnago será que não é interessante já aproveitar e exibir no modelo do parceiro, a relação com a cidade do imposto retido? já que essa relação já vai existir no banco de dados |
Vc fala por exemplo, no cadastro da prefeitura aparecer as cidades que ele é parceiro de imposto retido ? |
Olá Neto, não sei se faz sentido cadastrar uma lista de municípios e/ou parceiros em um parceiro, pois não é limitado no momento do cadastro. E pode criar uma restrição na necessidade de outros cadastros. A proposta desta PR é incluir um parceiro vinculado ao município (res.city), pois quando o tomador seleciona o município em que o serviço foi executado (na guia ISSQN). Este parceiro deverá ser a prefeitura do município. A questão é que o módulo l10n_br_account_withhoding gera uma fatura para pagar o ISS desta retenção, e o parceiro deve ser o da PREFEITURA do município selecionado na fatura. Obs. O município não tem uma relação direta com o parceiro (fornecedor) mas ao município em que foi prestado o serviço, que deve ser selecionado na criação da fatura de fornecedor. Acho que é isso que eu entendi da sua ideia Neto... :-) |
@kaynnan uma proposta: |
Oi Douglas, entendi a sua explicação e a proposta da PR. A minha sugestão é aproveitar o vínculo do res_partner (prefeitura) com o city_id para exibi-lo também na visão do res.partner. Com isso, ao abrir o cadastro da Prefeitura, será possível visualizar as cidades associadas a ela para fins de retenção de impostos. Na PR, está sendo feito: class ResCity(models.Model):
_inherit = "res.city"
partner_wh_id = fields.Many2one(
comodel_name="res.partner",
string="WH Partner",
help="Partner associated with this city for withholding tax purposes",
) Para complementar, sugiro adicionar o seguinte código no modelo res.partner: class ResPartner(models.Model):
_inherit = 'res.partner'
city_wh_ids = fields.One2many(
comodel_name="res.city",
inverse_name="partner_wh_id",
string="Cities with WH",
help="Cities associated with this partner for withholding tax purposes",
) Mas é só uma sugestão, não tem necessidade ok |
4565721
to
97e8748
Compare
Baseado no modelo Gostaria de pedir a revisão e o feedback de vocês sobre esta mudança, incluindo sugestões para melhorar o nome do wizard e quaisquer outras melhorias pertinentes. |
bab9d3d
to
6eb098a
Compare
Achei interessante a proposta, legal do campo ser um boleano, só achei estranho o wizard, sendo que só tem uma opção para selecionar que é Prefeitura. |
Essa questão de somente uma seleção existente é por conta de ser uma ideia inicial, então mais para frente permitirá o pessoal adicionar outras seleções como Estado, Governo, tratando essas novas seleções no módulo, por momento seria destinada somente ao Munícipio mesmo |
@kaynnan nao sei se precisa de wizard para isso nao.. E talvez caberia implementar os campos parceiropara pagamento de tributos na cidade, estado e pais independente do imposto ser retido ou não. Hoje fariamos uso para as retenções mas amanha poderia ser utilizado para geração de pagamentos de tributos por algum outro modulo. Então pensando nisso talvez este campo parceiro nos modelos res.city res.state e res.country junto com um botão no cadastro do parceiro par amostar as cidades, estados e paises que ele está associado neste campo tax_partner_id ou similar e que soh aparece se houver relação. Em tese o parceiro para quem vou pagar um imposto retido é o mesmo que vou pagar um imposto nao retido. @rvalyi @antoniospneto oq acham ? |
por mim pode ser sim |
Olá pessoal, Eu não acho uma boa ideia incluir o um campo partner_id no res.city porque são 5.568 municípios e mesmo que uma empresa prestar serviço que seja para 10, 20, 30 empresas já vai ser um trabalho manual A minha sugestão O grupo de impostos atual existe um campo para definir se aquele tributo é federal, estadual ou municipal e existe um campo para definir o parceiro que ira recolher o imposto Ao invés de usar um campo no res.city ou ter algum flag no res.partner, poderíamos aproveitar essas informações no grupo de impostos e no caso do parceiro, ter um parceiro pai "Prefeitura Municipal" E criar outros parceiros filhos desse parceiro para cada prefeitura Inclusive em uma importação de uma NFS-e caso a prefeitura do município não esteja criada, é possível criar automáticamente sem depender de uma configuração manual e nesse caso também é possível ter uma validação para que se o parceiro pai está sendo usado em um grupo de impostos e o tipo de imposto é municipal não deixar gravar dois parceiros com o mesmo estado e município. Essa lógica também poderia ser feita para os impostos estaduais, onde teria um parceiro pai "Secretaria da Fazenda" e ter parceiros filhos "Secretaria da Fazenda ESTADO". |
@renatonlima, eu não gosto muito da ideia de ter que cadastrar a prefeitura vinculada a outro parceiro. Estava pensando na possibilidade de criar uma flag no partner sinalizando se é um parceiro de imposto municipal, estadual, país e criar talvez uma restrição permitindo apenas um parceiro com essa flag ativa para cada cidade, estado ou país. Assim, deixamos o parceiro padrão configurado no grupo de imposto, mas, na lógica do módulo, colocamos a verificação da cidade onde o imposto incide (no caso ISS). Se houver um parceiro com a flag ativa naquela cidade, a fatura será gerada para esse parceiro, em vez do parceiro padrão. O que acha ? Se for o caso ainda incluimos um parametro no grupo do imposto sinalizando se esta busca pelo parceiro com base neste flag deve ser feita. |
6eb098a
to
b945db0
Compare
Pessoal, seguindo a lógica mencionada pelo @marcelsavegnago na última mensagem, atualizei o commit para incluir esse campo booleano. Como inicialmente a ideia seria aplicável para o caso de Cidades, acrescentei um |
fd56492
to
08e8a59
Compare
08e8a59
to
ca2c6d2
Compare
ca2c6d2
to
acf5214
Compare
35b42df
to
2787842
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
verificar os testes
2787842
to
6ecbd56
Compare
Realizei o rebase aqui, acredito que os testes normalizem, mas o codecov deve reportar um percentual baixo, em breve realizo outro commit para que o percentual seja alcançado corretamente. |
1170574
to
72fbcda
Compare
Finalizado os testes unitários |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[FUNCTIONAL REVIEW]
Criação do Parceiro Prefeitura de São Paulo
Configuração do Grupo de Imposto ISSQN RET
Teste 1 - Bill com ISSQN RET, Parceiro com cidade sem prefeitura cadastrada no sistema (Rio de Janeiro) e linha sem cidade do ISSQN:
Fatura de Retenção com o Parceiro definido no grupo de imposto:
Teste 2 - Bill com ISSQN RET, Parceiro com cidade que tem prefeitura cadastrada no sistema (São Paulo) e linha sem cidade do ISSQN:
Fatura de Retenção com o Parceiro (Prefeitura) localizada através da cidade do parceiro:
Teste 3 - Bill com ISSQN RET, Parceiro com cidade que sem prefeitura cadastrada no sistema (Porto Alegre) mas com a cidade do ISSQN (São Paulo) preenchida na linha:
Fatura de Retenção com o Parceiro (Prefeitura) localizada através da cidade do ISSQN preenchida na linha (São Paulo):
LGTM
This PR has the |
72fbcda
to
eb837c6
Compare
Commit para adicionar informações sobre a utilização da Prefeitura para o ISSQN e seu respectivo funcionamento. |
eb837c6
to
60a67cf
Compare
60a67cf
to
492027d
Compare
cc @marcelsavegnago @douglascstd @WesleyOliveira98 @Matthwhy
Esta PR introduz a lógica para determinar o partner_id com base no campo cidade do ISSQN. Quando a cidade do ISSQN está especificada na linha de itens da fatura, o partner_id é definido pelo partner_wh_id associado a essa cidade no modelo
res.city
, permitindo identificar entidades como a Prefeitura de São Paulo. Antes de atribuir o partner_id, valida-se se há um partner_wh_id definido para a cidade no modelores.city
. Caso não haja, o partner_id é obtido através do l10n_br_fiscal.tax.group. Se a cidade do ISSQN não estiver preenchida na linha de itens da fatura, o partner_id é obtido com base na cidade do Parceiro da fatura de retenção.