You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

221 lines
7.1 KiB

# -*- coding: utf-8 -*-
from datetime import date, datetime
from openerp import SUPERUSER_ID, api
# -*- coding: utf-8 -*-
# © 2016 Taktik
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
def post_init_hook(cr, registry):
def update_partners():
"""
Set the right account on partners
"""
partner_a = env.ref('account_financial_test_data.data_partner_a')
partner_b = env.ref('account_financial_test_data.data_partner_b')
partner_c = env.ref('account_financial_test_data.data_partner_c')
partner_d = env.ref('account_financial_test_data.data_partner_d')
partner_e = env.ref('account_financial_test_data.data_partner_e')
partner_f = env.ref('account_financial_test_data.data_partner_f')
partner_g = env.ref('account_financial_test_data.data_partner_g')
account_a_receivable = env['account.account'].search(
[('code', '=', '411700')]
)
account_receivable = env['account.account'].search(
[('code', '=', '411100')]
)
account_payable = env['account.account'].search(
[('code', '=', '401100')]
)
partner_a.property_account_receivable_id = account_a_receivable[0]
partner_a.property_account_payable_id = account_payable[0]
partners_list = [
partner_b,
partner_c,
partner_d,
partner_e,
partner_f,
partner_g
]
for partner in partners_list:
partner.property_account_receivable_id = account_receivable[0]
partner.property_account_payable_id = account_payable[0]
return True
def update_account_settings():
"""
Configure account settings
"""
account_setting_obj = env['account.config.settings']
account_setting = account_setting_obj.create({})
account_setting.group_multi_currency = True
account_setting.default_sale_tax_id = env.ref('l10n_fr.tva_normale').id
account_setting.default_purchase_tax_id = env.ref(
'l10n_fr.tva_normale').id
account_setting.execute()
return True
def update_account():
"""
Change the name and currency of 411700
"""
account_to_update = env['account.account'].search(
[('code', '=', '411700')]
)[0]
account_to_update.name = "Clients - USD"
account_to_update.currency_id = env.ref('base.USD').id
return True
def update_product():
"""
Update the product with the right settings
"""
product = env.ref('account_financial_test_data.data_product_a')
product.standard_price = 1000
product.lst_price = 1000
product.taxes_id = [
(6, 0, [env.ref('l10n_fr.tva_normale').id])
]
product.supplier_taxes_id = [
(6, 0, [env.ref('l10n_fr.tva_acq_normale_TTC').id])
]
income_account = env['account.account'].search([
('code', '=', '707100')
])[0]
expense_account = env['account.account'].search([
('code', '=', '607100')
])[0]
product.property_account_income_id = income_account
product.property_account_expense_id = expense_account
return True
def create_invoices():
"""
Creates all necessary invoices
"""
now = datetime.now()
this_year = now.year
last_year = now.year - 1
invoice_obj = env['account.invoice']
# invoice_a
invoice_obj.create({
'partner_id': env.ref(
'account_financial_test_data.data_partner_c').id,
'account_id': env.ref(
'account_financial_test_data.data_partner_c'
).property_account_receivable_id.id,
'type': 'out_invoice',
'date_invoice': date(last_year, 1, 5),
'date_due': date(last_year, 1, 31),
})
# invoice_b
invoice_obj.create({
'partner_id': env.ref(
'account_financial_test_data.data_partner_a').id,
'type': 'out_invoice',
'account_id': env.ref(
'account_financial_test_data.data_partner_a'
).property_account_receivable_id.id,
'date_invoice': date(last_year, 1, 5),
'date_due': date(last_year, 2, 4),
})
# invoice_c
invoice_obj.create({
'partner_id': env.ref(
'account_financial_test_data.data_partner_d').id,
'type': 'out_invoice',
'account_id': env.ref(
'account_financial_test_data.data_partner_d'
).property_account_receivable_id.id,
'date_invoice': date(last_year, 12, 11),
'date_due': date(this_year, 3, 10),
})
# invoice_d
invoice_obj.create({
'partner_id': env.ref(
'account_financial_test_data.data_partner_g').id,
'type': 'out_refund',
'account_id': env.ref(
'account_financial_test_data.data_partner_g'
).property_account_receivable_id.id,
'date_invoice': date(this_year, 1, 3),
'date_due': date(this_year, 4, 15),
})
# invoice_e
invoice_obj.create({
'partner_id': env.ref(
'account_financial_test_data.data_partner_b').id,
'type': 'out_invoice',
'account_id': env.ref(
'account_financial_test_data.data_partner_b'
).property_account_receivable_id.id,
'date_invoice': date(this_year, 2, 3),
'date_due': date(this_year, 2, 15),
})
# invoice_f
invoice_obj.create({
'partner_id': env.ref(
'account_financial_test_data.data_partner_a').id,
'type': 'out_invoice',
'account_id': env.ref(
'account_financial_test_data.data_partner_a'
).property_account_receivable_id.id,
'date_invoice': date(this_year, 2, 23),
'date_due': date(this_year, 3, 24),
})
# invoice_g
invoice_obj.create({
'partner_id': env.ref(
'account_financial_test_data.data_partner_g').id,
'type': 'out_invoice',
'account_id': env.ref(
'account_financial_test_data.data_partner_g'
).property_account_receivable_id.id,
'date_invoice': date(this_year, 3, 17),
'date_due': date(this_year, 4, 15),
})
# invoice_h
invoice_obj.create({
'partner_id': env.ref(
'account_financial_test_data.data_partner_f').id,
'type': 'out_invoice',
'account_id': env.ref(
'account_financial_test_data.data_partner_f'
).property_account_receivable_id.id,
'date_invoice': date(this_year, 3, 17),
'date_due': date(this_year, 4, 15),
})
return True
env = api.Environment(cr, SUPERUSER_ID, {})
update_partners()
update_account_settings()
update_account()
update_product()
create_invoices()