Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[17.0][MIG] sale_rental #52

Open
wants to merge 95 commits into
base: 17.0
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
ad31fd3
Port sale_start_end_dates and sale_rental (#353)
Nov 8, 2016
9cdc3d4
sale_start_end_dates and sale_rental
dvdhinesh Nov 15, 2016
dfa6288
Product qty on rental pickings
alexis-via May 11, 2017
95b0765
Auto configure sale_rental module via post_install.py script
alexis-via May 24, 2017
14792b4
sale_rental: fix warning @constrains parameter 'must_have_dates' is n…
alexis-via Apr 4, 2018
70c3183
pylint
rousseldenis Sep 4, 2018
48e6e30
sale_rental: Migration to 11.0
Mar 29, 2019
1fdb437
[MIG] sale_start_end_dates and sale_rental to v12
alexis-via Jul 14, 2019
fc973e8
sale_rental: Improve the code of object sale.rental
alexis-via Jul 16, 2019
bce7f18
[IMP] enhancements suggested in code reviews
gurneyalex Oct 15, 2019
6bc1f0a
[FIX] Archive rental routes rather than delete
sadamo Oct 15, 2019
fecaf3f
[UPD] Update sale_rental.pot
oca-travis Sep 16, 2020
d8a4b81
[UPD] README.rst
OCA-git-bot Sep 16, 2020
380af26
Added translation using Weblate (Portuguese (Brazil))
marcelsavegnago Oct 1, 2020
968f2cd
Translated using Weblate (Portuguese (Brazil))
marcelsavegnago Oct 2, 2020
dd9cb7d
Update translation files
oca-transbot Oct 9, 2020
bbd7ec8
Update translation files
oca-transbot Nov 22, 2020
2393b6c
Translated using Weblate (Portuguese)
pedrocs-exo Feb 8, 2021
408d006
[IMP] sale_rental: extract function _run_rental_procurement
yweng8111 Mar 5, 2021
eff7446
[UPD] Update sale_rental.pot
oca-travis Mar 12, 2021
3548296
sale_rental 12.0.1.1.0
OCA-git-bot Mar 12, 2021
eb5ca0b
Update translation files
oca-transbot Mar 12, 2021
30b389e
[UPD] Update sale_rental.pot
oca-travis Mar 12, 2021
b9d2689
Update translation files
oca-transbot Mar 12, 2021
007e3f5
[MIG] sale_rental from v12 to v14
alexis-via Jul 31, 2021
cf07c6a
sale_rental: black, isort, etc.
alexis-via Jul 31, 2021
4f1486f
[UPD] Update sale_rental.pot
oca-travis Dec 7, 2021
2f76051
[UPD] README.rst
OCA-git-bot Dec 7, 2021
f8f9113
[MIG] sale_rental: Migration to 15.0
kirca Jan 17, 2022
68f7ab1
[IMP] : black, isort, prettier, pylint
kirca Jan 17, 2022
55c4884
[UPD] Update sale_rental.pot
May 17, 2022
3ccdd58
[UPD] README.rst
OCA-git-bot May 17, 2022
2d8d924
sale_rental 15.0.1.0.1
OCA-git-bot May 17, 2022
3daa40a
[UPD] README.rst
OCA-git-bot Jun 2, 2022
933787b
[UPD] README.rst
OCA-git-bot Jun 2, 2022
f1f72a0
Translated using Weblate (French (France))
gregory-moka Jun 3, 2022
95adb0a
Translated using Weblate (French (France))
gregory-moka Jun 3, 2022
46f9cf4
Translated using Weblate (French)
gregory-moka Jul 4, 2022
5d83c16
[16.0][MIG] sale_rental
Murtaza-OSI Jan 3, 2023
db64170
[IMP] sale_rental: black, isort, prettier
Mar 7, 2024
b247abb
[FIX] rework unit test
Mar 14, 2024
0f18339
[IMP] sale_rental: black, isort, prettier
Mar 14, 2024
a947ac5
[IMP] sale_rental: pre-commit auto fixes
edescalona Nov 27, 2024
6768771
[IMP] sale_rental: pre-commit auto fixes
edescalona Nov 27, 2024
0494a67
[MIG] sale_rental: Migration to 17.0
edescalona Nov 27, 2024
550716d
[REM] Remove sale_rental module from branch 17.0
edescalona Nov 27, 2024
f806347
Port sale_start_end_dates and sale_rental (#353)
Nov 8, 2016
8fa9884
sale_start_end_dates and sale_rental
dvdhinesh Nov 15, 2016
e83b414
Product qty on rental pickings
alexis-via May 11, 2017
f4fa927
Auto configure sale_rental module via post_install.py script
alexis-via May 24, 2017
56ca243
sale_rental: fix warning @constrains parameter 'must_have_dates' is n…
alexis-via Apr 4, 2018
14df56a
pylint
rousseldenis Sep 4, 2018
4f0cf9f
sale_rental: Migration to 11.0
Mar 29, 2019
190ffc8
[MIG] sale_start_end_dates and sale_rental to v12
alexis-via Jul 14, 2019
421d943
sale_rental: Improve the code of object sale.rental
alexis-via Jul 16, 2019
995d550
[IMP] enhancements suggested in code reviews
gurneyalex Oct 15, 2019
ee084fb
[FIX] Archive rental routes rather than delete
sadamo Oct 15, 2019
e4f10f8
[UPD] Update sale_rental.pot
oca-travis Sep 16, 2020
c9c2390
[UPD] README.rst
OCA-git-bot Sep 16, 2020
c95c55d
Added translation using Weblate (Portuguese (Brazil))
marcelsavegnago Oct 1, 2020
25985fc
Translated using Weblate (Portuguese (Brazil))
marcelsavegnago Oct 2, 2020
23183aa
Update translation files
oca-transbot Oct 9, 2020
1121965
Update translation files
oca-transbot Nov 22, 2020
5558004
Translated using Weblate (Portuguese)
pedrocs-exo Feb 8, 2021
2cec327
[IMP] sale_rental: extract function _run_rental_procurement
yweng8111 Mar 5, 2021
ad27e2a
[UPD] Update sale_rental.pot
oca-travis Mar 12, 2021
3365a9b
sale_rental 12.0.1.1.0
OCA-git-bot Mar 12, 2021
597dd3a
Update translation files
oca-transbot Mar 12, 2021
3cef2d2
[UPD] Update sale_rental.pot
oca-travis Mar 12, 2021
ba95cbb
Update translation files
oca-transbot Mar 12, 2021
f408fa7
[MIG] sale_rental from v12 to v14
alexis-via Jul 31, 2021
bf8a60a
sale_rental: black, isort, etc.
alexis-via Jul 31, 2021
0d4461c
[UPD] Update sale_rental.pot
oca-travis Dec 7, 2021
23160b1
[UPD] README.rst
OCA-git-bot Dec 7, 2021
902e6e3
[MIG] sale_rental: Migration to 15.0
kirca Jan 17, 2022
17ee7a5
[IMP] : black, isort, prettier, pylint
kirca Jan 17, 2022
09d38c5
[UPD] Update sale_rental.pot
May 17, 2022
61434b6
[UPD] README.rst
OCA-git-bot May 17, 2022
177085e
sale_rental 15.0.1.0.1
OCA-git-bot May 17, 2022
838d2a7
[UPD] README.rst
OCA-git-bot Jun 2, 2022
a192993
[UPD] README.rst
OCA-git-bot Jun 2, 2022
289444f
Translated using Weblate (French (France))
gregory-moka Jun 3, 2022
3ef9b75
Translated using Weblate (French (France))
gregory-moka Jun 3, 2022
6e1c41f
Translated using Weblate (French)
gregory-moka Jul 4, 2022
2762b2e
[16.0][MIG] sale_rental
Murtaza-OSI Jan 3, 2023
bdc9f2d
[IMP] sale_rental: black, isort, prettier
Mar 7, 2024
9fca27f
[FIX] rework unit test
Mar 14, 2024
6390a60
[IMP] sale_rental: black, isort, prettier
Mar 14, 2024
3306a57
[IMP] sale_rental: pre-commit auto fixes
edescalona Nov 27, 2024
c456973
[MIG] sale_rental: Migration to 17.0
edescalona Nov 27, 2024
d03ec1b
[DON'T MERGE] test-requirements.txt
edescalona Nov 29, 2024
edd29ab
[DON'T MERGE] test-requirements.txt
edescalona Nov 29, 2024
0329bc0
[17.0][FIX] correcting test
edescalona Nov 29, 2024
96c10d6
[IMP] Organizing Rental Fields in the Product View
edescalona Dec 4, 2024
7d8ad54
[IMP] Run pre-commit
edescalona Dec 24, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
136 changes: 136 additions & 0 deletions sale_rental/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
===========
Sale Rental
===========

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:ba2abe11bd525be0990d3cbdf39dda8661bafb160f55e7c2474c2988d782055c
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |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%2Fvertical--rental-lightgray.png?logo=github
:target: https://github.com/OCA/vertical-rental/tree/17.0/sale_rental
:alt: OCA/vertical-rental
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/vertical-rental-17-0/vertical-rental-17-0-sale_rental
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/vertical-rental&target_branch=17.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

With this module, you can rent products with Odoo. This module supports:

- regular rentals.
- rental extensions.
- sale of rented products.

**Table of contents**

.. contents::
:local:

Configuration
=============

In the *Products* menu, on the form view of a stockable product or
consumable, in the *Sales* tab, there is a button *Create Rental
Service* which starts a wizard to generate the corresponding rental
service.

In the menu *Inventory > Configuration > Warehouse Management >
Warehouses*, on the form view of the warehouse, in the *Technical
Information* tab, you will see two additional stock locations: *Rental
In* (stock of products to rent) and *Rental Out* (products currently
rented). In the *Warehouse Configuration* tab, make sure that the option
*Rental Allowed* is checked.

Usage
=====

In a sale order line (form view, not tree view), if you select a rental
service, you can:

- create a new rental with a start date and an end date: when the sale
order is confirmed, it will generate a delivery order and an incoming
shipment.
- extend an existing rental: the incoming shipment will be postponed to
the end date of the extension.

In a sale order line, if you select a product that has a corresponding
rental service, you can decide to sell the rented product that the
customer already has. If the sale order is confirmed, the incoming
shipment will be cancelled and a new delivery order will be created with
a stock move from *Rental Out* to *Customers*.

Known issues / Roadmap
======================

This module has the following limitations:

- No support for planning/agenda of the rented products (i.e. you can't
rely on this module to check your capacity to rent a product for the
selected dates when you create a quote)
- The unit of measure of the rental services must be *Day* (the rental
per hour / per week / per month is not supported for the moment)

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/vertical-rental/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/vertical-rental/issues/new?body=module:%20sale_rental%0Aversion:%2017.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
-------

* Akretion
* Sodexis

Contributors
------------

- Alexis de Lattre <alexis.delattre@akretion.com>
- Sodexis <dev@sodexis.com>
- Danh Vo <https://github.com/danhvophuong>
- Kiril Vangelovski <kiril@lambda-is.com>

Maintainers
-----------

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

.. |maintainer-alexis-via| image:: https://github.com/alexis-via.png?size=40px
:target: https://github.com/alexis-via
:alt: alexis-via

Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-alexis-via|

This module is part of the `OCA/vertical-rental <https://github.com/OCA/vertical-rental/tree/17.0/sale_rental>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
2 changes: 2 additions & 0 deletions sale_rental/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
from . import models
from . import wizard
28 changes: 28 additions & 0 deletions sale_rental/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Copyright 2014-2021 Akretion France (http://www.akretion.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com>
# Copyright 2016-2021 Sodexis (http://sodexis.com)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

{
"name": "Sale Rental",
"version": "17.0.1.0.0",
"category": "Sales",
"license": "AGPL-3",
"summary": "Manage Rental of Products",
"author": "Akretion, Sodexis, Odoo Community Association (OCA)",
"maintainers": ["alexis-via"],
"website": "https://github.com/OCA/vertical-rental",
"depends": ["sale_start_end_dates", "sale_stock", "sales_team"],
"data": [
"security/ir.model.access.csv",
"security/sale_rental_security.xml",
"data/rental_data.xml",
"views/sale_order.xml",
"views/stock_warehouse.xml",
"views/sale_rental.xml",
"wizard/create_rental_product_view.xml",
"views/product.xml",
],
"demo": ["demo/rental_demo.xml"],
"installable": True,
}
26 changes: 26 additions & 0 deletions sale_rental/data/rental_data.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright 2014-2021 Akretion France (http://www.akretion.com/)
@author Alexis de Lattre <alexis.delattre@akretion.com>
Copyright 2016-2021 Sodexis
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-->
<odoo>

<record id="route_warehouse0_rental" model="stock.route">
<field name="name">Rent</field>
<field name="sequence">100</field>
<field name="warehouse_selectable" eval="True" />
<field name="product_selectable" eval="False" />
</record>

<record id="route_warehouse0_sell_rented_product" model="stock.route">
<field name="name">Sell Rented Product</field>
<field name="sequence">100</field>
</record>

<record id="stock.warehouse0" model="stock.warehouse">
<field name="rental_allowed" eval="True" />
</record>

</odoo>
58 changes: 58 additions & 0 deletions sale_rental/demo/rental_demo.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright 2014-2021 Akretion France (http://www.akretion.com/)
@author Alexis de Lattre <alexis.delattre@akretion.com>
Copyright 2016-2021 Sodexis
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-->
<odoo noupdate="1">

<record id="rent_consu_delivery_01" model="product.product">
<field name="name">Rental of one Three-Seat Sofa</field>
<field name="default_code">RENT-FURN_8999</field>
<field name="categ_id" ref="product.product_category_5" />
<field name="sale_ok" eval="True" />
<field name="purchase_ok" eval="False" />
<field name="list_price">5</field>
<field name="type">service</field>
<field name="uom_id" ref="uom.product_uom_day" />
<field name="uom_po_id" ref="uom.product_uom_day" />
<field name="must_have_dates" eval="True" />
<field name="rented_product_id" ref="product.consu_delivery_01" />
<!-- The 'stock' module sets it as type = 'product'
This XMLID is misleading -->
</record>

<record id="rent_product_product_20" model="product.product">
<field name="name">Rental of one Flipover</field>
<field name="default_code">RENT-FURN_9001</field>
<field name="categ_id" ref="product.product_category_5" />
<field name="sale_ok" eval="True" />
<field name="purchase_ok" eval="False" />
<field name="list_price">4</field>
<field name="type">service</field>
<field name="uom_id" ref="uom.product_uom_day" />
<field name="uom_po_id" ref="uom.product_uom_day" />
<field name="must_have_dates" eval="True" />
<field name="rented_product_id" ref="product.product_product_20" />
</record>

<record id="rent_product_product_25" model="product.product">
<field name="name">Rental of one Acoustic Bloc Screens</field>
<field name="default_code">RENT-FURN_6666</field>
<field name="categ_id" ref="product.product_category_5" />
<field name="sale_ok" eval="True" />
<field name="purchase_ok" eval="False" />
<field name="list_price">60</field>
<field name="type">service</field>
<field name="uom_id" ref="uom.product_uom_day" />
<field name="uom_po_id" ref="uom.product_uom_day" />
<field name="must_have_dates" eval="True" />
<field name="rented_product_id" ref="product.product_product_25" />
</record>

<!-- Create inventory on Rental In for these products -->
<function model="stock.quant" name="create_demo_and_validate" />


</odoo>
Loading
Loading