Commit 6c9d92f2 by Yvon

Revert "a quick solution to compute meal voucher amount before sending it to tpe…

Revert "a quick solution to compute meal voucher amount before sending it to tpe if pos_payment_terminal can be made dependant on pos_meal_voucher"

This reverts commit da457105.
parent da457105
...@@ -28,9 +28,7 @@ ...@@ -28,9 +28,7 @@
'summary': 'Manage Payment Terminal device from POS front end', 'summary': 'Manage Payment Terminal device from POS front end',
'author': "Aurélien DUMAINE,Akretion,Odoo Community Association (OCA)", 'author': "Aurélien DUMAINE,Akretion,Odoo Community Association (OCA)",
'license': 'AGPL-3', 'license': 'AGPL-3',
# We want to make sure that payment_terminal proper code will be called after the amount update by making payment_terminal dependant from meal_voucher 'depends': ['point_of_sale'],
# A cleaner solution may be to create a new module that will depend on pos_payement_terminal and pos_meal_voucher
'depends': ['point_of_sale','pos_meal_voucher'],
'data': [ 'data': [
'pos_payment_terminal_view.xml', 'pos_payment_terminal_view.xml',
'security/security.xml', 'security/security.xml',
......
...@@ -48,7 +48,7 @@ odoo.define('pos_payment_terminal.pos_payment_terminal', function (require) { ...@@ -48,7 +48,7 @@ odoo.define('pos_payment_terminal.pos_payment_terminal', function (require) {
}, },
get_data_send: function(order, line, currency_iso) { get_data_send: function(order, line, currency_iso) {
var data = { var data = {
'amount' : round_pr(Math.max(0,line.get_amount()), this.pos.currency.rounding), 'amount' : order.get_due(line),
'currency_iso' : currency_iso, 'currency_iso' : currency_iso,
'payment_mode' : line.cashregister.journal.payment_mode, 'payment_mode' : line.cashregister.journal.payment_mode,
'wait_terminal_answer' : this.wait_terminal_answer(), 'wait_terminal_answer' : this.wait_terminal_answer(),
......
...@@ -314,7 +314,8 @@ odoo.define("pos_meal_voucher.screens", function (require) { ...@@ -314,7 +314,8 @@ odoo.define("pos_meal_voucher.screens", function (require) {
// if user choose card meal voucher // if user choose card meal voucher
if(order.selected_paymentline.is_meal_voucher() && order.selected_paymentline.is_dematerialized_meal_voucher()){ if(order.selected_paymentline.is_meal_voucher() && order.selected_paymentline.is_dematerialized_meal_voucher()){
function compute_order_meal_voucher_amount() { // update selected (last) payment line & order with meal voucher data
function update_order_meal_voucher_data(issuer = '') {
var total_eligible = order.get_total_meal_voucher_eligible(); var total_eligible = order.get_total_meal_voucher_eligible();
var total_received = order.get_total_meal_voucher_received(); var total_received = order.get_total_meal_voucher_received();
var max_amount = self.pos.config.max_meal_voucher_amount; var max_amount = self.pos.config.max_meal_voucher_amount;
...@@ -325,23 +326,14 @@ odoo.define("pos_meal_voucher.screens", function (require) { ...@@ -325,23 +326,14 @@ odoo.define("pos_meal_voucher.screens", function (require) {
// Check how much is still possible to pay with meal voucher // Check how much is still possible to pay with meal voucher
// The selected line is "by default" set to the rest to pay of the order // The selected line is "by default" set to the rest to pay of the order
return current_max-total_received +order.selected_paymentline.get_amount(); const max_curent_amount = current_max-total_received +order.selected_paymentline.get_amount();
}
order.selected_paymentline.set_amount(max_curent_amount);
// We can't wait confirm function in this.gui.show_popup to be asynchronously called
// to update paymentline with proper amount because this amount will be sent in the interval
// to payment terminal.
// We ensure payment_terminal proper code is called after the amount update by making
// payment_terminal dependant from meal_voucher
const max_curent_amount = compute_order_meal_voucher_amount();
order.selected_paymentline.set_amount(max_curent_amount);
// update selected (last) payment line & order with meal voucher data
function update_order_meal_voucher_data(amount,issuer = '') {
order.selected_paymentline.set_meal_voucher_issuer(issuer); order.selected_paymentline.set_meal_voucher_issuer(issuer);
paymentScreen.order_changes(); paymentScreen.order_changes();
paymentScreen.render_paymentlines(); paymentScreen.render_paymentlines();
paymentScreen.$(".paymentline.selected .edit").text(paymentScreen.format_currency_no_symbol(amount)); paymentScreen.$(".paymentline.selected .edit").text(paymentScreen.format_currency_no_symbol(max_curent_amount));
} }
// If required by the config, ask for the meal voucher issuer // If required by the config, ask for the meal voucher issuer
...@@ -365,14 +357,14 @@ odoo.define("pos_meal_voucher.screens", function (require) { ...@@ -365,14 +357,14 @@ odoo.define("pos_meal_voucher.screens", function (require) {
'selectData': select_data, 'selectData': select_data,
confirm: function(value) { confirm: function(value) {
let issuer = value; let issuer = value;
update_order_meal_voucher_data(max_curent_amount,issuer) update_order_meal_voucher_data(issuer)
}, },
cancel: function(value) { cancel: function(value) {
self.remove_selected_paymentline(order); self.remove_selected_paymentline(order);
}, },
}); });
} else { } else {
update_order_meal_voucher_data(max_curent_amount); update_order_meal_voucher_data();
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment