Skip to content

Commit

Permalink
[IMP] accounting updates
Browse files Browse the repository at this point in the history
  • Loading branch information
odoomates committed Oct 14, 2022
1 parent 6a25aa5 commit 77d0969
Show file tree
Hide file tree
Showing 58 changed files with 262 additions and 1,362 deletions.
1 change: 1 addition & 0 deletions accounting_pdf_reports/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
'live_test_url': 'https://www.youtube.com/watch?v=yA4NLwOLZms',
'data': [
'security/ir.model.access.csv',
'data/account_account_type.xml',
'views/menu.xml',
'views/ledger_menu.xml',
'views/financial_report.xml',
Expand Down
94 changes: 33 additions & 61 deletions accounting_pdf_reports/data/account_account_type.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,121 +3,93 @@
<data noupdate="1">

<record model="account.account.type" id="data_account_type_receivable">
<field name="name">Receivable</field>
<field name="type">receivable</field>
<field name="internal_group">asset</field>
<field name="include_initial_balance" eval="True"/>
<field name="name">Receivable</field>
<field name="type">asset_receivable</field>
</record>

<record model="account.account.type" id="data_account_type_payable">
<field name="name">Payable</field>
<field name="type">payable</field>
<field name="internal_group">liability</field>
<field name="include_initial_balance" eval="True"/>
<field name="name">Payable</field>
<field name="type">liability_payable</field>
</record>

<record model="account.account.type" id="data_account_type_liquidity">
<field name="name">Bank and Cash</field>
<field name="type">liquidity</field>
<field name="internal_group">asset</field>
<field name="include_initial_balance" eval="True"/>
<field name="name">Bank and Cash</field>
<field name="type">asset_cash</field>
</record>

<record model="account.account.type" id="data_account_type_credit_card">
<field name="name">Credit Card</field>
<field name="type">liquidity</field>
<field name="internal_group">liability</field>
<field name="include_initial_balance" eval="True"/>
<field name="name">Credit Card</field>
<field name="type">liability_credit_card</field>
</record>

<record model="account.account.type" id="data_account_type_current_assets">
<field name="name">Current Assets</field>
<field name="type">other</field>
<field name="internal_group">asset</field>
<field name="include_initial_balance" eval="True"/>
<field name="name">Current Assets</field>
<field name="type">asset_current</field>
</record>

<record model="account.account.type" id="data_account_type_non_current_assets">
<field name="name">Non-current Assets</field>
<field name="type">other</field>
<field name="internal_group">asset</field>
<field name="include_initial_balance" eval="True"/>
<field name="name">Non-current Assets</field>
<field name="type">asset_non_current</field>
</record>

<record model="account.account.type" id="data_account_type_prepayments">
<field name="name">Prepayments</field>
<field name="type">other</field>
<field name="internal_group">asset</field>
<field name="include_initial_balance" eval="True"/>
<field name="name">Prepayments</field>
<field name="type">asset_prepayments</field>
</record>

<record model="account.account.type" id="data_account_type_fixed_assets">
<field name="name">Fixed Assets</field>
<field name="type">other</field>
<field name="internal_group">asset</field>
<field name="include_initial_balance" eval="True"/>
<field name="name">Fixed Assets</field>
<field name="type">asset_fixed</field>
</record>

<record model="account.account.type" id="data_account_type_current_liabilities">
<field name="name">Current Liabilities</field>
<field name="type">other</field>
<field name="internal_group">liability</field>
<field name="include_initial_balance" eval="True"/>
<field name="name">Current Liabilities</field>
<field name="type">liability_current</field>
</record>

<record model="account.account.type" id="data_account_type_non_current_liabilities">
<field name="name">Non-current Liabilities</field>
<field name="type">other</field>
<field name="internal_group">liability</field>
<field name="include_initial_balance" eval="True"/>
<field name="name">Non-current Liabilities</field>
<field name="type">liability_non_current</field>
</record>

<record model="account.account.type" id="data_account_type_equity">
<field name="name">Equity</field>
<field name="internal_group">equity</field>
<field name="include_initial_balance" eval="True"/>
<field name="name">Equity</field>
<field name="type">equity</field>
</record>

<record model="account.account.type" id="data_unaffected_earnings">
<field name="name">Current Year Earnings</field>
<field name="internal_group">equity</field>
<field name="include_initial_balance" eval="True"/>
<field name="name">Current Year Earnings</field>
<field name="type">equity_unaffected</field>
</record>

<record model="account.account.type" id="data_account_type_revenue">
<field name="name">Income</field>
<field name="type">other</field>
<field name="internal_group">income</field>
<field name="type">income</field>
</record>

<record model="account.account.type" id="data_account_type_other_income">
<field name="name">Other Income</field>
<field name="type">other</field>
<field name="internal_group">income</field>
<field name="name">Other Income</field>
<field name="type">income_other</field>
</record>

<record model="account.account.type" id="data_account_type_expenses">
<field name="name">Expenses</field>
<field name="type">other</field>
<field name="internal_group">expense</field>
<field name="type">expense</field>
</record>

<record model="account.account.type" id="data_account_type_depreciation">
<field name="name">Depreciation</field>
<field name="type">other</field>
<field name="internal_group">expense</field>
<field name="name">Depreciation</field>
<field name="type">expense_depreciation</field>
</record>

<record model="account.account.type" id="data_account_type_direct_costs">
<field name="name">Cost of Revenue</field>
<field name="type">other</field>
<field name="internal_group">expense</field>
<field name="name">Cost of Revenue</field>
<field name="type">expense_direct_cost</field>
</record>

<record model="account.account.type" id="data_account_off_sheet">
<field name="name">Off-Balance Sheet</field>
<field name="type">other</field>
<field name="internal_group">off_balance</field>
<field name="type">off_balance</field>
</record>

</data>
Expand Down
3 changes: 2 additions & 1 deletion accounting_pdf_reports/models/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# -*- coding: utf-8 -*-

# from . import account_account_type
from . import account_account_type
from . import account_financial_report
from . import account_move_line
7 changes: 6 additions & 1 deletion accounting_pdf_reports/models/account_account_type.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,9 @@ class AccountAccountType(models.Model):
("expense_depreciation", "Depreciation"),
("expense_direct_cost", "Cost of Revenue"),
("off_balance", "Off-Balance Sheet"),
],string="Type")
],
string="Type",
help="These types are defined according to your country. The type contains more information " \
"about the account and its specificities."
)

