Openerp POS产品订单行
在产品形式视图中,有按钮销售。激活时,它将显示此产品的所有销售订单的树状视图。我的目标是制作相同的按钮,但它必须显示使用此产品制作的所有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
<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?它将显示产品数量销售的总数,与销售订单相同。因此,我可能缺少一些视图。