diff --git a/addons/point_of_sale/models/pos_order.py b/addons/point_of_sale/models/pos_order.py index 47a34a6e6ec..16c93ace5de 100644 --- a/addons/point_of_sale/models/pos_order.py +++ b/addons/point_of_sale/models/pos_order.py @@ -1245,6 +1245,8 @@ class ReportSaleDetails(models.AbstractModel): payments = [] return { + 'date_start': date_start, + 'date_stop': date_stop, 'currency_precision': user_currency.decimal_places, 'total_paid': user_currency.round(total), 'payments': payments, @@ -1264,8 +1266,15 @@ class ReportSaleDetails(models.AbstractModel): @api.model def _get_report_values(self, docids, data=None): data = dict(data or {}) + # initialize data keys with their value if provided, else None + data.update({ + 'session_ids': data.get('session_ids') or docids, + 'config_ids': data.get('config_ids'), + 'date_start': data.get('date_start'), + 'date_stop': data.get('date_stop') + }) configs = self.env['pos.config'].browse(data['config_ids']) - data.update(self.get_sale_details(data['date_start'], data['date_stop'], configs.ids)) + data.update(self.get_sale_details(data['date_start'], data['date_stop'], configs.ids, data['session_ids'])) return data class AccountCashRounding(models.Model): diff --git a/addons/point_of_sale/static/src/css/popups/closing_pos_popup.css b/addons/point_of_sale/static/src/css/popups/closing_pos_popup.css index bbb3b25271f..e0adc1d1c18 100644 --- a/addons/point_of_sale/static/src/css/popups/closing_pos_popup.css +++ b/addons/point_of_sale/static/src/css/popups/closing_pos_popup.css @@ -138,6 +138,7 @@ display: flex; flex-direction: column; height: unset; + padding-left: 0; } .pos .close-pos-popup .footer .button { diff --git a/addons/point_of_sale/static/src/js/Popups/ClosePosPopup.js b/addons/point_of_sale/static/src/js/Popups/ClosePosPopup.js index d8836a74cf2..f7617372029 100644 --- a/addons/point_of_sale/static/src/js/Popups/ClosePosPopup.js +++ b/addons/point_of_sale/static/src/js/Popups/ClosePosPopup.js @@ -73,6 +73,13 @@ odoo.define('point_of_sale.ClosePosPopup', function(require) { closeDetailsPopup() { this.state.displayMoneyDetailsPopup = false; } + async downloadSalesReport() { + await this.env.legacyActionManager.do_action('point_of_sale.sale_details_report', { + additional_context: { + active_ids: [this.env.pos.pos_session.id], + }, + }); + } handleInputChange(paymentId) { let expectedAmount; if (paymentId === this.defaultCashDetails.id) { diff --git a/addons/point_of_sale/static/src/xml/Chrome.xml b/addons/point_of_sale/static/src/xml/Chrome.xml index 9a36cadcf0e..69003fcc4cf 100644 --- a/addons/point_of_sale/static/src/xml/Chrome.xml +++ b/addons/point_of_sale/static/src/xml/Chrome.xml @@ -18,7 +18,7 @@
- + diff --git a/addons/point_of_sale/static/src/xml/ChromeWidgets/SaleDetailsButton.xml b/addons/point_of_sale/static/src/xml/ChromeWidgets/SaleDetailsButton.xml index dc5ecc04109..020251dd46c 100644 --- a/addons/point_of_sale/static/src/xml/ChromeWidgets/SaleDetailsButton.xml +++ b/addons/point_of_sale/static/src/xml/ChromeWidgets/SaleDetailsButton.xml @@ -2,10 +2,10 @@ -
-
- +
+
+
diff --git a/addons/point_of_sale/static/src/xml/Popups/ClosePosPopup.xml b/addons/point_of_sale/static/src/xml/Popups/ClosePosPopup.xml index 16f6e951f98..024d4ca15e5 100644 --- a/addons/point_of_sale/static/src/xml/Popups/ClosePosPopup.xml +++ b/addons/point_of_sale/static/src/xml/Popups/ClosePosPopup.xml @@ -80,8 +80,16 @@
Close Session
Backend
Discard
-
-
+ +
+ +
+ +
+ +
Sales Details - report.point_of_sale.report_saledetails + pos.session qweb-pdf point_of_sale.report_saledetails diff --git a/addons/point_of_sale/views/report_saledetails.xml b/addons/point_of_sale/views/report_saledetails.xml index 5ca914f5502..2e836e53603 100644 --- a/addons/point_of_sale/views/report_saledetails.xml +++ b/addons/point_of_sale/views/report_saledetails.xml @@ -10,7 +10,9 @@

Sales Details

- - + + - +