From 8a9f083a69ef3799af63e84acc23f3b5096c4ff5 Mon Sep 17 00:00:00 2001
From: osi-scampbell
Date: Fri, 4 Jan 2019 15:43:12 -0700
Subject: [PATCH 01/21] [ADD] stock_production_lot_warranty
---
stock_production_lot_warranty/README.rst | 21 +++++++++++
stock_production_lot_warranty/__init__.py | 3 ++
stock_production_lot_warranty/__manifest__.py | 25 +++++++++++++
.../models/__init__.py | 6 ++++
.../models/stock_production_lot.py | 36 +++++++++++++++++++
.../readme/CONFIGURE.rst | 8 +++++
.../readme/CONTRIBUTORS.rst | 2 ++
.../readme/CREDITS.rst | 4 +++
.../readme/DESCRIPTION.rst | 4 +++
.../readme/USAGE.rst | 7 ++++
.../views/stock_production_lot.xml | 15 ++++++++
11 files changed, 131 insertions(+)
create mode 100644 stock_production_lot_warranty/README.rst
create mode 100644 stock_production_lot_warranty/__init__.py
create mode 100644 stock_production_lot_warranty/__manifest__.py
create mode 100644 stock_production_lot_warranty/models/__init__.py
create mode 100644 stock_production_lot_warranty/models/stock_production_lot.py
create mode 100644 stock_production_lot_warranty/readme/CONFIGURE.rst
create mode 100644 stock_production_lot_warranty/readme/CONTRIBUTORS.rst
create mode 100644 stock_production_lot_warranty/readme/CREDITS.rst
create mode 100644 stock_production_lot_warranty/readme/DESCRIPTION.rst
create mode 100644 stock_production_lot_warranty/readme/USAGE.rst
create mode 100644 stock_production_lot_warranty/views/stock_production_lot.xml
diff --git a/stock_production_lot_warranty/README.rst b/stock_production_lot_warranty/README.rst
new file mode 100644
index 000000000..21cd7854d
--- /dev/null
+++ b/stock_production_lot_warranty/README.rst
@@ -0,0 +1,21 @@
+**This file is going to be generated by oca-gen-addon-readme.**
+
+*Manual changes will be overwritten.*
+
+Please provide content in the ``readme`` directory:
+
+* **DESCRIPTION.rst** (required)
+* INSTALL.rst (optional)
+* CONFIGURE.rst (optional)
+* **USAGE.rst** (optional, highly recommended)
+* DEVELOP.rst (optional)
+* ROADMAP.rst (optional)
+* HISTORY.rst (optional, recommended)
+* **CONTRIBUTORS.rst** (optional, highly recommended)
+* CREDITS.rst (optional)
+
+Content of this README will also be drawn from the addon manifest,
+from keys such as name, authors, maintainers, development_status,
+and license.
+
+A good, one sentence summary in the manifest is also highly recommended.
diff --git a/stock_production_lot_warranty/__init__.py b/stock_production_lot_warranty/__init__.py
new file mode 100644
index 000000000..69f7babdf
--- /dev/null
+++ b/stock_production_lot_warranty/__init__.py
@@ -0,0 +1,3 @@
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+from . import models
diff --git a/stock_production_lot_warranty/__manifest__.py b/stock_production_lot_warranty/__manifest__.py
new file mode 100644
index 000000000..e585d1bf0
--- /dev/null
+++ b/stock_production_lot_warranty/__manifest__.py
@@ -0,0 +1,25 @@
+# Copyright (C) 2018 - TODAY, Open Source Integrators
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+{
+ 'name': 'Warranty Date on Lot/Serial Numbers',
+ 'summary': 'Add warranty date to stock production lot',
+ 'version': '11.0.0.0.1',
+ 'license': 'AGPL-3',
+ 'author': 'Open Source Integrators, Odoo Community Association (OCA)',
+ 'category': 'Stock',
+ 'website': 'https://github.com/OCA/rma',
+ 'depends': [
+ 'product_warranty',
+ 'stock',
+ ],
+ 'data': [
+ 'views/stock_production_lot.xml',
+ ],
+ 'application': False,
+ 'development_status': 'Beta',
+ 'maintainers': [
+ 'osi-scampbell',
+ 'max3903',
+ ]
+}
diff --git a/stock_production_lot_warranty/models/__init__.py b/stock_production_lot_warranty/models/__init__.py
new file mode 100644
index 000000000..45eb3ad2b
--- /dev/null
+++ b/stock_production_lot_warranty/models/__init__.py
@@ -0,0 +1,6 @@
+# Copyright (C) 2018 - TODAY, Open Source Integrators
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+from . import (
+ stock_production_lot
+)
diff --git a/stock_production_lot_warranty/models/stock_production_lot.py b/stock_production_lot_warranty/models/stock_production_lot.py
new file mode 100644
index 000000000..7fa366611
--- /dev/null
+++ b/stock_production_lot_warranty/models/stock_production_lot.py
@@ -0,0 +1,36 @@
+# Copyright (C) 2018 - TODAY, Open Source Integrators
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+from odoo import fields, models, api
+from dateutil.relativedelta import relativedelta
+from datetime import datetime, timedelta
+
+
+class StockProductionLot(models.Model):
+ _inherit = 'stock.production.lot'
+
+ warranty_exp_date = fields.Date(string='Warranty Expiration Date')
+
+ @api.onchange('product_id')
+ def _onchange_product_id(self):
+ if self.product_id:
+ if (self.product_id.product_tmpl_id.warranty_type and
+ self.product_id.product_tmpl_id.warranty):
+ today_date = datetime.now()
+ if self.product_id.product_tmpl_id.warranty_type == 'day':
+ time = (today_date +
+ timedelta(days=self.product_id.
+ product_tmpl_id.warranty))
+ elif self.product_id.product_tmpl_id.warranty_type == 'week':
+ time = (today_date +
+ timedelta(weeks=self.product_id.
+ product_tmpl_id.warranty))
+ elif self.product_id.product_tmpl_id.warranty_type == 'month':
+ time = (today_date +
+ relativedelta(months=+self.product_id.
+ product_tmpl_id.warranty))
+ elif self.product_id.product_tmpl_id.warranty_type == 'year':
+ time = (today_date +
+ relativedelta(years=+self.product_id.
+ product_tmpl_id.warranty))
+ self.warranty_exp_date = time
diff --git a/stock_production_lot_warranty/readme/CONFIGURE.rst b/stock_production_lot_warranty/readme/CONFIGURE.rst
new file mode 100644
index 000000000..39a9d0fe2
--- /dev/null
+++ b/stock_production_lot_warranty/readme/CONFIGURE.rst
@@ -0,0 +1,8 @@
+To configure this module:
+
+* Go to Inventory > Configuration > Settings
+* Activate the traceability
+* Go to Inventory > Master Data > Products
+* Create or select a product and set the warranty
+* Go to the Inventory tab in the Logistics section
+* Set the warranty duration
diff --git a/stock_production_lot_warranty/readme/CONTRIBUTORS.rst b/stock_production_lot_warranty/readme/CONTRIBUTORS.rst
new file mode 100644
index 000000000..484c2429b
--- /dev/null
+++ b/stock_production_lot_warranty/readme/CONTRIBUTORS.rst
@@ -0,0 +1,2 @@
+* Steve Campbell
+* Maxime Chambreuil
diff --git a/stock_production_lot_warranty/readme/CREDITS.rst b/stock_production_lot_warranty/readme/CREDITS.rst
new file mode 100644
index 000000000..54d7b7a0f
--- /dev/null
+++ b/stock_production_lot_warranty/readme/CREDITS.rst
@@ -0,0 +1,4 @@
+This module has been financially supported by:
+
+* Pavlov Media
+* Open Source Integrators
diff --git a/stock_production_lot_warranty/readme/DESCRIPTION.rst b/stock_production_lot_warranty/readme/DESCRIPTION.rst
new file mode 100644
index 000000000..c3ceb9edb
--- /dev/null
+++ b/stock_production_lot_warranty/readme/DESCRIPTION.rst
@@ -0,0 +1,4 @@
+Odoo does not provide the warranty information on the serial number of a product.
+
+This module allows you to compute the warranty expiration date of a serialized
+product based on the warranty duration.
diff --git a/stock_production_lot_warranty/readme/USAGE.rst b/stock_production_lot_warranty/readme/USAGE.rst
new file mode 100644
index 000000000..3bcbead51
--- /dev/null
+++ b/stock_production_lot_warranty/readme/USAGE.rst
@@ -0,0 +1,7 @@
+To use this module,
+
+* Go to Inventory > Master Data > Lot/Serial Numbers
+* Create a new serial number and select a product
+* The Warranty Expiration Date is automatically computed based on today + the
+ warranty duration from the select product
+* You can overwrite the computed date with your own value.
diff --git a/stock_production_lot_warranty/views/stock_production_lot.xml b/stock_production_lot_warranty/views/stock_production_lot.xml
new file mode 100644
index 000000000..37dcab837
--- /dev/null
+++ b/stock_production_lot_warranty/views/stock_production_lot.xml
@@ -0,0 +1,15 @@
+
+
+
+
+ stock.production.lot
+
+
+
+
+
+
+
+
+
From 2a402c5cab358a362d1965bec0a0d4b64666ff53 Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Tue, 15 Jan 2019 15:45:19 +0000
Subject: [PATCH 02/21] [UPD] README.rst
---
stock_production_lot_warranty/README.rst | 130 ++++-
.../static/description/index.html | 458 ++++++++++++++++++
2 files changed, 572 insertions(+), 16 deletions(-)
create mode 100644 stock_production_lot_warranty/static/description/index.html
diff --git a/stock_production_lot_warranty/README.rst b/stock_production_lot_warranty/README.rst
index 21cd7854d..2b4d00d28 100644
--- a/stock_production_lot_warranty/README.rst
+++ b/stock_production_lot_warranty/README.rst
@@ -1,21 +1,119 @@
-**This file is going to be generated by oca-gen-addon-readme.**
+===================================
+Warranty Date on Lot/Serial Numbers
+===================================
-*Manual changes will be overwritten.*
+.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! This file is generated by oca-gen-addon-readme !!
+ !! changes will be overwritten. !!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-Please provide content in the ``readme`` directory:
+.. |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%2Frma-lightgray.png?logo=github
+ :target: https://github.com/OCA/rma/tree/11.0/stock_production_lot_warranty
+ :alt: OCA/rma
+.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
+ :target: https://translation.odoo-community.org/projects/rma-11-0/rma-11-0-stock_production_lot_warranty
+ :alt: Translate me on Weblate
+.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
+ :target: https://runbot.odoo-community.org/runbot/145/11.0
+ :alt: Try me on Runbot
-* **DESCRIPTION.rst** (required)
-* INSTALL.rst (optional)
-* CONFIGURE.rst (optional)
-* **USAGE.rst** (optional, highly recommended)
-* DEVELOP.rst (optional)
-* ROADMAP.rst (optional)
-* HISTORY.rst (optional, recommended)
-* **CONTRIBUTORS.rst** (optional, highly recommended)
-* CREDITS.rst (optional)
+|badge1| |badge2| |badge3| |badge4| |badge5|
-Content of this README will also be drawn from the addon manifest,
-from keys such as name, authors, maintainers, development_status,
-and license.
+Odoo does not provide the warranty information on the serial number of a product.
-A good, one sentence summary in the manifest is also highly recommended.
+This module allows you to compute the warranty expiration date of a serialized
+product based on the warranty duration.
+
+**Table of contents**
+
+.. contents::
+ :local:
+
+Configuration
+=============
+
+To configure this module:
+
+* Go to Inventory > Configuration > Settings
+* Activate the traceability
+* Go to Inventory > Master Data > Products
+* Create or select a product and set the warranty
+* Go to the Inventory tab in the Logistics section
+* Set the warranty duration
+
+Usage
+=====
+
+To use this module,
+
+* Go to Inventory > Master Data > Lot/Serial Numbers
+* Create a new serial number and select a product
+* The Warranty Expiration Date is automatically computed based on today + the
+ warranty duration from the select product
+* You can overwrite the computed date with your own value.
+
+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
+~~~~~~~
+
+* Open Source Integrators
+
+Contributors
+~~~~~~~~~~~~
+
+* Steve Campbell
+* Maxime Chambreuil
+
+Other credits
+~~~~~~~~~~~~~
+
+This module has been financially supported by:
+
+* Pavlov Media
+* Open Source Integrators
+
+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.
+
+.. |maintainer-osi-scampbell| image:: https://github.com/osi-scampbell.png?size=40px
+ :target: https://github.com/osi-scampbell
+ :alt: osi-scampbell
+.. |maintainer-max3903| image:: https://github.com/max3903.png?size=40px
+ :target: https://github.com/max3903
+ :alt: max3903
+
+Current `maintainers `__:
+
+|maintainer-osi-scampbell| |maintainer-max3903|
+
+This module is part of the `OCA/rma `_ project on GitHub.
+
+You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/stock_production_lot_warranty/static/description/index.html b/stock_production_lot_warranty/static/description/index.html
new file mode 100644
index 000000000..35f071e88
--- /dev/null
+++ b/stock_production_lot_warranty/static/description/index.html
@@ -0,0 +1,458 @@
+
+
+
+
+
+
+Warranty Date on Lot/Serial Numbers
+
+
+
+
+
Warranty Date on Lot/Serial Numbers
+
+
+

