Files
odoo-usability/hr_expense_usability/post_install.py
2017-06-08 00:53:39 +02:00

90 lines
3.6 KiB
Python

# -*- coding: utf-8 -*-
# © 2016-2017 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import api, SUPERUSER_ID
PRODUCTS = {
'FR': [
{'default_code': '1-3CV_0-5000km',
'name': u"Frais kilométriques: 1-3 CV, < 5 000 km",
'cost': 0.41},
{'default_code': '4CV_0-5000km',
'name': u"Frais kilométriques: 4 CV, < 5 000 km",
'cost': 0.493},
{'default_code': '5CV_0-5000km',
'name': u"Frais kilométriques: 5 CV, < 5 000 km",
'cost': 0.543},
{'default_code': '6CV_0-5000km',
'name': u"Frais kilométriques: 6 CV, < 5 000 km",
'cost': 0.568},
{'default_code': '7+CV_0-5000km',
'name': u"Frais kilométriques: 7+ CV, < 5 000 km",
'cost': 0.595},
{'default_code': '1-3CV_5-20000km',
'name': u"Frais kilométriques: 1-3 CV, 5-20 000 km",
'cost': 0.245},
{'default_code': '4CV_5-20000km',
'name': u"Frais kilométriques: 4 CV, 5-20 000 km",
'cost': 0.277},
{'default_code': '5CV_5-20000km',
'name': u"Frais kilométriques: 5 CV, 5-20 000 km",
'cost': 0.305},
{'default_code': '6CV_5-20000km',
'name': u"Frais kilométriques: 6 CV, 5-20 000 km",
'cost': 0.32},
{'default_code': '7+CV_5-20000km',
'name': u"Frais kilométriques: 7+ CV, 5-20 000 km",
'cost': 0.337},
{'default_code': '1-3CV_+20000km',
'name': u"Frais kilométriques: 1-3 CV, > 20 000 km",
'cost': 0.245},
{'default_code': '4CV_+20000km',
'name': u"Frais kilométriques: 4 CV, > 20 000 km",
'cost': 0.277},
{'default_code': '5CV_+20000km',
'name': u"Frais kilométriques: 5 CV, > 20 000 km",
'cost': 0.305},
{'default_code': '6CV_+20000km',
'name': u"Frais kilométriques: 6 CV, > 20 000 km",
'cost': 0.32},
{'default_code': '7+CV_+20000km',
'name': u"Frais kilométriques: 7+ CV, > 20 000 km",
'cost': 0.337},
]
}
def create_private_car_expense_products(cr, registry):
with api.Environment.manage():
env = api.Environment(cr, SUPERUSER_ID, {})
companies = env['res.company'].search([])
country_codes = []
for company in companies:
company_country_code = company.country_id.code and\
company.country_id.code.upper() or False
if company_country_code not in country_codes:
country_codes.append(company_country_code)
categ_id = env.ref('hr_expense.cat_expense').id
km_uom_id = env.ref('product.product_uom_km').id
for country_code in country_codes:
if country_code in PRODUCTS:
for product in PRODUCTS[country_code]:
env['product.product'].create({
'name': product['name'],
'default_code': product.get('default_code'),
'categ_id': categ_id,
'sale_ok': False,
'purchase_ok': False,
'can_be_expensed': False,
'private_car_expense_ok': True,
'type': 'service',
'list_price': False,
'standard_price': product['cost'],
'uom_id': km_uom_id,
'uom_po_id': km_uom_id,
'taxes_id': False,
'supplier_taxes_id': False,
})
return