From bd629d5bb28065f5ff4d0c7f05a08d271522dca5 Mon Sep 17 00:00:00 2001
From: ps-tubtim
Date: Mon, 17 Aug 2020 14:57:43 +0700
Subject: [PATCH 01/16] [12.0][ADD] hr_expense_advance_clearing_sequence
---
.../README.rst | 84 ++++
.../__init__.py | 3 +
.../__manifest__.py | 20 +
.../data/hr_expense_data.xml | 11 +
.../models/__init__.py | 3 +
.../models/hr_expense_sheet.py | 24 +
.../readme/CONFIGURE.rst | 6 +
.../readme/CONTRIBUTORS.rst | 1 +
.../readme/DESCRIPTION.rst | 2 +
.../static/description/icon.png | Bin 0 -> 9455 bytes
.../static/description/index.html | 429 ++++++++++++++++++
.../tests/__init__.py | 3 +
...st_hr_expense_advance_clearing_sequence.py | 96 ++++
13 files changed, 682 insertions(+)
create mode 100644 hr_expense_advance_clearing_sequence/README.rst
create mode 100644 hr_expense_advance_clearing_sequence/__init__.py
create mode 100644 hr_expense_advance_clearing_sequence/__manifest__.py
create mode 100644 hr_expense_advance_clearing_sequence/data/hr_expense_data.xml
create mode 100644 hr_expense_advance_clearing_sequence/models/__init__.py
create mode 100644 hr_expense_advance_clearing_sequence/models/hr_expense_sheet.py
create mode 100644 hr_expense_advance_clearing_sequence/readme/CONFIGURE.rst
create mode 100644 hr_expense_advance_clearing_sequence/readme/CONTRIBUTORS.rst
create mode 100644 hr_expense_advance_clearing_sequence/readme/DESCRIPTION.rst
create mode 100644 hr_expense_advance_clearing_sequence/static/description/icon.png
create mode 100644 hr_expense_advance_clearing_sequence/static/description/index.html
create mode 100644 hr_expense_advance_clearing_sequence/tests/__init__.py
create mode 100644 hr_expense_advance_clearing_sequence/tests/test_hr_expense_advance_clearing_sequence.py
diff --git a/hr_expense_advance_clearing_sequence/README.rst b/hr_expense_advance_clearing_sequence/README.rst
new file mode 100644
index 000000000..8b924fc92
--- /dev/null
+++ b/hr_expense_advance_clearing_sequence/README.rst
@@ -0,0 +1,84 @@
+====================================
+HR Expense Advance Clearing Sequence
+====================================
+
+.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! This file is generated by oca-gen-addon-readme !!
+ !! changes will be overwritten. !!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+.. |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%2Fhr-lightgray.png?logo=github
+ :target: https://github.com/OCA/hr/tree/12.0/hr_expense_advance_clearing_sequence
+ :alt: OCA/hr
+.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
+ :target: https://translation.odoo-community.org/projects/hr-12-0/hr-12-0-hr_expense_advance_clearing_sequence
+ :alt: Translate me on Weblate
+.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
+ :target: https://runbot.odoo-community.org/runbot/116/12.0
+ :alt: Try me on Runbot
+
+|badge1| |badge2| |badge3| |badge4| |badge5|
+
+This module adds the possibility to define a sequence for the expense report's reference that Employee advance.
+This reference is then set as default when you create a new expense report, using the defined sequence.
+
+**Table of contents**
+
+.. contents::
+ :local:
+
+Configuration
+=============
+
+You can change the default sequence (EXAV0001) by the one of your choice
+going to *Settings > Technical > Sequences & Identifiers > Sequences*, and
+editing the record `Expense report sequence (Advance)`.
+
+You will only have access to that section if your section has `Technical features`
+permission check marked.
+
+Bug Tracker
+===========
+
+Bugs are tracked on `GitHub Issues `_.
+In case of trouble, please check there if your issue has already been reported.
+If you spotted it first, help us smashing it by providing a detailed and welcomed
+`feedback `_.
+
+Do not contact contributors directly about support or help with technical issues.
+
+Credits
+=======
+
+Authors
+~~~~~~~
+
+* Ecosoft
+
+Contributors
+~~~~~~~~~~~~
+
+* Pimolnat Suntian
+
+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/hr `_ project on GitHub.
+
+You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/hr_expense_advance_clearing_sequence/__init__.py b/hr_expense_advance_clearing_sequence/__init__.py
new file mode 100644
index 000000000..8ebc8a7c5
--- /dev/null
+++ b/hr_expense_advance_clearing_sequence/__init__.py
@@ -0,0 +1,3 @@
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html)
+
+from . import models
diff --git a/hr_expense_advance_clearing_sequence/__manifest__.py b/hr_expense_advance_clearing_sequence/__manifest__.py
new file mode 100644
index 000000000..d5f174ee0
--- /dev/null
+++ b/hr_expense_advance_clearing_sequence/__manifest__.py
@@ -0,0 +1,20 @@
+# Copyright 2019 Ecosoft Co., Ltd (http://ecosoft.co.th/)
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html)
+
+{
+ 'name': 'HR Expense Advance Clearing Sequence',
+ 'version': '12.0.1.0.0',
+ 'license': 'AGPL-3',
+ 'category': 'Human Resources',
+ 'author': 'Ecosoft, Odoo Community Association (OCA)',
+ 'website': 'https://github.com/OCA/hr',
+ 'depends': [
+ 'hr_expense_sequence',
+ 'hr_expense_advance_clearing',
+ ],
+ 'data': [
+ 'data/hr_expense_data.xml',
+ ],
+ 'installable': True,
+ 'maintainer': 'ps-tubtim',
+}
diff --git a/hr_expense_advance_clearing_sequence/data/hr_expense_data.xml b/hr_expense_advance_clearing_sequence/data/hr_expense_data.xml
new file mode 100644
index 000000000..495198211
--- /dev/null
+++ b/hr_expense_advance_clearing_sequence/data/hr_expense_data.xml
@@ -0,0 +1,11 @@
+
+
+
+
+ Expense report sequence (Advance)
+ hr.expense.sheet.advance
+
+ EXAV
+
+
+
diff --git a/hr_expense_advance_clearing_sequence/models/__init__.py b/hr_expense_advance_clearing_sequence/models/__init__.py
new file mode 100644
index 000000000..38117e21e
--- /dev/null
+++ b/hr_expense_advance_clearing_sequence/models/__init__.py
@@ -0,0 +1,3 @@
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html)
+
+from . import hr_expense_sheet
diff --git a/hr_expense_advance_clearing_sequence/models/hr_expense_sheet.py b/hr_expense_advance_clearing_sequence/models/hr_expense_sheet.py
new file mode 100644
index 000000000..ef21157ed
--- /dev/null
+++ b/hr_expense_advance_clearing_sequence/models/hr_expense_sheet.py
@@ -0,0 +1,24 @@
+# Copyright 2019 Ecosoft Co., Ltd (http://ecosoft.co.th/)
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html)
+
+from odoo import api, models
+
+
+class HrExpenseSheet(models.Model):
+ _inherit = 'hr.expense.sheet'
+ _rec_name = 'number'
+
+ @api.model
+ def create(self, vals):
+ if 'expense_line_ids' in vals.keys():
+ from_expense = vals['expense_line_ids'][0][1]
+ if from_expense:
+ expense = self.env['hr.expense'].browse(from_expense)
+ else:
+ from_report = vals['expense_line_ids'][0][2][0]
+ expense = self.env['hr.expense'].browse(from_report)
+ if vals.get('number', '/') == '/' and expense.advance:
+ number = self.env['ir.sequence'].next_by_code(
+ 'hr.expense.sheet.advance')
+ vals['number'] = number
+ return super(HrExpenseSheet, self).create(vals)
diff --git a/hr_expense_advance_clearing_sequence/readme/CONFIGURE.rst b/hr_expense_advance_clearing_sequence/readme/CONFIGURE.rst
new file mode 100644
index 000000000..f4f415a42
--- /dev/null
+++ b/hr_expense_advance_clearing_sequence/readme/CONFIGURE.rst
@@ -0,0 +1,6 @@
+You can change the default sequence (EXAV0001) by the one of your choice
+going to *Settings > Technical > Sequences & Identifiers > Sequences*, and
+editing the record `Expense report sequence (Advance)`.
+
+You will only have access to that section if your section has `Technical features`
+permission check marked.
diff --git a/hr_expense_advance_clearing_sequence/readme/CONTRIBUTORS.rst b/hr_expense_advance_clearing_sequence/readme/CONTRIBUTORS.rst
new file mode 100644
index 000000000..0ef1f84c3
--- /dev/null
+++ b/hr_expense_advance_clearing_sequence/readme/CONTRIBUTORS.rst
@@ -0,0 +1 @@
+* Pimolnat Suntian
diff --git a/hr_expense_advance_clearing_sequence/readme/DESCRIPTION.rst b/hr_expense_advance_clearing_sequence/readme/DESCRIPTION.rst
new file mode 100644
index 000000000..2d68ce3ba
--- /dev/null
+++ b/hr_expense_advance_clearing_sequence/readme/DESCRIPTION.rst
@@ -0,0 +1,2 @@
+This module adds the possibility to define a sequence for the expense report's reference that Employee advance.
+This reference is then set as default when you create a new expense report, using the defined sequence.
diff --git a/hr_expense_advance_clearing_sequence/static/description/icon.png b/hr_expense_advance_clearing_sequence/static/description/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d
GIT binary patch
literal 9455
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
z
z?n?eq1XP>p-IM$Z^C;2L3itnbJZAip*Zo0aw2bs8@(s^~*8T9go!%dHcAz2lM;`yp
zD=7&xjFV$S&5uDaiScyD?B-i1ze`+CoRtz`Wn+Zls4&}MO{@N!ufrzjG$B79)Y2d3tBk&)TxUTw@QS0TEL_?njX|@vq?Uz(nBFK5Pq7*xj#u*R&i|?7+6#
z+|r_n#SW&LXhtheZdah{ZVoqwyT{D>MC3nkFF#N)xLi{p7J1jXlmVeb;cP5?e(=f#
zuT7fvjSbjS781v?7{)-X3*?>tq?)Yd)~|1{BDS(pqC
zC}~H#WXlkUW*H5CDOo<)#x7%RY)A;ShGhI5s*#cRDA8YgqG(HeKDx+#(ZQ?386dv!
zlXCO)w91~Vw4AmOcATuV653fa9R$fyK8ul%rG
z-wfS
zihugoZyr38Im?Zuh6@RcF~t1anQu7>#lPpb#}4cOA!EM11`%f*07RqOVkmX{p~KJ9
z^zP;K#|)$`^Rb{rnHGH{~>1(fawV0*Z#)}M`m8-?ZJV<+e}s9wE#
z)l&az?w^5{)`S(%MRzxdNqrs1n*-=jS^_jqE*5XDrA0+VE`5^*p3CuM<&dZEeCjoz
zR;uu_H9ZPZV|fQq`Cyw4nscrVwi!fE6ciMmX$!_hN7uF;jjKG)d2@aC4ropY)8etW=xJvni)8eHi`H$%#zn^WJ5NLc-rqk|u&&4Z6fD_m&JfSI1Bvb?b<*n&sfl0^t
z=HnmRl`XrFvMKB%9}>PaA`m-fK6a0(8=qPkWS5bb4=v?XcWi&hRY?O5HdulRi4?fN
zlsJ*N-0Qw+Yic@s0(2uy%F@ib;GjXt01Fmx5XbRo6+n|pP(&nodMoap^z{~q
ziEeaUT@Mxe3vJSfI6?uLND(CNr=#^W<1b}jzW58bIfyWTDle$mmS(|x-0|2UlX+9k
zQ^EX7Nw}?EzVoBfT(-LT|=9N@^hcn-_p&sqG
z&*oVs2JSU+N4ZD`FhCAWaS;>|wH2G*Id|?pa#@>tyxX`+4HyIArWDvVrX)2WAOQff
z0qyHu&-S@i^MS-+j--!pr4fPBj~_8({~e1bfcl0wI1kaoN>mJL6KUPQm5N7lB(ui1
zE-o%kq)&djzWJ}ob<-GfDlkB;F31j-VHKvQUGQ3sp`CwyGJk_i!y^sD0fqC@$9|jO
zOqN!r!8-p==F@ZVP=U$qSpY(gQ0)59P1&t@y?5rvg<}E+GB}26NYPp4f2YFQrQtot5mn3wu_qprZ=>Ig-$
zbW26Ws~IgY>}^5w`vTB(G`PTZaDiGBo5o(tp)qli|NeV(
z@H_=R8V39rt5J5YB2Ky?4eJJ#b`_iBe2ot~6%7mLt5t8Vwi^Jy7|jWXqa3amOIoRb
zOr}WVFP--DsS`1WpN%~)t3R!arKF^Q$e12KEqU36AWwnCBICpH4XCsfnyrHr>$I$4
z!DpKX$OKLWarN7nv@!uIA+~RNO)l$$w}p(;b>mx8pwYvu;dD_unryX_NhT8*Tj>BTrTTL&!?O+%Rv;b?B??gSzdp?6Uug9{
zd@V08Z$BdI?fpoCS$)t4mg4rT8Q_I}h`0d-vYZ^|dOB*Q^S|xqTV*vIg?@fVFSmMpaw0qtTRbx}
z({Pg?#{2`sc9)M5N$*N|4;^t$+QP?#mov
zGVC@I*lBVrOU-%2y!7%)fAKjpEFsgQc4{amtiHb95KQEwvf<(3T<9-Zm$xIew#P22
zc2Ix|App^>v6(3L_MCU0d3W##AB0M~3D00EWoKZqsJYT(#@w$Y_H7G22M~ApVFTRHMI_3be)Lkn#0F*V8Pq
zc}`Cjy$bE;FJ6H7p=0y#R>`}-m4(0F>%@P|?7fx{=R^uFdISRnZ2W_xQhD{YuR3t<
z{6yxu=4~JkeA;|(J6_nv#>Nvs&FuLA&PW^he@t(UwFFE8)|a!R{`E`K`i^ZnyE4$k
z;(749Ix|oi$c3QbEJ3b~D_kQsPz~fIUKym($a_7dJ?o+40*OLl^{=&oq$<#Q(yyrp
z{J-FAniyAw9tPbe&IhQ|a`DqFTVQGQ&Gq3!C2==4x{6EJwiPZ8zub-iXoUtkJiG{}
zPaR&}_fn8_z~(=;5lD-aPWD3z8PZS@AaUiomF!G8I}Mf>e~0g#BelA-5#`cj;O5>N
Xviia!U7SGha1wx#SCgwmn*{w2TRX*I
literal 0
HcmV?d00001
diff --git a/hr_expense_advance_clearing_sequence/static/description/index.html b/hr_expense_advance_clearing_sequence/static/description/index.html
new file mode 100644
index 000000000..c0ddaf36e
--- /dev/null
+++ b/hr_expense_advance_clearing_sequence/static/description/index.html
@@ -0,0 +1,429 @@
+
+
+
+
+
+
+HR Expense Advance Clearing Sequence
+
+
+
+
+
HR Expense Advance Clearing Sequence
+
+
+
![Try me on Runbot](https://img.shields.io/badge/runbot-Try%20me-875A7B.png)
+
This module adds the possibility to define a sequence for the expense report’s reference that Employee advance.
+This reference is then set as default when you create a new expense report, using the defined sequence.
+
Table of contents
+
+
+
+
You can change the default sequence (EXAV0001) by the one of your choice
+going to Settings > Technical > Sequences & Identifiers > Sequences, and
+editing the record Expense report sequence (Advance).
+
You will only have access to that section if your section has Technical features
+permission check marked.
+
+
+
+
Bugs are tracked on GitHub Issues.
+In case of trouble, please check there if your issue has already been reported.
+If you spotted it first, help us smashing it by providing a detailed and welcomed
+feedback.
+
Do not contact contributors directly about support or help with technical issues.
+
+
+
+
+
+
+
+
This module is maintained by the OCA.
+
![Odoo Community Association](https://odoo-community.org/logo.png)
+
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/hr project on GitHub.
+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
+
+
+
+
+
diff --git a/hr_expense_advance_clearing_sequence/tests/__init__.py b/hr_expense_advance_clearing_sequence/tests/__init__.py
new file mode 100644
index 000000000..7cb5c3276
--- /dev/null
+++ b/hr_expense_advance_clearing_sequence/tests/__init__.py
@@ -0,0 +1,3 @@
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html)
+
+from . import test_hr_expense_advance_clearing_sequence
diff --git a/hr_expense_advance_clearing_sequence/tests/test_hr_expense_advance_clearing_sequence.py b/hr_expense_advance_clearing_sequence/tests/test_hr_expense_advance_clearing_sequence.py
new file mode 100644
index 000000000..84e6b3c42
--- /dev/null
+++ b/hr_expense_advance_clearing_sequence/tests/test_hr_expense_advance_clearing_sequence.py
@@ -0,0 +1,96 @@
+# Copyright 2019 Ecosoft Co., Ltd (http://ecosoft.co.th/)
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html)
+
+from odoo.tests.common import Form, SavepointCase
+
+
+class TestHrExpenseAdvanceClearingSequence(SavepointCase):
+
+ @classmethod
+ def setUpClass(self):
+ super().setUpClass()
+ self.expense_model = self.env['hr.expense']
+ self.expense_sheet_model = self.env['hr.expense.sheet']
+ self.product = self.env.ref('product.product_product_4')
+
+ employee_home = self.env['res.partner'].create({
+ 'name': 'Employee Home Address',
+ })
+ self.employee = self.env['hr.employee'].create({
+ 'name': 'Employee',
+ 'address_home_id': employee_home.id,
+ })
+ advance_account = self.env['account.account'].create({
+ 'code': '154000',
+ 'name': 'Employee Advance',
+ 'user_type_id': self.env.ref(
+ 'account.data_account_type_current_assets').id,
+ 'reconcile': True,
+ })
+ self.emp_advance = self.env.ref('hr_expense_advance_clearing.'
+ 'product_emp_advance')
+ self.emp_advance.property_account_expense_id = advance_account
+
+ self.expense = self._create_expense(self, 'Advance 1,000', self.employee,
+ self.emp_advance, 1000.0, advance=True)
+
+ self.sheet = self._create_expense_sheet(
+ self, 'Advance 1,000', self.employee, self.emp_advance, 1000.0,
+ advance=True)
+
+ def _create_expense(self, description, employee,
+ product, amount, advance=False,
+ payment_mode='own_account'):
+ with Form(self.env['hr.expense']) as expense:
+ expense.advance = advance
+ expense.name = description
+ expense.employee_id = employee
+ expense.product_id = product
+ expense.unit_amount = amount
+ expense.payment_mode = payment_mode
+ expense = expense.save()
+ expense.tax_ids = False # Test no vat
+ return expense
+
+ def _create_expense_sheet(self, description, employee,
+ product, amount, advance=False):
+ expense = self._create_expense(self, description, employee,
+ product, amount, advance)
+ # Add expense to expense sheet
+ expense_sheet = self.env['hr.expense.sheet'].create({
+ 'name': description,
+ 'employee_id': expense.employee_id.id,
+ 'expense_line_ids': [(6, 0, [expense.id])],
+ })
+ return expense_sheet
+
+ def test_create_sequence_from_expense(self):
+ # Test number != '/'
+ expense_sheet = self.env['hr.expense.sheet'].create({
+ 'name': 'Advance 1,000',
+ 'employee_id': self.expense.employee_id.id,
+ 'expense_line_ids': [[4, self.expense.id, False]],
+ })
+ self.assertNotEqual(expense_sheet.number, '/', 'Number create')
+ # Test number 1 != number 2
+ sheet_number_1 = expense_sheet.number
+ sheet2 = expense_sheet.copy()
+ sheet_number_2 = sheet2.number
+ self.assertNotEqual(
+ sheet_number_1,
+ sheet_number_2,
+ 'Numbers are different'
+ )
+
+ def test_create_sequence_from_report(self):
+ # Test number != '/'
+ self.assertNotEqual(self.sheet.number, '/', 'Number create')
+ # Test number 1 != number 2
+ sheet_number_1 = self.sheet.number
+ sheet2 = self.sheet.copy()
+ sheet_number_2 = sheet2.number
+ self.assertNotEqual(
+ sheet_number_1,
+ sheet_number_2,
+ 'Numbers are different'
+ )
From 3b85105d4791a0b2eb904786b2ebc40f514b6693 Mon Sep 17 00:00:00 2001
From: oca-travis
Date: Mon, 17 Aug 2020 08:43:51 +0000
Subject: [PATCH 02/16] [UPD] Update hr_expense_advance_clearing_sequence.pot
---
.../hr_expense_advance_clearing_sequence.pot | 20 +++++++++++++++++++
1 file changed, 20 insertions(+)
create mode 100644 hr_expense_advance_clearing_sequence/i18n/hr_expense_advance_clearing_sequence.pot
diff --git a/hr_expense_advance_clearing_sequence/i18n/hr_expense_advance_clearing_sequence.pot b/hr_expense_advance_clearing_sequence/i18n/hr_expense_advance_clearing_sequence.pot
new file mode 100644
index 000000000..c2fa170ab
--- /dev/null
+++ b/hr_expense_advance_clearing_sequence/i18n/hr_expense_advance_clearing_sequence.pot
@@ -0,0 +1,20 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * hr_expense_advance_clearing_sequence
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 12.0\n"
+"Report-Msgid-Bugs-To: \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_expense_advance_clearing_sequence
+#: model:ir.model,name:hr_expense_advance_clearing_sequence.model_hr_expense_sheet
+msgid "Expense Report"
+msgstr ""
+
From 20e40c3853a4632803d8dbec30a97a6f1dbf2fc3 Mon Sep 17 00:00:00 2001
From: Saran440
Date: Sat, 10 Oct 2020 21:57:16 +0700
Subject: [PATCH 03/16] [IMP] hr_expense_advance_clearing_sequence : black,
isort, prettier
---
.../__manifest__.py | 25 ++--
.../data/hr_expense_data.xml | 6 +-
.../models/hr_expense_sheet.py | 23 ++--
...st_hr_expense_advance_clearing_sequence.py | 119 +++++++++---------
4 files changed, 86 insertions(+), 87 deletions(-)
diff --git a/hr_expense_advance_clearing_sequence/__manifest__.py b/hr_expense_advance_clearing_sequence/__manifest__.py
index d5f174ee0..8f96d0328 100644
--- a/hr_expense_advance_clearing_sequence/__manifest__.py
+++ b/hr_expense_advance_clearing_sequence/__manifest__.py
@@ -2,19 +2,14 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html)
{
- 'name': 'HR Expense Advance Clearing Sequence',
- 'version': '12.0.1.0.0',
- 'license': 'AGPL-3',
- 'category': 'Human Resources',
- 'author': 'Ecosoft, Odoo Community Association (OCA)',
- 'website': 'https://github.com/OCA/hr',
- 'depends': [
- 'hr_expense_sequence',
- 'hr_expense_advance_clearing',
- ],
- 'data': [
- 'data/hr_expense_data.xml',
- ],
- 'installable': True,
- 'maintainer': 'ps-tubtim',
+ "name": "HR Expense Advance Clearing Sequence",
+ "version": "12.0.1.0.0",
+ "license": "AGPL-3",
+ "category": "Human Resources",
+ "author": "Ecosoft, Odoo Community Association (OCA)",
+ "website": "https://github.com/OCA/hr",
+ "depends": ["hr_expense_sequence", "hr_expense_advance_clearing"],
+ "data": ["data/hr_expense_data.xml"],
+ "installable": True,
+ "maintainer": "ps-tubtim",
}
diff --git a/hr_expense_advance_clearing_sequence/data/hr_expense_data.xml b/hr_expense_advance_clearing_sequence/data/hr_expense_data.xml
index 495198211..1789f14d2 100644
--- a/hr_expense_advance_clearing_sequence/data/hr_expense_data.xml
+++ b/hr_expense_advance_clearing_sequence/data/hr_expense_data.xml
@@ -1,11 +1,9 @@
-
+
-
Expense report sequence (Advance)
hr.expense.sheet.advance
-
+
EXAV
-
diff --git a/hr_expense_advance_clearing_sequence/models/hr_expense_sheet.py b/hr_expense_advance_clearing_sequence/models/hr_expense_sheet.py
index ef21157ed..0a48e6e3a 100644
--- a/hr_expense_advance_clearing_sequence/models/hr_expense_sheet.py
+++ b/hr_expense_advance_clearing_sequence/models/hr_expense_sheet.py
@@ -5,20 +5,21 @@
class HrExpenseSheet(models.Model):
- _inherit = 'hr.expense.sheet'
- _rec_name = 'number'
+ _inherit = "hr.expense.sheet"
+ _rec_name = "number"
@api.model
def create(self, vals):
- if 'expense_line_ids' in vals.keys():
- from_expense = vals['expense_line_ids'][0][1]
+ if "expense_line_ids" in vals.keys():
+ from_expense = vals["expense_line_ids"][0][1]
if from_expense:
- expense = self.env['hr.expense'].browse(from_expense)
+ expense = self.env["hr.expense"].browse(from_expense)
else:
- from_report = vals['expense_line_ids'][0][2][0]
- expense = self.env['hr.expense'].browse(from_report)
- if vals.get('number', '/') == '/' and expense.advance:
- number = self.env['ir.sequence'].next_by_code(
- 'hr.expense.sheet.advance')
- vals['number'] = number
+ from_report = vals["expense_line_ids"][0][2][0]
+ expense = self.env["hr.expense"].browse(from_report)
+ if vals.get("number", "/") == "/" and expense.advance:
+ number = self.env["ir.sequence"].next_by_code(
+ "hr.expense.sheet.advance"
+ )
+ vals["number"] = number
return super(HrExpenseSheet, self).create(vals)
diff --git a/hr_expense_advance_clearing_sequence/tests/test_hr_expense_advance_clearing_sequence.py b/hr_expense_advance_clearing_sequence/tests/test_hr_expense_advance_clearing_sequence.py
index 84e6b3c42..ac81168fb 100644
--- a/hr_expense_advance_clearing_sequence/tests/test_hr_expense_advance_clearing_sequence.py
+++ b/hr_expense_advance_clearing_sequence/tests/test_hr_expense_advance_clearing_sequence.py
@@ -5,43 +5,50 @@
class TestHrExpenseAdvanceClearingSequence(SavepointCase):
-
@classmethod
- def setUpClass(self):
+ def setUpClass(cls):
super().setUpClass()
- self.expense_model = self.env['hr.expense']
- self.expense_sheet_model = self.env['hr.expense.sheet']
- self.product = self.env.ref('product.product_product_4')
+ cls.expense_model = cls.env["hr.expense"]
+ cls.expense_sheet_model = cls.env["hr.expense.sheet"]
+ cls.product = cls.env.ref("product.product_product_4")
- employee_home = self.env['res.partner'].create({
- 'name': 'Employee Home Address',
- })
- self.employee = self.env['hr.employee'].create({
- 'name': 'Employee',
- 'address_home_id': employee_home.id,
- })
- advance_account = self.env['account.account'].create({
- 'code': '154000',
- 'name': 'Employee Advance',
- 'user_type_id': self.env.ref(
- 'account.data_account_type_current_assets').id,
- 'reconcile': True,
- })
- self.emp_advance = self.env.ref('hr_expense_advance_clearing.'
- 'product_emp_advance')
- self.emp_advance.property_account_expense_id = advance_account
+ employee_home = cls.env["res.partner"].create({"name": "Employee Home Address"})
+ cls.employee = cls.env["hr.employee"].create(
+ {"name": "Employee", "address_home_id": employee_home.id}
+ )
+ advance_account = cls.env["account.account"].create(
+ {
+ "code": "154000",
+ "name": "Employee Advance",
+ "user_type_id": cls.env.ref(
+ "account.data_account_type_current_assets"
+ ).id,
+ "reconcile": True,
+ }
+ )
+ cls.emp_advance = cls.env.ref(
+ "hr_expense_advance_clearing." "product_emp_advance"
+ )
+ cls.emp_advance.property_account_expense_id = advance_account
- self.expense = self._create_expense(self, 'Advance 1,000', self.employee,
- self.emp_advance, 1000.0, advance=True)
+ cls.expense = cls._create_expense(
+ cls, "Advance 1,000", cls.employee, cls.emp_advance, 1000.0, advance=True
+ )
- self.sheet = self._create_expense_sheet(
- self, 'Advance 1,000', self.employee, self.emp_advance, 1000.0,
- advance=True)
+ cls.sheet = cls._create_expense_sheet(
+ cls, "Advance 1,000", cls.employee, cls.emp_advance, 1000.0, advance=True
+ )
- def _create_expense(self, description, employee,
- product, amount, advance=False,
- payment_mode='own_account'):
- with Form(self.env['hr.expense']) as expense:
+ def _create_expense(
+ self,
+ description,
+ employee,
+ product,
+ amount,
+ advance=False,
+ payment_mode="own_account",
+ ):
+ with Form(self.env["hr.expense"]) as expense:
expense.advance = advance
expense.name = description
expense.employee_id = employee
@@ -52,45 +59,43 @@ def _create_expense(self, description, employee,
expense.tax_ids = False # Test no vat
return expense
- def _create_expense_sheet(self, description, employee,
- product, amount, advance=False):
- expense = self._create_expense(self, description, employee,
- product, amount, advance)
+ def _create_expense_sheet(
+ self, description, employee, product, amount, advance=False
+ ):
+ expense = self._create_expense(
+ self, description, employee, product, amount, advance
+ )
# Add expense to expense sheet
- expense_sheet = self.env['hr.expense.sheet'].create({
- 'name': description,
- 'employee_id': expense.employee_id.id,
- 'expense_line_ids': [(6, 0, [expense.id])],
- })
+ expense_sheet = self.env["hr.expense.sheet"].create(
+ {
+ "name": description,
+ "employee_id": expense.employee_id.id,
+ "expense_line_ids": [(6, 0, [expense.id])],
+ }
+ )
return expense_sheet
def test_create_sequence_from_expense(self):
# Test number != '/'
- expense_sheet = self.env['hr.expense.sheet'].create({
- 'name': 'Advance 1,000',
- 'employee_id': self.expense.employee_id.id,
- 'expense_line_ids': [[4, self.expense.id, False]],
- })
- self.assertNotEqual(expense_sheet.number, '/', 'Number create')
+ expense_sheet = self.env["hr.expense.sheet"].create(
+ {
+ "name": "Advance 1,000",
+ "employee_id": self.expense.employee_id.id,
+ "expense_line_ids": [[4, self.expense.id, False]],
+ }
+ )
+ self.assertNotEqual(expense_sheet.number, "/", "Number create")
# Test number 1 != number 2
sheet_number_1 = expense_sheet.number
sheet2 = expense_sheet.copy()
sheet_number_2 = sheet2.number
- self.assertNotEqual(
- sheet_number_1,
- sheet_number_2,
- 'Numbers are different'
- )
+ self.assertNotEqual(sheet_number_1, sheet_number_2, "Numbers are different")
def test_create_sequence_from_report(self):
# Test number != '/'
- self.assertNotEqual(self.sheet.number, '/', 'Number create')
+ self.assertNotEqual(self.sheet.number, "/", "Number create")
# Test number 1 != number 2
sheet_number_1 = self.sheet.number
sheet2 = self.sheet.copy()
sheet_number_2 = sheet2.number
- self.assertNotEqual(
- sheet_number_1,
- sheet_number_2,
- 'Numbers are different'
- )
+ self.assertNotEqual(sheet_number_1, sheet_number_2, "Numbers are different")
From 10721b8dc82948f4ef2cafb844bae7435f75b146 Mon Sep 17 00:00:00 2001
From: Saran440
Date: Sun, 11 Oct 2020 09:58:41 +0700
Subject: [PATCH 04/16] [13.0][MIG] hr_expense_advance_clearing_sequence
---
.../README.rst | 17 +++---
.../__manifest__.py | 6 +-
.../models/hr_expense_sheet.py | 11 +---
.../readme/CONTRIBUTORS.rst | 1 +
.../static/description/index.html | 9 +--
...st_hr_expense_advance_clearing_sequence.py | 57 ++++++++++---------
6 files changed, 50 insertions(+), 51 deletions(-)
diff --git a/hr_expense_advance_clearing_sequence/README.rst b/hr_expense_advance_clearing_sequence/README.rst
index 8b924fc92..67698d532 100644
--- a/hr_expense_advance_clearing_sequence/README.rst
+++ b/hr_expense_advance_clearing_sequence/README.rst
@@ -13,14 +13,14 @@ HR Expense Advance Clearing Sequence
.. |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%2Fhr-lightgray.png?logo=github
- :target: https://github.com/OCA/hr/tree/12.0/hr_expense_advance_clearing_sequence
- :alt: OCA/hr
+.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fhr--expense-lightgray.png?logo=github
+ :target: https://github.com/OCA/hr-expense/tree/13.0/hr_expense_advance_clearing_sequence
+ :alt: OCA/hr-expense
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/hr-12-0/hr-12-0-hr_expense_advance_clearing_sequence
+ :target: https://translation.odoo-community.org/projects/hr-expense-13-0/hr-expense-13-0-hr_expense_advance_clearing_sequence
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/116/12.0
+ :target: https://runbot.odoo-community.org/runbot/289/13.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -46,10 +46,10 @@ permission check marked.
Bug Tracker
===========
-Bugs are tracked on `GitHub Issues `_.
+Bugs are tracked on `GitHub Issues `_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-`feedback `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -65,6 +65,7 @@ Contributors
~~~~~~~~~~~~
* Pimolnat Suntian
+* Saran Lim.
Maintainers
~~~~~~~~~~~
@@ -79,6 +80,6 @@ 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/hr `_ project on GitHub.
+This module is part of the `OCA/hr-expense `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/hr_expense_advance_clearing_sequence/__manifest__.py b/hr_expense_advance_clearing_sequence/__manifest__.py
index 8f96d0328..589e99c59 100644
--- a/hr_expense_advance_clearing_sequence/__manifest__.py
+++ b/hr_expense_advance_clearing_sequence/__manifest__.py
@@ -3,13 +3,13 @@
{
"name": "HR Expense Advance Clearing Sequence",
- "version": "12.0.1.0.0",
+ "version": "13.0.1.0.0",
"license": "AGPL-3",
"category": "Human Resources",
"author": "Ecosoft, Odoo Community Association (OCA)",
- "website": "https://github.com/OCA/hr",
+ "website": "https://github.com/OCA/hr-expense",
"depends": ["hr_expense_sequence", "hr_expense_advance_clearing"],
"data": ["data/hr_expense_data.xml"],
"installable": True,
- "maintainer": "ps-tubtim",
+ "maintainer": ["ps-tubtim"],
}
diff --git a/hr_expense_advance_clearing_sequence/models/hr_expense_sheet.py b/hr_expense_advance_clearing_sequence/models/hr_expense_sheet.py
index 0a48e6e3a..8d9e1eff7 100644
--- a/hr_expense_advance_clearing_sequence/models/hr_expense_sheet.py
+++ b/hr_expense_advance_clearing_sequence/models/hr_expense_sheet.py
@@ -6,20 +6,15 @@
class HrExpenseSheet(models.Model):
_inherit = "hr.expense.sheet"
- _rec_name = "number"
@api.model
def create(self, vals):
if "expense_line_ids" in vals.keys():
- from_expense = vals["expense_line_ids"][0][1]
- if from_expense:
- expense = self.env["hr.expense"].browse(from_expense)
- else:
- from_report = vals["expense_line_ids"][0][2][0]
- expense = self.env["hr.expense"].browse(from_report)
+ from_expense = vals["expense_line_ids"][0][2]
+ expense = self.env["hr.expense"].browse(from_expense)
if vals.get("number", "/") == "/" and expense.advance:
number = self.env["ir.sequence"].next_by_code(
"hr.expense.sheet.advance"
)
vals["number"] = number
- return super(HrExpenseSheet, self).create(vals)
+ return super().create(vals)
diff --git a/hr_expense_advance_clearing_sequence/readme/CONTRIBUTORS.rst b/hr_expense_advance_clearing_sequence/readme/CONTRIBUTORS.rst
index 0ef1f84c3..720bec61f 100644
--- a/hr_expense_advance_clearing_sequence/readme/CONTRIBUTORS.rst
+++ b/hr_expense_advance_clearing_sequence/readme/CONTRIBUTORS.rst
@@ -1 +1,2 @@
* Pimolnat Suntian
+* Saran Lim.
diff --git a/hr_expense_advance_clearing_sequence/static/description/index.html b/hr_expense_advance_clearing_sequence/static/description/index.html
index c0ddaf36e..ba8828797 100644
--- a/hr_expense_advance_clearing_sequence/static/description/index.html
+++ b/hr_expense_advance_clearing_sequence/static/description/index.html
@@ -367,7 +367,7 @@ HR Expense Advance Clearing Sequence
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-
![Try me on Runbot](https://img.shields.io/badge/runbot-Try%20me-875A7B.png)
+
![Try me on Runbot](https://img.shields.io/badge/runbot-Try%20me-875A7B.png)
This module adds the possibility to define a sequence for the expense report’s reference that Employee advance.
This reference is then set as default when you create a new expense report, using the defined sequence.
Table of contents
@@ -393,10 +393,10 @@
-
Bugs are tracked on GitHub Issues.
+
Bugs are tracked on GitHub Issues.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-feedback.
+
feedback.
Do not contact contributors directly about support or help with technical issues.
@@ -420,7 +421,7 @@
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/hr project on GitHub.
+
This module is part of the OCA/hr-expense project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/hr_expense_advance_clearing_sequence/tests/test_hr_expense_advance_clearing_sequence.py b/hr_expense_advance_clearing_sequence/tests/test_hr_expense_advance_clearing_sequence.py
index ac81168fb..ae2fb38ea 100644
--- a/hr_expense_advance_clearing_sequence/tests/test_hr_expense_advance_clearing_sequence.py
+++ b/hr_expense_advance_clearing_sequence/tests/test_hr_expense_advance_clearing_sequence.py
@@ -1,42 +1,43 @@
# Copyright 2019 Ecosoft Co., Ltd (http://ecosoft.co.th/)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html)
+from odoo import tools
+from odoo.modules.module import get_resource_path
from odoo.tests.common import Form, SavepointCase
class TestHrExpenseAdvanceClearingSequence(SavepointCase):
+ @classmethod
+ def _load(cls, module, *args):
+ tools.convert_file(
+ cls.cr,
+ module,
+ get_resource_path(module, *args),
+ {},
+ "init",
+ False,
+ "test",
+ cls.registry._assertion_report,
+ )
+
@classmethod
def setUpClass(cls):
super().setUpClass()
+ cls._load("account", "test", "account_minimal_test.xml")
cls.expense_model = cls.env["hr.expense"]
cls.expense_sheet_model = cls.env["hr.expense.sheet"]
- cls.product = cls.env.ref("product.product_product_4")
-
- employee_home = cls.env["res.partner"].create({"name": "Employee Home Address"})
- cls.employee = cls.env["hr.employee"].create(
- {"name": "Employee", "address_home_id": employee_home.id}
- )
- advance_account = cls.env["account.account"].create(
- {
- "code": "154000",
- "name": "Employee Advance",
- "user_type_id": cls.env.ref(
- "account.data_account_type_current_assets"
- ).id,
- "reconcile": True,
- }
- )
- cls.emp_advance = cls.env.ref(
- "hr_expense_advance_clearing." "product_emp_advance"
- )
- cls.emp_advance.property_account_expense_id = advance_account
-
+ cls.partner_1 = cls.env.ref("base.res_partner_12")
+ cls.employee_1 = cls.env.ref("hr.employee_hne")
+ cls.employee_1.address_home_id = cls.partner_1.id
+ transfer_account = cls.browse_ref(cls, "account.transfer_account")
+ cls.emp_advance = cls.env.ref("hr_expense_advance_clearing.product_emp_advance")
+ cls.emp_advance.property_account_expense_id = transfer_account
cls.expense = cls._create_expense(
- cls, "Advance 1,000", cls.employee, cls.emp_advance, 1000.0, advance=True
+ cls, "Advance 1,000", cls.employee_1, cls.emp_advance, 1000.0, advance=True
)
cls.sheet = cls._create_expense_sheet(
- cls, "Advance 1,000", cls.employee, cls.emp_advance, 1000.0, advance=True
+ cls, "Advance 1,000", cls.employee_1, cls.emp_advance, 1000.0, advance=True
)
def _create_expense(
@@ -48,7 +49,7 @@ def _create_expense(
advance=False,
payment_mode="own_account",
):
- with Form(self.env["hr.expense"]) as expense:
+ with Form(self.expense_model) as expense:
expense.advance = advance
expense.name = description
expense.employee_id = employee
@@ -66,7 +67,7 @@ def _create_expense_sheet(
self, description, employee, product, amount, advance
)
# Add expense to expense sheet
- expense_sheet = self.env["hr.expense.sheet"].create(
+ expense_sheet = self.expense_sheet_model.create(
{
"name": description,
"employee_id": expense.employee_id.id,
@@ -75,9 +76,9 @@ def _create_expense_sheet(
)
return expense_sheet
- def test_create_sequence_from_expense(self):
+ def test_01_create_sequence_from_expense(self):
# Test number != '/'
- expense_sheet = self.env["hr.expense.sheet"].create(
+ expense_sheet = self.expense_sheet_model.create(
{
"name": "Advance 1,000",
"employee_id": self.expense.employee_id.id,
@@ -91,7 +92,7 @@ def test_create_sequence_from_expense(self):
sheet_number_2 = sheet2.number
self.assertNotEqual(sheet_number_1, sheet_number_2, "Numbers are different")
- def test_create_sequence_from_report(self):
+ def test_02_create_sequence_from_report(self):
# Test number != '/'
self.assertNotEqual(self.sheet.number, "/", "Number create")
# Test number 1 != number 2
From 6e68bd703b45aa91b265fbfd86973a8b24d483eb Mon Sep 17 00:00:00 2001
From: oca-travis
Date: Sat, 15 May 2021 17:12:07 +0000
Subject: [PATCH 05/16] [UPD] Update hr_expense_advance_clearing_sequence.pot
---
.../i18n/hr_expense_advance_clearing_sequence.pot | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/hr_expense_advance_clearing_sequence/i18n/hr_expense_advance_clearing_sequence.pot b/hr_expense_advance_clearing_sequence/i18n/hr_expense_advance_clearing_sequence.pot
index c2fa170ab..bbfec204a 100644
--- a/hr_expense_advance_clearing_sequence/i18n/hr_expense_advance_clearing_sequence.pot
+++ b/hr_expense_advance_clearing_sequence/i18n/hr_expense_advance_clearing_sequence.pot
@@ -1,12 +1,12 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
-# * hr_expense_advance_clearing_sequence
+# * hr_expense_advance_clearing_sequence
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 12.0\n"
+"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
-"Last-Translator: <>\n"
+"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -17,4 +17,3 @@ msgstr ""
#: model:ir.model,name:hr_expense_advance_clearing_sequence.model_hr_expense_sheet
msgid "Expense Report"
msgstr ""
-
From c6da7ad8c0507067463e9eaea292783f7c334cca Mon Sep 17 00:00:00 2001
From: Saran440
Date: Sun, 16 May 2021 20:11:56 +0700
Subject: [PATCH 06/16] [14.0][MIG] hr_expense_advance_clearing_sequence
---
.../__manifest__.py | 2 +-
.../data/hr_expense_data.xml | 2 +-
.../models/hr_expense_sheet.py | 11 ++--
...st_hr_expense_advance_clearing_sequence.py | 53 +++++++++----------
4 files changed, 31 insertions(+), 37 deletions(-)
diff --git a/hr_expense_advance_clearing_sequence/__manifest__.py b/hr_expense_advance_clearing_sequence/__manifest__.py
index 589e99c59..1e8a51f98 100644
--- a/hr_expense_advance_clearing_sequence/__manifest__.py
+++ b/hr_expense_advance_clearing_sequence/__manifest__.py
@@ -3,7 +3,7 @@
{
"name": "HR Expense Advance Clearing Sequence",
- "version": "13.0.1.0.0",
+ "version": "14.0.1.0.0",
"license": "AGPL-3",
"category": "Human Resources",
"author": "Ecosoft, Odoo Community Association (OCA)",
diff --git a/hr_expense_advance_clearing_sequence/data/hr_expense_data.xml b/hr_expense_advance_clearing_sequence/data/hr_expense_data.xml
index 1789f14d2..6f93de1e9 100644
--- a/hr_expense_advance_clearing_sequence/data/hr_expense_data.xml
+++ b/hr_expense_advance_clearing_sequence/data/hr_expense_data.xml
@@ -4,6 +4,6 @@
Expense report sequence (Advance)
hr.expense.sheet.advance
- EXAV
+ AV
diff --git a/hr_expense_advance_clearing_sequence/models/hr_expense_sheet.py b/hr_expense_advance_clearing_sequence/models/hr_expense_sheet.py
index 8d9e1eff7..d2745022e 100644
--- a/hr_expense_advance_clearing_sequence/models/hr_expense_sheet.py
+++ b/hr_expense_advance_clearing_sequence/models/hr_expense_sheet.py
@@ -9,12 +9,7 @@ class HrExpenseSheet(models.Model):
@api.model
def create(self, vals):
- if "expense_line_ids" in vals.keys():
- from_expense = vals["expense_line_ids"][0][2]
- expense = self.env["hr.expense"].browse(from_expense)
- if vals.get("number", "/") == "/" and expense.advance:
- number = self.env["ir.sequence"].next_by_code(
- "hr.expense.sheet.advance"
- )
- vals["number"] = number
+ if vals.get("advance") or self.env.context.get("default_advance"):
+ number = self.env["ir.sequence"].next_by_code("hr.expense.sheet.advance")
+ vals["number"] = number
return super().create(vals)
diff --git a/hr_expense_advance_clearing_sequence/tests/test_hr_expense_advance_clearing_sequence.py b/hr_expense_advance_clearing_sequence/tests/test_hr_expense_advance_clearing_sequence.py
index ae2fb38ea..0d50dd632 100644
--- a/hr_expense_advance_clearing_sequence/tests/test_hr_expense_advance_clearing_sequence.py
+++ b/hr_expense_advance_clearing_sequence/tests/test_hr_expense_advance_clearing_sequence.py
@@ -1,37 +1,28 @@
# Copyright 2019 Ecosoft Co., Ltd (http://ecosoft.co.th/)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html)
-from odoo import tools
-from odoo.modules.module import get_resource_path
from odoo.tests.common import Form, SavepointCase
class TestHrExpenseAdvanceClearingSequence(SavepointCase):
- @classmethod
- def _load(cls, module, *args):
- tools.convert_file(
- cls.cr,
- module,
- get_resource_path(module, *args),
- {},
- "init",
- False,
- "test",
- cls.registry._assertion_report,
- )
-
@classmethod
def setUpClass(cls):
super().setUpClass()
- cls._load("account", "test", "account_minimal_test.xml")
cls.expense_model = cls.env["hr.expense"]
cls.expense_sheet_model = cls.env["hr.expense.sheet"]
cls.partner_1 = cls.env.ref("base.res_partner_12")
cls.employee_1 = cls.env.ref("hr.employee_hne")
cls.employee_1.address_home_id = cls.partner_1.id
- transfer_account = cls.browse_ref(cls, "account.transfer_account")
+ user_type_expense = cls.env.ref("account.data_account_type_expenses")
+ account_expense = cls.env["account.account"].create(
+ {
+ "code": "NC1113",
+ "name": "HR Expense - Test Purchase Account",
+ "user_type_id": user_type_expense.id,
+ }
+ )
cls.emp_advance = cls.env.ref("hr_expense_advance_clearing.product_emp_advance")
- cls.emp_advance.property_account_expense_id = transfer_account
+ cls.emp_advance.property_account_expense_id = account_expense
cls.expense = cls._create_expense(
cls, "Advance 1,000", cls.employee_1, cls.emp_advance, 1000.0, advance=True
)
@@ -48,14 +39,19 @@ def _create_expense(
amount,
advance=False,
payment_mode="own_account",
+ account=False,
):
- with Form(self.expense_model) as expense:
- expense.advance = advance
+ with Form(
+ self.env["hr.expense"].with_context(default_advance=advance)
+ ) as expense:
expense.name = description
expense.employee_id = employee
- expense.product_id = product
+ if not advance:
+ expense.product_id = product
expense.unit_amount = amount
expense.payment_mode = payment_mode
+ if account:
+ expense.account_id = account
expense = expense.save()
expense.tax_ids = False # Test no vat
return expense
@@ -70,6 +66,7 @@ def _create_expense_sheet(
expense_sheet = self.expense_sheet_model.create(
{
"name": description,
+ "advance": advance,
"employee_id": expense.employee_id.id,
"expense_line_ids": [(6, 0, [expense.id])],
}
@@ -78,23 +75,25 @@ def _create_expense_sheet(
def test_01_create_sequence_from_expense(self):
# Test number != '/'
- expense_sheet = self.expense_sheet_model.create(
+ advance_sheet = self.expense_sheet_model.create(
{
"name": "Advance 1,000",
+ "advance": True,
"employee_id": self.expense.employee_id.id,
"expense_line_ids": [[4, self.expense.id, False]],
}
)
- self.assertNotEqual(expense_sheet.number, "/", "Number create")
+ self.assertNotEqual(advance_sheet.number, "/", "Number create")
+ self.assertNotEqual(advance_sheet.number.find("AV"), -1)
# Test number 1 != number 2
- sheet_number_1 = expense_sheet.number
- sheet2 = expense_sheet.copy()
- sheet_number_2 = sheet2.number
- self.assertNotEqual(sheet_number_1, sheet_number_2, "Numbers are different")
+ self.assertNotEqual(
+ advance_sheet.number, advance_sheet.copy().number, "Numbers are different"
+ )
def test_02_create_sequence_from_report(self):
# Test number != '/'
self.assertNotEqual(self.sheet.number, "/", "Number create")
+ self.assertNotEqual(self.sheet.number.find("AV"), -1)
# Test number 1 != number 2
sheet_number_1 = self.sheet.number
sheet2 = self.sheet.copy()
From 5d109335814cac84939b53152ac39cba55029ef0 Mon Sep 17 00:00:00 2001
From: oca-travis
Date: Wed, 15 Jun 2022 05:08:05 +0000
Subject: [PATCH 07/16] [UPD] Update hr_expense_advance_clearing_sequence.pot
---
.../hr_expense_advance_clearing_sequence.pot | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/hr_expense_advance_clearing_sequence/i18n/hr_expense_advance_clearing_sequence.pot b/hr_expense_advance_clearing_sequence/i18n/hr_expense_advance_clearing_sequence.pot
index bbfec204a..29530da77 100644
--- a/hr_expense_advance_clearing_sequence/i18n/hr_expense_advance_clearing_sequence.pot
+++ b/hr_expense_advance_clearing_sequence/i18n/hr_expense_advance_clearing_sequence.pot
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 13.0\n"
+"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -13,7 +13,22 @@ msgstr ""
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
+#. module: hr_expense_advance_clearing_sequence
+#: model:ir.model.fields,field_description:hr_expense_advance_clearing_sequence.field_hr_expense_sheet__display_name
+msgid "Display Name"
+msgstr ""
+
#. module: hr_expense_advance_clearing_sequence
#: model:ir.model,name:hr_expense_advance_clearing_sequence.model_hr_expense_sheet
msgid "Expense Report"
msgstr ""
+
+#. module: hr_expense_advance_clearing_sequence
+#: model:ir.model.fields,field_description:hr_expense_advance_clearing_sequence.field_hr_expense_sheet__id
+msgid "ID"
+msgstr ""
+
+#. module: hr_expense_advance_clearing_sequence
+#: model:ir.model.fields,field_description:hr_expense_advance_clearing_sequence.field_hr_expense_sheet____last_update
+msgid "Last Modified on"
+msgstr ""
From 92fd3a6f4264b3bf7473d62f78efef6f263a2828 Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Wed, 15 Jun 2022 05:12:42 +0000
Subject: [PATCH 08/16] [UPD] README.rst
---
hr_expense_advance_clearing_sequence/README.rst | 10 +++++-----
.../static/description/index.html | 6 +++---
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/hr_expense_advance_clearing_sequence/README.rst b/hr_expense_advance_clearing_sequence/README.rst
index 67698d532..ce37e4ae9 100644
--- a/hr_expense_advance_clearing_sequence/README.rst
+++ b/hr_expense_advance_clearing_sequence/README.rst
@@ -14,13 +14,13 @@ HR Expense Advance Clearing Sequence
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fhr--expense-lightgray.png?logo=github
- :target: https://github.com/OCA/hr-expense/tree/13.0/hr_expense_advance_clearing_sequence
+ :target: https://github.com/OCA/hr-expense/tree/14.0/hr_expense_advance_clearing_sequence
:alt: OCA/hr-expense
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/hr-expense-13-0/hr-expense-13-0-hr_expense_advance_clearing_sequence
+ :target: https://translation.odoo-community.org/projects/hr-expense-14-0/hr-expense-14-0-hr_expense_advance_clearing_sequence
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/289/13.0
+ :target: https://runbot.odoo-community.org/runbot/289/14.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -49,7 +49,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues `_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-`feedback `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -80,6 +80,6 @@ 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/hr-expense `_ project on GitHub.
+This module is part of the `OCA/hr-expense `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/hr_expense_advance_clearing_sequence/static/description/index.html b/hr_expense_advance_clearing_sequence/static/description/index.html
index ba8828797..1de3de567 100644
--- a/hr_expense_advance_clearing_sequence/static/description/index.html
+++ b/hr_expense_advance_clearing_sequence/static/description/index.html
@@ -367,7 +367,7 @@ HR Expense Advance Clearing Sequence
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-
![Try me on Runbot](https://img.shields.io/badge/runbot-Try%20me-875A7B.png)
+
![Try me on Runbot](https://img.shields.io/badge/runbot-Try%20me-875A7B.png)
This module adds the possibility to define a sequence for the expense report’s reference that Employee advance.
This reference is then set as default when you create a new expense report, using the defined sequence.
Table of contents
@@ -396,7 +396,7 @@
Bugs are tracked on GitHub Issues.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-feedback.
+feedback.
Do not contact contributors directly about support or help with technical issues.
@@ -421,7 +421,7 @@
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/hr-expense project on GitHub.
+
This module is part of the OCA/hr-expense project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
From 95a2e387a0c506042d6172399847ba3107d36722 Mon Sep 17 00:00:00 2001
From: Saran440
Date: Fri, 10 Mar 2023 16:07:09 +0700
Subject: [PATCH 09/16] [MIG] hr_expense_advance_clearing_sequence: Migration
to 15.0
---
hr_expense_advance_clearing_sequence/__manifest__.py | 2 +-
.../models/hr_expense_sheet.py | 4 +++-
.../tests/test_hr_expense_advance_clearing_sequence.py | 9 ++-------
3 files changed, 6 insertions(+), 9 deletions(-)
diff --git a/hr_expense_advance_clearing_sequence/__manifest__.py b/hr_expense_advance_clearing_sequence/__manifest__.py
index 1e8a51f98..5d276af17 100644
--- a/hr_expense_advance_clearing_sequence/__manifest__.py
+++ b/hr_expense_advance_clearing_sequence/__manifest__.py
@@ -3,7 +3,7 @@
{
"name": "HR Expense Advance Clearing Sequence",
- "version": "14.0.1.0.0",
+ "version": "15.0.1.0.0",
"license": "AGPL-3",
"category": "Human Resources",
"author": "Ecosoft, Odoo Community Association (OCA)",
diff --git a/hr_expense_advance_clearing_sequence/models/hr_expense_sheet.py b/hr_expense_advance_clearing_sequence/models/hr_expense_sheet.py
index d2745022e..c40e6caa8 100644
--- a/hr_expense_advance_clearing_sequence/models/hr_expense_sheet.py
+++ b/hr_expense_advance_clearing_sequence/models/hr_expense_sheet.py
@@ -10,6 +10,8 @@ class HrExpenseSheet(models.Model):
@api.model
def create(self, vals):
if vals.get("advance") or self.env.context.get("default_advance"):
- number = self.env["ir.sequence"].next_by_code("hr.expense.sheet.advance")
+ number = (
+ self.env["ir.sequence"].next_by_code("hr.expense.sheet.advance") or "/"
+ )
vals["number"] = number
return super().create(vals)
diff --git a/hr_expense_advance_clearing_sequence/tests/test_hr_expense_advance_clearing_sequence.py b/hr_expense_advance_clearing_sequence/tests/test_hr_expense_advance_clearing_sequence.py
index 0d50dd632..6ca746a5d 100644
--- a/hr_expense_advance_clearing_sequence/tests/test_hr_expense_advance_clearing_sequence.py
+++ b/hr_expense_advance_clearing_sequence/tests/test_hr_expense_advance_clearing_sequence.py
@@ -1,10 +1,10 @@
# Copyright 2019 Ecosoft Co., Ltd (http://ecosoft.co.th/)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html)
-from odoo.tests.common import Form, SavepointCase
+from odoo.tests.common import Form, TransactionCase
-class TestHrExpenseAdvanceClearingSequence(SavepointCase):
+class TestHrExpenseAdvanceClearingSequence(TransactionCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
@@ -39,19 +39,14 @@ def _create_expense(
amount,
advance=False,
payment_mode="own_account",
- account=False,
):
with Form(
self.env["hr.expense"].with_context(default_advance=advance)
) as expense:
expense.name = description
expense.employee_id = employee
- if not advance:
- expense.product_id = product
expense.unit_amount = amount
expense.payment_mode = payment_mode
- if account:
- expense.account_id = account
expense = expense.save()
expense.tax_ids = False # Test no vat
return expense
From fb6619bddc48903b5d485ed086ccff04f864e6f6 Mon Sep 17 00:00:00 2001
From: oca-ci
Date: Thu, 18 May 2023 08:26:23 +0000
Subject: [PATCH 10/16] [UPD] Update hr_expense_advance_clearing_sequence.pot
---
.../hr_expense_advance_clearing_sequence.pot | 17 +----------------
1 file changed, 1 insertion(+), 16 deletions(-)
diff --git a/hr_expense_advance_clearing_sequence/i18n/hr_expense_advance_clearing_sequence.pot b/hr_expense_advance_clearing_sequence/i18n/hr_expense_advance_clearing_sequence.pot
index 29530da77..8a765dab7 100644
--- a/hr_expense_advance_clearing_sequence/i18n/hr_expense_advance_clearing_sequence.pot
+++ b/hr_expense_advance_clearing_sequence/i18n/hr_expense_advance_clearing_sequence.pot
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 14.0\n"
+"Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -13,22 +13,7 @@ msgstr ""
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
-#. module: hr_expense_advance_clearing_sequence
-#: model:ir.model.fields,field_description:hr_expense_advance_clearing_sequence.field_hr_expense_sheet__display_name
-msgid "Display Name"
-msgstr ""
-
#. module: hr_expense_advance_clearing_sequence
#: model:ir.model,name:hr_expense_advance_clearing_sequence.model_hr_expense_sheet
msgid "Expense Report"
msgstr ""
-
-#. module: hr_expense_advance_clearing_sequence
-#: model:ir.model.fields,field_description:hr_expense_advance_clearing_sequence.field_hr_expense_sheet__id
-msgid "ID"
-msgstr ""
-
-#. module: hr_expense_advance_clearing_sequence
-#: model:ir.model.fields,field_description:hr_expense_advance_clearing_sequence.field_hr_expense_sheet____last_update
-msgid "Last Modified on"
-msgstr ""
From 1a0a9f1dddeae91d7e34897f407c4e360c59542d Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Thu, 18 May 2023 08:30:37 +0000
Subject: [PATCH 11/16] [UPD] README.rst
---
hr_expense_advance_clearing_sequence/README.rst | 10 +++++-----
.../static/description/index.html | 6 +++---
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/hr_expense_advance_clearing_sequence/README.rst b/hr_expense_advance_clearing_sequence/README.rst
index ce37e4ae9..51bd046e2 100644
--- a/hr_expense_advance_clearing_sequence/README.rst
+++ b/hr_expense_advance_clearing_sequence/README.rst
@@ -14,13 +14,13 @@ HR Expense Advance Clearing Sequence
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fhr--expense-lightgray.png?logo=github
- :target: https://github.com/OCA/hr-expense/tree/14.0/hr_expense_advance_clearing_sequence
+ :target: https://github.com/OCA/hr-expense/tree/15.0/hr_expense_advance_clearing_sequence
:alt: OCA/hr-expense
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/hr-expense-14-0/hr-expense-14-0-hr_expense_advance_clearing_sequence
+ :target: https://translation.odoo-community.org/projects/hr-expense-15-0/hr-expense-15-0-hr_expense_advance_clearing_sequence
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/289/14.0
+ :target: https://runbot.odoo-community.org/runbot/289/15.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -49,7 +49,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues `_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-`feedback `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -80,6 +80,6 @@ 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/hr-expense `_ project on GitHub.
+This module is part of the `OCA/hr-expense `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/hr_expense_advance_clearing_sequence/static/description/index.html b/hr_expense_advance_clearing_sequence/static/description/index.html
index 1de3de567..3c38a5567 100644
--- a/hr_expense_advance_clearing_sequence/static/description/index.html
+++ b/hr_expense_advance_clearing_sequence/static/description/index.html
@@ -367,7 +367,7 @@ HR Expense Advance Clearing Sequence
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-
![Try me on Runbot](https://img.shields.io/badge/runbot-Try%20me-875A7B.png)
+
![Try me on Runbot](https://img.shields.io/badge/runbot-Try%20me-875A7B.png)
This module adds the possibility to define a sequence for the expense report’s reference that Employee advance.
This reference is then set as default when you create a new expense report, using the defined sequence.
Table of contents
@@ -396,7 +396,7 @@
Bugs are tracked on GitHub Issues.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-feedback.
+feedback.
Do not contact contributors directly about support or help with technical issues.
@@ -421,7 +421,7 @@
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/hr-expense project on GitHub.
+
This module is part of the OCA/hr-expense project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
From e7f91998beb82fe1bd2491363ebaa35dcdef97d9 Mon Sep 17 00:00:00 2001
From: mymage
Date: Wed, 28 Jun 2023 14:26:44 +0000
Subject: [PATCH 12/16] Added translation using Weblate (Italian)
---
.../i18n/it.po | 20 +++++++++++++++++++
1 file changed, 20 insertions(+)
create mode 100644 hr_expense_advance_clearing_sequence/i18n/it.po
diff --git a/hr_expense_advance_clearing_sequence/i18n/it.po b/hr_expense_advance_clearing_sequence/i18n/it.po
new file mode 100644
index 000000000..f1cd49f4e
--- /dev/null
+++ b/hr_expense_advance_clearing_sequence/i18n/it.po
@@ -0,0 +1,20 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * hr_expense_advance_clearing_sequence
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 15.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: it\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#. module: hr_expense_advance_clearing_sequence
+#: model:ir.model,name:hr_expense_advance_clearing_sequence.model_hr_expense_sheet
+msgid "Expense Report"
+msgstr ""
From f2058a4728880730bf3de4810bb0d5b2e201c3c8 Mon Sep 17 00:00:00 2001
From: mymage
Date: Wed, 28 Jun 2023 14:27:31 +0000
Subject: [PATCH 13/16] Translated using Weblate (Italian)
Currently translated at 100.0% (1 of 1 strings)
Translation: hr-expense-15.0/hr-expense-15.0-hr_expense_advance_clearing_sequence
Translate-URL: https://translation.odoo-community.org/projects/hr-expense-15-0/hr-expense-15-0-hr_expense_advance_clearing_sequence/it/
---
hr_expense_advance_clearing_sequence/i18n/it.po | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/hr_expense_advance_clearing_sequence/i18n/it.po b/hr_expense_advance_clearing_sequence/i18n/it.po
index f1cd49f4e..cfbf0117f 100644
--- a/hr_expense_advance_clearing_sequence/i18n/it.po
+++ b/hr_expense_advance_clearing_sequence/i18n/it.po
@@ -6,15 +6,17 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2023-06-28 17:08+0000\n"
+"Last-Translator: mymage \n"
"Language-Team: none\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.17\n"
#. module: hr_expense_advance_clearing_sequence
#: model:ir.model,name:hr_expense_advance_clearing_sequence.model_hr_expense_sheet
msgid "Expense Report"
-msgstr ""
+msgstr "Nota spese"
From 2cda2ffaeee69883f23b92b52be16e15bfa45e2e Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Sun, 3 Sep 2023 13:12:24 +0000
Subject: [PATCH 14/16] [UPD] README.rst
---
.../README.rst | 15 +++++---
.../static/description/index.html | 38 ++++++++++---------
2 files changed, 29 insertions(+), 24 deletions(-)
diff --git a/hr_expense_advance_clearing_sequence/README.rst b/hr_expense_advance_clearing_sequence/README.rst
index 51bd046e2..9e68ec143 100644
--- a/hr_expense_advance_clearing_sequence/README.rst
+++ b/hr_expense_advance_clearing_sequence/README.rst
@@ -2,10 +2,13 @@
HR Expense Advance Clearing Sequence
====================================
-.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+..
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! source digest: sha256:bd7e0c67df8c4c24f503ae64b5fe115680ede878874802964d283e7f92bec65d
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
@@ -19,11 +22,11 @@ HR Expense Advance Clearing Sequence
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/hr-expense-15-0/hr-expense-15-0-hr_expense_advance_clearing_sequence
:alt: Translate me on Weblate
-.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/289/15.0
- :alt: Try me on Runbot
+.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
+ :target: https://runboat.odoo-community.org/builds?repo=OCA/hr-expense&target_branch=15.0
+ :alt: Try me on Runboat
-|badge1| |badge2| |badge3| |badge4| |badge5|
+|badge1| |badge2| |badge3| |badge4| |badge5|
This module adds the possibility to define a sequence for the expense report's reference that Employee advance.
This reference is then set as default when you create a new expense report, using the defined sequence.
@@ -48,7 +51,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues `_.
In case of trouble, please check there if your issue has already been reported.
-If you spotted it first, help us smashing it by providing a detailed and welcomed
+If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback `_.
Do not contact contributors directly about support or help with technical issues.
diff --git a/hr_expense_advance_clearing_sequence/static/description/index.html b/hr_expense_advance_clearing_sequence/static/description/index.html
index 3c38a5567..9deb54ed9 100644
--- a/hr_expense_advance_clearing_sequence/static/description/index.html
+++ b/hr_expense_advance_clearing_sequence/static/description/index.html
@@ -1,20 +1,20 @@
-
+
-
+
HR Expense Advance Clearing Sequence