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

[WIP][16.0][ADD] hr_timesheet_sheet_generate_attendances #668

Open
wants to merge 1 commit into
base: 16.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.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
111 changes: 111 additions & 0 deletions hr_timesheet_sheet_attendance_generate/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
======================================
HR Timesheet Sheet Attendance Generate
======================================

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

.. |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-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%2Ftimesheet-lightgray.png?logo=github
:target: https://github.com/OCA/timesheet/tree/16.0/hr_timesheet_sheet_attendance_generate
:alt: OCA/timesheet
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/timesheet-16-0/timesheet-16-0-hr_timesheet_sheet_attendance_generate
: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/timesheet&target_branch=16.0
:alt: Try me on Runboat

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

This module automates the creation of attendances based on the data in the
employee's timesheet sheets, ensuring consistency between recorded hours and
imputed timesheet hours for employees.

For each day in the timesheet sheet, one or more attendances will be created
if the day has imputed hours in the timesheet sheet but the employee does not
have any attendances in that same day.
The check in and check out times of the attendances, as well as the number of
generated attendances for each day, are retrieved from the employee's
established working hours or schedule.

Once the proposed attendances are created, the user can decide whether they
want them to be removed in the database or not (in case some of them are not
true or accurate, or for other reasons). The attendances will only be proposed
to users who have permissions to create attendances.

**Table of contents**

.. contents::
:local:

Installation
============

This module relies on:

* The OCA module 'HR Timesheet Sheet Attendance', and can be downloaded from
Github: https://github.com/OCA/timesheet/tree/16.0/hr_timesheet_sheet_attendance

Usage
=====

By activating the `Generate Attendances` button in a timesheet sheet (which
can be found next to the `Submit to Reviewer` button for timesheet sheets in
draft state), the corresponding attendances will be created and later
displayed in the screen using a wizard.

There, the user will be able to remove any created attendance that they do
not want to be kept in the database. After that, by activating the `Save`
button only the attendances that were accepted by the user will be persisted
in the system.

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

