Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
175 changes: 175 additions & 0 deletions event_sale_reservation/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
=======================
Sell event reservations
=======================

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

.. |badge1| image:: https://img.shields.io/badge/maturity-Mature-brightgreen.png
:target: https://odoo-community.org/page/development-status
:alt: Mature
.. |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%2Fevent-lightgray.png?logo=github
:target: https://github.com/OCA/event/tree/18.0/event_sale_reservation
:alt: OCA/event
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/event-18-0/event-18-0-event_sale_reservation
: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/event&target_branch=18.0
:alt: Try me on Runboat

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

This module extends the functionality of event_sale to support selling
reservations of events that still don't exist and to allow you to
schedule the creation of events based on how many reservations already
exist.

**Table of contents**

.. contents::
:local:

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

To make use of this module, a user needs these minimal permissions:

- Sales / User: Own Documents Only
- Events / User

Usage
=====

To know how many reservations exist for a given event type:

1. Go to *Events > Configuration > Event Templates* and pick or create
one.
2. There's a new smart button called *Reserved seats* with that count.
3. Click on it to get to the sales orders where the seats got reserved.

But that counter will be probably zero when you install, so let's see
how to increase it.

To create an event reservation product:

1. Go to *Sales > Products > Products*.
2. Create one and set *Product Type* to *Event Reservation*.
3. Select one *Event type for reservations*.
4. Save.

From now on, you can sell event reservations for that event type. To do
it:

1. Go to *Sales > Orders > Quotations*.
2. Create one.
3. Set its basic info (customer, date...) and go to *Order lines* tab.
4. Click *Add a product*.
5. Select the event reservation product you created above.
6. Set its info (quantity, price...).
7. Save that line and the quotation.

At this point, the reservation is not yet confirmed, so if you go to the
event type, the smart button will still count zero.

To confirm those reservations:

1. Go to the quotation you just created (if you are not there yet).
2. Click on *Confirm*.

Now, if you go to the event type form, the smart button will indicate
how many reserved seats exist.

If you want to convert those reservations into real event registrations:

1. Go to the quotation you just created (if you are not there yet).
2. Click on *Register in event*.
3. In the wizard you see, set the *Event* and *Event Ticket* for all the
order lines you want to convert into registrations.
4. If there is any line you still don't want to convert, remove it from
the wizard.
5. Click on *Next*.
6. A new wizard will appear, where you will be able to specify the name,
email and phone of each one of the attendees. If you don't do it,
they will get that info from the sales order customer.
7. After that's done, click on *Apply*.

At this point, the sales order lines will be modified to include the
ticket product instead of the reservation product, and the event
reservations have been created, linked to those lines.

If the event is set to autoconfirmation, the registrations are
confirmed., otherwise, they are kept as draft until an invoice is
created for the sales order, and paid. But that is just upstream
``event_sale`` module in action.

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

Some addons (event_registration_multi_qty +
event_sale_registration_multi_qty) makes totals wrong because they
depend currently on count and not sum of qtys; integrating with them
would require a glue module.

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

Bugs are tracked on `GitHub Issues <https://github.com/OCA/event/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/event/issues/new?body=module:%20event_sale_reservation%0Aversion:%2018.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
-------

* Tecnativa

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

- `Tecnativa <https://www.tecnativa.com>`__:

- Jairo Llopis
- Pilar Vargas

- `Heliconia Solutions Pvt. Ltd. <https://www.heliconia.io>`__

- Bhavesh Heliconia

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-pilarvargas-tecnativa| image:: https://github.com/pilarvargas-tecnativa.png?size=40px
:target: https://github.com/pilarvargas-tecnativa
:alt: pilarvargas-tecnativa

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

|maintainer-pilarvargas-tecnativa|

This module is part of the `OCA/event <https://github.com/OCA/event/tree/18.0/event_sale_reservation>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
3 changes: 3 additions & 0 deletions event_sale_reservation/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from . import models
from . import reports
from . import wizards
27 changes: 27 additions & 0 deletions event_sale_reservation/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Copyright 2021 Tecnativa - Jairo Llopis
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

{
"name": "Sell event reservations",
"summary": "Allow selling event registrations before the event exists",
"version": "18.0.1.0.0",
"development_status": "Mature",
"category": "Marketing",
"website": "https://github.com/OCA/event",
"author": "Tecnativa, Odoo Community Association (OCA)",
"maintainers": ["pilarvargas-tecnativa"],
"license": "AGPL-3",
"application": False,
"installable": True,
"depends": [
"product",
"event_sale",
],
"data": [
"reports/sale_report_view.xml",
"wizards/registration_editor_view.xml",
"views/event_type_view.xml",
"views/product_template_view.xml",
"views/sale_order_view.xml",
],
}
12 changes: 12 additions & 0 deletions event_sale_reservation/exceptions.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Copyright 2021 Tecnativa - Jairo Llopis
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from odoo import exceptions


class TicketAndReservationError(exceptions.ValidationError):
pass


class ReservationWithoutEventTypeError(exceptions.ValidationError):
pass
Loading