[IMP] point_of_sale: stat button on customer form to display pos orders

fp request
This commit is contained in:
Rohan Patel
2016-04-11 13:33:26 +02:00
committed by Yannick Tivisse
parent fe0dd01e2f
commit bd6f805f4f
3 changed files with 30 additions and 2 deletions
+7 -1
View File
@@ -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>