Metadata-Version: 2.1
Name: odoo-addon-project_forecast_line
Version: 18.0.1.0.0.2
Requires-Python: >=3.10
Requires-Dist: odoo==18.0.*
Summary: Project Forecast Lines
Home-page: https://github.com/OCA/project
License: AGPL-3
Author: Camptocamp, Odoo Community Association (OCA)
Author-email: support@odoo-community.org
Classifier: Programming Language :: Python
Classifier: Framework :: Odoo
Classifier: Framework :: Odoo :: 18.0
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Classifier: Development Status :: 3 - Alpha
Description-Content-Type: text/x-rst

.. image:: https://odoo-community.org/readme-banner-image
   :target: https://odoo-community.org/get-involved?utm_source=readme
   :alt: Odoo Community Association

======================
Project Forecast Lines
======================

.. 
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   !! This file is generated by oca-gen-addon-readme !!
   !! changes will be overwritten.                   !!
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   !! source digest: sha256:a70b739e29afb493380703133dc33f68885a8734d4a9da3ec883e92cf19432c3
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png
    :target: https://odoo-community.org/page/development-status
    :alt: Alpha
.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
    :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
    :alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fproject-lightgray.png?logo=github
    :target: https://github.com/OCA/project/tree/18.0/project_forecast_line
    :alt: OCA/project
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
    :target: https://translation.odoo-community.org/projects/project-18-0/project-18-0-project_forecast_line
    :alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
    :target: https://runboat.odoo-community.org/builds?repo=OCA/project&target_branch=18.0
    :alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

This module allows to plan your resources using forecast lines.

For each employee of the company, the module will generate forecast line
records with a positive capacity based on their working time schedules.
Then, tasks assigned to employees will generate forecast lines with a
negative capacity which will "consume" the work time capacity of the
employees.

The idea is that you can then see the work capacity and scheduled work
of people by summing the "forecasts" per time period. If you have more
resources (positive forecast) than work (negative forecast) you will
have a positive net sum. Otherwise you are in trouble and need to
recruit or reschedule your work. Another way to use the report is
checking when the work capacity of a department becomes positive (or
high enough) in order to provide you potential customers with an
estimate of when a project would be able to start.

Forecast lines also come in two states "forecast" or "confirmed",
depending on whether the consumption is confirmed or not. For instance,
holidays requests and sales quotation lines create lines of type
"forecast", whereas tasks for project which are in a running state
create lines with type "confirmed".

To get the best experience using the Forecast application you may want
to install:

- project_forecast_line_holidays_public module which takes public
  holidays into account during forecast lines creation
- project_forecast_line_bokeh_chart module which improves the reports of
  project_forecast_line module by using the bokeh widget available in
  OCA/web

.. IMPORTANT::
   This is an alpha version, the data model and design can change at any time without warning.
   Only for development or testing purpose, do not use in production.
   `More details on development status <https://odoo-community.org/page/development-status>`_

**Table of contents**

.. contents::
   :local:

Usage
=====

Forecast lines have the following data:

- Forecast hours: it is positive for resources (employees) and negative
  for things which consume time (project tasks, for instance)
- From and To date which are the beginning and ending of the period of
  the capacity
- Consolidated forecast: this is a computed field, which is computed as
  follows:

  - for costs (project tasks for instance) we take the absolute value of
    the forecast hours (so it is a positive number)
  - for resources (employee capacity for a period), we take the capacity
    and substract all the costs for that employee on the same period. So
    it will be positive if the employee still has some free time, and
    negative if he is overloaded with work.
  - this consolidated forecast is currently converted to days to ease
    readability of the forecast report

Objects creating forecast lines:

- employees with a forecast role will create forecast line with a
  positive capacity and type "confirmed" for each day on which they
  work. This information comes from their work calendar, and the
  different roles that are linked to the employee.
- draft sale orders (if enabled in the settings) will create forecast
  lines of type "forecast" for each sale order line having a product
  with a forecast role and start and end dates. The forecast hours are
  negative
- confirmed sale orders don't create forecast lines. This is handled by
  the tasks created at the confirmation of the sale order
- project tasks create forecast lines if they have a linked role and
  planned start/end dates. The type of the line will depend on the
  related project's stage. The forecast_hours field is based on the
  remaining time of the task, which is spread on the work days of the
  planned start and end date of the task. If the current date is in the
  middle of the planned duration of the task, it is used as the start
  date. If the planned end date is in the past the task does not
  generate forecast lines (and you need to fix your planning). In case
  multiple employees are assigned to the task the forecast is split
  equally between them.
- holiday requests create negative forecast lines with type "forecast"
  when they are pending manager validation.
- Validated holiday requests do not generate forecast lines, as they
  alter the work calendar of the employee: the employee will not have a
  positive line associated to his leave days.

The creation of forecast lines is done either in real time when some
actions are performed by the user (requesting leaves, updating the
remaining time on a project task, timesheeting) and also via a cron that
runs on a daily basis. The cron is required to cleanup lines related to
dates in the past and to recompute the lines related to project tasks by
computing the ratio of remaing time on the tasks on the remaining days,
for tasks which are in progress. So, to start using consolidated
forecast report you first need to set everything mentioned in Usage
section. Then, probably run Forecast recomputation cron manually from
Scheduled Actions or wait till cron creates records.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/project/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/project/issues/new?body=module:%20project_forecast_line%0Aversion:%2018.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
-------

* Camptocamp

Contributors
------------

- Alexandre Fayolle <alexandre.fayolle@camptocamp.com>
- Maksym Yankin <maksym.yankin@camptocamp.com>

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.

This module is part of the `OCA/project <https://github.com/OCA/project/tree/18.0/project_forecast_line>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
