Calculate info_unit_price when unit_price is not none

162074
This commit is contained in:
Raimon Esteve 2023-09-08 13:30:57 +02:00
parent 00f27d0dd6
commit a42839d979
3 changed files with 20 additions and 17 deletions

View File

@ -2,6 +2,7 @@
# copyright notices and license terms.
from trytond.pool import Pool
from . import invoice
from . import sale
def register():
@ -9,6 +10,6 @@ def register():
invoice.InvoiceLine,
module='account_invoice_information_uom', type_='model')
Pool.register(
invoice.SaleLine,
sale.SaleLine,
depends=['sale'],
module='account_invoice_information_uom', type_='model')

View File

@ -7,9 +7,6 @@ from trytond.pool import PoolMeta, Pool
from decimal import Decimal
from trytond.modules.product import price_digits
__all__ = ['InformationUomMixin', 'InvoiceLine']
_ZERO = Decimal('0.0')
_ROUND = Decimal('.0001')
@ -18,16 +15,6 @@ STATES = {
}
DEPENDS = ['show_info_unit']
class SaleLine(metaclass=PoolMeta):
__name__ = 'sale.line'
def get_invoice_line(self):
invoice_line = super().get_invoice_line()
if not invoice_line:
return invoice_line
invoice_line, = invoice_line
invoice_line.on_change_unit()
return [invoice_line]
class InformationUomMixin(object):
@ -151,7 +138,7 @@ class InformationUomMixin(object):
if not self.product:
return
DIGITS=price_digits[1]
if self.unit_price:
if self.unit_price is not None:
price = self.unit_price
if self.unit and self.unit != self.product.default_uom:
price = Uom.compute_price(self.unit, price,
@ -182,10 +169,10 @@ class InvoiceLine(InformationUomMixin, metaclass=PoolMeta):
def _credit(self):
line = super(InvoiceLine, self)._credit()
if self.info_unit_price:
if self.info_unit_price is not None:
line.info_unit_price = self.info_unit_price
if self.info_quantity:
if self.info_quantity is not None:
line.info_quantity = -self.info_quantity
else:
line.info_unit_price = self.info_unit_price

15
sale.py Normal file
View File

@ -0,0 +1,15 @@
# The COPYRIGHT file at the top level of this repository contains the full i
# copyright notices and license terms.
from trytond.pool import PoolMeta
class SaleLine(metaclass=PoolMeta):
__name__ = 'sale.line'
def get_invoice_line(self):
invoice_line = super().get_invoice_line()
if not invoice_line:
return invoice_line
invoice_line, = invoice_line
invoice_line.on_change_unit()
return [invoice_line]