[IMP] account: Convert yml demo files to xml

NB: the account.move and the account.move.lines creation have been dropped as they were not created in yml due to the if condition.
This commit is contained in:
Yannick Tivisse
2017-11-16 14:49:06 +01:00
parent 6fb8e51b6d
commit 83d5aee748
5 changed files with 266 additions and 257 deletions
@@ -1,70 +0,0 @@
-
Create demo bank statement
-
!python {model: ir.model.data, id: False} : |
default_company = self.env['res.company']._company_default_get('account.journal')
journal = self.env['account.journal'].search([('type', '=', 'bank'), ('company_id', '=', default_company.id)], limit=1)
import time
if journal:
vals = {
'name': 'demo_bank_statement_1',
'journal_id': journal.id,
'date': time.strftime('%Y')+'-01-01',
'name': "BNK/2014/001",
'balance_end_real': '8998.2',
'balance_start': 5103.0
}
self._update('account.bank.statement', 'account', vals, 'demo_bank_statement_1')
vals = {
'ref': '',
'statement_id': ref('account.demo_bank_statement_1'),
'sequence': 1,
'name': "SAJ/2014/002 and SAJ/2014/003",
'journal_id': journal.id,
'amount': 1175.0,
'date': time.strftime('%Y')+'-01-01',
'partner_id': ref('base.res_partner_2'),
}
self._update('account.bank.statement.line', 'account', vals, 'demo_bank_statement_line_1')
vals = {
'ref': '',
'statement_id': ref('account.demo_bank_statement_1'),
'sequence': 2,
'name': "Bank fees",
'journal_id': journal.id,
'amount': -32.58,
'date': time.strftime('%Y')+'-01-01',
}
self._update('account.bank.statement.line', 'account', vals, 'demo_bank_statement_line_2')
vals = {
'ref': '',
'statement_id': ref('account.demo_bank_statement_1'),
'sequence': 3,
'name': "Prepayment",
'journal_id': journal.id,
'amount': 650.0,
'date': time.strftime('%Y')+'-01-01',
'partner_id': ref('base.res_partner_12'),
}
self._update('account.bank.statement.line', 'account', vals, 'demo_bank_statement_line_3')
vals = {
'ref': '',
'statement_id': ref('account.demo_bank_statement_1'),
'sequence': 4,
'name': "First 2000 € of SAJ/2014/001",
'journal_id': journal.id,
'amount': 2000.0,
'date': time.strftime('%Y')+'-01-01',
'partner_id': ref('base.res_partner_12'),
}
self._update('account.bank.statement.line', 'account', vals, 'demo_bank_statement_line_4')
vals = {
'ref': '',
'statement_id': ref('account.demo_bank_statement_1'),
'sequence': 5,
'name': "Last Year Interests",
'journal_id': journal.id,
'amount': 102.78,
'date': time.strftime('%Y')+'-01-01',
}
self._update('account.bank.statement.line', 'account', vals, 'demo_bank_statement_line_5')
@@ -1,185 +0,0 @@
-
Set the context for customer invoices because the 'type' field is readonly in invoice form views, so it value won't be considered by the yaml import
-
!record {model: account.invoice, id: demo_invoice_1}:
partner_id: base.res_partner_12
user_id: base.user_demo
reference_type: none
payment_term_id: account.account_payment_term
type: 'out_invoice'
date_invoice: !eval time.strftime('%Y-%m')+'-01'
invoice_line_ids:
- product_id: product.consu_delivery_02
price_unit: 642.0
quantity: 5
- product_id: product.consu_delivery_03
price_unit: 280.0
quantity: 5.0
-
!python {model: account.invoice, id: demo_invoice_1}:
self.action_invoice_open()
-
!record {model: account.invoice, id: demo_invoice_2}:
partner_id: base.res_partner_2
type: 'out_invoice'
date_invoice: !eval time.strftime('%Y-%m')+'-08'
invoice_line_ids:
- product_id: product.consu_delivery_03
price_unit: 50.0
quantity: 3
- product_id: product.consu_delivery_01
price_unit: 25
quantity: 20
-
!python {model: account.invoice, id: demo_invoice_2}:
self.action_invoice_open()
-
!record {model: account.invoice, id: demo_invoice_3}:
partner_id: base.res_partner_2
type: 'out_invoice'
date_invoice: !eval time.strftime('%Y-%m')+'-08'
invoice_line_ids:
- product_id: product.consu_delivery_01
price_unit: 90.0
quantity: 5
- product_id: product.consu_delivery_03
price_unit: 15.0
quantity: 5.0
-
!python {model: account.invoice, id: demo_invoice_3}:
self.action_invoice_open()
-
Create an invoice that will generate a followup
-
!record {model: account.invoice, id: demo_invoice_followup}:
partner_id: base.res_partner_2
user_id: base.user_demo
reference_type: none
payment_term_id: account.account_payment_term_immediate
type: 'out_invoice'
date_invoice: !eval (datetime.today() + timedelta(days=-15)).strftime('%Y-%m-%d')
invoice_line_ids:
- product_id: product.consu_delivery_02
price_unit: 642.0
quantity: 5
- product_id: product.consu_delivery_03
price_unit: 280.0
quantity: 5.0
-
!python {model: account.invoice, id: demo_invoice_followup}:
self.action_invoice_open()
-
Set the context for supplier bills because the 'type' field is readonly in invoice form views, so it value won't be considered by the yaml import
-
!context
type: 'in_invoice'
-
!record {model: account.invoice, id: demo_invoice_0}:
partner_id: base.res_partner_12
user_id: base.user_demo
reference_type: none
payment_term_id: account.account_payment_term
type: 'in_invoice'
date_invoice: !eval time.strftime('%Y-%m')+'-01'
invoice_line_ids:
- price_unit: 10.0
quantity: 1.0
product_id: product.product_delivery_01
uom_id: product.product_uom_unit
- price_unit: 4.0
quantity: 1.0
product_id: product.product_order_01
uom_id: product.product_uom_unit
-
!record {model: account.invoice, id: demo_invoice_january_wages}:
partner_id: base.res_partner_12
type: 'in_invoice'
date_invoice: !eval time.strftime('%Y-%m')+'-01'
-
!python {model: ir.model.data, id: False} : |
line_vals = {
'invoice_id': ref('demo_invoice_january_wages'),
'name': "CEO wages",
'price_unit': 10000,
}
default_company = self.env['res.company']._company_default_get('account.account')
account = self.env['account.account'].search([('tag_ids', 'in', [ref('account.demo_ceo_wages_account')]), ('company_id', '=', default_company.id)], limit=1)
if not account:
account = self.env['account.account'].search([('user_type_id', '=', ref('account.data_account_type_expenses')), ('company_id', '=', default_company.id)], limit=1)
if account:
line_vals['account_id'] = account.id
self._update('account.invoice.line', 'account', line_vals, 'ceo_wages_line')
self.env['account.invoice'].browse(ref('demo_invoice_january_wages')).action_invoice_open()
-
!record {model: account.invoice, id: demo_invoice_equipment_purchase}:
partner_id: base.res_partner_1
type: 'in_invoice'
date_invoice: !eval time.strftime('%Y-%m')+'-15'
-
!python {model: ir.model.data, id: False} : |
line_vals = {
'invoice_id': ref('demo_invoice_equipment_purchase'),
'name': "Coffee Machine with huge 'employee\'s performances boosting perk'",
'price_unit': 4999.99,
}
account_default_company = self.env['res.company']._company_default_get('account.account')
account_id = self.env['account.account'].search([('tag_ids', 'in', [ref('account.demo_coffee_machine_account')]), ('company_id', '=', account_default_company.id)], limit=1).id
if not account_id:
account_id = self.env['account.account'].search([('user_type_id', '=', ref('account.data_account_type_expenses')), ('company_id', '=', account_default_company.id)], limit=1).id
if account_id:
line_vals['account_id'] = account_id
tax_default_company = self.env['res.company']._company_default_get('account.tax')
tax_id = self.env['account.tax'].search([('type_tax_use', '=', 'purchase'), ('amount', '>', 0), ('company_id', '=', tax_default_company.id)], limit=1).id
if tax_id:
line_vals['invoice_line_tax_ids'] = [(6, 0, [tax_id])]
self._update('account.invoice.line', 'account', line_vals, 'coffee_machine_line')
self.env['account.invoice'].browse(ref('demo_invoice_equipment_purchase'))._onchange_invoice_line_ids()
self.env['account.invoice'].browse(ref('demo_invoice_equipment_purchase')).action_invoice_open()
-
!python {model: account.bank.statement.line, id: False} : |
default_company = self.env['res.company']._company_default_get('account.account')
account = self.env['account.account'].search([
('user_type_id', '=', ref('account.data_account_type_revenue')),
('tag_ids', 'in', [ref('account.account_tag_financing')]),
('company_id', '=', default_company.id)], limit=1)
line = self.env.ref('account.demo_bank_statement_line_5')
if not line.journal_entry_ids and account:
line.write({'account_id': account.id})
line.fast_counterpart_creation()
-
!python {model: ir.model.data, id: False} : |
from datetime import datetime
from dateutil.relativedelta import relativedelta
default_company = self.env['res.company']._company_default_get('account.journal')
vals = {
'journal_id': self.env['account.journal'].search([('type', '=', 'general'), ('company_id', '=', default_company.id)], limit=1).id,
'date': datetime.now().replace(day=1,month=1) - relativedelta(days=1),
'ref': 'Company Creation',
}
self._update('account.move', 'account', vals, 'demo_opening_move')
-
!python {model: ir.model.data, id: False} : |
journal_default_company = self.env['res.company']._company_default_get('account.journal')
bank_journal = self.env['account.journal'].search([('type', '=', 'bank'), ('company_id', '=', journal_default_company.id)], limit=1)
if bank_journal:
bank_account_id = bank_journal.default_debit_account_id.id
account_default_company = self.env['res.company']._company_default_get('account.account')
fixed_asset_account_id = self.env['account.account'].search([('user_type_id', 'in', (ref('account.data_account_type_fixed_assets'),ref('account.data_account_type_current_assets'))), ('company_id', '=', account_default_company.id)], limit=1).id
equity_account_id = self.env['account.account'].search([('user_type_id', '=', ref('account.data_account_type_equity')), ('tag_ids', 'in', [ref('account.demo_capital_account')]), ('company_id', '=', account_default_company.id)], limit=1).id
if bank_account_id and fixed_asset_account_id and equity_account_id:
self.with_context({'check_move_validity': False})._update('account.move.line', 'account', {
'move_id': ref('account.demo_opening_move'),
'name': 'Opening Entry',
'debit': 5103,
'account_id': bank_account_id}, 'opening_line_1')
self.with_context({'check_move_validity': False})._update('account.move.line', 'account', {
'move_id': ref('account.demo_opening_move'),
'name': 'Opening Entry',
'debit': 13447,
'account_id': fixed_asset_account_id}, 'opening_line_2')
self.with_context({'check_move_validity': False})._update('account.move.line', 'account', {
'move_id': ref('account.demo_opening_move'),
'name': 'Opening Entry',
'credit': 18550,
'account_id': equity_account_id}, 'opening_line_3')
+2 -2
View File
@@ -20,8 +20,8 @@ Install some generic chart of accounts.
'data/account_chart_template_data.xml',
],
'demo': [
'../account/demo/account_bank_statement.yml',
'../account/demo/account_invoice_demo.yml',
'data/account_bank_statement_demo.xml',
'data/account_invoice_demo.xml',
],
'website': 'https://www.odoo.com/page/accounting',
}
@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<record id="demo_bank_statement_1" model="account.bank.statement">
<field name="journal_id" model="account.journal" search="[
('type', '=', 'bank'),
('company_id', '=', obj().env['res.company']._company_default_get('account.journal').id)]"/>
<field name="date" eval="time.strftime('%Y')+'-01-01'"/>
<field name="name">BNK/2014/001</field>
<field name="balance_end_real">8998.2</field>
<field name="balance_start">5103.0</field>
</record>
<record id="demo_bank_statement_line_1" model="account.bank.statement.line">
<field name="ref">''</field>
<field name="statement_id" ref="l10n_generic_coa.demo_bank_statement_1"/>
<field name="sequence">1</field>
<field name="name">SAJ/2014/002 and SAJ/2014/003</field>
<field name="journal_id" model="account.journal" search="[
('type', '=', 'bank'),
('company_id', '=', obj().env['res.company']._company_default_get('account.journal').id)]"/>
<field name="amount">1175.0</field>
<field name="date" eval="time.strftime('%Y')+'-01-01'"/>
<field name="partner_id" ref="base.res_partner_2"/>
</record>
<record id="demo_bank_statement_line_2" model="account.bank.statement.line">
<field name="ref">''</field>
<field name="statement_id" ref="l10n_generic_coa.demo_bank_statement_1"/>
<field name="sequence">2</field>
<field name="name">Bank fees</field>
<field name="journal_id" model="account.journal" search="[
('type', '=', 'bank'),
('company_id', '=', obj().env['res.company']._company_default_get('account.journal').id)]"/>
<field name="amount">-32.58</field>
<field name="date" eval="time.strftime('%Y')+'-01-01'"/>
</record>
<record id="demo_bank_statement_line_3" model="account.bank.statement.line">
<field name="ref">''</field>
<field name="statement_id" ref="l10n_generic_coa.demo_bank_statement_1"/>
<field name="sequence">3</field>
<field name="name">Prepayment</field>
<field name="journal_id" model="account.journal" search="[
('type', '=', 'bank'),
('company_id', '=', obj().env['res.company']._company_default_get('account.journal').id)]"/>
<field name="amount">650.0</field>
<field name="date" eval="time.strftime('%Y')+'-01-01'"/>
<field name="partner_id" ref="base.res_partner_12"/>
</record>
<record id="demo_bank_statement_line_4" model="account.bank.statement.line">
<field name="ref">''</field>
<field name="statement_id" ref="l10n_generic_coa.demo_bank_statement_1"/>
<field name="sequence">4</field>
<field name="name">First 2000 € of SAJ/2014/001</field>
<field name="journal_id" model="account.journal" search="[
('type', '=', 'bank'),
('company_id', '=', obj().env['res.company']._company_default_get('account.journal').id)]"/>
<field name="amount">2000.0</field>
<field name="date" eval="time.strftime('%Y')+'-01-01'"/>
<field name="partner_id" ref="base.res_partner_12"/>
</record>
<record id="demo_bank_statement_line_5" model="account.bank.statement.line">
<field name="ref">''</field>
<field name="statement_id" ref="l10n_generic_coa.demo_bank_statement_1"/>
<field name="sequence">5</field>
<field name="name">Last Year Interests</field>
<field name="journal_id" model="account.journal" search="[
('type', '=', 'bank'),
('company_id', '=', obj().env['res.company']._company_default_get('account.journal').id)]"/>
<field name="amount">102.78</field>
<field name="date" eval="time.strftime('%Y')+'-01-01'"/>
</record>
</data>
</odoo>
@@ -0,0 +1,187 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<record id="demo_invoice_1" model="account.invoice">
<field name="partner_id" ref="base.res_partner_12"/>
<field name="user_id" ref="base.user_demo"/>
<field name="reference_type">none</field>
<field name="payment_term_id" ref="account.account_payment_term"/>
<field name="type">out_invoice</field>
<field name="date_invoice" eval="time.strftime('%Y-%m')+'-01'"/>
<field name="invoice_line_ids" model="account.invoice.line" eval="[(5, 0, 0),
(0, 0, {
'name': obj().env.ref('product.consu_delivery_02').partner_ref,
'product_id': ref('product.consu_delivery_02'),
'account_id': obj().env.ref('product.consu_delivery_02').categ_id.property_account_income_categ_id.id,
'price_unit': 642.0,
'quantity': 5}),
(0, 0, {
'name': obj().env.ref('product.consu_delivery_03').partner_ref,
'product_id': ref('product.consu_delivery_03'),
'account_id': obj().env.ref('product.consu_delivery_03').categ_id.property_account_income_categ_id.id,
'price_unit': 280.0,
'quantity': 5.0})]"/>
</record>
<function model="account.invoice" name="action_invoice_open">
<value eval="[ref('demo_invoice_1')]"/>
</function>
<record id="demo_invoice_2" model="account.invoice">
<field name="partner_id" ref="base.res_partner_2"/>
<field name="type">out_invoice</field>
<field name="date_invoice" eval="time.strftime('%Y-%m')+'-08'"/>
<field name="invoice_line_ids" model="account.invoice.line" eval="[(5, 0, 0),
(0, 0, {
'name': obj().env.ref('product.consu_delivery_03').partner_ref,
'product_id': ref('product.consu_delivery_03'),
'account_id': obj().env.ref('product.consu_delivery_03').categ_id.property_account_income_categ_id.id,
'price_unit': 50.0,
'quantity': 3}),
(0, 0, {
'name': obj().env.ref('product.consu_delivery_01').partner_ref,
'product_id': ref('product.consu_delivery_01'),
'account_id': obj().env.ref('product.consu_delivery_01').categ_id.property_account_income_categ_id.id,
'price_unit': 25.0,
'quantity': 20.0})]"/>
</record>
<function model="account.invoice" name="action_invoice_open">
<value eval="[ref('demo_invoice_2')]"/>
</function>
<record id="demo_invoice_3" model="account.invoice">
<field name="partner_id" ref="base.res_partner_2"/>
<field name="type">out_invoice</field>
<field name="date_invoice" eval="time.strftime('%Y-%m')+'-08'"/>
<field name="invoice_line_ids" model="account.invoice.line" eval="[(5, 0, 0),
(0, 0, {
'name': obj().env.ref('product.consu_delivery_01').partner_ref,
'product_id': ref('product.consu_delivery_01'),
'account_id': obj().env.ref('product.consu_delivery_01').categ_id.property_account_income_categ_id.id,
'price_unit': 90.0,
'quantity': 5}),
(0, 0, {
'name': obj().env.ref('product.consu_delivery_03').partner_ref,
'product_id': ref('product.consu_delivery_03'),
'account_id': obj().env.ref('product.consu_delivery_03').categ_id.property_account_income_categ_id.id,
'price_unit': 15.0,
'quantity': 5.0})]"/>
</record>
<function model="account.invoice" name="action_invoice_open">
<value eval="[ref('demo_invoice_3')]"/>
</function>
<!-- Create an invoice that will generate a followup -->
<record id="demo_invoice_followup" model="account.invoice">
<field name="partner_id" ref="base.res_partner_2"/>
<field name="user_id" ref="base.user_demo"/>
<field name="reference_type">none</field>
<field name="payment_term_id" ref="account.account_payment_term_immediate"/>
<field name="type">out_invoice</field>
<field name="date_invoice" eval="(datetime.today() + timedelta(days=-15)).strftime('%Y-%m-%d')"/>
<field name="invoice_line_ids" model="account.invoice.line" eval="[(5, 0, 0),
(0, 0, {
'name': obj().env.ref('product.consu_delivery_02').partner_ref,
'product_id': ref('product.consu_delivery_02'),
'account_id': obj().env.ref('product.consu_delivery_02').categ_id.property_account_income_categ_id.id,
'price_unit': 642.0,
'quantity': 5}),
(0, 0, {
'name': obj().env.ref('product.consu_delivery_03').partner_ref,
'product_id': ref('product.consu_delivery_03'),
'account_id': obj().env.ref('product.consu_delivery_03').categ_id.property_account_income_categ_id.id,
'price_unit': 280.0,
'quantity': 5.0})]"/>
</record>
<function model="account.invoice" name="action_invoice_open">
<value eval="[ref('demo_invoice_followup')]"/>
</function>
<record id="demo_invoice_0" model="account.invoice">
<field name="partner_id" ref="base.res_partner_12"/>
<field name="user_id" ref="base.user_demo"/>
<field name="reference_type">none</field>
<field name="payment_term_id" ref="account.account_payment_term"/>
<field name="type">in_invoice</field>
<field name="date_invoice" eval="time.strftime('%Y-%m')+'-01'"/>
<field name="invoice_line_ids" model="account.invoice.line" eval="[(5, 0, 0),
(0, 0, {
'name': obj().env.ref('product.product_delivery_01').partner_ref,
'product_id': ref('product.product_delivery_01'),
'account_id': obj().env.ref('product.product_delivery_01').categ_id.property_account_income_categ_id.id,
'price_unit': 10.0,
'quantity': 1,
'uom_id': ref('product.product_uom_unit')}),
(0, 0, {
'name': obj().env.ref('product.product_order_01').partner_ref,
'product_id': ref('product.product_order_01'),
'account_id': obj().env.ref('product.product_order_01').categ_id.property_account_income_categ_id.id,
'price_unit': 4.0,
'quantity': 1.0,
'uom_id': ref('product.product_uom_unit')})]"/>
</record>
<record id="demo_invoice_january_wages" model="account.invoice">
<field name="partner_id" ref="base.res_partner_12"/>
<field name="type">in_invoice</field>
<field name="date_invoice" eval="time.strftime('%Y-%m')+'-01'"/>
</record>
<record id="ceo_wages_line" model="account.invoice.line">
<field name="invoice_id" ref="demo_invoice_january_wages"/>
<field name="name">CEO wages</field>
<field name="price_unit">10000</field>
<field name="account_id" model="account.account"
search="['|', ('tag_ids', '=', ref('account.demo_ceo_wages_account')),
('user_type_id', '=', ref('account.data_account_type_expenses')),
('company_id', '=', obj().env['res.company']._company_default_get('account.account').id)]"/>
</record>
<function model="account.invoice" name="action_invoice_open">
<value eval="[ref('demo_invoice_january_wages')]"/>
</function>
<record id="demo_invoice_equipment_purchase" model="account.invoice">
<field name="partner_id" ref="base.res_partner_1"/>
<field name="type">in_invoice</field>
<field name="date_invoice" eval="time.strftime('%Y-%m')+'-15'"/>
</record>
<record id="coffee_machine_line" model="account.invoice.line">
<field name="invoice_id" ref="demo_invoice_equipment_purchase"/>
<field name="name">Coffee Machine with huge 'employee\'s performances boosting perk'</field>
<field name="price_unit">4999.99</field>
<field name="account_id" model="account.account"
search="['|', ('tag_ids', '=', ref('account.demo_coffee_machine_account')),
('user_type_id', '=', ref('account.data_account_type_expenses')),
('company_id', '=', obj().env['res.company']._company_default_get('account.account').id)]"/>
<field name="invoice_line_tax_ids" model="account.tax"
eval="[(6, 0, [obj().search([
('type_tax_use', '=', 'purchase'),
('amount', '>', 0),
('company_id', '=', obj().env['res.company']._company_default_get('account.tax').id)], limit=1).id])]"/>
</record>
<function model="account.invoice" name="_onchange_invoice_line_ids">
<value eval="[ref('demo_invoice_equipment_purchase')]"/>
</function>
<function model="account.invoice" name="action_invoice_open">
<value eval="[ref('demo_invoice_equipment_purchase')]"/>
</function>
<record id="demo_bank_statement_line_5" model="account.bank.statement.line">
<field name="account_id" model="account.account" search="[
('user_type_id', '=', ref('account.data_account_type_revenue')),
('tag_ids', 'in', [ref('account.account_tag_financing')]),
('company_id', '=', obj().env['res.company']._company_default_get('account.account').id)]"/>
</record>
<function model="account.bank.statement.line" name="fast_counterpart_creation">
<value eval="[ref('demo_bank_statement_line_5')]"/>
</function>
</data>
</odoo>