var forceWalkinName = [true | false]
Permet de forcer le nom du client dans une commande à "Client Passant" et de cacher la section Information sur le nom du client. On demande quand même le no de tel et le courriel pour contacter le client.
Ne s'applique pas pour une commande du commerçant.
var showFirstEmptyGroup = [true | false]
Normalement les groupes de catégories de billets qui n'ont aucune catégorie (explicitement ou suite au filtrage par un code promo) ne s'affichent pas. Avec cette variable à true, le premier groupe s'affichera sans le chevron ni les titres de colonne afin de s'en servir comme zone de message au début dela liste des catégories.
var countPeopleNC = [true | false]
Par défaut c'est TRUE et les billets de personnes qui ne comptent pas pour une place sont incluent dans le nombre total des personnes.
Passer à travers la liste des catégories
// To validate tickets using special per event rules.
// Each line of ticket category has an input field for the # of tickets of that category
// and the ID of that input is #1, #2, ...
function ValidateTicketSelection() {
if (!isMerchant) {
// Un adulte par enfant
var totalAdult = 0;
var totalOthers = 0;
$("table#tickets input[type='number']").each(function () {
var numTickets = (isNaN(parseInt($(this).val()))) ? 0 : parseInt($(this).val());
if (this.dataset.filter === 'ADULTE')
totalAdult += numTickets;
else if (this.dataset.filter !== 'BEBE')
totalOthers += numTickets;
});
if (totalOthers > totalAdult) {
MessageBox(msgCustomValidation);
return false;
}
}
return true;
}
Script qui gère le choix d'une table
function ValidateTicketSelection() {
var numTable = 0;
var min = 0;
var max = 0;
var numMeal = 0;
$("table#tickets input[type='number']").each(function () {
var qty = (isNaN(parseInt($(this).val()))) ? 0 : parseInt($(this).val());
var tags = this.dataset.filter && this.dataset.filter != "null" ? this.dataset.filter.split(';') : [];
if (qty > 0 && tags.length > 0) {
numTable += qty;
if (numTable > 1) {
return false;
}
for (var i = 0; i < tags.length; i++) {
if (tags[i].startsWith ("min=")) {
min = parseInt(tags[i].substring(4));
} else if (tags[i].startsWith ("max=")) {
max = parseInt(tags[i].substring(4));
}
}
}
});
if (numTable < 1) {
MessageBox(msgTableOne);
return false;
} else if (numTable > 1) {
MessageBox(msgTableJustOne);
return false;
}
$("table#tickets input[type='number'].person").each(function () {
var qty = (isNaN(parseInt($(this).val()))) ? 0 : parseInt($(this).val());
numMeal += qty;
});
if (numMeal < min || numMeal > max) {
MessageBox(msgMealCount.format(min, max));
return false;
}
return true;
}
Remplacer certains textes
Vaut mieux mettre le remplacement de textes dans une fonction qui sera exécutée quand toute la billetterie sera chargée...
$(function () {
$('.cat-maintitle').html('Catégories de participants');
$('.step-payment').text('Informations');
// En fonction de la langue
toLang['ticket'] = localeLang == 'fr' ? 'canot' : 'canoe';
toLang['reservedTicket'] = localeLang == 'fr' ? 'canot réservé' : 'reserved canoe';
toLang['msgNoDisp'] = localeLang == 'fr' ? 'Vous dépassez le nombre de canot disponibles.' : 'You exceed the number of canoes available.';
$('.step-label div').html(locale == 'fr' ? 'Nombre de canots' : 'Number of canoes'); $('#btn-choose-tickets').html(locale == 'fr' ? 'Chercher des canots' : 'Search Canoes'); $('.cat-maintitle').html(locale == 'fr' ? 'Activité(s) offerte(s)' : 'Offered activities'); $('.cat-title .long-label').html(locale == 'fr' ? 'Nb canots' : 'Nb Canoes'); //$('.cat-title .short-label').html(locale == 'fr' ? 'Nb canots' : 'Nb Canoes');
});
Attention tout le contenu des catégories de billets est généré dynamiquement selon le code promo et autres critère, donc impossible de jouer dans cette section avec le script.