Javascript 修改付款行pos odoo 8
有人知道我应该如何修改POS机中的付款行,我想添加一种类型的信用卡(就像许多人一样,我这样做了),但每次我添加一行时,我的选项都会更改为第一行,并且在订单完成时,也不会将值保存在POS.order->statement\u id中。 这是我的密码:Javascript 修改付款行pos odoo 8,javascript,odoo-8,Javascript,Odoo 8,有人知道我应该如何修改POS机中的付款行,我想添加一种类型的信用卡(就像许多人一样,我这样做了),但每次我添加一行时,我的选项都会更改为第一行,并且在订单完成时,也不会将值保存在POS.order->statement\u id中。 这是我的密码: function POS_CashRegister (instance, local) { var pos = instance.point_of_sale; var _t = instance.web._t; var QWeb = instanc
function POS_CashRegister (instance, local) {
var pos = instance.point_of_sale;
var _t = instance.web._t;
var QWeb = instance.web.qweb;
var round_pr = instance.web.round_precision
const ParentOrder = pos.Order;
pos.PosModel.prototype.models.push({ //loaded model
model: 'pos.credit.card',
fields: ['id', 'name'],
domain: [['pos_active','=',true]],
loaded: function(self,credit_cards){ //pass parameters
self.credit_cards = credit_cards;
},
});
pos.PaymentScreenWidget = pos.PaymentScreenWidget.extend({
validate_order: function(options) {
var self = this;
var currentOrder = self.pos.get('selectedOrder');
var plines = currentOrder.get('paymentLines').models;
for (var i = 0; i < plines.length; i++) {
if(plines[i].cashregister.journal_id[1] === 'Tarjeta de Credito (PEN)')
{
var value = plines[i].node.firstElementChild.nextElementSibling.nextElementSibling.firstElementChild.value;
plines[i].set_credit_card(parseInt(value));
//console.log(plines[i].node.firstElementChild.nextElementSibling.nextElementSibling.firstElementChild.value);
//plines[i].node
}
}
console.log(currentOrder);
self._super(options);
},
render_paymentline: function (line) {
var self = this;
if(line.cashregister.journal_id[1] !== 'Tarjeta de Credito (PEN)'){
if (line.cashregister.currency[1] !== 'USD') {
return this._super(line);
} else {
var el_html = openerp.qweb.render('Paymentline', {widget: this, line: line});
el_html = _.str.trim(el_html);
var el_node = document.createElement('tbody');
el_node.innerHTML = el_html;
el_node = el_node.childNodes[0];
el_node.line = line;
el_node.querySelector('.paymentline-delete')
.addEventListener('click', this.line_delete_handler);
el_node.addEventListener('click', this.line_click_handler);
var sourceInput = el_node.querySelector('.source-input');
var convertedInput = el_node.querySelector('.converted-input');
sourceInput.addEventListener('keyup', function (event) {
el_node.line.set_usd_amount(event.target.value);
convertedInput.value = el_node.line.get_amount_str();
});
line.node = el_node;
return el_node;
}
}else {
return this._super(line);
}
},
});
pos.Paymentline = pos.Paymentline.extend({
initialize: function(attributes, options) {
this.amount = 0;
this.cashregister = options.cashregister;
this.name = this.cashregister.journal_id[1];
this.selected = false;
this.credit_card = false;
this.pos = options.pos;
},
set_credit_card: function(value){
this.credit_card = value;
this.trigger('change:credit_card',this);
},
get_credit_card: function(){
return this.credit_card;
},
export_as_JSON: function(){
return {
name: instance.web.datetime_to_str(new Date()),
statement_id: this.cashregister.id,
account_id: this.cashregister.account_id[0],
journal_id: this.cashregister.journal_id[0],
amount: this.get_amount(),
credit_card_id: this.get_credit_card(),
};
},
});
功能POS\U收银机(实例,本地){
var pos=销售的实例点;
var\u t=instance.web.\u t;
var QWeb=instance.web.QWeb;
var round\u pr=instance.web.round\u精度
const ParentOrder=位置顺序;
pos.PosModel.prototype.models.push({//加载的模型
型号:“pos.信用卡”,
字段:['id','name'],
域:['pos_active','=',true]],
已加载:函数(自身、信用卡){//传递参数
self.credit\u cards=信用卡;
},
});
pos.PaymentScreenWidget=pos.PaymentScreenWidget.extend({
验证顺序:功能(选项){
var self=这个;
var currentOrder=self.pos.get('selectedOrder');
变量plines=currentOrder.get('paymentLines').models;
对于(变量i=0;i
}
有什么建议吗 您也可以在此处创建两个日记账。一个是维萨,另一个是马斯特,如果你不想掉在那里的话。另一种方法是必须将所选选项存储在变量中,然后在前面打印该变量
要存储选定的选项,首先将id分配给选项的每个值,然后在验证顺序时,您可以获取该字段的id,并从该id获取您的值。这样你也可以做到。谢谢你的建议,我明白了!