KevinBro
3 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 487 additions and 0 deletions
-
54account_financial_test_data/README.rst
-
6account_financial_test_data/__init__.py
-
24account_financial_test_data/__openerp__.py
-
43account_financial_test_data/data/account_auto_installer.xml
-
81account_financial_test_data/data/partners_data.xml
-
9account_financial_test_data/data/products_data.xml
-
8account_financial_test_data/data/settings_data.xml
-
5account_financial_test_data/models/__init__.py
-
36account_financial_test_data/models/account_installer.py
-
221account_financial_test_data/pos_install.py
-
BINaccount_financial_test_data/static/description/icon.png
@ -0,0 +1,54 @@ |
|||||
|
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg |
||||
|
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html |
||||
|
:alt: License: AGPL-3 |
||||
|
|
||||
|
=========================== |
||||
|
Account financial test data |
||||
|
=========================== |
||||
|
|
||||
|
This module provides demo data for the repo 'account-financial-reporting' |
||||
|
and will allow people to test all reports properly and make tests as well. |
||||
|
|
||||
|
Usage |
||||
|
===== |
||||
|
|
||||
|
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas |
||||
|
:alt: Try me on Runbot |
||||
|
:target: https://runbot.odoo-community.org/runbot/91/9.0 |
||||
|
|
||||
|
Bug Tracker |
||||
|
=========== |
||||
|
|
||||
|
Bugs are tracked on `GitHub Issues |
||||
|
<https://github.com/OCA/account-financial-reporting/issues>`_. In case of trouble, please |
||||
|
check there if your issue has already been reported. If you spotted it first, |
||||
|
help us smashing it by providing a detailed and welcomed feedback. |
||||
|
|
||||
|
Credits |
||||
|
======= |
||||
|
|
||||
|
Images |
||||
|
------ |
||||
|
|
||||
|
* Odoo Community Association: `Icon <https://github.com/OCA/maintainer-tools/blob/master/template/module/static/description/icon.svg>`_. |
||||
|
|
||||
|
Contributors |
||||
|
------------ |
||||
|
|
||||
|
* Taktik |
||||
|
* Alex Comba <alex.comba@agilebg.com> |
||||
|
|
||||
|
Maintainer |
||||
|
---------- |
||||
|
|
||||
|
.. image:: https://odoo-community.org/logo.png |
||||
|
:alt: Odoo Community Association |
||||
|
:target: https://odoo-community.org |
||||
|
|
||||
|
This module is maintained by the OCA. |
||||
|
|
||||
|
OCA, or the Odoo Community Association, is a nonprofit organization whose |
||||
|
mission is to support the collaborative development of Odoo features and |
||||
|
promote its widespread use. |
||||
|
|
||||
|
To contribute to this module, please visit https://odoo-community.org. |
@ -0,0 +1,6 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# © 2016 Taktik |
||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). |
||||
|
|
||||
|
from . import models |
||||
|
from . pos_install import post_init_hook |
@ -0,0 +1,24 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# © 2016 Taktik |
||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). |
||||
|
|
||||
|
{ |
||||
|
'name': 'Account financial test data', |
||||
|
'version': '9.0.1.0.0', |
||||
|
'license': 'AGPL-3', |
||||
|
'author': "Taktik, Odoo Community Association (OCA)", |
||||
|
'category': 'Other', |
||||
|
'depends': [ |
||||
|
"account_accountant", |
||||
|
"l10n_fr", |
||||
|
], |
||||
|
'demo': [], |
||||
|
'data': [ |
||||
|
"data/settings_data.xml", |
||||
|
"data/account_auto_installer.xml", |
||||
|
"data/partners_data.xml", |
||||
|
"data/products_data.xml", |
||||
|
], |
||||
|
'post_init_hook': 'post_init_hook', |
||||
|
'installable': True, |
||||
|
} |
@ -0,0 +1,43 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<openerp> |
||||
|
<data noupdate="1"> |
||||
|
|
||||
|
<!-- Add a server action and a todo action to set accounting options for all companies without popup window --> |
||||
|
<record id="auto_config_charts_action_server" model="ir.actions.server"> |
||||
|
<field name="name">Set Accounting Options for all Companies</field> |
||||
|
<field name="condition">True</field> |
||||
|
<field name="type">ir.actions.server</field> |
||||
|
<field name="model_id" ref="account.model_wizard_multi_charts_accounts"/> |
||||
|
<field name="state">code</field> |
||||
|
<field name="code"> |
||||
|
self.auto_execute(cr, uid, context=context) |
||||
|
config = self.next(cr, uid, [], context=context) or {} |
||||
|
if config.get('type') not in ('ir.actions.act_window_close',): |
||||
|
action = config |
||||
|
</field> |
||||
|
</record> |
||||
|
|
||||
|
<record id="auto_config_charts_action_todo" model="ir.actions.todo"> |
||||
|
<field name="action_id" ref="auto_config_charts_action_server"/> |
||||
|
<field name="sequence">10</field> |
||||
|
<field name="type">automatic</field> |
||||
|
<field name="state">open</field> |
||||
|
</record> |
||||
|
|
||||
|
<record id="wmca-1" model="wizard.multi.charts.accounts"> |
||||
|
<field name="company_id" ref="base.main_company"/> |
||||
|
<field name="only_one_chart_template" eval="1"/> |
||||
|
<field name="complete_tax_set" eval="1"/> |
||||
|
<field name="currency_id" ref="base.EUR"/> |
||||
|
<field name="chart_template_id" ref="l10n_fr.l10n_fr_pcg_chart_template"/> |
||||
|
<field name="sale_tax" ref="l10n_fr.tva_normale"/> |
||||
|
<field name="purchase_tax" ref="l10n_fr.tva_acq_normale"/> |
||||
|
<field name="transfer_account_id" ref="l10n_fr.pcg_58"/> |
||||
|
<field name="code_digits" eval="6"/> |
||||
|
</record> |
||||
|
|
||||
|
<!-- Execute wizard multi charts accounts --> |
||||
|
<function model="wizard.multi.charts.accounts" name="auto_execute"/> |
||||
|
|
||||
|
</data> |
||||
|
</openerp> |
@ -0,0 +1,81 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<openerp> |
||||
|
<data noupdate="1"> |
||||
|
<!--Partner a--> |
||||
|
<record id="data_partner_a" model="res.partner" |
||||
|
context="{'default_company_type': 'person'}"> |
||||
|
<field name="name">PARTNER A</field> |
||||
|
<field name="company_id" ref="base.main_company"/> |
||||
|
<field name="customer" eval="True"/> |
||||
|
<field name="supplier" eval="False"/> |
||||
|
<field name="notify_email">always</field> |
||||
|
<field name="currency_id" ref="base.EUR"/> |
||||
|
</record> |
||||
|
|
||||
|
<!--Partner b--> |
||||
|
<record id="data_partner_b" model="res.partner" |
||||
|
context="{'default_company_type': 'person'}"> |
||||
|
<field name="name">PARTNER B</field> |
||||
|
<field name="company_id" ref="base.main_company"/> |
||||
|
<field name="customer" eval="True"/> |
||||
|
<field name="supplier" eval="False"/> |
||||
|
<field name="notify_email">always</field> |
||||
|
<field name="currency_id" ref="base.EUR"/> |
||||
|
</record> |
||||
|
|
||||
|
<!--Partner c--> |
||||
|
<record id="data_partner_c" model="res.partner" |
||||
|
context="{'default_company_type': 'person'}"> |
||||
|
<field name="name">PARTNER C</field> |
||||
|
<field name="company_id" ref="base.main_company"/> |
||||
|
<field name="customer" eval="True"/> |
||||
|
<field name="supplier" eval="False"/> |
||||
|
<field name="notify_email">always</field> |
||||
|
<field name="currency_id" ref="base.EUR"/> |
||||
|
</record> |
||||
|
|
||||
|
<!--Partner d--> |
||||
|
<record id="data_partner_d" model="res.partner" |
||||
|
context="{'default_company_type': 'person'}"> |
||||
|
<field name="name">PARTNER D</field> |
||||
|
<field name="company_id" ref="base.main_company"/> |
||||
|
<field name="customer" eval="True"/> |
||||
|
<field name="supplier" eval="False"/> |
||||
|
<field name="notify_email">always</field> |
||||
|
<field name="currency_id" ref="base.EUR"/> |
||||
|
</record> |
||||
|
|
||||
|
<!--Partner e--> |
||||
|
<record id="data_partner_e" model="res.partner" |
||||
|
context="{'default_company_type': 'person'}"> |
||||
|
<field name="name">PARTNER E</field> |
||||
|
<field name="company_id" ref="base.main_company"/> |
||||
|
<field name="customer" eval="True"/> |
||||
|
<field name="supplier" eval="False"/> |
||||
|
<field name="notify_email">always</field> |
||||
|
<field name="currency_id" ref="base.EUR"/> |
||||
|
</record> |
||||
|
|
||||
|
<!--Partner f--> |
||||
|
<record id="data_partner_f" model="res.partner" |
||||
|
context="{'default_company_type': 'person'}"> |
||||
|
<field name="name">PARTNER F</field> |
||||
|
<field name="company_id" ref="base.main_company"/> |
||||
|
<field name="customer" eval="True"/> |
||||
|
<field name="supplier" eval="False"/> |
||||
|
<field name="notify_email">always</field> |
||||
|
<field name="currency_id" ref="base.EUR"/> |
||||
|
</record> |
||||
|
|
||||
|
<!--Partner g--> |
||||
|
<record id="data_partner_g" model="res.partner" |
||||
|
context="{'default_company_type': 'person'}"> |
||||
|
<field name="name">PARTNER G</field> |
||||
|
<field name="company_id" ref="base.main_company"/> |
||||
|
<field name="customer" eval="True"/> |
||||
|
<field name="supplier" eval="False"/> |
||||
|
<field name="notify_email">always</field> |
||||
|
<field name="currency_id" ref="base.EUR"/> |
||||
|
</record> |
||||
|
</data> |
||||
|
</openerp> |
@ -0,0 +1,9 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<openerp> |
||||
|
<data noupdate="0"> |
||||
|
<record id="data_product_a" model="product.product"> |
||||
|
<field name="name">SALES</field> |
||||
|
<field name="sale_ok">1</field> |
||||
|
</record> |
||||
|
</data> |
||||
|
</openerp> |
@ -0,0 +1,8 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<openerp> |
||||
|
<data noupdate="1"> |
||||
|
<record model="res.partner" id="base.partner_root"> |
||||
|
<field name="tz">Europe/Paris</field> |
||||
|
</record> |
||||
|
</data> |
||||
|
</openerp> |
@ -0,0 +1,5 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# © 2016 Taktik |
||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). |
||||
|
|
||||
|
from . import account_installer |
@ -0,0 +1,36 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# © 2016 Taktik |
||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). |
||||
|
|
||||
|
import logging |
||||
|
from openerp import models, api |
||||
|
|
||||
|
_logger = logging.getLogger(__name__) |
||||
|
|
||||
|
|
||||
|
class AccountAccountTemplate(models.Model): |
||||
|
_inherit = "account.account.template" |
||||
|
|
||||
|
@api.model |
||||
|
def generate_account( |
||||
|
self, |
||||
|
chart_template_id, |
||||
|
tax_template_ref, |
||||
|
acc_template_ref, |
||||
|
code_digits, |
||||
|
company_id): |
||||
|
res = super(AccountAccountTemplate, self).generate_account( |
||||
|
chart_template_id, |
||||
|
tax_template_ref, |
||||
|
acc_template_ref, |
||||
|
code_digits, |
||||
|
company_id |
||||
|
) |
||||
|
main_company_id = self.env['ir.model.data'].xmlid_to_res_id( |
||||
|
'base.main_company' |
||||
|
) |
||||
|
if company_id == main_company_id: |
||||
|
account_ids = [] |
||||
|
for template_account_id in res: |
||||
|
account_ids.append(res[template_account_id]) |
||||
|
return res |
@ -0,0 +1,221 @@ |
|||||
|
# -*- 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() |
After Width: 128 | Height: 128 | Size: 9.2 KiB |
Write
Preview
Loading…
Cancel
Save
Reference in new issue