*commited jvo's work:

-Changed the type of parent_id of account.account from many2many to many2one and changes account charts accordingly.
	-Bugfix: solved error of no period_ids and misc. changes in wizard_fiscalyear_close.py
	-Bugfix: solved error of fiscal year and period in report-account_balance.py

bzr revid: qdp@tinyerp.com-20080729120906-zin2q9epxgq8xos9
This commit is contained in:
qdp 2008-07-29 14:09:06 +02:00
commit cd629fb096
10 changed files with 4148 additions and 4079 deletions

View File

@ -246,14 +246,33 @@ class account_account(osv.osv):
result[rec.id] = (rec.company_id.currency_id.id,rec.company_id.currency_id.code) result[rec.id] = (rec.company_id.currency_id.id,rec.company_id.currency_id.code)
return result return result
def _get_child_ids(self, cr, uid, ids, field_name, arg, context={}):
result={}
for record in self.browse(cr, uid, ids, context):
if record.child_parent_ids:
result[record.id]=[x.id for x in record.child_parent_ids]
else:
result[record.id]=[]
if record.child_consol_ids:
for acc in record.child_consol_ids:
result[record.id].append(acc.id)
return result
_columns = { _columns = {
'name': fields.char('Name', size=128, required=True, select=True), 'name': fields.char('Name', size=128, required=True, select=True),
'sign': fields.selection([(-1, 'Negative'), (1, 'Positive')], 'Sign', required=True, help='Allows to change the displayed amount of the balance to see positive results instead of negative ones in expenses accounts'), 'sign': fields.selection([(-1, 'Negative'), (1, 'Positive')], 'Sign', required=True, help='Allows to change the displayed amount of the balance to see positive results instead of negative ones in expenses accounts'),
'currency_id': fields.many2one('res.currency', 'Secondary Currency', help="Force all moves for this account to have this secondary currency."), 'currency_id': fields.many2one('res.currency', 'Secondary Currency', help="Force all moves for this account to have this secondary currency."),
'code': fields.char('Code', size=64), 'code': fields.char('Code', size=64),
'type': fields.selection(_code_get, 'Account Type', required=True), 'type': fields.selection(_code_get, 'Account Type', required=True),
'parent_id': fields.many2many('account.account', 'account_account_rel', 'child_id', 'parent_id', 'Parents'), # 'parent_id': fields.many2many('account.account', 'account_account_rel', 'child_id', 'parent_id', 'Parents'),
'child_id': fields.many2many('account.account', 'account_account_rel', 'parent_id', 'child_id', 'Children'), 'parent_id': fields.many2one('account.account','Parent'),
'child_parent_ids':fields.one2many('account.account','parent_id','Children'),
'child_consol_ids':fields.many2many('account.account', 'account_account_consol_rel', 'child_id', 'parent_id', 'Consolidated Children',domain=[('type','=','root'), ('type', '=', 'consolidation')]),
'child_id': fields.function(_get_child_ids, method=True, type='many2many',relation="account.account",string="Children Accounts"),
# 'child_id': fields.many2many('account.account', 'account_account_rel', 'parent_id', 'child_id', 'Children'),
'balance': fields.function(_balance, digits=(16,2), method=True, string='Balance'), 'balance': fields.function(_balance, digits=(16,2), method=True, string='Balance'),
'credit': fields.function(_credit, digits=(16,2), method=True, string='Credit'), 'credit': fields.function(_credit, digits=(16,2), method=True, string='Credit'),
'debit': fields.function(_debit, digits=(16,2), method=True, string='Debit'), 'debit': fields.function(_debit, digits=(16,2), method=True, string='Debit'),
@ -283,16 +302,38 @@ class account_account(osv.osv):
'active': lambda *a: True, 'active': lambda *a: True,
} }
# def _check_recursion(self, cr, uid, ids):
# level = 100
# while len(ids):
# cr.execute('select distinct parent_id from account_account_rel where child_id in ('+','.join(map(str,ids))+')')
# ids = filter(None, map(lambda x:x[0], cr.fetchall()))
# if not level:
# return False
# level -= 1
# return True
def _check_recursion(self, cr, uid, ids): def _check_recursion(self, cr, uid, ids):
level = 100 obj_self=self.browse(cr,uid,ids[0])
while len(ids): p_id=obj_self.parent_id and obj_self.parent_id.id
cr.execute('select distinct parent_id from account_account_rel where child_id in ('+','.join(map(str,ids))+')')
ids = filter(None, map(lambda x:x[0], cr.fetchall())) if (obj_self in obj_self.child_consol_ids) or (p_id and (p_id is obj_self.id)):
if not level: return False
while(ids):
cr.execute('select distinct child_id from account_account_consol_rel where parent_id in ('+','.join(map(str,ids))+')')
child_ids = filter(None, map(lambda x:x[0], cr.fetchall()))
c_ids=child_ids
if (p_id and (p_id in c_ids)) or (obj_self.id in c_ids):
return False return False
level -= 1 while len(c_ids):
s_ids=self.search(cr,uid,[('parent_id','in',c_ids)])
if p_id and (p_id in s_ids):
return False
c_ids=s_ids
ids=child_ids
return True return True
_constraints = [ _constraints = [
(_check_recursion, 'Error ! You can not create recursive accounts.', ['parent_id']) (_check_recursion, 'Error ! You can not create recursive accounts.', ['parent_id'])
] ]

