Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TA#61910 [MIG] project_wip_timesheet to V14 #380

Open
wants to merge 7 commits into
base: 14.0
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .docker_files/main/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,9 @@
"project_type",
"project_wip",
"project_wip_material",
# "project_wip_outsourcing",
# "project_wip_supply_cost",
"project_wip_timesheet",
"timesheet_task_project_no_change",
],
"installable": True,
Expand Down
3 changes: 3 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,9 @@ COPY project_timesheet_analytic_update /mnt/extra-addons/project_timesheet_anal
COPY project_type /mnt/extra-addons/project_type
COPY project_wip /mnt/extra-addons/project_wip
COPY project_wip_material /mnt/extra-addons/project_wip_material
#COPY project_wip_outsourcing /mnt/extra-addons/project_wip_outsourcing
#COPY project_wip_supply_cost /mnt/extra-addons/project_wip_supply_cost
COPY project_wip_timesheet /mnt/extra-addons/project_wip_timesheet
COPY timesheet_task_project_no_change /mnt/extra-addons/timesheet_task_project_no_change


Expand Down
81 changes: 81 additions & 0 deletions project_wip_timesheet/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
Project WIP Timesheet
=====================
This module extends the project_wip (Project Work in Progress) module.

It allows to automatically generate WIP journal entries from timesheet entries.

Configuration
-------------
As member of the group `Project / Manager`, I go to the form view of a project type.

I notice 2 new fields:

* Salary Account
* Salary Journal

.. image:: static/description/project_type.png

These 2 fields allow to define the salary account and journal to use in WIP journal entries generated from timesheets.

If these fields are not filled, no journal entry will be generated by the timesheets for this project type.

Employees
~~~~~~~~~
As member of the group `Human Resources / Manager`, I set a timesheet cost for every employee.

.. image:: static/description/employee_timesheet_cost.png

This cost will be used in timesheets to transfer amounts from salaries to work in progress.

Usage
-----
As member of the group `Project / User`, I go to the form view of a task.

I add a timesheet line.

.. image:: static/description/task_form.png

As member of the group `Accounting / Billing`, I go to the general ledger and filter to see only entries for my project.

I see one entry for my timesheet line.

.. image:: static/description/general_ledger_filtered.png

The amount of 31.25 USD represents 25 minutes (0.417 hours) x 75 USD (timesheet cost).

I go to the list of analytic lines and I filter to see only entries for my project.

.. image:: static/description/analytic_lines_filtered.png

Updating A Timesheet Line
-------------------------
When modifying an existing timesheet line, the journal entry is updated (if required).

For example, I modify the quantity on my timesheet line:

.. image:: static/description/timesheet_line_updated.png

The amount is updated on the journal entry:

.. image:: static/description/journal_entry_updated_updated.png

Deleting A Timesheet Line
-------------------------
When deleting a timesheet line, the journal entry is reversed.

.. image:: static/description/timesheet_line_deleted.png

.. image:: static/description/account_move_line_reversed.png

WIP Entries Transfered To CGS
-----------------------------
If a `WIP / Salary` journal entry is already transfered to CGS (cost of goods sold),
the timesheet line can not be updated or deleted.

If a user attempts to update such timesheet line, the following blocking message will appear:

.. image:: static/description/timesheet_line_updated_error_message.png

Contributors
------------
* Numigi (tm) and all its contributors (https://bit.ly/numigiens)
4 changes: 4 additions & 0 deletions project_wip_timesheet/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# © 2024 Numigi (tm) and all its contributors (https://bit.ly/numigiens)
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).

from . import models

Check notice on line 4 in project_wip_timesheet/__init__.py

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

project_wip_timesheet/__init__.py#L4

'.models' imported but unused (F401)
23 changes: 23 additions & 0 deletions project_wip_timesheet/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# © 2024 Numigi (tm) and all its contributors (https://bit.ly/numigiens)
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).

{

Check warning on line 4 in project_wip_timesheet/__manifest__.py

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

project_wip_timesheet/__manifest__.py#L4

Statement seems to have no effect
"name": "Project WIP Timesheet",
"version": "14.0.1.0.0",
"author": "Numigi",
"maintainer": "Numigi",
"website": "https://bit.ly/numigi-com",
"license": "LGPL-3",
"category": "Project",
"summary": "Generate WIP journal entries from timesheets",
"depends": [
"project_wip",
"project_task_analytic_lines",
"hr_timesheet",
"sale_timesheet",
],
"data": [
"views/project_type.xml",
],
"installable": True,
}
135 changes: 135 additions & 0 deletions project_wip_timesheet/i18n/fr.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * project_wip_timesheet
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 14.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-09 15:31+0000\n"
"PO-Revision-Date: 2020-12-09 10:33-0500\n"
"Last-Translator: <>\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: \n"
"X-Generator: Poedit 2.0.6\n"

