Skip to content

Commit

Permalink
[REF+IMP] l10n_br_sale_stock: Extract new module
Browse files Browse the repository at this point in the history
  • Loading branch information
mbcosta committed Oct 28, 2024
1 parent e81bb43 commit beb467b
Show file tree
Hide file tree
Showing 15 changed files with 510 additions and 442 deletions.
10 changes: 10 additions & 0 deletions l10n_br_sale_stock/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,16 @@ No configuration required.
Changelog
=========

14.0.2.0.0 (2024-04-26)
~~~~~~~~~~~~~~~~~~~~~~~
* [REF] Extraction to module sale_stock_picking_invoicing
https://github.com/OCA/account-invoicing/pull/1025

14.0.1.0.0 (2022-09-16)
~~~~~~~~~~~~~~~~~~~~~~~

* [MIG] Migration to version 14.0

12.0.1.0.0 (2020-05-29)
~~~~~~~~~~~~~~~~~~~~~~~

Expand Down
9 changes: 2 additions & 7 deletions l10n_br_sale_stock/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,13 @@
"license": "AGPL-3",
"author": "Akretion, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/l10n-brazil",
"version": "14.0.1.4.0",
"version": "14.0.2.0.0",
"maintainers": ["renatonlima", "mbcosta"],
"depends": [
"sale_stock",
"sale_stock_picking_invoicing",
"l10n_br_sale",
"l10n_br_stock_account",
],
"data": [
"views/res_company_view.xml",
"views/res_config_settings_view.xml",
"views/sale_order_view.xml",
],
"demo": [
"demo/l10n_br_sale_stock_demo.xml",
"demo/sale_order_demo.xml",
Expand Down
322 changes: 237 additions & 85 deletions l10n_br_sale_stock/demo/sale_order_demo.xml

Large diffs are not rendered by default.

39 changes: 39 additions & 0 deletions l10n_br_sale_stock/migrations/14.0.2.0.0/pre-migration.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Copyright (C) 2024-Today - Akretion (<http://www.akretion.com>).
# @author Magno Costa <[email protected]>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from openupgradelib import openupgrade

_column_renames = {
"res_company": [
("sale_create_invoice_policy", "sale_invoicing_policy"),
],
}


@openupgrade.migrate(use_env=True)
def migrate(env, version):
if openupgrade.column_exists(env.cr, "res_company", "sale_create_invoice_policy"):
openupgrade.logged_query(
env.cr,
"""
UPDATE res_company
SET sale_invoicing_policy = sale_create_invoice_policy;
""",
)

# Apagando campos para evitar mensagem 'HINT ...'
# Deleting field res.company.sale_create_invoice_policy
# (hint: fields should be explicitly removed by an upgrade script)
openupgrade.logged_query(
env.cr,
"""
DELETE FROM ir_model_fields WHERE name = 'sale_create_invoice_policy'
""",
)
openupgrade.logged_query(
env.cr,
"""
DELETE FROM ir_model_fields WHERE name = 'button_create_invoice_invisible'
""",
)
32 changes: 1 addition & 31 deletions l10n_br_sale_stock/models/sale_order.py
Original file line number Diff line number Diff line change
@@ -1,42 +1,12 @@
# Copyright (C) 2020 Magno Costa - Akretion
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html

from odoo import api, fields, models
from odoo import api, models


class SaleOrder(models.Model):
_inherit = "sale.order"

# Make Invisible Invoice Button
button_create_invoice_invisible = fields.Boolean(
compute="_compute_get_button_create_invoice_invisible"
)

@api.depends("state", "order_line.invoice_status")
def _compute_get_button_create_invoice_invisible(self):
button_create_invoice_invisible = False

lines = self.order_line.filtered(
lambda line: line.invoice_status == "to invoice"
)

# Somente depois do Pedido confirmado o botão pode aparecer
if self.state != "sale":
button_create_invoice_invisible = True
else:
if self.company_id.sale_create_invoice_policy == "stock_picking":
# A criação de Fatura de Serviços deve ser possível via Pedido
if not any(line.product_id.type == "service" for line in lines):
button_create_invoice_invisible = True
else:
# No caso da Politica de criação baseada no Pedido de Venda
# qdo acionado o Botão irá criar as Faturas automaticamente
# mesmo no caso de ter Produtos e Serviços
if not lines:
button_create_invoice_invisible = True

self.button_create_invoice_invisible = button_create_invoice_invisible

@api.onchange("partner_shipping_id")
def _onchange_partner_shipping_id(self):
"""
Expand Down
39 changes: 1 addition & 38 deletions l10n_br_sale_stock/models/sale_order_line.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# Copyright (C) 2021 Magno Costa - Akretion
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html

from odoo import api, models
from odoo import models


class SaleOrderLine(models.Model):
Expand All @@ -19,40 +19,3 @@ def _prepare_procurement_values(self, group_id=False):
values["invoice_state"] = "2binvoiced"

return values

# no trigger product_id.invoice_policy to avoid retroactively changing SO
@api.depends("qty_invoiced", "qty_delivered", "product_uom_qty", "order_id.state")
def _get_to_invoice_qty(self):
"""
Compute the quantity to invoice. If the invoice policy is order,
the quantity to invoice is calculated from the ordered quantity.
Otherwise, the quantity delivered is used.
"""
result = super()._get_to_invoice_qty()

for line in self:
if line.order_id.state in ["sale", "done"]:
if line.product_id.invoice_policy == "order":
if (
line.order_id.company_id.sale_create_invoice_policy
== "stock_picking"
and line.product_id.type == "product"
):
# O correto seria que ao selecionar
# sale_create_invoice_policy 'stock_picking' os
# produtos tenham o campo invoice_policy definidos para
# 'delivery', porém para evitar que seja criada uma
# Fatura a partir do Pedido de Venda estamos
# alterando isso mesmo para os produtos definidos com
# 'order', já que a Politica de Criação da Fatura no
# caso do Tipo Produto está definida para ser a
# partir do stock.picking .
# TODO: Essa seria a melhor opção ? Por enquanto pelo
# que vi para ter o mesmo resultado, que é no caso
# sale_create_invoice_policy 'stock_picking' só ser
# possível criar a partir do sale.order Faturas das
# linhas que sejam type service sim, a outra opção
# seria sobre escrever o metodo action_invoice_create
# sem ser possível chamar o super.
line.qty_to_invoice = 0
return result
11 changes: 0 additions & 11 deletions l10n_br_sale_stock/models/stock_move.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,6 @@
class StockMove(models.Model):
_inherit = "stock.move"

def _get_price_unit_invoice(self, inv_type, partner, qty=1):
result = super()._get_price_unit_invoice(inv_type, partner, qty)
# Caso tenha Sale Line já vem desagrupado aqui devido ao KEY
if len(self) == 1:
# Caso venha apenas uma linha porem sem
# sale_line_id é preciso ignora-la
if self.sale_line_id and self.sale_line_id.price_unit != result:
result = self.sale_line_id.price_unit

return result

def _get_new_picking_values(self):
# IMPORTANTE: a sequencia de update dos dicionarios quando o
# partner_shipping_id é diferente, o metodo do fiscal está
Expand Down
13 changes: 0 additions & 13 deletions l10n_br_sale_stock/models/stock_picking.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,6 @@
class StockPicking(models.Model):
_inherit = "stock.picking"

def _get_partner_to_invoice(self):
"""
If the partner has some invoicing contact defined
partner_invoice_id is auto filled, but it can also be changed.
partner_invoice_id is used if different from partner_id
"""
self.ensure_one()
partner_id = super()._get_partner_to_invoice()
if self.sale_id:
if partner_id != self.sale_id.partner_invoice_id.id:
partner_id = self.sale_id.partner_invoice_id.id
return partner_id

def _get_fiscal_partner(self):
self.ensure_one()
partner = super()._get_fiscal_partner()
Expand Down
10 changes: 10 additions & 0 deletions l10n_br_sale_stock/readme/HISTORY.rst
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
14.0.2.0.0 (2024-04-26)
~~~~~~~~~~~~~~~~~~~~~~~
* [REF] Extraction to module sale_stock_picking_invoicing
https://github.com/OCA/account-invoicing/pull/1025

14.0.1.0.0 (2022-09-16)
~~~~~~~~~~~~~~~~~~~~~~~

* [MIG] Migration to version 14.0

12.0.1.0.0 (2020-05-29)
~~~~~~~~~~~~~~~~~~~~~~~

Expand Down
49 changes: 32 additions & 17 deletions l10n_br_sale_stock/static/description/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -379,16 +379,18 @@ <h1 class="title">Brazilian Localization Sales and Warehouse</h1>
<li><a class="reference internal" href="#installation" id="toc-entry-1">Installation</a></li>
<li><a class="reference internal" href="#configuration" id="toc-entry-2">Configuration</a></li>
<li><a class="reference internal" href="#changelog" id="toc-entry-3">Changelog</a><ul>
<li><a class="reference internal" href="#section-1" id="toc-entry-4">12.0.1.0.0 (2020-05-29)</a></li>
<li><a class="reference internal" href="#section-2" id="toc-entry-5">10.0.1.0.0 (2019-09-13)</a></li>
<li><a class="reference internal" href="#section-1" id="toc-entry-4">14.0.2.0.0 (2024-04-26)</a></li>
<li><a class="reference internal" href="#section-2" id="toc-entry-5">14.0.1.0.0 (2022-09-16)</a></li>
<li><a class="reference internal" href="#section-3" id="toc-entry-6">12.0.1.0.0 (2020-05-29)</a></li>
<li><a class="reference internal" href="#section-4" id="toc-entry-7">10.0.1.0.0 (2019-09-13)</a></li>
</ul>
</li>
<li><a class="reference internal" href="#bug-tracker" id="toc-entry-6">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="toc-entry-7">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="toc-entry-8">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="toc-entry-9">Contributors</a></li>
<li><a class="reference internal" href="#other-credits" id="toc-entry-10">Other credits</a></li>
<li><a class="reference internal" href="#maintainers" id="toc-entry-11">Maintainers</a></li>
<li><a class="reference internal" href="#bug-tracker" id="toc-entry-8">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="toc-entry-9">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="toc-entry-10">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="toc-entry-11">Contributors</a></li>
<li><a class="reference internal" href="#other-credits" id="toc-entry-12">Other credits</a></li>
<li><a class="reference internal" href="#maintainers" id="toc-entry-13">Maintainers</a></li>
</ul>
</li>
</ul>
Expand All @@ -409,36 +411,49 @@ <h1><a class="toc-backref" href="#toc-entry-2">Configuration</a></h1>
<div class="section" id="changelog">
<h1><a class="toc-backref" href="#toc-entry-3">Changelog</a></h1>
<div class="section" id="section-1">
<h2><a class="toc-backref" href="#toc-entry-4">12.0.1.0.0 (2020-05-29)</a></h2>
<h2><a class="toc-backref" href="#toc-entry-4">14.0.2.0.0 (2024-04-26)</a></h2>
<ul class="simple">
<li>[MIG] Migration to version 12.0</li>
<li>[REF] Extraction to module sale_stock_picking_invoicing
<a class="reference external" href="https://github.com/OCA/account-invoicing/pull/1025">https://github.com/OCA/account-invoicing/pull/1025</a></li>
</ul>
</div>
<div class="section" id="section-2">
<h2><a class="toc-backref" href="#toc-entry-5">10.0.1.0.0 (2019-09-13)</a></h2>
<h2><a class="toc-backref" href="#toc-entry-5">14.0.1.0.0 (2022-09-16)</a></h2>
<ul class="simple">
<li>[MIG] Migration to version 14.0</li>
</ul>
</div>
<div class="section" id="section-3">
<h2><a class="toc-backref" href="#toc-entry-6">12.0.1.0.0 (2020-05-29)</a></h2>
<ul class="simple">
<li>[MIG] Migration to version 12.0</li>
</ul>
</div>
<div class="section" id="section-4">
<h2><a class="toc-backref" href="#toc-entry-7">10.0.1.0.0 (2019-09-13)</a></h2>
<ul class="simple">
<li>[MIG] Migration to version 10.0</li>
</ul>
</div>
</div>
<div class="section" id="bug-tracker">
<h1><a class="toc-backref" href="#toc-entry-6">Bug Tracker</a></h1>
<h1><a class="toc-backref" href="#toc-entry-8">Bug Tracker</a></h1>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/l10n-brazil/issues">GitHub Issues</a>.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
<a class="reference external" href="https://github.com/OCA/l10n-brazil/issues/new?body=module:%20l10n_br_sale_stock%0Aversion:%2014.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p>
</div>
<div class="section" id="credits">
<h1><a class="toc-backref" href="#toc-entry-7">Credits</a></h1>
<h1><a class="toc-backref" href="#toc-entry-9">Credits</a></h1>
<div class="section" id="authors">
<h2><a class="toc-backref" href="#toc-entry-8">Authors</a></h2>
<h2><a class="toc-backref" href="#toc-entry-10">Authors</a></h2>
<ul class="simple">
<li>Akretion</li>
</ul>
</div>
<div class="section" id="contributors">
<h2><a class="toc-backref" href="#toc-entry-9">Contributors</a></h2>
<h2><a class="toc-backref" href="#toc-entry-11">Contributors</a></h2>
<ul class="simple">
<li>Renato Lima &lt;<a class="reference external" href="mailto:renato.lima&#64;akretion.com.br">renato.lima&#64;akretion.com.br</a>&gt;</li>
<li>Raphaël Valyi &lt;<a class="reference external" href="mailto:rvalyi&#64;akretion.com">rvalyi&#64;akretion.com</a>&gt;</li>
Expand All @@ -447,14 +462,14 @@ <h2><a class="toc-backref" href="#toc-entry-9">Contributors</a></h2>
</ul>
</div>
<div class="section" id="other-credits">
<h2><a class="toc-backref" href="#toc-entry-10">Other credits</a></h2>
<h2><a class="toc-backref" href="#toc-entry-12">Other credits</a></h2>
<p>The development of this module has been financially supported by:</p>
<ul class="simple">
<li>Aketion LTDA</li>
</ul>
</div>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#toc-entry-11">Maintainers</a></h2>
<h2><a class="toc-backref" href="#toc-entry-13">Maintainers</a></h2>
<p>This module is maintained by the OCA.</p>
<a class="reference external image-reference" href="https://odoo-community.org">
<img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" />
Expand Down
Loading

0 comments on commit beb467b

Please sign in to comment.