From 844023ce177f07164152ca4bd3e86d993d485d82 Mon Sep 17 00:00:00 2001 From: Camilo Sarmiento Date: Wed, 2 Sep 2020 17:54:39 -0500 Subject: [PATCH] add shop in invoices report --- __init__.py | 3 +++ invoice.py | 35 ++++++++++++++++++++++++- shop.xml | 6 +++++ tryton.cfg | 1 + view/print_invoices_start_view_form.xml | 12 +++++++++ 5 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 view/print_invoices_start_view_form.xml diff --git a/__init__.py b/__init__.py index 5294f2d..31d6e4f 100644 --- a/__init__.py +++ b/__init__.py @@ -23,13 +23,16 @@ def register(): sale.SaleLine, sale.SaleShopDetailedStart, invoice.Invoice, + invoice.InvoicesStart, module='sale_shop', type_='model') Pool.register( sale.PrintSaleBySupplier, sale.SaleShopDetailed, sale.SaleShopForceDraft, + invoice.Invoices, module='sale_shop', type_='wizard') Pool.register( sale.SaleBySupplier, sale.SaleShopDetailedReport, + invoice.InvoicesReport, module='sale_shop', type_='report') diff --git a/invoice.py b/invoice.py index 2f712f7..17fc844 100644 --- a/invoice.py +++ b/invoice.py @@ -4,8 +4,10 @@ from trytond.model import fields from trytond.pool import PoolMeta from trytond.pyson import Eval +from trytond.transaction import Transaction -__all__ = ['Invoice'] +__all__ = ['Invoice', 'InvoicesStart', + 'Invoices', 'InvoicesReport'] class Invoice(metaclass=PoolMeta): @@ -13,3 +15,34 @@ class Invoice(metaclass=PoolMeta): shop = fields.Many2One('sale.shop', 'Shop', required=False, domain=[ ('id', 'in', Eval('context', {}).get('shops', [])), ], depends=['number']) + + +class InvoicesStart(metaclass=PoolMeta): + __name__ = 'invoice_report.print_invoices.start' + shop = fields.Many2One('sale.shop', 'Shop', required=True) + + @staticmethod + def default_company(): + return Transaction().context.get('shop') + + +class Invoices(metaclass=PoolMeta): + __name__ = 'invoice_report.print_invoices' + + def do_print_(self, action): + action, data = super(Invoices, self).do_print_(action) + if self.start.shop: + data['shop'] = self.start.shop.id + data['shop_name'] = self.start.shop.name + return action, data + + +class InvoicesReport(metaclass=PoolMeta): + __name__ = 'invoice_report.invoices_report' + + @classmethod + def get_domain_invoices(cls, data): + dom_invoices = super(InvoicesReport, cls).get_domain_invoices(data) + if data.get('shop'): + dom_invoices.append(('shop', '=', data['shop'])) + return dom_invoices diff --git a/shop.xml b/shop.xml index d1b1264..40b9344 100644 --- a/shop.xml +++ b/shop.xml @@ -51,5 +51,11 @@ The COPYRIGHT file at the top level of this repository contains the full copyrig + + + invoice_report.print_invoices.start + + print_invoices_start_view_form + diff --git a/tryton.cfg b/tryton.cfg index 4a05103..03a3694 100644 --- a/tryton.cfg +++ b/tryton.cfg @@ -5,6 +5,7 @@ depends: account_invoice sale_price_list sale_salesman + invoice_report xml: configuration.xml shop.xml diff --git a/view/print_invoices_start_view_form.xml b/view/print_invoices_start_view_form.xml new file mode 100644 index 0000000..e746f6b --- /dev/null +++ b/view/print_invoices_start_view_form.xml @@ -0,0 +1,12 @@ + + + + + + + +