forked from OCA/l10n-brazil
-
Notifications
You must be signed in to change notification settings - Fork 5
/
stock_picking.py
42 lines (35 loc) · 1.62 KB
/
stock_picking.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# Copyright (C) 2021 Magno Costa - Akretion
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
from odoo import models
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()
if partner != self._get_partner_to_invoice():
partner = self._get_partner_to_invoice()
return partner
def _get_default_fiscal_operation(self):
fiscal_operation = super()._get_default_fiscal_operation()
if self.sale_id:
if self.sale_id.fiscal_operation_id:
# Evita a inconsistência de ter o Pedido de Vendas com uma
# OP Fiscal e a Ordem de Seleção outra, quando o campo
# invoice_state é alterado, o usuário pode alterar o campo
# mas dessa forma forçamos a decisão de não usar a mesma
# do Pedido.
if fiscal_operation != self.sale_id.fiscal_operation_id:
fiscal_operation = self.sale_id.fiscal_operation_id
return fiscal_operation