如何在odoo 12中的支付部分的pos中添加按钮



我需要在POS中放一个按钮来清除订单行,但我创建的按钮实际上在产品屏幕中,我尝试了这个:

<?xml version="1.0" encoding="UTF-8"?>
<templates id="template" xml:space="preserve">
<t t-name="ClearCartLine">
<div class='control-button'>
Boton prueba
</div>
</t>
</templates>

js是这样的:

odoo.define('clear_button_fun.pos_view',函数(require({"使用严格的";;

var screens = require('point_of_sale.screens');
var gui = require('point_of_sale.gui');
var core = require('web.core');
var ClearCartLine = screens.ActionButtonWidget.extend({
template: "ClearCartLine",
button_click: function(){
var self = this;
this.clear_button_fun();
},
clear_button_fun(){
var order = this.pos.get_order();
order.remove_orderline(order.get_selected_orderline())
},
});
screens.define_action_button({'name': 'clear_button_fun','widget': ClearCartLine,});
});

我需要按钮在这样的位置:

我需要按钮在这样的位置:

您可以更改PaymentscreenWidge模板以添加按钮

示例:

<t t-extend="PaymentScreenWidget">
<t t-jquery="div.payment-buttons" t-operation="append">
<div class='button highlight js_clear_orderline'>
<i class='fa fa-cog' role="img" aria-label="Clear" title="Clear"/>
<span class='js_clear_orderline'>
Boton prueba
</span>
</div>
</t>
</t>

然后通过更改renderElement功能在PaymentScreenWidget中定义点击事件

示例:

var screens = require('point_of_sale.screens');
screens.PaymentScreenWidget.include({
renderElement: function() {
var self = this;
this._super();
this.$('.js_clear_orderline').click(function(){

});
},
});

最新更新