Fix hr_payroll_clone: AttributeError, add journal/work_type support, use standard wizard

- Fix AttributeError: hr.payslip.run has no company_id field
- Change batch name format from MM/YYYY to YYYY-MM (remove 'Payslips' prefix)
- Add journal_id field and copy from previous batch
- Add work_type_id support (Redovni rad/Regular work) in timesheet generation
- Add duplicate check for existing timesheets to prevent duplication
- Use standard Odoo hr.payslip.employees wizard for payslip generation
- Update version to 16.0.1.1.0

🤖 assisted by claude

🤖 assisted by claude
This commit is contained in:
Ernad Husremovic 2025-11-04 22:43:22 +01:00
parent 3ac97a2210
commit ee00be80d0
46 changed files with 459 additions and 441 deletions

View file

@ -20,7 +20,6 @@ msgstr "Odsutan"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course__message_needaction
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__message_needaction
msgid "Action Needed"
msgstr "Potrebna akcija"
@ -31,25 +30,21 @@ msgstr "Aktivan"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course__activity_ids
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__activity_ids
msgid "Activities"
msgstr "Aktivnosti"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course__activity_exception_decoration
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__activity_exception_decoration
msgid "Activity Exception Decoration"
msgstr "Dekoracija iznimke aktivnosti"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course__activity_state
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__activity_state
msgid "Activity State"
msgstr "Status aktivnosti"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course__activity_type_icon
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__activity_type_icon
msgid "Activity Type Icon"
msgstr "Ikona tipa aktivnosti"
@ -60,7 +55,6 @@ msgstr "Dodijeli sudionike"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course__message_attachment_count
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__message_attachment_count
msgid "Attachment Count"
msgstr "Broj priloga"
@ -101,7 +95,6 @@ msgstr "Otkazan tečaj"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course__category_id
#: model_terms:ir.ui.view,arch_db:hr_course.view_course_category_search
msgid "Category"
msgstr "Kategorija"
@ -127,7 +120,6 @@ msgstr "Završeno"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course__content
#: model_terms:ir.ui.view,arch_db:hr_course.hr_course_form_view
msgid "Content"
msgstr "Sadržaj"
@ -138,24 +130,16 @@ msgstr "Konvokatorij"
#. module: hr_course
#: model:ir.model,name:hr_course.model_hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__course_id
#: model_terms:ir.ui.view,arch_db:hr_course.hr_course_form_view
#: model_terms:ir.ui.view,arch_db:hr_course.hr_course_schedule_form_view
#: model_terms:ir.ui.view,arch_db:hr_course.hr_course_schedule_search_view
msgid "Course"
msgstr "Tečaj"
#. module: hr_course
#: model:ir.model,name:hr_course.model_hr_course_attendee
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__course_attendee_ids
msgid "Course Attendee"
msgstr "Sudionik tečaja"
#. module: hr_course
#: model:ir.actions.act_window,name:hr_course.open_view_course_category_form
#: model:ir.ui.menu,name:hr_course.menu_view_course_category_form
#: model_terms:ir.ui.view,arch_db:hr_course.view_course_category_form
#: model_terms:ir.ui.view,arch_db:hr_course.view_course_category_search
msgid "Course Categories"
msgstr "Kategorije tečajeva"
@ -181,8 +165,6 @@ msgstr "Rezultati tečaja"
#. module: hr_course
#: model:ir.model,name:hr_course.model_hr_course_schedule
#: model:ir.model.fields,field_description:hr_course.field_hr_course__course_schedule_ids
#: model:ir.model.fields,field_description:hr_course.field_hr_course_attendee__course_schedule_id
msgid "Course Schedule"
msgstr "Raspored tečaja"
@ -198,35 +180,21 @@ msgstr "Naziv tečaja"
#. module: hr_course
#: model:ir.actions.act_window,name:hr_course.action_hr_course
#: model:ir.actions.act_window,name:hr_course.action_view_course
#: model:ir.model.fields,field_description:hr_course.field_hr_employee__courses_ids
#: model:ir.ui.menu,name:hr_course.menu_hr_course
#: model:ir.ui.menu,name:hr_course.menu_hr_course_courses
#: model_terms:ir.ui.view,arch_db:hr_course.hr_course_form_view
#: model_terms:ir.ui.view,arch_db:hr_course.view_hr_employee_form
msgid "Courses"
msgstr "Tečajevi"
#. module: hr_course
#: model:ir.actions.act_window,name:hr_course.action_hr_course_schedule
#: model:ir.ui.menu,name:hr_course.menu_hr_course_schedule
#: model_terms:ir.ui.view,arch_db:hr_course.hr_course_schedule_form_view
msgid "Courses Schedule"
msgstr "Raspored tečajeva"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course__create_uid
#: model:ir.model.fields,field_description:hr_course.field_hr_course_attendee__create_uid
#: model:ir.model.fields,field_description:hr_course.field_hr_course_category__create_uid
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__create_uid
msgid "Created by"
msgstr "Kreirao"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course__create_date
#: model:ir.model.fields,field_description:hr_course.field_hr_course_attendee__create_date
#: model:ir.model.fields,field_description:hr_course.field_hr_course_category__create_date
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__create_date
msgid "Created on"
msgstr "Kreirano"
@ -237,9 +205,6 @@ msgstr "Valuta"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course__display_name
#: model:ir.model.fields,field_description:hr_course.field_hr_course_attendee__display_name
#: model:ir.model.fields,field_description:hr_course.field_hr_course_category__display_name
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__display_name
msgid "Display Name"
msgstr "Prikazani naziv"
@ -255,20 +220,18 @@ msgstr "Nacrt tečaja"
#. module: hr_course
#: model:ir.model,name:hr_course.model_hr_employee
#: model:ir.model.fields,field_description:hr_course.field_hr_course_attendee__employee_id
msgid "Employee"
msgstr "Zaposleni"
#. module: hr_course
#. odoo-python
#: code:addons/hr_course/models/hr_course_schedule.py:0
#: code:addons/hr_course/models/hr_course_schedule.py
#, python-format
msgid "Employees removed from this course: <br></br>%s"
msgstr "Zaposlenici uklonjeni iz ovog tečaja: <br></br>%s"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course_attendee__course_end
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__end_date
msgid "End Date"
msgstr "Datum završetka"
@ -289,25 +252,21 @@ msgstr "Neuspješan"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course__message_follower_ids
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__message_follower_ids
msgid "Followers"
msgstr "Pratioci"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course__message_partner_ids
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__message_partner_ids
msgid "Followers (Partners)"
msgstr "Pratioci (Partneri)"
#. module: hr_course
#: model:ir.model.fields,help:hr_course.field_hr_course__activity_type_icon
#: model:ir.model.fields,help:hr_course.field_hr_course_schedule__activity_type_icon
msgid "Font awesome icon e.g. fa-tasks"
msgstr "Font awesome ikona npr. fa-tasks"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course__has_message
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__has_message
msgid "Has Message"
msgstr "Ima poruku"
@ -318,33 +277,26 @@ msgstr "Ima trajnost"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course__id
#: model:ir.model.fields,field_description:hr_course.field_hr_course_attendee__id
#: model:ir.model.fields,field_description:hr_course.field_hr_course_category__id
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__id
msgid "ID"
msgstr "ID"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course__activity_exception_icon
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__activity_exception_icon
msgid "Icon"
msgstr "Ikona"
#. module: hr_course
#: model:ir.model.fields,help:hr_course.field_hr_course__activity_exception_icon
#: model:ir.model.fields,help:hr_course.field_hr_course_schedule__activity_exception_icon
msgid "Icon to indicate an exception activity."
msgstr "Ikona za prikaz iznimki."
#. module: hr_course
#: model:ir.model.fields,help:hr_course.field_hr_course__message_needaction
#: model:ir.model.fields,help:hr_course.field_hr_course_schedule__message_needaction
msgid "If checked, new messages require your attention."
msgstr "Ako je zakačeno, nove poruke će zahtjevati vašu pažnju"
#. module: hr_course
#: model:ir.model.fields,help:hr_course.field_hr_course__message_has_error
#: model:ir.model.fields,help:hr_course.field_hr_course_schedule__message_has_error
msgid "If checked, some messages have a delivery error."
msgstr "Ako je označeno neke poruke mogu imati grešku u dostavi."
@ -370,86 +322,66 @@ msgstr "Interne bilješke"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course__message_is_follower
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__message_is_follower
msgid "Is Follower"
msgstr "Pratilac"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course____last_update
#: model:ir.model.fields,field_description:hr_course.field_hr_course_attendee____last_update
#: model:ir.model.fields,field_description:hr_course.field_hr_course_category____last_update
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule____last_update
msgid "Last Modified on"
msgstr "Zadnje mijenjano"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course__write_uid
#: model:ir.model.fields,field_description:hr_course.field_hr_course_attendee__write_uid
#: model:ir.model.fields,field_description:hr_course.field_hr_course_category__write_uid
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__write_uid
msgid "Last Updated by"
msgstr "Zadnji ažurirao"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course__write_date
#: model:ir.model.fields,field_description:hr_course.field_hr_course_attendee__write_date
#: model:ir.model.fields,field_description:hr_course.field_hr_course_category__write_date
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__write_date
msgid "Last Updated on"
msgstr "Zadnje ažurirano"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course__message_main_attachment_id
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__message_main_attachment_id
msgid "Main Attachment"
msgstr "Glavna zakačka"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course__message_has_error
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__message_has_error
msgid "Message Delivery error"
msgstr "Greška pri isporuci poruke"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course__message_ids
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__message_ids
msgid "Messages"
msgstr "Poruke"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course__my_activity_date_deadline
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__my_activity_date_deadline
msgid "My Activity Deadline"
msgstr "Rok za moju aktivnost"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course__name
#: model:ir.model.fields,field_description:hr_course.field_hr_course_attendee__name
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__name
msgid "Name"
msgstr "Naziv:"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course__activity_calendar_event_id
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__activity_calendar_event_id
msgid "Next Activity Calendar Event"
msgstr "Kaldendarski događaj slijedeće aktivnosti"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course__activity_date_deadline
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__activity_date_deadline
msgid "Next Activity Deadline"
msgstr "Krajnji rok za sljedeću aktivnost"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course__activity_summary
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__activity_summary
msgid "Next Activity Summary"
msgstr "Pregled sljedeće aktivnosti"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course__activity_type_id
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__activity_type_id
msgid "Next Activity Type"
msgstr "Tip sljedeće aktivnosti"
@ -460,7 +392,6 @@ msgstr "Zabilješka"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course__message_needaction_counter
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__message_needaction_counter
msgid "Number of Actions"
msgstr "Broj akcija"
@ -471,25 +402,21 @@ msgstr "Broj tečajeva"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course__message_has_error_counter
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__message_has_error_counter
msgid "Number of errors"
msgstr "Broj grešaka"
#. module: hr_course
#: model:ir.model.fields,help:hr_course.field_hr_course__message_needaction_counter
#: model:ir.model.fields,help:hr_course.field_hr_course_schedule__message_needaction_counter
msgid "Number of messages requiring action"
msgstr "Broj poruka koje zahtijevaju aktivnost"
#. module: hr_course
#: model:ir.model.fields,help:hr_course.field_hr_course__message_has_error_counter
#: model:ir.model.fields,help:hr_course.field_hr_course_schedule__message_has_error_counter
msgid "Number of messages with delivery error"
msgstr "Broj poruka sa greškama pri isporuci"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course__objective
#: model_terms:ir.ui.view,arch_db:hr_course.hr_course_form_view
msgid "Objective"
msgstr "Cilj"
@ -525,7 +452,6 @@ msgstr "Ocijeni tečaj"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course__activity_user_id
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__activity_user_id
msgid "Responsible User"
msgstr "Odgovorni korisnik"
@ -546,29 +472,30 @@ msgstr "Počni tečaj"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course_attendee__course_start
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__start_date
msgid "Start Date"
msgstr "Početni datum"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course_attendee__state
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__state
msgid "State"
msgstr "Status"
#. module: hr_course
#: model:ir.model.fields,help:hr_course.field_hr_course__activity_state
#: model:ir.model.fields,help:hr_course.field_hr_course_schedule__activity_state
msgid ""
"Status based on activities\n"
"Overdue: Due date is already passed\n"
"Today: Activity date is today\n"
"Planned: Future activities."
msgstr ""
"Status baziran na aktivnostima\n"
"Zakašnjelo: Rok je već prošao\n"
"Danas: Datum aktivnosti je danas\n"
"Planirano: Buduće aktivnosti."
#. module: hr_course
#. odoo-python
#: code:addons/hr_course/models/hr_course_schedule.py:0
#: code:addons/hr_course/models/hr_course_schedule.py
#, python-format
msgid "The start date cannot be later than the end date."
msgstr "Početni datum ne može biti kasniji od završnog datuma."
@ -580,7 +507,6 @@ msgstr "Tvrtka za obuku"
#. module: hr_course
#: model:ir.model.fields,help:hr_course.field_hr_course__activity_exception_decoration
#: model:ir.model.fields,help:hr_course.field_hr_course_schedule__activity_exception_decoration
msgid "Type of the exception activity on record."
msgstr "Vrsta aktivnosti iznimke na zapisu."
@ -591,19 +517,17 @@ msgstr "Čekanje sudionika"
#. module: hr_course
#: model:ir.model.fields,field_description:hr_course.field_hr_course__website_message_ids
#: model:ir.model.fields,field_description:hr_course.field_hr_course_schedule__website_message_ids
msgid "Website Messages"
msgstr "Poruke sa website-a"
#. module: hr_course
#: model:ir.model.fields,help:hr_course.field_hr_course__website_message_ids
#: model:ir.model.fields,help:hr_course.field_hr_course_schedule__website_message_ids
msgid "Website communication history"
msgstr "Povijest komunikacije Web stranice"
#. module: hr_course
#. odoo-python
#: code:addons/hr_course/models/hr_course_schedule.py:0
#: code:addons/hr_course/models/hr_course_schedule.py
#, python-format
msgid "You cannot complete the course with pending results"
msgstr "Ne možete završiti tečaj s rezultatima na čekanju"
@ -614,3 +538,5 @@ msgid ""
"You should set a course back to draft only if you cancelled it by mistake or"
" if some of its information is incorrect. Do you want to continue?"
msgstr ""
"Trebate vratiti tečaj u nacrt samo ako ste ga otkazali greškom ili ako su "
"neke njegove informacije netočne. Želite li nastaviti?"