6 changes: 4 additions & 2 deletions accounting_pdf_reports/models/account_financial_report.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,11 @@ def _get_children_by_order(self):
('account_type', 'Account Type'),
('account_report', 'Report Value'),
], 'Type', default='sum')
account_ids = fields.Many2many('account.account', 'account_account_financial_report', 'report_line_id', 'account_id', 'Accounts')
account_ids = fields.Many2many('account.account', 'account_account_financial_report',
'report_line_id', 'account_id', 'Accounts')
account_report_id = fields.Many2one('account.financial.report', 'Report Value')
# account_type_ids = fields.Many2many('account.account.type', 'account_account_financial_report_type', 'report_id', 'account_type_id', 'Account Types')
account_type_ids = fields.Many2many('account.account.type', 'account_account_financial_report_type',
'report_id', 'account_type_id', 'Account Types')
report_domain = fields.Char(string="Report Domain")
sign = fields.Selection([('-1', 'Reverse balance sign'), ('1', 'Preserve balance sign')], 'Sign on Reports',
required=True, default='1',
Expand Down
80 changes: 80 additions & 0 deletions accounting_pdf_reports/models/account_move_line.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# -*- coding: utf-8 -*-

import ast
from odoo import api, models, fields


class AccountMoveLine(models.Model):
_inherit = "account.move.line"

@api.model
def _query_get(self, domain=None):
self.check_access_rights('read')

context = dict(self._context or {})
domain = domain or []
if not isinstance(domain, (list, tuple)):
domain = ast.literal_eval(domain)

date_field = 'date'
if context.get('aged_balance'):
date_field = 'date_maturity'
if context.get('date_to'):
domain += [(date_field, '<=', context['date_to'])]
if context.get('date_from'):
if not context.get('strict_range'):
domain += ['|', (date_field, '>=', context['date_from']), ('account_id.include_initial_balance', '=', True)]
elif context.get('initial_bal'):
domain += [(date_field, '<', context['date_from'])]
else:
domain += [(date_field, '>=', context['date_from'])]

if context.get('journal_ids'):
domain += [('journal_id', 'in', context['journal_ids'])]

state = context.get('state')
if state and state.lower() != 'all':
domain += [('parent_state', '=', state)]

if context.get('company_id'):
domain += [('company_id', '=', context['company_id'])]
elif context.get('allowed_company_ids'):
domain += [('company_id', 'in', self.env.companies.ids)]
else:
domain += [('company_id', '=', self.env.company.id)]

if context.get('reconcile_date'):
domain += ['|', ('reconciled', '=', False), '|', ('matched_debit_ids.max_date', '>', context['reconcile_date']), ('matched_credit_ids.max_date', '>', context['reconcile_date'])]

if context.get('account_tag_ids'):
domain += [('account_id.tag_ids', 'in', context['account_tag_ids'].ids)]

if context.get('account_ids'):
domain += [('account_id', 'in', context['account_ids'].ids)]

if context.get('analytic_tag_ids'):
domain += [('analytic_tag_ids', 'in', context['analytic_tag_ids'].ids)]

if context.get('analytic_account_ids'):
domain += [('analytic_account_id', 'in', context['analytic_account_ids'].ids)]

if context.get('partner_ids'):
domain += [('partner_id', 'in', context['partner_ids'].ids)]

if context.get('partner_categories'):
domain += [('partner_id.category_id', 'in', context['partner_categories'].ids)]

where_clause = ""
where_clause_params = []
tables = ''
if domain:
domain.append(('display_type', 'not in', ('line_section', 'line_note')))
domain.append(('parent_state', '!=', 'cancel'))

query = self._where_calc(domain)

# Wrap the query with 'company_id IN (...)' to avoid bypassing company access rights.
self._apply_ir_rules(query)

tables, where_clause, where_clause_params = query.get_sql()
return tables, where_clause, where_clause_params
4 changes: 1 addition & 3 deletions accounting_pdf_reports/report/report_financial.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,8 @@ def _compute_report_balance(self, reports):
res[report.id][field] += value.get(field)
elif report.type == 'account_type':
# it's the sum the leaf accounts with such an account type

#todo
accounts = self.env['account.account'].search(
[('user_type_id', 'in', report.account_type_ids.ids)])
[('account_type', 'in', report.account_type_ids.mapped('type'))])

