diff --git a/__init__.py b/__init__.py index 9a7e03eded37392e2614b6537164db042167bc4c..c536983e2b228ec4447202bef589d9cf2cef9b08 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 1c8be11e58d40de7b527b196ad96bd9107e2b55e..86f6a3e0deba847ec14acbe1db6ee4fe6413bec8 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 d0c9b1ad9c50f47b3a5973e67f4cb34620dbb0e1..70ca04ad89fb07c9862f63d4aa406a9e181e2620 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 0000000000000000000000000000000000000000..1aa374545805f13ea58379b82ee3c692e6439121 --- /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 fb3fd8a3c7fd76602307f074aa8e141fc6d78a2a..389e0ff6f11f65c87a73dadb6917f83083867211 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 aab39824960681da7157214b99a8b360e8224325..7e7b0ffccaa999df6743fa8b7ef091572b5b4c27 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 0000000000000000000000000000000000000000..5f7f58f18118c9f2921f9614e046cd96494e0da7 --- /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 fa38b2aa6603614f38921b8750eda741dab7096b..4141af1e230357b355767e39e64fb1489f13aa7e 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 0000000000000000000000000000000000000000..1eb17ffa15c4f40b7a6793d10d3f8b620b113d8b --- /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 0000000000000000000000000000000000000000..3d4e1da279545f9fd64bb19c318e29dbc721a18d --- /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