Bugs are tracked on `GitHub Issues <https://github.com/OCA/timesheet/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/timesheet/issues/new?body=module:%20hr_timesheet_sheet_attendance_generate%0Aversion:%2016.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
~~~~~~~

* ForgeFlow

Contributors
~~~~~~~~~~~~

* Laura Cazorla <laura.cazorla@forgeflow.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/timesheet <https://github.com/OCA/timesheet/tree/16.0/hr_timesheet_sheet_attendance_generate>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
4 changes: 4 additions & 0 deletions hr_timesheet_sheet_attendance_generate/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from . import models
from . import wizards
21 changes: 21 additions & 0 deletions hr_timesheet_sheet_attendance_generate/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Copyright 2024 ForgeFlow (https://www.forgeflow.com)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

{
"name": "HR Timesheet Sheet Attendance Generate",
"version": "16.0.1.0.0",
"category": "Human Resources",
"sequence": 80,
"summary": "Timesheet Sheets, Activities",
"license": "AGPL-3",
"author": "ForgeFlow, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/timesheet",
"installable": True,
"auto_install": False,
"depends": ["hr_timesheet_sheet_attendance"],
"data": [
"wizards/generated_attendances_selection_views.xml",
"views/hr_timesheet_sheet_views.xml",
"security/ir.model.access.csv",
],
}
114 changes: 114 additions & 0 deletions hr_timesheet_sheet_attendance_generate/i18n/es.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_timesheet_sheet_attendance_generate
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-04-17 10:34+0000\n"
"PO-Revision-Date: 2024-04-17 10:34+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: hr_timesheet_sheet_attendance_generate
#: model:ir.model.fields,field_description:hr_timesheet_sheet_attendance_generate.field_hr_timesheet_sheet_generated_attendances_selection__create_uid
msgid "Created by"
msgstr "Creado por"

#. module: hr_timesheet_sheet_attendance_generate
#: model:ir.model.fields,field_description:hr_timesheet_sheet_attendance_generate.field_hr_timesheet_sheet_generated_attendances_selection__create_date
msgid "Created on"
msgstr "Creado el"

#. module: hr_timesheet_sheet_attendance_generate
#: model:ir.model.fields,field_description:hr_timesheet_sheet_attendance_generate.field_hr_timesheet_sheet_generated_attendances_selection__display_name
msgid "Display Name"
msgstr "Nombre a Mostrar"

#. module: hr_timesheet_sheet_attendance_generate
#: model_terms:ir.ui.view,arch_db:hr_timesheet_sheet_attendance_generate.hr_timesheet_sheet_form_attendance_generate
msgid "Generate Attendances"
msgstr "Generar Asistencias"

#. module: hr_timesheet_sheet_attendance_generate
#: model_terms:ir.ui.view,arch_db:hr_timesheet_sheet_attendance_generate.hr_timesheet_sheet_form_attendance_generate
msgid ""
"Generate attendances for dates which have imputed hours "
"in the timesheet sheet but no attendances. The attendances are"
" generated using the employee's working hours calendar."
msgstr ""
"Generar asistencias para las fechas que tengan horas imputadas en la hoja de"
" servicios pero no tengan asistencias. Las asistencias se generan usando el "
"calendario de jornada laboral del empleado."

#. module: hr_timesheet_sheet_attendance_generate
#: model:ir.model.fields,field_description:hr_timesheet_sheet_attendance_generate.field_hr_timesheet_sheet_generated_attendances_selection__attendance_ids
msgid "Generated Attendances"
msgstr "Asistencias Generadas"

#. module: hr_timesheet_sheet_attendance_generate
#. odoo-python
#: code:addons/hr_timesheet_sheet_attendance_generate/models/hr_timesheet_sheet.py:0
#: model_terms:ir.ui.view,arch_db:hr_timesheet_sheet_attendance_generate.view_generated_attendances_selection_form
#, python-format
msgid "Generated Attendances Selection"
msgstr "Selección de Asistencias Generadas"

#. module: hr_timesheet_sheet_attendance_generate
#: model:ir.model.fields,field_description:hr_timesheet_sheet_attendance_generate.field_hr_timesheet_sheet_generated_attendances_selection__id
msgid "ID"
msgstr ""

#. module: hr_timesheet_sheet_attendance_generate
#: model:ir.model.fields,field_description:hr_timesheet_sheet_attendance_generate.field_hr_timesheet_sheet_generated_attendances_selection____last_update
msgid "Last Modified on"
msgstr "Última modificación el"

#. module: hr_timesheet_sheet_attendance_generate
#: model:ir.model.fields,field_description:hr_timesheet_sheet_attendance_generate.field_hr_timesheet_sheet_generated_attendances_selection__write_uid
msgid "Last Updated by"
msgstr "Última actualización por"

#. module: hr_timesheet_sheet_attendance_generate
#: model:ir.model.fields,field_description:hr_timesheet_sheet_attendance_generate.field_hr_timesheet_sheet_generated_attendances_selection__write_date
msgid "Last Updated on"
msgstr "Última actualización el"

#. module: hr_timesheet_sheet_attendance_generate
#: model:ir.model.fields,field_description:hr_timesheet_sheet_attendance_generate.field_hr_timesheet_sheet_generated_attendances_selection__original_attendance_ids
msgid "Originally Generated Attendances"
msgstr "Asistencias Generadas Originalmente"

#. module: hr_timesheet_sheet_attendance_generate
#: model_terms:ir.ui.view,arch_db:hr_timesheet_sheet_attendance_generate.view_generated_attendances_selection_form
msgid "Save"
msgstr "Guardar"

#. module: hr_timesheet_sheet_attendance_generate
#: model_terms:ir.ui.view,arch_db:hr_timesheet_sheet_attendance_generate.view_generated_attendances_selection_form
msgid ""
"These are the attendances generated based on your\n"
" predefined working hours, to improve coherence with the\n"
" imputed hours in the timesheet. If you do not agree with\n"
" one or more of them, simply remove them, and they will\n"
" be deleted permanently."
msgstr ""
"Se han generado las siguientes asistencias basadas en su jornada laboral "
"predefinida, para mejorar la coherencia con las horas imputadas en la hoja "
"de servicios. Si no está de acuerdo con alguna de ellas, simplemente "
"elimínela, y esta será suprimida de forma permanente."

#. module: hr_timesheet_sheet_attendance_generate
#: model:ir.model,name:hr_timesheet_sheet_attendance_generate.model_hr_timesheet_sheet
msgid "Timesheet Sheet"
msgstr "Hoja de Servicios"

#. module: hr_timesheet_sheet_attendance_generate
#: model:ir.model,name:hr_timesheet_sheet_attendance_generate.model_hr_timesheet_sheet_generated_attendances_selection
msgid "Timesheet Sheet Generated Attendances Selection"
msgstr "Selección de Asistencias Generadas en Hoja de Servicios"
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_timesheet_sheet_attendance_generate
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-04-17 10:33+0000\n"
"PO-Revision-Date: 2024-04-17 10:33+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: hr_timesheet_sheet_attendance_generate
#: model:ir.model.fields,field_description:hr_timesheet_sheet_attendance_generate.field_hr_timesheet_sheet_generated_attendances_selection__create_uid
msgid "Created by"
msgstr ""

#. module: hr_timesheet_sheet_attendance_generate
#: model:ir.model.fields,field_description:hr_timesheet_sheet_attendance_generate.field_hr_timesheet_sheet_generated_attendances_selection__create_date
msgid "Created on"
msgstr ""

#. module: hr_timesheet_sheet_attendance_generate
#: model:ir.model.fields,field_description:hr_timesheet_sheet_attendance_generate.field_hr_timesheet_sheet_generated_attendances_selection__display_name
msgid "Display Name"
msgstr ""

#. module: hr_timesheet_sheet_attendance_generate
#: model_terms:ir.ui.view,arch_db:hr_timesheet_sheet_attendance_generate.hr_timesheet_sheet_form_attendance_generate
msgid "Generate Attendances"
msgstr ""

#. module: hr_timesheet_sheet_attendance_generate
#: model_terms:ir.ui.view,arch_db:hr_timesheet_sheet_attendance_generate.hr_timesheet_sheet_form_attendance_generate
msgid ""
"Generate attendances for dates which have imputed hours "
"in the timesheet sheet but no attendances. The attendances are"
" generated using the employee's working hours calendar."
msgstr ""

#. module: hr_timesheet_sheet_attendance_generate
#: model:ir.model.fields,field_description:hr_timesheet_sheet_attendance_generate.field_hr_timesheet_sheet_generated_attendances_selection__attendance_ids
msgid "Generated Attendances"
msgstr ""

#. module: hr_timesheet_sheet_attendance_generate
#. odoo-python
#: code:addons/hr_timesheet_sheet_attendance_generate/models/hr_timesheet_sheet.py:0
#: model_terms:ir.ui.view,arch_db:hr_timesheet_sheet_attendance_generate.view_generated_attendances_selection_form
#, python-format
msgid "Generated Attendances Selection"
msgstr ""

#. module: hr_timesheet_sheet_attendance_generate
#: model:ir.model.fields,field_description:hr_timesheet_sheet_attendance_generate.field_hr_timesheet_sheet_generated_attendances_selection__id
msgid "ID"
msgstr ""

#. module: hr_timesheet_sheet_attendance_generate
#: model:ir.model.fields,field_description:hr_timesheet_sheet_attendance_generate.field_hr_timesheet_sheet_generated_attendances_selection____last_update
msgid "Last Modified on"
msgstr ""

#. module: hr_timesheet_sheet_attendance_generate
#: model:ir.model.fields,field_description:hr_timesheet_sheet_attendance_generate.field_hr_timesheet_sheet_generated_attendances_selection__write_uid
msgid "Last Updated by"
msgstr ""

#. module: hr_timesheet_sheet_attendance_generate
#: model:ir.model.fields,field_description:hr_timesheet_sheet_attendance_generate.field_hr_timesheet_sheet_generated_attendances_selection__write_date
msgid "Last Updated on"
msgstr ""

#. module: hr_timesheet_sheet_attendance_generate
#: model:ir.model.fields,field_description:hr_timesheet_sheet_attendance_generate.field_hr_timesheet_sheet_generated_attendances_selection__original_attendance_ids
msgid "Originally Generated Attendances"
msgstr ""

#. module: hr_timesheet_sheet_attendance_generate
#: model_terms:ir.ui.view,arch_db:hr_timesheet_sheet_attendance_generate.view_generated_attendances_selection_form
msgid "Save"
msgstr ""

#. module: hr_timesheet_sheet_attendance_generate
#: model_terms:ir.ui.view,arch_db:hr_timesheet_sheet_attendance_generate.view_generated_attendances_selection_form
msgid ""
"These are the attendances generated based on your\n"
" predefined working hours, to improve coherence with the\n"
" imputed hours in the timesheet. If you do not agree with\n"
" one or more of them, simply remove them, and they will\n"
" be deleted permanently."
msgstr ""

#. module: hr_timesheet_sheet_attendance_generate
#: model:ir.model,name:hr_timesheet_sheet_attendance_generate.model_hr_timesheet_sheet
msgid "Timesheet Sheet"
msgstr ""

#. module: hr_timesheet_sheet_attendance_generate
#: model:ir.model,name:hr_timesheet_sheet_attendance_generate.model_hr_timesheet_sheet_generated_attendances_selection
msgid "Timesheet Sheet Generated Attendances Selection"
msgstr ""
3 changes: 3 additions & 0 deletions hr_timesheet_sheet_attendance_generate/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from . import hr_timesheet_sheet