Openerp POS产品订单行

Openerp POS产品订单行,openerp,odoo-8,odoo-9,Openerp,Odoo 8,Odoo 9,在产品形式视图中,有按钮销售。激活时,它将显示此产品的所有销售订单的树状视图。我的目标是制作相同的按钮,但它必须显示使用此产品制作的所有pos订单 我试过这样的东西,但我知道这完全是垃圾。如果有人能向我解释它是如何工作的,我将不胜感激 <record id="act_product_pos_sale" model="ir.actions.act_window"> <field name="name">POS Product Sale1</fi

在产品形式视图中,有按钮销售。激活时,它将显示此产品的所有销售订单的树状视图。我的目标是制作相同的按钮,但它必须显示使用此产品制作的所有pos订单

我试过这样的东西,但我知道这完全是垃圾。如果有人能向我解释它是如何工作的,我将不胜感激

<record id="act_product_pos_sale" model="ir.actions.act_window">
            <field name="name">POS Product Sale1</field>
            <field name="res_model">product.product</field>
            <field name="view_id" ref="product.product_product_tree_view"/>
        </record>

        <record model="ir.ui.view" id="product_form_pos_sale_button">
            <field name="name">product.product.sale.pos.order</field>
            <field name="model">product.product</field>
            <field name="inherit_id" ref="product.product_normal_form_view"/>
            <field name="arch" type="xml">
                <div name="button_box" position="inside">
                    <button class="oe_stat_button" name="action_view_pos_product"
                        type="object" icon="fa-usd">
                        <field string="POS" name="pos_product_order_total" widget="statinfo" />
                    </button>
                </div>
            </field>
        </record>


class ProductProduct(models.Model):
    _inherit = 'product.product'

 @api.multi
    def action_view_pos_product(self):
        OrderLine = self.env['pos.order.line']
        action = self.env.ref('sale.act_product_pos_sale')
        # action['domain'] = [('product_id', 'in', products.ids)]
        # action['context'] = {'': ,}
        return action

POS产品销售1
产品
product.product.sale.pos.order
产品
类别ProductProduct(models.Model):
_继承='product.product'
@api.multi
def操作视图位置产品(自身):
OrderLine=self.env['pos.order.line']
action=self.env.ref('sale.act\u product\u pos\u sale')
#操作['domain']=[('product_id','in',products.id)]
#动作['context']={'':,}
返回动作

添加操作并使用按钮调用该操作: 步骤1:您必须使用计算方法计算pos销售总数:

class ProductProduct(models.Model):
    _inherit = 'product.product'

    @api.multi
    def _pos_sales_count(self):
        r = {}
        domain = [
            ('state', 'in', ['sale', 'done']),
            ('product_id', 'in', self.ids),
        ]
        for group in self.env['report.pos.order'].read_group(domain, ['product_id', 'product_qty'], ['product_id']):
            r[group['product_id'][0]] = group['product_qty']
        for product in self:
            product.sales_count = r.get(product.id, 0)
        return r

    pos_sales_count = fields.Integer(compute='_pos_sales_count', string='#Pos Sales')


 class ProductTemplate(models.Model):
    _inherit = 'product.template'

    @api.multi
    @api.depends('product_variant_ids.pos_sales_count')
    def _pos_sales_count(self):
        for product in self:
            product.pos_sales_count = sum([p.sales_count for p in product.product_variant_ids])

    pos_sales_count = fields.Integer(compute='_pos_sales_count', string='#POS Sales')
步骤2:定义链接与产品相关的pos订单行的操作:

<record id="action_product_pos_sale_list" model="ir.actions.act_window">
    <field name="name">Sale Order Lines</field>
    <field name="res_model">pos.order.line</field>
    <field name="context">{'search_default_product_id': [active_id], 'default_product_id': active_id}</field>
</record>

<record model="ir.ui.view" id="product_form_view_pos_sale_order_button">
    <field name="name">product.product.pos.sale.order</field>
    <field name="model">product.product</field>
    <field name="inherit_id" ref="product.product_normal_form_view"/>
    <field name="groups_id" eval="[(4, ref('sales_team.group_sale_salesman'))]"/>
    <field name="arch" type="xml">
        <div name="button_box" position="inside">
            <button class="oe_stat_button" name="%(action_product_pos_sale_list)d"
                type="action" icon="fa-usd">
                <field string="Sales" name="pos_sales_count" widget="statinfo" />
            </button>
        </div>
    </field>
</record>

销售订单行
订单行
{'search_default_product_id':[active_id],'default_product_id':active_id}
product.product.pos.sale.order
产品

我可以问个问题吗。为什么要在product.template中再次计算pos_sale_count?它将显示产品数量销售的总数,与销售订单相同。因此,我可能缺少一些视图。