odoo自定义绑定按钮思路

正常的按钮已经默认,但有时候却需要自定义的绑定按钮,这时候就需要修改js里面的内容来达到想要的目的了,

var attrs = event.data.attrs;
            //改动地方---------------------------------------------------------
            attrs.context = this.selectedRecordIds;
            //判断是否是自定义按钮
            // console.log('oooooooooooooooooooo');
            // console.log(attrs.type);
            if (attrs.type === 'tree') {
                // console.log('zzzzzzzz============================================');
                // console.log(self);
                // console.log(event);
                var res_id = event.data.record.res_id;
                self._rpc({
                    model: self.modelName,
                    method: attrs.name,
                    args: [res_id],
                }).then(function (result) {
                    if ('warning' in result) {
                        new Dialog.alert(self, result.warning, {
                            confirm_callback: function () {
                                self._enableButtons();
                                self.reload();
                                // self.reload();
                            }
                        });
                    } else {
                        new custom_dialogs.BiconSelectCreateDialog(self, {
                            res_model: result.res_model,
                            title: result.title || '没有设置标题,这是默认标题!',
                            // initial_view: 'search',
                            list_view_id: result.list_view_id || false,
                            search_view_id: result.search_view_id || false,
                            form_view_id: result.form_view_id || false,
                            disable_multiple_selection: false,
                            text: result.text || '确定',
                            no_create: true,
                            custom_button: true,
                            domain: result.domain,
                            //点击模态框下面的确定按钮执行的回调函数
                            on_selected: function (records) {
                                var ids = _.pluck(records, 'res_id');
                                self._rpc({
                                    model: self.modelName,
                                    method: result.call_back,
                                    args: [res_id, ids],
                                }).then(function () {
                                        self._enableButtons();
                                        self.reload();
                                    },
                                    function () {
                                        self._enableButtons();
                                        self.reload();
                                    }
                                ).always(
                                    function () {
                                        self._enableButtons();
                                        self.reload();
                                    }
                                );
                            },
                            //点击模态框下面的取消按钮执行的回调函数
                            custom_cancel: function () {
                                self._enableButtons();
                                self.reload();
                            },
                            //点击模态框右上角进行关闭执行的回调函数
                            custom_close: function () {
                                self._enableButtons();
                                self.reload();
                            }
                        }).open();
                    }

                }).always(function () {
                    self._enableButtons();
                    self.reload();
                });
            }
            if (attrs.type === 'son_tree') {
                var res_id = event.data.record.res_id;
                var selectedIds = self.selectedRecordIds.selectedIds;
                if (_.isEmpty(selectedIds)) {
                    new Dialog.alert(self, '没选中任何数据,请勾选!', {
                        confirm_callback: function () {
                            self._enableButtons();
                            self.reload();
                        }
                    });
                } else {
                    if (selectedIds.length > 1) {
                        new Dialog.alert(self, '一次只能修改勾选一条数据!', {
                            confirm_callback: function () {
                                self._enableButtons();
                                self.reload();
                            }
                        });
                    } else {
                        var datas1 = {
                            'id': res_id,
                            'xiId': selectedIds[0]
                        };
                        self._rpc({
                            model: self.modelName,
                            method: attrs.name,
                            args: [datas1],
                        }).then(function (result) {
                            if (result && typeof (result) == 'object') {
                                if ('warning' in result) {
                                    new Dialog.alert(self, result.warning, {
                                        confirm_callback: function () {
                                            self._enableButtons();
                                            self.reload();
                                            // self.reload();
                                        }
                                    });
                                } else {
                                    new custom_dialogs.BiconSelectCreateDialog(self, {
                                        res_model: result.res_model,
                                        title: result.title || '没有设置标题,这是默认标题!',
                                        // initial_view: 'search',
                                        list_view_id: result.list_view_id || false,
                                        search_view_id: result.search_view_id || false,
                                        form_view_id: result.form_view_id || false,
                                        disable_multiple_selection: false,
                                        text: result.text || '确定',
                                        no_create: true,
                                        custom_button: true,
                                        domain: result.domain,
                                        //点击模态框下面的确定按钮执行的回调函数
                                        on_selected: function (records) {
                                            var ids = _.pluck(records, 'res_id');
                                            var datas2 = {
                                                'id': res_id,
                                                'xiId': selectedIds[0],
                                                'selectedIds': ids
                                            };
                                            self._rpc({
                                                model: self.modelName,
                                                method: result.call_back,
                                                args: [datas2],
                                            }).then(function () {
                                                    self._enableButtons();
                                                    self.reload();
                                                },
                                                function () {
                                                    self._enableButtons();
                                                    self.reload();
                                                }
                                            ).always(
                                                function () {
                                                    self._enableButtons();
                                                    self.reload();
                                                }
                                            );
                                        },
                                        //点击模态框下面的取消按钮执行的回调函数
                                        custom_cancel: function () {
                                            self._enableButtons();
                                            self.reload();
                                        },
                                        //点击模态框右上角进行关闭执行的回调函数
                                        custom_close: function () {
                                            self._enableButtons();
                                            self.reload();
                                        }
                                    }).open();
                                }
                            }
                        }).always(function () {
                            self._enableButtons();
                            self.reload();
                        });
                    }
                }
            }
# 勾兑采购付款单
    @api.model
    def custom_Blending(self, id):
        record = self.search([('id', '=', id)])
        if not record.correctflag:
            return {'warning': "只有勾选冲调标志后才能勾兑采购付款细单"}
        else:
            view_id = self.env.ref('purchage_manage.rx_cms_su_pay_v_tree').id

            return {
                'list_view_id': view_id,
                'title': '勾兑采购付款细单',
                'res_model': 'rx_cms_su_pay_v',
                'call_back': 'CustomBlending',
                'domain': [('paysettleflag', '=', False)]
            }

    # 勾兑采购付款单按钮后弹窗之后的确定按钮
    @api.model
    def CustomBlending(self, model_redid, ids):
        data = []
        print(self)
        records = self.env['rx_cms_su_pay_v'].search([('id', 'in', ids)])

        for r in records:
            param = {
                'susetid': model_redid,
                'goodsid': r.goodsid,
                'goodsunit': r.goodsunit,
                'goodsspetype': r.goodsspetype,
                'prodarea': r.prodarea,
                'vendorid': r.vendorid,
                'unitprice': r.unitprice,
                'l_money': r.l_money,
                'rel_goodsid': r.goodsid,
                'rel_goodsid': r.goodsid,
                'taxrate': r.su_taxrate,
                'costprice': r.costprice,
                'costmoney': r.costmoney,
                'paydtlid': r.paydtlid,
                'payid': r.payid,
                'rel_vendorid': r.vendorid,

            }
            print(param)
            sql = "update cms_su_pay set paysettleflag=True where id=%s "% r.payid
            self.env.cr.execute(sql)
            data.append(param)
        self.env['cms_su_settle_dtl'].create(data)
        print(data)

button里面按钮要修改的就是type=‘tree’

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值