Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 修改付款行pos odoo 8_Javascript_Odoo 8 - Fatal编程技术网

Javascript 修改付款行pos odoo 8

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

有人知道我应该如何修改POS机中的付款行,我想添加一种类型的信用卡(就像许多人一样,我这样做了),但每次我添加一行时,我的选项都会更改为第一行,并且在订单完成时,也不会将值保存在POS.order->statement\u id中。

这是我的密码:

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获取您的值。这样你也可以做到。

谢谢你的建议,我明白了!