Nicolas JEUDY
3 years ago
13 changed files with 311 additions and 0 deletions
-
102mis_builder_analytic_cash_flow/README.rst
-
2mis_builder_analytic_cash_flow/__init__.py
-
21mis_builder_analytic_cash_flow/__manifest__.py
-
1mis_builder_analytic_cash_flow/models/__init__.py
-
15mis_builder_analytic_cash_flow/models/mis_cash_flow_forecast_line.py
-
1mis_builder_analytic_cash_flow/readme/CONTRIBUTORS.rst
-
5mis_builder_analytic_cash_flow/readme/DESCRIPTION.rst
-
3mis_builder_analytic_cash_flow/readme/ROADMAP.rst
-
4mis_builder_analytic_cash_flow/readme/USAGE.rst
-
1mis_builder_analytic_cash_flow/report/__init__.py
-
81mis_builder_analytic_cash_flow/report/mis_cash_flow.py
-
37mis_builder_analytic_cash_flow/report/mis_cash_flow_views.xml
-
38mis_builder_analytic_cash_flow/views/mis_cash_flow_forecast_line_views.xml
@ -0,0 +1,102 @@ |
|||
===================== |
|||
MIS Builder Cash Flow |
|||
===================== |
|||
|
|||
.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
|||
!! This file is generated by oca-gen-addon-readme !! |
|||
!! changes will be overwritten. !! |
|||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
|||
|
|||
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png |
|||
:target: https://odoo-community.org/page/development-status |
|||
:alt: Beta |
|||
.. |badge2| image:: https://img.shields.io/badge/licence-LGPL--3-blue.png |
|||
:target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html |
|||
:alt: License: LGPL-3 |
|||
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Faccount--financial--reporting-lightgray.png?logo=github |
|||
:target: https://github.com/OCA/account-financial-reporting/tree/12.0/mis_builder_cash_flow |
|||
:alt: OCA/account-financial-reporting |
|||
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png |
|||
:target: https://translation.odoo-community.org/projects/account-financial-reporting-12-0/account-financial-reporting-12-0-mis_builder_cash_flow |
|||
:alt: Translate me on Weblate |
|||
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png |
|||
:target: https://runbot.odoo-community.org/runbot/91/12.0 |
|||
:alt: Try me on Runbot |
|||
|
|||
|badge1| |badge2| |badge3| |badge4| |badge5| |
|||
|
|||
This module allows you to have a cash flow forecast. |
|||
The forecast is based on two types of date: |
|||
|
|||
* Accounting entries: Due date field instead of Date |
|||
* Forecast lines: manual lines created that forecast in/out cashflow moves. |
|||
|
|||
**Table of contents** |
|||
|
|||
.. contents:: |
|||
:local: |
|||
|
|||
Usage |
|||
===== |
|||
|
|||
To use this module, you need to: |
|||
|
|||
#. Go to Accounting > Reports > MIS Reporting > MIS Reports and choose "Cash Flow" report |
|||
#. You can add forecast lines on Accounting > Reports > MIS Reporting > Cash Flow Forecast Line |
|||
|
|||
Known issues / Roadmap |
|||
====================== |
|||
|
|||
The mis_builder `roadmap <https://github.com/OCA/mis-builder/issues?q=is%3Aopen+is%3Aissue+label%3Aenhancement>`_ |
|||
and `known issues <https://github.com/OCA/mis-builder/issues?q=is%3Aopen+is%3Aissue+label%3Abug>`_ can |
|||
be found on GitHub. |
|||
|
|||
Bug Tracker |
|||
=========== |
|||
|
|||
Bugs are tracked on `GitHub Issues <https://github.com/OCA/account-financial-reporting/issues>`_. |
|||
In case of trouble, please check there if your issue has already been reported. |
|||
If you spotted it first, help us smashing it by providing a detailed and welcomed |
|||
`feedback <https://github.com/OCA/account-financial-reporting/issues/new?body=module:%20mis_builder_cash_flow%0Aversion:%2012.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_. |
|||
|
|||
Do not contact contributors directly about support or help with technical issues. |
|||
|
|||
Credits |
|||
======= |
|||
|
|||
Authors |
|||
~~~~~~~ |
|||
|
|||
* ADHOC SA |
|||
|
|||
Contributors |
|||
~~~~~~~~~~~~ |
|||
|
|||
* Juan José Scarafía <jjs@adhoc.com.ar> |
|||
* Gonzalo Ruzafa <gr@adhoc.com.ar> |
|||
* Alberto Martín <alberto.martin@guadaltech.es> |
|||
|
|||
Maintainers |
|||
~~~~~~~~~~~ |
|||
|
|||
This module is maintained by the OCA. |
|||
|
|||
.. image:: https://odoo-community.org/logo.png |
|||
:alt: Odoo Community Association |
|||
:target: https://odoo-community.org |
|||
|
|||
OCA, or the Odoo Community Association, is a nonprofit organization whose |
|||
mission is to support the collaborative development of Odoo features and |
|||
promote its widespread use. |
|||
|
|||
.. |maintainer-jjscarafia| image:: https://github.com/jjscarafia.png?size=40px |
|||
:target: https://github.com/jjscarafia |
|||
:alt: jjscarafia |
|||
|
|||
Current `maintainer <https://odoo-community.org/page/maintainer-role>`__: |
|||
|
|||
|maintainer-jjscarafia| |
|||
|
|||
This module is part of the `OCA/account-financial-reporting <https://github.com/OCA/account-financial-reporting/tree/12.0/mis_builder_cash_flow>`_ project on GitHub. |
|||
|
|||
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. |
@ -0,0 +1,2 @@ |
|||
from . import models |
|||
from . import report |
@ -0,0 +1,21 @@ |
|||
# Copyright 2021 Nicolas JEUDY |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). |
|||
|
|||
{ |
|||
'name': 'MIS Builder Analytic Cash Flow', |
|||
'version': '12.0.1.0.0', |
|||
'license': 'LGPL-3', |
|||
'author': 'Nicolas JEUDY, ' |
|||
'Odoo Community Association (OCA)', |
|||
'website': 'https://github.com/OCA/mis-builder', |
|||
'depends': [ |
|||
'mis_builder_cash_flow', |
|||
], |
|||
'data': [ |
|||
'report/mis_cash_flow_views.xml', |
|||
'views/mis_cash_flow_forecast_line_views.xml', |
|||
], |
|||
'installable': True, |
|||
'maintainers': ['njeudy'], |
|||
'development_status': 'Beta', |
|||
} |
@ -0,0 +1 @@ |
|||
from . import mis_cash_flow_forecast_line |
@ -0,0 +1,15 @@ |
|||
from odoo import fields, models, api, _ |
|||
from odoo.exceptions import ValidationError |
|||
|
|||
|
|||
class MisCashFlowForecastLine(models.Model): |
|||
|
|||
_inherit = 'mis.cash_flow.forecast_line' |
|||
|
|||
analytic_account_id = fields.Many2one( |
|||
comodel_name='account.analytic.account', |
|||
string='Analytic Account', |
|||
required=True, |
|||
help='The account of the forecast line is only for informative ' |
|||
'purpose', |
|||
) |
@ -0,0 +1 @@ |
|||
* Nicolas JEUDY <https://github.com/njeudy> |
@ -0,0 +1,5 @@ |
|||
This module allows you to have a cash flow forecast with account analytic filter. |
|||
The forecast is based on two types of date: |
|||
|
|||
* Accounting entries: Due date field instead of Date |
|||
* Forecast lines: manual lines created that forecast in/out cashflow moves. |
@ -0,0 +1,3 @@ |
|||
The mis_builder `roadmap <https://github.com/OCA/mis-builder/issues?q=is%3Aopen+is%3Aissue+label%3Aenhancement>`_ |
|||
and `known issues <https://github.com/OCA/mis-builder/issues?q=is%3Aopen+is%3Aissue+label%3Abug>`_ can |
|||
be found on GitHub. |
@ -0,0 +1,4 @@ |
|||
To use this module, you need to: |
|||
|
|||
#. Go to Accounting > Reports > MIS Reporting > MIS Reports and choose "Cash Flow" report |
|||
#. You can add forecast lines on Accounting > Reports > MIS Reporting > Cash Flow Forecast Line |
@ -0,0 +1 @@ |
|||
from . import mis_cash_flow |
@ -0,0 +1,81 @@ |
|||
from odoo import api, fields, models, tools |
|||
from psycopg2.extensions import AsIs |
|||
|
|||
|
|||
class MisCashFlow(models.Model): |
|||
|
|||
_inherit = 'mis.cash_flow' |
|||
|
|||
|
|||
analytic_account_id = fields.Many2one( |
|||
comodel_name='account.analytic.account', |
|||
string='Analytic Account', |
|||
auto_join=True, |
|||
index=True, |
|||
readonly=True, |
|||
) |
|||
|
|||
|
|||
@api.model_cr |
|||
def init(self): |
|||
account_type_receivable = self.env.ref( |
|||
'account.data_account_type_receivable') |
|||
query = """ |
|||
SELECT |
|||
-- we use negative id to avoid duplicates and we don't use |
|||
-- ROW_NUMBER() because the performance was very poor |
|||
-aml.id as id, |
|||
CAST('move_line' AS varchar) as line_type, |
|||
aml.id as move_line_id, |
|||
aml.account_id as account_id, |
|||
aml.analytic_account_id as analytic_account_id, |
|||
aml.debit as debit, |
|||
aml.credit as credit, |
|||
aml.reconciled as reconciled, |
|||
aml.full_reconcile_id as full_reconcile_id, |
|||
aml.partner_id as partner_id, |
|||
aml.company_id as company_id, |
|||
aml.user_type_id as user_type_id, |
|||
aml.name as name, |
|||
aml.date_maturity as date |
|||
FROM account_move_line as aml |
|||
UNION ALL |
|||
SELECT |
|||
fl.id as id, |
|||
CAST('forecast_line' AS varchar) as line_type, |
|||
Null as move_line_id, |
|||
fl.account_id as account_id, |
|||
fl.analytic_account_id as analytic_account_id, |
|||
CASE |
|||
WHEN fl.balance > 0 |
|||
THEN fl.balance |
|||
ELSE 0.0 |
|||
END AS debit, |
|||
CASE |
|||
WHEN fl.balance < 0 |
|||
THEN -fl.balance |
|||
ELSE 0.0 |
|||
END AS credit, |
|||
Null as reconciled, |
|||
Null as full_reconcile_id, |
|||
fl.partner_id as partner_id, |
|||
fl.company_id as company_id, |
|||
%i as user_type_id, |
|||
fl.name as name, |
|||
fl.date as date |
|||
FROM mis_cash_flow_forecast_line as fl |
|||
""" % account_type_receivable.id |
|||
tools.drop_view_if_exists(self.env.cr, self._table) |
|||
self._cr.execute( |
|||
'CREATE OR REPLACE VIEW %s AS %s', |
|||
(AsIs(self._table), AsIs(query)) |
|||
) |
|||
|
|||
@api.multi |
|||
def action_open_related_line(self): |
|||
self.ensure_one() |
|||
if self.line_type == 'move_line': |
|||
return self.move_line_id.get_formview_action() |
|||
else: |
|||
return self.env['mis.cash_flow.forecast_line'].browse( |
|||
self.id).get_formview_action() |
@ -0,0 +1,37 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
|
|||
<record model="ir.ui.view" id="mis_analytic_cash_flow_tree_view"> |
|||
<field name="name">mis_analytic_cash_flow_tree_view</field> |
|||
<field name="model">mis.cash_flow</field> |
|||
<field name="inherit_id" ref="mis_builder_cash_flow.mis_cash_flow_tree_view"/> |
|||
<field name="arch" type="xml"> |
|||
<xpath expr="//field[@name='account_id']" position="after"> |
|||
<field name="analytic_account_id"/> |
|||
</xpath> |
|||
</field> |
|||
</record> |
|||
|
|||
<record model="ir.ui.view" id="mis_analytic_cash_flow_form_view"> |
|||
<field name="name">mis_analytic_cash_flow_form_view</field> |
|||
<field name="model">mis.cash_flow</field> |
|||
<field name="inherit_id" ref="mis_builder_cash_flow.mis_cash_flow_form_view"/> |
|||
<field name="arch" type="xml"> |
|||
<xpath expr="//field[@name='account_id']" position="after"> |
|||
<field name="analytic_account_id"/> |
|||
</xpath> |
|||
</field> |
|||
</record> |
|||
|
|||
<record model="ir.ui.view" id="mis_analytic_cash_flow_search_view"> |
|||
<field name="name">mis_cash_flow_search_view</field> |
|||
<field name="model">mis.cash_flow</field> |
|||
<field name="inherit_id" ref="mis_builder_cash_flow.mis_cash_flow_search_view"/> |
|||
<field name="arch" type="xml"> |
|||
<xpath expr="//field[@name='account_id']" position="after"> |
|||
<field name="analytic_account_id"/> |
|||
</xpath> |
|||
</field> |
|||
</record> |
|||
|
|||
</odoo> |
@ -0,0 +1,38 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
|
|||
<odoo> |
|||
|
|||
<record model="ir.ui.view" id="mis_analytic_cash_flow_forecast_line_view_form"> |
|||
<field name="name">mis_analytic_cash_flow_forecast_line_view_form</field> |
|||
<field name="model">mis.cash_flow.forecast_line</field> |
|||
<field name="inherit_id" ref="mis_builder_cash_flow.mis_cash_flow_forecast_line_view_form"/> |
|||
<field name="arch" type="xml"> |
|||
<xpath expr="//field[@name='account_id']" position="after"> |
|||
<field name="analytic_account_id" domain="[('company_id', '=', company_id)]"/> |
|||
</xpath> |
|||
</field> |
|||
</record> |
|||
|
|||
<record model="ir.ui.view" id="mis_analytic_cash_flow_forecast_line_view_search"> |
|||
<field name="name">mis_analytic_cash_flow_forecast_line_view_search</field> |
|||
<field name="model">mis.cash_flow.forecast_line</field> |
|||
<field name="inherit_id" ref="mis_builder_cash_flow.mis_cash_flow_forecast_line_view_search"/> |
|||
<field name="arch" type="xml"> |
|||
<xpath expr="//field[@name='account_id']" position="after"> |
|||
<field name="analytic_account_id"/> |
|||
</xpath> |
|||
</field> |
|||
</record> |
|||
|
|||
<record model="ir.ui.view" id="mis_analytic_cash_flow_forecast_line_view_tree"> |
|||
<field name="name">mis_analitic_cash_flow_forecast_line_view_tree</field> |
|||
<field name="model">mis.cash_flow.forecast_line</field> |
|||
<field name="inherit_id" ref="mis_builder_cash_flow.mis_cash_flow_forecast_line_view_tree"/> |
|||
<field name="arch" type="xml"> |
|||
<xpath expr="//field[@name='account_id']" position="after"> |
|||
<field name="analytic_account_id"/> |
|||
</xpath> |
|||
</field> |
|||
</record> |
|||
|
|||
</odoo> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue