OCA / account-budgeting

38 stars 113 forks source link

[14.0][ADD] budget_control (basic modules) #51

Open kittiu opened 3 years ago

kittiu commented 3 years ago

This module contain followings

OCA-git-bot commented 3 years ago

Hi @kittiu! Thank you very much for this contribution. As the addon you are improving does not have a declared maintainer, I take the opportunity to mention that you can consider adopting it. To do so, please read the maintainer role description, and, if interested, create a pull request to add your GitHub login to the maintainers key of the addon manifest.

mileo commented 3 years ago

Nice, can you add an icon to the main menu?

mileo commented 3 years ago

Could you also add mis builder to oca dependencies?

kittiu commented 3 years ago

@mileo thanks for review.

mileo commented 2 years ago

Hi @kittiu,

I watched your talk today, congratulations on your work!

Could you provide the link to the presentation?

Best resgards

kittiu commented 2 years ago

Here you go!

OCA Days 2021 - Budget Control.pdf

marcelsavegnago commented 2 years ago

@kittiu runbot red.

probably should be this warning 2021-11-27 17:27:17,683 167 WARNING openerp_test odoo.addons.base.models.ir_model: Two fields (forward_advance_ids, advance) of budget.commit.forward() have the same label: Advance.

FernandoRomera commented 2 years ago

@kittiu Ready to review?

kittiu commented 2 years ago

@kittiu Ready to review?

Hi @FernandoRomera , yes it is ready for review. 95% should not change. But please bear with me that, we still have some fix as we are going live with the project we do. Thanks!

JordiBForgeFlow commented 1 year ago

Hi @kittiu We can see that setting up budget plan by KPI and periods is partially useful.

image

When you access to the MIS report then the periods are not there. When you access to the budget monitoring then you cannot compare KPI's in the budget vs actuals or commit because those do not contain the KPI.

How do you overcome this?

Saran440 commented 1 year ago

@JordiBForgeFlow Hello,

For standard can't do that because kpi is not have in PR, PO, ...

For this case, if we need compare between amount plan and actual, we add on 2 modules (but it overview not details)

Example: we have budget A 1200$ split into 120$ in 12 month.

Budget Control
-----------------
KPI | Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec
A   | 120 | 120 | 120 | 120 | 120 | 120 | 120 | 120 | 120 | 120 | 120 | 120

Next, create vendor bill 100$ at Jul and confirm actual = 100$

if we compare we need revision this budget control for keep this plan

Budget Control V0
-----------------
KPI | Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec
A   | 120 | 120 | 120 | 120 | 120 | 120 | 120 | 120 | 120 | 120 | 120 | 120

================================
Budget Control V1
-----------------
KPI | Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec
A   | 120 | 120 | 120 | 120 | 120 | 120 | 120 | 120 | 120 | 120 | 120 | 120

Next, we will update consumed plan it will overwrite at plan

Budget Control V0
-----------------
KPI | Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec
A   | 120 | 120 | 120 | 120 | 120 | 120 | 120 | 120 | 120 | 120 | 120 | 120

================================
Budget Control V1
-----------------
KPI | Jan | Feb | Mar | Apr | May |  Jun  | Jul | Aug | Sep | Oct | Nov | Dec
A   | 120 | 120 | 120 | 120 | 120 | *100* | 120 | 120 | 120 | 120 | 120 | 120

So, you can check V0 and V1 are difference from actual.

JordiBForgeFlow commented 1 year ago

@Saran440 Our main issue is that we see the budget as an entity decoupled from the MIS Builder. See https://github.com/OCA/account-financial-tools/tree/15.0/account_move_budget

So, we would look to integrate the account_move budget with the budget_control modules.

The downside of account_move_budget is that you need to budget at the level of accounts, whereas in the MIS Builder budget you do it at the level of KPI, which can include more than one account. Is that your use case? Do you often include more than one account in a KPI?

Saran440 commented 1 year ago

@JordiBForgeFlow Amm, we use budget_activity for map between KPI - Account

1 KPI = 1 Activity Group (For plan) 1 Activity Group = multi Activity 1 Activity = 1 Account (For users)

Selection_010

So, when we create KPI must select Activity Group and it will auto filter account and user do transaction must have select activity and it will auto map account, activity to 1 KPI

Selection_012

ref: https://github.com/ecosoft-odoo/budgeting/tree/14.0/budget_activity

Saran440 commented 1 year ago

@JordiBForgeFlow

When you access to the budget monitoring then you cannot compare KPI's in the budget vs actuals or commit because those do not contain the KPI.

JordiBForgeFlow commented 1 year ago

Thanks @Saran440 In our case the main problem is that the budget is something that finance wants to compare with the actual P&L. And the Budget report MIS report is not necessarily the P&L.

kittiu commented 1 year ago

Hi @JordiBForgeFlow, glad to know that you are interested, because we was thinking about moving it out to our personal repo as it seem to specific to others. These modules are to address Thailand government requirements, https://github.com/ecosoft-odoo/budgeting.

In our case the main problem is that the budget is something that finance wants to compare with the actual P&L. And the Budget report MIS report is not necessarily the P&L.

Yes, intentionally, KPI can bind with > 1 account. In your case, you may need to bind 1 KPI with 1 Account with the same name. We use a KPI (Activity Group/Activity) with >1 accounts. The idea is to connect procurement users (can choose activities but don't know accounting) with accounting.

Historically, I started this project by trying to reuse existing mis_builder_budget. But as requirement expand, MIS Reports also not cover our need in term of reporting. We are internally discussing whether we should remove mis_buidler, it make things more complicated then it should. But it is a big work.

Are you planning to use this in your project?