From f9951890b5edcc566813b0359a0c345d1b02914d Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Mon, 4 Dec 2017 15:01:04 +0100 Subject: [PATCH] Port hr_holidays_lunch_voucher and hr_holidays_lunch_voucher_natixis to v10 --- hr_holidays_lunch_voucher/__init__.py | 1 + .../{__openerp__.py => __manifest__.py} | 10 ++++-- hr_holidays_lunch_voucher/company.py | 7 ++-- hr_holidays_lunch_voucher/hr_employee.py | 2 +- .../hr_employee_view.xml | 6 ++-- hr_holidays_lunch_voucher/hr_holidays.py | 3 +- .../hr_holidays_view.xml | 8 ++--- .../lunch_voucher_attribution.py | 3 +- .../lunch_voucher_attribution_view.xml | 8 ++--- hr_holidays_lunch_voucher/product_data.xml | 6 ++-- .../purchase_config_settings.py | 14 ++++++++ ....xml => purchase_config_settings_view.xml} | 16 ++++------ .../security/ir.model.access.csv | 2 +- .../security/lunch_voucher_security.xml | 6 ++-- hr_holidays_lunch_voucher/wizard/__init__.py | 2 +- ...days_post.py => hr_holidays_to_payslip.py} | 13 ++++---- ...ew.xml => hr_holidays_to_payslip_view.xml} | 16 ++++------ .../wizard/lunch_voucher_purchase.py | 32 ++++++++----------- .../wizard/lunch_voucher_purchase_view.xml | 10 +++--- hr_holidays_lunch_voucher_natixis/__init__.py | 1 + .../{__openerp__.py => __manifest__.py} | 2 +- hr_holidays_lunch_voucher_natixis/company.py | 2 +- .../purchase_config_settings.py | 15 +++++++++ ....xml => purchase_config_settings_view.xml} | 14 ++++---- .../wizard/lunch_voucher_purchase.py | 7 ++-- 25 files changed, 107 insertions(+), 99 deletions(-) rename hr_holidays_lunch_voucher/{__openerp__.py => __manifest__.py} (79%) create mode 100644 hr_holidays_lunch_voucher/purchase_config_settings.py rename hr_holidays_lunch_voucher/{company_view.xml => purchase_config_settings_view.xml} (60%) rename hr_holidays_lunch_voucher/wizard/{hr_holidays_post.py => hr_holidays_to_payslip.py} (89%) rename hr_holidays_lunch_voucher/wizard/{hr_holidays_post_view.xml => hr_holidays_to_payslip_view.xml} (66%) rename hr_holidays_lunch_voucher_natixis/{__openerp__.py => __manifest__.py} (92%) create mode 100644 hr_holidays_lunch_voucher_natixis/purchase_config_settings.py rename hr_holidays_lunch_voucher_natixis/{company_view.xml => purchase_config_settings_view.xml} (69%) diff --git a/hr_holidays_lunch_voucher/__init__.py b/hr_holidays_lunch_voucher/__init__.py index 1347170..a241241 100644 --- a/hr_holidays_lunch_voucher/__init__.py +++ b/hr_holidays_lunch_voucher/__init__.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- from . import company +from . import purchase_config_settings from . import hr_holidays from . import hr_employee from . import lunch_voucher_attribution diff --git a/hr_holidays_lunch_voucher/__openerp__.py b/hr_holidays_lunch_voucher/__manifest__.py similarity index 79% rename from hr_holidays_lunch_voucher/__openerp__.py rename to hr_holidays_lunch_voucher/__manifest__.py index 26eb855..a37d82d 100644 --- a/hr_holidays_lunch_voucher/__openerp__.py +++ b/hr_holidays_lunch_voucher/__manifest__.py @@ -12,17 +12,21 @@ 'description': '', 'author': 'Akretion', 'website': 'http://www.akretion.com', - 'depends': ['hr_holidays_usability', 'purchase'], + 'depends': [ + 'hr_holidays_usability', + 'purchase', + 'onchange_helper', + ], 'data': [ 'security/ir.model.access.csv', 'security/lunch_voucher_security.xml', 'product_data.xml', - 'company_view.xml', + 'purchase_config_settings_view.xml', 'wizard/lunch_voucher_purchase_view.xml', 'lunch_voucher_attribution_view.xml', 'hr_employee_view.xml', 'hr_holidays_view.xml', - 'wizard/hr_holidays_post_view.xml', + 'wizard/hr_holidays_to_payslip_view.xml', ], 'installable': True, } diff --git a/hr_holidays_lunch_voucher/company.py b/hr_holidays_lunch_voucher/company.py index 8ac3977..afa136d 100644 --- a/hr_holidays_lunch_voucher/company.py +++ b/hr_holidays_lunch_voucher/company.py @@ -3,8 +3,7 @@ # @author Alexis de Lattre # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from openerp import models, fields -import openerp.addons.decimal_precision as dp +from odoo import models, fields class ResCompany(models.Model): @@ -13,8 +12,8 @@ class ResCompany(models.Model): lunch_voucher_product_id = fields.Many2one( 'product.product', string='Lunch Voucher Product', ondelete='restrict') - lunch_voucher_employer_price = fields.Float( - 'Lunch Voucher Employer Price', digits=dp.get_precision('Account')) + lunch_voucher_employer_price = fields.Monetary( + 'Lunch Voucher Employer Price', currency_field='currency_id') # Add constrain to check that lunch_voucher_employer_price is between # 50% and 60% of the price of lunch_voucher_product_id for France diff --git a/hr_holidays_lunch_voucher/hr_employee.py b/hr_holidays_lunch_voucher/hr_employee.py index 20363a5..23caf1e 100644 --- a/hr_holidays_lunch_voucher/hr_employee.py +++ b/hr_holidays_lunch_voucher/hr_employee.py @@ -3,7 +3,7 @@ # @author Alexis de Lattre # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from openerp import models, fields +from odoo import models, fields class HrEmployee(models.Model): diff --git a/hr_holidays_lunch_voucher/hr_employee_view.xml b/hr_holidays_lunch_voucher/hr_employee_view.xml index 1a6ed22..076522e 100644 --- a/hr_holidays_lunch_voucher/hr_employee_view.xml +++ b/hr_holidays_lunch_voucher/hr_employee_view.xml @@ -5,8 +5,7 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). --> - - + @@ -21,5 +20,4 @@ - - + diff --git a/hr_holidays_lunch_voucher/hr_holidays.py b/hr_holidays_lunch_voucher/hr_holidays.py index cb16756..2bdfebd 100644 --- a/hr_holidays_lunch_voucher/hr_holidays.py +++ b/hr_holidays_lunch_voucher/hr_holidays.py @@ -3,7 +3,7 @@ # @author Alexis de Lattre # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from openerp import models, fields, api +from odoo import models, fields, api from dateutil.relativedelta import relativedelta @@ -18,7 +18,6 @@ class HrHolidays(models.Model): store=True, string='Lunch Vouchers to Deduct') @api.depends('employee_id', 'vacation_date_from', 'vacation_date_to') - @api.multi def _compute_lunch_voucher_remove_qty(self): hhpo = self.env['hr.holidays.public'] for hol in self: diff --git a/hr_holidays_lunch_voucher/hr_holidays_view.xml b/hr_holidays_lunch_voucher/hr_holidays_view.xml index 52bffe8..fb2ce95 100644 --- a/hr_holidays_lunch_voucher/hr_holidays_view.xml +++ b/hr_holidays_lunch_voucher/hr_holidays_view.xml @@ -5,8 +5,7 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). --> - - + @@ -29,11 +28,10 @@ - + - - + diff --git a/hr_holidays_lunch_voucher/lunch_voucher_attribution.py b/hr_holidays_lunch_voucher/lunch_voucher_attribution.py index a3451e2..8cb9046 100644 --- a/hr_holidays_lunch_voucher/lunch_voucher_attribution.py +++ b/hr_holidays_lunch_voucher/lunch_voucher_attribution.py @@ -3,7 +3,7 @@ # @author Alexis de Lattre # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from openerp import models, fields, api +from odoo import models, fields, api class LunchVoucherAttribution(models.Model): @@ -35,7 +35,6 @@ class LunchVoucherAttribution(models.Model): 'hr.holidays', 'lunch_voucher_id', readonly=True) @api.depends('month_work_days', 'holiday_ids.lunch_voucher_remove_qty') - @api.multi def _compute_qty(self): for rec in self: no_lunch_days = 0 diff --git a/hr_holidays_lunch_voucher/lunch_voucher_attribution_view.xml b/hr_holidays_lunch_voucher/lunch_voucher_attribution_view.xml index 12516ef..1342fd4 100644 --- a/hr_holidays_lunch_voucher/lunch_voucher_attribution_view.xml +++ b/hr_holidays_lunch_voucher/lunch_voucher_attribution_view.xml @@ -5,8 +5,7 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). --> - - + @@ -38,7 +37,7 @@ - + @@ -93,5 +92,4 @@ view_mode="form" target="new" /> - - + diff --git a/hr_holidays_lunch_voucher/product_data.xml b/hr_holidays_lunch_voucher/product_data.xml index 47749c6..34547a3 100644 --- a/hr_holidays_lunch_voucher/product_data.xml +++ b/hr_holidays_lunch_voucher/product_data.xml @@ -1,7 +1,6 @@ - - + @@ -23,5 +22,4 @@ - - + diff --git a/hr_holidays_lunch_voucher/purchase_config_settings.py b/hr_holidays_lunch_voucher/purchase_config_settings.py new file mode 100644 index 0000000..e33381b --- /dev/null +++ b/hr_holidays_lunch_voucher/purchase_config_settings.py @@ -0,0 +1,14 @@ +# -*- coding: utf-8 -*- +# © 2017 Akretion - Alexis de Lattre +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import fields, models + + +class PurchaseConfigSettings(models.TransientModel): + _inherit = 'purchase.config.settings' + + lunch_voucher_product_id = fields.Many2one( + related='company_id.lunch_voucher_product_id') + lunch_voucher_employer_price = fields.Monetary( + related='company_id.lunch_voucher_employer_price') diff --git a/hr_holidays_lunch_voucher/company_view.xml b/hr_holidays_lunch_voucher/purchase_config_settings_view.xml similarity index 60% rename from hr_holidays_lunch_voucher/company_view.xml rename to hr_holidays_lunch_voucher/purchase_config_settings_view.xml index aa2c37e..f03c95d 100644 --- a/hr_holidays_lunch_voucher/company_view.xml +++ b/hr_holidays_lunch_voucher/purchase_config_settings_view.xml @@ -5,16 +5,15 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). --> - - + - - lunch_voucher.company.form - res.company - + + lunch_voucher.purchase.config.settings.form + purchase.config.settings + - + @@ -25,5 +24,4 @@ - - + diff --git a/hr_holidays_lunch_voucher/security/ir.model.access.csv b/hr_holidays_lunch_voucher/security/ir.model.access.csv index bbab688..89bbaec 100644 --- a/hr_holidays_lunch_voucher/security/ir.model.access.csv +++ b/hr_holidays_lunch_voucher/security/ir.model.access.csv @@ -1,3 +1,3 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_lunch_voucher_attribution_full,Full access on lunch_voucher_attribution,model_lunch_voucher_attribution,base.group_hr_manager,1,1,1,1 +access_lunch_voucher_attribution_full,Full access on lunch_voucher_attribution,model_lunch_voucher_attribution,hr.group_hr_manager,1,1,1,1 access_lunch_voucher_attribution_read,Read access on lunch_voucher_attribution,model_lunch_voucher_attribution,base.group_user,1,0,0,0 diff --git a/hr_holidays_lunch_voucher/security/lunch_voucher_security.xml b/hr_holidays_lunch_voucher/security/lunch_voucher_security.xml index fa6acfa..fac3f3f 100644 --- a/hr_holidays_lunch_voucher/security/lunch_voucher_security.xml +++ b/hr_holidays_lunch_voucher/security/lunch_voucher_security.xml @@ -1,6 +1,5 @@ - - + @@ -24,5 +23,4 @@ - - + diff --git a/hr_holidays_lunch_voucher/wizard/__init__.py b/hr_holidays_lunch_voucher/wizard/__init__.py index 7791d6a..1580aad 100644 --- a/hr_holidays_lunch_voucher/wizard/__init__.py +++ b/hr_holidays_lunch_voucher/wizard/__init__.py @@ -1,4 +1,4 @@ # -*- encoding: utf-8 -*- -from . import hr_holidays_post +from . import hr_holidays_to_payslip from . import lunch_voucher_purchase diff --git a/hr_holidays_lunch_voucher/wizard/hr_holidays_post.py b/hr_holidays_lunch_voucher/wizard/hr_holidays_to_payslip.py similarity index 89% rename from hr_holidays_lunch_voucher/wizard/hr_holidays_post.py rename to hr_holidays_lunch_voucher/wizard/hr_holidays_to_payslip.py index 9967486..570f2f9 100644 --- a/hr_holidays_lunch_voucher/wizard/hr_holidays_post.py +++ b/hr_holidays_lunch_voucher/wizard/hr_holidays_to_payslip.py @@ -3,15 +3,15 @@ # @author Alexis de Lattre # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from openerp import models, fields, api +from odoo import models, fields, api from dateutil.relativedelta import relativedelta import logging logger = logging.getLogger(__name__) -class HrHolidaysPost(models.TransientModel): - _inherit = 'hr.holidays.post' +class HrHolidaysToPayslip(models.TransientModel): + _inherit = 'hr.holidays.to.payslip' lunch_voucher_po = fields.Boolean( string='Generate Lunch Voucher Purchase Order') @@ -19,7 +19,7 @@ class HrHolidaysPost(models.TransientModel): @api.model def default_get(self, fields_list): - res = super(HrHolidaysPost, self).default_get(fields_list) + res = super(HrHolidaysToPayslip, self).default_get(fields_list) hhpo = self.env['hr.holidays.public'] company = self.env.user.company_id if company.lunch_voucher_product_id: @@ -47,7 +47,6 @@ class HrHolidaysPost(models.TransientModel): res['work_days'] = work_days return res - @api.multi def run(self): self.ensure_one() lvao = self.env['lunch.voucher.attribution'] @@ -59,7 +58,7 @@ class HrHolidaysPost(models.TransientModel): lv_dict = {} for employee in employees: lv_dict[employee.id] = [] - for hol in self.holidays_to_post_ids: + for hol in self.holidays_to_payslip_ids: if not hol.lunch_voucher_id and hol.employee_id.id in lv_dict: lv_dict[hol.employee_id.id].append(hol.id) for employee_id, hol_ids in lv_dict.iteritems(): @@ -71,4 +70,4 @@ class HrHolidaysPost(models.TransientModel): if hol_ids: vals['holiday_ids'] = [(6, 0, hol_ids)] lvao.create(vals) - return super(HrHolidaysPost, self).run() + return super(HrHolidaysToPayslip, self).run() diff --git a/hr_holidays_lunch_voucher/wizard/hr_holidays_post_view.xml b/hr_holidays_lunch_voucher/wizard/hr_holidays_to_payslip_view.xml similarity index 66% rename from hr_holidays_lunch_voucher/wizard/hr_holidays_post_view.xml rename to hr_holidays_lunch_voucher/wizard/hr_holidays_to_payslip_view.xml index 2933eb5..cd69fe4 100644 --- a/hr_holidays_lunch_voucher/wizard/hr_holidays_post_view.xml +++ b/hr_holidays_lunch_voucher/wizard/hr_holidays_to_payslip_view.xml @@ -5,16 +5,15 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). --> - - + - - hr_holidays_post_form - hr.holidays.post - + + hr.holidays.to.payslip.form + hr.holidays.to.payslip + - + @@ -23,5 +22,4 @@ - - + diff --git a/hr_holidays_lunch_voucher/wizard/lunch_voucher_purchase.py b/hr_holidays_lunch_voucher/wizard/lunch_voucher_purchase.py index bd7f24e..503f690 100644 --- a/hr_holidays_lunch_voucher/wizard/lunch_voucher_purchase.py +++ b/hr_holidays_lunch_voucher/wizard/lunch_voucher_purchase.py @@ -3,15 +3,14 @@ # @author Alexis de Lattre # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from openerp import models, api, _ -from openerp.exceptions import Warning as UserError +from odoo import models, _ +from odoo.exceptions import UserError class LunchVoucherPurchase(models.TransientModel): _name = 'lunch.voucher.purchase' _description = 'Purchase Lunch Vouchers Wizard' - @api.multi def run(self): self.ensure_one() company = self.env.user.company_id @@ -45,24 +44,19 @@ class LunchVoucherPurchase(models.TransientModel): % lvoucher.employee_id.name) total_qty += lvoucher.qty - supplier = company.lunch_voucher_product_id.seller_id + supplier = company.lunch_voucher_product_id.seller_ids[0] pick_type_id = poo.default_get(['picking_type_id'])['picking_type_id'] - onchange_ptype_vals = poo.browse(False).onchange_picking_type_id( - pick_type_id) - vals = onchange_ptype_vals['value'] - onchange_vals = poo.browse(False).onchange_partner_id(supplier.id) - vals.update(onchange_vals['value']) - vals['partner_id'] = supplier.id + vals = {'picking_type_id': pick_type_id, 'partner_id': supplier.id} + vals = poo.play_onchanges(vals, ['picking_type_id']) + vals = poo.play_onchanges(vals, ['partner_id']) - product = company.lunch_voucher_product_id - onchange_product_vals = polo.browse(False).onchange_product_id( - vals.get('pricelist_id'), product.id, total_qty, False, - supplier.id, fiscal_position_id=vals.get('fiscal_position_id')) - lvals = onchange_product_vals['value'] - lvals['product_id'] = product.id - lvals['product_qty'] = total_qty - if lvals['taxes_id']: - lvals['taxes_id'] = [(6, 0, lvals['taxes_id'])] + lvals = { + 'product_id': company.lunch_voucher_product_id.id, + 'order_id': vals, 'product_qty': total_qty} + lvals = polo.play_onchanges(lvals, ['product_id']) + # TODO check lvals['taxes_id'] uses (6, 0, ...) + print "lvals=", lvals + lvals.pop('order_id') vals['order_line'] = [(0, 0, lvals)] po = poo.create(vals) lvouchers.write({'purchase_id': po.id}) diff --git a/hr_holidays_lunch_voucher/wizard/lunch_voucher_purchase_view.xml b/hr_holidays_lunch_voucher/wizard/lunch_voucher_purchase_view.xml index 772a4fd..5731954 100644 --- a/hr_holidays_lunch_voucher/wizard/lunch_voucher_purchase_view.xml +++ b/hr_holidays_lunch_voucher/wizard/lunch_voucher_purchase_view.xml @@ -5,8 +5,8 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). --> - - + + lunch_voucher_purchase_form @@ -18,7 +18,7 @@
@@ -32,5 +32,5 @@ new
-
-
+ + diff --git a/hr_holidays_lunch_voucher_natixis/__init__.py b/hr_holidays_lunch_voucher_natixis/__init__.py index ece3401..45ba755 100644 --- a/hr_holidays_lunch_voucher_natixis/__init__.py +++ b/hr_holidays_lunch_voucher_natixis/__init__.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- from . import company +from . import purchase_config_settings from . import wizard diff --git a/hr_holidays_lunch_voucher_natixis/__openerp__.py b/hr_holidays_lunch_voucher_natixis/__manifest__.py similarity index 92% rename from hr_holidays_lunch_voucher_natixis/__openerp__.py rename to hr_holidays_lunch_voucher_natixis/__manifest__.py index c0e41cf..8ddd607 100644 --- a/hr_holidays_lunch_voucher_natixis/__openerp__.py +++ b/hr_holidays_lunch_voucher_natixis/__manifest__.py @@ -14,7 +14,7 @@ 'website': 'http://www.akretion.com', 'depends': ['hr_holidays_lunch_voucher'], 'data': [ - 'company_view.xml', + 'purchase_config_settings_view.xml', ], 'installable': True, } diff --git a/hr_holidays_lunch_voucher_natixis/company.py b/hr_holidays_lunch_voucher_natixis/company.py index d68d8c7..2700206 100644 --- a/hr_holidays_lunch_voucher_natixis/company.py +++ b/hr_holidays_lunch_voucher_natixis/company.py @@ -3,7 +3,7 @@ # @author Alexis de Lattre # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from openerp import models, fields +from odoo import models, fields class ResCompany(models.Model): diff --git a/hr_holidays_lunch_voucher_natixis/purchase_config_settings.py b/hr_holidays_lunch_voucher_natixis/purchase_config_settings.py new file mode 100644 index 0000000..295cf96 --- /dev/null +++ b/hr_holidays_lunch_voucher_natixis/purchase_config_settings.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +# © 2017 Akretion (http://www.akretion.com) +# @author Alexis de Lattre +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import models, fields + + +class PurchaseConfigSettings(models.TransientModel): + _inherit = 'purchase.config.settings' + + lunch_voucher_natixis_customer_code = fields.Char( + related='company_id.lunch_voucher_natixis_customer_code') + lunch_voucher_natixis_delivery_code = fields.Char( + related='company_id.lunch_voucher_natixis_delivery_code') diff --git a/hr_holidays_lunch_voucher_natixis/company_view.xml b/hr_holidays_lunch_voucher_natixis/purchase_config_settings_view.xml similarity index 69% rename from hr_holidays_lunch_voucher_natixis/company_view.xml rename to hr_holidays_lunch_voucher_natixis/purchase_config_settings_view.xml index 8c1ded6..61ce0a2 100644 --- a/hr_holidays_lunch_voucher_natixis/company_view.xml +++ b/hr_holidays_lunch_voucher_natixis/purchase_config_settings_view.xml @@ -5,14 +5,13 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). --> - - + - - natixis.lunch_voucher.company.form - res.company - + + natixis.lunch_voucher.purchase.config.settings.form + purchase.config.settings + @@ -22,5 +21,4 @@ - - + diff --git a/hr_holidays_lunch_voucher_natixis/wizard/lunch_voucher_purchase.py b/hr_holidays_lunch_voucher_natixis/wizard/lunch_voucher_purchase.py index eab7495..52b17eb 100644 --- a/hr_holidays_lunch_voucher_natixis/wizard/lunch_voucher_purchase.py +++ b/hr_holidays_lunch_voucher_natixis/wizard/lunch_voucher_purchase.py @@ -3,15 +3,14 @@ # @author Alexis de Lattre # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from openerp import models, fields, api, _ -from openerp.exceptions import Warning as UserError -from openerp.tools import float_is_zero +from odoo import models, fields, _ +from odoo.exceptions import UserError +from odoo.tools import float_is_zero class LunchVoucherPurchase(models.TransientModel): _inherit = 'lunch.voucher.purchase' - @api.multi def run(self): self.ensure_one() action = super(LunchVoucherPurchase, self).run()