details: https://code.tryton.org/tryton/commit/0b20fea4600b
branch: default
user: Cédric Krier <[email protected]>
date: Wed Jun 05 14:48:53 2024 +0200
description:
Group sale invoices from rental
diffstat:
modules/sale_invoice_grouping/CHANGELOG | 1 +
modules/sale_invoice_grouping/sale.py | 24 +++++++++++++++++++++---
modules/sale_invoice_grouping/tryton.cfg | 6 ++++++
3 files changed, 28 insertions(+), 3 deletions(-)
diffs (80 lines):
diff -r 8e15abd1a20c -r 0b20fea4600b modules/sale_invoice_grouping/CHANGELOG
--- a/modules/sale_invoice_grouping/CHANGELOG Wed Feb 21 15:07:52 2024 +0100
+++ b/modules/sale_invoice_grouping/CHANGELOG Wed Jun 05 14:48:53 2024 +0200
@@ -1,3 +1,4 @@
+* Group with rental invoices
Version 7.6.0 - 2025-04-28
--------------------------
diff -r 8e15abd1a20c -r 0b20fea4600b modules/sale_invoice_grouping/sale.py
--- a/modules/sale_invoice_grouping/sale.py Wed Feb 21 15:07:52 2024 +0100
+++ b/modules/sale_invoice_grouping/sale.py Wed Jun 05 14:48:53 2024 +0200
@@ -7,8 +7,8 @@
from trytond.transaction import Transaction
-class Sale(metaclass=PoolMeta):
- __name__ = 'sale.sale'
+class InvoiceGroupingMixin:
+ __slots__ = ()
@property
def invoice_grouping_method(self):
@@ -17,7 +17,7 @@
@property
def _invoice_grouping_origins(self):
- return ['sale.line']
+ return ['sale.line', 'sale.rental.line']
def _get_invoice_grouping_fields(self, invoice):
return {'state', 'company', 'type', 'journal', 'party',
@@ -59,6 +59,10 @@
invoice, = grouped_invoices
return invoice
+
+class Sale(InvoiceGroupingMixin, metaclass=PoolMeta):
+ __name__ = 'sale.sale'
+
@classmethod
def _process_invoice(cls, sales):
for method, sales in groupby(
@@ -68,3 +72,17 @@
super()._process_invoice([sale])
else:
super()._process_invoice(list(sales))
+
+
+class Rental(InvoiceGroupingMixin, metaclass=PoolMeta):
+ __name__ = 'sale.rental'
+
+ @classmethod
+ def invoice(cls, rentals):
+ for method, rentals in groupby(
+ rentals, lambda r: r.invoice_grouping_method):
+ if method:
+ for rental in rentals:
+ super().invoice([rental])
+ else:
+ super().invoice(list(rentals))
diff -r 8e15abd1a20c -r 0b20fea4600b modules/sale_invoice_grouping/tryton.cfg
--- a/modules/sale_invoice_grouping/tryton.cfg Wed Feb 21 15:07:52 2024 +0100
+++ b/modules/sale_invoice_grouping/tryton.cfg Wed Jun 05 14:48:53 2024 +0200
@@ -6,6 +6,8 @@
party
account_invoice
sale
+extras_depend:
+ sale_rental
xml:
party.xml
configuration.xml
@@ -17,3 +19,7 @@
configuration.Configuration
configuration.ConfigurationSaleMethod
sale.Sale
+
+[register sale_rental]
+model:
+ sale.Rental