#. module: project_wip_timesheet
#: model:ir.model.fields,help:project_wip_timesheet.field_project_type__salary_account_id
msgid ""
"Account used for the salaries (usually the credit part) when transfering "
"salaries into work in progress."
msgstr ""
"Compte utilisé pour les salaires (habituellement la partie au crédit) lors "
"du transfert des salaires vers les travaux en cours."

#. module: project_wip_timesheet
#: model:ir.model,name:project_wip_timesheet.model_account_analytic_line
msgid "Analytic Line"
msgstr ""

#. module: project_wip_timesheet
#: model_terms:ir.ui.view,arch_db:project_wip_timesheet.project_type_form_with_salary_account
msgid "Direct Labour"
msgstr "Main d'oeuvre directe"

#. module: project_wip_timesheet
#: code:addons/project_wip_timesheet/models/project_type.py:43
#, python-format
msgid ""
"If the salary account is filled for a project type, the salary journal must "
"be filled as well."
msgstr ""
"Si le compte de salaire est sélectionné sur le type de projet, le journal de "
"salaires doit aussi être sélectionné."

#. module: project_wip_timesheet
#: code:addons/project_wip_timesheet/models/project_type.py:35
#, python-format
msgid ""
"If the salary account is filled for a project type, the work in progress "
"account must be filled as well."
msgstr ""
"Si le compte de salaire est sélectionné sur le type de projet, le compte de "
"travaux en cours doit aussi être sélectionné."

#. module: project_wip_timesheet
#: model:ir.model.fields,help:project_wip_timesheet.field_project_type__salary_journal_id
msgid ""
"Journal used for transfering salaries into work in progress when creating or "
"updating a timesheet entry."
msgstr ""
"Journal utilisé dans du transfert des salaires vers les travaux en cours "
"lors qu'une ligne de feuille de temps est créée ou mise à jour."

#. module: project_wip_timesheet
#: model:ir.model,name:project_wip_timesheet.model_project_type
msgid "Project Type"
msgstr ""

#. module: project_wip_timesheet
#: model:ir.model.fields,field_description:project_wip_timesheet.field_project_type__salary_account_id
msgid "Salary Account"
msgstr "Compte de salaires"

#. module: project_wip_timesheet
#: model:ir.model.fields,field_description:project_wip_timesheet.field_project_type__salary_journal_id
msgid "Salary Journal"
msgstr "Journal de salaires"

#. module: project_wip_timesheet
#: model:ir.model.fields,field_description:project_wip_timesheet.field_account_analytic_line__salary_account_move_id
msgid "Salary Journal Entry"
msgstr "Pièce comptable de salaire"

#. module: project_wip_timesheet
#: code:addons/project_wip_timesheet/models/account_analytic_line.py:123
#, python-format
msgid ""
"The timesheet line {description} can not be deleted because the work in "
"progress entry ({move_name}) is already transfered into the cost of goods "
"sold."
msgstr ""
"La ligne de temps {description} ne peut pas être supprimée car l'écriture "
"comptable de travaux en cours ({move_name}) est déjà transférée vers le coût "
"des marchandises vendues."

#. module: project_wip_timesheet
#: code:addons/project_wip_timesheet/models/account_analytic_line.py:87
#, python-format
msgid ""
"The timesheet line {description} can not be updated because the work in "
"progress entry ({move_name}) is already transfered into the cost of goods "
"sold."
msgstr ""
"La ligne de temps {description} ne peut pas être mise à jour car l'écriture "
"comptable de travaux en cours ({move_name}) est déjà transférée vers le coût "
"des marchandises vendues."

#. module: project_wip_timesheet
#: code:addons/project_wip_timesheet/models/account_analytic_line.py:106
#, python-format
msgid ""
"The timesheet line {description} can not be updated because the work in "
"progress entry ({move_name}) would be reversed. This journal entry was "
"already transfered into the cost of goods sold."
msgstr ""
"La ligne de temps {description} ne peut pas être mise à jour car l'écriture "
"comptable de travaux en cours ({move_name}) serait renversée. L'écriture "
"comptable est déjà transférée vers le coût des marchandises vendues."

#. module: project_wip_timesheet
#: code:addons/project_wip_timesheet/models/account_analytic_line.py:0
#, python-format
msgid ""
"The entry {move_line} ({amount}) could not be reconciled.You should verify "
"if the Salary entry is partially reconciled."
msgstr ""
"L'écriture de {move_line} ({amount}) ne peut pas être lettrée. Vous devriez vérifier que "
"l'écriture de l'entrée de salaire n'est pas partiellement lettrée."

#~ msgid "(task: {})"
#~ msgstr "(tâche: {})"
4 changes: 4 additions & 0 deletions project_wip_timesheet/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# © 2024 Numigi (tm) and all its contributors (https://bit.ly/numigiens)
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).

from . import account_analytic_line, project_type

Check notice on line 4 in project_wip_timesheet/models/__init__.py

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

project_wip_timesheet/models/__init__.py#L4

'.account_analytic_line' imported but unused (F401)
Loading
Loading