Use the summary as the fallback record name for lines without a product
Closes #14198
This commit is contained in:
@@ -3054,19 +3054,27 @@ class InvoiceLine(sequence_ordered(), ModelSQL, ModelView, TaxableMixin):
|
||||
def get_rec_name(self, name):
|
||||
pool = Pool()
|
||||
Lang = pool.get('ir.lang')
|
||||
if self.product:
|
||||
name = self.product.rec_name if self.product else self.summary
|
||||
if not name and self.account:
|
||||
name = self.account.rec_name
|
||||
|
||||
if self.type == 'line':
|
||||
lang = Lang.get()
|
||||
prefix = (lang.format_number_symbol(
|
||||
self.quantity or 0, self.unit, digits=self.unit.digits)
|
||||
+ ' %s' % self.product.rec_name)
|
||||
elif self.account:
|
||||
prefix = self.account.rec_name
|
||||
else:
|
||||
prefix = '(%s)' % self.id
|
||||
if self.unit:
|
||||
quantity = lang.format_number_symbol(
|
||||
self.quantity or 0, self.unit, digits=self.unit.digits)
|
||||
else:
|
||||
quantity = lang.format_number(self.quantity or 0)
|
||||
if name:
|
||||
name = f'{quantity} {name}'
|
||||
else:
|
||||
name = quantity
|
||||
elif not name:
|
||||
name = f'({self.id})'
|
||||
|
||||
if self.invoice:
|
||||
return '%s @ %s' % (prefix, self.invoice.rec_name)
|
||||
else:
|
||||
return prefix
|
||||
name = f'{name} @ {self.invoice.rec_name}'
|
||||
return name
|
||||
|
||||
@classmethod
|
||||
def search_rec_name(cls, name, clause):
|
||||
@@ -3079,6 +3087,7 @@ class InvoiceLine(sequence_ordered(), ModelSQL, ModelView, TaxableMixin):
|
||||
('invoice.rec_name', *clause[1:]),
|
||||
('product.rec_name', *clause[1:]),
|
||||
('account.rec_name', *clause[1:]),
|
||||
('summary', *clause[1:]),
|
||||
]
|
||||
|
||||
@classmethod
|
||||
|
||||
@@ -2135,13 +2135,22 @@ class Line(sequence_ordered(), ModelSQL, ModelView):
|
||||
def get_rec_name(self, name):
|
||||
pool = Pool()
|
||||
Lang = pool.get('ir.lang')
|
||||
if self.product:
|
||||
name = self.product.rec_name if self.product else self.summary
|
||||
if self.type == 'line':
|
||||
lang = Lang.get()
|
||||
return (lang.format_number_symbol(
|
||||
if self.unit:
|
||||
quantity = lang.format_number_symbol(
|
||||
self.quantity or 0, self.unit, digits=self.unit.digits)
|
||||
+ ' %s @ %s' % (self.product.rec_name, self.purchase.rec_name))
|
||||
else:
|
||||
return self.purchase.rec_name
|
||||
else:
|
||||
quantity = lang.format_number(self.quantity or 0)
|
||||
if name:
|
||||
name = f'{quantity} {name}'
|
||||
else:
|
||||
name = quantity
|
||||
elif not name:
|
||||
name = f'({self.id})'
|
||||
|
||||
return f'{name} @ {self.purchase.rec_name}'
|
||||
|
||||
@classmethod
|
||||
def search_rec_name(cls, name, clause):
|
||||
@@ -2153,6 +2162,7 @@ class Line(sequence_ordered(), ModelSQL, ModelView):
|
||||
return [bool_op,
|
||||
('purchase.rec_name', *clause[1:]),
|
||||
('product.rec_name', *clause[1:]),
|
||||
('summary', *clause[1:]),
|
||||
]
|
||||
|
||||
@classmethod
|
||||
|
||||
+15
-5
@@ -2287,13 +2287,22 @@ class SaleLine(TaxableMixin, sequence_ordered(), ModelSQL, ModelView):
|
||||
def get_rec_name(self, name):
|
||||
pool = Pool()
|
||||
Lang = pool.get('ir.lang')
|
||||
if self.product:
|
||||
name = self.product.rec_name if self.product else self.summary
|
||||
if self.type == 'line':
|
||||
lang = Lang.get()
|
||||
return (lang.format_number_symbol(
|
||||
if self.unit:
|
||||
quantity = lang.format_number_symbol(
|
||||
self.quantity or 0, self.unit, digits=self.unit.digits)
|
||||
+ ' %s @ %s' % (self.product.rec_name, self.sale.rec_name))
|
||||
else:
|
||||
return self.sale.rec_name
|
||||
else:
|
||||
quantity = lang.format_number(self.quantity or 0)
|
||||
if name:
|
||||
name = f'{quantity} {name}'
|
||||
else:
|
||||
name = quantity
|
||||
elif not name:
|
||||
name = f'({self.id})'
|
||||
|
||||
return f'{name} @ {self.sale.rec_name}'
|
||||
|
||||
@classmethod
|
||||
def search_rec_name(cls, name, clause):
|
||||
@@ -2305,6 +2314,7 @@ class SaleLine(TaxableMixin, sequence_ordered(), ModelSQL, ModelView):
|
||||
return [bool_op,
|
||||
('sale.rec_name', *clause[1:]),
|
||||
('product.rec_name', *clause[1:]),
|
||||
('summary', *clause[1:]),
|
||||
]
|
||||
|
||||
@classmethod
|
||||
|
||||
Reference in New Issue
Block a user