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