From 3567bfa85a22bbb48177b6b572e441a3548d02d8 Mon Sep 17 00:00:00 2001
From: Juliana <juliana@le-filament.com>
Date: Fri, 1 Mar 2019 10:26:11 +0100
Subject: [PATCH] Ajout beneficiaire sale + account

---
 __init__.py                         |  3 ++-
 __manifest__.py                     |  3 ++-
 models/__init__.py                  |  3 ++-
 models/account_invoice.py           |  9 +++++++++
 models/res_partner.py               |  2 +-
 models/sale.py                      | 13 +++++--------
 views/account_invoice_view.xml      | 17 +++++++++++++++++
 views/sale_view.xml                 |  2 +-
 wizard/__init__.py                  |  3 +++
 wizard/sale_make_invoice_advance.py | 17 +++++++++++++++++
 10 files changed, 59 insertions(+), 13 deletions(-)
 create mode 100644 models/account_invoice.py
 create mode 100644 views/account_invoice_view.xml
 create mode 100644 wizard/__init__.py
 create mode 100644 wizard/sale_make_invoice_advance.py

diff --git a/__init__.py b/__init__.py
index 9a7e03e..c536983 100644
--- a/__init__.py
+++ b/__init__.py
@@ -1 +1,2 @@
-from . import models
\ No newline at end of file
+from . import models
+from . import wizard
\ No newline at end of file
diff --git a/__manifest__.py b/__manifest__.py
index 1c8be11..86f6a3e 100644
--- a/__manifest__.py
+++ b/__manifest__.py
@@ -24,7 +24,8 @@
         'security/ir.model.access.csv',
         'views/res_partner_view.xml',
         'views/menu_partner.xml',
-        # 'views/sale_view.xml',
+        'views/sale_view.xml',
+        'views/account_invoice_view.xml',
         'data/res_partner_data.xml',
     ],
 
diff --git a/models/__init__.py b/models/__init__.py
index d0c9b1a..70ca04a 100644
--- a/models/__init__.py
+++ b/models/__init__.py
@@ -1,2 +1,3 @@
 from . import res_partner
-# from . import sale
\ No newline at end of file
+from . import sale
+from . import account_invoice
\ No newline at end of file
diff --git a/models/account_invoice.py b/models/account_invoice.py
new file mode 100644
index 0000000..1aa3745
--- /dev/null
+++ b/models/account_invoice.py
@@ -0,0 +1,9 @@
+# © 2019 Le Filament (<http://www.le-filament.com>)
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+from odoo import models, fields, api
+
+class AccountInvoice(models.Model):
+	_inherit = "account.invoice"
+
+	beneficiaire_id = fields.Many2one('res.partner', string='Bénéficiaire',states={'draft': [('readonly', False)]}, domain=[('beneficiaire', '=', True)])
\ No newline at end of file
diff --git a/models/res_partner.py b/models/res_partner.py
index fb3fd8a..389e0ff 100644
--- a/models/res_partner.py
+++ b/models/res_partner.py
@@ -44,7 +44,7 @@ class AutreResPartner(models.Model):
 
 	@api.onchange('company_type')
 	def onchange_company_type(self):
-		self.is_company = (self.company_type == 'company')
+		super(AutreResPartner, self).onchange_company_type()
 		if self.company_type == 'company':
 			self.beneficiaire = False
 
diff --git a/models/sale.py b/models/sale.py
index aab3982..7e7b0ff 100644
--- a/models/sale.py
+++ b/models/sale.py
@@ -9,11 +9,8 @@ class AutreSaleOrder(models.Model):
 	beneficiaire_id = fields.Many2one('res.partner', string='Bénéficiaire', states={'draft': [('readonly', False)], 'sent': [('readonly', False)], 'sale': [('readonly', False)]}, domain=[('beneficiaire', '=', True)])
 
 	@api.multi
-	@api.onchange('partner_id')
-	def onchange_partner_id(self):
-		res = {}
-		if self.partner_id:
-			partner_ids = self.env['res.partner'].search([('societe_id.id', 'in', partner_id.id)])
-			print("------ partner_ids ------", str(partner_ids))
-			# res['domain'] = {'beneficiaire_id': [('place_id', '=', self.place.id)]}
-		return res
\ No newline at end of file
+	def _prepare_invoice(self):
+		invoice_vals = super(AutreSaleOrder, self)._prepare_invoice()
+		if self.beneficiaire_id:
+			invoice_vals['beneficiaire_id'] = self.beneficiaire_id.id
+		return invoice_vals
\ No newline at end of file
diff --git a/views/account_invoice_view.xml b/views/account_invoice_view.xml
new file mode 100644
index 0000000..5f7f58f
--- /dev/null
+++ b/views/account_invoice_view.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+    <data>
+
+        <record id="autrement_invoice_form" model="ir.ui.view">
+            <field name="name">autrement.account.invoice.form</field>
+            <field name="model">account.invoice</field>
+            <field name="inherit_id" ref="account.invoice_form"/>
+            <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/sale_view.xml b/views/sale_view.xml
index fa38b2a..4141af1 100644
--- a/views/sale_view.xml
+++ b/views/sale_view.xml
@@ -8,7 +8,7 @@
             <field name="inherit_id" ref="sale.view_order_form"/>
             <field name="arch" type="xml">
                 <xpath expr="//field[@name='partner_id']" position="after">
-                	<field name="beneficiaire_id"/>	
+                	<field name="beneficiaire_id" />	
                 </xpath>
             </field>
         </record>
diff --git a/wizard/__init__.py b/wizard/__init__.py
new file mode 100644
index 0000000..1eb17ff
--- /dev/null
+++ b/wizard/__init__.py
@@ -0,0 +1,3 @@
+# -*- coding: utf-8 -*-
+
+from . import sale_make_invoice_advance
diff --git a/wizard/sale_make_invoice_advance.py b/wizard/sale_make_invoice_advance.py
new file mode 100644
index 0000000..3d4e1da
--- /dev/null
+++ b/wizard/sale_make_invoice_advance.py
@@ -0,0 +1,17 @@
+# © 2019 Le Filament (<http://www.le-filament.com>)
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+import time
+
+from odoo import api, fields, models, _
+
+
+class AutreSaleAdvancePaymentInv(models.TransientModel):
+    _inherit = "sale.advance.payment.inv"
+
+    @api.multi
+    def _create_invoice(self, order, so_line, amount):
+        invoice = super(AutreSaleAdvancePaymentInv, self)._create_invoice(order,so_line,amount)
+        if order.beneficiaire_id:
+            invoice['beneficiaire_id'] = order.beneficiaire_id.id
+        return invoice
-- 
GitLab