diff --git a/models/res_partner.py b/models/res_partner.py
index 389e0ff6f11f65c87a73dadb6917f83083867211..a0456e7a0a1a54cd19a02f72e200ebe54b7cf230 100644
--- a/models/res_partner.py
+++ b/models/res_partner.py
@@ -2,10 +2,41 @@
 # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
 
 from odoo import models, fields, api
+from ast import literal_eval
 
 class AutreResPartner(models.Model):
 	_inherit = "res.partner"
 
+	@api.multi
+	def _invoice_total_benef(self):
+		account_invoice = self.env['account.invoice']
+		if not self.ids:
+			self.total_invoiced_benef = 0.0
+			return True
+
+		user_currency_id = self.env.user.company_id.currency_id.id
+		all_partner_ids = [self.id]
+		# generate where clause 
+		where_query = account_invoice._where_calc([
+			('beneficiaire_id', 'in', all_partner_ids), ('state', 'not in', ['draft', 'cancel']),
+			('type', 'in', ('out_invoice', 'out_refund'))
+		])
+		account_invoice._apply_ir_rules(where_query, 'read')
+		from_clause, where_clause, where_clause_params = where_query.get_sql()
+
+		# price_total is in the company currency
+		query = """
+				  SELECT SUM(amount_untaxed) as total, beneficiaire_id
+					FROM account_invoice account_invoice
+				   WHERE %s
+				   GROUP BY beneficiaire_id
+				""" % where_clause
+		self.env.cr.execute(query, where_clause_params)
+		price_totals = self.env.cr.dictfetchall()
+		
+		self.total_invoiced_benef = sum(price['total'] for price in price_totals)
+
+
 	# Particulier
 	beneficiaire = fields.Boolean(string="Est un bénéficiaire")
 	societe_id = fields.Many2one('res.partner', string='Société liée')
@@ -41,6 +72,21 @@ class AutreResPartner(models.Model):
 	preference_chorus = fields.Boolean('Chorus Pro')
 	email_fact = fields.Char('Email de facturation')
 	ref_chorus = fields.Char('Références Chorus')
+	total_invoiced_benef = fields.Monetary(compute='_invoice_total_benef', string="Total Invoiced beneficiaire",
+		groups='account.group_account_invoice')
+
+	def _compute_sale_order_count(self):
+		super(AutreResPartner, self)._compute_sale_order_count()
+		sale_data = self.env['sale.order'].read_group(domain=[('beneficiaire_id', 'child_of', self.ids)],
+													  fields=['beneficiaire_id'], groupby=['beneficiaire_id'])
+		mapped_data = dict([(m['beneficiaire_id'][0], m['beneficiaire_id_count']) for m in sale_data])
+		for partner in self:
+			# let's obtain the partner id and all its child ids
+			partner_ids = [partner.id] + partner.child_ids.ids
+			# then we can sum for all the partner's child
+			sale_order_count_benef = sum(mapped_data.get(child, 0) for child in partner_ids)
+			partner.sale_order_count += sale_order_count_benef
+
 
 	@api.onchange('company_type')
 	def onchange_company_type(self):
@@ -69,6 +115,14 @@ class AutreResPartner(models.Model):
 			self.financement = False
 			self.societe_id = False
 
+	@api.multi
+	def action_view_partner_invoices_benef(self):
+		self.ensure_one()
+		action = self.env.ref('account.action_invoice_refund_out_tree').read()[0]
+		action['domain'] = literal_eval(action['domain'])
+		action['domain'].append(('beneficiaire_id', 'child_of', self.id))
+		return action
+
 class AutrementStatut(models.Model):
 	_description = 'Partner Statut'
 	_name = 'res.partner.statut'
diff --git a/views/account_invoice_view.xml b/views/account_invoice_view.xml
index 4d3ac0fe66633154b4fbdf212a5f4122adee43c4..19a902b51ba6631054422e277fa4f486fa282960 100644
--- a/views/account_invoice_view.xml
+++ b/views/account_invoice_view.xml
@@ -17,5 +17,16 @@
             </field>
         </record>
 
+        <record id="autrement_invoice_tree" model="ir.ui.view">
+            <field name="name">autrement.account.invoice.tree</field>
+            <field name="model">account.invoice</field>
+            <field name="inherit_id" ref="account.invoice_tree"/>
+            <field name="arch" type="xml">
+                <xpath expr="//field[@name='partner_id']" position="after">
+                    <field name="beneficiaire_id" />   
+                </xpath>
+            </field>
+        </record>
+
     </data>
 </odoo>
