Skip to content

Commit

Permalink
[16.0][ADD] hr_timesheet_sheet_generate_attendances
Browse files Browse the repository at this point in the history
  • Loading branch information
LauraCForgeFlow committed Apr 17, 2024
1 parent 8d0abeb commit 1557596
Show file tree
Hide file tree
Showing 22 changed files with 1,649 additions and 0 deletions.
111 changes: 111 additions & 0 deletions hr_timesheet_sheet_attendance_generate/README.rst
@@ -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
@@ -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
@@ -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
@@ -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"
@@ -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
@@ -0,0 +1,3 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from . import hr_timesheet_sheet

0 comments on commit 1557596

Please sign in to comment.