Compare commits

..

129 Commits

Author SHA1 Message Date
88db33f912 Tower: upload om_account_daily_reports 1.0.1 (via marketplace) 2026-05-01 14:21:16 +00:00
ebe40db835 Tower: upload om_account_daily_reports 1.0.1 (via marketplace) 2026-05-01 14:21:16 +00:00
982454b2f5 Tower: upload om_account_daily_reports 1.0.1 (via marketplace) 2026-05-01 14:21:15 +00:00
9335bc4eda Tower: upload om_account_daily_reports 1.0.1 (via marketplace) 2026-05-01 14:21:14 +00:00
b7b2b72379 Tower: upload om_account_daily_reports 1.0.1 (via marketplace) 2026-05-01 14:21:14 +00:00
68401a1cf2 Tower: upload om_account_daily_reports 1.0.1 (via marketplace) 2026-05-01 14:21:13 +00:00
01e8d981aa Tower: upload om_account_daily_reports 1.0.1 (via marketplace) 2026-05-01 14:21:12 +00:00
c6b769d7eb Tower: upload om_account_daily_reports 1.0.1 (via marketplace) 2026-05-01 14:21:11 +00:00
b0b87268fa Tower: upload om_account_daily_reports 1.0.1 (via marketplace) 2026-05-01 14:21:11 +00:00
434512a7c0 Tower: upload om_account_daily_reports 1.0.1 (via marketplace) 2026-05-01 14:21:10 +00:00
8fe8aa6bbf Tower: upload om_account_daily_reports 1.0.1 (via marketplace) 2026-05-01 14:21:09 +00:00
65e232de2b Tower: upload om_account_daily_reports 1.0.1 (via marketplace) 2026-05-01 14:21:08 +00:00
071bfcf31d Tower: upload om_account_daily_reports 1.0.1 (via marketplace) 2026-05-01 14:21:08 +00:00
568f9daaf1 Tower: upload om_account_daily_reports 1.0.1 (via marketplace) 2026-05-01 14:21:07 +00:00
127b7cb233 Tower: upload om_account_daily_reports 1.0.1 (via marketplace) 2026-05-01 14:21:06 +00:00
4142021d85 Tower: upload om_account_daily_reports 1.0.1 (via marketplace) 2026-05-01 14:21:05 +00:00
12d115d1fc Tower: upload om_account_daily_reports 1.0.1 (via marketplace) 2026-05-01 14:21:05 +00:00
7766e1a3a5 Tower: upload om_account_daily_reports 1.0.1 (via marketplace) 2026-05-01 14:21:04 +00:00
76fa65609b Tower: upload om_account_daily_reports 1.0.1 (via marketplace) 2026-05-01 14:21:03 +00:00
87315fbf30 Tower: upload om_account_daily_reports 1.0.1 (via marketplace) 2026-05-01 14:21:02 +00:00
ed7fe289fc Tower: upload om_account_daily_reports 1.0.1 (via marketplace) 2026-05-01 14:21:02 +00:00
6540dbff99 Tower: upload om_account_daily_reports 1.0.1 (via marketplace) 2026-05-01 14:21:01 +00:00
60c245b407 Tower: upload om_account_daily_reports 1.0.1 (via marketplace) 2026-05-01 14:21:00 +00:00
8ffa385b1f Tower: upload om_account_daily_reports 1.0.1 (via marketplace) 2026-05-01 14:20:59 +00:00
fd0a5a358a Tower: upload om_account_daily_reports 1.0.1 (via marketplace) 2026-05-01 14:20:59 +00:00
08dd515517 Tower: upload om_account_daily_reports 1.0.1 (via marketplace) 2026-05-01 14:20:58 +00:00
7cef065bde Tower: upload om_account_daily_reports 1.0.1 (via marketplace) 2026-05-01 14:20:57 +00:00
7ade9aae03 Tower: upload om_account_daily_reports 1.0.1 (via marketplace) 2026-05-01 14:20:57 +00:00
532efc8a07 Tower: upload om_account_daily_reports 1.0.1 (via marketplace) 2026-05-01 14:20:56 +00:00
10719628e3 Tower: upload om_account_daily_reports 1.0.1 (via marketplace) 2026-05-01 14:20:55 +00:00
b8b2528b12 Tower: upload om_account_daily_reports 1.0.1 (via marketplace) 2026-05-01 14:20:55 +00:00
aa4221b2fe Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:54 +00:00
261c16061f Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:53 +00:00
184c88df09 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:53 +00:00
4072474ee3 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:52 +00:00
65145b21fa Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:51 +00:00
6f4831e613 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:50 +00:00
dc4bf9e012 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:49 +00:00
ef5398f5fb Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:49 +00:00
791818fd64 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:48 +00:00
3b08defcc3 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:48 +00:00
d3cf19c3f4 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:47 +00:00
70f019ae37 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:46 +00:00
630fb5358a Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:45 +00:00
b5722ae417 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:45 +00:00
8cd7052a63 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:44 +00:00
dbe0ea924c Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:43 +00:00
7953e4b50f Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:42 +00:00
4315e14697 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:41 +00:00
6e032ba798 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:41 +00:00
c577f33a97 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:40 +00:00
b0327f442e Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:39 +00:00
fbd39e10d6 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:39 +00:00
b18d61edc4 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:38 +00:00
f20f658a5f Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:37 +00:00
88f06ae627 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:37 +00:00
5f076d37de Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:36 +00:00
054ec9151d Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:35 +00:00
7cbd9ab842 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:35 +00:00
79943927dd Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:34 +00:00
6c9c36663e Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:33 +00:00
6b30fe12d0 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:33 +00:00
9ef85d0aa9 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:32 +00:00
7c3def72d6 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:31 +00:00
481c83dce4 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:30 +00:00
7210ca1ffd Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:30 +00:00
d832e40e73 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:29 +00:00
e3db68618d Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:28 +00:00
a031cefe86 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:28 +00:00
e57e734c40 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:27 +00:00
17b7a9432c Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:26 +00:00
2dadde64d2 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:25 +00:00
2d4e7b3ee2 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:25 +00:00
617e1ddd42 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:24 +00:00
926206c4a7 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:23 +00:00
8b6041cd3d Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:22 +00:00
593267811f Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:21 +00:00
9728383428 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:21 +00:00
194babdf41 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:20 +00:00
6f78e2e524 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:19 +00:00
b04f780820 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:18 +00:00
fd396fe299 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:18 +00:00
0670fe453d Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:17 +00:00
fbfa62ad9a Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:16 +00:00
f4d652059c Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:16 +00:00
72f3aa1ab6 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:15 +00:00
13f6bc6f40 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:14 +00:00
8408279160 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:13 +00:00
ef666a5685 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:13 +00:00
0958b0a64c Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:12 +00:00
d238e31685 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:11 +00:00
1e5abc888e Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:10 +00:00
96a6b7bb1f Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:10 +00:00
d4f016e8a0 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:09 +00:00
99f0c26c35 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:08 +00:00
06d20d0ff0 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:08 +00:00
faac65cddb Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:07 +00:00
cbc4503466 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:06 +00:00
cf972bf291 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:05 +00:00
ebaf474567 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:05 +00:00
bb7f341d77 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:03 +00:00
94189882f7 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:02 +00:00
50a789be28 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:02 +00:00
782012f925 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:01 +00:00
b5fe6ea753 Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:20:00 +00:00
f212637b6a Tower: upload accounting_pdf_reports 1.0.2 (via marketplace) 2026-05-01 14:19:59 +00:00
0957153883 Tower: upload om_recurring_payments 1.0.0 (via marketplace) 2026-05-01 14:19:58 +00:00
4ddb63b195 Tower: upload om_recurring_payments 1.0.0 (via marketplace) 2026-05-01 14:19:58 +00:00
8d07a37483 Tower: upload om_recurring_payments 1.0.0 (via marketplace) 2026-05-01 14:19:57 +00:00
6eed23c19a Tower: upload om_recurring_payments 1.0.0 (via marketplace) 2026-05-01 14:19:56 +00:00
fd961a3017 Tower: upload om_recurring_payments 1.0.0 (via marketplace) 2026-05-01 14:19:55 +00:00
9535a8ad6e Tower: upload om_recurring_payments 1.0.0 (via marketplace) 2026-05-01 14:19:55 +00:00
fd0e041e2b Tower: upload om_recurring_payments 1.0.0 (via marketplace) 2026-05-01 14:19:54 +00:00
5732bcb409 Tower: upload om_recurring_payments 1.0.0 (via marketplace) 2026-05-01 14:19:53 +00:00
2c0871abd1 Tower: upload om_recurring_payments 1.0.0 (via marketplace) 2026-05-01 14:19:53 +00:00
37ffda207c Tower: upload om_recurring_payments 1.0.0 (via marketplace) 2026-05-01 14:19:52 +00:00
369070c0fd Tower: upload om_recurring_payments 1.0.0 (via marketplace) 2026-05-01 14:19:51 +00:00
822fbaad04 Tower: upload om_recurring_payments 1.0.0 (via marketplace) 2026-05-01 14:19:51 +00:00
f504f7cc7a Tower: upload om_recurring_payments 1.0.0 (via marketplace) 2026-05-01 14:19:50 +00:00
bdaef9f2e7 Tower: upload om_recurring_payments 1.0.0 (via marketplace) 2026-05-01 14:19:50 +00:00
5ec6423f44 Tower: upload om_recurring_payments 1.0.0 (via marketplace) 2026-05-01 14:19:49 +00:00
d7e283d902 Tower: upload om_recurring_payments 1.0.0 (via marketplace) 2026-05-01 14:19:48 +00:00
57ced67409 Tower: upload om_recurring_payments 1.0.0 (via marketplace) 2026-05-01 14:19:48 +00:00
13723c9273 Tower: upload om_recurring_payments 1.0.0 (via marketplace) 2026-05-01 14:19:47 +00:00
3be0ea0f7b Tower: upload om_recurring_payments 1.0.0 (via marketplace) 2026-05-01 14:19:46 +00:00
ca13d7d3f4 Tower: upload om_recurring_payments 1.0.0 (via marketplace) 2026-05-01 14:19:46 +00:00
be4975f356 Tower: upload om_recurring_payments 1.0.0 (via marketplace) 2026-05-01 14:19:45 +00:00
cb006a7a44 Tower: upload om_recurring_payments 1.0.0 (via marketplace) 2026-05-01 14:19:44 +00:00
a9dc3dcffa Tower: upload om_recurring_payments 1.0.0 (via marketplace) 2026-05-01 14:19:44 +00:00
129 changed files with 23187 additions and 0 deletions

View File

@@ -0,0 +1,46 @@
====================================
Odoo 19 Accounting Financial Reports
====================================
This Module will provide all the financial reports for odoo 19
community edition
Installation
============
To install this module, you need to:
Download the module and add it to your Odoo addons folder. Afterward, log on to
your Odoo server and go to the Apps menu. Trigger the debug mode and update the
list by clicking on the "Update Apps List" link. Now install the module by
clicking on the install button.
Upgrade
============
To upgrade this module, you need to:
Download the module and add it to your Odoo addons folder. Restart the server
and log on to your Odoo server. Select the Apps menu and upgrade the module by
clicking on the upgrade button.
Configuration
=============
There is Nothing to Configure
Credits
=======
Contributors
------------
* Odoo Mates <odoomates@gmail.com>
Author & Maintainer
-------------------
This module is maintained by the Odoo Mates

View File

@@ -0,0 +1,7 @@
from . import wizard
from . import models
from . import report
def _pre_init_clean_m2m_models(env):
env.cr.execute("""DROP TABLE IF EXISTS account_journal_account_report_partner_ledger_rel""")

View File

@@ -0,0 +1,45 @@
{
'name': 'Odoo 19 Accounting Financial Reports',
'version': '1.0.2',
'category': 'Invoicing Management',
'description': 'Accounting Reports For Odoo 19, Accounting Financial Reports, '
'Odoo 19 Financial Reports',
'summary': 'Accounting Reports For Odoo 19',
'sequence': '1',
'author': 'Odoo Mates, Odoo SA',
'license': 'LGPL-3',
'company': 'Odoo Mates',
'maintainer': 'Odoo Mates',
'support': 'odoomates@gmail.com',
'website': 'https://www.youtube.com/watch?v=yA4NLwOLZms',
'depends': ['account'],
'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',
'views/settings.xml',
'wizard/account_report_common_view.xml',
'wizard/partner_ledger.xml',
'wizard/general_ledger.xml',
'wizard/trial_balance.xml',
'wizard/balance_sheet.xml',
'wizard/profit_and_loss.xml',
'wizard/tax_report.xml',
'wizard/aged_partner.xml',
'wizard/journal_audit.xml',
'report/report.xml',
'report/report_partner_ledger.xml',
'report/report_general_ledger.xml',
'report/report_trial_balance.xml',
'report/report_financial.xml',
'report/report_tax.xml',
'report/report_aged_partner.xml',
'report/report_journal_audit.xml',
'report/report_journal_entries.xml',
],
'pre_init_hook': '_pre_init_clean_m2m_models',
'images': ['static/description/banner.gif'],
}

View File

@@ -0,0 +1,96 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<record model="account.account.type" id="data_account_type_receivable">
<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">liability_payable</field>
</record>
<record model="account.account.type" id="data_account_type_liquidity">
<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">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">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">asset_non_current</field>
</record>
<record model="account.account.type" id="data_account_type_prepayments">
<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">asset_fixed</field>
</record>
<record model="account.account.type" id="data_account_type_current_liabilities">
<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">liability_non_current</field>
</record>
<record model="account.account.type" id="data_account_type_equity">
<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="type">equity_unaffected</field>
</record>
<record model="account.account.type" id="data_account_type_revenue">
<field name="name">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">income_other</field>
</record>
<record model="account.account.type" id="data_account_type_expenses">
<field name="name">Expenses</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">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">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">off_balance</field>
</record>
</data>
</odoo>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,3 @@
from . import account_account_type
from . import account_financial_report
from . import account_move_line

View File

@@ -0,0 +1,34 @@
from odoo import api, models, fields
class AccountAccountType(models.Model):
_name = "account.account.type"
_description = "Account Account Type"
name = fields.Char('Name', required=True, translate=True)
type = fields.Selection(
selection=[
("asset_receivable", "Receivable"),
("asset_cash", "Bank and Cash"),
("asset_current", "Current Assets"),
("asset_non_current", "Non-current Assets"),
("asset_prepayments", "Prepayments"),
("asset_fixed", "Fixed Assets"),
("liability_payable", "Payable"),
("liability_credit_card", "Credit Card"),
("liability_current", "Current Liabilities"),
("liability_non_current", "Non-current Liabilities"),
("equity", "Equity"),
("equity_unaffected", "Current Year Earnings"),
("income", "Income"),
("income_other", "Other Income"),
("expense", "Expenses"),
("expense_depreciation", "Depreciation"),
("expense_direct_cost", "Cost of Revenue"),
("off_balance", "Off-Balance Sheet"),
],
string="Type",
help="These types are defined according to your country. The type contains more information " \
"about the account and its specificities."
)

View File

