[IMP] point_of_sale: stat button on customer form to display pos orders
fp request
This commit is contained in:
committed by
Yannick Tivisse
parent
fe0dd01e2f
commit
bd6f805f4f
@@ -7,6 +7,13 @@ class ResPartner(models.Model):
|
||||
_inherit = 'res.partner'
|
||||
|
||||
barcode = fields.Char(string='Barcode', help="BarCode", oldname='ean13')
|
||||
pos_order_count = fields.Integer(compute='_compute_pos_order', help="The number of point of sale orders related to this customer")
|
||||
|
||||
def _compute_pos_order(self):
|
||||
partners_data = self.env['pos.order'].read_group([('partner_id', 'in', self.ids)], ['partner_id'], ['partner_id'])
|
||||
mapped_data = dict([(partner['partner_id'][0], partner['partner_id_count']) for partner in partners_data])
|
||||
for partner in self:
|
||||
partner.pos_order_count = mapped_data.get(partner.id, 0)
|
||||
|
||||
@api.model
|
||||
def create_from_ui(self, partner):
|
||||
@@ -20,5 +27,4 @@ class ResPartner(models.Model):
|
||||
self.browse(partner_id).write(partner)
|
||||
else:
|
||||
partner_id = self.create(partner).id
|
||||
|
||||
return partner_id
|
||||
|
||||
@@ -239,6 +239,7 @@
|
||||
<filter string="Invoiced" domain="[('state','=','invoiced')]"/>
|
||||
<filter string="Posted" domain="[('state','=','done')]"/>
|
||||
<field name="user_id"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="session_id"/>
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Customer" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
|
||||
@@ -3,8 +3,16 @@
|
||||
<record id="view_partner_property_form" model="ir.ui.view">
|
||||
<field name="name">res.partner.pos.form.inherit</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="inherit_id" ref="base.view_partner_form"/>
|
||||
<field name="inherit_id" ref="sale.res_partner_view_buttons"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='sale_order_count']" position="after">
|
||||
<button class="oe_stat_button" type="action" name="%(point_of_sale.action_pos_pos_form)d"
|
||||
context="{'search_default_partner_id': active_id,'default_partner_id': active_id}"
|
||||
attrs="{'invisible': ['|', ('customer', '=', False), ('pos_order_count', '=', 0)]}"
|
||||
icon="fa-shopping-bag">
|
||||
<field string="POS Sales" name="pos_order_count" widget="statinfo"/>
|
||||
</button>
|
||||
</xpath>
|
||||
<xpath expr="//page[@name='sales_purchases']/group">
|
||||
<group string="Point of Sale" name="point_of_sale">
|
||||
<field name="barcode" />
|
||||
@@ -12,4 +20,17 @@
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_partner_pos_kanban" model="ir.ui.view">
|
||||
<field name="name">res.partner.pos.kanban.inherit</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="inherit_id" ref="sale.crm_lead_partner_kanban_view"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='sale_order_count']" position="after">
|
||||
<field name="pos_order_count"/>
|
||||
</xpath>
|
||||
<xpath expr="//div[@class='oe_kanban_partner_links']" position="inside">
|
||||
<span t-if="record.pos_order_count.value>0" class="badge"><i class="fa fa-fw fa-shopping-bag"/><t t-esc="record.pos_order_count.value"/></span>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
||||
Reference in New Issue
Block a user