View File

@ -4,30 +4,29 @@
<assert model="account.move" search="[]" string="For all account moves, the state is valid implies that the sum of credits equals the sum of debits"> <assert model="account.move" search="[]" string="For all account moves, the state is valid implies that the sum of credits equals the sum of debits">
<test expr="not len(line_id) or line_id[0].state != 'valid' or (sum([l.debit - l.credit for l in line_id]) &lt;= 0.00001)"/> <test expr="not len(line_id) or line_id[0].state != 'valid' or (sum([l.debit - l.credit for l in line_id]) &lt;= 0.00001)"/>
</assert> </assert>
<!--assert model="account.invoice" search="[]" string="If the invoice is paid, third party accounting lines must be reconciled"> <!--assert model="account.invoice" search="[]" string="If the invoice is paid, third party accounting lines must be reconciled">
<test expr="not state == 'paid' or ..." /> <test expr="not state == 'paid' or ..." />
</assert--> </assert-->
<assert model="account.account" search="[]" string="For all accounts, the balance is equal to the sum of the balance of its childs"> <assert model="account.account" search="[]" string="For all accounts, the balance is equal to the sum of the balance of its childs">
<test expr="not len(child_id) or (balance - sum([c.balance for c in child_id]) &lt;= 0.00001)"/> <test expr="not len(child_id) or (balance - sum([c.balance for c in child_id]) &lt;= 0.00001)"/>
</assert> </assert>
<assert model="account.move.line" search="[('account_id.type', '=', 'view')]" string="Accounts of view type do not contain any move line"> <assert model="account.move.line" search="[('account_id.type', '=', 'view')]" string="Accounts of view type do not contain any move line">
<test expr="False"/> <test expr="False"/>
</assert> </assert>
<assert model="account.invoice" search="[('state', 'in', ['paid', 'open'])]" string="The total amount of all paid or open invoices is correctly computed"> <assert model="account.invoice" search="[('state', 'in', ['paid', 'open'])]" string="The total amount of all paid or open invoices is correctly computed">
<test expr="sum([l.price_subtotal for l in invoice_line]) - amount_untaxed &lt;= 0.00001"/> <test expr="sum([l.price_subtotal for l in invoice_line]) - amount_untaxed &lt;= 0.00001"/>
</assert> </assert>
<assert model="account.move.reconcile" search="[]" string="For each reconciliation, the sum of credits equals the sum of debits"> <assert model="account.move.reconcile" search="[]" string="For each reconciliation, the sum of credits equals the sum of debits">
<test expr="sum([l.debit - l.credit for l in line_id]) &lt;= 0.00001"/> <test expr="sum([l.debit - l.credit for l in line_id]) &lt;= 0.00001"/>
</assert> </assert>
<assert model="account.account" search="[]" string="Every account must have at least one parent account of type '0'"> <assert model="account.account" search="[]" string="Every account must have at least one parent account of type '0'">
<test expr="not parent_id or '0' in [p.code for p in parent_id]"/> <test expr="not parent_id or (code!='0')"/>
</assert> </assert>
</data> </data>
</terp> </terp>

