odoo-addon-hr-payroll-document 16.0.1.3.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- odoo/addons/hr_payroll_document/README.rst +95 -0
- odoo/addons/hr_payroll_document/__init__.py +2 -0
- odoo/addons/hr_payroll_document/__manifest__.py +24 -0
- odoo/addons/hr_payroll_document/data/email_payroll_employee.xml +20 -0
- odoo/addons/hr_payroll_document/i18n/ca_ES.po +309 -0
- odoo/addons/hr_payroll_document/i18n/es.po +309 -0
- odoo/addons/hr_payroll_document/i18n/hr_payroll_document.pot +245 -0
- odoo/addons/hr_payroll_document/i18n/it.po +315 -0
- odoo/addons/hr_payroll_document/models/__init__.py +4 -0
- odoo/addons/hr_payroll_document/models/hr_employee.py +34 -0
- odoo/addons/hr_payroll_document/models/ir_attachment.py +14 -0
- odoo/addons/hr_payroll_document/models/ir_attachment_payroll_custom.py +18 -0
- odoo/addons/hr_payroll_document/models/res_users.py +18 -0
- odoo/addons/hr_payroll_document/readme/CONTRIBUTORS.rst +5 -0
- odoo/addons/hr_payroll_document/readme/DESCRIPTION.rst +4 -0
- odoo/addons/hr_payroll_document/security/ir.model.access.csv +3 -0
- odoo/addons/hr_payroll_document/static/description/icon.png +0 -0
- odoo/addons/hr_payroll_document/static/description/index.html +438 -0
- odoo/addons/hr_payroll_document/tests/__init__.py +1 -0
- odoo/addons/hr_payroll_document/tests/common.py +76 -0
- odoo/addons/hr_payroll_document/tests/test.docx +0 -0
- odoo/addons/hr_payroll_document/tests/test.pdf +0 -0
- odoo/addons/hr_payroll_document/tests/test_hr_payroll_document.py +122 -0
- odoo/addons/hr_payroll_document/views/hr_employee_views.xml +20 -0
- odoo/addons/hr_payroll_document/views/res_users_views.xml +27 -0
- odoo/addons/hr_payroll_document/wizard/__init__.py +1 -0
- odoo/addons/hr_payroll_document/wizard/payroll_management_wizard.py +216 -0
- odoo/addons/hr_payroll_document/wizard/payroll_management_wizard.xml +42 -0
- odoo_addon_hr_payroll_document-16.0.1.3.1.dist-info/METADATA +112 -0
- odoo_addon_hr_payroll_document-16.0.1.3.1.dist-info/RECORD +32 -0
- odoo_addon_hr_payroll_document-16.0.1.3.1.dist-info/WHEEL +5 -0
- odoo_addon_hr_payroll_document-16.0.1.3.1.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
# Translation of Odoo Server.
|
|
2
|
+
# This file contains the translation of the following modules:
|
|
3
|
+
# * hr_payroll_document
|
|
4
|
+
#
|
|
5
|
+
msgid ""
|
|
6
|
+
msgstr ""
|
|
7
|
+
"Project-Id-Version: Odoo Server 16.0\n"
|
|
8
|
+
"Report-Msgid-Bugs-To: \n"
|
|
9
|
+
"PO-Revision-Date: 2026-01-05 19:43+0000\n"
|
|
10
|
+
"Last-Translator: mymage <stefano.consolaro@mymage.it>\n"
|
|
11
|
+
"Language-Team: none\n"
|
|
12
|
+
"Language: it\n"
|
|
13
|
+
"MIME-Version: 1.0\n"
|
|
14
|
+
"Content-Type: text/plain; charset=UTF-8\n"
|
|
15
|
+
"Content-Transfer-Encoding: \n"
|
|
16
|
+
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
|
17
|
+
"X-Generator: Weblate 5.10.4\n"
|
|
18
|
+
|
|
19
|
+
#. module: hr_payroll_document
|
|
20
|
+
#: model:mail.template,body_html:hr_payroll_document.payroll_employee_email_template
|
|
21
|
+
msgid ""
|
|
22
|
+
"\n"
|
|
23
|
+
" <html>\n"
|
|
24
|
+
" <head></head>\n"
|
|
25
|
+
" <body style=\"margin: 0; padding: 0;\">\n"
|
|
26
|
+
" <table style=\"padding:20px;background-color:#ededed; "
|
|
27
|
+
"border-collapse:separate\" width=\"100%\" cellpadding=\"0\" "
|
|
28
|
+
"border=\"0\"><tbody><!-- HEADER --><tr><td style=\"min-width:590px\" "
|
|
29
|
+
"align=\"center\"><table style=\"min-width:590px;background-color:#fff; "
|
|
30
|
+
"padding:20px; border-collapse:separate\" width=\"590\" cellpadding=\"0\" "
|
|
31
|
+
"border=\"0\"><tbody><tr><td style=\"text-align:right\" "
|
|
32
|
+
"valign=\"middle\"><img src=\"/logo.png\" style=\"padding:0px;margin:0px; "
|
|
33
|
+
"height:auto; width:80px\" alt=\"{{object.company_id.name}}\"></td></"
|
|
34
|
+
"tr><tr><td style=\"text-align:left\" valign=\"middle\"><h2 style=\"color:"
|
|
35
|
+
"rgb(28, 130, 156)\"><font style=\"color:rgb(107, 175, 103);\">Payroll <t t-"
|
|
36
|
+
"out=\"ctx.get('subject')\" contenteditable=\"false\" data-oe-t-"
|
|
37
|
+
"inline=\"true\"/></font></h2></td></tr></tbody></table></td></tr><!-- "
|
|
38
|
+
"CONTENT --><tr><td style=\"min-width:590px\" align=\"center\"><table "
|
|
39
|
+
"style=\"min-width:590px;background-color:rgb(255, 255, 255); padding:20px; "
|
|
40
|
+
"border-collapse:separate\" width=\"590\" cellpadding=\"0\" "
|
|
41
|
+
"border=\"0\"><tbody><tr><td style=\"font-family:Arial,Helvetica,sans-serif;"
|
|
42
|
+
"color:#555; font-size:14px\" valign=\"top\"><p> </p><p>Hello <t t-"
|
|
43
|
+
"out=\"object.name\" contenteditable=\"false\" data-oe-t-inline=\"true\"/>,</"
|
|
44
|
+
"p><br><p>We send you the payroll with the subject <t t-out=\"ctx."
|
|
45
|
+
"get('subject')\" contenteditable=\"false\" data-oe-t-inline=\"true\"/>.<br></"
|
|
46
|
+
"p></td></tr><tr><td style=\"font-family:Arial,Helvetica,sans-serif;color:"
|
|
47
|
+
"#555; font-size:14px\" valign=\"top\"><br></td></tr><tr><td style=\"font-"
|
|
48
|
+
"family:Arial,Helvetica,sans-serif;color:#555; font-size:14px\" "
|
|
49
|
+
"valign=\"top\"><br><p></p></td></tr></tbody></table></td></tr><!-- FOOTER --"
|
|
50
|
+
"><tr><td style=\"min-width:590px\" align=\"center\"><table style=\"min-"
|
|
51
|
+
"width:590px;background-color:#95ce3f; padding:20px; border-collapse:"
|
|
52
|
+
"separate\" width=\"590\" cellpadding=\"0\" border=\"0\"><tbody> </tbody></"
|
|
53
|
+
"table></td></tr></tbody></table>\n"
|
|
54
|
+
" <p></p>\n"
|
|
55
|
+
" </html>\n"
|
|
56
|
+
" \n"
|
|
57
|
+
" "
|
|
58
|
+
msgstr ""
|
|
59
|
+
"\n"
|
|
60
|
+
" <html>\n"
|
|
61
|
+
" <head></head>\n"
|
|
62
|
+
" <body style=\"margin: 0; padding: 0;\">\n"
|
|
63
|
+
" <table style=\"padding:20px;background-color:#ededed; "
|
|
64
|
+
"border-collapse:separate\" width=\"100%\" cellpadding=\"0\" "
|
|
65
|
+
"border=\"0\"><tbody><!-- HEADER --><tr><td style=\"min-width:590px\" "
|
|
66
|
+
"align=\"center\"><table style=\"min-width:590px;background-color:#fff; "
|
|
67
|
+
"padding:20px; border-collapse:separate\" width=\"590\" cellpadding=\"0\" "
|
|
68
|
+
"border=\"0\"><tbody><tr><td style=\"text-align:right\" "
|
|
69
|
+
"valign=\"middle\"><img src=\"/logo.png\" style=\"padding:0px;margin:0px; "
|
|
70
|
+
"height:auto; width:80px\" alt=\"{{object.company_id.name}}\"></td></"
|
|
71
|
+
"tr><tr><td style=\"text-align:left\" valign=\"middle\"><h2 style=\"color:"
|
|
72
|
+
"rgb(28, 130, 156)\"><font style=\"color:rgb(107, 175, 103);\">Stipendio<t t-"
|
|
73
|
+
"out=\"ctx.get('subject')\" contenteditable=\"false\" data-oe-t-"
|
|
74
|
+
"inline=\"true\"/></font></h2></td></tr></tbody></table></td></tr><!-- "
|
|
75
|
+
"CONTENT --><tr><td style=\"min-width:590px\" align=\"center\"><table "
|
|
76
|
+
"style=\"min-width:590px;background-color:rgb(255, 255, 255); padding:20px; "
|
|
77
|
+
"border-collapse:separate\" width=\"590\" cellpadding=\"0\" "
|
|
78
|
+
"border=\"0\"><tbody><tr><td style=\"font-family:Arial,Helvetica,sans-serif;"
|
|
79
|
+
"color:#555; font-size:14px\" valign=\"top\"><p> </p><p>Hello <t t-"
|
|
80
|
+
"out=\"object.name\" contenteditable=\"false\" data-oe-t-inline=\"true\"/>,</"
|
|
81
|
+
"p><br><p>Abbiamo inviato la retribuzione con soggetto<t t-out=\"ctx."
|
|
82
|
+
"get('subject')\" contenteditable=\"false\" data-oe-t-inline=\"true\"/>.<br></"
|
|
83
|
+
"p></td></tr><tr><td style=\"font-family:Arial,Helvetica,sans-serif;color:"
|
|
84
|
+
"#555; font-size:14px\" valign=\"top\"><br></td></tr><tr><td style=\"font-"
|
|
85
|
+
"family:Arial,Helvetica,sans-serif;color:#555; font-size:14px\" "
|
|
86
|
+
"valign=\"top\"><br><p></p></td></tr></tbody></table></td></tr><!-- FOOTER --"
|
|
87
|
+
"><tr><td style=\"min-width:590px\" align=\"center\"><table style=\"min-"
|
|
88
|
+
"width:590px;background-color:#95ce3f; padding:20px; border-collapse:"
|
|
89
|
+
"separate\" width=\"590\" cellpadding=\"0\" border=\"0\"><tbody> </tbody></"
|
|
90
|
+
"table></td></tr></tbody></table>\n"
|
|
91
|
+
" <p></p>\n"
|
|
92
|
+
" </html>\n"
|
|
93
|
+
" \n"
|
|
94
|
+
" "
|
|
95
|
+
|
|
96
|
+
#. module: hr_payroll_document
|
|
97
|
+
#: model:ir.model,name:hr_payroll_document.model_ir_attachment
|
|
98
|
+
#: model:ir.model.fields,field_description:hr_payroll_document.field_ir_attachment__payrol_rel
|
|
99
|
+
msgid "Attachment"
|
|
100
|
+
msgstr "Allegato"
|
|
101
|
+
|
|
102
|
+
#. module: hr_payroll_document
|
|
103
|
+
#: model:ir.model.fields,field_description:hr_payroll_document.field_ir_attachment_payroll_custom__attachment_id
|
|
104
|
+
msgid "Attachment File"
|
|
105
|
+
msgstr "File allegato"
|
|
106
|
+
|
|
107
|
+
#. module: hr_payroll_document
|
|
108
|
+
#: model_terms:ir.ui.view,arch_db:hr_payroll_document.payrolls_management_wizard_form
|
|
109
|
+
msgid "Close"
|
|
110
|
+
msgstr "Chiudi"
|
|
111
|
+
|
|
112
|
+
#. module: hr_payroll_document
|
|
113
|
+
#: model:ir.model.fields,field_description:hr_payroll_document.field_ir_attachment_payroll_custom__create_date
|
|
114
|
+
msgid "Create Date"
|
|
115
|
+
msgstr "Data creazione"
|
|
116
|
+
|
|
117
|
+
#. module: hr_payroll_document
|
|
118
|
+
#: model:ir.model.fields,field_description:hr_payroll_document.field_ir_attachment_payroll_custom__create_uid
|
|
119
|
+
#: model:ir.model.fields,field_description:hr_payroll_document.field_payroll_management_wizard__create_uid
|
|
120
|
+
msgid "Created by"
|
|
121
|
+
msgstr "Creato da"
|
|
122
|
+
|
|
123
|
+
#. module: hr_payroll_document
|
|
124
|
+
#: model:ir.model.fields,field_description:hr_payroll_document.field_payroll_management_wizard__create_date
|
|
125
|
+
msgid "Created on"
|
|
126
|
+
msgstr "Creato il"
|
|
127
|
+
|
|
128
|
+
#. module: hr_payroll_document
|
|
129
|
+
#: model_terms:ir.ui.view,arch_db:hr_payroll_document.res_users_view_form_profile
|
|
130
|
+
#: model_terms:ir.ui.view,arch_db:hr_payroll_document.view_employee_form
|
|
131
|
+
msgid "Disable encryption"
|
|
132
|
+
msgstr "Disabilita criptazione"
|
|
133
|
+
|
|
134
|
+
#. module: hr_payroll_document
|
|
135
|
+
#: model:ir.model.fields,field_description:hr_payroll_document.field_hr_employee__no_payroll_encryption
|
|
136
|
+
#: model:ir.model.fields,field_description:hr_payroll_document.field_res_users__no_payroll_encryption
|
|
137
|
+
msgid "Disable payrolls encryption"
|
|
138
|
+
msgstr "Disabilita criptazione buste paga"
|
|
139
|
+
|
|
140
|
+
#. module: hr_payroll_document
|
|
141
|
+
#: model:ir.model.fields,field_description:hr_payroll_document.field_ir_attachment_payroll_custom__display_name
|
|
142
|
+
#: model:ir.model.fields,field_description:hr_payroll_document.field_payroll_management_wizard__display_name
|
|
143
|
+
msgid "Display Name"
|
|
144
|
+
msgstr "Nome visualizzato"
|
|
145
|
+
|
|
146
|
+
#. module: hr_payroll_document
|
|
147
|
+
#: model:ir.model,name:hr_payroll_document.model_hr_employee
|
|
148
|
+
#: model:ir.model.fields,field_description:hr_payroll_document.field_ir_attachment_payroll_custom__employee
|
|
149
|
+
msgid "Employee"
|
|
150
|
+
msgstr "Dipendente"
|
|
151
|
+
|
|
152
|
+
#. module: hr_payroll_document
|
|
153
|
+
#. odoo-python
|
|
154
|
+
#: code:addons/hr_payroll_document/tests/test_hr_payroll_document.py:0
|
|
155
|
+
#: code:addons/hr_payroll_document/wizard/payroll_management_wizard.py:0
|
|
156
|
+
#, python-format
|
|
157
|
+
msgid "Employees not found"
|
|
158
|
+
msgstr "Dipendenti non trovati"
|
|
159
|
+
|
|
160
|
+
#. module: hr_payroll_document
|
|
161
|
+
#: model:ir.model.fields,help:hr_payroll_document.field_payroll_management_wizard__subject
|
|
162
|
+
msgid "Enter the title of the payroll whether it is the month, week, day, etc."
|
|
163
|
+
msgstr ""
|
|
164
|
+
"Inserire il titolo della retribuzione se è il mese, settimana, giorno, ecc."
|
|
165
|
+
|
|
166
|
+
#. module: hr_payroll_document
|
|
167
|
+
#: model:ir.model.fields,field_description:hr_payroll_document.field_ir_attachment_payroll_custom__id
|
|
168
|
+
#: model:ir.model.fields,field_description:hr_payroll_document.field_payroll_management_wizard__id
|
|
169
|
+
msgid "ID"
|
|
170
|
+
msgstr "ID"
|
|
171
|
+
|
|
172
|
+
#. module: hr_payroll_document
|
|
173
|
+
#. odoo-python
|
|
174
|
+
#: code:addons/hr_payroll_document/tests/test_hr_payroll_document.py:0
|
|
175
|
+
#: code:addons/hr_payroll_document/wizard/payroll_management_wizard.py:0
|
|
176
|
+
#, python-format
|
|
177
|
+
msgid "IDs whose employee has not been found: "
|
|
178
|
+
msgstr "ID il cui dipendente non è stato trovato: "
|
|
179
|
+
|
|
180
|
+
#. module: hr_payroll_document
|
|
181
|
+
#: model:ir.model.fields,field_description:hr_payroll_document.field_ir_attachment_payroll_custom__identification_id
|
|
182
|
+
msgid "Identification ID"
|
|
183
|
+
msgstr "ID identificazione"
|
|
184
|
+
|
|
185
|
+
#. module: hr_payroll_document
|
|
186
|
+
#: model:ir.model.fields,help:hr_payroll_document.field_hr_employee__no_payroll_encryption
|
|
187
|
+
#: model:ir.model.fields,help:hr_payroll_document.field_res_users__no_payroll_encryption
|
|
188
|
+
msgid ""
|
|
189
|
+
"If this is disabled (default), the PDF payrolls are encrypted using the "
|
|
190
|
+
"Identification No.\n"
|
|
191
|
+
"Only future payrolls are affected by this change, existing payrolls will not "
|
|
192
|
+
"change their encryption status."
|
|
193
|
+
msgstr ""
|
|
194
|
+
"Se questa opzione è disabilitata (impostazione predefinita), le buste paga "
|
|
195
|
+
"in formato PDF vengono crittografate utilizzando il numero di "
|
|
196
|
+
"identificazione.\n"
|
|
197
|
+
"Questa modifica interesserà solo le buste paga future, mentre quelle "
|
|
198
|
+
"esistenti non modificheranno il loro stato di crittografia."
|
|
199
|
+
|
|
200
|
+
#. module: hr_payroll_document
|
|
201
|
+
#: model:ir.model.fields,field_description:hr_payroll_document.field_ir_attachment_payroll_custom____last_update
|
|
202
|
+
#: model:ir.model.fields,field_description:hr_payroll_document.field_payroll_management_wizard____last_update
|
|
203
|
+
msgid "Last Modified on"
|
|
204
|
+
msgstr "Ultima modifica il"
|
|
205
|
+
|
|
206
|
+
#. module: hr_payroll_document
|
|
207
|
+
#: model:ir.model.fields,field_description:hr_payroll_document.field_ir_attachment_payroll_custom__write_uid
|
|
208
|
+
#: model:ir.model.fields,field_description:hr_payroll_document.field_payroll_management_wizard__write_uid
|
|
209
|
+
msgid "Last Updated by"
|
|
210
|
+
msgstr "Ultimo aggiornamento di"
|
|
211
|
+
|
|
212
|
+
#. module: hr_payroll_document
|
|
213
|
+
#: model:ir.model.fields,field_description:hr_payroll_document.field_ir_attachment_payroll_custom__write_date
|
|
214
|
+
#: model:ir.model.fields,field_description:hr_payroll_document.field_payroll_management_wizard__write_date
|
|
215
|
+
msgid "Last Updated on"
|
|
216
|
+
msgstr "Ultimo aggiornamento il"
|
|
217
|
+
|
|
218
|
+
#. module: hr_payroll_document
|
|
219
|
+
#. odoo-python
|
|
220
|
+
#: code:addons/hr_payroll_document/wizard/payroll_management_wizard.py:0
|
|
221
|
+
#, python-format
|
|
222
|
+
msgid "Missing pdf file signature"
|
|
223
|
+
msgstr "Firma PDF mancante"
|
|
224
|
+
|
|
225
|
+
#. module: hr_payroll_document
|
|
226
|
+
#. odoo-python
|
|
227
|
+
#: code:addons/hr_payroll_document/wizard/payroll_management_wizard.py:0
|
|
228
|
+
#: model_terms:ir.ui.view,arch_db:hr_payroll_document.res_users_view_form_profile
|
|
229
|
+
#, python-format
|
|
230
|
+
msgid "Payroll"
|
|
231
|
+
msgstr "Retribuzione"
|
|
232
|
+
|
|
233
|
+
#. module: hr_payroll_document
|
|
234
|
+
#. odoo-python
|
|
235
|
+
#: code:addons/hr_payroll_document/wizard/payroll_management_wizard.py:0
|
|
236
|
+
#, python-format
|
|
237
|
+
msgid "Payroll "
|
|
238
|
+
msgstr "Retribuzione "
|
|
239
|
+
|
|
240
|
+
#. module: hr_payroll_document
|
|
241
|
+
#: model:mail.template,name:hr_payroll_document.payroll_employee_email_template
|
|
242
|
+
msgid "Payroll Employee"
|
|
243
|
+
msgstr "Retribuzione dipendente"
|
|
244
|
+
|
|
245
|
+
#. module: hr_payroll_document
|
|
246
|
+
#: model:ir.model,name:hr_payroll_document.model_payroll_management_wizard
|
|
247
|
+
msgid "Payroll Management"
|
|
248
|
+
msgstr "Gestione retribuzione"
|
|
249
|
+
|
|
250
|
+
#. module: hr_payroll_document
|
|
251
|
+
#: model:ir.model,name:hr_payroll_document.model_ir_attachment_payroll_custom
|
|
252
|
+
msgid "Payroll attachment"
|
|
253
|
+
msgstr "Allegato retribuzione"
|
|
254
|
+
|
|
255
|
+
#. module: hr_payroll_document
|
|
256
|
+
#: model:mail.template,subject:hr_payroll_document.payroll_employee_email_template
|
|
257
|
+
msgid "Payroll {{ctx.get('subject')}}"
|
|
258
|
+
msgstr "Retribuzione {{ctx.get('subject')}}"
|
|
259
|
+
|
|
260
|
+
#. module: hr_payroll_document
|
|
261
|
+
#: model:ir.model.fields,field_description:hr_payroll_document.field_payroll_management_wizard__payrolls
|
|
262
|
+
msgid "Payrolls"
|
|
263
|
+
msgstr "Retribuzioni"
|
|
264
|
+
|
|
265
|
+
#. module: hr_payroll_document
|
|
266
|
+
#: model:ir.actions.act_window,name:hr_payroll_document.payrolls_management_wizard_action
|
|
267
|
+
#: model:ir.ui.menu,name:hr_payroll_document.payrolls_management_wizard_menu_action
|
|
268
|
+
msgid "Payrolls Management"
|
|
269
|
+
msgstr "Gestione retribuzioni"
|
|
270
|
+
|
|
271
|
+
#. module: hr_payroll_document
|
|
272
|
+
#. odoo-python
|
|
273
|
+
#: code:addons/hr_payroll_document/tests/test_hr_payroll_document.py:0
|
|
274
|
+
#: code:addons/hr_payroll_document/wizard/payroll_management_wizard.py:0
|
|
275
|
+
#, python-format
|
|
276
|
+
msgid "Payrolls sent"
|
|
277
|
+
msgstr "Retribuzioni inviate"
|
|
278
|
+
|
|
279
|
+
#. module: hr_payroll_document
|
|
280
|
+
#. odoo-python
|
|
281
|
+
#: code:addons/hr_payroll_document/tests/test_hr_payroll_document.py:0
|
|
282
|
+
#: code:addons/hr_payroll_document/wizard/payroll_management_wizard.py:0
|
|
283
|
+
#, python-format
|
|
284
|
+
msgid "Payrolls sent to employees correctly"
|
|
285
|
+
msgstr "Retribuzioni inviate correttamente ai dipendenti"
|
|
286
|
+
|
|
287
|
+
#. module: hr_payroll_document
|
|
288
|
+
#: model_terms:ir.ui.view,arch_db:hr_payroll_document.payrolls_management_wizard_form
|
|
289
|
+
msgid "Send"
|
|
290
|
+
msgstr "Invia"
|
|
291
|
+
|
|
292
|
+
#. module: hr_payroll_document
|
|
293
|
+
#: model:ir.model.fields,field_description:hr_payroll_document.field_ir_attachment_payroll_custom__subject
|
|
294
|
+
#: model:ir.model.fields,field_description:hr_payroll_document.field_payroll_management_wizard__subject
|
|
295
|
+
msgid "Subject"
|
|
296
|
+
msgstr "Oggetto"
|
|
297
|
+
|
|
298
|
+
#. module: hr_payroll_document
|
|
299
|
+
#. odoo-python
|
|
300
|
+
#: code:addons/hr_payroll_document/models/hr_employee.py:0
|
|
301
|
+
#, python-format
|
|
302
|
+
msgid "The field identification ID is not valid"
|
|
303
|
+
msgstr "L'ID identificazione file non è corretto"
|
|
304
|
+
|
|
305
|
+
#. module: hr_payroll_document
|
|
306
|
+
#: model:ir.model,name:hr_payroll_document.model_res_users
|
|
307
|
+
msgid "User"
|
|
308
|
+
msgstr "Utente"
|
|
309
|
+
|
|
310
|
+
#. module: hr_payroll_document
|
|
311
|
+
#. odoo-python
|
|
312
|
+
#: code:addons/hr_payroll_document/wizard/payroll_management_wizard.py:0
|
|
313
|
+
#, python-format
|
|
314
|
+
msgid "You must to filled country field of company"
|
|
315
|
+
msgstr "Serve compilare il campo nazione dell'azienda"
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Copyright 2025 Simone Rubino - PyTech
|
|
2
|
+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
|
3
|
+
|
|
4
|
+
from odoo import _, api, fields, models
|
|
5
|
+
from odoo.exceptions import ValidationError
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class Employee(models.Model):
|
|
9
|
+
_inherit = "hr.employee"
|
|
10
|
+
|
|
11
|
+
no_payroll_encryption = fields.Boolean(
|
|
12
|
+
string="Disable payrolls encryption",
|
|
13
|
+
help="If this is disabled (default), "
|
|
14
|
+
"the PDF payrolls are encrypted using the Identification No.\n"
|
|
15
|
+
"Only future payrolls are affected by this change, "
|
|
16
|
+
"existing payrolls will not change their encryption status.",
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
def _validate_payroll_identification(self, code=None):
|
|
20
|
+
# Override if the identification should be validated in another way
|
|
21
|
+
if code is None and len(self) == 1:
|
|
22
|
+
code = self.identification_id
|
|
23
|
+
if country_code := self.env.company.country_id.code:
|
|
24
|
+
is_valid = self.env["res.partner"].simple_vat_check(country_code, code)
|
|
25
|
+
else:
|
|
26
|
+
is_valid = True
|
|
27
|
+
return is_valid
|
|
28
|
+
|
|
29
|
+
@api.constrains("identification_id")
|
|
30
|
+
def _constrain_payroll_identification(self):
|
|
31
|
+
# Only check the employees that have an `identification_id`
|
|
32
|
+
for employee in self.filtered("identification_id"):
|
|
33
|
+
if not employee._validate_payroll_identification():
|
|
34
|
+
raise ValidationError(_("The field identification ID is not valid"))
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
from odoo import fields, models
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class Attachment(models.Model):
|
|
5
|
+
_inherit = "ir.attachment"
|
|
6
|
+
|
|
7
|
+
payrol_rel = fields.Many2many(
|
|
8
|
+
"payroll.management.wizard",
|
|
9
|
+
"payrolls",
|
|
10
|
+
"attachment_id3",
|
|
11
|
+
"document_id",
|
|
12
|
+
string="Attachment",
|
|
13
|
+
invisible=1,
|
|
14
|
+
)
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
from odoo import fields, models
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class IRAttachmentPayrollCustom(models.Model):
|
|
5
|
+
_name = "ir.attachment.payroll.custom"
|
|
6
|
+
_description = "Payroll attachment"
|
|
7
|
+
|
|
8
|
+
attachment_id = fields.Many2one(
|
|
9
|
+
comodel_name="ir.attachment",
|
|
10
|
+
string="Attachment File",
|
|
11
|
+
prefetch=False,
|
|
12
|
+
invisible=True,
|
|
13
|
+
ondelete="cascade",
|
|
14
|
+
)
|
|
15
|
+
employee = fields.Char()
|
|
16
|
+
identification_id = fields.Char("Identification ID")
|
|
17
|
+
create_date = fields.Date(default=fields.Date.context_today)
|
|
18
|
+
subject = fields.Char()
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Copyright 2025 Simone Rubino - PyTech
|
|
2
|
+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
|
3
|
+
|
|
4
|
+
from odoo import fields, models
|
|
5
|
+
|
|
6
|
+
from odoo.addons.hr.models.res_users import HR_WRITABLE_FIELDS
|
|
7
|
+
|
|
8
|
+
HR_WRITABLE_FIELDS.append("no_payroll_encryption")
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ResUsers(models.Model):
|
|
12
|
+
_inherit = "res.users"
|
|
13
|
+
|
|
14
|
+
no_payroll_encryption = fields.Boolean(
|
|
15
|
+
related="employee_id.no_payroll_encryption",
|
|
16
|
+
readonly=False,
|
|
17
|
+
related_sudo=False,
|
|
18
|
+
)
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
This module have a wizard view to manage the different payrolls of employees which is identified by the identification_id attribute.
|
|
2
|
+
|
|
3
|
+
By default, the employee's payroll is encrypted using their identification number.
|
|
4
|
+
This behavior can be changed by the employee in their profile or by HR in the employee's form.
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
|
2
|
+
payroll_management_wizard,payroll.management.wizard,model_payroll_management_wizard,hr.group_hr_manager,1,1,1,1
|
|
3
|
+
ir_attachment_payroll_custom,ir.attachment.payroll.custom,model_ir_attachment_payroll_custom,hr.group_hr_manager,1,1,1,1
|
|
Binary file
|