res[report.id]['account'] = self._compute_account_balance(accounts)
for value in res[report.id]['account'].values():
Expand Down
4 changes: 3 additions & 1 deletion accounting_pdf_reports/security/ir.model.access.csv
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,6 @@ access_account_common_journal_report,access.account.common.journal.report,model_
access_account_print_journal,access.account.print.journal,model_account_print_journal,account.group_account_user,1,1,1,0

access_account_common_account_report,access_account_common_account_report,model_account_common_account_report,base.group_user,1,0,0,0
access_account_common_partner_report,access_account_common_partner_report,model_account_common_partner_report,base.group_user,1,0,0,0
access_account_common_partner_report,access_account_common_partner_report,model_account_common_partner_report,base.group_user,1,0,0,0
access_account_common_report,access_account_common_report,accounting_pdf_reports.model_account_common_report,base.group_user,1,0,0,0
access_account_account_type,access_account_account_type,accounting_pdf_reports.model_account_account_type,base.group_user,1,0,0,0
40 changes: 23 additions & 17 deletions accounting_pdf_reports/views/financial_report.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,28 +8,33 @@
<field name="arch" type="xml">
<form string="Account Report">
<sheet>
<group col="4">
<field name="name"/>
<field name="parent_id"/>
<field name="sequence"/>
<field name="type"/>
<field name="sign"/>
<field name="style_overwrite"/>
<group>
<group>
<field name="name"/>
<field name="parent_id"/>
<field name="sequence"/>
</group>
<group>
<field name="type"/>
<field name="sign"/>
<field name="style_overwrite"/>
</group>
</group>
<notebook>
<page string="Report" attrs="{'invisible': [('type','not in',['accounts','account_type', 'account_report'])]}">
<page string="Report"
attrs="{'invisible': [('type','not in',['accounts','account_type', 'account_report'])]}">
<group>
<field name="display_detail" attrs="{'invisible': [('type','not in',['accounts','account_type'])]}"/>
<field name="account_report_id" attrs="{'invisible': [('type', '!=', 'account_report')]}"/>
<field name="display_detail"
attrs="{'invisible': [('type','not in',['accounts','account_type'])]}"/>
<field name="account_report_id"
attrs="{'invisible': [('type', '!=', 'account_report')]}"/>
</group>
<field name="account_ids" attrs="{'invisible': [('type', '!=', 'accounts')]}"/>
<!-- <field name="account_type_ids" attrs="{'invisible': [('type', '!=', 'account_type')]}"/>-->
<field name="account_type_ids" attrs="{'invisible': [('type', '!=', 'account_type')]}"/>
</page>
<page string="Childrens">
<group>
<field name="children_ids" nolabel="1">
</field>
</group>
<field name="children_ids" nolabel="1">
</field>
</page>
</notebook>
</sheet>
Expand All @@ -50,7 +55,7 @@
</field>
</record>

<record id="view_account_financial_report_search" model="ir.ui.view">
<record id="view_account_financial_report_search" model="ir.ui.view">
<field name="name">account.financial.report.search</field>
<field name="model">account.financial.report</field>
<field name="arch" type="xml">
Expand All @@ -60,7 +65,8 @@
<field name="account_report_id"/>
<filter string="Reports" name="filter_parent_id" domain="[('parent_id','=', False)]"/>
<group expand="0" string="Group By">
<filter name="parent_report" string="Parent Report" domain="" context="{'group_by':'parent_id'}"/>
<filter name="parent_report" string="Parent Report" domain=""
context="{'group_by':'parent_id'}"/>
<filter name="report_type" string="Report Type" domain="[]" context="{'group_by':'type'}"/>
</group>
</search>
Expand Down
Loading

0 comments on commit 77d0969

Please sign in to comment.