View File

@ -126,7 +126,9 @@
<field name="close_method"/> <field name="close_method"/>
<field name="reconcile"/> <field name="reconcile"/>
<newline/> <newline/>
<field colspan="4" name="parent_id"/> <field name="parent_id"/>
<newline/>
<field name="child_consol_ids" colspan="4"/>
<field colspan="4" name="tax_ids"/> <field colspan="4" name="tax_ids"/>
</page> </page>
<page string="Notes"> <page string="Notes">

View File

@ -22,6 +22,16 @@
<field name="code">view</field> <field name="code">view</field>
<field name="close_method">none</field> <field name="close_method">none</field>
</record> </record>
<record id="account_type_root" model="account.account.type">
<field name="name">Root</field>
<field name="code">root</field>
<field name="close_method">none</field>
</record>
<record id="account_type_consolidation" model="account.account.type">
<field name="name">Consolidation</field>
<field name="code">consolidation</field>
<field name="close_method">none</field>
</record>
<record id="account_type_income" model="account.account.type"> <record id="account_type_income" model="account.account.type">
<field name="name">Income</field> <field name="name">Income</field>
<field name="code">income</field> <field name="code">income</field>

View File

@ -1,24 +1,24 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<terp> <terp>
<data noupdate="True"> <data noupdate="True">
<!-- <!--
Minimal Tiny ERP Account Chart Minimal Tiny ERP Account Chart
--> -->
<record id="minimal_0" model="account.account"> <record id="minimal_0" model="account.account">
<field name="code">0</field> <field name="code">0</field>
<field name="name">Minimal account chart</field> <field name="name">Minimal account chart</field>
<field name="close_method">none</field> <field name="close_method">none</field>
<field eval="[]" name="parent_id"/> <field eval="0" name="parent_id"/>
<field name="type">view</field> <field name="type">view</field>
</record> </record>
<record id="a_recv" model="account.account"> <record id="a_recv" model="account.account">
<field name="name">Main Receivable</field> <field name="name">Main Receivable</field>
<field name="code">40</field> <field name="code">40</field>
<field name="type">receivable</field> <field name="type">receivable</field>
<field eval="[(6,0,[ref('minimal_0')])]" name="parent_id"/> <field eval="ref('minimal_0')" name="parent_id"/>
<field name="company_id" ref="base.main_company"/> <field name="company_id" ref="base.main_company"/>
<field eval="True" name="reconcile"/> <field eval="True" name="reconcile"/>
</record> </record>
@ -26,34 +26,34 @@
<field name="name">Main Payable</field> <field name="name">Main Payable</field>
<field name="code">440</field> <field name="code">440</field>
<field name="type">payable</field> <field name="type">payable</field>
<field eval="[(6,0,[ref('minimal_0')])]" name="parent_id"/> <field eval="ref('minimal_0')" name="parent_id"/>
<field name="company_id" ref="base.main_company"/> <field name="company_id" ref="base.main_company"/>
<field eval="True" name="reconcile"/> <field eval="True" name="reconcile"/>
</record> </record>
<record id="cash" model="account.account"> <record id="cash" model="account.account">
<field name="name">Petty Cash</field> <field name="name">Petty Cash</field>
<field name="code">57</field> <field name="code">57</field>
<field name="type">cash</field> <field name="type">cash</field>
<field eval="[(6,0,[ref('minimal_0')])]" name="parent_id"/> <field eval="ref('minimal_0')" name="parent_id"/>
<field name="company_id" ref="base.main_company"/> <field name="company_id" ref="base.main_company"/>
</record> </record>
<record id="a_expense" model="account.account"> <record id="a_expense" model="account.account">
<field name="name">Products Purchase</field> <field name="name">Products Purchase</field>
<field name="code">600</field> <field name="code">600</field>
<field name="type">expense</field> <field name="type">expense</field>
<field eval="[(6,0,[ref('minimal_0')])]" name="parent_id"/> <field eval="ref('minimal_0')" name="parent_id"/>
<field name="company_id" ref="base.main_company"/> <field name="company_id" ref="base.main_company"/>
</record> </record>
<record id="a_sale" model="account.account"> <record id="a_sale" model="account.account">
<field name="name">Products Sales</field> <field name="name">Products Sales</field>
<field name="code">701</field> <field name="code">701</field>
<field name="type">income</field> <field name="type">income</field>
<field eval="[(6,0,[ref('minimal_0')])]" name="parent_id"/> <field eval="ref('minimal_0')" name="parent_id"/>
<field name="company_id" ref="base.main_company"/> <field name="company_id" ref="base.main_company"/>
</record> </record>
<record forcecreate="True" id="property_account_receivable" model="ir.property"> <record forcecreate="True" id="property_account_receivable" model="ir.property">
<field name="name">property_account_receivable</field> <field name="name">property_account_receivable</field>
<field name="fields_id" search="[('model','=','res.partner'),('name','=','property_account_receivable')]"/> <field name="fields_id" search="[('model','=','res.partner'),('name','=','property_account_receivable')]"/>
@ -72,6 +72,6 @@
<field eval="False" name="value"/> <field eval="False" name="value"/>
<field name="company_id" ref="base.main_company"/> <field name="company_id" ref="base.main_company"/>
</record> </record>
</data> </data>
</terp> </terp>