\ No newline at end of file
diff --git a/views/res_partner_view.xml b/views/res_partner_view.xml
index 2272b67cd783c8da1acf7021cdf50fb70f0d095b..b5e5b01865589c063a4ceb289a6142e0a0acf4a3 100644
--- a/views/res_partner_view.xml
+++ b/views/res_partner_view.xml
@@ -276,5 +276,51 @@
             </field>
         </record>
 
+        <record model="ir.ui.view" id="autrment_partner_view_buttons_ab">
+            <field name="name">autrement.partner.view.buttons</field>
+            <field name="model">res.partner</field>
+            <field name="inherit_id" ref="base.view_partner_form" />
+            <field name="priority" eval="20"/>
+            <field name="groups_id" eval="[(4, ref('account.group_account_invoice'))]"/>
+            <field name="arch" type="xml">
+                <div name="button_box" position="inside">
+                    <button type="object" class="oe_stat_button" icon="fa-pencil-square-o" name="action_view_partner_invoices_benef"
+                        attrs="{'invisible': [('customer', '=', False)]}" context="{'default_beneficiaire_id': active_id}">
+                        <div class="o_form_field o_stat_info">
+                            <span class="o_stat_value">
+                                <field name="total_invoiced_benef" widget='monetary' options="{'currency_field': 'currency_id'}"/>
+                            </span>
+                            <span class="o_stat_text">Facturé bénéficiaire</span>
+                        </div>
+                    </button>
+                </div>
+            </field>
+        </record>
+
+        <record id="sale.act_res_partner_2_sale_order" model="ir.actions.act_window">
+            <field name="name">Quotations and Sales</field>
+            <field name="res_model">sale.order</field>
+            <field name="view_type">form</field>
+            <field name="view_mode">tree,form,graph</field>
+            <field name="context">{
+                'default_beneficiaire_id': active_id,
+                }</field>
+            <field name="groups_id" eval="[(4, ref('sales_team.group_sale_salesman'))]"/>
+            <field name="help" type="html">
+              <p class="o_view_nocontent_smiling_face">
+                Create a new quotation, the first step of a new sale!
+              </p><p>
+                Once the quotation is confirmed by the customer, it becomes a sales order.<br/> You will be able to create an invoice and collect the payment.
+              </p>
+            </field>
+        </record>
+
+        <!-- <record id="sale.act_res_partner_2_sale_order" model="ir.actions.act_window">
+            <field name="name">Quotations and Sales</field>
+            <field name="res_model">sale.order</field>
+            <field name="inherit_id" ref="sale.act_res_partner_2_sale_order"/>
+            <field name="context">{'search_default_beneficiaire_id': active_id}</field>
+        </record> -->
+
     </data>
 </odoo>	
diff --git a/views/sale_view.xml b/views/sale_view.xml
index ffdf9b74149e1743e2757df9ca174ed6dc67cd14..6ed2f810a92dc55ae7ceb066cc83aae34853b06b 100644
--- a/views/sale_view.xml
+++ b/views/sale_view.xml
@@ -14,6 +14,40 @@
             </field>
         </record>
 
+        <record id="autrement_view_sales_order_filter" model="ir.ui.view">
+          <field name="name">autrement.sale.order.list.select</field>
+          <field name="model">sale.order</field>
+          <field name="inherit_id" ref="sale.view_sales_order_filter"/>
+          <field name="arch" type="xml">
+            <xpath expr="//field[@name='partner_id']" position="after">
+                <field name="beneficiaire_id" operator="child_of" />
+            </xpath>
+          </field>
+        </record>
+
+        <record id="autrement_view_order_tree" model="ir.ui.view">
+          <field name="name">autrement.sale.order.tree</field>
+          <field name="model">sale.order</field>
+          <field name="inherit_id" ref="sale.view_order_tree"/>
+          <field name="arch" type="xml">
+            <xpath expr="//field[@name='partner_id']" position="after">
+                <field name="beneficiaire_id" />
+            </xpath>
+          </field>
+        </record>
+
+        <record id="autrement_view_sales_order_filter" model="ir.ui.view">
+          <field name="name">autrement.sale.order.list.select</field>
+          <field name="model">sale.order</field>
+          <field name="inherit_id" ref="sale.view_sales_order_filter"/>
+          <field name="priority" eval="15"/>
+          <field name="arch" type="xml">
+            <xpath expr="//filter[@name='my_sale_orders_filter']" position="before">
+              <filter string="Test" name="my_vente"
+                        domain="['|',('parent_id','=',context.get('active_id',True)),('beneficiaire_id','=',context.get('active_id',True))]"/>
+            </xpath>
+          </field>
+        </record>
 
     </data>
 </odoo>
\ No newline at end of file