Sort invoices and shipments on Function fields of sale and purchase
Closes #15083 (grafted from 9385c3660f174830a30529078f3e2899a7a8672c) --HG-- branch : 8.0
This commit is contained in:
@@ -17,7 +17,7 @@ from trytond.ir.attachment import AttachmentCopyMixin
|
|||||||
from trytond.ir.note import NoteCopyMixin
|
from trytond.ir.note import NoteCopyMixin
|
||||||
from trytond.model import (
|
from trytond.model import (
|
||||||
ChatMixin, Index, ModelSQL, ModelView, Unique, Workflow, fields,
|
ChatMixin, Index, ModelSQL, ModelView, Unique, Workflow, fields,
|
||||||
sequence_ordered)
|
sequence_ordered, sort)
|
||||||
from trytond.model.exceptions import AccessError
|
from trytond.model.exceptions import AccessError
|
||||||
from trytond.modules.account.tax import TaxableMixin
|
from trytond.modules.account.tax import TaxableMixin
|
||||||
from trytond.modules.account_product.exceptions import AccountError
|
from trytond.modules.account_product.exceptions import AccountError
|
||||||
@@ -44,13 +44,16 @@ def samesign(a, b):
|
|||||||
def get_shipments_returns(model_name):
|
def get_shipments_returns(model_name):
|
||||||
"Computes the returns or shipments"
|
"Computes the returns or shipments"
|
||||||
def method(self, name):
|
def method(self, name):
|
||||||
Model = Pool().get(model_name)
|
pool = Pool()
|
||||||
|
Model = pool.get(model_name)
|
||||||
|
field = getattr(self.__class__, name)
|
||||||
|
order = field.order if field.order is not None else Model._order
|
||||||
shipments = set()
|
shipments = set()
|
||||||
for line in self.line_lines:
|
for line in self.line_lines:
|
||||||
for move in line.moves:
|
for move in line.moves:
|
||||||
if isinstance(move.shipment, Model):
|
if isinstance(move.shipment, Model):
|
||||||
shipments.add(move.shipment.id)
|
shipments.add(move.shipment)
|
||||||
return list(shipments)
|
return sort(shipments, order)
|
||||||
return method
|
return method
|
||||||
|
|
||||||
|
|
||||||
@@ -587,12 +590,16 @@ class Purchase(
|
|||||||
return result
|
return result
|
||||||
|
|
||||||
def get_invoices(self, name):
|
def get_invoices(self, name):
|
||||||
|
pool = Pool()
|
||||||
|
Invoice = pool.get('account.invoice')
|
||||||
|
field = getattr(self.__class__, name)
|
||||||
|
order = field.order if field.order is not None else Invoice._order
|
||||||
invoices = set()
|
invoices = set()
|
||||||
for line in self.line_lines:
|
for line in self.line_lines:
|
||||||
for invoice_line in line.invoice_lines:
|
for invoice_line in line.invoice_lines:
|
||||||
if invoice_line.invoice:
|
if invoice_line.invoice:
|
||||||
invoices.add(invoice_line.invoice.id)
|
invoices.add(invoice_line.invoice)
|
||||||
return list(invoices)
|
return sort(invoices, order)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def search_invoices(cls, name, clause):
|
def search_invoices(cls, name, clause):
|
||||||
|
|||||||
+13
-6
@@ -17,7 +17,7 @@ from trytond.ir.attachment import AttachmentCopyMixin
|
|||||||
from trytond.ir.note import NoteCopyMixin
|
from trytond.ir.note import NoteCopyMixin
|
||||||
from trytond.model import (
|
from trytond.model import (
|
||||||
ChatMixin, Index, ModelSQL, ModelView, Unique, Workflow, fields,
|
ChatMixin, Index, ModelSQL, ModelView, Unique, Workflow, fields,
|
||||||
sequence_ordered)
|
sequence_ordered, sort)
|
||||||
from trytond.model.exceptions import AccessError
|
from trytond.model.exceptions import AccessError
|
||||||
from trytond.modules.account.tax import TaxableMixin
|
from trytond.modules.account.tax import TaxableMixin
|
||||||
from trytond.modules.account_product.exceptions import AccountError
|
from trytond.modules.account_product.exceptions import AccountError
|
||||||
@@ -45,13 +45,16 @@ def samesign(a, b):
|
|||||||
def get_shipments_returns(model_name):
|
def get_shipments_returns(model_name):
|
||||||
"Computes the returns or shipments"
|
"Computes the returns or shipments"
|
||||||
def method(self, name):
|
def method(self, name):
|
||||||
Model = Pool().get(model_name)
|
pool = Pool()
|
||||||
|
Model = pool.get(model_name)
|
||||||
|
field = getattr(self.__class__, name)
|
||||||
|
order = field.order if field.order is not None else Model._order
|
||||||
shipments = set()
|
shipments = set()
|
||||||
for line in self.line_lines:
|
for line in self.line_lines:
|
||||||
for move in line.moves:
|
for move in line.moves:
|
||||||
if isinstance(move.shipment, Model):
|
if isinstance(move.shipment, Model):
|
||||||
shipments.add(move.shipment.id)
|
shipments.add(move.shipment)
|
||||||
return list(shipments)
|
return sort(shipments, order)
|
||||||
return method
|
return method
|
||||||
|
|
||||||
|
|
||||||
@@ -704,12 +707,16 @@ class Sale(
|
|||||||
return result
|
return result
|
||||||
|
|
||||||
def get_invoices(self, name):
|
def get_invoices(self, name):
|
||||||
|
pool = Pool()
|
||||||
|
Invoice = pool.get('account.invoice')
|
||||||
|
field = getattr(self.__class__, name)
|
||||||
|
order = field.order if field.order is not None else Invoice._order
|
||||||
invoices = set()
|
invoices = set()
|
||||||
for line in self.line_lines:
|
for line in self.line_lines:
|
||||||
for invoice_line in line.invoice_lines:
|
for invoice_line in line.invoice_lines:
|
||||||
if invoice_line.invoice:
|
if invoice_line.invoice:
|
||||||
invoices.add(invoice_line.invoice.id)
|
invoices.add(invoice_line.invoice)
|
||||||
return list(invoices)
|
return sort(invoices, order)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def search_invoices(cls, name, clause):
|
def search_invoices(cls, name, clause):
|
||||||
|
|||||||
Reference in New Issue
Block a user