View File

@ -48,15 +48,27 @@ class account_balance(report_sxw.rml_parse):
def get_fiscalyear(self, form): def get_fiscalyear(self, form):
fisc_id = form['fiscalyear'] fisc_id = form['fiscalyear']
if not(fisc_id): if fisc_id:
return '' self.cr.execute("select name from account_fiscalyear where id = %d" %(int(fisc_id)))
self.cr.execute("select name from account_fiscalyear where id = %d" %(int(fisc_id))) else:
res=self.cr.fetchone() self.cr.execute("select name from account_fiscalyear where state='draft'")
return res and res[0] or '' res=self.cr.fetchall()
result=''
for r in res:
result+=r[0]+","
return str(result and result[:-1]) or ''
def get_periods(self, form): def get_periods(self, form):
period_ids = ",".join([str(x) for x in form['periods'][0][2] if x]) periods=form['periods'][0][2]
self.cr.execute("select name from account_period where id in (%s)" % (period_ids)) if periods:
period_ids = ",".join([str(x) for x in form['periods'][0][2] if x])
self.cr.execute("select name from account_period where id in (%s)" % (period_ids))
else:
if form['fiscalyear']:
self.cr.execute("select name from account_period where fiscalyear_id = %d"%(int(form['fiscalyear'])))
else:
self.cr.execute("select name from account_period")
res=self.cr.fetchall() res=self.cr.fetchall()
result='' result=''
for r in res: for r in res:

View File

@ -64,7 +64,11 @@ def _data_save(self, cr, uid, data, context):
fy_id = data['form']['fy_id'] fy_id = data['form']['fy_id']
if data['form']['report_new']: if data['form']['report_new']:
period = pool.get('account.fiscalyear').browse(cr, uid, data['form']['fy2_id']).period_ids[0] periods_fy2 = pool.get('account.fiscalyear').browse(cr, uid, data['form']['fy2_id']).period_ids
if not periods_fy2:
raise wizard.except_wizard(_('UserError'),
_('There are no periods defined on New Fiscal Year.'))
period=periods_fy2[0]
new_fyear = pool.get('account.fiscalyear').browse(cr, uid, data['form']['fy2_id']) new_fyear = pool.get('account.fiscalyear').browse(cr, uid, data['form']['fy2_id'])
start_jp = new_fyear.start_journal_period_id start_jp = new_fyear.start_journal_period_id
if not start_jp: if not start_jp:

File diff suppressed because it is too large Load Diff

View File

