Skip to content

Commit 4fa81a2

Browse files
[IMP] event_sale_session: Recovery unconfirmed quantity event
1 parent 0a4ab8f commit 4fa81a2

5 files changed

Lines changed: 112 additions & 0 deletions

File tree

event_sale_session/i18n/es.po

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,11 @@ msgstr "Informe analítico de ventas"
113113
msgid "Sales Order Line"
114114
msgstr "Línea de pedido de venta"
115115

116+
#. module: event_sale_session
117+
#: model:ir.model.fields,field_description:event_sale_session.field_event_session__order_line_ids
118+
msgid "Sales Order Lines"
119+
msgstr "Líneas de pedido de venta"
120+
116121
#. module: event_sale_session
117122
#: model:ir.model.fields,field_description:event_sale_session.field_event_event_configurator__event_session_id
118123
#: model:ir.model.fields,field_description:event_sale_session.field_registration_editor_line__session_id
@@ -136,6 +141,26 @@ msgstr "Evento estándar + catering"
136141
msgid "Total sales for this session"
137142
msgstr "Total de ventas para esta sesión"
138143

144+
#. module: event_sale_session
145+
#: model_terms:ir.ui.view,arch_db:event_sale_session.view_event_session_tree
146+
msgid "Total unconfirmed seats in orders"
147+
msgstr "Total plazas de pedidos no confirmados"
148+
149+
#. module: event_sale_session
150+
#: model:ir.model.fields,field_description:event_sale_session.field_event_session__unconfirmed_qty
151+
msgid "Unconfirmed Qty"
152+
msgstr "Cantidad sin asignar"
153+
154+
#. module: event_sale_session
155+
#: model_terms:ir.ui.view,arch_db:event_sale_session.view_event_session_form
156+
msgid "Unconfirmed order seats"
157+
msgstr "Plazas en pedidos sin confirmar"
158+
159+
#. module: event_sale_session
160+
#: model_terms:ir.ui.view,arch_db:event_sale_session.view_event_session_form
161+
msgid "Unconfirmed orders seats"
162+
msgstr "Plazas en pedidos sin confirmar"
163+
139164
#. module: event_sale_session
140165
#: model:event.event.ticket,name:event_sale_session.event_ticket_007_vip
141166
msgid "VIP"

event_sale_session/i18n/event_sale_session.pot

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,11 @@ msgstr ""
109109
msgid "Sales Order Line"
110110
msgstr ""
111111

112+
#. module: event_sale_session
113+
#: model:ir.model.fields,field_description:event_sale_session.field_event_session__order_line_ids
114+
msgid "Sales Order Lines"
115+
msgstr ""
116+
112117
#. module: event_sale_session
113118
#: model:ir.model.fields,field_description:event_sale_session.field_event_event_configurator__event_session_id
114119
#: model:ir.model.fields,field_description:event_sale_session.field_registration_editor_line__session_id
@@ -132,6 +137,26 @@ msgstr ""
132137
msgid "Total sales for this session"
133138
msgstr ""
134139

140+
#. module: event_sale_session
141+
#: model_terms:ir.ui.view,arch_db:event_sale_session.view_event_session_tree
142+
msgid "Total unconfirmed seats in orders"
143+
msgstr ""
144+
145+
#. module: event_sale_session
146+
#: model:ir.model.fields,field_description:event_sale_session.field_event_session__unconfirmed_qty
147+
msgid "Unconfirmed Qty"
148+
msgstr ""
149+
150+
#. module: event_sale_session
151+
#: model_terms:ir.ui.view,arch_db:event_sale_session.view_event_session_form
152+
msgid "Unconfirmed order seats"
153+
msgstr ""
154+
155+
#. module: event_sale_session
156+
#: model_terms:ir.ui.view,arch_db:event_sale_session.view_event_session_form
157+
msgid "Unconfirmed orders seats"
158+
msgstr ""
159+
135160
#. module: event_sale_session
136161
#: model:event.event.ticket,name:event_sale_session.event_ticket_007_vip
137162
msgid "VIP"

event_sale_session/models/event_session.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,37 @@ class EventSession(models.Model):
2222
compute="_compute_sale_price_subtotal",
2323
groups="sales_team.group_sale_salesman",
2424
)
25+
unconfirmed_qty = fields.Integer(
26+
compute="_compute_unconfirmed_qty",
27+
store=True,
28+
)
29+
30+
@api.depends(
31+
"sale_order_lines_ids",
32+
"sale_order_lines_ids.product_uom_qty",
33+
"sale_order_lines_ids.order_id.state",
34+
)
35+
def _compute_unconfirmed_qty(self):
36+
for session in self:
37+
session.unconfirmed_qty = int(
38+
sum(
39+
session.sale_order_lines_ids.filtered(
40+
lambda x: x.order_id.state in ("draft", "sent")
41+
).mapped("product_uom_qty")
42+
)
43+
)
44+
45+
def button_open_unconfirmed_event_order(self):
46+
action = self.env["ir.actions.act_window"]._for_xml_id("sale.action_quotations")
47+
sales = (
48+
self.env["sale.order.line"]
49+
.search([("event_id", "in", self.ids)])
50+
.mapped("order_id")
51+
.ids
52+
)
53+
action["domain"] = [("id", "in", sales), ("state", "in", ("draft", "sent"))]
54+
action["context"] = {}
55+
return action
2556

2657
@api.depends(
2758
"currency_id",

event_sale_session/tests/test_event_sale_session.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# Copyright 2017 Tecnativa - David Vidal
22
# Copyright 2022 Moka Tourisme (https://www.mokatourisme.fr).
3+
# Copyright 2024 Tecnativa - Carolina Fernandez
34
# @author Iván Todorovich <ivan.todorovich@gmail.com>
45
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl-3.0).
56

@@ -36,7 +37,11 @@ def setUpClass(cls):
3637

3738
def test_sale_session(self):
3839
"""Sell an event with session"""
40+
self.assertEqual(self.session.unconfirmed_qty, 5)
41+
self.assertEqual(self.event.unconfirmed_qty, 5)
3942
self.order.action_confirm()
43+
self.assertEqual(self.session.unconfirmed_qty, 0)
44+
self.assertEqual(self.event.unconfirmed_qty, 0)
4045
regs = self.env["event.registration"].search(
4146
[("sale_order_id", "=", self.order.id)]
4247
)

event_sale_session/views/event_session.xml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,33 @@
2727
widget="statinfo"
2828
/>
2929
</button>
30+
<button
31+
name="button_open_unconfirmed_event_order"
32+
type="object"
33+
class="oe_stat_button"
34+
icon="fa-eye-slash"
35+
help="Unconfirmed orders seats"
36+
>
37+
<field
38+
name="unconfirmed_qty"
39+
widget="statinfo"
40+
string="Unconfirmed order seats"
41+
/>
42+
</button>
3043
</div>
3144
</field>
3245
</record>
46+
<record id="view_event_session_tree" model="ir.ui.view">
47+
<field name="model">event.session</field>
48+
<field name="inherit_id" ref="event_session.view_event_session_tree" />
49+
<field name="arch" type="xml">
50+
<field name="seats_expected" position="after">
51+
<field
52+
name="unconfirmed_qty"
53+
attrs="{'invisible': [('unconfirmed_qty','&lt;', 1)]}"
54+
sum="Total unconfirmed seats in orders"
55+
/>
56+
</field>
57+
</field>
58+
</record>
3359
</odoo>

0 commit comments

Comments
 (0)