+
Odoo does not provide the warranty information on the serial number of a product.
+
This module allows you to compute the warranty expiration date of a serialized
+product based on the warranty duration.
+
Table of contents
+
+
+
+
To configure this module:
+
+- Go to Inventory > Configuration > Settings
+- Activate the traceability
+- Go to Inventory > Master Data > Products
+- Create or select a product and set the warranty
+- Go to the Inventory tab in the Logistics section
+- Set the warranty duration
+
+
+
+
+
To use this module,
+
+- Go to Inventory > Master Data > Lot/Serial Numbers
+- Create a new serial number and select a product
+- The Warranty Expiration Date is automatically computed based on today + the
+warranty duration from the select product
+- You can overwrite the computed date with your own value.
+
+
+
+
+
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.
+
+
+
+
+
+
+- Open Source Integrators
+
+
+
+
+
+
This module has been financially supported by:
+
+
+
+
+
This module is maintained by the OCA.
+

+
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.
+
Current maintainers:
+

+
This module is part of the OCA/rma project on GitHub.
+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
+
+
+
+
+
From 016d41532e05eea8803901eb9d7c8fd8b9ce2763 Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Wed, 3 Apr 2019 03:17:55 +0000
Subject: [PATCH 03/21] [ADD] icon.png
---
.../static/description/icon.png | Bin 0 -> 9455 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 stock_production_lot_warranty/static/description/icon.png
diff --git a/stock_production_lot_warranty/static/description/icon.png b/stock_production_lot_warranty/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
From ce805c6773d91f3cf124cb4b512a9d89c3a4235d Mon Sep 17 00:00:00 2001
From: Murtuza Saleh
Date: Tue, 23 Apr 2019 15:05:04 +0530
Subject: [PATCH 04/21] [WIP][MIG][12.0] stock_production_lot_warranty
---
stock_production_lot_warranty/README.rst | 9 ++--
stock_production_lot_warranty/__manifest__.py | 4 +-
.../models/__init__.py | 1 -
.../models/stock_production_lot.py | 52 +++++++++++--------
.../readme/CONTRIBUTORS.rst | 1 +
.../static/description/index.html | 5 +-
.../views/stock_production_lot.xml | 4 +-
7 files changed, 43 insertions(+), 33 deletions(-)
diff --git a/stock_production_lot_warranty/README.rst b/stock_production_lot_warranty/README.rst
index 2b4d00d28..118fb89e6 100644
--- a/stock_production_lot_warranty/README.rst
+++ b/stock_production_lot_warranty/README.rst
@@ -14,13 +14,13 @@ Warranty Date on Lot/Serial Numbers
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Frma-lightgray.png?logo=github
- :target: https://github.com/OCA/rma/tree/11.0/stock_production_lot_warranty
+ :target: https://github.com/OCA/rma/tree/12.0/stock_production_lot_warranty
:alt: OCA/rma
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/rma-11-0/rma-11-0-stock_production_lot_warranty
+ :target: https://translation.odoo-community.org/projects/rma-12-0/rma-12-0-stock_production_lot_warranty
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/145/11.0
+ :target: https://runbot.odoo-community.org/runbot/145/12.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -81,6 +81,7 @@ Contributors
* Steve Campbell
* Maxime Chambreuil
+* Serpent Consulting Services Pvt. Ltd.
Other credits
~~~~~~~~~~~~~
@@ -114,6 +115,6 @@ Current `maintainers `__:
|maintainer-osi-scampbell| |maintainer-max3903|
-This module is part of the `OCA/rma `_ project on GitHub.
+This module is part of the `OCA/rma `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/stock_production_lot_warranty/__manifest__.py b/stock_production_lot_warranty/__manifest__.py
index e585d1bf0..f78add05f 100644
--- a/stock_production_lot_warranty/__manifest__.py
+++ b/stock_production_lot_warranty/__manifest__.py
@@ -4,7 +4,7 @@
{
'name': 'Warranty Date on Lot/Serial Numbers',
'summary': 'Add warranty date to stock production lot',
- 'version': '11.0.0.0.1',
+ 'version': '12.0.1.0.0',
'license': 'AGPL-3',
'author': 'Open Source Integrators, Odoo Community Association (OCA)',
'category': 'Stock',
@@ -16,7 +16,7 @@
'data': [
'views/stock_production_lot.xml',
],
- 'application': False,
+ 'installable': True,
'development_status': 'Beta',
'maintainers': [
'osi-scampbell',
diff --git a/stock_production_lot_warranty/models/__init__.py b/stock_production_lot_warranty/models/__init__.py
index 45eb3ad2b..3e187a924 100644
--- a/stock_production_lot_warranty/models/__init__.py
+++ b/stock_production_lot_warranty/models/__init__.py
@@ -1,4 +1,3 @@
-# Copyright (C) 2018 - TODAY, Open Source Integrators
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from . import (
diff --git a/stock_production_lot_warranty/models/stock_production_lot.py b/stock_production_lot_warranty/models/stock_production_lot.py
index 7fa366611..ddb58d5df 100644
--- a/stock_production_lot_warranty/models/stock_production_lot.py
+++ b/stock_production_lot_warranty/models/stock_production_lot.py
@@ -1,9 +1,10 @@
# Copyright (C) 2018 - TODAY, Open Source Integrators
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-from odoo import fields, models, api
-from dateutil.relativedelta import relativedelta
from datetime import datetime, timedelta
+from dateutil.relativedelta import relativedelta
+from odoo import api, fields, models
+from odoo.tools import DEFAULT_SERVER_DATE_FORMAT
class StockProductionLot(models.Model):
@@ -13,24 +14,29 @@ class StockProductionLot(models.Model):
@api.onchange('product_id')
def _onchange_product_id(self):
- if self.product_id:
- if (self.product_id.product_tmpl_id.warranty_type and
- self.product_id.product_tmpl_id.warranty):
- today_date = datetime.now()
- if self.product_id.product_tmpl_id.warranty_type == 'day':
- time = (today_date +
- timedelta(days=self.product_id.
- product_tmpl_id.warranty))
- elif self.product_id.product_tmpl_id.warranty_type == 'week':
- time = (today_date +
- timedelta(weeks=self.product_id.
- product_tmpl_id.warranty))
- elif self.product_id.product_tmpl_id.warranty_type == 'month':
- time = (today_date +
- relativedelta(months=+self.product_id.
- product_tmpl_id.warranty))
- elif self.product_id.product_tmpl_id.warranty_type == 'year':
- time = (today_date +
- relativedelta(years=+self.product_id.
- product_tmpl_id.warranty))
- self.warranty_exp_date = time
+ self.warranty_exp_date = False
+ if self.product_id and \
+ self.product_id.product_tmpl_id.warranty_type and \
+ self.product_id.product_tmpl_id.warranty:
+ warranty_type = self.product_id.product_tmpl_id.warranty_type
+ if warranty_type == 'day':
+ time = (datetime.now() +
+ timedelta(days=self.product_id.
+ product_tmpl_id.warranty)).strftime(
+ DEFAULT_SERVER_DATE_FORMAT)
+ elif warranty_type == 'week':
+ time = (datetime.now() +
+ timedelta(weeks=self.product_id.
+ product_tmpl_id.warranty)).strftime(
+ DEFAULT_SERVER_DATE_FORMAT)
+ elif warranty_type == 'month':
+ time = (datetime.now() +
+ relativedelta(months=+self.product_id.
+ product_tmpl_id.warranty)).strftime(
+ DEFAULT_SERVER_DATE_FORMAT)
+ elif warranty_type == 'year':
+ time = (datetime.now() +
+ relativedelta(years=+self.product_id.
+ product_tmpl_id.warranty)).strftime(
+ DEFAULT_SERVER_DATE_FORMAT)
+ self.warranty_exp_date = time
diff --git a/stock_production_lot_warranty/readme/CONTRIBUTORS.rst b/stock_production_lot_warranty/readme/CONTRIBUTORS.rst
index 484c2429b..d2767f989 100644
--- a/stock_production_lot_warranty/readme/CONTRIBUTORS.rst
+++ b/stock_production_lot_warranty/readme/CONTRIBUTORS.rst
@@ -1,2 +1,3 @@
* Steve Campbell
* Maxime Chambreuil
+* Serpent Consulting Services Pvt. Ltd.
diff --git a/stock_production_lot_warranty/static/description/index.html b/stock_production_lot_warranty/static/description/index.html
index 35f071e88..02c6ce00e 100644
--- a/stock_production_lot_warranty/static/description/index.html
+++ b/stock_production_lot_warranty/static/description/index.html
@@ -367,7 +367,7 @@ Warranty Date on Lot/Serial Numbers
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-

+

Odoo does not provide the warranty information on the serial number of a product.
This module allows you to compute the warranty expiration date of a serialized
product based on the warranty duration.
@@ -430,6 +430,7 @@
diff --git a/stock_production_lot_warranty/views/stock_production_lot.xml b/stock_production_lot_warranty/views/stock_production_lot.xml
index 37dcab837..f8e4939b4 100644
--- a/stock_production_lot_warranty/views/stock_production_lot.xml
+++ b/stock_production_lot_warranty/views/stock_production_lot.xml
@@ -1,4 +1,4 @@
-
+
@@ -7,7 +7,9 @@
+
+
From 5485a5505a95964f167bb128a544cff1c8cd685d Mon Sep 17 00:00:00 2001
From: oca-travis
Date: Mon, 22 Jun 2020 16:11:00 +0000
Subject: [PATCH 05/21] [UPD] Update stock_production_lot_warranty.pot
---
.../i18n/stock_production_lot_warranty.pot | 25 +++++++++++++++++++
1 file changed, 25 insertions(+)
create mode 100644 stock_production_lot_warranty/i18n/stock_production_lot_warranty.pot
diff --git a/stock_production_lot_warranty/i18n/stock_production_lot_warranty.pot b/stock_production_lot_warranty/i18n/stock_production_lot_warranty.pot
new file mode 100644
index 000000000..664764c94
--- /dev/null
+++ b/stock_production_lot_warranty/i18n/stock_production_lot_warranty.pot
@@ -0,0 +1,25 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * stock_production_lot_warranty
+#
+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: stock_production_lot_warranty
+#: model:ir.model,name:stock_production_lot_warranty.model_stock_production_lot
+msgid "Lot/Serial"
+msgstr ""
+
+#. module: stock_production_lot_warranty
+#: model:ir.model.fields,field_description:stock_production_lot_warranty.field_stock_production_lot__warranty_exp_date
+msgid "Warranty Expiration Date"
+msgstr ""
+
From 0f123c8d16bcc844bbf96684ce3786f31b118515 Mon Sep 17 00:00:00 2001
From: Fernando Colus
Date: Wed, 22 Jul 2020 16:46:31 +0000
Subject: [PATCH 06/21] Added translation using Weblate (Portuguese (Brazil))
---
stock_production_lot_warranty/i18n/pt_BR.po | 25 +++++++++++++++++++++
1 file changed, 25 insertions(+)
create mode 100644 stock_production_lot_warranty/i18n/pt_BR.po
diff --git a/stock_production_lot_warranty/i18n/pt_BR.po b/stock_production_lot_warranty/i18n/pt_BR.po
new file mode 100644
index 000000000..e0cd499ca
--- /dev/null
+++ b/stock_production_lot_warranty/i18n/pt_BR.po
@@ -0,0 +1,25 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * stock_production_lot_warranty
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 12.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: pt_BR\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: stock_production_lot_warranty
+#: model:ir.model,name:stock_production_lot_warranty.model_stock_production_lot
+msgid "Lot/Serial"
+msgstr ""
+
+#. module: stock_production_lot_warranty
+#: model:ir.model.fields,field_description:stock_production_lot_warranty.field_stock_production_lot__warranty_exp_date
+msgid "Warranty Expiration Date"
+msgstr ""
From b4a2432f021bceecd7b482f13d714fbf310a8e61 Mon Sep 17 00:00:00 2001
From: Fernando Colus
Date: Wed, 22 Jul 2020 16:46:46 +0000
Subject: [PATCH 07/21] Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (2 of 2 strings)
Translation: rma-12.0/rma-12.0-stock_production_lot_warranty
Translate-URL: https://translation.odoo-community.org/projects/rma-12-0/rma-12-0-stock_production_lot_warranty/pt_BR/
---
stock_production_lot_warranty/i18n/pt_BR.po | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/stock_production_lot_warranty/i18n/pt_BR.po b/stock_production_lot_warranty/i18n/pt_BR.po
index e0cd499ca..cd8e0d94b 100644
--- a/stock_production_lot_warranty/i18n/pt_BR.po
+++ b/stock_production_lot_warranty/i18n/pt_BR.po
@@ -6,20 +6,22 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2020-07-22 18:19+0000\n"
+"Last-Translator: Fernando Colus \n"
"Language-Team: none\n"
"Language: pt_BR\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 3.10\n"
#. module: stock_production_lot_warranty
#: model:ir.model,name:stock_production_lot_warranty.model_stock_production_lot
msgid "Lot/Serial"
-msgstr ""
+msgstr "Lote/Serial"
#. module: stock_production_lot_warranty
#: model:ir.model.fields,field_description:stock_production_lot_warranty.field_stock_production_lot__warranty_exp_date
msgid "Warranty Expiration Date"
-msgstr ""
+msgstr "Data de Término da Garantia"
From 369d736bc285a8fa479accc4d8ff0e955094b20f Mon Sep 17 00:00:00 2001
From: Pedro Castro Silva
Date: Thu, 11 Mar 2021 18:38:11 +0000
Subject: [PATCH 08/21] Added translation using Weblate (Portuguese)
---
stock_production_lot_warranty/i18n/pt.po | 25 ++++++++++++++++++++++++
1 file changed, 25 insertions(+)
create mode 100644 stock_production_lot_warranty/i18n/pt.po
diff --git a/stock_production_lot_warranty/i18n/pt.po b/stock_production_lot_warranty/i18n/pt.po
new file mode 100644
index 000000000..3613f9ea1
--- /dev/null
+++ b/stock_production_lot_warranty/i18n/pt.po
@@ -0,0 +1,25 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * stock_production_lot_warranty
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 12.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: pt\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: stock_production_lot_warranty
+#: model:ir.model,name:stock_production_lot_warranty.model_stock_production_lot
+msgid "Lot/Serial"
+msgstr ""
+
+#. module: stock_production_lot_warranty
+#: model:ir.model.fields,field_description:stock_production_lot_warranty.field_stock_production_lot__warranty_exp_date
+msgid "Warranty Expiration Date"
+msgstr ""
From 73878b2596225e9476a5d973ef50822cd712b535 Mon Sep 17 00:00:00 2001
From: Pedro Castro Silva
Date: Thu, 11 Mar 2021 18:38:50 +0000
Subject: [PATCH 09/21] Translated using Weblate (Portuguese)
Currently translated at 100.0% (2 of 2 strings)
Translation: rma-12.0/rma-12.0-stock_production_lot_warranty
Translate-URL: https://translation.odoo-community.org/projects/rma-12-0/rma-12-0-stock_production_lot_warranty/pt/
---
stock_production_lot_warranty/i18n/pt.po | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/stock_production_lot_warranty/i18n/pt.po b/stock_production_lot_warranty/i18n/pt.po
index 3613f9ea1..0a2ca040a 100644
--- a/stock_production_lot_warranty/i18n/pt.po
+++ b/stock_production_lot_warranty/i18n/pt.po
@@ -6,20 +6,22 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2021-03-11 20:45+0000\n"
+"Last-Translator: Pedro Castro Silva \n"
"Language-Team: none\n"
"Language: pt\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.3.2\n"
#. module: stock_production_lot_warranty
#: model:ir.model,name:stock_production_lot_warranty.model_stock_production_lot
msgid "Lot/Serial"
-msgstr ""
+msgstr "Lote/Série"
#. module: stock_production_lot_warranty
#: model:ir.model.fields,field_description:stock_production_lot_warranty.field_stock_production_lot__warranty_exp_date
msgid "Warranty Expiration Date"
-msgstr ""
+msgstr "Data de Expiração da Garantia"
From d42c06da486ac1becf2310f6fcb3aadb18d1fc38 Mon Sep 17 00:00:00 2001
From: Chanakya Soni
Date: Wed, 16 Jun 2021 19:44:35 +0530
Subject: [PATCH 10/21] [14.0][FIX] Travis.
---
stock_production_lot_warranty/__manifest__.py | 36 ++++++------
.../models/__init__.py | 4 +-
.../models/stock_production_lot.py | 56 ++++++++++---------
.../views/stock_production_lot.xml | 9 ++-
4 files changed, 53 insertions(+), 52 deletions(-)
diff --git a/stock_production_lot_warranty/__manifest__.py b/stock_production_lot_warranty/__manifest__.py
index f78add05f..c6c30bebe 100644
--- a/stock_production_lot_warranty/__manifest__.py
+++ b/stock_production_lot_warranty/__manifest__.py
@@ -2,24 +2,24 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
- 'name': 'Warranty Date on Lot/Serial Numbers',
- 'summary': 'Add warranty date to stock production lot',
- 'version': '12.0.1.0.0',
- 'license': 'AGPL-3',
- 'author': 'Open Source Integrators, Odoo Community Association (OCA)',
- 'category': 'Stock',
- 'website': 'https://github.com/OCA/rma',
- 'depends': [
- 'product_warranty',
- 'stock',
+ "name": "Warranty Date on Lot/Serial Numbers",
+ "summary": "Add warranty date to stock production lot",
+ "version": "14.0.1.0.0",
+ "license": "AGPL-3",
+ "author": "Open Source Integrators, Odoo Community Association (OCA)",
+ "category": "Stock",
+ "website": "https://github.com/OCA/rma",
+ "depends": [
+ "product_warranty",
+ "stock",
],
- 'data': [
- 'views/stock_production_lot.xml',
+ "data": [
+ "views/stock_production_lot.xml",
+ ],
+ "installable": True,
+ "development_status": "Beta",
+ "maintainers": [
+ "osi-scampbell",
+ "max3903",
],
- 'installable': True,
- 'development_status': 'Beta',
- 'maintainers': [
- 'osi-scampbell',
- 'max3903',
- ]
}
diff --git a/stock_production_lot_warranty/models/__init__.py b/stock_production_lot_warranty/models/__init__.py
index 3e187a924..dad7ec540 100644
--- a/stock_production_lot_warranty/models/__init__.py
+++ b/stock_production_lot_warranty/models/__init__.py
@@ -1,5 +1,3 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-from . import (
- stock_production_lot
-)
+from . import stock_production_lot
diff --git a/stock_production_lot_warranty/models/stock_production_lot.py b/stock_production_lot_warranty/models/stock_production_lot.py
index ddb58d5df..aa5a80735 100644
--- a/stock_production_lot_warranty/models/stock_production_lot.py
+++ b/stock_production_lot_warranty/models/stock_production_lot.py
@@ -2,41 +2,45 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from datetime import datetime, timedelta
+
from dateutil.relativedelta import relativedelta
+
from odoo import api, fields, models
from odoo.tools import DEFAULT_SERVER_DATE_FORMAT
class StockProductionLot(models.Model):
- _inherit = 'stock.production.lot'
+ _inherit = "stock.production.lot"
- warranty_exp_date = fields.Date(string='Warranty Expiration Date')
+ warranty_exp_date = fields.Date(string="Warranty Expiration Date")
- @api.onchange('product_id')
+ @api.onchange("product_id")
def _onchange_product_id(self):
self.warranty_exp_date = False
- if self.product_id and \
- self.product_id.product_tmpl_id.warranty_type and \
- self.product_id.product_tmpl_id.warranty:
+ if (
+ self.product_id
+ and self.product_id.product_tmpl_id.warranty_type
+ and self.product_id.product_tmpl_id.warranty
+ ):
warranty_type = self.product_id.product_tmpl_id.warranty_type
- if warranty_type == 'day':
- time = (datetime.now() +
- timedelta(days=self.product_id.
- product_tmpl_id.warranty)).strftime(
- DEFAULT_SERVER_DATE_FORMAT)
- elif warranty_type == 'week':
- time = (datetime.now() +
- timedelta(weeks=self.product_id.
- product_tmpl_id.warranty)).strftime(
- DEFAULT_SERVER_DATE_FORMAT)
- elif warranty_type == 'month':
- time = (datetime.now() +
- relativedelta(months=+self.product_id.
- product_tmpl_id.warranty)).strftime(
- DEFAULT_SERVER_DATE_FORMAT)
- elif warranty_type == 'year':
- time = (datetime.now() +
- relativedelta(years=+self.product_id.
- product_tmpl_id.warranty)).strftime(
- DEFAULT_SERVER_DATE_FORMAT)
+ if warranty_type == "day":
+ time = (
+ datetime.now()
+ + timedelta(days=self.product_id.product_tmpl_id.warranty)
+ ).strftime(DEFAULT_SERVER_DATE_FORMAT)
+ elif warranty_type == "week":
+ time = (
+ datetime.now()
+ + timedelta(weeks=self.product_id.product_tmpl_id.warranty)
+ ).strftime(DEFAULT_SERVER_DATE_FORMAT)
+ elif warranty_type == "month":
+ time = (
+ datetime.now()
+ + relativedelta(months=+self.product_id.product_tmpl_id.warranty)
+ ).strftime(DEFAULT_SERVER_DATE_FORMAT)
+ elif warranty_type == "year":
+ time = (
+ datetime.now()
+ + relativedelta(years=+self.product_id.product_tmpl_id.warranty)
+ ).strftime(DEFAULT_SERVER_DATE_FORMAT)
self.warranty_exp_date = time
diff --git a/stock_production_lot_warranty/views/stock_production_lot.xml b/stock_production_lot_warranty/views/stock_production_lot.xml
index f8e4939b4..b83f2f3a8 100644
--- a/stock_production_lot_warranty/views/stock_production_lot.xml
+++ b/stock_production_lot_warranty/views/stock_production_lot.xml
@@ -1,14 +1,13 @@
-
+
stock.production.lot
-
+
-
+
-
+
From 195ce938063e29170b9e3eaf7afc9288481f7e0e Mon Sep 17 00:00:00 2001
From: Chanakya Soni
Date: Wed, 16 Jun 2021 19:49:06 +0530
Subject: [PATCH 11/21] [14.0][MIG] stock_production_lot_warranty.
---
stock_production_lot_warranty/__manifest__.py | 15 ++++--------
stock_production_lot_warranty/i18n/pt.po | 2 +-
stock_production_lot_warranty/i18n/pt_BR.po | 2 +-
.../i18n/stock_production_lot_warranty.pot | 2 +-
.../models/__init__.py | 1 -
.../models/stock_production_lot.py | 2 ++
.../tests/__init__.py | 4 ++++
.../tests/test_product_lot_warranty.py | 24 +++++++++++++++++++
8 files changed, 37 insertions(+), 15 deletions(-)
create mode 100644 stock_production_lot_warranty/tests/__init__.py
create mode 100644 stock_production_lot_warranty/tests/test_product_lot_warranty.py
diff --git a/stock_production_lot_warranty/__manifest__.py b/stock_production_lot_warranty/__manifest__.py
index c6c30bebe..f8e310f3a 100644
--- a/stock_production_lot_warranty/__manifest__.py
+++ b/stock_production_lot_warranty/__manifest__.py
@@ -1,4 +1,5 @@
# Copyright (C) 2018 - TODAY, Open Source Integrators
+# Copyright (C) 2021 Serpent Consulting Services
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
@@ -9,17 +10,9 @@
"author": "Open Source Integrators, Odoo Community Association (OCA)",
"category": "Stock",
"website": "https://github.com/OCA/rma",
- "depends": [
- "product_warranty",
- "stock",
- ],
- "data": [
- "views/stock_production_lot.xml",
- ],
+ "depends": ["product_warranty", "stock"],
+ "data": ["views/stock_production_lot.xml"],
"installable": True,
"development_status": "Beta",
- "maintainers": [
- "osi-scampbell",
- "max3903",
- ],
+ "maintainers": ["osi-scampbell", "max3903"],
}
diff --git a/stock_production_lot_warranty/i18n/pt.po b/stock_production_lot_warranty/i18n/pt.po
index 0a2ca040a..2287256de 100644
--- a/stock_production_lot_warranty/i18n/pt.po
+++ b/stock_production_lot_warranty/i18n/pt.po
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 12.0\n"
+"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2021-03-11 20:45+0000\n"
"Last-Translator: Pedro Castro Silva \n"
diff --git a/stock_production_lot_warranty/i18n/pt_BR.po b/stock_production_lot_warranty/i18n/pt_BR.po
index cd8e0d94b..79b108816 100644
--- a/stock_production_lot_warranty/i18n/pt_BR.po
+++ b/stock_production_lot_warranty/i18n/pt_BR.po
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 12.0\n"
+"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2020-07-22 18:19+0000\n"
"Last-Translator: Fernando Colus \n"
diff --git a/stock_production_lot_warranty/i18n/stock_production_lot_warranty.pot b/stock_production_lot_warranty/i18n/stock_production_lot_warranty.pot
index 664764c94..341d85f5a 100644
--- a/stock_production_lot_warranty/i18n/stock_production_lot_warranty.pot
+++ b/stock_production_lot_warranty/i18n/stock_production_lot_warranty.pot
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 12.0\n"
+"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: <>\n"
"Language-Team: \n"
diff --git a/stock_production_lot_warranty/models/__init__.py b/stock_production_lot_warranty/models/__init__.py
index dad7ec540..d45f1fe83 100644
--- a/stock_production_lot_warranty/models/__init__.py
+++ b/stock_production_lot_warranty/models/__init__.py
@@ -1,3 +1,2 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-
from . import stock_production_lot
diff --git a/stock_production_lot_warranty/models/stock_production_lot.py b/stock_production_lot_warranty/models/stock_production_lot.py
index aa5a80735..2d2c46440 100644
--- a/stock_production_lot_warranty/models/stock_production_lot.py
+++ b/stock_production_lot_warranty/models/stock_production_lot.py
@@ -1,4 +1,5 @@
# Copyright (C) 2018 - TODAY, Open Source Integrators
+# Copyright (C) 2021 Serpent Consulting Services
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from datetime import datetime, timedelta
@@ -23,6 +24,7 @@ def _onchange_product_id(self):
and self.product_id.product_tmpl_id.warranty
):
warranty_type = self.product_id.product_tmpl_id.warranty_type
+ time = False
if warranty_type == "day":
time = (
datetime.now()
diff --git a/stock_production_lot_warranty/tests/__init__.py b/stock_production_lot_warranty/tests/__init__.py
new file mode 100644
index 000000000..01c923daa
--- /dev/null
+++ b/stock_production_lot_warranty/tests/__init__.py
@@ -0,0 +1,4 @@
+# Copyright (C) 2021 Open Source Integrators
+# Copyright (C) 2021 Serpent Consulting Services
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
+from . import test_product_lot_warranty
diff --git a/stock_production_lot_warranty/tests/test_product_lot_warranty.py b/stock_production_lot_warranty/tests/test_product_lot_warranty.py
new file mode 100644
index 000000000..f386f6ca5
--- /dev/null
+++ b/stock_production_lot_warranty/tests/test_product_lot_warranty.py
@@ -0,0 +1,24 @@
+# Copyright (C) 2021 Open Source Integrators
+# Copyright (C) 2021 Serpent Consulting Services
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
+from odoo.tests import common
+from datetime import datetime, timedelta
+
+
+class TestProductLotWarranty(common.TransactionCase):
+ def test_productlot_warranty(self):
+ company1 = self.env["res.company"].create({
+ "name": "Test company1"
+ })
+ product1 = self.env["product.product"].create({
+ "name": "TestProduct",
+ "warranty_type": "day",
+ "warranty": 5,
+ })
+ production_lot = self.env["stock.production.lot"].create({
+ "product_id": product1.id,
+ "company_id": company1.id
+ })
+ production_lot._onchange_product_id()
+ self.assertEqual(production_lot.warranty_exp_date,
+ (datetime.now() + timedelta(days=5)).date())
From c08e644be88cb5a20a71c98e4c470f39363483df Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Alix?=
Date: Fri, 22 Jul 2022 10:38:26 +0200
Subject: [PATCH 12/21] [IMP] stock_production_lot_warranty: black, isort,
prettier
---
.../tests/test_product_lot_warranty.py | 32 ++++++++++---------
1 file changed, 17 insertions(+), 15 deletions(-)
diff --git a/stock_production_lot_warranty/tests/test_product_lot_warranty.py b/stock_production_lot_warranty/tests/test_product_lot_warranty.py
index f386f6ca5..fa665cf3b 100644
--- a/stock_production_lot_warranty/tests/test_product_lot_warranty.py
+++ b/stock_production_lot_warranty/tests/test_product_lot_warranty.py
@@ -1,24 +1,26 @@
# Copyright (C) 2021 Open Source Integrators
# Copyright (C) 2021 Serpent Consulting Services
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
-from odoo.tests import common
from datetime import datetime, timedelta
+from odoo.tests import common
+
class TestProductLotWarranty(common.TransactionCase):
def test_productlot_warranty(self):
- company1 = self.env["res.company"].create({
- "name": "Test company1"
- })
- product1 = self.env["product.product"].create({
- "name": "TestProduct",
- "warranty_type": "day",
- "warranty": 5,
- })
- production_lot = self.env["stock.production.lot"].create({
- "product_id": product1.id,
- "company_id": company1.id
- })
+ company1 = self.env["res.company"].create({"name": "Test company1"})
+ product1 = self.env["product.product"].create(
+ {
+ "name": "TestProduct",
+ "warranty_type": "day",
+ "warranty": 5,
+ }
+ )
+ production_lot = self.env["stock.production.lot"].create(
+ {"product_id": product1.id, "company_id": company1.id}
+ )
production_lot._onchange_product_id()
- self.assertEqual(production_lot.warranty_exp_date,
- (datetime.now() + timedelta(days=5)).date())
+ self.assertEqual(
+ production_lot.warranty_exp_date,
+ (datetime.now() + timedelta(days=5)).date(),
+ )
From 86cccdc5325c6274605c46852d8c752e3ad57a66 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Alix?=
Date: Fri, 22 Jul 2022 10:46:26 +0200
Subject: [PATCH 13/21] [MIG] stock_production_lot_warranty: Migration to 15.0
---
stock_production_lot_warranty/__manifest__.py | 2 +-
stock_production_lot_warranty/readme/CONFIGURE.rst | 2 +-
stock_production_lot_warranty/readme/USAGE.rst | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/stock_production_lot_warranty/__manifest__.py b/stock_production_lot_warranty/__manifest__.py
index f8e310f3a..1ade4a9b6 100644
--- a/stock_production_lot_warranty/__manifest__.py
+++ b/stock_production_lot_warranty/__manifest__.py
@@ -5,7 +5,7 @@
{
"name": "Warranty Date on Lot/Serial Numbers",
"summary": "Add warranty date to stock production lot",
- "version": "14.0.1.0.0",
+ "version": "15.0.1.0.0",
"license": "AGPL-3",
"author": "Open Source Integrators, Odoo Community Association (OCA)",
"category": "Stock",
diff --git a/stock_production_lot_warranty/readme/CONFIGURE.rst b/stock_production_lot_warranty/readme/CONFIGURE.rst
index 39a9d0fe2..9be297db0 100644
--- a/stock_production_lot_warranty/readme/CONFIGURE.rst
+++ b/stock_production_lot_warranty/readme/CONFIGURE.rst
@@ -2,7 +2,7 @@ To configure this module:
* Go to Inventory > Configuration > Settings
* Activate the traceability
-* Go to Inventory > Master Data > Products
+* Go to Inventory > Products > Products
* Create or select a product and set the warranty
* Go to the Inventory tab in the Logistics section
* Set the warranty duration
diff --git a/stock_production_lot_warranty/readme/USAGE.rst b/stock_production_lot_warranty/readme/USAGE.rst
index 3bcbead51..221c994a8 100644
--- a/stock_production_lot_warranty/readme/USAGE.rst
+++ b/stock_production_lot_warranty/readme/USAGE.rst
@@ -1,6 +1,6 @@
To use this module,
-* Go to Inventory > Master Data > Lot/Serial Numbers
+* Go to Inventory > Products > Lot/Serial Numbers
* Create a new serial number and select a product
* The Warranty Expiration Date is automatically computed based on today + the
warranty duration from the select product
From 40908d4930874f4aa149802b1bbced3f4e1a1c3b Mon Sep 17 00:00:00 2001
From: oca-ci
Date: Tue, 26 Jul 2022 07:16:34 +0000
Subject: [PATCH 14/21] [UPD] Update stock_production_lot_warranty.pot
---
.../i18n/stock_production_lot_warranty.pot | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/stock_production_lot_warranty/i18n/stock_production_lot_warranty.pot b/stock_production_lot_warranty/i18n/stock_production_lot_warranty.pot
index 341d85f5a..83f1fa456 100644
--- a/stock_production_lot_warranty/i18n/stock_production_lot_warranty.pot
+++ b/stock_production_lot_warranty/i18n/stock_production_lot_warranty.pot
@@ -1,12 +1,12 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
-# * stock_production_lot_warranty
+# * stock_production_lot_warranty
#
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"
+"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -22,4 +22,3 @@ msgstr ""
#: model:ir.model.fields,field_description:stock_production_lot_warranty.field_stock_production_lot__warranty_exp_date
msgid "Warranty Expiration Date"
msgstr ""
-
From fab8eaf914e20916e23241cd1d9c3efb50b60cd1 Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Tue, 26 Jul 2022 07:19:48 +0000
Subject: [PATCH 15/21] [UPD] README.rst
---
stock_production_lot_warranty/README.rst | 14 +++++++-------
.../static/description/index.html | 10 +++++-----
2 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/stock_production_lot_warranty/README.rst b/stock_production_lot_warranty/README.rst
index 118fb89e6..f0fe70b61 100644
--- a/stock_production_lot_warranty/README.rst
+++ b/stock_production_lot_warranty/README.rst
@@ -14,13 +14,13 @@ Warranty Date on Lot/Serial Numbers
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Frma-lightgray.png?logo=github
- :target: https://github.com/OCA/rma/tree/12.0/stock_production_lot_warranty
+ :target: https://github.com/OCA/rma/tree/15.0/stock_production_lot_warranty
:alt: OCA/rma
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/rma-12-0/rma-12-0-stock_production_lot_warranty
+ :target: https://translation.odoo-community.org/projects/rma-15-0/rma-15-0-stock_production_lot_warranty
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/145/12.0
+ :target: https://runbot.odoo-community.org/runbot/145/15.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -42,7 +42,7 @@ To configure this module:
* Go to Inventory > Configuration > Settings
* Activate the traceability
-* Go to Inventory > Master Data > Products
+* Go to Inventory > Products > Products
* Create or select a product and set the warranty
* Go to the Inventory tab in the Logistics section
* Set the warranty duration
@@ -52,7 +52,7 @@ Usage
To use this module,
-* Go to Inventory > Master Data > Lot/Serial Numbers
+* Go to Inventory > Products > Lot/Serial Numbers
* Create a new serial number and select a product
* The Warranty Expiration Date is automatically computed based on today + the
warranty duration from the select product
@@ -64,7 +64,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.
@@ -115,6 +115,6 @@ Current `maintainers `__:
|maintainer-osi-scampbell| |maintainer-max3903|
-This module is part of the `OCA/rma `_ project on GitHub.
+This module is part of the `OCA/rma `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/stock_production_lot_warranty/static/description/index.html b/stock_production_lot_warranty/static/description/index.html
index 02c6ce00e..a8b204142 100644
--- a/stock_production_lot_warranty/static/description/index.html
+++ b/stock_production_lot_warranty/static/description/index.html
@@ -367,7 +367,7 @@ Warranty Date on Lot/Serial Numbers
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-

+

Odoo does not provide the warranty information on the serial number of a product.
This module allows you to compute the warranty expiration date of a serialized
product based on the warranty duration.
@@ -392,7 +392,7 @@
- Go to Inventory > Configuration > Settings
- Activate the traceability
-- Go to Inventory > Master Data > Products
+- Go to Inventory > Products > Products
- Create or select a product and set the warranty
- Go to the Inventory tab in the Logistics section
- Set the warranty duration
@@ -402,7 +402,7 @@
To use this module,
-- Go to Inventory > Master Data > Lot/Serial Numbers
+- Go to Inventory > Products > Lot/Serial Numbers
- Create a new serial number and select a product
- The Warranty Expiration Date is automatically computed based on today + the
warranty duration from the select product
@@ -414,7 +414,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.
From dfc3bf6fb74afeb86d540f28a1d46592b358f568 Mon Sep 17 00:00:00 2001
From: Florent Xicluna
Date: Wed, 22 Feb 2023 16:34:41 +0100
Subject: [PATCH 16/21] [IMP] stock_production_lot_warranty: re-usable
_get_warranty_exp_date
---
.../models/stock_production_lot.py | 47 +++++---------
.../tests/test_product_lot_warranty.py | 64 +++++++++++++++++--
2 files changed, 75 insertions(+), 36 deletions(-)
diff --git a/stock_production_lot_warranty/models/stock_production_lot.py b/stock_production_lot_warranty/models/stock_production_lot.py
index 2d2c46440..1e1262dfe 100644
--- a/stock_production_lot_warranty/models/stock_production_lot.py
+++ b/stock_production_lot_warranty/models/stock_production_lot.py
@@ -2,12 +2,11 @@
# Copyright (C) 2021 Serpent Consulting Services
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-from datetime import datetime, timedelta
-
from dateutil.relativedelta import relativedelta
from odoo import api, fields, models
-from odoo.tools import DEFAULT_SERVER_DATE_FORMAT
+
+DELTA_TYPES = ("day", "week", "month", "year")
class StockProductionLot(models.Model):
@@ -15,34 +14,18 @@ class StockProductionLot(models.Model):
warranty_exp_date = fields.Date(string="Warranty Expiration Date")
+ def _get_warranty_exp_date(self, start_date=None):
+ if not start_date:
+ start_date = fields.Date.context_today(self)
+ elif hasattr(start_date, "astimezone"):
+ # Datetime object, convert to date
+ start_date = fields.Date.context_today(self, timestamp=start_date)
+ delta_type = self.product_id.product_tmpl_id.warranty_type
+ duration = self.product_id.product_tmpl_id.warranty
+ if not duration or delta_type not in DELTA_TYPES:
+ return False
+ return start_date + relativedelta(**{f"{delta_type}s": duration})
+
@api.onchange("product_id")
def _onchange_product_id(self):
- self.warranty_exp_date = False
- if (
- self.product_id
- and self.product_id.product_tmpl_id.warranty_type
- and self.product_id.product_tmpl_id.warranty
- ):
- warranty_type = self.product_id.product_tmpl_id.warranty_type
- time = False
- if warranty_type == "day":
- time = (
- datetime.now()
- + timedelta(days=self.product_id.product_tmpl_id.warranty)
- ).strftime(DEFAULT_SERVER_DATE_FORMAT)
- elif warranty_type == "week":
- time = (
- datetime.now()
- + timedelta(weeks=self.product_id.product_tmpl_id.warranty)
- ).strftime(DEFAULT_SERVER_DATE_FORMAT)
- elif warranty_type == "month":
- time = (
- datetime.now()
- + relativedelta(months=+self.product_id.product_tmpl_id.warranty)
- ).strftime(DEFAULT_SERVER_DATE_FORMAT)
- elif warranty_type == "year":
- time = (
- datetime.now()
- + relativedelta(years=+self.product_id.product_tmpl_id.warranty)
- ).strftime(DEFAULT_SERVER_DATE_FORMAT)
- self.warranty_exp_date = time
+ self.warranty_exp_date = self._get_warranty_exp_date()
diff --git a/stock_production_lot_warranty/tests/test_product_lot_warranty.py b/stock_production_lot_warranty/tests/test_product_lot_warranty.py
index fa665cf3b..620c0b1dc 100644
--- a/stock_production_lot_warranty/tests/test_product_lot_warranty.py
+++ b/stock_production_lot_warranty/tests/test_product_lot_warranty.py
@@ -3,24 +3,80 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from datetime import datetime, timedelta
+import psycopg2
+
from odoo.tests import common
class TestProductLotWarranty(common.TransactionCase):
- def test_productlot_warranty(self):
- company1 = self.env["res.company"].create({"name": "Test company1"})
- product1 = self.env["product.product"].create(
+ @classmethod
+ def setUpClass(cls):
+ super().setUpClass()
+ cls.company1 = cls.env["res.company"].create({"name": "Test company1"})
+ cls.product1 = cls.env["product.product"].create(
{
"name": "TestProduct",
"warranty_type": "day",
"warranty": 5,
}
)
+
+ def test_productlot_warranty(self):
production_lot = self.env["stock.production.lot"].create(
- {"product_id": product1.id, "company_id": company1.id}
+ {"product_id": self.product1.id, "company_id": self.company1.id}
)
production_lot._onchange_product_id()
self.assertEqual(
production_lot.warranty_exp_date,
(datetime.now() + timedelta(days=5)).date(),
)
+
+ def test_productlot_no_product(self):
+ # s.p.lot "product_id" is required=True
+ with self.assertRaises(psycopg2.IntegrityError):
+ self.env["stock.production.lot"].create(
+ {"product_id": False, "company_id": self.company1.id}
+ )
+
+ def test_productlot_no_warranty_type(self):
+ # product.template "warranty_type" is required=True
+ with self.assertRaises(psycopg2.IntegrityError):
+ self.env["product.product"].create(
+ {
+ "name": "TestProduct",
+ "warranty_type": False,
+ "warranty": 5,
+ }
+ )
+
+ def test_productlot_no_warranty(self):
+ product2 = self.env["product.product"].create(
+ {
+ "name": "TestProduct",
+ "warranty_type": "week",
+ "warranty": 0,
+ }
+ )
+ production_lot = self.env["stock.production.lot"].create(
+ {"product_id": product2.id, "company_id": self.company1.id}
+ )
+ production_lot._onchange_product_id()
+ self.assertFalse(production_lot.warranty_exp_date)
+
+ def test_get_warranty_exp_date(self):
+ production_lot = self.env["stock.production.lot"].create(
+ {"product_id": self.product1.id, "company_id": self.company1.id}
+ )
+ timestamp = datetime.now() - timedelta(days=3)
+ self.assertEqual(
+ production_lot._get_warranty_exp_date(),
+ (datetime.now() + timedelta(days=5)).date(),
+ )
+ self.assertEqual(
+ production_lot._get_warranty_exp_date(timestamp),
+ (datetime.now() + timedelta(days=2)).date(),
+ )
+ self.assertEqual(
+ production_lot._get_warranty_exp_date(timestamp.date()),
+ (datetime.now() + timedelta(days=2)).date(),
+ )
From 33d0ffc211c8694ad7ed1906a1bfa99c7f0da50f Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Mon, 3 Jul 2023 08:28:57 +0000
Subject: [PATCH 17/21] stock_production_lot_warranty 15.0.1.1.0
---
stock_production_lot_warranty/__manifest__.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/stock_production_lot_warranty/__manifest__.py b/stock_production_lot_warranty/__manifest__.py
index 1ade4a9b6..ac2ceadfe 100644
--- a/stock_production_lot_warranty/__manifest__.py
+++ b/stock_production_lot_warranty/__manifest__.py
@@ -5,7 +5,7 @@
{
"name": "Warranty Date on Lot/Serial Numbers",
"summary": "Add warranty date to stock production lot",
- "version": "15.0.1.0.0",
+ "version": "15.0.1.1.0",
"license": "AGPL-3",
"author": "Open Source Integrators, Odoo Community Association (OCA)",
"category": "Stock",
From aa4802354b9c01a5567332813ba9ae25aaca6af0 Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Sun, 3 Sep 2023 16:05:39 +0000
Subject: [PATCH 18/21] [UPD] README.rst
---
stock_production_lot_warranty/README.rst | 15 +++---
.../static/description/index.html | 48 ++++++++++---------
2 files changed, 34 insertions(+), 29 deletions(-)
diff --git a/stock_production_lot_warranty/README.rst b/stock_production_lot_warranty/README.rst
index f0fe70b61..ebba2a26d 100644
--- a/stock_production_lot_warranty/README.rst
+++ b/stock_production_lot_warranty/README.rst
@@ -2,10 +2,13 @@
Warranty Date on Lot/Serial Numbers
===================================
-.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+..
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! source digest: sha256:d6965242ba21cd047683380ad7586c6f7e079d0d79f794726198d318c6a5fe08
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
@@ -19,11 +22,11 @@ Warranty Date on Lot/Serial Numbers
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/rma-15-0/rma-15-0-stock_production_lot_warranty
:alt: Translate me on Weblate
-.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/145/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/rma&target_branch=15.0
+ :alt: Try me on Runboat
-|badge1| |badge2| |badge3| |badge4| |badge5|
+|badge1| |badge2| |badge3| |badge4| |badge5|
Odoo does not provide the warranty information on the serial number of a product.
@@ -63,7 +66,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/stock_production_lot_warranty/static/description/index.html b/stock_production_lot_warranty/static/description/index.html
index a8b204142..8979e5f6d 100644
--- a/stock_production_lot_warranty/static/description/index.html
+++ b/stock_production_lot_warranty/static/description/index.html
@@ -1,20 +1,20 @@
-
+
-
+
Warranty Date on Lot/Serial Numbers
-
-
Warranty Date on Lot/Serial Numbers
+
+
+
+
+
+
+
Warranty Date on Lot/Serial Numbers
-

-
Odoo does not provide the warranty information on the serial number of a product.
-
This module allows you to compute the warranty expiration date of a serialized
-product based on the warranty duration.
+

+
Odoo does not provide the warranty information on the serial number of a
+product.
+
This module allows you to compute the warranty expiration date of a
+serialized product based on the warranty duration.
Table of contents
@@ -389,7 +395,7 @@ Warranty Date on Lot/Serial Numbers
-
+
To configure this module:
- Go to Inventory > Configuration > Settings
@@ -401,34 +407,34 @@
-
+
To use this module,
- Go to Inventory > Products > Lot/Serial Numbers
- Create a new serial number and select a product
-- The Warranty Expiration Date is automatically computed based on today + the
-warranty duration from the select product
+- The Warranty Expiration Date is automatically computed based on today
++ the warranty duration from the select product
- You can overwrite the computed date with your own value.
-
+
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 to smash it by providing a detailed and welcomed
-feedback.
+
feedback.
Do not contact contributors directly about support or help with technical issues.
-
+
-
+
This module has been financially supported by:
-
+
This module is maintained by the OCA.
-

+
+
+
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.
Current maintainers:

-
This module is part of the OCA/rma project on GitHub.
+
This module is part of the OCA/rma project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
+
diff --git a/stock_production_lot_warranty/views/stock_production_lot.xml b/stock_production_lot_warranty/views/stock_production_lot.xml
index b83f2f3a8..856d195f3 100644
--- a/stock_production_lot_warranty/views/stock_production_lot.xml
+++ b/stock_production_lot_warranty/views/stock_production_lot.xml
@@ -1,6 +1,5 @@
-
stock.production.lot
@@ -12,5 +11,4 @@
-
From 189a053c69a9f102f66fe1a323c7415000ae94be Mon Sep 17 00:00:00 2001
From: Marina Alapont
Date: Fri, 16 Jan 2026 16:56:02 +0100
Subject: [PATCH 21/21] [MIG] stock_production_lot_warranty: Migration to 19.0
---
stock_production_lot_warranty/__manifest__.py | 2 +-
.../models/stock_production_lot.py | 2 +-
.../tests/test_product_lot_warranty.py | 10 +++++-----
.../views/stock_production_lot.xml | 2 +-
4 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/stock_production_lot_warranty/__manifest__.py b/stock_production_lot_warranty/__manifest__.py
index ac2ceadfe..7516a918d 100644
--- a/stock_production_lot_warranty/__manifest__.py
+++ b/stock_production_lot_warranty/__manifest__.py
@@ -5,7 +5,7 @@
{
"name": "Warranty Date on Lot/Serial Numbers",
"summary": "Add warranty date to stock production lot",
- "version": "15.0.1.1.0",
+ "version": "19.0.1.1.0",
"license": "AGPL-3",
"author": "Open Source Integrators, Odoo Community Association (OCA)",
"category": "Stock",
diff --git a/stock_production_lot_warranty/models/stock_production_lot.py b/stock_production_lot_warranty/models/stock_production_lot.py
index 1e1262dfe..2a38eaeec 100644
--- a/stock_production_lot_warranty/models/stock_production_lot.py
+++ b/stock_production_lot_warranty/models/stock_production_lot.py
@@ -10,7 +10,7 @@
class StockProductionLot(models.Model):
- _inherit = "stock.production.lot"
+ _inherit = "stock.lot"
warranty_exp_date = fields.Date(string="Warranty Expiration Date")
diff --git a/stock_production_lot_warranty/tests/test_product_lot_warranty.py b/stock_production_lot_warranty/tests/test_product_lot_warranty.py
index 620c0b1dc..5cf125f6e 100644
--- a/stock_production_lot_warranty/tests/test_product_lot_warranty.py
+++ b/stock_production_lot_warranty/tests/test_product_lot_warranty.py
@@ -22,7 +22,7 @@ def setUpClass(cls):
)
def test_productlot_warranty(self):
- production_lot = self.env["stock.production.lot"].create(
+ production_lot = self.env["stock.lot"].create(
{"product_id": self.product1.id, "company_id": self.company1.id}
)
production_lot._onchange_product_id()
@@ -32,9 +32,9 @@ def test_productlot_warranty(self):
)
def test_productlot_no_product(self):
- # s.p.lot "product_id" is required=True
+ # stock.lot "product_id" is required=True
with self.assertRaises(psycopg2.IntegrityError):
- self.env["stock.production.lot"].create(
+ self.env["stock.lot"].create(
{"product_id": False, "company_id": self.company1.id}
)
@@ -57,14 +57,14 @@ def test_productlot_no_warranty(self):
"warranty": 0,
}
)
- production_lot = self.env["stock.production.lot"].create(
+ production_lot = self.env["stock.lot"].create(
{"product_id": product2.id, "company_id": self.company1.id}
)
production_lot._onchange_product_id()
self.assertFalse(production_lot.warranty_exp_date)
def test_get_warranty_exp_date(self):
- production_lot = self.env["stock.production.lot"].create(
+ production_lot = self.env["stock.lot"].create(
{"product_id": self.product1.id, "company_id": self.company1.id}
)
timestamp = datetime.now() - timedelta(days=3)
diff --git a/stock_production_lot_warranty/views/stock_production_lot.xml b/stock_production_lot_warranty/views/stock_production_lot.xml
index 856d195f3..3aaa2fa3e 100644
--- a/stock_production_lot_warranty/views/stock_production_lot.xml
+++ b/stock_production_lot_warranty/views/stock_production_lot.xml
@@ -1,7 +1,7 @@
- stock.production.lot
+ stock.lot