@ -1,387 +1,387 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<terp> <terp>
<data noupdate="1"> <data noupdate="1">
<!-- Top level of main chart --> <!-- Top level of main chart -->
<record id="chart0" model="account.account"> <record id="chart0" model="account.account">
<field name="code">0</field> <field name="code">0</field>
<field name="name">Account Chart UK</field> <field name="name">Account Chart UK</field>
<field name="close_method">none</field> <field name="close_method">none</field>
<field eval="[]" name="parent_id"/> <field eval="0" name="parent_id"/>
<field name="type">view</field> <field name="type">view</field>
<field eval="1" name="sign"/> <field eval="1" name="sign"/>
</record> </record>
<!-- Balance Sheet --> <!-- Balance Sheet -->
<record id="bal" model="account.account"> <record id="bal" model="account.account">
<field name="name">Balance Sheet</field> <field name="name">Balance Sheet</field>
<field name="close_method">none</field> <field name="close_method">none</field>
<field eval="[(6, 0, [ref('chart0')])]" name="parent_id"/> <field ref="chart0" name="parent_id"/>
<field name="type">view</field> <field name="type">view</field>
<field eval="1" name="sign"/> <field eval="1" name="sign"/>
</record> </record>
<record id="fas" model="account.account"> <record id="fas" model="account.account">
<field name="name">Fixed Assets</field> <field name="name">Fixed Assets</field>
<field name="close_method">none</field> <field name="close_method">none</field>
<field eval="[(6, 0, [ref('bal')])]" name="parent_id"/> <field ref="bal" name="parent_id"/>
<field name="type">view</field> <field name="type">view</field>
<field eval="1" name="sign"/> <field eval="1" name="sign"/>
</record> </record>
<record id="xfa" model="account.account"> <record id="xfa" model="account.account">
<field name="name">Fixed Asset Account</field> <field name="name">Fixed Asset Account</field>
<field name="close_method">balance</field> <field name="close_method">balance</field>
<field eval="[(6, 0, [ref('fas')])]" name="parent_id"/> <field ref="fas" name="parent_id"/>
<field name="type">asset</field> <field name="type">asset</field>
<field eval="1" name="sign"/> <field eval="1" name="sign"/>
</record> </record>
<record id="nca" model="account.account"> <record id="nca" model="account.account">
<field name="name">Net Current Assets</field> <field name="name">Net Current Assets</field>
<field name="close_method">none</field> <field name="close_method">none</field>
<field eval="[(6, 0, [ref('bal')])]" name="parent_id"/> <field ref="bal" name="parent_id"/>
<field name="type">view</field> <field name="type">view</field>
<field eval="1" name="sign"/> <field eval="1" name="sign"/>
</record> </record>
<record id="cas" model="account.account"> <record id="cas" model="account.account">
<field name="name">Current Assets</field> <field name="name">Current Assets</field>
<field name="close_method">none</field> <field name="close_method">none</field>
<field eval="[(6, 0, [ref('nca')])]" name="parent_id"/> <field ref="nca" name="parent_id"/>
<field name="type">view</field> <field name="type">view</field>
<field eval="1" name="sign"/> <field eval="1" name="sign"/>
</record> </record>
<record id="stk" model="account.account"> <record id="stk" model="account.account">
<field name="code"/> <field name="code"/>
<field name="name">Purchased Stocks</field> <field name="name">Purchased Stocks</field>
<field name="close_method">unreconciled</field> <field name="close_method">unreconciled</field>
<field eval="[(6, 0, [ref('cas')])]" name="parent_id"/> <field ref="cas" name="parent_id"/>
<field name="type">asset</field> <field name="type">asset</field>
<field eval="1" name="sign"/> <field eval="1" name="sign"/>
</record> </record>
<record id="a_recv" model="account.account"> <record id="a_recv" model="account.account">
<field name="code"/> <field name="code"/>
<field name="name">Debtors</field> <field name="name">Debtors</field>
<field name="close_method">balance</field> <field name="close_method">balance</field>
<field eval="[(6, 0, [ref('cas')])]" name="parent_id"/> <field ref="cas" name="parent_id"/>
<field name="type">receivable</field> <field name="type">receivable</field>
<field eval="1" name="sign"/> <field eval="1" name="sign"/>
<field eval="True" name="reconcile"/> <field eval="True" name="reconcile"/>
</record> </record>
<record id="account.property_account_receivable" model="ir.property"> <record id="account.property_account_receivable" model="ir.property">
<field eval="'account.account,'+str(a_recv)" name="value"/> <field eval="'account.account,'+str(a_recv)" name="value"/>
</record> </record>
<record id="ova" model="account.account"> <record id="ova" model="account.account">
<field name="name">Output VAT</field> <field name="name">Output VAT</field>
<field name="close_method">balance</field> <field name="close_method">balance</field>
<field eval="[(6, 0, [ref('cas')])]" name="parent_id"/> <field ref="cas" name="parent_id"/>
<field name="type">tax</field> <field name="type">tax</field>
<field eval="1" name="sign"/> <field eval="1" name="sign"/>
</record> </record>
<record id="bnk" model="account.account"> <record id="bnk" model="account.account">
<field name="name">Bank Current Account</field> <field name="name">Bank Current Account</field>
<field name="close_method">balance</field> <field name="close_method">balance</field>
<field eval="[(6, 0, [ref('cas')])]" name="parent_id"/> <field ref="cas" name="parent_id"/>
<field name="type">cash</field> <field name="type">cash</field>
<field eval="1" name="sign"/> <field eval="1" name="sign"/>
</record> </record>
<record id="cash" model="account.account"> <record id="cash" model="account.account">
<field name="code"/> <field name="code"/>
<field name="name">Cash</field> <field name="name">Cash</field>
<field name="close_method">balance</field> <field name="close_method">balance</field>
<field eval="[(6, 0, [ref('cas')])]" name="parent_id"/> <field ref="cas" name="parent_id"/>
<field name="type">cash</field> <field name="type">cash</field>
<field eval="1" name="sign"/> <field eval="1" name="sign"/>
</record> </record>
<record id="cli" model="account.account"> <record id="cli" model="account.account">
<field name="name">Current Liabilities</field> <field name="name">Current Liabilities</field>
<field name="close_method">none</field> <field name="close_method">none</field>
<field eval="[(6, 0, [ref('nca')])]" name="parent_id"/> <field ref="nca" name="parent_id"/>
<field name="type">view</field> <field name="type">view</field>
<field eval="1" name="sign"/> <field eval="1" name="sign"/>
</record> </record>
<record id="a_pay" model="account.account"> <record id="a_pay" model="account.account">
<field name="code"/> <field name="code"/>
<field name="name">Creditors</field> <field name="name">Creditors</field>
<field name="close_method">balance</field> <field name="close_method">balance</field>
<field eval="[(6, 0, [ref('cli')])]" name="parent_id"/> <field ref="cli" name="parent_id"/>
<field name="type">payable</field> <field name="type">payable</field>
<field eval="1" name="sign"/> <field eval="1" name="sign"/>
<field eval="True" name="reconcile"/> <field eval="True" name="reconcile"/>
</record> </record>
<record id="account.property_account_payable" model="ir.property"> <record id="account.property_account_payable" model="ir.property">
<field eval="'account.account,'+str(a_pay)" name="value"/> <field eval="'account.account,'+str(a_pay)" name="value"/>
</record> </record>
<record id="iva" model="account.account"> <record id="iva" model="account.account">
<field name="name">Input VAT</field> <field name="name">Input VAT</field>
<field name="close_method">balance</field> <field name="close_method">balance</field>
<field eval="[(6, 0, [ref('cli')])]" name="parent_id"/> <field ref="cli" name="parent_id"/>
<field name="type">tax</field> <field name="type">tax</field>
<field eval="1" name="sign"/> <field eval="1" name="sign"/>
</record> </record>
<!-- Profit and Loss --> <!-- Profit and Loss -->
<record id="gpf" model="account.account"> <record id="gpf" model="account.account">
<field name="name">Profit and Loss</field> <field name="name">Profit and Loss</field>
<field name="close_method">none</field> <field name="close_method">none</field>
<field eval="[(6, 0, [ref('chart0')])]" name="parent_id"/> <field ref="chart0" name="parent_id"/>
<field name="type">view</field> <field name="type">view</field>
<field eval="1" name="sign"/> <field eval="1" name="sign"/>
</record> </record>
<record id="rev" model="account.account"> <record id="rev" model="account.account">
<field name="name">Revenue</field> <field name="name">Revenue</field>
<field name="close_method">none</field> <field name="close_method">none</field>
<field eval="[(6, 0, [ref('gpf')])]" name="parent_id"/> <field ref="gpf" name="parent_id"/>
<field name="type">view</field> <field name="type">view</field>
<field eval="1" name="sign"/> <field eval="1" name="sign"/>
</record> </record>
<record id="a_sale" model="account.account"> <record id="a_sale" model="account.account">
<field name="code"/> <field name="code"/>
<field name="name">Product Sales</field> <field name="name">Product Sales</field>
<field name="close_method">unreconciled</field> <field name="close_method">unreconciled</field>
<field eval="[(6, 0, [ref('rev')])]" name="parent_id"/> <field ref="rev" name="parent_id"/>
<field name="type">income</field> <field name="type">income</field>
<field eval="1" name="sign"/> <field eval="1" name="sign"/>
</record> </record>
<record id="account.property_account_income_categ" model="ir.property"> <record id="account.property_account_income_categ" model="ir.property">
<field eval="'account.account,'+str(a_sale)" name="value"/> <field eval="'account.account,'+str(a_sale)" name="value"/>
</record> </record>
<record id="cos" model="account.account"> <record id="cos" model="account.account">
<field name="name">Cost of Sales</field> <field name="name">Cost of Sales</field>
<field name="close_method">none</field> <field name="close_method">none</field>
<field eval="[(6, 0, [ref('gpf')])]" name="parent_id"/> <field ref="gpf" name="parent_id"/>
<field name="type">view</field> <field name="type">view</field>
<field eval="1" name="sign"/> <field eval="1" name="sign"/>
</record> </record>
<record id="cog" model="account.account"> <record id="cog" model="account.account">
<field name="code"/> <field name="code"/>
<field name="name">Cost of Goods Sold</field> <field name="name">Cost of Goods Sold</field>
<field name="close_method">unreconciled</field> <field name="close_method">unreconciled</field>
<field eval="[(6, 0, [ref('cos')])]" name="parent_id"/> <field ref="cos" name="parent_id"/>
<field name="type">expense</field> <field name="type">expense</field>
<field eval="1" name="sign"/> <field eval="1" name="sign"/>
</record> </record>
<record id="ovr" model="account.account"> <record id="ovr" model="account.account">
<field name="name">Overheads</field> <field name="name">Overheads</field>
<field name="close_method">none</field> <field name="close_method">none</field>
<field eval="[(6, 0, [ref('gpf')])]" name="parent_id"/> <field ref="gpf" name="parent_id"/>
<field name="type">view</field> <field name="type">view</field>
<field eval="1" name="sign"/> <field eval="1" name="sign"/>
</record> </record>
<record id="a_expense" model="account.account"> <record id="a_expense" model="account.account">
<field name="code"/> <field name="code"/>
<field name="name">Expenses</field> <field name="name">Expenses</field>
<field name="close_method">unreconciled</field> <field name="close_method">unreconciled</field>
<field eval="[(6, 0, [ref('ovr')])]" name="parent_id"/> <field ref="ovr" name="parent_id"/>
<field name="type">expense</field> <field name="type">expense</field>
<field eval="1" name="sign"/> <field eval="1" name="sign"/>
</record> </record>
<record id="account.property_account_expense_categ" model="ir.property"> <record id="account.property_account_expense_categ" model="ir.property">
<field eval="'account.account,'+str(a_expense)" name="value"/> <field eval="'account.account,'+str(a_expense)" name="value"/>
</record> </record>
</data> </data>
</terp> </terp>

File diff suppressed because it is too large Load Diff