@@ -0,0 +1,74 @@
from odoo import api, models, fields
class AccountFinancialReport(models.Model):
_name = "account.financial.report"
_description = "Account Report"
@api.depends('parent_id', 'parent_id.level')
def _get_level(self):
'''Returns a dictionary with key=the ID of a record and value = the level of this
record in the tree structure.'''
for report in self:
level = 0
if report.parent_id:
level = report.parent_id.level + 1
report.level = level
def _get_children_by_order(self):
res = self
children = self.search([('parent_id', 'in', self.ids)], order='sequence ASC')
if children:
for child in children:
res += child._get_children_by_order()
return res
name = fields.Char('Report Name', required=True, translate=True)
parent_id = fields.Many2one('account.financial.report', 'Parent')
children_ids = fields.One2many('account.financial.report', 'parent_id', 'Account Report')
sequence = fields.Integer('Sequence')
level = fields.Integer(compute='_get_level', string='Level', store=True, recursive=True)
type = fields.Selection([
('sum', 'View'),
('accounts', 'Accounts'),
('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_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'
)
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',
help='For accounts that are typically more debited than credited and that you would '
'like to print as negative amounts in your reports, you should reverse the sign '
'of the balance; e.g.: Expense account. The same applies for accounts that are '
'typically more credited than debited and that you would like to print as positive '
'amounts in your reports; e.g.: Income account.'
)
display_detail = fields.Selection([
('no_detail', 'No detail'),
('detail_flat', 'Display children flat'),
('detail_with_hierarchy', 'Display children with hierarchy')
], 'Display details', default='detail_flat')
style_overwrite = fields.Selection([
('0', 'Automatic formatting'),
('1', 'Main Title 1 (bold, underlined)'),
('2', 'Title 2 (bold)'),
('3', 'Title 3 (bold, smaller)'),
('4', 'Normal Text'),
('5', 'Italic Text (smaller)'),
('6', 'Smallest Text'),
], 'Financial Report Style', default='0',
help="You can set up here the format you want this record to be displayed. "
"If you leave the automatic formatting, it will be computed based on the "
"financial reports hierarchy (auto-computed field 'level').")
children_ids = fields.One2many('account.financial.report', 'parent_id', string='Children')

View File

@@ -0,0 +1,117 @@
import ast
from odoo.osv import expression
from odoo import api, models, fields
class AccountMoveLine(models.Model):
_inherit = "account.move.line"
@api.model
def _where_calc(self, domain, active_test=True):
"""Computes the WHERE clause needed to implement an OpenERP domain.
:param list domain: the domain to compute
:param bool active_test: whether the default filtering of records with
``active`` field set to ``False`` should be applied.
:return: the query expressing the given domain as provided in domain
:rtype: Query
"""
# if the object has an active field ('active', 'x_active'), filter out all
# inactive records unless they were explicitly asked for
if self._active_name and active_test and self.env.context.get('active_test', True):
# the item[0] trick below works for domain items and '&'/'|'/'!'
# operators too
if not any(item[0] == self._active_name for item in domain):
domain = [(self._active_name, '=', 1)] + domain
if domain:
return expression.expression(domain, self).query
else:
return Query(self.env, self._table, self._table_sql)
@api.model
def _apply_ir_rules(self, query, mode='read'):
"""Add what's missing in ``query`` to implement all appropriate ir.rules
(using the ``model_name``'s rules or the current model's rules if ``model_name`` is None)
:param query: the current query object
"""
if self.env.su:
return
# apply main rules on the object
Rule = self.env['ir.rule']
domain = Rule._compute_domain(self._name, mode)
if domain:
expression.expression(domain, self.sudo(), self._table, query)
@api.model
def _query_get(self, domain=None):
self.check_access('read')
context = dict(self.env.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_distribution', '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)
self._apply_ir_rules(query)
from_string, from_params = query.from_clause
where_string, where_params = query.where_clause
tables, where_clause, where_clause_params = from_string, where_string, from_params + where_params
return tables, where_clause, where_clause_params

View File

@@ -0,0 +1,12 @@
from . import report_partner_ledger
from . import report_general_ledger
from . import report_trial_balance
from . import report_tax
from . import report_aged_partner
from . import report_journal
from . import report_financial

View File

@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="action_report_general_ledger" model="ir.actions.report">
<field name="name">General Ledger</field>
<field name="model">account.report.general.ledger</field>
<field name="report_type">qweb-pdf</field>
<field name="report_name">accounting_pdf_reports.report_general_ledger</field>
<field name="report_file">accounting_pdf_reports.report_general_ledger</field>
</record>
<record id="action_report_partnerledger" model="ir.actions.report">
<field name="name">Partner Ledger</field>
<field name="model">account.report.partner.ledger</field>
<field name="report_type">qweb-pdf</field>
<field name="report_name">accounting_pdf_reports.report_partnerledger</field>
<field name="report_file">accounting_pdf_reports.report_partnerledger</field>
</record>
<record id="action_report_trial_balance" model="ir.actions.report">
<field name="name">Trial Balance</field>
<field name="model">account.balance.report</field>
<field name="report_type">qweb-pdf</field>
<field name="report_name">accounting_pdf_reports.report_trialbalance</field>
<field name="report_file">accounting_pdf_reports.report_trialbalance</field>
</record>
<record id="action_report_financial" model="ir.actions.report">
<field name="name">Financial Report</field>
<field name="model">account.financial.report</field>
<field name="report_type">qweb-pdf</field>
<field name="report_name">accounting_pdf_reports.report_financial</field>
<field name="report_file">accounting_pdf_reports.report_financial</field>
</record>
<record id="action_report_account_tax" model="ir.actions.report">
<field name="name">Tax Report</field>
<field name="model">account.tax.report.wizard</field>
<field name="report_type">qweb-pdf</field>
<field name="report_name">accounting_pdf_reports.report_tax</field>
<field name="report_file">accounting_pdf_reports.report_tax</field>
</record>
<record id="action_report_aged_partner_balance" model="ir.actions.report">
<field name="name">Aged Partner Balance</field>
<field name="model">res.partner</field>
<field name="report_type">qweb-pdf</field>
<field name="report_name">accounting_pdf_reports.report_agedpartnerbalance</field>
<field name="report_file">accounting_pdf_reports.report_agedpartnerbalance</field>
</record>
<record id="action_report_journal" model="ir.actions.report">
<field name="name">Journals Audit</field>
<field name="model">account.common.journal.report</field>
<field name="report_type">qweb-pdf</field>
<field name="report_name">accounting_pdf_reports.report_journal</field>
<field name="report_file">accounting_pdf_reports.report_journal</field>
</record>
<record id="action_report_journal_entries" model="ir.actions.report">
<field name="name">Journals Entries</field>
<field name="model">account.move</field>
<field name="report_type">qweb-pdf</field>
<field name="report_name">accounting_pdf_reports.report_journal_entries</field>
<field name="report_file">accounting_pdf_reports.report_journal_entries</field>
<field name="binding_model_id" ref="account.model_account_move"/>
<field name="binding_type">report</field>
</record>
</odoo>

View File

@@ -0,0 +1,263 @@
import time
from odoo import api, models, fields, _
from odoo.exceptions import UserError
from odoo.tools import float_is_zero
from datetime import datetime
from dateutil.relativedelta import relativedelta
class ReportAgedPartnerBalance(models.AbstractModel):
_name = 'report.accounting_pdf_reports.report_agedpartnerbalance'
_description = 'Aged Partner Balance Report'
def _get_partner_move_lines(self, account_type, partner_ids,
date_from, target_move, period_length):
# This method can receive the context key 'include_nullified_amount' {Boolean}
# Do an invoice and a payment and unreconcile. The amount will be nullified
# By default, the partner wouldn't appear in this report.
# The context key allow it to appear
# In case of a period_length of 30 days as of 2019-02-08, we want the following periods:
# Name Stop Start
# 1 - 30 : 2019-02-07 - 2019-01-09
# 31 - 60 : 2019-01-08 - 2018-12-10
# 61 - 90 : 2018-12-09 - 2018-11-10
# 91 - 120 : 2018-11-09 - 2018-10-11
# +120 : 2018-10-10
periods = {}
start = datetime.strptime(str(date_from), "%Y-%m-%d")
date_from = datetime.strptime(str(date_from), "%Y-%m-%d").date()
for i in range(5)[::-1]:
stop = start - relativedelta(days=period_length)
period_name = str((5-(i+1)) * period_length + 1) + '-' + str((5-i) * period_length)
period_stop = (start - relativedelta(days=1)).strftime('%Y-%m-%d')
if i == 0:
period_name = '+' + str(4 * period_length)
periods[str(i)] = {
'name': period_name,
'stop': period_stop,
'start': (i!=0 and stop.strftime('%Y-%m-%d') or False),
}
start = stop
res = []
total = []
cr = self.env.cr
user_company = self.env.user.company_id
user_currency = user_company.currency_id
company_ids = self.env.context.get('company_ids') or [user_company.id]
move_state = ['draft', 'posted']
date = self.env.context.get('date') or fields.Date.today()
company = self.env['res.company'].browse(self.env.context.get('company_id')) or self.env.company
if target_move == 'posted':
move_state = ['posted']
arg_list = (tuple(move_state), tuple(account_type))
reconciliation_clause = '(l.reconciled IS FALSE)'
cr.execute('SELECT debit_move_id, credit_move_id FROM account_partial_reconcile where max_date > %s', (date_from,))
reconciled_after_date = []
for row in cr.fetchall():
reconciled_after_date += [row[0], row[1]]
if reconciled_after_date:
reconciliation_clause = '(l.reconciled IS FALSE OR l.id IN %s)'
arg_list += (tuple(reconciled_after_date),)
arg_list += (date_from, tuple(company_ids))
query = '''
SELECT DISTINCT l.partner_id, UPPER(res_partner.name)
FROM account_move_line AS l left join res_partner on l.partner_id = res_partner.id, account_account, account_move am
WHERE (l.account_id = account_account.id)
AND (l.move_id = am.id)
AND (am.state IN %s)
AND (account_account.account_type IN %s)
AND ''' + reconciliation_clause + '''
AND (l.date <= %s)
AND l.company_id IN %s
ORDER BY UPPER(res_partner.name)'''
cr.execute(query, arg_list)
partners = cr.dictfetchall()
# put a total of 0
for i in range(7):
total.append(0)
# Build a string like (1,2,3) for easy use in SQL query
if not partner_ids:
partner_ids = [partner['partner_id'] for partner in partners if partner['partner_id']]
lines = dict((partner['partner_id'] or False, []) for partner in partners)
if not partner_ids:
return [], [], {}
# This dictionary will store the not due amount of all partners
undue_amounts = {}
query = '''SELECT l.id
FROM account_move_line AS l, account_account, account_move am
WHERE (l.account_id = account_account.id) AND (l.move_id = am.id)
AND (am.state IN %s)
AND (account_account.account_type IN %s)
AND (COALESCE(l.date_maturity,l.date) >= %s)\
AND ((l.partner_id IN %s) OR (l.partner_id IS NULL))
AND (l.date <= %s)
AND l.company_id IN %s'''
cr.execute(query, (tuple(move_state), tuple(account_type), date_from,
tuple(partner_ids), date_from, tuple(company_ids)))
aml_ids = cr.fetchall()
aml_ids = aml_ids and [x[0] for x in aml_ids] or []
for line in self.env['account.move.line'].browse(aml_ids):
partner_id = line.partner_id.id or False
if partner_id not in undue_amounts:
undue_amounts[partner_id] = 0.0
line_amount = line.company_id.currency_id._convert(line.balance,
user_currency,
company, date)
if user_currency.is_zero(line_amount):
continue
for partial_line in line.matched_debit_ids:
if partial_line.max_date <= date_from:
line_currency = partial_line.company_id.currency_id
line_amount += line_currency._convert(partial_line.amount,
user_currency,
company, date)
for partial_line in line.matched_credit_ids:
if partial_line.max_date <= date_from:
line_currency = partial_line.company_id.currency_id
line_amount -= line_currency._convert(partial_line.amount,
user_currency,
company, date)
if not self.env.user.company_id.currency_id.is_zero(line_amount):
undue_amounts[partner_id] += line_amount
lines[partner_id].append({
'line': line,
'amount': line_amount,
'period': 6,
})
# Use one query per period and store results in history (a list variable)
# Each history will contain: history[1] = {'<partner_id>': <partner_debit-credit>}
history = []
for i in range(5):
args_list = (tuple(move_state), tuple(account_type), tuple(partner_ids),)
dates_query = '(COALESCE(l.date_maturity,l.date)'
if periods[str(i)]['start'] and periods[str(i)]['stop']:
dates_query += ' BETWEEN %s AND %s)'
args_list += (periods[str(i)]['start'], periods[str(i)]['stop'])
elif periods[str(i)]['start']:
dates_query += ' >= %s)'
args_list += (periods[str(i)]['start'],)
else:
dates_query += ' <= %s)'
args_list += (periods[str(i)]['stop'],)
args_list += (date_from, tuple(company_ids))
query = '''SELECT l.id
FROM account_move_line AS l, account_account, account_move am
WHERE (l.account_id = account_account.id) AND (l.move_id = am.id)
AND (am.state IN %s)
AND (account_account.account_type IN %s)
AND ((l.partner_id IN %s) OR (l.partner_id IS NULL))
AND ''' + dates_query + '''
AND (l.date <= %s)
AND l.company_id IN %s'''
cr.execute(query, args_list)
partners_amount = {}
aml_ids = cr.fetchall()
aml_ids = aml_ids and [x[0] for x in aml_ids] or []
for line in self.env['account.move.line'].browse(aml_ids):
partner_id = line.partner_id.id or False
if partner_id not in partners_amount:
partners_amount[partner_id] = 0.0
line_currency_id = line.company_id.currency_id
line_amount = line_currency_id._convert(line.balance, user_currency, company, date)
if user_currency.is_zero(line_amount):
continue
for partial_line in line.matched_debit_ids:
if partial_line.max_date <= date_from:
line_currency_id = partial_line.company_id.currency_id
line_amount += line_currency_id._convert(
partial_line.amount, user_currency, company, date)
for partial_line in line.matched_credit_ids:
if partial_line.max_date <= date_from:
line_currency_id = partial_line.company_id.currency_id
line_amount -= line_currency_id._convert(
partial_line.amount, user_currency, company, date)
if not self.env.user.company_id.currency_id.is_zero(line_amount):
partners_amount[partner_id] += line_amount
lines[partner_id].append({
'line': line,
'amount': line_amount,
'period': i + 1,
})
history.append(partners_amount)
for partner in partners:
if partner['partner_id'] is None:
partner['partner_id'] = False
at_least_one_amount = False
values = {}
undue_amt = 0.0
if partner['partner_id'] in undue_amounts: # Making sure this partner actually was found by the query
undue_amt = undue_amounts[partner['partner_id']]
total[6] = total[6] + undue_amt
values['direction'] = undue_amt
if not float_is_zero(values['direction'], precision_rounding=self.env.user.company_id.currency_id.rounding):
at_least_one_amount = True
for i in range(5):
during = False
if partner['partner_id'] in history[i]:
during = [history[i][partner['partner_id']]]
# Adding counter
total[(i)] = total[(i)] + (during and during[0] or 0)
values[str(i)] = during and during[0] or 0.0
if not float_is_zero(values[str(i)],
precision_rounding=self.env.user.company_id.currency_id.rounding):
at_least_one_amount = True
values['total'] = sum([values['direction']] + [values[str(i)] for i in range(5)])
## Add for total
total[(i + 1)] += values['total']
values['partner_id'] = partner['partner_id']
if partner['partner_id']:
browsed_partner = self.env['res.partner'].browse(partner['partner_id'])
values['name'] = browsed_partner.name and len(
browsed_partner.name) >= 45 and browsed_partner.name[
0:40] + '...' or browsed_partner.name
values['trust'] = browsed_partner.trust
else:
values['name'] = _('Unknown Partner')
values['trust'] = False
if at_least_one_amount or (self.env.context.get('include_nullified_amount') and lines[partner['partner_id']]):
res.append(values)
return res, total, lines
@api.model
def _get_report_values(self, docids, data=None):
if not data.get('form') or not self.env.context.get('active_model') or not self.env.context.get('active_id'):
raise UserError(_("Form content is missing, this report cannot be printed."))
model = self.env.context.get('active_model')
docs = self.env[model].browse(self.env.context.get('active_id'))
target_move = data['form'].get('target_move', 'all')
date_from = data['form'].get('date_from', time.strftime('%Y-%m-%d'))
if data['form']['result_selection'] == 'customer':
account_type = ['asset_receivable']
elif data['form']['result_selection'] == 'supplier':
account_type = ['liability_payable']
else:
account_type = ['asset_receivable', 'liability_payable']
partner_ids = data['form']['partner_ids']
movelines, total, dummy = self._get_partner_move_lines(
account_type, partner_ids, date_from, target_move, data['form']['period_length']
)
return {
'doc_ids': self.ids,
'doc_model': model,
'data': data['form'],
'docs': docs,
'time': time,
'get_partner_lines': movelines,
'get_direction': total,
}

View File

@@ -0,0 +1,100 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="report_agedpartnerbalance">
<t t-call="web.html_container">
<t t-set="data_report_margin_top" t-value="12"/>
<t t-set="data_report_header_spacing" t-value="9"/>
<t t-set="data_report_dpi" t-value="110"/>
<t t-call="web.internal_layout">
<div class="page">
<h2>Aged Partner Balance</h2>
<div class="row mt32">
<div class="col-3">
<strong>Start Date:</strong>
<p t-esc="data['date_from']"/>
</div>
<div class="col-3">
<strong>Period Length (days)</strong>
<p t-esc="data['period_length']"/>
</div>
</div>
<div class="row mb32">
<div class="col-3">
<strong>Partner's:</strong>
<p>
<span t-if="data['result_selection'] == 'customer'">Receivable Accounts</span>
<span t-if="data['result_selection'] == 'supplier'">Payable Accounts</span>
<span t-if="data['result_selection'] == 'customer_supplier'">Receivable and Payable Accounts</span>
</p>
</div>
<div class="col-3">
<strong>Target Moves:</strong>
<p>
<span t-if="data['target_move'] == 'all'">All Entries</span>
<span t-if="data['target_move'] == 'posted'">All Posted Entries</span>
</p>
</div>
</div>
<table class="table table-sm table-reports">
<thead>
<tr>
<th>Partners</th>
<th class="text-end">
<span>Not due</span>
</th>
<th class="text-end"><span t-esc="data['4']['name']"/></th>
<th class="text-end"><span t-esc="data['3']['name']"/></th>
<th class="text-end"><span t-esc="data['2']['name']"/></th>
<th class="text-end"><span t-esc="data['1']['name']"/></th>
<th class="text-end"><span t-esc="data['0']['name']"/></th>
<th class="text-end">Total</th>
</tr>
<tr t-if="get_partner_lines">
<th>Account Total</th>
<th class="text-end"><span t-esc="get_direction[6]" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/></th>
<th class="text-end"><span t-esc="get_direction[4]" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/></th>
<th class="text-end"><span t-esc="get_direction[3]" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/></th>
<th class="text-end"><span t-esc="get_direction[2]" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/></th>
<th class="text-end"><span t-esc="get_direction[1]" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/></th>
<th class="text-end"><span t-esc="get_direction[0]" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/></th>
<th class="text-end"><span t-esc="get_direction[5]" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/></th>
</tr>
</thead>
<tbody>
<tr t-foreach="get_partner_lines" t-as="partner">
<td>
<span t-esc="partner['name']"/>
</td>
<td class="text-end">
<span t-esc="partner['direction']" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
<td class="text-end">
<span t-esc="partner['4']" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
<td class="text-end">
<span t-esc="partner['3']" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
<td class="text-end">
<span t-esc="partner['2']" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
<td class="text-end">
<span t-esc="partner['1']" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
<td class="text-end">
<span t-esc="partner['0']" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
<td class="text-end">
<span t-esc="partner['total']" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
</tr>
</tbody>
</table>
</div>
</t>
</t>
</template>
</odoo>

View File

@@ -0,0 +1,163 @@
import time
from odoo import api, models, _
from odoo.exceptions import UserError
class ReportFinancial(models.AbstractModel):
_name = 'report.accounting_pdf_reports.report_financial'
_description = 'Financial Reports'
def _compute_account_balance(self, accounts):
""" compute the balance, debit and credit for the provided accounts
"""
mapping = {
'balance': "COALESCE(SUM(debit),0) - COALESCE(SUM(credit), 0) as balance",
'debit': "COALESCE(SUM(debit), 0) as debit",
'credit': "COALESCE(SUM(credit), 0) as credit",
}
res = {}
for account in accounts:
res[account.id] = dict.fromkeys(mapping, 0.0)
if accounts:
tables, where_clause, where_params = self.env['account.move.line']._query_get()
tables = tables.replace('"', '') if tables else "account_move_line"
wheres = [""]
if where_clause.strip():
wheres.append(where_clause.strip())
filters = " AND ".join(wheres)
request = "SELECT account_id as id, " + ', '.join(mapping.values()) + \
" FROM " + tables + \
" WHERE account_id IN %s " \
+ filters + \
" GROUP BY account_id"
params = (tuple(accounts._ids),) + tuple(where_params)
self.env.cr.execute(request, params)
for row in self.env.cr.dictfetchall():
res[row['id']] = row
return res
def _compute_report_balance(self, reports):
'''returns a dictionary with key=the ID of a record and value=the credit, debit and balance amount
computed for this record. If the record is of type :
'accounts' : it's the sum of the linked accounts
'account_type' : it's the sum of leaf accoutns with such an account_type
'account_report' : it's the amount of the related report
'sum' : it's the sum of the children of this record (aka a 'view' record)'''
res = {}
fields = ['credit', 'debit', 'balance']
for report in reports:
if report.id in res:
continue
res[report.id] = dict((fn, 0.0) for fn in fields)
if report.type == 'accounts':
# it's the sum of the linked accounts
res[report.id]['account'] = self._compute_account_balance(report.account_ids)
for value in res[report.id]['account'].values():
for field in fields:
res[report.id][field] += value.get(field)
elif report.type == 'account_type':
# it's the sum the leaf accounts with such an account type
accounts = self.env['account.account'].search(
[('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():
for field in fields:
res[report.id][field] += value.get(field)
elif report.type == 'account_report' and report.account_report_id:
# it's the amount of the linked report
res2 = self._compute_report_balance(report.account_report_id)
for key, value in res2.items():
for field in fields:
res[report.id][field] += value[field]
elif report.type == 'sum':
# it's the sum of the children of this account.report
res2 = self._compute_report_balance(report.children_ids)
for key, value in res2.items():
for field in fields:
res[report.id][field] += value[field]
return res
def get_account_lines(self, data):
lines = []
account_report = self.env['account.financial.report'].search(
[('id', '=', data['account_report_id'][0])])
child_reports = account_report._get_children_by_order()
res = self.with_context(data.get('used_context'))._compute_report_balance(child_reports)
if data['enable_filter']:
comparison_res = self.with_context(
data.get('comparison_context'))._compute_report_balance(
child_reports)
for report_id, value in comparison_res.items():
res[report_id]['comp_bal'] = value['balance']
report_acc = res[report_id].get('account')
if report_acc:
for account_id, val in comparison_res[report_id].get('account').items():
report_acc[account_id]['comp_bal'] = val['balance']
for report in child_reports:
vals = {
'name': report.name,
'balance': res[report.id]['balance'] * float(report.sign),
'type': 'report',
'level': bool(report.style_overwrite) and report.style_overwrite or report.level,
'account_type': report.type or False, #used to underline the financial report balances
}
if data['debit_credit']:
vals['debit'] = res[report.id]['debit']
vals['credit'] = res[report.id]['credit']
if data['enable_filter']:
vals['balance_cmp'] = res[report.id]['comp_bal'] * float(report.sign)
lines.append(vals)
if report.display_detail == 'no_detail':
#the rest of the loop is used to display the details of the financial report, so it's not needed here.
continue
if res[report.id].get('account'):
sub_lines = []
for account_id, value in res[report.id]['account'].items():
#if there are accounts to display, we add them to the lines with a level equals to their level in
#the COA + 1 (to avoid having them with a too low level that would conflicts with the level of data
#financial reports for Assets, liabilities...)
flag = False
account = self.env['account.account'].browse(account_id)
vals = {
'name': account.code + ' ' + account.name,
'balance': value['balance'] * float(report.sign) or 0.0,
'type': 'account',
'level': report.display_detail == 'detail_with_hierarchy' and 4,
'account_type': account.account_type,
}
if data['debit_credit']:
vals['debit'] = value['debit']
vals['credit'] = value['credit']
if not self.env.company.currency_id.is_zero(vals['debit']) or not self.env.company.currency_id.is_zero(vals['credit']):
flag = True
if not self.env.company.currency_id.is_zero(vals['balance']):
flag = True
if data['enable_filter']:
vals['balance_cmp'] = value['comp_bal'] * float(report.sign)
if not self.env.company.currency_id.is_zero(vals['balance_cmp']):
flag = True
if flag:
sub_lines.append(vals)
lines += sorted(sub_lines, key=lambda sub_line: sub_line['name'])
return lines
@api.model
def _get_report_values(self, docids, data=None):
if not data.get('form') or not self.env.context.get('active_model') or not self.env.context.get('active_id'):
raise UserError(_("Form content is missing, this report cannot be printed."))
model = self.env.context.get('active_model')
docs = self.env[model].browse(self.env.context.get('active_id'))
report_lines = self.get_account_lines(data.get('form'))
return {
'doc_ids': self.ids,
'doc_model': model,
'data': data['form'],
'docs': docs,
'time': time,
'get_account_lines': report_lines,
}

View File

@@ -0,0 +1,116 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="report_financial">
<t t-call="web.html_container">
<t t-foreach="docs" t-as="o">
<t t-call="web.internal_layout">
<div class="page">
<h2 t-esc="data['account_report_id'][1]"/>
<div class="row mt32 mb32">
<div class="col-4">
<strong>Target Moves:</strong>
<p>
<span t-if="data['target_move'] == 'all'">All Entries</span>
<span t-if="data['target_move'] == 'posted'">All Posted Entries</span>
</p>
</div>
<div class="col-4">
<p>
<t t-if="data['date_from']"><strong>Date from :</strong> <span t-esc="data['date_from']"/><br/></t>
<t t-if="data['date_to']"><strong>Date to :</strong> <span t-esc="data['date_to']"/></t>
</p>
</div>
</div>
<table class="table table-sm table-reports" t-if="data['debit_credit'] == 1">
<thead>
<tr>
<th>Name</th>
<th class="text-end">Debit</th>
<th class="text-end">Credit</th>
<th class="text-end">Balance</th>
</tr>
</thead>
<tbody>
<tr t-foreach="get_account_lines" t-as="a">
<t t-if="a['level'] != 0">
<t t-if="int(a.get('level')) &gt; 3"><t t-set="style" t-value="'font-weight: normal;'"/></t>
<t t-if="not int(a.get('level')) &gt; 3"><t t-set="style" t-value="'font-weight: bold;'"/></t>
<td>
<span style="color: white;" t-esc="'..' * int(a.get('level', 0))"/>
<span t-att-style="style" t-esc="a.get('name')"/>
</td>
<td class="text-end" style="white-space: text-nowrap;">
<span t-att-style="style" t-esc="a.get('debit')" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
<td class="text-end" style="white-space: text-nowrap;">
<span t-att-style="style" t-esc="a.get('credit')" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
<td class="text-end" style="white-space: text-nowrap;">
<span t-att-style="style" t-esc="a.get('balance')" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
</t>
</tr>
</tbody>
</table>
<table class="table table-sm table-reports" t-if="not data['enable_filter'] and not data['debit_credit']">
<thead>
<tr>
<th>Name</th>
<th class="text-end">Balance</th>
</tr>
</thead>
<tbody>
<tr t-foreach="get_account_lines" t-as="a">
<t t-if="a['level'] != 0">
<t t-if="int(a.get('level')) &gt; 3"><t t-set="style" t-value="'font-weight: normal;'"/></t>
<t t-if="not int(a.get('level')) &gt; 3"><t t-set="style" t-value="'font-weight: bold;'"/></t>
<td>
<span style="color: white;" t-esc="'..' * int(a.get('level', 0))"/>
<span t-att-style="style" t-esc="a.get('name')"/>
</td>
<td class="text-end"><span t-att-style="style" t-esc="a.get('balance')" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/></td>
</t>
</tr>
</tbody>
</table>
<table class="table table-sm table-reports" t-if="data['enable_filter'] == 1 and not data['debit_credit']">
<thead>
<tr>
<th>Name</th>
<th class="text-end">Balance</th>
<th class="text-end"><span t-esc="data['label_filter']"/></th>
</tr>
</thead>
<tbody>
<tr t-foreach="get_account_lines" t-as="a">
<t t-if="a['level'] != 0">
<t t-if="int(a.get('level')) &gt; 3"><t t-set="style" t-value="'font-weight: normal;'"/></t>
<t t-if="not int(a.get('level')) &gt; 3"><t t-set="style" t-value="'font-weight: bold;'"/></t>
<td>
<span style="color: white;" t-esc="'..'"/>
<span t-att-style="style" t-esc="a.get('name')"/>
</td>
<td class="text-end">
<span t-att-style="style" t-esc="a.get('balance')" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
<td class="text-end">
<span t-att-style="style" t-esc="a.get('balance_cmp')" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
</t>
</tr>
</tbody>
</table>
</div>
</t>
</t>
</t>
</template>
</odoo>

View File

@@ -0,0 +1,184 @@
import time
from odoo import api, models, _
from odoo.exceptions import UserError
class ReportGeneralLedger(models.AbstractModel):
_name = 'report.accounting_pdf_reports.report_general_ledger'
_description = 'General Ledger Report'
def _get_account_move_entry(self, accounts, analytic_account_ids,
partner_ids, init_balance,
sortby, display_account):
"""
:param:
accounts: the recordset of accounts
analytic_account_ids: the recordset of analytic accounts
init_balance: boolean value of initial_balance
sortby: sorting by date or partner and journal
display_account: type of account(receivable, payable and both)
Returns a dictionary of accounts with following key and value {
'code': account code,
'name': account name,
'debit': sum of total debit amount,
'credit': sum of total credit amount,
'balance': total balance,
'amount_currency': sum of amount_currency,
'move_lines': list of move line
}
"""
cr = self.env.cr
MoveLine = self.env['account.move.line']
move_lines = {x: [] for x in accounts.ids}
# Prepare initial sql query and Get the initial move lines
if init_balance:
context = dict(self.env.context)
context['date_from'] = self.env.context.get('date_from')
context['date_to'] = False
context['initial_bal'] = True
if analytic_account_ids:
context['analytic_account_ids'] = analytic_account_ids
if partner_ids:
context['partner_ids'] = partner_ids
init_tables, init_where_clause, init_where_params = MoveLine.with_context(context)._query_get()
init_wheres = [""]
if init_where_clause.strip():
init_wheres.append(init_where_clause.strip())
init_filters = " AND ".join(init_wheres)
filters = init_filters.replace('account_move_line__move_id', 'm').replace('account_move_line', 'l')
sql = ("""SELECT 0 AS lid, l.account_id AS account_id, '' AS ldate,
'' AS lcode, 0.0 AS amount_currency,
'' AS analytic_account_id, '' AS lref,
'Initial Balance' AS lname, COALESCE(SUM(l.debit),0.0) AS debit,
COALESCE(SUM(l.credit),0.0) AS credit,
COALESCE(SUM(l.debit),0) - COALESCE(SUM(l.credit), 0) as balance,
'' AS lpartner_id,\
'' AS move_name, '' AS move_id, '' AS currency_code,\
NULL AS currency_id,\
'' AS invoice_id, '' AS invoice_type, '' AS invoice_number,\
'' AS partner_name\
FROM account_move_line l\
LEFT JOIN account_move m ON (l.move_id=m.id)\
LEFT JOIN res_currency c ON (l.currency_id=c.id)\
LEFT JOIN res_partner p ON (l.partner_id=p.id)\
JOIN account_journal j ON (l.journal_id=j.id)\
WHERE l.account_id IN %s""" + filters + ' GROUP BY l.account_id')
params = (tuple(accounts.ids),) + tuple(init_where_params)
cr.execute(sql, params)
for row in cr.dictfetchall():
move_lines[row.pop('account_id')].append(row)
sql_sort = 'l.date, l.move_id'
if sortby == 'sort_journal_partner':
sql_sort = 'j.code, p.name, l.move_id'
# Prepare sql query base on selected parameters from wizard
context = dict(self.env.context)
if analytic_account_ids:
context['analytic_account_ids'] = analytic_account_ids
if partner_ids:
context['partner_ids'] = partner_ids
tables, where_clause, where_params = MoveLine.with_context(context)._query_get()
wheres = [""]
if where_clause.strip():
wheres.append(where_clause.strip())
filters = " AND ".join(wheres)
filters = filters.replace('account_move_line__move_id', 'm').replace('account_move_line', 'l')
# Get move lines base on sql query and Calculate the total balance of move lines
sql = ('''SELECT l.id AS lid, l.account_id AS account_id,
l.date AS ldate, j.code AS lcode, l.currency_id,
l.amount_currency, '' AS analytic_account_id,
l.ref AS lref, l.name AS lname, COALESCE(l.debit,0) AS debit,
COALESCE(l.credit,0) AS credit,
COALESCE(SUM(l.debit),0) - COALESCE(SUM(l.credit), 0) AS balance,\
m.name AS move_name, c.symbol AS currency_code,
p.name AS partner_name\
FROM account_move_line l\
JOIN account_move m ON (l.move_id=m.id)\
LEFT JOIN res_currency c ON (l.currency_id=c.id)\
LEFT JOIN res_partner p ON (l.partner_id=p.id)\
JOIN account_journal j ON (l.journal_id=j.id)\
JOIN account_account acc ON (l.account_id = acc.id) \
WHERE l.account_id IN %s ''' + filters + ''' GROUP BY l.id,
l.account_id, l.date, j.code, l.currency_id, l.amount_currency,
l.ref, l.name, m.name, c.symbol, p.name ORDER BY ''' + sql_sort)
params = (tuple(accounts.ids),) + tuple(where_params)
cr.execute(sql, params)
for row in cr.dictfetchall():
balance = 0
for line in move_lines.get(row['account_id']):
balance += line['debit'] - line['credit']
row['balance'] += balance
move_lines[row.pop('account_id')].append(row)
# Calculate the debit, credit and balance for Accounts
account_res = []
for account in accounts:
currency = account.currency_id and account.currency_id or self.env.company.currency_id
res = dict((fn, 0.0) for fn in ['credit', 'debit', 'balance'])
res['code'] = account.code
res['name'] = account.name
res['move_lines'] = move_lines[account.id]
for line in res.get('move_lines'):
res['debit'] += line['debit']
res['credit'] += line['credit']
res['balance'] = line['balance']
if display_account == 'all':
account_res.append(res)
if display_account == 'movement' and res.get('move_lines'):
account_res.append(res)
if display_account == 'not_zero' and not currency.is_zero(res['balance']):
account_res.append(res)
return account_res
@api.model
def _get_report_values(self, docids, data=None):
if not data.get('form') or not self.env.context.get('active_model'):
raise UserError(_("Form content is missing, this report cannot be printed."))
model = self.env.context.get('active_model')
docs = self.env[model].browse(self.env.context.get('active_ids', []))
init_balance = data['form'].get('initial_balance', True)
sortby = data['form'].get('sortby', 'sort_date')
display_account = data['form']['display_account']
codes = []
if data['form'].get('journal_ids', False):
codes = [journal.code for journal in
self.env['account.journal'].search(
[('id', 'in', data['form']['journal_ids'])])]
analytic_account_ids = False
if data['form'].get('analytic_account_ids', False):
analytic_account_ids = self.env['account.analytic.account'].search(
[('id', 'in', data['form']['analytic_account_ids'])])
partner_ids = False
if data['form'].get('partner_ids', False):
partner_ids = self.env['res.partner'].search(
[('id', 'in', data['form']['partner_ids'])])
if model == 'account.account':
accounts = docs
else:
domain = []
if data['form'].get('account_ids', False):
domain.append(('id', 'in', data['form']['account_ids']))
accounts = self.env['account.account'].search(domain)
accounts_res = self.with_context(
data['form'].get('used_context', {}))._get_account_move_entry(
accounts,
analytic_account_ids,
partner_ids,
init_balance, sortby, display_account)
return {
'doc_ids': docids,
'doc_model': model,
'data': data['form'],
'docs': docs,
'time': time,
'Accounts': accounts_res,
'print_journal': codes,
'accounts': accounts,
'partner_ids': partner_ids,
'analytic_account_ids': analytic_account_ids,
}

View File

@@ -0,0 +1,124 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="report_general_ledger">
<t t-call="web.html_container">
<t t-set="data_report_margin_top" t-value="12"/>
<t t-set="data_report_header_spacing" t-value="9"/>
<t t-set="data_report_dpi" t-value="110"/>
<t t-call="web.internal_layout">
<div class="page">
<h2><span t-esc="res_company.name"/>: General ledger</h2>
<div class="row mt32">
<div class="col-4">
<strong>Journals:</strong>
<p t-esc="', '.join([ lt or '' for lt in print_journal ])"/>
</div>
<t groups="analytic.group_analytic_accounting">
<t t-if="analytic_account_ids">
<div class="col-4">
<strong>Analytic Accounts:</strong>
<p t-esc="', '.join([aa.name or '' for aa in analytic_account_ids ])"/>
</div>
</t>
</t>
<div class="col-4">
<strong>Display Account</strong>
<p>
<span t-if="data['display_account'] == 'all'">All accounts'</span>
<span t-if="data['display_account'] == 'movement'">With movements</span>
<span t-if="data['display_account'] == 'not_zero'">With balance not equal to zero</span>
</p>
</div>
<div class="col-4">
<strong>Target Moves:</strong>
<p t-if="data['target_move'] == 'all'">All Entries</p>
<p t-if="data['target_move'] == 'posted'">All Posted Entries</p>
</div>
</div>
<div class="row mb32">
<div class="col-4">
<strong>Sorted By:</strong>
<p t-if="data['sortby'] == 'sort_date'">Date</p>
<p t-if="data['sortby'] == 'sort_journal_partner'">Journal and Partner</p>
</div>
<div class="col-4">
<t t-if="data['date_from']"><strong>Date from :</strong> <span t-esc="data['date_from']"/><br/></t>
<t t-if="data['date_to']"><strong>Date to :</strong> <span t-esc="data['date_to']"/></t>
</div>
</div>
<table class="table table-sm table-reports">
<thead>
<tr class="text-center">
<th>Date</th>
<th>JRNL</th>
<th>Partner</th>
<th>Ref</th>
<th>Move</th>
<t groups="analytic.group_analytic_accounting">
<th>Analytic Account</th>
</t>
<th>Entry Label</th>
<th>Debit</th>
<th>Credit</th>
<th>Balance</th>
<th groups="base.group_multi_currency">Currency</th>
</tr>
</thead>
<tbody>
<t t-foreach="Accounts" t-as="account">
<tr style="font-weight: bold;">
<td colspan="6">
<span style="color: white;" t-esc="'..'"/>
<span t-esc="account['code']"/>
<span t-esc="account['name']"/>
</td>
<t groups="analytic.group_analytic_accounting">
<td></td>
</t>
<td class="text-end">
<span t-esc="account['debit']" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
<td class="text-end">
<span t-esc="account['credit']" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
<td class="text-end">
<span t-esc="account['balance']" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
<td groups="base.group_multi_currency"/>
</tr>
<tr t-foreach="account['move_lines']" t-as="line">
<td><span t-esc="line['ldate']"/></td>
<td><span t-esc="line['lcode']"/></td>
<td><span t-esc="line['partner_name']"/></td>
<td><span t-if="line['lref']" t-esc="line['lref']"/></td>
<td><span t-esc="line['move_name']"/></td>
<t groups="analytic.group_analytic_accounting">
<td><span t-esc="line['analytic_account_id']"/></td>
</t>
<td><span t-esc="line['lname']"/></td>
<td class="text-end">
<span t-esc="line['debit']" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
<td class="text-end">
<span t-esc="line['credit']" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
<td class="text-end">
<span t-esc="line['balance']" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
<td class="text-end" groups="base.group_multi_currency">
<span t-esc="line['amount_currency'] if line['amount_currency'] and line['amount_currency'] > 0.00 else ''"/>
<span t-esc="line['currency_code'] if line['amount_currency'] and line['amount_currency'] > 0.00 else ''"/>
</td>
</tr>
</t>
</tbody>
</table>
</div>
</t>
</t>
</template>
</odoo>

View File

@@ -0,0 +1,117 @@
import time
from odoo import api, models, _
from odoo.exceptions import UserError
class ReportJournal(models.AbstractModel):
_name = 'report.accounting_pdf_reports.report_journal'
_description = 'Journal Audit Report'
def lines(self, target_move, journal_ids, sort_selection, data):
if isinstance(journal_ids, int):
journal_ids = [journal_ids]
move_state = ['draft', 'posted']
if target_move == 'posted':
move_state = ['posted']
query_get_clause = self._get_query_get_clause(data)
params = [tuple(move_state), tuple(journal_ids)] + query_get_clause[2]
query = 'SELECT "account_move_line".id FROM ' + query_get_clause[0] + ', account_move am, account_account acc WHERE "account_move_line".account_id = acc.id AND "account_move_line".move_id=am.id AND am.state IN %s AND "account_move_line".journal_id IN %s AND ' + query_get_clause[1] + ' ORDER BY '
if sort_selection == 'date':
query += '"account_move_line".date'
else:
query += 'am.name'
query += ', "account_move_line".move_id'
self.env.cr.execute(query, tuple(params))
ids = (x[0] for x in self.env.cr.fetchall())
return self.env['account.move.line'].browse(ids)
def _sum_debit(self, data, journal_id):
move_state = ['draft', 'posted']
if data['form'].get('target_move', 'all') == 'posted':
move_state = ['posted']
query_get_clause = self._get_query_get_clause(data)
params = [tuple(move_state), tuple(journal_id.ids)] + query_get_clause[2]
self.env.cr.execute('SELECT SUM(debit) FROM ' + query_get_clause[0] + ', account_move am '
'WHERE "account_move_line".move_id=am.id AND am.state IN %s AND "account_move_line".journal_id IN %s AND ' + query_get_clause[1] + ' ',
tuple(params))
return self.env.cr.fetchone()[0] or 0.0
def _sum_credit(self, data, journal_id):
move_state = ['draft', 'posted']
if data['form'].get('target_move', 'all') == 'posted':
move_state = ['posted']
query_get_clause = self._get_query_get_clause(data)
params = [tuple(move_state), tuple(journal_id.ids)] + query_get_clause[2]
self.env.cr.execute('SELECT SUM(credit) FROM ' + query_get_clause[0] + ', account_move am '
'WHERE "account_move_line".move_id=am.id AND am.state IN %s AND "account_move_line".journal_id IN %s AND ' + query_get_clause[1] + ' ',
tuple(params))
return self.env.cr.fetchone()[0] or 0.0
def _get_taxes(self, data, journal_id):
move_state = ['draft', 'posted']
if data['form'].get('target_move', 'all') == 'posted':
move_state = ['posted']
query_get_clause = self._get_query_get_clause(data)
params = [tuple(move_state), tuple(journal_id.ids)] + query_get_clause[2]
query = """
SELECT rel.account_tax_id, SUM("account_move_line".balance) AS base_amount
FROM account_move_line_account_tax_rel rel, """ + query_get_clause[0] + """
LEFT JOIN account_move am ON "account_move_line".move_id = am.id
WHERE "account_move_line".id = rel.account_move_line_id
AND am.state IN %s
AND "account_move_line".journal_id IN %s
AND """ + query_get_clause[1] + """
GROUP BY rel.account_tax_id"""
self.env.cr.execute(query, tuple(params))
ids = []
base_amounts = {}
for row in self.env.cr.fetchall():
ids.append(row[0])
base_amounts[row[0]] = row[1]
res = {}
for tax in self.env['account.tax'].browse(ids):
self.env.cr.execute('SELECT sum(debit - credit) FROM ' + query_get_clause[0] + ', account_move am '
'WHERE "account_move_line".move_id=am.id AND am.state IN %s AND "account_move_line".journal_id IN %s AND ' + query_get_clause[1] + ' AND tax_line_id = %s',
tuple(params + [tax.id]))
res[tax] = {
'base_amount': base_amounts[tax.id],
'tax_amount': self.env.cr.fetchone()[0] or 0.0,
}
if journal_id.type == 'sale':
#sales operation are credits
res[tax]['base_amount'] = res[tax]['base_amount'] * -1
res[tax]['tax_amount'] = res[tax]['tax_amount'] * -1
return res
def _get_query_get_clause(self, data):
return self.env['account.move.line'].with_context(data['form'].get('used_context', {}))._query_get()
@api.model
def _get_report_values(self, docids, data=None):
if not data.get('form'):
raise UserError(_("Form content is missing, this report cannot be printed."))
target_move = data['form'].get('target_move', 'all')
sort_selection = data['form'].get('sort_selection', 'date')
res = {}
for journal in data['form']['journal_ids']:
res[journal] = self.with_context(data['form'].get('used_context', {})).lines(target_move, journal, sort_selection, data)
return {
'doc_ids': data['form']['journal_ids'],
'doc_model': self.env['account.journal'],
'data': data,
'docs': self.env['account.journal'].browse(data['form']['journal_ids']),
'time': time,
'lines': res,
'sum_credit': self._sum_credit,
'sum_debit': self._sum_debit,
'get_taxes': self._get_taxes,
}

View File

@@ -0,0 +1,105 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="report_journal">
<t t-call="web.html_container">
<t t-set="data_report_margin_top" t-value="12"/>
<t t-set="data_report_header_spacing" t-value="9"/>
<t t-set="data_report_dpi" t-value="110"/>
<t t-foreach="docs" t-as="o">
<t t-call="web.internal_layout">
<div class="page">
<h2><t t-esc="o.name"/> Journal</h2>
<div class="row mt32">
<div class="col-3">
<strong>Company:</strong>
<p t-esc="res_company.name"/>
</div>
<div class="col-3">
<strong>Journal:</strong>
<p t-esc="o.name"/>
</div>
<div class="col-3">
<strong>Entries Sorted By:</strong>
<p t-if="data['form'].get('sort_selection') != 'l.date'">Journal Entry Number</p>
<p t-if="data['form'].get('sort_selection') == 'l.date'">Date</p>
</div>
<div class="col-3">
<strong>Target Moves:</strong>
<p t-if="data['form']['target_move'] == 'all'">All Entries</p>
<p t-if="data['form']['target_move'] == 'posted'">All Posted Entries</p>
</div>
</div>
<table class="table table-sm table-reports">
<thead>
<tr>
<th>Move</th>
<th>Date</th>
<th>Account</th>
<th>Partner</th>
<th>Label</th>
<th>Debit</th>
<th>Credit</th>
<th t-if="data['form']['amount_currency']">Currency</th>
</tr>
</thead>
<tbody>
<tr t-foreach="lines[o.id]" t-as="aml">
<td><span t-esc="aml.move_id.name != '/' and aml.move_id.name or ('*'+str(aml.move_id.id))"/></td>
<td><span t-field="aml.date"/></td>
<td><span t-field="aml.account_id.code"/></td>
<td><span t-esc="aml.sudo().partner_id and aml.sudo().partner_id.name and aml.sudo().partner_id.name[:23] or ''"/></td>
<td><span t-esc="aml.name and aml.name[:35]"/></td>
<td><span t-esc="aml.debit" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/></td>
<td><span t-esc="aml.credit" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/></td>
<td t-if="data['form']['amount_currency'] and aml.amount_currency">
<span t-esc="aml.amount_currency" t-options="{'widget': 'monetary', 'display_currency': aml.currency_id}"/>
</td>
</tr>
</tbody>
</table>
<div class="row">
<div class="col-4 pull-right">
<table>
<tr>
<td><strong>Total</strong></td>
<td><span t-esc="sum_debit(data, o)" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/></td>
<td><span t-esc="sum_credit(data, o)" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/></td>
</tr>
</table>
</div>
</div>
<div class="row">
<div class="col-4">
<table class="table table-sm table-reports">
<thead>
<tr><th colspan="3">Tax Declaration</th></tr>
<tr>
<th>Name</th>
<th>Base Amount</th>
<th>Tax Amount</th>
</tr>
</thead>
<tbody>
<t t-set="taxes" t-value="get_taxes(data, o)"/>
<tr t-foreach="taxes" t-as="tax">
<td><span t-esc="tax.name"/></td>
<td><span t-esc="taxes[tax]['base_amount']" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/></td>
<td><span t-esc="taxes[tax]['tax_amount']" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</t>
</t>
</t>
</template>
</odoo>

View File

@@ -0,0 +1,108 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="report_journal_entries">
<t t-call="web.html_container">
<t t-call="web.external_layout">
<t t-foreach="docs" t-as="o">
<div class="page" style="font-size:15px;">
<div>
<h3>
<span t-field="o.name"/>
</h3>
</div>
<br></br>
<div class="row">
<table width="100%" class="table-bordered">
<tr>
<td>Journal:
<span t-field="o.journal_id.name"/>
</td>
<td>
Date:
<span t-field="o.date" t-options="{'widget': 'date'}"/>
</td>
</tr>
<tr>
<td>
Partner:
<span t-field="o.partner_id.display_name"/>
</td>
<td>
Reference:
<span t-field="o.ref"/>
</td>
</tr>
</table>
</div>
<div class="row">
<br></br>
<table width="100%" class="table-bordered">
<thead>
<tr>
<th>Account</th>
<th>Date</th>
<th>Partner</th>
<th>Label</th>
<th>Analytic Account</th>
<th>Debit</th>
<th>Credit</th>
</tr>
</thead>
<tbody>
<t t-set="total_credit" t-value="0"/>
<t t-set="total_debit" t-value="0"/>
<t t-foreach="o.line_ids" t-as="line">
<tr>
<td>
<span t-field="line.account_id.name"/>
</td>
<td>
<span t-field="line.date" t-options="{'widget': 'date'}"/>
</td>
<td>
<span t-field="line.partner_id.display_name"/>
</td>
<td>
<span t-field="line.name"/>
</td>
<td>
<span t-field="line.analytic_account_id.display_name"/>
</td>
<td class="text-end">
<span t-field="line.debit"
t-options="{'widget': 'monetary', 'display_currency': line.currency_id}"/>
</td>
<td class="text-end">
<span t-field="line.credit"
t-options="{'widget': 'monetary', 'display_currency': line.currency_id}"/>
</td>
<t t-set="total_credit" t-value="total_credit + line.credit"/>
<t t-set="total_debit" t-value="total_debit + line.debit"/>
</tr>
</t>
</tbody>
<tfooter>
<tr>
<td colspan="5"></td>
<td class="text-end">
<span t-esc="total_debit"
t-options="{'widget': 'monetary', 'display_currency': o.currency_id}"/>
</td>
<td class="text-end">
<span t-esc="total_credit"
t-options="{'widget': 'monetary', 'display_currency': o.currency_id}"/>
</td>
</tr>
</tfooter>
</table>
</div>
</div>
</t>
</t>
</t>
</template>
</odoo>

View File

@@ -0,0 +1,122 @@
import time
from odoo import api, models, _
from odoo.exceptions import UserError
class ReportPartnerLedger(models.AbstractModel):
_name = 'report.accounting_pdf_reports.report_partnerledger'
_description = 'Partner Ledger Report'
def _lines(self, data, partner):
full_account = []
currency = self.env['res.currency']
query_get_data = self.env['account.move.line'].with_context(data['form'].get('used_context', {}))._query_get()
reconcile_clause = "" if data['form']['reconciled'] else ' AND "account_move_line".full_reconcile_id IS NULL '
params = [partner.id, tuple(data['computed']['move_state']), tuple(data['computed']['account_ids'])] + query_get_data[2]
query = """
SELECT "account_move_line".id, "account_move_line".date, j.code, acc.name->>'en_US' as a_name, "account_move_line".ref, m.name as move_name, "account_move_line".name, "account_move_line".debit, "account_move_line".credit, "account_move_line".amount_currency,"account_move_line".currency_id, c.symbol AS currency_code
FROM """ + query_get_data[0] + """
LEFT JOIN account_journal j ON ("account_move_line".journal_id = j.id)
LEFT JOIN account_account acc ON ("account_move_line".account_id = acc.id)
LEFT JOIN res_currency c ON ("account_move_line".currency_id=c.id)
LEFT JOIN account_move m ON (m.id="account_move_line".move_id)
WHERE "account_move_line".partner_id = %s
AND m.state IN %s
AND "account_move_line".account_id IN %s AND """ + query_get_data[1] + reconcile_clause + """
ORDER BY "account_move_line".date"""
self.env.cr.execute(query, tuple(params))
res = self.env.cr.dictfetchall()
sum = 0.0
lang_code = self.env.context.get('lang') or 'en_US'
lang = self.env['res.lang']
lang_id = lang._lang_get(lang_code)
date_format = lang_id.date_format
for r in res:
r['date'] = r['date']
r['displayed_name'] = '-'.join(
r[field_name] for field_name in ('move_name', 'ref', 'name')
if r[field_name] not in (None, '', '/')
)
sum += r['debit'] - r['credit']
r['progress'] = sum
r['currency_id'] = currency.browse(r.get('currency_id'))
full_account.append(r)
return full_account
def _sum_partner(self, data, partner, field):
if field not in ['debit', 'credit', 'debit - credit']:
return
result = 0.0
query_get_data = self.env['account.move.line'].with_context(data['form'].get('used_context', {}))._query_get()
reconcile_clause = "" if data['form']['reconciled'] else ' AND "account_move_line".full_reconcile_id IS NULL '
params = [partner.id, tuple(data['computed']['move_state']), tuple(data['computed']['account_ids'])] + query_get_data[2]
query = """SELECT sum(""" + field + """)
FROM """ + query_get_data[0] + """, account_move AS m
WHERE "account_move_line".partner_id = %s
AND m.id = "account_move_line".move_id
AND m.state IN %s
AND account_id IN %s
AND """ + query_get_data[1] + reconcile_clause
self.env.cr.execute(query, tuple(params))
contemp = self.env.cr.fetchone()
if contemp is not None:
result = contemp[0] or 0.0
return result
@api.model
def _get_report_values(self, docids, data=None):
if not data.get('form'):
raise UserError(_("Form content is missing, this report cannot be printed."))
data['computed'] = {}
obj_partner = self.env['res.partner']
query_get_data = self.env['account.move.line'].with_context(data['form'].get('used_context', {}))._query_get()
data['computed']['move_state'] = ['draft', 'posted']
if data['form'].get('target_move', 'all') == 'posted':
data['computed']['move_state'] = ['posted']
result_selection = data['form'].get('result_selection', 'customer')
if result_selection == 'supplier':
data['computed']['ACCOUNT_TYPE'] = ['liability_payable']
elif result_selection == 'customer':
data['computed']['ACCOUNT_TYPE'] = ['asset_receivable']
else:
data['computed']['ACCOUNT_TYPE'] = ['asset_receivable', 'liability_payable']
self.env.cr.execute("""
SELECT a.id
FROM account_account a
WHERE a.account_type IN %s
AND a.active""", (tuple(data['computed']['ACCOUNT_TYPE']),))
data['computed']['account_ids'] = [a for (a,) in self.env.cr.fetchall()]
params = [tuple(data['computed']['move_state']), tuple(data['computed']['account_ids'])] + query_get_data[2]
reconcile_clause = "" if data['form']['reconciled'] else ' AND "account_move_line".full_reconcile_id IS NULL '
query = """
SELECT DISTINCT "account_move_line".partner_id
FROM """ + query_get_data[0] + """, account_account AS account, account_move AS am
WHERE "account_move_line".partner_id IS NOT NULL
AND "account_move_line".account_id = account.id
AND am.id = "account_move_line".move_id
AND am.state IN %s
AND "account_move_line".account_id IN %s
AND account.active
AND """ + query_get_data[1] + reconcile_clause
self.env.cr.execute(query, tuple(params))
if data['form']['partner_ids']:
partner_ids = data['form']['partner_ids']
else:
partner_ids = [res['partner_id'] for res in
self.env.cr.dictfetchall()]
partners = obj_partner.browse(partner_ids)
partners = sorted(partners, key=lambda x: (x.ref or '', x.name or ''))
return {
'doc_ids': partner_ids,
'doc_model': self.env['res.partner'],
'data': data,
'docs': partners,
'time': time,
'lines': self._lines,
'sum_partner': self._sum_partner,
}

View File

@@ -0,0 +1,109 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="report_partnerledger">
<t t-call="web.html_container">
<t t-call="web.internal_layout">
<t t-set="data_report_margin_top" t-value="12"/>
<t t-set="data_report_header_spacing" t-value="9"/>
<t t-set="data_report_dpi" t-value="110"/>
<div class="page">
<h2>Partner Ledger</h2>
<div class="row">
<div class="col-3">
<strong>Company:</strong>
<p t-esc="res_company.name"/>
</div>
<div class="col-3">
<t t-if="data['form']['date_from']">
<strong>Date from :</strong>
<span t-esc="data['form']['date_from']"/>
<br/>
</t>
<t t-if="data['form']['date_to']">
<strong>Date to :</strong>
<span t-esc="data['form']['date_to']"/>
</t>
</div>
<div class="col-3">
<strong>Target Moves:</strong>
<p t-if="data['form']['target_move'] == 'all'">All Entries</p>
<p t-if="data['form']['target_move'] == 'posted'">All Posted Entries</p>
</div>
</div>
<table class="table table-sm table-reports">
<thead>
<tr>
<th>Date</th>
<th>JRNL</th>
<th>Account</th>
<th>Ref</th>
<th>Debit</th>
<th>Credit</th>
<th>Balance</th>
<th t-if="data['form']['amount_currency']">Currency</th>
</tr>
</thead>
<t t-foreach="docs" t-as="o">
<tbody>
<tr>
<td colspan="4">
<strong t-esc="o.ref"/>
-
<strong t-esc="o.name"/>
</td>
<td class="text-end">
<strong t-esc="sum_partner(data, o, 'debit')"
t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
<td class="text-end">
<strong t-esc="sum_partner(data, o, 'credit')"
t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
<td class="text-end">
<strong t-esc="sum_partner(data, o, 'debit - credit')"
t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
</tr>
<tr t-foreach="lines(data, o)" t-as="line">
<td>
<span t-esc="line['date']"/>
</td>
<td>
<span t-esc="line['code']"/>
</td>
<td>
<span t-esc="line['a_name']"/>
</td>
<td>
<span t-esc="line['displayed_name']"/>
</td>
<td class="text-end">
<span t-esc="line['debit']"
t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
<td class="text-end">
<span t-esc="line['credit']"
t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
<td class="text-end">
<span t-esc="line['progress']"
t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
<td class="text-end" t-if="data['form']['amount_currency']">
<t t-if="line['currency_id']">
<span t-esc="line['amount_currency']"
t-options="{'widget': 'monetary', 'display_currency': line['currency_id']}"/>
</t>
</td>
</tr>
</tbody>
</t>
</table>
</div>
</t>
</t>
</template>
</odoo>

View File

@@ -0,0 +1,70 @@
from odoo import api, models, _
from odoo.exceptions import UserError
class ReportTax(models.AbstractModel):
_name = 'report.accounting_pdf_reports.report_tax'
_description = 'Tax Report'
@api.model
def _get_report_values(self, docids, data=None):
if not data.get('form'):
raise UserError(_("Form content is missing, this report cannot be printed."))
return {
'data': data['form'],
'lines': self.get_lines(data.get('form')),
}
def _sql_from_amls_one(self):
sql = """SELECT "account_move_line".tax_line_id, COALESCE(SUM("account_move_line".debit-"account_move_line".credit), 0)
FROM %s
WHERE %s GROUP BY "account_move_line".tax_line_id"""
return sql
def _sql_from_amls_two(self):
sql = """SELECT r.account_tax_id, COALESCE(SUM("account_move_line".debit-"account_move_line".credit), 0)
FROM %s
INNER JOIN account_move_line_account_tax_rel r ON ("account_move_line".id = r.account_move_line_id)
INNER JOIN account_tax t ON (r.account_tax_id = t.id)
WHERE %s GROUP BY r.account_tax_id"""
return sql
def _compute_from_amls(self, options, taxes):
#compute the tax amount
sql = self._sql_from_amls_one()
tables, where_clause, where_params = self.env['account.move.line']._query_get()
query = sql % (tables, where_clause)
self.env.cr.execute(query, where_params)
results = self.env.cr.fetchall()
for result in results:
if result[0] in taxes:
taxes[result[0]]['tax'] = abs(result[1])
#compute the net amount
sql2 = self._sql_from_amls_two()
query = sql2 % (tables, where_clause)
self.env.cr.execute(query, where_params)
results = self.env.cr.fetchall()
for result in results:
if result[0] in taxes:
taxes[result[0]]['net'] = abs(result[1])
@api.model
def get_lines(self, options):
taxes = {}
for tax in self.env['account.tax'].search([('type_tax_use', '!=', 'none')]):
if tax.children_tax_ids:
for child in tax.children_tax_ids:
if child.type_tax_use != 'none':
continue
taxes[child.id] = {'tax': 0, 'net': 0, 'name': child.name, 'type': tax.type_tax_use}
else:
taxes[tax.id] = {'tax': 0, 'net': 0, 'name': tax.name, 'type': tax.type_tax_use}
self.with_context(date_from=options['date_from'], date_to=options['date_to'],
state=options['target_move'],
strict_range=True)._compute_from_amls(options, taxes)
groups = dict((tp, []) for tp in ['sale', 'purchase'])
for tax in taxes.values():
if tax['tax']:
groups[tax['type']].append(tax)
return groups

View File

@@ -0,0 +1,85 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="report_tax">
<t t-call="web.html_container">
<t t-set="data_report_margin_top" t-value="12"/>
<t t-set="data_report_header_spacing" t-value="9"/>
<t t-set="data_report_dpi" t-value="110"/>
<t t-call="web.internal_layout">
<div class="page">
<h3>Tax Report</h3>
<div class="row">
<div class="col-4">
<strong>Company:</strong>
<p t-esc="res_company.name"/>
</div>
<div class="col-4">
<t>
<strong>Date from :</strong>
<span t-esc="data['date_from']"/>
</t>
<br/>
<t>
<strong>Date to :</strong>
<span t-esc="data['date_to']"/>
</t>
</div>
<div class="col-4">
<strong>Target Moves:</strong>
<p>
<span t-if="data['target_move'] == 'all'">All Entries</span>
<span t-if="data['target_move'] == 'posted'">All Posted Entries</span>
</p>
</div>
</div>
<table class="table table-sm table-reports">
<thead>
<tr align="left">
<th>Sale</th>
<th>Net</th>
<th>Tax</th>
</tr>
</thead>
<tr align="left" t-foreach="lines['sale']" t-as="line">
<td>
<span t-esc="line.get('name')"/>
</td>
<td>
<span t-att-style="style" t-esc="line.get('net')"
t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
<td>
<span t-att-style="style" t-esc="line.get('tax')"
t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
</tr>
<br/>
<tr align="left">
<td>
<strong>Purchase</strong>
</td>
<td></td>
<td></td>
</tr>
<tr align="left" t-foreach="lines['purchase']" t-as="line">
<td>
<span t-esc="line.get('name')"/>
</td>
<td>
<span t-att-style="style" t-esc="line.get('net')"
t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
<td>
<span t-att-style="style" t-esc="line.get('tax')"
t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
</tr>
</table>
</div>
</t>
</t>
</template>
</odoo>

View File

@@ -0,0 +1,90 @@
import time
from odoo import api, models, _
from odoo.exceptions import UserError
class ReportTrialBalance(models.AbstractModel):
_name = 'report.accounting_pdf_reports.report_trialbalance'
_description = 'Trial Balance Report'
def _get_accounts(self, accounts, display_account):
""" compute the balance, debit and credit for the provided accounts
:Arguments:
`accounts`: list of accounts record,
`display_account`: it's used to display either all accounts or those accounts which balance is > 0
:Returns a list of dictionary of Accounts with following key and value
`name`: Account name,
`code`: Account code,
`credit`: total amount of credit,
`debit`: total amount of debit,
`balance`: total amount of balance,
"""
account_result = {}
# Prepare sql query base on selected parameters from wizard
tables, where_clause, where_params = self.env['account.move.line']._query_get()
tables = tables.replace('"','')
if not tables:
tables = 'account_move_line'
wheres = [""]
if where_clause.strip():
wheres.append(where_clause.strip())
filters = " AND ".join(wheres)
# compute the balance, debit and credit for the provided accounts
request = ("SELECT account_id AS id, SUM(debit) AS debit, SUM(credit) AS credit, "
"(SUM(debit) - SUM(credit)) AS balance" +\
" FROM " + tables + " WHERE account_id IN %s " + filters + " GROUP BY account_id")
params = (tuple(accounts.ids),) + tuple(where_params)
self.env.cr.execute(request, params)
for row in self.env.cr.dictfetchall():
account_result[row.pop('id')] = row
account_res = []
for account in accounts:
res = dict((fn, 0.0) for fn in ['credit', 'debit', 'balance'])
currency = account.currency_id and account.currency_id or self.env.company.currency_id
res['code'] = account.code
res['name'] = account.name
if account.id in account_result:
res['debit'] = account_result[account.id].get('debit')
res['credit'] = account_result[account.id].get('credit')
res['balance'] = account_result[account.id].get('balance')
if display_account == 'all':
account_res.append(res)
if display_account == 'not_zero' and not currency.is_zero(res['balance']):
account_res.append(res)
if display_account == 'movement' and (not currency.is_zero(res['debit']) or not currency.is_zero(res['credit'])):
account_res.append(res)
return account_res
@api.model
def _get_report_values(self, docids, data=None):
if not data.get('form') or not self.env.context.get('active_model'):
raise UserError(_("Form content is missing, this report cannot be printed."))
model = self.env.context.get('active_model')
docs = self.env[model].browse(self.env.context.get('active_ids', []))
display_account = data['form'].get('display_account')
accounts = docs if model == 'account.account' else self.env['account.account'].search([])
context = data['form'].get('used_context')
analytic_accounts = []
if data['form'].get('analytic_account_ids'):
analytic_account_ids = self.env['account.analytic.account'].browse(data['form'].get('analytic_account_ids'))
context['analytic_account_ids'] = analytic_account_ids
analytic_accounts = [account.name for account in analytic_account_ids]
account_res = self.with_context(context)._get_accounts(accounts, display_account)
codes = []
if data['form'].get('journal_ids', False):
codes = [journal.code for journal in
self.env['account.journal'].search(
[('id', 'in', data['form']['journal_ids'])])]
return {
'doc_ids': self.ids,
'doc_model': model,
'data': data['form'],
'docs': docs,
'print_journal': codes,
'analytic_accounts': analytic_accounts,
'time': time,
'Accounts': account_res,
}

View File

@@ -0,0 +1,85 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="report_trialbalance">
<t t-call="web.html_container">
<t t-set="data_report_margin_top" t-value="12"/>
<t t-set="data_report_header_spacing" t-value="9"/>
<t t-set="data_report_dpi" t-value="110"/>
<t t-call="web.internal_layout">
<div class="page">
<h2><span t-esc="res_company.name"/>: Trial Balance</h2>
<div class="row mt32">
<div class="col-4">
<strong>Display Account:</strong>
<p>
<span t-if="data['display_account'] == 'all'">All accounts</span>
<span t-if="data['display_account'] == 'movement'">With movements</span>
<span t-if="data['display_account'] == 'not_zero'">With balance not equal to zero</span>
</p>
</div>
<div class="col-4">
<p>
<t t-if="data['date_from']"><strong>Date from :</strong> <span t-esc="data['date_from']"/><br/></t>
<t t-if="data['date_to']"><strong>Date to :</strong> <span t-esc="data['date_to']"/></t>
</p>
</div>
<div class="col-4">
<strong>Target Moves:</strong>
<p>
<span t-if="data['target_move'] == 'all'">All Entries</span>
<span t-if="data['target_move'] == 'posted'">All Posted Entries</span>
</p>
</div>
</div>
<div class="row mt32">
<div class="col-6">
<strong>Journals:</strong>
<p t-esc="', '.join([ lt or '' for lt in print_journal ])"/>
</div>
<div class="col-6">
<t t-if="analytic_accounts">
<strong>Analytic Accounts:</strong>
<p t-esc="', '.join([ analytic_account or '' for analytic_account in analytic_accounts ])"/>
</t>
</div>
</div>
<table class="table table-sm table-reports">
<thead>
<tr>
<th>Code</th>
<th>Account</th>
<th class="text-end">Debit</th>
<th class="text-end">Credit</th>
<th class="text-end">Balance</th>
</tr>
</thead>
<tbody>
<tr t-foreach="Accounts" t-as="account">
<td>
<span t-att-style="style" t-esc="account['code']"/>
</td>
<td>
<span style="color: white;" t-esc="'..'"/>
<span t-att-style="style" t-esc="account['name']"/>
</td>
<td class="text-end">
<span t-att-style="style" t-esc="account['debit']" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
<td class="text-end">
<span t-att-style="style" t-esc="account['credit']" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
<td class="text-end">
<span t-att-style="style" t-esc="account['balance']" t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
</tr>
</tbody>
</table>
</div>
</t>
</t>
</template>
</odoo>

View File

@@ -0,0 +1,25 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_account_financial_report_accountant,access.account.financial.report.manager,model_account_financial_report,account.group_account_user,1,1,1,1
access_account_report_general_ledger,access.account.report.general.ledger,model_account_report_general_ledger,account.group_account_user,1,1,1,1
access_account_balance_report,access.account.balance.report,model_account_balance_report,account.group_account_user,1,1,1,1
access_account_report_partner_ledger,access.account.report.partner.ledger,model_account_report_partner_ledger,account.group_account_invoice,1,1,1,1
access_accounting_report,access.accounting.report,model_accounting_report,account.group_account_user,1,1,1,1
access_account_aged_trial_balance,access.account.aged.trial.balance,model_account_aged_trial_balance,account.group_account_user,1,1,1,1
access_account_tax_report,access.account.tax.report.wizard,model_account_tax_report_wizard,account.group_account_user,1,1,1,1
access_account_financial_report_accountant_bm,access.account.financial.report.bmanager,model_account_financial_report,account.group_account_manager,1,1,1,1
access_account_report_general_ledger_bm,access.account.report.general.ledger.bmanager,model_account_report_general_ledger,account.group_account_manager,1,1,1,1
access_account_balance_report_bm,access.account.balance.report.bmanager,model_account_balance_report,account.group_account_manager,1,1,1,1
access_account_report_partner_ledger_bm,access.account.report.partner.ledger.bmanager,model_account_report_partner_ledger,account.group_account_manager,1,1,1,1
access_accounting_report_bm,access.accounting.report.bmanager,model_accounting_report,account.group_account_manager,1,1,1,1
access_account_aged_trial_balance_bm,access.account.aged.trial.balance.bmanager,model_account_aged_trial_balance,account.group_account_manager,1,1,1,1
access_account_tax_report_bm,access.account.tax.report.wizard.bmanager,model_account_tax_report_wizard,account.group_account_manager,1,1,1,1
access_account_print_journal_bm,access.account.account.print.journal.bmanager,model_account_print_journal,account.group_account_manager,1,1,1,1
access_account_common_journal_report,access.account.common.journal.report,model_account_common_journal_report,account.group_account_user,1,1,1,0
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_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
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_account_financial_report_accountant access.account.financial.report.manager model_account_financial_report account.group_account_user 1 1 1 1
3 access_account_report_general_ledger access.account.report.general.ledger model_account_report_general_ledger account.group_account_user 1 1 1 1
4 access_account_balance_report access.account.balance.report model_account_balance_report account.group_account_user 1 1 1 1
5 access_account_report_partner_ledger access.account.report.partner.ledger model_account_report_partner_ledger account.group_account_invoice 1 1 1 1
6 access_accounting_report access.accounting.report model_accounting_report account.group_account_user 1 1 1 1
7 access_account_aged_trial_balance access.account.aged.trial.balance model_account_aged_trial_balance account.group_account_user 1 1 1 1
8 access_account_tax_report access.account.tax.report.wizard model_account_tax_report_wizard account.group_account_user 1 1 1 1
9 access_account_financial_report_accountant_bm access.account.financial.report.bmanager model_account_financial_report account.group_account_manager 1 1 1 1
10 access_account_report_general_ledger_bm access.account.report.general.ledger.bmanager model_account_report_general_ledger account.group_account_manager 1 1 1 1
11 access_account_balance_report_bm access.account.balance.report.bmanager model_account_balance_report account.group_account_manager 1 1 1 1
12 access_account_report_partner_ledger_bm access.account.report.partner.ledger.bmanager model_account_report_partner_ledger account.group_account_manager 1 1 1 1
13 access_accounting_report_bm access.accounting.report.bmanager model_accounting_report account.group_account_manager 1 1 1 1
14 access_account_aged_trial_balance_bm access.account.aged.trial.balance.bmanager model_account_aged_trial_balance account.group_account_manager 1 1 1 1
15 access_account_tax_report_bm access.account.tax.report.wizard.bmanager model_account_tax_report_wizard account.group_account_manager 1 1 1 1
16 access_account_print_journal_bm access.account.account.print.journal.bmanager model_account_print_journal account.group_account_manager 1 1 1 1
17 access_account_common_journal_report access.account.common.journal.report model_account_common_journal_report account.group_account_user 1 1 1 0
18 access_account_print_journal access.account.print.journal model_account_print_journal account.group_account_user 1 1 1 0
19 access_account_common_account_report access_account_common_account_report model_account_common_account_report base.group_user 1 0 0 0
20 access_account_common_partner_report access_account_common_partner_report model_account_common_partner_report base.group_user 1 0 0 0
21 access_account_common_report access_account_common_report accounting_pdf_reports.model_account_common_report base.group_user 1 0 0 0
22 access_account_account_type access_account_account_type accounting_pdf_reports.model_account_account_type base.group_user 1 0 0 0

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 911 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -0,0 +1,155 @@
<section class="oe_container oe_dark">
<div class="col-md-12">
<h2 class="oe_slogan" style="font-size: 35px;color:#2C0091"><b>Accounting Reports Odoo 18</b></h2>
</div>
</section>
<section class="oe_container">
<div class="oe_row oe_spaced">
<div style="align:center;">
<h1 style="text-align: center;">
<span align="center" style="color:#148963;">
<span class="fa fa-star fa-spin">
</span>
Added Financial Reports:</span>
</h1>
<div class="row" style="margin-top: 2rem;">
<div class="col-lg-12">
<div class="mt-3">
<p class="fa fa-check" style="color:green;font-size: 15px;">
<span style="color:#000000;font-size: 15px;">Partner Ledger Report.</span>
</p><br/>
<p class="fa fa-check" style="color:green;font-size: 15px;">
<span style="color:#000000;font-size: 15px;">Journals Audit.</span>
</p><br/>
<p class="fa fa-check" style="color:green;font-size: 15px;">
<span style="color:#000000;font-size: 15px;">General Ledger.</span>
</p><br/>
<p class="fa fa-check" style="color:green;font-size: 15px;">
<span style="color:#000000;font-size: 15px;">Trial Balance.</span>
</p><br/>
</div>
</div>
<div class="col-lg-12">
<div class="mt-3">
<p class="fa fa-check" style="color:green;font-size: 15px;">
<span style="color:#000000;font-size: 15px;">Aged Partner Balance.</span>
</p><br/>
<p class="fa fa-check" style="color:green;font-size: 15px;">
<span style="color:#000000;font-size: 15px;">Profit and Loss.</span>
</p><br/>
<p class="fa fa-check" style="color:green;font-size: 15px;">
<span style="color:#000000;font-size: 15px;">Balance Sheet.</span>
</p><br/>
<p class="fa fa-check" style="color:green;font-size: 15px;">
<span style="color:#000000;font-size: 15px;">Tax Report.</span>
</p><br/>
</div>
</div>
</div>
</div>
<br/>
</div>
</section>
<section class="oe_container">
<div class="oe_row oe_spaced">
<div class="oe_centeralign oe_websiteonly">
<h4 class="oe_slogan"><a href="https://www.youtube.com/watch?v=yA4NLwOLZms" target="_blank" style="color: #FFFFFF !important; border-radius: 0; background-color: #9c676e; border-color: #005ca7; padding: 15px; font-weight: bold;">
<i class="fa fa-youtube">
Watch on YouTube
</i>
</a></h4>
</div>
</div>
</section>
<section class="oe_container oe_dark">
<div class="oe_row oe_spaced">
<h2 class="oe_slogan" style="color:olive;">Accounting Reports</h2>
<h3 class="oe_slogan" style="color:#000066;font-size: 24px;">All in one financial reports for odoo community edition</h3>
<div class="oe_demo oe_picture oe_screenshot">
<img src="account_reports.png" style="height:400px;">
</div>
<br/>
</div>
</section>
<section class="oe_container">
<div class="oe_row oe_spaced">
<h3 class="oe_slogan" style="color:#332c3c;font-size: 28px;">General Ledger</h3>
<h3 class="oe_slogan" style="color:#000066;font-size: 24px;">General ledger report with accounts, partners and analytic account filter</h3>
<div class="oe_demo oe_picture oe_screenshot">
<img src="general_ledger_filter.png" style="height:400px;">
</div>
<br/>
<h4 class="oe_slogan" style="color:#332c3c;font-size: 28px;">Report</h4>
<div class="oe_demo oe_picture oe_screenshot">
<img src="general_ledger_report.png" style="height:400px;">
</div>
</div>
</section>
<section class="oe_container oe_dark">
<div class="oe_row oe_spaced">
<h3 class="oe_slogan" style="color:#1b1d26;">Partner Ledger</h3>
<h3 class="oe_slogan" style="color:#000066;font-size: 24px;">Partner ledger report with partner filter.</h3>
<div class="oe_demo oe_picture oe_screenshot">
<img src="partner_ledger_filter.png" style="height:400px;">
</div>
<br/>
<h4 class="oe_slogan" style="color:#332c3c;font-size: 28px;">Report</h4>
<div class="oe_demo oe_picture oe_screenshot">
<img src="partner_ledger_report.png" style="height:400px;">
</div>
</div>
</section>
<section class="oe_container">
<div class="oe_row oe_spaced">
<h3 class="oe_slogan" style="color:#1b1d26;">Aged Partner Balance</h3>
<div class="oe_demo oe_picture oe_screenshot">
<img src="aged_partner_balance_filter.png" style="height:400px;">
</div>
<br/>
<h4 class="oe_slogan" style="color:#332c3c;font-size: 28px;">Report</h4>
<div class="oe_demo oe_picture oe_screenshot">
<img src="aged_partner_balance_report.png" style="height:400px;">
</div>
</div>
</section>
<br/>
<hr style="width: 100%;height: 4px;background: #2C0091;margin: 0px 0px;">
<hr style="width: 100%;height: 4px;background: #148963;margin: 0px 0px;">
<section class="oe_container oe_dark">
<div class="oe_row ">
<div class="oe_slogan text-center">
<img src="odoo_mates.png"/>
<div style="color:#269900;">
<h3 style="color:#2C0091;font-size: 25px;">If you need any support or want more features, just contact us:</h3><br>
<h3 style="color:#2C0091;font-size: 20px;">Email: <a href="odoomates@gmail.com">odoomates@gmail.com</a> <br></h3>
</div>
<div class="oe_slogan">
<h2>
<a target="_blank" href="https://www.facebook.com/odoomate/" target="new">
<i class="fa fa-facebook-square" style="font-size:38px;"></i>
</a>
<a target="_blank" href="https://twitter.com/odoomates/" target="new">
<i class="fa fa-twitter" style="font-size:38px;"></i>
</a>
<a href="#" target="_blank">
<i class="fa fa-linkedin" style="font-size:38px;"></i>
</a>
<a target="_blank" href="https://www.youtube.com/channel/UCVKlUZP7HAhdQgs-9iTJklQ">
<i class="fa fa-youtube-play" style="font-size:38px;"></i>
</a>
</h2>
</div>
</div>
</div>
</section>
<hr style="width: 100%;height: 4px;background: #148963;margin: 0px 0px;">
<hr style="width: 100%;height: 4px;background: #2C0091;margin: 0px 0px;">

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

View File

@@ -0,0 +1,98 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_account_financial_report_form" model="ir.ui.view">
<field name="name">account.financial.report.form</field>
<field name="model">account.financial.report</field>
<field name="arch" type="xml">
<form string="Account Report">
<sheet>
<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"
invisible="type not in ['accounts', 'account_type', 'account_report']">
<group>
<field name="display_detail"
invisible="type not in ['accounts', 'account_type', 'account_report']"/>
<field name="account_report_id"
invisible="type != 'account_report'"/>
</group>
<field name="account_ids" invisible="type != 'accounts'"/>
<field name="account_type_ids" invisible="type != 'account_type'"/>
</page>
<page string="Childrens">
<field name="children_ids" nolabel="1">
</field>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="view_account_financial_report_tree" model="ir.ui.view">
<field name="name">account.financial.report.list</field>
<field name="model">account.financial.report</field>
<field name="arch" type="xml">
<list string="Account Report">
<field name="name"/>
<field name="parent_id" invisible="1"/>
<field name="type"/>
<field name="account_report_id"/>
</list>
</field>
</record>
<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">
<search string="Account Report">
<field name="name" string="Account Report"/>
<field name="type"/>
<field name="account_report_id"/>
<filter string="Reports" name="filter_parent_id" domain="[('parent_id','=', False)]"/>
<group>
<filter name="parent_report" string="Parent Report"
context="{'group_by':'parent_id'}"/>
<filter name="report_type" string="Report Type" context="{'group_by':'type'}"/>
</group>
</search>
</field>
</record>
<record id="action_account_financial_report_tree" model="ir.actions.act_window">
<field name="name">Financial Reports</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.financial.report</field>
<field name="view_mode">list,form</field>
<field name="context">{'search_default_filter_parent_id': True}</field>
<field name="search_view_id" ref="view_account_financial_report_search"/>
<field name="view_id" ref="view_account_financial_report_tree"/>
</record>
<menuitem id="menu_finance_reports_settings"
name="Financial Reports"
sequence="9"
groups="account.group_account_user,account.group_account_manager"
parent="account.menu_finance_configuration"/>
<menuitem id="menu_account_reports"
name="Account Reports"
action="action_account_financial_report_tree"
groups="account.group_account_user,account.group_account_manager"
parent="menu_finance_reports_settings"/>
</odoo>

View File

@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="action_account_moves_ledger_general" model="ir.actions.act_window">
<field name="context">{'journal_type':'general', 'search_default_group_by_account': 1, 'search_default_posted':1}</field>
<field name="name">General Ledger</field>
<field name="res_model">account.move.line</field>
<field name="domain">[('display_type', 'not in', ('line_section', 'line_note'))]</field>
<field name="view_id" ref="account.view_move_line_tree_grouped_general"/>
<field name="search_view_id" ref="account.view_account_move_line_filter"/>
<field name="view_mode">list,pivot,graph</field>
</record>
<record id="action_account_moves_ledger_partner" model="ir.actions.act_window">
<field name="context">{'journal_type':'general', 'search_default_group_by_partner': 1,
'search_default_posted':1, 'search_default_payable':1, 'search_default_receivable':1,
'search_default_unreconciled':1}
</field>
<field name="name">Partner Ledger</field>
<field name="res_model">account.move.line</field>
<field name="domain">[('display_type', 'not in', ('line_section', 'line_note'))]</field>
<field name="view_id" ref="account.view_move_line_tree_grouped_partner"/>
<field name="search_view_id" ref="account.view_account_move_line_filter"/>
<field name="view_mode">list,pivot,graph</field>
</record>
<menuitem id="menu_finance_entries_accounting_ledgers" name="Ledgers" parent="account.menu_finance_entries"
sequence="3">
<menuitem id="menu_action_account_moves_ledger_general" action="action_account_moves_ledger_general"
groups="account.group_account_readonly" sequence="1"/>
<menuitem id="menu_action_account_moves_ledger_partner" action="action_account_moves_ledger_partner"
groups="account.group_account_readonly" sequence="2"/>
</menuitem>
</odoo>

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<menuitem id="menu_finance_legal_statement"
name="Financial Reports"
sequence="10"
parent="account.menu_finance_reports"/>
<menuitem id="menu_finance_partner_reports"
name="Partner Reports"
sequence="20"
parent="account.menu_finance_reports"/>
<menuitem id="menu_finance_audit_reports"
name="Audit Reports"
sequence="30"
parent="account.menu_finance_reports"/>
<record id="account.account_reports_management_menu" model="ir.ui.menu">
<field name="sequence" eval="40"/>
</record>
</odoo>

View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="res_config_settings_view_form" model="ir.ui.view">
<field name="name">res.config.settings.view.form.inherit.accountant</field>
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="account.res_config_settings_view_form"/>
<field name="arch" type="xml">
<app name="account" position="inside">
<h2>Enhanced Financial Reports</h2>
<div>
<div class="row mt16 o_settings_container" name="report_setting_container">
<div class="col-6 col-lg-6 o_setting_box" id="enhanced_reports">
<div>
Preview financial reports without downloading
</div>
<div class="content-group">
<a target="_blank" href="https://apps.odoo.com/apps/modules/19.0/om_accounting_reports/"
style="text-decoration: underline;">Enhanced Financial Reports</a>
</div>
</div>
<div class="col-6 col-lg-6 o_setting_box" id="excel_reports">
<div>
Financial Reports in Excel
</div>
<div class="content-group">
<a target="_blank" href="https://apps.odoo.com/apps/modules/19.0/accounting_excel_reports/"
style="text-decoration: underline;">Excel Reports</a>
</div>
</div>
</div>
</div>
</app>
</field>
</record>
</odoo>

View File

@@ -0,0 +1,12 @@
from . import account_report_common
from . import account_report_common_journal
from . import account_report_print_journal
from . import account_report
from . import account_report_common_partner
from . import account_report_common_account
from . import account_partner_ledger
from . import account_general_ledger
from . import account_trial_balance
from . import account_tax_report
from . import aged_partner
from . import account_journal_audit

View File

@@ -0,0 +1,35 @@
from odoo import fields, models, api, _
from odoo.exceptions import UserError
class AccountReportGeneralLedger(models.TransientModel):
_name = "account.report.general.ledger"
_inherit = "account.common.account.report"
_description = "General Ledger Report"
initial_balance = fields.Boolean(
string='Include Initial Balances',
help='If you selected date, this field allow you to add a row '
'to display the amount of debit/credit/balance that precedes '
'the filter you have set.'
)
sortby = fields.Selection(
[('sort_date', 'Date'), ('sort_journal_partner', 'Journal & Partner')],
string='Sort by', required=True, default='sort_date'
)
journal_ids = fields.Many2many(
'account.journal', 'account_report_general_ledger_journal_rel',
'account_id', 'journal_id', string='Journals', required=True
)
def _get_report_data(self, data):
data = self.pre_print_report(data)
data['form'].update(self.read(['initial_balance', 'sortby'])[0])
if data['form'].get('initial_balance') and not data['form'].get('date_from'):
raise UserError(_("You must define a Start Date"))
records = self.env[data['model']].browse(data.get('ids', []))
return records, data
def _print_report(self, data):
records, data = self._get_report_data(data)
return self.env.ref('accounting_pdf_reports.action_report_general_ledger').with_context(landscape=True).report_action(records, data=data)

View File

@@ -0,0 +1,21 @@
from odoo import fields, models, api
class AccountPrintJournal(models.TransientModel):
_name = "account.print.journal"
_inherit = "account.common.journal.report"
_description = "Account Print Journal"
sort_selection = fields.Selection([('date', 'Date'), ('move_name', 'Journal Entry Number')],
'Entries Sorted by', required=True, default='move_name')
journal_ids = fields.Many2many('account.journal', string='Journals', required=True,
default=lambda self: self.env['account.journal'].search([('type', 'in', ['sale', 'purchase'])]))
def _get_report_data(self, data):
data = self.pre_print_report(data)
data['form'].update({'sort_selection': self.sort_selection})
return data
def _print_report(self, data):
data = self._get_report_data(data)
return self.env.ref('accounting_pdf_reports.action_report_journal').with_context(landscape=True).report_action(self, data=data)

View File

@@ -0,0 +1,24 @@
from odoo import fields, models, api, _
class AccountPartnerLedger(models.TransientModel):
_name = "account.report.partner.ledger"
_inherit = "account.common.partner.report"
_description = "Account Partner Ledger"
amount_currency = fields.Boolean("With Currency",
help="It adds the currency column on "
"report if the currency differs from "
"the company currency.")
reconciled = fields.Boolean('Reconciled Entries')
def _get_report_data(self, data):
data = self.pre_print_report(data)
data['form'].update({'reconciled': self.reconciled,
'amount_currency': self.amount_currency})
return data
def _print_report(self, data):
data = self._get_report_data(data)
return self.env.ref('accounting_pdf_reports.action_report_partnerledger').with_context(landscape=True).\
report_action(self, data=data)

View File

@@ -0,0 +1,55 @@
from odoo import api, fields, models
class AccountingReport(models.TransientModel):
_name = "accounting.report"
_inherit = "account.common.report"
_description = "Accounting Report"
@api.model
def _get_account_report(self):
reports = []
if self.env.context.get('active_id'):
menu = self.env['ir.ui.menu'].browse(self.env.context.get('active_id')).name
reports = self.env['account.financial.report'].search([('name', 'ilike', menu)])
return reports and reports[0] or False
enable_filter = fields.Boolean(string='Enable Comparison')
account_report_id = fields.Many2one('account.financial.report', string='Account Reports',
required=True, default=_get_account_report)
label_filter = fields.Char(string='Column Label', help="This label will be displayed on report to "
"show the balance computed for the given comparison filter.")
filter_cmp = fields.Selection([('filter_no', 'No Filters'), ('filter_date', 'Date')],
string='Filter by', required=True, default='filter_no')
date_from_cmp = fields.Date(string='Date From')
date_to_cmp = fields.Date(string='Date To')
debit_credit = fields.Boolean(string='Display Debit/Credit Columns',
help="This option allows you to get more details about "
"the way your balances are computed."
" Because it is space consuming, we do not allow to"
" use it while doing a comparison.")
def _build_comparison_context(self, data):
result = {}
result['journal_ids'] = 'journal_ids' in data['form'] and data['form']['journal_ids'] or False
result['state'] = 'target_move' in data['form'] and data['form']['target_move'] or ''
if data['form']['filter_cmp'] == 'filter_date':
result['date_from'] = data['form']['date_from_cmp']
result['date_to'] = data['form']['date_to_cmp']
result['strict_range'] = True
return result
def check_report(self):
res = super(AccountingReport, self).check_report()
data = {}
data['form'] = self.read(['account_report_id', 'date_from_cmp', 'date_to_cmp', 'journal_ids', 'filter_cmp', 'target_move'])[0]
for field in ['account_report_id']:
if isinstance(data['form'][field], tuple):
data['form'][field] = data['form'][field][0]
comparison_context = self._build_comparison_context(data)
res['data']['form']['comparison_context'] = comparison_context
return res
def _print_report(self, data):
data['form'].update(self.read(['date_from_cmp', 'debit_credit', 'date_to_cmp', 'filter_cmp', 'account_report_id', 'enable_filter', 'label_filter', 'target_move'])[0])
return self.env.ref('accounting_pdf_reports.action_report_financial').report_action(self, data=data, config=False)

View File

@@ -0,0 +1,52 @@
from odoo import api, fields, models, _
from odoo.tools.misc import get_lang
class AccountCommonReport(models.TransientModel):
_name = "account.common.report"
_description = "Account Common Report"
company_id = fields.Many2one('res.company', string='Company', required=True, readonly=True, default=lambda self: self.env.company)
journal_ids = fields.Many2many(
comodel_name='account.journal',
string='Journals',
required=True,
default=lambda self: self.env['account.journal'].search([('company_id', '=', self.company_id.id)]),
domain="[('company_id', '=', company_id)]",
)
date_from = fields.Date(string='Start Date')
date_to = fields.Date(string='End Date')
target_move = fields.Selection([('posted', 'All Posted Entries'),
('all', 'All Entries'),
], string='Target Moves', required=True, default='posted')
@api.onchange('company_id')
def _onchange_company_id(self):
if self.company_id:
self.journal_ids = self.env['account.journal'].search(
[('company_id', '=', self.company_id.id)])
else:
self.journal_ids = self.env['account.journal'].search([])
def _build_contexts(self, data):
result = {}
result['journal_ids'] = 'journal_ids' in data['form'] and data['form']['journal_ids'] or False
result['state'] = 'target_move' in data['form'] and data['form']['target_move'] or ''
result['date_from'] = data['form']['date_from'] or False
result['date_to'] = data['form']['date_to'] or False
result['strict_range'] = True if result['date_from'] else False
result['company_id'] = data['form']['company_id'][0] or False
return result
def _print_report(self, data):
raise NotImplementedError()
def check_report(self):
self.ensure_one()
data = {}
data['ids'] = self.env.context.get('active_ids', [])
data['model'] = self.env.context.get('active_model', 'ir.ui.menu')
data['form'] = self.read(['date_from', 'date_to', 'journal_ids', 'target_move', 'company_id'])[0]
used_context = self._build_contexts(data)
data['form']['used_context'] = dict(used_context, lang=get_lang(self.env).code)
return self.with_context(discard_logo_check=True)._print_report(data)

View File

@@ -0,0 +1,26 @@
from odoo import api, fields, models
class AccountCommonAccountReport(models.TransientModel):
_name = 'account.common.account.report'
_inherit = "account.common.report"
_description = 'Account Common Account Report'
display_account = fields.Selection([('all', 'All'),
('movement', 'With movements'),
('not_zero', 'With balance is not equal to 0'), ],
string='Display Accounts',
required=True, default='movement')
analytic_account_ids = fields.Many2many('account.analytic.account',
string='Analytic Accounts')
account_ids = fields.Many2many('account.account', string='Accounts')
partner_ids = fields.Many2many('res.partner', string='Partners')
def pre_print_report(self, data):
data['form'].update(self.read(['display_account'])[0])
data['form'].update({
'analytic_account_ids': self.analytic_account_ids.ids,
'partner_ids': self.partner_ids.ids,
'account_ids': self.account_ids.ids,
})
return data

View File

@@ -0,0 +1,13 @@
from odoo import api, fields, models
class AccountCommonJournalReport(models.TransientModel):
_name = 'account.common.journal.report'
_description = 'Common Journal Report'
_inherit = "account.common.report"
amount_currency = fields.Boolean('With Currency', help="Print Report with the currency column if the currency differs from the company currency.")
def pre_print_report(self, data):
data['form'].update({'amount_currency': self.amount_currency})
return data

View File

@@ -0,0 +1,18 @@
from odoo import fields, models
class AccountingCommonPartnerReport(models.TransientModel):
_name = 'account.common.partner.report'
_inherit = "account.common.report"
_description = 'Account Common Partner Report'
result_selection = fields.Selection([('customer', 'Receivable Accounts'),
('supplier', 'Payable Accounts'),
('customer_supplier', 'Receivable and Payable Accounts')
], string="Partner's", required=True, default='customer')
partner_ids = fields.Many2many('res.partner', string='Partners')
def pre_print_report(self, data):
data['form'].update(self.read(['result_selection'])[0])
data['form'].update({'partner_ids': self.partner_ids.ids})
return data

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="account_common_report_view" model="ir.ui.view">
<field name="name">Common Report</field>
<field name="model">account.common.report</field>
<field name="arch" type="xml">
<form string="Report Options">
<group col="4">
<field name="target_move" widget="radio"/>
<field name="date_from"/>
<field name="date_to"/>
</group>
<group>
<field name="journal_ids" widget="many2many_tags" options="{'no_create': True}"/>
<field name="company_id" invisible="1"/>
</group>
<footer>
<button name="check_report" string="Print" type="object" default_focus="1" class="oe_highlight" data-hotkey="q"/>
<button string="Cancel" class="btn btn-secondary" special="cancel" data-hotkey="z" />
</footer>
</form>
</field>
</record>
</odoo>

View File

@@ -0,0 +1,21 @@
from odoo import fields, models
class AccountPrintJournal(models.TransientModel):
_inherit = "account.common.journal.report"
_name = "account.print.journal"
_description = "Account Print Journal"
sort_selection = fields.Selection(
[('date', 'Date'), ('move_name', 'Journal Entry Number')],
'Entries Sorted by', required=True, default='move_name'
)
journal_ids = fields.Many2many(
'account.journal', string='Journals', required=True,
default=lambda self: self.env['account.journal'].search([('type', 'in', ['sale', 'purchase'])])
)
def _print_report(self, data):
data = self.pre_print_report(data)
data['form'].update({'sort_selection': self.sort_selection})
return self.env.ref('account.action_report_journal').with_context(landscape=True).report_action(self, data=data)

View File

@@ -0,0 +1,20 @@
from odoo import models, api, fields
from datetime import date
class AccountTaxReport(models.TransientModel):
_name = 'account.tax.report.wizard'
_inherit = "account.common.report"
_description = 'Tax Report'
date_from = fields.Date(
string='Date From', required=True,
default=lambda self: fields.Date.to_string(date.today().replace(day=1))
)
date_to = fields.Date(
string='Date To', required=True,
default=lambda self: fields.Date.to_string(date.today())
)
def _print_report(self, data):
return self.env.ref('accounting_pdf_reports.action_report_account_tax').report_action(self, data=data)

View File

@@ -0,0 +1,26 @@
from odoo import fields, models, api
class AccountBalanceReport(models.TransientModel):
_name = 'account.balance.report'
_inherit = "account.common.account.report"
_description = 'Trial Balance Report'
journal_ids = fields.Many2many(
'account.journal', 'account_balance_report_journal_rel',
'account_id', 'journal_id',
string='Journals', required=True, default=[]
)
analytic_account_ids = fields.Many2many(
'account.analytic.account',
'account_trial_balance_analytic_rel', string='Analytic Accounts'
)
def _get_report_data(self, data):
data = self.pre_print_report(data)
records = self.env[data['model']].browse(data.get('ids', []))
return records, data
def _print_report(self, data):
records, data = self._get_report_data(data)
return self.env.ref('accounting_pdf_reports.action_report_trial_balance').report_action(records, data=data)

View File

@@ -0,0 +1,41 @@
import time
from dateutil.relativedelta import relativedelta
from odoo import api, fields, models, _
from odoo.exceptions import UserError
class AccountAgedTrialBalance(models.TransientModel):
_name = 'account.aged.trial.balance'
_inherit = 'account.common.partner.report'
_description = 'Account Aged Trial balance Report'
period_length = fields.Integer(string='Period Length (days)', required=True, default=30)
journal_ids = fields.Many2many('account.journal', string='Journals', required=True)
date_from = fields.Date(default=lambda *a: time.strftime('%Y-%m-%d'))
def _get_report_data(self, data):
res = {}
data = self.pre_print_report(data)
data['form'].update(self.read(['period_length'])[0])
period_length = data['form']['period_length']
if period_length <= 0:
raise UserError(_('You must set a period length greater than 0.'))
if not data['form']['date_from']:
raise UserError(_('You must set a start date.'))
start = data['form']['date_from']
for i in range(5)[::-1]:
stop = start - relativedelta(days=period_length - 1)
res[str(i)] = {
'name': (i != 0 and (str((5 - (i + 1)) * period_length) + '-' + str((5 - i) * period_length)) or (
'+' + str(4 * period_length))),
'stop': start.strftime('%Y-%m-%d'),
'start': (i != 0 and stop.strftime('%Y-%m-%d') or False),
}
start = stop - relativedelta(days=1)
data['form'].update(res)
return data
def _print_report(self, data):
data = self._get_report_data(data)
return self.env.ref('accounting_pdf_reports.action_report_aged_partner_balance').\
with_context(landscape=True).report_action(self, data=data)

View File

@@ -0,0 +1,85 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="account_aged_balance_view" model="ir.ui.view">
<field name="name">Aged Partner Balance</field>
<field name="model">account.aged.trial.balance</field>
<field name="arch" type="xml">
<form string="Report Options">
<group col="4">
<field name="date_from"/>
<field name="period_length"/>
<field name="company_id" invisible="1"/>
<newline/>
<field name="result_selection" widget="radio"
invisible="context.get('hide_result_selection')"/>
<field name="target_move" widget="radio"/>
</group>
<field name="journal_ids" required="0" invisible="1"/>
<xpath expr="//field[@name='journal_ids']" position="before">
<group>
<field name="partner_ids" widget="many2many_tags"
options="{'no_open': True, 'no_create': True}"/>
</group>
</xpath>
<footer>
<button name="check_report" class="oe_highlight"
string="Print" type="object"/>
<button string="Cancel" class="btn btn-default" special="cancel"/>
</footer>
</form>
</field>
</record>
<record id="action_account_aged_balance_view" model="ir.actions.act_window">
<field name="name">Aged Partner Balance</field>
<field name="res_model">account.aged.trial.balance</field>
<field name="type">ir.actions.act_window</field>
<field name="view_mode">list,form</field>
<field name="view_id" ref="account_aged_balance_view"/>
<field name="context"></field>
<field name="target">new</field>
</record>
<menuitem id="menu_aged_trial_balance"
name="Aged Partner Balance"
sequence="10"
action="action_account_aged_balance_view"
parent="menu_finance_partner_reports"/>
<record id="action_account_aged_receivable" model="ir.actions.act_window">
<field name="name">Aged Receivable</field>
<field name="res_model">account.aged.trial.balance</field>
<field name="type">ir.actions.act_window</field>
<field name="view_mode">list,form</field>
<field name="view_id" ref="account_aged_balance_view"/>
<field name="context">{'default_result_selection': 'customer',
'hide_result_selection': 1}</field>
<field name="target">new</field>
</record>
<menuitem id="menu_aged_receivable"
name="Aged Receivable"
sequence="20"
action="action_account_aged_receivable"
parent="menu_finance_partner_reports"/>
<record id="action_account_aged_payable" model="ir.actions.act_window">
<field name="name">Aged Payable</field>
<field name="res_model">account.aged.trial.balance</field>
<field name="type">ir.actions.act_window</field>
<field name="view_mode">list,form</field>
<field name="view_id" ref="account_aged_balance_view"/>
<field name="context">{'default_result_selection': 'supplier',
'hide_result_selection': 1}</field>
<field name="target">new</field>
</record>
<menuitem id="menu_aged_payable"
name="Aged Payable"
sequence="30"
action="action_account_aged_payable"
parent="menu_finance_partner_reports"/>
</odoo>

View File

@@ -0,0 +1,116 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="account_financial_report_profitandloss0" model="account.financial.report">
<field name="name">Profit and Loss</field>
<field name="sign">-1</field>
<field name="type">sum</field>
</record>
<record id="account_financial_report_income0" model="account.financial.report">
<field name="name">Income</field>
<field name="sign">-1</field>
<field name="parent_id" ref="account_financial_report_profitandloss0"/>
<field name="display_detail">detail_with_hierarchy</field>
<field name="type">account_type</field>
<field name="account_type_ids" eval="[(4,ref('accounting_pdf_reports.data_account_type_other_income')), (4,ref('accounting_pdf_reports.data_account_type_revenue'))]"/>
</record>
<record id="account_financial_report_expense0" model="account.financial.report">
<field name="name">Expense</field>
<field name="sign">-1</field>
<field name="parent_id" ref="account_financial_report_profitandloss0"/>
<field name="display_detail">detail_with_hierarchy</field>
<field name="type">account_type</field>
<field name="account_type_ids" eval="[(4,ref('accounting_pdf_reports.data_account_type_expenses')),(4,ref('accounting_pdf_reports.data_account_type_direct_costs')), (4,ref('accounting_pdf_reports.data_account_type_depreciation'))]"/>
</record>
<record id="account_financial_report_balancesheet0" model="account.financial.report">
<field name="name">Balance Sheet</field>
<field name="type">sum</field>
</record>
<record id="account_financial_report_assets0" model="account.financial.report">
<field name="name">Assets</field>
<field name="parent_id" ref="account_financial_report_balancesheet0"/>
<field name="display_detail">detail_with_hierarchy</field>
<field name="type">account_type</field>
<field name="account_type_ids" eval="[(4,ref('accounting_pdf_reports.data_account_type_receivable')),
(4,ref('accounting_pdf_reports.data_account_type_liquidity')), (4,ref('accounting_pdf_reports.data_account_type_current_assets')),
(4,ref('accounting_pdf_reports.data_account_type_non_current_assets'), (4,ref('accounting_pdf_reports.data_account_type_prepayments'))),
(4,ref('accounting_pdf_reports.data_account_type_fixed_assets'))]"/>
</record>
<record id="account_financial_report_liabilitysum0" model="account.financial.report">
<field name="name">Liability</field>
<field name="parent_id" ref="account_financial_report_balancesheet0"/>
<field name="display_detail">no_detail</field>
<field name="type">sum</field>
</record>
<record id="account_financial_report_liability0" model="account.financial.report">
<field name="name">Liability</field>
<field name="parent_id" ref="account_financial_report_liabilitysum0"/>
<field name="display_detail">detail_with_hierarchy</field>
<field name="type">account_type</field>
<field name="account_type_ids" eval="[(4,ref('accounting_pdf_reports.data_account_type_payable')),
(4,ref('accounting_pdf_reports.data_account_type_equity')), (4,ref('accounting_pdf_reports.data_account_type_current_liabilities')),
(4,ref('accounting_pdf_reports.data_account_type_non_current_liabilities'))]"/>
</record>
<record id="account_financial_report_profitloss_toreport0" model="account.financial.report">
<field name="name">Profit (Loss) to report</field>
<field name="parent_id" ref="account_financial_report_liabilitysum0"/>
<field name="display_detail">no_detail</field>
<field name="type">account_report</field>
<field name="account_report_id" ref="account_financial_report_profitandloss0"/>
</record>
<record id="accounting_report_view" model="ir.ui.view">
<field name="name">Accounting Report</field>
<field name="model">accounting.report</field>
<field name="inherit_id" ref="accounting_pdf_reports.account_common_report_view"/>
<field name="arch" type="xml">
<field name="target_move" position="before">
<field name="account_report_id" domain="[('parent_id','=',False)]"/>
</field>
<field name="target_move" position="after">
<field name="enable_filter"/>
<field name="debit_credit" invisible="enable_filter == True"/>
</field>
<field name="journal_ids" position="after">
<notebook tabpos="up" colspan="4">
<page string="Comparison" name="comparison" invisible="enable_filter == False">
<group>
<field name="label_filter" required="enable_filter == True"/>
<field name="filter_cmp"/>
</group>
<group string="Dates" invisible="filter_cmp != 'filter_date'">
<field name="date_from_cmp" required="filter_cmp == 'filter_date'"/>
<field name="date_to_cmp" required="filter_cmp == 'filter_date'"/>
</group>
</page>
</notebook>
</field>
</field>
</record>
<record id="action_account_report_bs" model="ir.actions.act_window">
<field name="name">Balance Sheet</field>
<field name="res_model">accounting.report</field>
<field name="type">ir.actions.act_window</field>
<field name="view_mode">form</field>
<field name="view_id" ref="accounting_report_view"/>
<field name="target">new</field>
<field name="context" eval="{'default_account_report_id':ref('accounting_pdf_reports.account_financial_report_balancesheet0')}"/>
</record>
<menuitem id="menu_account_report_bs"
name="Balance Sheet"
sequence="5"
action="action_account_report_bs"
parent="menu_finance_legal_statement"
groups="account.group_account_user,account.group_account_manager"/>
</odoo>

View File

@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="account_report_general_ledger_view" model="ir.ui.view">
<field name="name">General Ledger</field>
<field name="model">account.report.general.ledger</field>
<field name="inherit_id" ref="accounting_pdf_reports.account_common_report_view"/>
<field name="arch" type="xml">
<data>
<xpath expr="//field[@name='journal_ids']" position="after">
<field name="analytic_account_ids" widget="many2many_tags"
options="{'no_open': True, 'no_create': True}"
invisible="1"
groups="analytic.group_analytic_accounting"/>
<field name="account_ids" widget="many2many_tags"
options="{'no_open': True, 'no_create': True}"/>
<field name="partner_ids" widget="many2many_tags"
options="{'no_open': True, 'no_create': True}"/>
</xpath>
<xpath expr="//field[@name='target_move']" position="after">
<field name="sortby" widget="radio"/>
<field name="display_account" widget="radio"/>
<field name="initial_balance"/>
<newline/>
</xpath>
</data>
</field>
</record>
<record id="action_account_general_ledger_menu" model="ir.actions.act_window">
<field name="name">General Ledger</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.report.general.ledger</field>
<field name="view_mode">form</field>
<field name="view_id" ref="account_report_general_ledger_view"/>
<field name="target">new</field>
<field name="binding_model_id" ref="account.model_account_account" />
<field name="binding_type">report</field>
</record>
<menuitem id="menu_general_ledger"
name="General Ledger"
sequence="10"
parent="menu_finance_audit_reports"
action="action_account_general_ledger_menu"
groups="account.group_account_user,account.group_account_manager"/>
</odoo>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="account_report_print_journal_view" model="ir.ui.view">
<field name="name">Journals Audit</field>
<field name="model">account.print.journal</field>
<field name="inherit_id" ref="accounting_pdf_reports.account_common_report_view"/>
<field name="arch" type="xml">
<data>
<xpath expr="//field[@name='target_move']" position="after">
<field name="amount_currency" groups="base.group_multi_currency"/>
<field name="sort_selection" widget="radio"/>
<newline/>
</xpath>
</data>
</field>
</record>
<record id="action_account_print_journal_menu" model="ir.actions.act_window">
<field name="name">Journals Audit</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.print.journal</field>
<field name="view_mode">form</field>
<field name="view_id" ref="account_report_print_journal_view"/>
<field name="target">new</field>
</record>
<menuitem id="menu_print_journal"
name="Journals Audit"
sequence="40"
parent="menu_finance_audit_reports"
action="action_account_print_journal_menu"
groups="account.group_account_manager,account.group_account_user"/>
</odoo>

View File

@@ -0,0 +1,62 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="account_report_partner_ledger_view" model="ir.ui.view">
<field name="name">Partner Ledger</field>
<field name="model">account.report.partner.ledger</field>
<field name="inherit_id" ref="accounting_pdf_reports.account_common_report_view"/>
<field name="arch" type="xml">
<data>
<xpath expr="//field[@name='journal_ids']" position="before">
<field name="partner_ids" widget="many2many_tags"
options="{'no_open': True, 'no_create': True}"/>
</xpath>
<xpath expr="//field[@name='target_move']" position="after">
<field name="result_selection"/>
<field name="amount_currency" groups="base.group_multi_currency"/>
<newline/>
<field name="reconciled"/>
<newline/>
</xpath>
</data>
</field>
</record>
<record id="action_account_partner_ledger_menu" model="ir.actions.act_window">
<field name="name">Partner Ledger</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.report.partner.ledger</field>
<field name="view_mode">form</field>
<field name="view_id" ref="account_report_partner_ledger_view"/>
<field name="target">new</field>
<field name="binding_model_id" ref="account.model_account_account" />
<field name="binding_type">report</field>
</record>
<menuitem id="menu_partner_ledger"
name="Partner Ledger"
sequence="5"
parent="menu_finance_partner_reports"
action="action_account_partner_ledger_menu"
groups="account.group_account_invoice"/>
<!-- Add to Partner Print button -->
<record id="action_partner_report_partnerledger" model="ir.actions.act_window">
<field name="name">Balance Statement (Partner Ledger)</field>
<field name="res_model">account.report.partner.ledger</field>
<field name="view_mode">form</field>
<field name="view_id" ref="account_report_partner_ledger_view" />
<field name="target">new</field>
<field name="binding_model_id" ref="base.model_res_partner" />
<field name="binding_type">report</field>
<field name="context">{
'default_partner_ids':active_ids,
'default_target_move': 'posted',
'default_result_selection': 'customer_supplier',
'default_reconciled': True,
'hide_partner':1,
}</field>
<field name="group_ids" eval="[(4, ref('account.group_account_invoice'))]"/>
</record>
</odoo>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="action_account_report_pl" model="ir.actions.act_window">
<field name="name">Profit and Loss</field>
<field name="res_model">accounting.report</field>
<field name="type">ir.actions.act_window</field>
<field name="view_mode">form</field>
<field name="view_id" ref="accounting_report_view"/>
<field name="target">new</field>
<field name="context" eval="{'default_account_report_id':ref('accounting_pdf_reports.account_financial_report_profitandloss0')}"/>
</record>
<menuitem id="menu_account_report_pl"
name="Profit and Loss"
sequence="6"
action="action_account_report_pl"
parent="accounting_pdf_reports.menu_finance_legal_statement"
groups="account.group_account_user,account.group_account_manager"/>
</odoo>

View File

@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="accounting_tax_report_view" model="ir.ui.view">
<field name="name">Tax Reports</field>
<field name="model">account.tax.report.wizard</field>
<field name="inherit_id" eval="False"/>
<field name="arch" type="xml">
<form string="Report Options">
<group>
<group>
<field name="target_move" widget="radio"/>
<field name="date_from"/>
</group>
<group>
<field name="company_id" invisible="1"/>
<field name="date_to" />
</group>
</group>
<footer>
<button name="check_report" string="Print" type="object" default_focus="1" class="oe_highlight" data-hotkey="q"/>
<button string="Cancel" class="btn btn-secondary" special="cancel" data-hotkey="z"/>
</footer>
</form>
</field>
</record>
<record id="action_account_tax_report" model="ir.actions.act_window">
<field name="name">Tax Reports</field>
<field name="res_model">account.tax.report.wizard</field>
<field name="type">ir.actions.act_window</field>
<field name="view_mode">form</field>
<field name="view_id" ref="accounting_tax_report_view"/>
<field name="context">{}</field>
<field name="target">new</field>
</record>
<menuitem id="menu_account_report"
name="Tax Report"
sequence="30"
action="action_account_tax_report"
parent="menu_finance_audit_reports"
groups="account.group_account_manager,account.group_account_user"/>
</odoo>

View File

@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="account_report_balance_view" model="ir.ui.view">
<field name="name">Trial Balance</field>
<field name="model">account.balance.report</field>
<field name="inherit_id" ref="accounting_pdf_reports.account_common_report_view"/>
<field name="arch" type="xml">
<data>
<xpath expr="//field[@name='target_move']" position="after">
<field name="display_account" widget="radio"/>
<newline/>
</xpath>
<xpath expr="//field[@name='journal_ids']" position="after">
<field name="analytic_account_ids" widget="many2many_tags"
invisible="1"
options="{'no_open': True, 'no_create': True}"/>
</xpath>
</data>
</field>
</record>
<record id="action_account_balance_menu" model="ir.actions.act_window">
<field name="name">Trial Balance</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.balance.report</field>
<field name="view_mode">form</field>
<field name="view_id" ref="account_report_balance_view"/>
<field name="target">new</field>
<field name="binding_model_id" ref="account.model_account_account" />
<field name="binding_type">report</field>
</record>
<menuitem id="menu_general_balance_report"
name="Trial Balance"
sequence="20"
parent="menu_finance_audit_reports"
action="action_account_balance_menu"
groups="account.group_account_user,account.group_account_manager"/>
</odoo>

View File

@@ -0,0 +1,45 @@
=============================
Odoo 18 Daily Financial Reports
=============================
This module will add the reports like cash book report, bank book report and day book report
Installation
============
To install this module, you need to:
Download the module and add it to your Odoo addons folder. Afterward, log on to
your Odoo server and go to the Apps menu. Trigger the debug mode and update the
list by clicking on the "Update Apps List" link. Now install the module by
clicking on the install button.
Upgrade
============
To upgrade this module, you need to:
Download the module and add it to your Odoo addons folder. Restart the server
and log on to your Odoo server. Select the Apps menu and upgrade the module by
clicking on the upgrade button.
Configuration
=============
There is Nothing to Configure
Credits
=======
Contributors
------------
* Odoo Mates <odoomates@gmail.com>
Author & Maintainer
-------------------
This module is maintained by the Odoo Mates

View File

@@ -0,0 +1,2 @@
from . import wizard
from . import report

View File

@@ -0,0 +1,28 @@
{
'name': 'Cash Book, Day Book, Bank Book Financial Reports',
'version': '1.0.1',
'category': 'Invoicing Management',
'summary': 'Cash Book, Day Book and Bank Book Report For Odoo 19',
'description': 'Cash Book, Day Book and Bank Book Report For Odoo 19',
'sequence': '10',
'author': 'Odoo Mates',
'license': 'LGPL-3',
'company': 'Odoo Mates',
'maintainer': 'Odoo Mates',
'support': 'odoomates@gmail.com',
'website': 'https://www.odoomates.tech',
'depends': ['account', 'accounting_pdf_reports'],
'data': [
'security/ir.model.access.csv',
'views/om_daily_reports.xml',
'wizard/daybook.xml',
'wizard/cashbook.xml',
'wizard/bankbook.xml',
'report/reports.xml',
'report/report_daybook.xml',
'report/report_cashbook.xml',
'report/report_bankbook.xml',
],
'live_test_url': 'https://www.youtube.com/watch?v=PEh-an8iCO0',
'images': ['static/description/banner.gif'],
}

View File

@@ -0,0 +1,374 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * om_account_daily_reports
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-15 18:18+0000\n"
"PO-Revision-Date: 2022-04-15 18:18+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "<strong>End Date:</strong>"
msgstr "<strong>تاريخ الانتهاء:</strong>"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "<strong>Journals:</strong>"
msgstr "<strong>دفاتر اليومية:</strong>"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
msgid "<strong>Sorted By:</strong>"
msgstr ""
"<strong>مرتبة حسب\n"
":</strong>"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "<strong>Start Date:</strong>"
msgstr "<strong>تاريخ البداية:</strong>"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "<strong>Target Moves:</strong>"
msgstr "<strong>الحركات الهدف :</strong>"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
msgid "Account Bank Book"
msgstr "دفتر حساب البنك\n"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
msgid "Account Cash Book"
msgstr "دفتر النقدية للحساب\n"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Account Day Book"
msgstr "دفتر يوم الحساب\n"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__account_ids
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__account_ids
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__account_ids
msgid "Accounts"
msgstr "الحسابات"
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__display_account__all
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__display_account__all
msgid "All"
msgstr "الجميع"
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__target_move__all
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__target_move__all
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_daybook_report__target_move__all
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "All Entries"
msgstr "كافة القيود"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Balance"
msgstr "الرصيد\n"
#. module: om_account_daily_reports
#: model:ir.actions.act_window,name:om_account_daily_reports.action_account_bankbook_menu
#: model:ir.actions.report,name:om_account_daily_reports.action_report_bank_book
#: model:ir.model,name:om_account_daily_reports.model_report_om_account_daily_reports_report_bankbook
#: model:ir.ui.menu,name:om_account_daily_reports.menu_bankbook
msgid "Bank Book"
msgstr "كتاب البنك\n"
#. module: om_account_daily_reports
#: model:ir.model,name:om_account_daily_reports.model_account_bankbook_report
msgid "Bank Book Report"
msgstr "تقرير دفتر البنك\n"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_bankbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_cashbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_daybook_view
msgid "Cancel"
msgstr "يلغي\n"
#. module: om_account_daily_reports
#: model:ir.actions.act_window,name:om_account_daily_reports.action_account_cashbook_menu
#: model:ir.actions.report,name:om_account_daily_reports.action_report_cash_book
#: model:ir.model,name:om_account_daily_reports.model_report_om_account_daily_reports_report_cashbook
#: model:ir.ui.menu,name:om_account_daily_reports.menu_cashbook
msgid "Cash Book"
msgstr "دفتر النقدية\n"
#. module: om_account_daily_reports
#: model:ir.model,name:om_account_daily_reports.model_account_cashbook_report
msgid "Cash Book Report"
msgstr "تقرير دفتر النقدية\n"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__create_uid
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__create_uid
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__create_uid
msgid "Created by"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__create_date
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__create_date
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__create_date
msgid "Created on"
msgstr ""
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Credit"
msgstr ""
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Currency"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.ui.menu,name:om_account_daily_reports.menu_finance_daily_reports
msgid "Daily Reports"
msgstr "التقارير اليومية\n"
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__sortby__sort_date
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__sortby__sort_date
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Date"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.actions.act_window,name:om_account_daily_reports.action_account_daybook_menu
#: model:ir.actions.report,name:om_account_daily_reports.action_report_day_book
#: model:ir.model,name:om_account_daily_reports.model_report_om_account_daily_reports_report_daybook
#: model:ir.ui.menu,name:om_account_daily_reports.menu_daybook
msgid "Day Book"
msgstr "كتاب اليوم\n"
#. module: om_account_daily_reports
#: model:ir.model,name:om_account_daily_reports.model_account_daybook_report
msgid "Day Book Report"
msgstr "تقرير كتاب اليوم\n"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Debit"
msgstr "المدين"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__display_account
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__display_account
msgid "Display Accounts"
msgstr "عرض الحسابات\n"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__display_name
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__display_name
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__display_name
msgid "Display Name"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__date_to
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__date_to
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__date_to
msgid "End Date"
msgstr "تاريخ الانتهاء"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Entry Label"
msgstr "بطاقة الدخول\n"
#. module: om_account_daily_reports
#: code:addons/om_account_daily_reports/report/report_bankbook.py:0
#: code:addons/om_account_daily_reports/report/report_cashbook.py:0
#: code:addons/om_account_daily_reports/report/report_daybook.py:0
#, python-format
msgid "Form content is missing, this report cannot be printed."
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__id
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__id
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__id
msgid "ID"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,help:om_account_daily_reports.field_account_bankbook_report__initial_balance
#: model:ir.model.fields,help:om_account_daily_reports.field_account_cashbook_report__initial_balance
msgid ""
"If you selected date, this field allow you to add a row to display the "
"amount of debit/credit/balance that precedes the filter you've set."
msgstr ""
"إذا حددت التاريخ ، فسيتيح لك هذا الحقل إضافة صف لعرض مبلغ الخصم / الائتمان /"
" الرصيد الذي يسبق عامل التصفية الذي قمت بتعيينه.\n"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__initial_balance
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__initial_balance
msgid "Include Initial Balances"
msgstr "قم بتضمين الأرصدة الأولية\n"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "JRNL"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__sortby__sort_journal_partner
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__sortby__sort_journal_partner
msgid "Journal & Partner"
msgstr ""
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
msgid "Journal and Partner"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__journal_ids
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__journal_ids
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__journal_ids
msgid "Journals"
msgstr "دفاتر اليومية"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report____last_update
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report____last_update
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report____last_update
msgid "Last Modified on"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__write_uid
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__write_uid
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__write_uid
msgid "Last Updated by"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__write_date
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__write_date
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__write_date
msgid "Last Updated on"
msgstr ""
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Move"
msgstr ""
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Partner"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__target_move__posted
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__target_move__posted
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_daybook_report__target_move__posted
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Posted Entries"
msgstr "إدخالات منشورة\n"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_bankbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_cashbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_daybook_view
msgid "Print"
msgstr "طباعة"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Ref"
msgstr ""
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_bankbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_cashbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_daybook_view
msgid "Report Options"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__sortby
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__sortby
msgid "Sort by"
msgstr "ترتيب حسب\n"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__date_from
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__date_from
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__date_from
msgid "Start Date"
msgstr "تاريخ البداية"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__target_move
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__target_move
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__target_move
msgid "Target Moves"
msgstr "الحركات الهدف "
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__display_account__not_zero
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__display_account__not_zero
msgid "With balance is not equal to 0"
msgstr "مع رصيد لا يساوي 0\n"
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__display_account__movement
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__display_account__movement
msgid "With movements"
msgstr "مع الحركات\n"

View File

@@ -0,0 +1,370 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * om_account_daily_reports
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-06 03:01+0000\n"
"PO-Revision-Date: 2022-07-06 03:01+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "<strong>End Date:</strong>"
msgstr ""
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "<strong>Journals:</strong>"
msgstr ""
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
msgid "<strong>Sorted By:</strong>"
msgstr ""
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "<strong>Start Date:</strong>"
msgstr ""
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "<strong>Target Moves:</strong>"
msgstr ""
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
msgid "Account Bank Book"
msgstr "دفتر حساب البنك\n"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
msgid "Account Cash Book"
msgstr "دفتر النقدية للحساب\n"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Account Day Book"
msgstr "دفتر يوم الحساب\n"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__account_ids
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__account_ids
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__account_ids
msgid "Accounts"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__display_account__all
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__display_account__all
msgid "All"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__target_move__all
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__target_move__all
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_daybook_report__target_move__all
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "All Entries"
msgstr ""
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Balance"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.actions.act_window,name:om_account_daily_reports.action_account_bankbook_menu
#: model:ir.actions.report,name:om_account_daily_reports.action_report_bank_book
#: model:ir.model,name:om_account_daily_reports.model_report_om_account_daily_reports_report_bankbook
#: model:ir.ui.menu,name:om_account_daily_reports.menu_bankbook
msgid "Bank Book"
msgstr "كتاب البنك\n"
#. module: om_account_daily_reports
#: model:ir.model,name:om_account_daily_reports.model_account_bankbook_report
msgid "Bank Book Report"
msgstr "تقرير دفتر البنك\n"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_bankbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_cashbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_daybook_view
msgid "Cancel"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.actions.act_window,name:om_account_daily_reports.action_account_cashbook_menu
#: model:ir.actions.report,name:om_account_daily_reports.action_report_cash_book
#: model:ir.model,name:om_account_daily_reports.model_report_om_account_daily_reports_report_cashbook
#: model:ir.ui.menu,name:om_account_daily_reports.menu_cashbook
msgid "Cash Book"
msgstr "دفتر النقدية\n"
#. module: om_account_daily_reports
#: model:ir.model,name:om_account_daily_reports.model_account_cashbook_report
msgid "Cash Book Report"
msgstr "تقرير دفتر النقدية\n"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__create_uid
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__create_uid
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__create_uid
msgid "Created by"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__create_date
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__create_date
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__create_date
msgid "Created on"
msgstr ""
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Credit"
msgstr ""
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Currency"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.ui.menu,name:om_account_daily_reports.menu_finance_daily_reports
msgid "Daily Reports"
msgstr "التقارير اليومية\n"
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__sortby__sort_date
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__sortby__sort_date
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Date"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.actions.act_window,name:om_account_daily_reports.action_account_daybook_menu
#: model:ir.actions.report,name:om_account_daily_reports.action_report_day_book
#: model:ir.model,name:om_account_daily_reports.model_report_om_account_daily_reports_report_daybook
#: model:ir.ui.menu,name:om_account_daily_reports.menu_daybook
msgid "Day Book"
msgstr "كتاب اليوم\n"
#. module: om_account_daily_reports
#: model:ir.model,name:om_account_daily_reports.model_account_daybook_report
msgid "Day Book Report"
msgstr "تقرير كتاب اليوم\n"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Debit"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__display_account
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__display_account
msgid "Display Accounts"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__display_name
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__display_name
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__display_name
msgid "Display Name"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__date_to
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__date_to
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__date_to
msgid "End Date"
msgstr ""
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Entry Label"
msgstr ""
#. module: om_account_daily_reports
#: code:addons/om_account_daily_reports/report/report_bankbook.py:0
#: code:addons/om_account_daily_reports/report/report_cashbook.py:0
#: code:addons/om_account_daily_reports/report/report_daybook.py:0
#, python-format
msgid "Form content is missing, this report cannot be printed."
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__id
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__id
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__id
msgid "ID"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,help:om_account_daily_reports.field_account_bankbook_report__initial_balance
#: model:ir.model.fields,help:om_account_daily_reports.field_account_cashbook_report__initial_balance
msgid ""
"If you selected date, this field allow you to add a row to display the "
"amount of debit/credit/balance that precedes the filter you've set."
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__initial_balance
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__initial_balance
msgid "Include Initial Balances"
msgstr ""
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "JRNL"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__sortby__sort_journal_partner
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__sortby__sort_journal_partner
msgid "Journal & Partner"
msgstr ""
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
msgid "Journal and Partner"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__journal_ids
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__journal_ids
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__journal_ids
msgid "Journals"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report____last_update
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report____last_update
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report____last_update
msgid "Last Modified on"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__write_uid
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__write_uid
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__write_uid
msgid "Last Updated by"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__write_date
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__write_date
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__write_date
msgid "Last Updated on"
msgstr ""
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Move"
msgstr ""
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Partner"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__target_move__posted
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__target_move__posted
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_daybook_report__target_move__posted
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Posted Entries"
msgstr ""
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_bankbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_cashbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_daybook_view
msgid "Print"
msgstr ""
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Ref"
msgstr ""
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_bankbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_cashbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_daybook_view
msgid "Report Options"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__sortby
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__sortby
msgid "Sort by"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__date_from
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__date_from
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__date_from
msgid "Start Date"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__target_move
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__target_move
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__target_move
msgid "Target Moves"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__display_account__not_zero
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__display_account__not_zero
msgid "With balance is not equal to 0"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__display_account__movement
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__display_account__movement
msgid "With movements"
msgstr ""

View File

@@ -0,0 +1,358 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * om_account_daily_reports
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-03-22 12:18+0000\n"
"PO-Revision-Date: 2024-03-22 12:18+0000\n"
"Last-Translator: Sergio Ariel Ameghino <ariel.ameghino@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "<strong>End Date:</strong>"
msgstr "<strong>Fecha final:</strong>"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "<strong>Journals:</strong>"
msgstr "<strong>Diarios:</strong>"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
msgid "<strong>Sorted By:</strong>"
msgstr "<strong>Ordenado por:</strong>"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "<strong>Start Date:</strong>"
msgstr "<strong>Fecha de inicio:</strong>"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "<strong>Target Moves:</strong>"
msgstr "<strong>Movimientos de destino:</strong>"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
msgid "Account Bank Book"
msgstr "Libro de Cuentas bancarias"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
msgid "Account Cash Book"
msgstr "Libro de Cuenta Efectivo"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Account Day Book"
msgstr "Libro Diario"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__account_ids
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__account_ids
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__account_ids
msgid "Accounts"
msgstr "Cuentas"
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__display_account__all
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__display_account__all
msgid "All"
msgstr "Todo"
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__target_move__all
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__target_move__all
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_daybook_report__target_move__all
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "All Entries"
msgstr "Todos los asientos"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Balance"
msgstr "Saldo"
#. module: om_account_daily_reports
#: model:ir.actions.act_window,name:om_account_daily_reports.action_account_bankbook_menu
#: model:ir.actions.report,name:om_account_daily_reports.action_report_bank_book
#: model:ir.model,name:om_account_daily_reports.model_report_om_account_daily_reports_report_bankbook
#: model:ir.ui.menu,name:om_account_daily_reports.menu_bankbook
msgid "Bank Book"
msgstr "Libro de Banco"
#. module: om_account_daily_reports
#: model:ir.model,name:om_account_daily_reports.model_account_bankbook_report
msgid "Bank Book Report"
msgstr "Reporte del Libro de Banco"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_bankbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_cashbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_daybook_view
msgid "Cancel"
msgstr "Cancelar"
#. module: om_account_daily_reports
#: model:ir.actions.act_window,name:om_account_daily_reports.action_account_cashbook_menu
#: model:ir.actions.report,name:om_account_daily_reports.action_report_cash_book
#: model:ir.model,name:om_account_daily_reports.model_report_om_account_daily_reports_report_cashbook
#: model:ir.ui.menu,name:om_account_daily_reports.menu_cashbook
msgid "Cash Book"
msgstr "Libro de Caja"
#. module: om_account_daily_reports
#: model:ir.model,name:om_account_daily_reports.model_account_cashbook_report
msgid "Cash Book Report"
msgstr "Reporte del Libro de Caja"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__create_uid
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__create_uid
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__create_uid
msgid "Created by"
msgstr "Creado por"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__create_date
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__create_date
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__create_date
msgid "Created on"
msgstr "Creado en"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Credit"
msgstr "Crédito"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Currency"
msgstr "Moneda"
#. module: om_account_daily_reports
#: model:ir.ui.menu,name:om_account_daily_reports.menu_finance_daily_reports
msgid "Daily Reports"
msgstr "Reportes diarios"
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__sortby__sort_date
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__sortby__sort_date
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Date"
msgstr "Fecha"
#. module: om_account_daily_reports
#: model:ir.actions.act_window,name:om_account_daily_reports.action_account_daybook_menu
#: model:ir.actions.report,name:om_account_daily_reports.action_report_day_book
#: model:ir.model,name:om_account_daily_reports.model_report_om_account_daily_reports_report_daybook
#: model:ir.ui.menu,name:om_account_daily_reports.menu_daybook
msgid "Day Book"
msgstr "Libro Diario"
#. module: om_account_daily_reports
#: model:ir.model,name:om_account_daily_reports.model_account_daybook_report
msgid "Day Book Report"
msgstr "Reporte del Libro Diario"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Debit"
msgstr "Débito"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__display_account
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__display_account
msgid "Display Accounts"
msgstr "Cuentas mostradas"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__display_name
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__display_name
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__display_name
msgid "Display Name"
msgstr "Nombre mostrado"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__date_to
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__date_to
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__date_to
msgid "End Date"
msgstr "Fecha final"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Entry Label"
msgstr "Descripción de asiento"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__id
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__id
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__id
msgid "ID"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,help:om_account_daily_reports.field_account_bankbook_report__initial_balance
#: model:ir.model.fields,help:om_account_daily_reports.field_account_cashbook_report__initial_balance
msgid ""
"If you selected date, this field allow you to add a row to display the "
"amount of debit/credit/balance that precedes the filter you've set."
msgstr ""
"Si seleccionó la fecha, este campo le permite agregar una fila para mostrar "
"la cantidad de débito/crédito/saldo que precede al filtro que ha "
"establecido."
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__initial_balance
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__initial_balance
msgid "Include Initial Balances"
msgstr "Incluir saldos iniciales"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "JRNL"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__sortby__sort_journal_partner
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__sortby__sort_journal_partner
msgid "Journal & Partner"
msgstr "Diario y Empresa"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
msgid "Journal and Partner"
msgstr "Diario y Empresa"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__journal_ids
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__journal_ids
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__journal_ids
msgid "Journals"
msgstr "Diarios"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__write_uid
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__write_uid
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__write_uid
msgid "Last Updated by"
msgstr "Última actualización por"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__write_date
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__write_date
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__write_date
msgid "Last Updated on"
msgstr "Última actualización en"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Move"
msgstr "Movimiento"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Partner"
msgstr "Empresa"
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__target_move__posted
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__target_move__posted
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_daybook_report__target_move__posted
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Posted Entries"
msgstr "Asientos publicados"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_bankbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_cashbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_daybook_view
msgid "Print"
msgstr "Imprimir"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Ref"
msgstr ""
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_bankbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_cashbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_daybook_view
msgid "Report Options"
msgstr "Opciones de reporte"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__sortby
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__sortby
msgid "Sort by"
msgstr "Ordenado por"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__date_from
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__date_from
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__date_from
msgid "Start Date"
msgstr "Fecha de inicio"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__target_move
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__target_move
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__target_move
msgid "Target Moves"
msgstr "Movimientos de destino"
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__display_account__not_zero
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__display_account__not_zero
msgid "With balance is not equal to 0"
msgstr "Con saldo no es igual a 0"
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__display_account__movement
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__display_account__movement
msgid "With movements"
msgstr "Con movimientos"

View File

@@ -0,0 +1,377 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * om_account_daily_reports
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-15 06:44+0000\n"
"PO-Revision-Date: 2022-07-06 00:10+0200\n"
"Last-Translator: Sylvain Lc\n"
"Language-Team: \n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Poedit 3.1\n"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "<strong>End Date:</strong>"
msgstr "<strong>Date de fin :</strong>"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "<strong>Journals:</strong>"
msgstr "<strong>Journaux:</strong>"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
msgid "<strong>Sorted By:</strong>"
msgstr "<strong>Trié par:</strong>"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "<strong>Start Date:</strong>"
msgstr "<strong>Date de début:</strong>"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "<strong>Target Moves:</strong>"
msgstr "<strong>Déplacements cibles:</strong>"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
msgid "Account Bank Book"
msgstr "Journal de compte bancaire"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
msgid "Account Cash Book"
msgstr "Journal de caisse"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Account Day Book"
msgstr "Journal de comptes"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__account_ids
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__account_ids
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__account_ids
msgid "Accounts"
msgstr "Comptes"
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__display_account__all
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__display_account__all
msgid "All"
msgstr "Toute"
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__target_move__all
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__target_move__all
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_daybook_report__target_move__all
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "All Entries"
msgstr "Toutes les écritures"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Balance"
msgstr "Équilibre"
#. module: om_account_daily_reports
#: model:ir.actions.act_window,name:om_account_daily_reports.action_account_bankbook_menu
#: model:ir.actions.report,name:om_account_daily_reports.action_report_bank_book
#: model:ir.model,name:om_account_daily_reports.model_report_om_account_daily_reports_report_bankbook
#: model:ir.ui.menu,name:om_account_daily_reports.menu_bankbook
msgid "Bank Book"
msgstr "Livret de banque"
#. module: om_account_daily_reports
#: model:ir.model,name:om_account_daily_reports.model_account_bankbook_report
msgid "Bank Book Report"
msgstr "Rapport sur le livre de banque"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_bankbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_cashbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_daybook_view
msgid "Cancel"
msgstr "Annuler"
#. module: om_account_daily_reports
#: model:ir.actions.act_window,name:om_account_daily_reports.action_account_cashbook_menu
#: model:ir.actions.report,name:om_account_daily_reports.action_report_cash_book
#: model:ir.model,name:om_account_daily_reports.model_report_om_account_daily_reports_report_cashbook
#: model:ir.ui.menu,name:om_account_daily_reports.menu_cashbook
msgid "Cash Book"
msgstr "Livre de caisse"
#. module: om_account_daily_reports
#: model:ir.model,name:om_account_daily_reports.model_account_cashbook_report
msgid "Cash Book Report"
msgstr "Rapport de livre de caisse"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__create_uid
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__create_uid
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__create_uid
msgid "Created by"
msgstr "Créé par"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__create_date
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__create_date
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__create_date
msgid "Created on"
msgstr "Créé sur"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Credit"
msgstr "Crédit"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Currency"
msgstr "Devise"
#. module: om_account_daily_reports
#: model:ir.ui.menu,name:om_account_daily_reports.menu_finance_daily_reports
msgid "Daily Reports"
msgstr "Rapports quotidiens"
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__sortby__sort_date
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__sortby__sort_date
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Date"
msgstr "Fecha"
#. module: om_account_daily_reports
#: model:ir.actions.act_window,name:om_account_daily_reports.action_account_daybook_menu
#: model:ir.actions.report,name:om_account_daily_reports.action_report_day_book
#: model:ir.model,name:om_account_daily_reports.model_report_om_account_daily_reports_report_daybook
#: model:ir.ui.menu,name:om_account_daily_reports.menu_daybook
msgid "Day Book"
msgstr "Carnet de jour"
#. module: om_account_daily_reports
#: model:ir.model,name:om_account_daily_reports.model_account_daybook_report
msgid "Day Book Report"
msgstr "Rapport journalier"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Debit"
msgstr "Débit"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__display_account
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__display_account
msgid "Display Accounts"
msgstr "Afficher les comptes"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__display_name
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__display_name
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__display_name
msgid "Display Name"
msgstr "Afficher un nom"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__date_to
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__date_to
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__date_to
msgid "End Date"
msgstr "Date de fin"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Entry Label"
msgstr "Étiquette d'entrée"
#. module: om_account_daily_reports
#: code:addons/om_account_daily_reports/report/report_bankbook.py:0
#: code:addons/om_account_daily_reports/report/report_cashbook.py:0
#: code:addons/om_account_daily_reports/report/report_daybook.py:0
#, python-format
msgid "Form content is missing, this report cannot be printed."
msgstr ""
"Le contenu du formulaire est manquant, le rapport ne peut pas être "
"imprimé."
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__id
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__id
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__id
msgid "ID"
msgstr "ID"
#. module: om_account_daily_reports
#: model:ir.model.fields,help:om_account_daily_reports.field_account_bankbook_report__initial_balance
#: model:ir.model.fields,help:om_account_daily_reports.field_account_cashbook_report__initial_balance
msgid ""
"If you selected date, this field allow you to add a row to display the "
"amount of debit/credit/balance that precedes the filter you've set."
msgstr ""
"Si vous avez sélectionné la date, ce champ vous permet d'ajouter une "
"ligne pour afficher le montant de débit / crédit / solde qui précède "
"le filtre que vous avez défini."
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__initial_balance
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__initial_balance
msgid "Include Initial Balances"
msgstr "Inclure les soldes initiaux"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "JRNL"
msgstr "JRNL"
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__sortby__sort_journal_partner
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__sortby__sort_journal_partner
msgid "Journal & Partner"
msgstr "Journal & partenair"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
msgid "Journal and Partner"
msgstr "Journal et partenaire"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__journal_ids
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__journal_ids
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__journal_ids
msgid "Journals"
msgstr "Journaux"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report____last_update
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report____last_update
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report____last_update
msgid "Last Modified on"
msgstr "Dernière modification le"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__write_uid
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__write_uid
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__write_uid
msgid "Last Updated by"
msgstr "Dernière mise à jour par"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__write_date
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__write_date
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__write_date
msgid "Last Updated on"
msgstr "Dernière mise à jour le"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Move"
msgstr "Mouvement"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Partner"
msgstr "Partenaire"
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__target_move__posted
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__target_move__posted
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_daybook_report__target_move__posted
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Posted Entries"
msgstr "Entrées publiées"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_bankbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_cashbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_daybook_view
msgid "Print"
msgstr "Imprimer"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Ref"
msgstr "Réf"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_bankbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_cashbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_daybook_view
msgid "Report Options"
msgstr "Options du rapport"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__sortby
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__sortby
msgid "Sort by"
msgstr "Trier par"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__date_from
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__date_from
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__date_from
msgid "Start Date"
msgstr "Date de début"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__target_move
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__target_move
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__target_move
msgid "Target Moves"
msgstr "Mouvements cibles"
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__display_account__not_zero
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__display_account__not_zero
msgid "With balance is not equal to 0"
msgstr "Avec solde n'est pas égal à 0"
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__display_account__movement
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__display_account__movement
msgid "With movements"
msgstr "Avec des mouvements"

View File

@@ -0,0 +1,373 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * om_account_daily_reports
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-15 06:44+0000\n"
"PO-Revision-Date: 2022-04-15 06:44+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "<strong>End Date:</strong>"
msgstr "<strong>Bitiş Tarihi:</strong>"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "<strong>Journals:</strong>"
msgstr "<strong>Defterler:</strong>"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
msgid "<strong>Sorted By:</strong>"
msgstr "<strong>Sıralama:</strong>"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "<strong>Start Date:</strong>"
msgstr "<strong>Başlangıç Tarihi:</strong>"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "<strong>Target Moves:</strong>"
msgstr "<strong>Hedef Hareketler:</strong>"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
msgid "Account Bank Book"
msgstr "Hesap Banka Defteri"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
msgid "Account Cash Book"
msgstr "Hesap Nakit Defteri"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Account Day Book"
msgstr "Hesap Yevmiye Defteri"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__account_ids
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__account_ids
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__account_ids
msgid "Accounts"
msgstr "Hesaplar"
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__display_account__all
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__display_account__all
msgid "All"
msgstr "Tümü"
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__target_move__all
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__target_move__all
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_daybook_report__target_move__all
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "All Entries"
msgstr "Tüm Kayıtlar"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Balance"
msgstr "Bakiye"
#. module: om_account_daily_reports
#: model:ir.actions.act_window,name:om_account_daily_reports.action_account_bankbook_menu
#: model:ir.actions.report,name:om_account_daily_reports.action_report_bank_book
#: model:ir.model,name:om_account_daily_reports.model_report_om_account_daily_reports_report_bankbook
#: model:ir.ui.menu,name:om_account_daily_reports.menu_bankbook
msgid "Bank Book"
msgstr "Banka Defteri"
#. module: om_account_daily_reports
#: model:ir.model,name:om_account_daily_reports.model_account_bankbook_report
msgid "Bank Book Report"
msgstr "Banka Defteri Raporu"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_bankbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_cashbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_daybook_view
msgid "Cancel"
msgstr "İptal"
#. module: om_account_daily_reports
#: model:ir.actions.act_window,name:om_account_daily_reports.action_account_cashbook_menu
#: model:ir.actions.report,name:om_account_daily_reports.action_report_cash_book
#: model:ir.model,name:om_account_daily_reports.model_report_om_account_daily_reports_report_cashbook
#: model:ir.ui.menu,name:om_account_daily_reports.menu_cashbook
msgid "Cash Book"
msgstr "Nakit Defteri"
#. module: om_account_daily_reports
#: model:ir.model,name:om_account_daily_reports.model_account_cashbook_report
msgid "Cash Book Report"
msgstr "Nakit Defteri Raporu"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__create_uid
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__create_uid
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__create_uid
msgid "Created by"
msgstr "Oluşturan"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__create_date
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__create_date
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__create_date
msgid "Created on"
msgstr "Oluşturulma Tarihi"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Credit"
msgstr "Alacak"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Currency"
msgstr "Para Birimi"
#. module: om_account_daily_reports
#: model:ir.ui.menu,name:om_account_daily_reports.menu_finance_daily_reports
msgid "Daily Reports"
msgstr "Günlük Raporlar"
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__sortby__sort_date
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__sortby__sort_date
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Date"
msgstr "Tarih"
#. module: om_account_daily_reports
#: model:ir.actions.act_window,name:om_account_daily_reports.action_account_daybook_menu
#: model:ir.actions.report,name:om_account_daily_reports.action_report_day_book
#: model:ir.model,name:om_account_daily_reports.model_report_om_account_daily_reports_report_daybook
#: model:ir.ui.menu,name:om_account_daily_reports.menu_daybook
msgid "Day Book"
msgstr "Yevmiye Defteri"
#. module: om_account_daily_reports
#: model:ir.model,name:om_account_daily_reports.model_account_daybook_report
msgid "Day Book Report"
msgstr "Yevmiye Defteri Raporu"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Debit"
msgstr "Borç"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__display_account
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__display_account
msgid "Display Accounts"
msgstr "Görüntülenen Hesaplar"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__display_name
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__display_name
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__display_name
msgid "Display Name"
msgstr "Görüntülenen Ad"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__date_to
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__date_to
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__date_to
msgid "End Date"
msgstr "Bitiş Tarihi"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Entry Label"
msgstr "Giriş Etiketi"
#. module: om_account_daily_reports
#: code:addons/om_account_daily_reports/report/report_bankbook.py:0
#: code:addons/om_account_daily_reports/report/report_cashbook.py:0
#: code:addons/om_account_daily_reports/report/report_daybook.py:0
#, python-format
msgid "Form content is missing, this report cannot be printed."
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__id
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__id
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__id
msgid "ID"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,help:om_account_daily_reports.field_account_bankbook_report__initial_balance
#: model:ir.model.fields,help:om_account_daily_reports.field_account_cashbook_report__initial_balance
msgid ""
"If you selected date, this field allow you to add a row to display the "
"amount of debit/credit/balance that precedes the filter you've set."
msgstr ""
"Şayet tarih seçtiyseniz, bu alan size ayarladığınız filtreden önce "
"borç/alacak/bakiye miktarını görüntülemek için bir satır eklemenize izin "
"verir."
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__initial_balance
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__initial_balance
msgid "Include Initial Balances"
msgstr "Açılış Bakiyelerini Dahil Et"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "JRNL"
msgstr "DFTR"
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__sortby__sort_journal_partner
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__sortby__sort_journal_partner
msgid "Journal & Partner"
msgstr "Defter & İş Ortağı"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
msgid "Journal and Partner"
msgstr "Defter ve İş Ortağı"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__journal_ids
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__journal_ids
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__journal_ids
msgid "Journals"
msgstr "Defterler"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report____last_update
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report____last_update
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report____last_update
msgid "Last Modified on"
msgstr "Son Değişiklik Tarihi"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__write_uid
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__write_uid
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__write_uid
msgid "Last Updated by"
msgstr "Son Güncellemeyi Yapan"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__write_date
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__write_date
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__write_date
msgid "Last Updated on"
msgstr "Son Güncelleme Tarihi"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Move"
msgstr "Taşı"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Partner"
msgstr "İş Ortağı"
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__target_move__posted
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__target_move__posted
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_daybook_report__target_move__posted
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Posted Entries"
msgstr "Gönderilen Kayıtlar"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_bankbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_cashbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_daybook_view
msgid "Print"
msgstr "Yazdır"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Ref"
msgstr ""
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_bankbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_cashbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_daybook_view
msgid "Report Options"
msgstr "Rapor Seçenekleri"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__sortby
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__sortby
msgid "Sort by"
msgstr "Sıralama"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__date_from
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__date_from
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__date_from
msgid "Start Date"
msgstr "Başlangıç Tarihi"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__target_move
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__target_move
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__target_move
msgid "Target Moves"
msgstr "Hedef Hareketler"
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__display_account__not_zero
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__display_account__not_zero
msgid "With balance is not equal to 0"
msgstr "Sıfırdan farklı bakiyelerle"
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__display_account__movement
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__display_account__movement
msgid "With movements"
msgstr "Taşımalarla Birlikte"

View File

@@ -0,0 +1,379 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * om_account_daily_reports
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-07 07:28+0000\n"
"PO-Revision-Date: 2022-07-07 07:28+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "<strong>End Date:</strong>"
msgstr "<strong>Кінцева дата:</strong>"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "<strong>Journals:</strong>"
msgstr "<strong>Журнали:</strong>"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
msgid "<strong>Sorted By:</strong>"
msgstr "<strong>Сортовано за:</strong>"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "<strong>Start Date:</strong>"
msgstr "<strong>Дата початку: </strong>"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "<strong>Target Moves:</strong>"
msgstr "<strong>Відповідні проведення:</strong>"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
msgid "Account Bank Book"
msgstr "Облікова банківська книга"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
msgid "Account Cash Book"
msgstr "Облікова касова книга"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Account Day Book"
msgstr "Облікова денна книга"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__account_ids
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__account_ids
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__account_ids
msgid "Accounts"
msgstr "Рахунки"
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__display_account__all
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__display_account__all
msgid "All"
msgstr "Всі"
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__target_move__all
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__target_move__all
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_daybook_report__target_move__all
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "All Entries"
msgstr "Всі записи"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Balance"
msgstr "Сальдо"
#. module: om_account_daily_reports
#: model:ir.actions.act_window,name:om_account_daily_reports.action_account_bankbook_menu
#: model:ir.actions.report,name:om_account_daily_reports.action_report_bank_book
#: model:ir.model,name:om_account_daily_reports.model_report_om_account_daily_reports_report_bankbook
#: model:ir.ui.menu,name:om_account_daily_reports.menu_bankbook
msgid "Bank Book"
msgstr "Банківська книга"
#. module: om_account_daily_reports
#: model:ir.model,name:om_account_daily_reports.model_account_bankbook_report
msgid "Bank Book Report"
msgstr "Банківська книга звіт"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_bankbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_cashbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_daybook_view
msgid "Cancel"
msgstr "Скасувати"
#. module: om_account_daily_reports
#: model:ir.actions.act_window,name:om_account_daily_reports.action_account_cashbook_menu
#: model:ir.actions.report,name:om_account_daily_reports.action_report_cash_book
#: model:ir.model,name:om_account_daily_reports.model_report_om_account_daily_reports_report_cashbook
#: model:ir.ui.menu,name:om_account_daily_reports.menu_cashbook
msgid "Cash Book"
msgstr "Касова книга"
#. module: om_account_daily_reports
#: model:ir.model,name:om_account_daily_reports.model_account_cashbook_report
msgid "Cash Book Report"
msgstr "Касова книга звіт"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__create_uid
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__create_uid
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__create_uid
msgid "Created by"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__create_date
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__create_date
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__create_date
msgid "Created on"
msgstr ""
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Credit"
msgstr "Кредит"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Currency"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.ui.menu,name:om_account_daily_reports.menu_finance_daily_reports
msgid "Daily Reports"
msgstr "Щоденні звіти"
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__sortby__sort_date
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__sortby__sort_date
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Date"
msgstr "Дата"
#. module: om_account_daily_reports
#: model:ir.actions.act_window,name:om_account_daily_reports.action_account_daybook_menu
#: model:ir.actions.report,name:om_account_daily_reports.action_report_day_book
#: model:ir.model,name:om_account_daily_reports.model_report_om_account_daily_reports_report_daybook
#: model:ir.ui.menu,name:om_account_daily_reports.menu_daybook
msgid "Day Book"
msgstr "Денна книга"
#. module: om_account_daily_reports
#: model:ir.model,name:om_account_daily_reports.model_account_daybook_report
msgid "Day Book Report"
msgstr "Денна книга звіт"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Debit"
msgstr "Дебет"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__display_account
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__display_account
msgid "Display Accounts"
msgstr "Показувати рахунки"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__display_name
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__display_name
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__display_name
#: model:ir.model.fields,field_description:om_account_daily_reports.field_report_om_account_daily_reports_report_bankbook__display_name
#: model:ir.model.fields,field_description:om_account_daily_reports.field_report_om_account_daily_reports_report_cashbook__display_name
#: model:ir.model.fields,field_description:om_account_daily_reports.field_report_om_account_daily_reports_report_daybook__display_name
msgid "Display Name"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__date_to
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__date_to
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__date_to
msgid "End Date"
msgstr "Дата закінчення"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Entry Label"
msgstr "Позначка входу"
#. module: om_account_daily_reports
#: code:addons/om_account_daily_reports/reports/report_bankbook.py:0
#: code:addons/om_account_daily_reports/reports/report_cashbook.py:0
#: code:addons/om_account_daily_reports/reports/report_daybook.py:0
#, python-format
msgid "Form content is missing, this report cannot be printed."
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__id
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__id
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__id
#: model:ir.model.fields,field_description:om_account_daily_reports.field_report_om_account_daily_reports_report_bankbook__id
#: model:ir.model.fields,field_description:om_account_daily_reports.field_report_om_account_daily_reports_report_cashbook__id
#: model:ir.model.fields,field_description:om_account_daily_reports.field_report_om_account_daily_reports_report_daybook__id
msgid "ID"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,help:om_account_daily_reports.field_account_bankbook_report__initial_balance
#: model:ir.model.fields,help:om_account_daily_reports.field_account_cashbook_report__initial_balance
msgid ""
"If you selected date, this field allow you to add a row to display the "
"amount of debit/credit/balance that precedes the filter you've set."
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__initial_balance
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__initial_balance
msgid "Include Initial Balances"
msgstr "Додати початкові залишки"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "JRNL"
msgstr "Журнал"
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__sortby__sort_journal_partner
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__sortby__sort_journal_partner
msgid "Journal & Partner"
msgstr "Журналам та Контрагентам"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
msgid "Journal and Partner"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__journal_ids
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__journal_ids
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__journal_ids
msgid "Journals"
msgstr "Журнали"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report____last_update
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report____last_update
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report____last_update
#: model:ir.model.fields,field_description:om_account_daily_reports.field_report_om_account_daily_reports_report_bankbook____last_update
#: model:ir.model.fields,field_description:om_account_daily_reports.field_report_om_account_daily_reports_report_cashbook____last_update
#: model:ir.model.fields,field_description:om_account_daily_reports.field_report_om_account_daily_reports_report_daybook____last_update
msgid "Last Modified on"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__write_uid
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__write_uid
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__write_uid
msgid "Last Updated by"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__write_date
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__write_date
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__write_date
msgid "Last Updated on"
msgstr ""
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Move"
msgstr "Рух"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Partner"
msgstr "Партнер"
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__target_move__posted
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__target_move__posted
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_daybook_report__target_move__posted
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Posted Entries"
msgstr "Опубліковані проведення"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_bankbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_cashbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_daybook_view
msgid "Print"
msgstr "Друк"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_bankbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_cashbook
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.report_daybook
msgid "Ref"
msgstr "Посилання"
#. module: om_account_daily_reports
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_bankbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_cashbook_view
#: model_terms:ir.ui.view,arch_db:om_account_daily_reports.account_report_daybook_view
msgid "Report Options"
msgstr ""
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__sortby
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__sortby
msgid "Sort by"
msgstr "Сортувати за"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__date_from
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__date_from
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__date_from
msgid "Start Date"
msgstr "Дата початку"
#. module: om_account_daily_reports
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_bankbook_report__target_move
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_cashbook_report__target_move
#: model:ir.model.fields,field_description:om_account_daily_reports.field_account_daybook_report__target_move
msgid "Target Moves"
msgstr "Вибрати проведення"
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__display_account__not_zero
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__display_account__not_zero
msgid "With balance is not equal to 0"
msgstr "З не нульовим сальдо"
#. module: om_account_daily_reports
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_bankbook_report__display_account__movement
#: model:ir.model.fields.selection,name:om_account_daily_reports.selection__account_cashbook_report__display_account__movement
msgid "With movements"
msgstr "По яких був рух"

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,3 @@
from . import report_daybook
from . import report_cashbook
from . import report_bankbook

View File

@@ -0,0 +1,183 @@
import time
from odoo import api, models, _
from odoo.exceptions import UserError
class ReportBankBook(models.AbstractModel):
_name = 'report.om_account_daily_reports.report_bankbook'
_description = 'Bank Book'
def _get_account_move_entry(self, accounts, init_balance, sortby, display_account):
"""
:param:
accounts: the record set of accounts
init_balance: boolean value of initial_balance
sortby: sorting by date or partner and journal
display_account: type of account (receivable, payable and both)
Returns a dictionary of accounts with following key and value:
{
'code': account code,
'name': account name,
'debit': sum of total debit amount,
'credit': sum of total credit amount,
'balance': total balance,
'amount_currency': sum of amount_currency,
'move_lines': list of move lines
}
"""
cr = self.env.cr
MoveLine = self.env['account.move.line']
move_lines = {x: [] for x in accounts.ids}
# Prepare initial SQL query and get the initial move lines
if init_balance:
init_tables, init_where_clause, init_where_params = MoveLine.with_context(
date_from=self.env.context.get('date_from'),
date_to=False,
initial_bal=True
)._query_get()
init_wheres = [""]
if init_where_clause.strip():
init_wheres.append(init_where_clause.strip())
init_filters = " AND ".join(init_wheres)
filters = init_filters.replace('account_move_line__move_id', 'm').replace('account_move_line', 'l')
sql = ("""
SELECT 0 AS lid,
l.account_id AS account_id,
'' AS ldate, '' AS lcode, 0.0 AS amount_currency,
'' AS lref, 'Initial Balance' AS lname,
COALESCE(SUM(l.credit), 0.0) AS credit,
COALESCE(SUM(l.debit), 0.0) AS debit,
COALESCE(SUM(l.debit), 0) - COALESCE(SUM(l.credit), 0) AS balance,
'' AS lpartner_id, '' AS move_name, '' AS currency_code,
NULL AS currency_id, '' AS partner_name,
'' AS mmove_id, '' AS invoice_id, '' AS invoice_type, '' AS invoice_number
FROM account_move_line l
LEFT JOIN account_move m ON (l.move_id = m.id)
LEFT JOIN res_currency c ON (l.currency_id = c.id)
LEFT JOIN res_partner p ON (l.partner_id = p.id)
JOIN account_journal j ON (l.journal_id = j.id)
JOIN account_account acc ON (l.account_id = acc.id)
WHERE l.account_id IN %s """ + filters + 'GROUP BY l.account_id'
)
params = (tuple(accounts.ids),) + tuple(init_where_params)
cr.execute(sql, params)
for row in cr.dictfetchall():
move_lines[row.pop('account_id')].append(row)
sql_sort = 'l.date, l.move_id'
if sortby == 'sort_journal_partner':
sql_sort = 'j.code, p.name, l.move_id'
# Prepare SQL query based on selected parameters from wizard
tables, where_clause, where_params = MoveLine._query_get()
wheres = [""]
if where_clause.strip():
wheres.append(where_clause.strip())
filters = " AND ".join(wheres).replace('account_move_line__move_id', 'm').replace('account_move_line', 'l')
if not accounts:
journals = self.env['account.journal'].search([('type', '=', 'bank')])
accounts = self.env['account.account']
for journal in journals:
for acc_out in journal.outbound_payment_method_line_ids:
if acc_out.payment_account_id:
accounts += acc_out.payment_account_id
for acc_in in journal.inbound_payment_method_line_ids:
if acc_in.payment_account_id:
accounts += acc_in.payment_account_id
sql = ('''
SELECT l.id AS lid, l.account_id AS account_id, l.date AS ldate, j.code AS lcode,
l.currency_id, l.amount_currency, l.ref AS lref, l.name AS lname,
COALESCE(l.debit, 0) AS debit, COALESCE(l.credit, 0) AS credit,
COALESCE(SUM(l.debit), 0) - COALESCE(SUM(l.credit), 0) AS balance,
m.name AS move_name, c.symbol AS currency_code, p.name AS partner_name
FROM account_move_line l
JOIN account_move m ON (l.move_id = m.id)
LEFT JOIN res_currency c ON (l.currency_id = c.id)
LEFT JOIN res_partner p ON (l.partner_id = p.id)
JOIN account_journal j ON (l.journal_id = j.id)
JOIN account_account acc ON (l.account_id = acc.id)
WHERE l.account_id IN %s ''' + filters + '''
GROUP BY l.id, l.account_id, l.date, j.code, l.currency_id, l.amount_currency,
l.ref, l.name, m.name, c.symbol, p.name
ORDER BY ''' + sql_sort
)
params = (tuple(accounts.ids),) + tuple(where_params)
cr.execute(sql, params)
for row in cr.dictfetchall():
balance = 0
for line in move_lines.get(row['account_id']):
balance += line['debit'] - line['credit']
row['balance'] += balance
move_lines[row.pop('account_id')].append(row)
# Calculate the debit, credit and balance for accounts
account_res = []
for account in accounts:
currency = account.currency_id or self.env.company.currency_id
res = {fn: 0.0 for fn in ['credit', 'debit', 'balance']}
res.update({'code': account.code, 'name': account.name, 'move_lines': move_lines[account.id]})
for line in res.get('move_lines'):
res['debit'] += line['debit']
res['credit'] += line['credit']
res['balance'] = line['balance']
if display_account == 'all':
account_res.append(res)
elif display_account == 'movement' and res.get('move_lines'):
account_res.append(res)
elif display_account == 'not_zero' and not currency.is_zero(res['balance']):
account_res.append(res)
return account_res
@api.model
def _get_report_values(self, docids, data=None):
if not data.get('form') or not self.env.context.get('active_model'):
raise UserError(_("Form content is missing, this report cannot be printed."))
model = self.env.context.get('active_model')
docs = self.env[model].browse(self.env.context.get('active_ids', []))
init_balance = data['form'].get('initial_balance', True)
display_account = data['form'].get('display_account')
sortby = data['form'].get('sortby', 'sort_date')
codes = []
if data['form'].get('journal_ids', False):
codes = [journal.code for journal in self.env['account.journal'].browse(data['form']['journal_ids'])]
accounts = self.env['account.account'].browse(data['form']['account_ids'])
if not accounts:
journals = self.env['account.journal'].search([('type', '=', 'bank')])
accounts = self.env['account.account']
for journal in journals:
for acc_out in journal.outbound_payment_method_line_ids:
if acc_out.payment_account_id:
accounts += acc_out.payment_account_id
for acc_in in journal.inbound_payment_method_line_ids:
if acc_in.payment_account_id:
accounts += acc_in.payment_account_id
record = self.with_context(data['form'].get('comparison_context', {}))._get_account_move_entry(
accounts, init_balance, sortby, display_account
)
return {
'doc_ids': docids,
'doc_model': model,
'data': data['form'],
'docs': docs,
'time': time,
'Accounts': record,
'print_journal': codes,
}

View File

@@ -0,0 +1,127 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="report_bankbook">
<t t-call="web.html_container">
<t t-set="data_report_margin_top" t-value="12"/>
<t t-set="data_report_header_spacing" t-value="9"/>
<t t-set="data_report_dpi" t-value="110"/>
<t t-call="web.internal_layout">
<div class="page">
<h2>Account Bank Book</h2>
</div>
<div class="row mt32">
<div class="col-4">
<strong>Journals:</strong>
<p t-esc="', '.join([ lt or '' for lt in print_journal ])"/>
</div>
<div class="col-2">
<strong>Start Date:</strong>
<p t-esc="data['date_from']"/>
</div>
<div class="col-2">
<strong>End Date:</strong>
<p t-esc="data['date_to']"/>
</div>
<div class="col-2">
<div style="width:70%;">
<strong>Sorted By:</strong>
<p t-if="data['sortby'] == 'sort_date'">Date</p>
<p t-if="data['sortby'] == 'sort_journal_partner'">Journal and Partner</p>
</div>
</div>
<div class="col-2">
<strong>Target Moves:</strong>
<p t-if="data['target_move'] == 'all'">All Entries</p>
<p t-if="data['target_move'] == 'posted'">Posted Entries</p>
</div>
</div>
<br/>
<table class="table table-sm table-reports">
<thead>
<tr class="text-center">
<th>Date</th>
<th>JRNL</th>
<th>Partner</th>
<th>Ref</th>
<th>Move</th>
<th>Entry Label</th>
<th>Debit</th>
<th>Credit</th>
<th>Balance</th>
<th groups="base.group_multi_currency">Currency</th>
</tr>
</thead>
<tbody>
<t t-foreach="Accounts" t-as="account">
<tr style="font-weight: bold;">
<td colspan="6">
<span style="color: white;" t-esc="'..'"/>
<span t-esc="account['code']"/>
<span t-esc="account['name']"/>
</td>
<td class="text-end">
<span t-esc="account['debit']"
t-options="{'widget': 'monetary', 'display_currency': env.company.currency_id}"/>
</td>
<td class="text-end">
<span t-esc="account['credit']"
t-options="{'widget': 'monetary', 'display_currency': env.company.currency_id}"/>
</td>
<td class="text-end">
<span t-esc="account['balance']"
t-options="{'widget': 'monetary', 'display_currency': env.company.currency_id}"/>
</td>
<td groups="base.group_multi_currency"/>
</tr>
<tr t-foreach="account['move_lines']" t-as="line">
<td>
<span t-esc="line['ldate']"/>
</td>
<td>
<span t-esc="line['lcode']"/>
</td>
<td>
<span t-esc="line['partner_name']"/>
</td>
<td>
<span t-if="line['lref']" t-esc="line['lref']"/>
</td>
<td>
<span t-esc="line['move_name']"/>
</td>
<td>
<span t-esc="line['lname']"/>
</td>
<td class="text-end">
<span t-esc="line['debit']"
t-options="{'widget': 'monetary', 'display_currency': env.company.currency_id}"/>
</td>
<td class="text-end">
<span t-esc="line['credit']"
t-options="{'widget': 'monetary', 'display_currency': env.company.currency_id}"/>
</td>
<td class="text-end">
<span t-esc="line['balance']"
t-options="{'widget': 'monetary', 'display_currency': env.company.currency_id}"/>
</td>
<td t-if="line['amount_currency']" class="text-end"
groups="base.group_multi_currency">
<span t-esc="line['amount_currency'] if line['amount_currency'] > 0.00 else ''"/>
<span t-esc="line['currency_code'] if line['amount_currency'] > 0.00 else ''"/>
</td>
</tr>
</t>
</tbody>
</table>
</t>
</t>
</template>
</odoo>

View File

@@ -0,0 +1,156 @@
import time
from odoo import api, models, _
from odoo.exceptions import UserError
class ReportCashBook(models.AbstractModel):
_name = 'report.om_account_daily_reports.report_cashbook'
_description = 'Cash Book'
def _get_account_move_entry(self, accounts, init_balance, sortby, display_account):
"""
:param:
accounts: the recordset of accounts
init_balance: boolean value of initial_balance
sortby: sorting by date or partner and journal
display_account: type of account(receivable, payable and both)
Returns a dictionary of accounts with following key and value {
'code': account code,
'name': account name,
'debit': sum of total debit amount,
'credit': sum of total credit amount,
'balance': total balance,
'amount_currency': sum of amount_currency,
'move_lines': list of move line
}
"""
cr = self.env.cr
MoveLine = self.env['account.move.line']
move_lines = {x: [] for x in accounts.ids}
# Prepare initial sql query and Get the initial move lines
if init_balance:
init_tables, init_where_clause, init_where_params = MoveLine.with_context(date_from=self.env.context.get('date_from'), date_to=False,initial_bal=True)._query_get()
init_wheres = [""]
if init_where_clause.strip():
init_wheres.append(init_where_clause.strip())
init_filters = " AND ".join(init_wheres)
filters = init_filters.replace('account_move_line__move_id', 'm').replace('account_move_line', 'l')
sql = ("""
SELECT 0 AS lid,
l.account_id AS account_id, '' AS ldate, '' AS lcode,
0.0 AS amount_currency,'' AS lref,'Initial Balance' AS lname,
COALESCE(SUM(l.credit),0.0) AS credit,COALESCE(SUM(l.debit),0.0) AS debit,COALESCE(SUM(l.debit),0) - COALESCE(SUM(l.credit),0) as balance,
'' AS lpartner_id,'' AS move_name, '' AS currency_code,NULL AS currency_id,'' AS partner_name,
'' AS mmove_id, '' AS invoice_id, '' AS invoice_type,'' AS invoice_number
FROM account_move_line l
LEFT JOIN account_move m ON (l.move_id = m.id)
LEFT JOIN res_currency c ON (l.currency_id = c.id)
LEFT JOIN res_partner p ON (l.partner_id = p.id)
JOIN account_journal j ON (l.journal_id = j.id)
JOIN account_account acc ON (l.account_id = acc.id)
WHERE l.account_id IN %s""" + filters + 'GROUP BY l.account_id')
params = (tuple(accounts.ids),) + tuple(init_where_params)
cr.execute(sql, params)
for row in cr.dictfetchall():
move_lines[row.pop('account_id')].append(row)
sql_sort = 'l.date, l.move_id'
if sortby == 'sort_journal_partner':
sql_sort = 'j.code, p.name, l.move_id'
# Prepare sql query base on selected parameters from wizard
tables, where_clause, where_params = MoveLine._query_get()
wheres = [""]
if where_clause.strip():
wheres.append(where_clause.strip())
filters = " AND ".join(wheres)
filters = filters.replace('account_move_line__move_id', 'm').replace('account_move_line', 'l')
if not accounts:
journals = self.env['account.journal'].search([('type', '=', 'cash')])
accounts = self.env['account.account']
for journal in journals:
for acc_out in journal.outbound_payment_method_line_ids:
if acc_out.payment_account_id:
accounts += acc_out.payment_account_id
for acc_in in journal.inbound_payment_method_line_ids:
if acc_in.payment_account_id:
accounts += acc_in.payment_account_id
sql = ('''SELECT l.id AS lid, l.account_id AS account_id, l.date AS ldate, j.code AS lcode, l.currency_id, l.amount_currency, l.ref AS lref, l.name AS lname, COALESCE(l.debit,0) AS debit, COALESCE(l.credit,0) AS credit, COALESCE(SUM(l.debit),0) - COALESCE(SUM(l.credit), 0) AS balance,\
m.name AS move_name, c.symbol AS currency_code, p.name AS partner_name\
FROM account_move_line l\
JOIN account_move m ON (l.move_id=m.id)\
LEFT JOIN res_currency c ON (l.currency_id=c.id)\
LEFT JOIN res_partner p ON (l.partner_id=p.id)\
JOIN account_journal j ON (l.journal_id=j.id)\
JOIN account_account acc ON (l.account_id = acc.id) \
WHERE l.account_id IN %s ''' + filters + ''' GROUP BY l.id, l.account_id, l.date, j.code, l.currency_id, l.amount_currency, l.ref, l.name, m.name, c.symbol, p.name ORDER BY ''' + sql_sort)
params = (tuple(accounts.ids),) + tuple(where_params)
cr.execute(sql, params)
for row in cr.dictfetchall():
balance = 0
for line in move_lines.get(row['account_id']):
balance += line['debit'] - line['credit']
row['balance'] += balance
move_lines[row.pop('account_id')].append(row)
# Calculate the debit, credit and balance for Accounts
account_res = []
for account in accounts:
currency = account.currency_id and account.currency_id or self.env.company.currency_id
res = dict((fn, 0.0) for fn in ['credit', 'debit', 'balance'])
res['code'] = account.code
res['name'] = account.name
res['move_lines'] = move_lines[account.id]
for line in res.get('move_lines'):
res['debit'] += line['debit']
res['credit'] += line['credit']
res['balance'] = line['balance']
if display_account == 'all':
account_res.append(res)
if display_account == 'movement' and res.get('move_lines'):
account_res.append(res)
if display_account == 'not_zero' and not currency.is_zero(res['balance']):
account_res.append(res)
return account_res
@api.model
def _get_report_values(self, docids, data=None):
if not data.get('form') or not self.env.context.get('active_model'):
raise UserError(_("Form content is missing, this report cannot be printed."))
model = self.env.context.get('active_model')
docs = self.env[model].browse(self.env.context.get('active_ids', []))
init_balance = data['form'].get('initial_balance', True)
display_account = data['form'].get('display_account')
sortby = data['form'].get('sortby', 'sort_date')
codes = []
if data['form'].get('journal_ids', False):
codes = [journal.code for journal in
self.env['account.journal'].browse(data['form']['journal_ids'])]
account_ids = data['form']['account_ids']
accounts = self.env['account.account'].browse(account_ids)
if not accounts:
journals = self.env['account.journal'].search([('type', '=', 'cash')])
accounts = self.env['account.account']
for journal in journals:
for acc_out in journal.outbound_payment_method_line_ids:
if acc_out.payment_account_id:
accounts += acc_out.payment_account_id
for acc_in in journal.inbound_payment_method_line_ids:
if acc_in.payment_account_id:
accounts += acc_in.payment_account_id
record = self.with_context(data['form'].get('comparison_context', {}))._get_account_move_entry(accounts, init_balance, sortby, display_account)
return {
'doc_ids': docids,
'doc_model': model,
'data': data['form'],
'docs': docs,
'time': time,
'Accounts': record,
'print_journal': codes,
}

View File

@@ -0,0 +1,128 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="report_cashbook">
<t t-call="web.html_container">
<t t-set="data_report_margin_top" t-value="12"/>
<t t-set="data_report_header_spacing" t-value="9"/>
<t t-set="data_report_dpi" t-value="110"/>
<t t-call="web.internal_layout">
<div class="page">
<h2>Account Cash Book</h2>
</div>
<div class="row mt32">
<div class="col-4">
<strong>Journals:</strong>
<p t-esc="', '.join([ lt or '' for lt in print_journal ])"/>
</div>
<div class="col-2">
<strong>Start Date:</strong>
<p t-esc="data['date_from']"/>
</div>
<div class="col-2">
<strong>End Date:</strong>
<p t-esc="data['date_to']"/>
</div>
<div class="col-2">
<div style="width:70%;">
<strong>Sorted By:</strong>
<p t-if="data['sortby'] == 'sort_date'">Date</p>
<p t-if="data['sortby'] == 'sort_journal_partner'">Journal and Partner</p>
</div>
</div>
<div class="col-2">
<strong>Target Moves:</strong>
<p t-if="data['target_move'] == 'all'">All Entries</p>
<p t-if="data['target_move'] == 'posted'">Posted Entries</p>
</div>
</div>
<br/>
<table class="table table-sm table-reports">
<thead>
<tr class="text-center">
<th>Date</th>
<th>JRNL</th>
<th>Partner</th>
<th>Ref</th>
<th>Move</th>
<th>Entry Label</th>
<th>Debit</th>
<th>Credit</th>
<th>Balance</th>
<th groups="base.group_multi_currency">Currency</th>
</tr>
</thead>
<tbody>
<t t-foreach="Accounts" t-as="account">
<tr style="font-weight: bold;">
<td colspan="6">
<span style="color: white;" t-esc="'..'"/>
<span t-esc="account['code']"/>
<span t-esc="account['name']"/>
</td>
<td class="text-end">
<span t-esc="account['debit']"
t-options="{'widget': 'monetary', 'display_currency': env.company.currency_id}"/>
</td>
<td class="text-end">
<span t-esc="account['credit']"
t-options="{'widget': 'monetary', 'display_currency': env.company.currency_id}"/>
</td>
<td class="text-end">
<span t-esc="account['balance']"
t-options="{'widget': 'monetary', 'display_currency': env.company.currency_id}"/>
</td>
<td groups="base.group_multi_currency"/>
</tr>
<tr t-foreach="account['move_lines']" t-as="line">
<td>
<span t-esc="line['ldate']"/>
</td>
<td>
<span t-esc="line['lcode']"/>
</td>
<td>
<span t-esc="line['partner_name']"/>
</td>
<td>
<span t-if="line['lref']" t-esc="line['lref']"/>
</td>
<td>
<span t-esc="line['move_name']"/>
</td>
<td>
<span t-esc="line['lname']"/>
</td>
<td class="text-end">
<span t-esc="line['debit']"
t-options="{'widget': 'monetary', 'display_currency': env.company.currency_id}"/>
</td>
<td class="text-end">
<span t-esc="line['credit']"
t-options="{'widget': 'monetary', 'display_currency': env.company.currency_id}"/>
</td>
<td class="text-end">
<span t-esc="line['balance']"
t-options="{'widget': 'monetary', 'display_currency': env.company.currency_id}"/>
</td>
<td t-if="line['amount_currency']" class="text-end"
groups="base.group_multi_currency">
<span t-esc="line['amount_currency'] if line['amount_currency'] > 0.00 else ''"/>
<span t-esc="line['currency_code'] if line['amount_currency'] > 0.00 else ''"/>
</td>
</tr>
</t>
</tbody>
</table>
</t>
</t>
</template>
</odoo>

View File

@@ -0,0 +1,113 @@
import time
from odoo import api, models, fields, _
from odoo.exceptions import UserError
from datetime import timedelta, datetime
class ReportDayBook(models.AbstractModel):
_name = 'report.om_account_daily_reports.report_daybook'
_description = 'Day Book'
def _get_account_move_entry(self, accounts, form_data, date):
cr = self.env.cr
MoveLine = self.env['account.move.line']
init_wheres = [""]
init_tables, init_where_clause, init_where_params =MoveLine._query_get()
if init_where_clause.strip():
init_wheres.append(init_where_clause.strip())
if form_data['target_move'] == 'posted':
target_move = "AND m.state = 'posted'"
else:
target_move = ''
sql = ("""
SELECT 0 AS lid,
l.account_id AS account_id, l.date AS ldate, j.code AS lcode,
l.amount_currency AS amount_currency,l.ref AS lref,l.name AS lname,
COALESCE(SUM(l.credit),0.0) AS credit,COALESCE(l.debit,0) AS debit,COALESCE(SUM(l.debit),0) - COALESCE(SUM(l.credit),0) as balance,
m.name AS move_name,
c.symbol AS currency_code,
p.name AS lpartner_id,
m.id AS mmove_id
FROM
account_move_line l
LEFT JOIN account_move m ON (l.move_id = m.id)
LEFT JOIN res_currency c ON (l.currency_id = c.id)
LEFT JOIN res_partner p ON (l.partner_id = p.id)
JOIN account_journal j ON (l.journal_id = j.id)
JOIN account_account acc ON (l.account_id = acc.id)
WHERE
l.account_id IN %s
AND l.journal_id IN %s """ + target_move + """
AND l.date = %s
GROUP BY
l.id,
l.account_id,
l.date,
m.name,
m.id,
p.name,
c.symbol,
j.code,
l.ref
ORDER BY
l.date DESC
""")
where_params = (tuple(accounts.ids), tuple(form_data['journal_ids']), date)
cr.execute(sql, where_params)
data = cr.dictfetchall()
res = {}
debit = credit = balance = 0.00
for line in data:
debit += line['debit']
credit += line['credit']
balance += line['balance']
res['debit'] = debit
res['credit'] = credit
res['balance'] = balance
res['lines'] = data
return res
@api.model
def _get_report_values(self, docids, data=None):
if not data.get('form') or not self.env.context.get('active_model'):
raise UserError(_("Form content is missing, this report cannot be printed."))
model = self.env.context.get('active_model')
docs = self.env[model].browse(self.env.context.get('active_ids', []))
form_data = data['form']
date_from = fields.Date.from_string(form_data['date_from'])
date_to = fields.Date.from_string(form_data['date_to'])
codes = []
if data['form'].get('journal_ids', False):
codes = [journal.code for journal in
self.env['account.journal'].browse(data['form']['journal_ids'])]
accounts = self.env['account.account'].search([])
dates = []
record = []
days_total = date_to - date_from
for day in range(days_total.days + 1):
dates.append(date_from + timedelta(days=day))
for date in dates:
date_data = str(date)
accounts_res = self.with_context(data['form'].get('comparison_context', {}))._get_account_move_entry(accounts, form_data, date_data)
if accounts_res['lines']:
record.append({
'date': date,
'debit': accounts_res['debit'],
'credit': accounts_res['credit'],
'balance': accounts_res['balance'],
'move_lines': accounts_res['lines']
})
return {
'doc_ids': docids,
'doc_model': model,
'data': data['form'],
'docs': docs,
'time': time,
'Accounts': record,
'print_journal': codes,
}

View File

@@ -0,0 +1,113 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="report_daybook">
<t t-call="web.html_container">
<t t-set="data_report_margin_top" t-value="12"/>
<t t-set="data_report_header_spacing" t-value="9"/>
<t t-set="data_report_dpi" t-value="110"/>
<t t-call="web.internal_layout">
<div class="page">
<h2>Account Day Book</h2>
<div class="row mt32">
<div class="col-4">
<strong>Journals:</strong>
<p t-esc="', '.join([ lt or '' for lt in print_journal ])"/>
</div>
<div class="col-3">
<strong>Start Date:</strong>
<p t-esc="data['date_from']"/>
</div>
<div class="col-3">
<strong>End Date:</strong>
<p t-esc="data['date_to']"/>
</div>
<div class="col-3">
<strong>Target Moves:</strong>
<p t-if="data['target_move'] == 'all'">All Entries</p>
<p t-if="data['target_move'] == 'posted'">Posted Entries</p>
</div>
</div>
<table class="table table-sm table-reports">
<thead>
<tr class="text-center">
<th>Date</th>
<th>JRNL</th>
<th>Partner</th>
<th>Ref</th>
<th>Move</th>
<th>Entry Label</th>
<th>Debit</th>
<th>Credit</th>
<th>Balance</th>
<th groups="base.group_multi_currency">Currency</th>
</tr>
</thead>
<tbody>
<t t-foreach="Accounts" t-as="account">
<tr style="font-weight: bold;">
<td colspan="6">
<span style="color: white;" t-esc="'..'"/>
<span t-esc="account['date']"/>
</td>
<td class="text-end">
<span t-esc="account['debit']"
t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
<td class="text-end">
<span t-esc="account['credit']"
t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
<td class="text-end">
<span t-esc="account['balance']"
t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
<td groups="base.group_multi_currency"/>
</tr>
<tr t-foreach="account['move_lines']" t-as="line">
<td>
<span t-esc="line['ldate']"/>
</td>
<td>
<span t-esc="line['lcode']"/>
</td>
<td>
<span t-esc="line['lpartner_id']"/>
</td>
<td>
<span t-if="line['lref']" t-esc="line['lref']"/>
</td>
<td>
<span t-esc="line['move_name']"/>
</td>
<td>
<span t-esc="line['lname']"/>
</td>
<td class="text-end">
<span t-esc="line['debit']"
t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
<td class="text-end">
<span t-esc="line['credit']"
t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
<td class="text-end">
<span t-esc="line['balance']"
t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"/>
</td>
<td class="text-end" groups="base.group_multi_currency">
<span t-esc="line['amount_currency'] if line['amount_currency'] and line['amount_currency'] > 0.00 else ''"/>
<span t-esc="line['currency_code'] if line['amount_currency'] and line['amount_currency'] > 0.00 else ''"/>
</td>
</tr>
</t>
</tbody>
</table>
</div>
</t>
</t>
</template>
</odoo>

View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="action_report_day_book" model="ir.actions.report">
<field name="name">Day Book</field>
<field name="model">account.daybook.report</field>
<field name="report_type">qweb-pdf</field>
<field name="report_name">om_account_daily_reports.report_daybook</field>
<field name="report_file">om_account_daily_reports.report_daybook</field>
</record>
<record id="action_report_cash_book" model="ir.actions.report">
<field name="name">Cash Book</field>
<field name="model">account.cashbook.report</field>
<field name="report_type">qweb-pdf</field>
<field name="report_name">om_account_daily_reports.report_cashbook</field>
<field name="report_file">om_account_daily_reports.report_cashbook</field>
</record>
<record id="action_report_bank_book" model="ir.actions.report">
<field name="name">Bank Book</field>
<field name="model">account.bankbook.report</field>
<field name="report_type">qweb-pdf</field>
<field name="report_name">om_account_daily_reports.report_bankbook</field>
<field name="report_file">om_account_daily_reports.report_bankbook</field>
</record>
</data>
</odoo>

View File

@@ -0,0 +1,4 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_account_daybook_report,access_account_daybook_report,model_account_daybook_report,account.group_account_manager,1,1,1,1
access_account_cashbook_report,access_account_cashbook_report,model_account_cashbook_report,account.group_account_manager,1,1,1,1
access_account_bankbook_report,access_account_bankbook_report,model_account_bankbook_report,account.group_account_manager,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_account_daybook_report access_account_daybook_report model_account_daybook_report account.group_account_manager 1 1 1 1
3 access_account_cashbook_report access_account_cashbook_report model_account_cashbook_report account.group_account_manager 1 1 1 1
4 access_account_bankbook_report access_account_bankbook_report model_account_bankbook_report account.group_account_manager 1 1 1 1

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -0,0 +1,55 @@
<section class="oe_container oe_dark">
<div class="col-md-12">
<h2 class="oe_slogan" style="font-size: 35px;color:#2C0091"><b>Odoo 19 Daily Financial Reports</b></h2>
</div>
</section>
<section class="oe_container">
<div class="oe_row oe_spaced">
<div style="text-align:center;">
<p class="fa fa-hand-o-right" style="color:CRIMSON;font-size: 25px;">
<span style="color:#2dd280;font-size: 15px;">Day Book Report</span>
</p><br/>
<p class="fa fa-hand-o-right" style="color:CRIMSON;font-size: 25px;">
<span style="color:#2dd280;font-size: 15px;">Bank Book Report</span>
</p><br/>
<p class="fa fa-hand-o-right" style="color:CRIMSON;font-size: 25px;">
<span style="color:#2dd280;font-size: 15px;">Cash Book Report</span>
</p><br/>
</div>
<br/>
</div>
</section>
<hr style="width: 100%;height: 4px;background: #2C0091;margin: 0px 0px;">
<hr style="width: 100%;height: 4px;background: #148963;margin: 0px 0px;">
<section class="oe_container oe_dark">
<div class="oe_row ">
<div class="oe_slogan text-center">
<img src="odoo_mates.png"/>
<div style="color:#269900;">
<h3 style="color:#2C0091;font-size: 25px;">If you need any help or want more features, just contact us:</h3><br>
<h3 style="color:#2C0091;font-size: 20px;">Email: <a href="odoomates@gmail.com">odoomates@gmail.com</a> <br></h3>
</div>
<div class="oe_slogan">
<h2>
<a target="_blank" href="https://www.facebook.com/odoomate/" target="new">
<i class="fa fa-facebook-square" style="font-size:38px;"></i>
</a>
<a target="_blank" href="https://twitter.com/odoomates/" target="new">
<i class="fa fa-twitter" style="font-size:38px;"></i>
</a>
<a href="#" target="_blank">
<i class="fa fa-linkedin" style="font-size:38px;"></i>
</a>
<a target="_blank" href="https://www.youtube.com/channel/UCVKlUZP7HAhdQgs-9iTJklQ">
<i class="fa fa-youtube-play" style="font-size:38px;"></i>
</a>
</h2>
</div>
</div>
</div>
</section>
<hr style="width: 100%;height: 4px;background: #148963;margin: 0px 0px;">
<hr style="width: 100%;height: 4px;background: #2C0091;margin: 0px 0px;">

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<menuitem id="menu_finance_daily_reports"
name="Daily Reports"
sequence="35"
parent="account.menu_finance_reports"/>
</data>
</odoo>

View File

@@ -0,0 +1,6 @@
# -*- coding: utf-8 -*-
from . import account_daybook_report
from . import account_cashbook_report
from . import account_bankbook_report

Some files were not shown because too many files have changed in this diff Show More