1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
odoo.define('point_of_sale.SaleDetailsButton', function(require) {
'use strict';
const PosComponent = require('point_of_sale.PosComponent');
const Registries = require('point_of_sale.Registries');
class SaleDetailsButton extends PosComponent {
async onClick() {
// IMPROVEMENT: Perhaps put this logic in a parent component
// so that for unit testing, we can check if this simple
// component correctly triggers an event.
const saleDetails = await this.rpc({
model: 'report.point_of_sale.report_saledetails',
method: 'get_sale_details',
args: [false, false, false, [this.env.pos.pos_session.id]],
});
const report = this.env.qweb.renderToString(
'SaleDetailsReport',
Object.assign({}, saleDetails, {
date: new Date().toLocaleString(),
pos: this.env.pos,
})
);
const printResult = await this.env.pos.proxy.printer.print_receipt(report);
if (!printResult.successful) {
await this.showPopup('ErrorPopup', {
title: printResult.message.title,
body: printResult.message.body,
});
}
}
}
SaleDetailsButton.template = 'SaleDetailsButton';
Registries.Component.add(SaleDetailsButton);
return SaleDetailsButton;
});
|