Skip to content

Commit 88de985

Browse files
magdalenesuomariobehling
authored andcommitted
Discount gets applied to selected tickets only (#2983)
1 parent 4a951e6 commit 88de985

File tree

2 files changed

+15
-7
lines changed

2 files changed

+15
-7
lines changed

app/templates/gentelella/guest/event/_ticketing_box.html

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ <h3 class="panel-title">{{ _("Ticket Information") }}</h3>
7070
<td>
7171
<input type="hidden" name="ticket_ids[]" value="{{ ticket.id }}">
7272
<select title="ticket quantity" name="ticket_quantities[]" class="quantity-select"
73-
data-rate="{{ ticket.price }}" data-fee="{% if not ticket.absorb_fees %}
73+
data-rate="{{ ticket.price }}" data-id="{{ticket.id}}" data-fee="{% if not ticket.absorb_fees %}
7474
{% if fee < fees.maximum_fee %}
7575
{{ ticket.price * fees.service_fee / 100}}
7676
{% else %}
@@ -225,7 +225,7 @@ <h3 class="panel-title">{{ _("Ticket Information") }}</h3>
225225
<td>\
226226
<input type=\"hidden\" name=\"ticket_ids[]\" value=\"{{ ticket.id }}\">\
227227
<select title=\"ticket quantity\" name=\"ticket_quantities[]\" class=\"quantity-select\"\
228-
data-rate=\"{{ ticket.price }}\" data-fee=\"{% if not ticket.absorb_fees %}\
228+
data-rate=\"{{ ticket.price }}\" data-id=\"{{ticket.id}}\" data-fee=\"{% if not ticket.absorb_fees %}\
229229
{% if fee < fees.maximum_fee %}\
230230
{{ ticket.price * fees.service_fee / 100}}\
231231
{% else %}\
@@ -262,6 +262,7 @@ <h3 class="panel-title">{{ _("Ticket Information") }}</h3>
262262
var discount_type = "";
263263
var discount_amount = -1;
264264
var promo_code_status = 0;
265+
var discount_code = "";
265266
$('#apply-discount').click(function (e) {
266267
if (promo_code_status == 0) {
267268
var form_data = $('#ticketing-box-form').serialize();
@@ -274,6 +275,7 @@ <h3 class="panel-title">{{ _("Ticket Information") }}</h3>
274275
discount_status = data.discount_status;
275276
access_status = data.access_status;
276277
access_code = data.access_code_ticket;
278+
discount_code = data.discount_code_ticket;
277279
if(discount_status && access_status){
278280
discount_type = data.discount_type;
279281
discount_amount = data.discount_amount;
@@ -306,10 +308,16 @@ <h3 class="panel-title">{{ _("Ticket Information") }}</h3>
306308
var total = 0;
307309
$.each($quantitySelects, function (index, $quantitySelect) {
308310
$quantitySelect = $($quantitySelect);
311+
var ticket_id = $quantitySelect.data('id');
309312
if ($quantitySelect.val() !== "0") {
310313
total += (parseFloat($quantitySelect.data('rate')) + parseFloat($quantitySelect.data('fee'))) * parseFloat($quantitySelect.val());
311-
if(discount_status && discount_type == "amount"){
312-
discount_total += discount_amount * parseFloat($quantitySelect.val());
314+
if (discount_code.split(",").indexOf(""+ticket_id) != -1){
315+
if(discount_status && discount_type == "amount"){
316+
discount_total += discount_amount * parseFloat($quantitySelect.val());
317+
}
318+
else if(discount_status && discount_type != "amount"){
319+
discount_total += (discount_amount * parseFloat($quantitySelect.val())* parseFloat($quantitySelect.data('rate'))/100.0)
320+
}
313321
}
314322
hasMoreThenZero = true;
315323
}
@@ -319,9 +327,7 @@ <h3 class="panel-title">{{ _("Ticket Information") }}</h3>
319327
$this.closest("tr").find(".subtotal").text("{{ event.payment_currency | currency_symbol }} " + subtotal.toFixed(2));
320328

321329
if (discount_status || (discount_status && access_status)){
322-
if(discount_type != "amount"){
323-
discount_total = ((discount_amount * total)/100)
324-
}
330+
325331
$('#discount-error').text("Discount Applied");
326332
$('#discount-row').show();
327333
$('#total-discount').text("{{ event.payment_currency | currency_symbol }} " + discount_total.toFixed(2));

app/views/public/ticketing.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,15 @@ def apply_promo():
4747
'discount_status': True,
4848
'access_status': True,
4949
'access_code_ticket': access_code.tickets,
50+
'discount_code_ticket': discount.tickets,
5051
})
5152
elif discount:
5253
return jsonify({
5354
'discount_type': discount.type,
5455
'discount_amount': discount.value,
5556
'discount_status': True,
5657
'access_status': False,
58+
'discount_code_ticket': discount.tickets,
5759
})
5860
elif access_code:
5961
return jsonify({

0 commit comments

Comments
 (0)