File: /var/www/vhost/disk-apps/alq-cali.bikenow.co/public/js/events.js
var specialTicketId;
var tickets;
let matchEventId;
$(document).on('ready', function () {
matchEventId = document.location.href.match(/[0-9]+/)[0];
let image = document.getElementById('image');
if (image) {
image.addEventListener('change', function () {
const file = this.files[0];
if (file) {
if (file.size > 1 * 1024 * 1024) { // 1MB in bytes
alert(Lang.get("messagesClient.tournaments.file_size_error"));
this.value = "";
document.getElementById('file-name').textContent = Lang.get("messagesClient.tournaments.no_selected_image");
} else {
document.getElementById('file-name').textContent = file.name;
}
}
});
}
});
function create() {
$("#form_create").validator("update");
$("#form_create")
.validator("update")
.on("submit", function (e) {
if (e.isDefaultPrevented()) {
} else {
e.preventDefault();
var season_id = $('#form_create').attr('season_id');
var team_id = $("#form_create select[name='team_id']").val();
var event_start = $("#form_create input[name='event_start']").val();
event_start = event_start.replace("T", " ");
var event_start_sale = $("#form_create input[name='event_start_sale']").val();
event_start_sale = event_start_sale.replace("T", " ");
var event_end_sale = $("#form_create input[name='event_end_sale']").val();
event_end_sale = event_end_sale.replace("T", " ");
if (!season_id || season_id == "0") {
swal(Lang.get("messagesClient.events.tag_3"), {
icon: "error",
});
return;
}
if (!team_id || team_id == "0") {
swal(Lang.get("messagesClient.events.tag_4"), {
icon: "error",
});
return;
}
var salesType = $("#form_create select[name='sales_type']").val();
if (!salesType || salesType == "0") {
swal(Lang.get("messagesClient.events.sales_type_required"), {
icon: "error",
});
return;
}
var stadium = $("#form_create select[name='stadium']").val();
if (!stadium || stadium == "0") {
swal(Lang.get("messagesClient.events.stadium_required"), {
icon: "error",
});
return;
}
var info = {
season_id,
team_id,
name: $("#form_create input[name='name']").val(),
date_name: $("#form_create input[name='date_name']").val(),
event_start,
event_start_sale,
event_end_sale,
zone_id: stadium,
active: $("#form_create select[name='active']").val(),
tags: $("#form_create select[name='generalMultiselect']").val(),
sales_type: salesType,
door_opening_time: $("#form_create input[name='door_opening_time']").val(),
};
$("#btn-create").addClass("displayNone");
$("#spinnerButton").removeClass("displayNone");
swal(Lang.get("messagesClient.events.tag_1"), {
buttons: {
cancel: "No",
Ok: true,
},
}).then((val) => {
if (val == "Ok") {
$.ajax({
url: `/season/${season_id}/event`,
type: "POST",
contentType: "application/json",
headers: {
"X-CSRF-TOKEN": $(
'meta[name="csrf-token"]'
).attr("content"),
"Content-Type": "application/json",
},
data: JSON.stringify(info),
success: function (r) {
if (r.r) {
onSuccesSave(r, `/season/${season_id}/event`, "/events/saveImage");
} else {
swal("Error", r.m, "error");
$("#btn-create").removeClass("displayNone");
$("#spinnerButton").addClass("displayNone");
}
},
error: function (e) {
swal("Error", "¡Hubo un Error al crear!", "error");
$("#btn-create").removeClass("displayNone");
$("#spinnerButton").addClass("displayNone");
},
});
} else {
$("#btn-create").removeClass("displayNone");
$("#spinnerButton").addClass("displayNone");
}
});
}
});
}
function clickEdit(event_id, season_id) {
$(location).attr("href", `/season/${season_id}/event/${event_id}/edit`);
}
function clickInfoEvent(value) {
$(location).attr("href", "/events/tickets/" + value + "/info");
}
function clickInfoBlocks(value) {
$(location).attr("href", "/events/tickets/" + value + "/blocks");
}
function clickInfoBlockList(value) {
$(location).attr("href", "/events/tickets/" + value + "/block/info");
}
function eventPrice(value) {
$(location).attr("href", "/event_prices/" + value + "/list");
}
function clickMatchEventStage(value) {
$(location).attr("href", `/event/${value}/stage`);
}
function edit() {
$("#form_edit").validator("update");
$("#form_edit")
.validator("update")
.on("submit", function (e) {
if (e.isDefaultPrevented()) {
} else {
e.preventDefault();
var season_id = $('#form_edit').attr('season_id');
var team_id = $("#form_edit select[name='team_id']").val();
var event_start = $("#form_edit input[name='event_start']").val();
event_start = event_start.replace("T", " ");
var event_start_sale = $("#form_edit input[name='event_start_sale']").val();
event_start_sale = event_start_sale.replace("T", " ");
var event_end_sale = $("#form_edit input[name='event_end_sale']").val();
event_end_sale = event_end_sale.replace("T", " ");
if (!season_id || season_id == "0") {
swal(Lang.get("messagesClient.events.tag_3"), {
icon: "error",
});
return;
}
if (!team_id || team_id == "0") {
swal(Lang.get("messagesClient.events.tag_4"), {
icon: "error",
});
return;
}
var salesType = $("#form_edit select[name='sales_type']").val();
if (!salesType || salesType == "0") {
swal(Lang.get("messagesClient.events.sales_type_required"), {
icon: "error",
});
return;
}
var stadium = $("#form_edit select[name='stadium']").val();
if (!stadium || stadium == "0") {
swal(Lang.get("messagesClient.events.stadium_required"), {
icon: "error",
});
return;
}
var info = {
_method: $("input[name=_method]").val(),
season_id,
team_id,
name: $("#form_edit input[name='name']").val(),
date_name: $("#form_edit input[name='date_name']").val(),
event_start,
event_start_sale,
event_end_sale,
zone_id: stadium,
active: $("#form_edit select[name='active']").val(),
tags: $("#form_edit select[name='generalMultiselect']").val(),
sales_type: salesType,
door_opening_time: $("#form_edit input[name='door_opening_time']").val(),
};
var id = $("#form_edit").attr("event_id");
$("#btn-edit").addClass("displayNone");
$("#spinnerButton").removeClass("displayNone");
swal(Lang.get("messagesClient.events.tag_2"), {
buttons: {
cancel: "No",
Ok: true,
},
}).then((val) => {
if (val == "Ok") {
$.ajax({
url: `/season/${season_id}/event/${id}`,
type: "PUT",
contentType: "application/json",
headers: {
"X-CSRF-TOKEN": $(
'meta[name="csrf-token"]'
).attr("content"),
"Content-Type": "application/json",
},
data: JSON.stringify(info),
success: function (r) {
if (r.r) {
onSuccesSave(r, `/season/${season_id}/event`, "/events/saveImage");
} else {
swal("Error", r.m, "error");
$("#btn-edit").removeClass("displayNone");
$("#spinnerButton").addClass("displayNone");
}
},
error: function (e) {
swal("Error", "¡Hubo un Error al actualizar!", "error");
$("#btn-edit").removeClass("displayNone");
$("#spinnerButton").addClass("displayNone");
},
});
} else {
$("#btn-edit").removeClass("displayNone");
$("#spinnerButton").addClass("displayNone");
}
});
}
});
}
/**Activar/Desactivar torneo usando switch*/
function chk(value) {
var state;
if ($("#Checkactive" + value).is(":checked")) {
state = 1;
} else {
state = 0;
}
var info = {
id: value,
state: state,
};
$.ajax({
url: "/events/active",
type: "POST",
contentType: "application/json",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
"Content-Type": "application/json",
},
data: JSON.stringify(info),
success: function (r) {
if (r.r) {
swal("Ok", r.m);
} else {
swal("Error", r.m, "error");
}
},
error: function (e) {
swal(
"Error",
Lang.get("messagesClient.events.error_update_image"),
"error"
);
},
});
}
/**Método para eliminar banner*/
function clickDelete(event_id, season_id) {
swal(Lang.get("messagesClient.events.tag_6"), {
buttons: {
cancel: "No",
Ok: true,
},
}).then((val) => {
if (val == "Ok") {
var info = {
_method: "DELETE",
};
$.ajax({
url: `/season/${season_id}/event/${event_id}`,
type: "POST",
contentType: "application/json",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr(
"content"
),
"Content-Type": "application/json",
},
data: JSON.stringify(info),
success: function (r) {
if (r.r) {
swal(r.m, {
icon: "success",
buttons: {
Ok: true,
},
}).then((val) => {
if (val == "Ok") {
$(location).attr("href", `/season/${season_id}/event`);
}
});
} else {
swal(r.m, { icon: "error" });
}
},
error: function (e) {
swal(
"Error",
Lang.get("messagesClient.events.error_delete"),
"error"
);
},
});
}
});
}
function changeSeat(ticket_id, match_event_id) {
// Obtener las sillas actuales.
$('#modal-change-seat').modal('show');
$('#modal-change-seat').data('ticket_id', ticket_id);
$('#modal-change-seat').data('match_event_id', match_event_id);
loadTribunes();
}
function loadTribunes() {
calculateDestino();
$.ajax({
url: "/tickets/tribunes",
method: "GET",
success: function (data) {
clearScreenSeatChange();
data.forEach(element => {
let optionText = element.name;
let optionValue = element.id;
$('#tribune_id').append(`<option value="${optionValue}">${optionText}</option>`);
});
}
});
}
function clearScreenSeatChange() {
$('#tribune_id')
.find('option')
.remove()
.end()
.append('<option value="">--Seleccione</option>')
.val('');
$('#zone_id')
.find('option')
.remove()
.end()
.append('<option value="">--Seleccione</option>')
.val('');
$('#seat_id')
.find('option')
.remove()
.end()
.append('<option value="">--Seleccione</option>')
.val('');
calculateDestino();
}
function loadSubZones() {
let tribune_id = $('#tribune_id').val();
$('#seat_id')
.find('option')
.remove()
.end()
.append('<option value="">--Seleccione</option>')
.val('');
calculateDestino();
$.ajax({
url: `/tickets/getTribunesByZone/${tribune_id}`,
dataType: "json",
processData: false,
contentType: false,
success: function (data) {
$('#zone_id')
.find('option')
.remove()
.end()
.append('<option value="">--Seleccione</option>')
.val('');
data.data.forEach(element => {
let optionText = element.name;
let optionValue = element.id;
$('#zone_id').append(`<option value="${optionValue}">${optionText}</option>`);
});
}
});
}
function loadSeats() {
let zone_id = $('#zone_id').val();
let match_event_id_origin = $('#modal-change-seat').data('match_event_id');
calculateDestino();
$.ajax({
url: `/tickets/getSeatFreeByZone/${zone_id}/${match_event_id_origin}`,
dataType: "json",
processData: false,
contentType: false,
success: function (data) {
$('#seat_id')
.find('option')
.remove()
.end()
.append('<option value="">--Seleccione</option>')
.val('');
data.data.forEach(element => {
let optionText = `${element.letter.name}${element.code}`;
let optionValue = element.id;
$('#seat_id').append(`<option value="${optionValue}">${optionText}</option>`);
});
}
});
}
function finishSelectionSeat() {
calculateDestino();
}
function calculateDestino() {
let tribune_id = $('#tribune_id').find(":selected").text();
let zone_id = $('#zone_id').find(":selected").text();
let seat_id = $('#seat_id').find(":selected").text();
let labelDestino = $('#labelDestino');
let textDestino = `${tribune_id} - ${zone_id} - ${seat_id}`;
labelDestino.text(`Silla destino: ${textDestino}`)
}
function getConfirmationSeatChangeTickets() {
let tribune_id = $('#tribune_id').val();
let zone_id = $('#zone_id').val();
let seat_id = $('#seat_id').val();
if (!tribune_id || !zone_id || !seat_id) {
swal("Advertencia", "¡Debes ingresar todos los datos!", "warning");
return;
}
let ticket_id_origin = $('#modal-change-seat').data('ticket_id');
// Se obtienen para informar los tickets que se modificaran del usuario, adicional se valida si el cambio es posible.
$.ajax({
url: `/tickets/getPendingMatchesTickets/${ticket_id_origin}/${tribune_id}/${zone_id}/${seat_id}`,
method: "GET",
success: function (data) {
let msgSwal = "";
data.forEach(elem => {
msgSwal = msgSwal + `* (${elem.match_event.date_name}) ${elem.match_event.name} ${elem.code_ticket} - ${elem.door} - ${elem.zone} - ${elem.letter_seat}${elem.code_seat}` + "\n\n";
});
swal(msgSwal, {
title: "Se han encontrado los siguientes tickets:",
icon: "success",
buttons: {
cancel: "Cancelar",
Ok: {
text: "Si, Continuar",
value: "Ok",
},
},
}).then((val) => {
if (val == "Ok") {
postChangesChangeSeat(ticket_id_origin, seat_id);
}
});
}
});
}
function postChangesChangeSeat(ticket_id_origin, seat_id_final) {
const data = {
ticket_id_origin,
seat_id_final
};
$.ajax({
url: "/tickets/changeMassiveTicketSeat",
method: "POST",
data: JSON.stringify(data),
contentType: "application/json",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
"Content-Type": "application/json",
},
success: function (data) {
if (data.r) {
swal(data.m, {
icon: "success",
buttons: {
Ok: true,
},
}).then((val) => {
if (val == "Ok") {
window.location.reload();
}
});
} else {
swal("Error", data.m, "error");
}
}
})
}
function changeStateTicket(data) {
const $modal = $('#modal-update-ticket');
if ($modal.length === 0) {
swal("Error", "Modal no encontrado", "error");
return;
}
// setea campos directamente antes de mostrar
$modal.find('select[name="ticket_status_id"]').val(data.ticket_status_id).trigger('change');
$modal.find('select[name="ticket_type_id"]').val(data.ticket_type_id).trigger('change');
$modal.find('select[name="special_text"]').val(data.special_text).trigger('change');
$modal.find('input[name="price"]').val(data.price).trigger('change');
// guarda data por si la necesitas despues
$modal.data('data', data);
// finalmente mostrar modal
$modal.modal('show');
}
function updateTicket() {
const $modal = $('#modal-update-ticket');
let data = {
id: $modal.data('data').id,
ticket_status_id: $modal.find('select[name="ticket_status_id"]').val(),
ticket_type_id: $modal.find('select[name="ticket_type_id"]').val(),
special_text: $modal.find('select[name="special_text"]').val(),
price: $modal.find('input[name="price"]').val(),
};
$("#btn-update-ticket").addClass("displayNone");
$("#spinner-update-ticket").removeClass("displayNone");
$.ajax({
url: `/tickets/updateTicket`,
method: "PUT",
data: JSON.stringify(data),
contentType: "application/json",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
"Content-Type": "application/json",
},
success: function (data) {
$("#btn-update-ticket").removeClass("displayNone");
$("#spinner-update-ticket").addClass("displayNone");
if (data.r) {
swal(data.m, {
icon: "success",
buttons: {
Ok: true,
},
}).then((val) => {
if (val == "Ok") {
window.location.reload();
}
});
} else {
swal("Error", data.m, "error");
}
},
error: function (error) {
$("#btn-update-ticket").removeClass("displayNone");
$("#spinner-update-ticket").addClass("displayNone");
swal("Error", error.m, "error");
}
});
}
/** Método para validar tickets */
function validateTickets(ticketMainId) {
swal("¿Estás seguro de generar estas boletas?", {
buttons: {
cancel: "No",
Ok: true,
},
}).then((val) => {
if (val == "Ok") {
var info = {
ticket_main_id: ticketMainId,
};
$.ajax({
url: "/events/validateTicket",
type: "POST",
contentType: "application/json",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr(
"content"
),
"Content-Type": "application/json",
},
data: JSON.stringify(info),
success: function (r) {
if (r.r) {
swal(r.m, {
icon: "success",
buttons: {
Ok: true,
},
}).then((val) => {
if (val == "Ok") {
$(location).attr("href", `/events/tickets/${matchEventId}/blocks`);
}
});
} else {
swal("Error", r.m, { icon: "error" });
}
},
error: function (e) {
swal("Error", Lang.get("messagesClient.events.error_delete"), "error");
},
});
}
});
}
/** Método de notificacion email */
function sendEmailNotifications(value, id_event, code_tickets) {
swal("¿Estás seguro de enviar correo?", {
buttons: {
cancel: "No",
Ok: true,
},
}).then((val) => {
if (val == "Ok") {
var info = {
id_user: value,
code_ticket: code_tickets,
};
$.ajax({
url: "/events/sendEmailNotifications",
type: "POST",
contentType: "application/json",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr(
"content"
),
"Content-Type": "application/json",
},
data: JSON.stringify(info),
success: function (r) {
if (r.r) {
swal("Correo enviado", {
icon: "success",
buttons: {
Ok: true,
},
});
} else {
swal(r.m, { icon: "error" });
}
},
error: function (e) {
swal(
"Error",
Lang.get("messagesClient.events.tag_9"),
"error"
);
},
});
}
});
}
function clickDeleteBackups(matchEventId) {
swal({
icon: "warning",
text: 'Se eliminará todos los tickets backups para este evento, ¿Desea continuar?',
buttons: {
cancel: 'Cancelar',
ok: {
text: "Continuar",
closeModal: false,
},
},
closeOnClickOutside: false,
closeOnEsc: false
})
.then(value => {
if (value == "ok") {
var info = {
matchEventId: matchEventId,
};
$.ajax({
url: "/events/delete-backups",
type: "POST",
contentType: "application/json",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr(
"content"
),
"Content-Type": "application/json",
},
data: JSON.stringify(info),
success: function (r) {
if (r.r) {
swal("Proceso exitoso", r.m, {
icon: "success",
buttons: {
Ok: true,
},
});
} else {
swal("Ops...", r.m, {
icon: "error",
buttons: {
Ok: true,
},
});
}
},
});
}
})
.catch(err => {
if (err) {
swal("Ops...", "Ocurrió un error", "error");
} else {
swal.stopLoading();
swal.close();
}
});
}
function clickSendToBilling(matchEventId) {
swal({
icon: "warning",
text: 'Se enviará a facturar todas las compras pendientes de este evento, ¿Desea continuar?',
buttons: {
cancel: 'Cancelar',
ok: {
text: "Continuar",
closeModal: false,
},
},
closeOnClickOutside: false,
closeOnEsc: false
})
.then(value => {
if (value == "ok") {
var info = {
matchEventId: matchEventId,
};
$.ajax({
url: "/events/send-to-billing",
type: "POST",
contentType: "application/json",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr(
"content"
),
"Content-Type": "application/json",
},
data: JSON.stringify(info),
success: function (r) {
if (r.r) {
swal("Proceso exitoso", r.m, {
icon: "success",
buttons: {
Ok: true,
},
});
} else {
swal("Ops...", r.m, {
icon: "error",
buttons: {
Ok: true,
},
});
}
},
});
}
})
.catch(err => {
if (err) {
swal("Ops...", "Ocurrió un error", "error");
} else {
swal.stopLoading();
swal.close();
}
});
}
function getTicketsUserid(dataId, emailError, ticketid, code_ticket, ticketRelatedDocument) {
if (!ticketRelatedDocument) {
swal({
icon: "warning",
text: 'Correo que no tiene la cedula registrada',
buttons: {
ok: {
text: "Continuar",
closeModal: true,
},
}
})
.then(value => {
if (value == "ok") {
$('#modal_tickets_valid').modal('show');
$("#result").html("<div class='alert alert-dismissible alert-danger' id='emailError'>Actual usuario: <strong>'" + emailError + "'</strong> </div>");
$("#resultInput").html("<input type='hidden' class='alert alert-dismissible alert-danger' id='ticketRelatedDocument' value='" + ticketRelatedDocument + "'data-options='" + dataId + "'data-event-id='" + ticketid + "'data-code_ticket='" + code_ticket + "'DISABLED>");
$('#resultInput').hide();
}
})
} else {
$('#modal_tickets_valid').modal('show');
$("#result").html("<div class='alert alert-dismissible alert-danger' id='emailError'>Actual usuario: <strong>'" + emailError + "'</strong> </div>");
$("#resultInput").html("<input type='hidden' class='alert alert-dismissible alert-danger' id='ticketRelatedDocument' value='" + ticketRelatedDocument + "'data-options='" + dataId + "'data-event-id='" + ticketid + "'data-code_ticket='" + code_ticket + "'DISABLED>");
$('#resultInput').hide();
}
}
function searchUser() {
var document_search = $("#document_search").val();
$("#user_id").val("0");
$("#first_name").val("");
$("#last_name").val("");
$("#phone").val("");
$("#email_user").val("");
if (document_search && document_search != "") {
$.ajax({
url: "/tickets/users/" + document_search,
type: "GET",
contentType: "application/json",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
"Content-Type": "application/json",
},
success: function (r) {
if (r.r) {
$("#container_data_user").removeClass("displayNone");
$("#document").val(document_search);
var current_user = r.data;
let contentHtml = "";
$("#emailUser").html();
if (current_user) {
for (var i = 0; i < current_user.length; i++) {
$("#emailUser").html();
contentHtml = contentHtml + "<div> <label class='container' style='background:#ddd; text-align: center;' > <input type='radio' id='infoUser" + i + "' name='infoUser' value='" + current_user[i].document + "'data-options='" + current_user[i].id + "' > <label for='email'>" + current_user[i].email + " </label> </label> </div>";
$("#button_edi_user").prop("disabled", false);
}
$("#emailUser").html(contentHtml);
} else {
$("#button_edi_user").prop("disabled", true);
}
}
}
});
} else {
swal("Advertencia", "¡Debes ingresar un documento válido!", "warning");
}
}
function editUserTicket() {
let userSelected;
let idSelected;
let cont = 0;
do {
userSelected = $("input[id=infoUser" + cont + "]");
idSelected = $("input[id=infoUser" + cont + "]").data("options");
cont++;
}
while (userSelected && userSelected.is(':checked') == false)
if (!idSelected) {
swal("Advertencia", "¡Debes seleccionar un usuario!", "warning");
return;
}
var info = {
oldUserId: $("input[id='ticketRelatedDocument']").data('options'),
newUserId: idSelected,
event_id: $("input[id='ticketRelatedDocument']").data('event-id'),
code_ticket: $("input[id='ticketRelatedDocument']").data('code_ticket'),
};
swal(Lang.get("messagesClient.user_ticket_change.tag_2"), {
buttons: {
cancel: "No",
Ok: {
text: "Si, Continuar",
value: "Ok",
},
},
}).then((val) => {
if (val == "Ok") {
$.ajax({
url: "/tickets/toUpdateUsersWithTickets",
type: "PUT",
contentType: "application/json",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr(
"content"
),
"Content-Type": "application/json",
},
data: JSON.stringify(info),
success: function (r) {
if (r.r) {
swal(r.m, {
icon: "success",
buttons: {
Ok: true,
},
}).then((val) => {
if (val == "Ok") {
$(location).attr("href", window.location.pathname);
}
});
} else {
swal("Error", r.m, "error");
$("#button_edi_user").removeClass("displayNone");
$("#spinnerButton").addClass("displayNone");
}
},
error: function (e) {
swal("Error", Lang.get("messagesClient.user_ticket_change.tag_1"), "error");
$("#button_edi_user").removeClass("displayNone");
$("#spinnerButton").addClass("displayNone");
},
});
} else {
$("#button_edi_user").removeClass("displayNone");
$("#spinnerButton").addClass("displayNone");
}
});
}
function importMatchEventSeats() {
var archivo = document.getElementById("fileImportMatchEventSeats");
archivo = archivo.files[0];
if (!archivo) {
swal("Advertencia", "¡No hay archivo!", "warning");
return;
}
var t = $("#example22").DataTable();
t.clear().draw();
$("#buttonImportMatchEventSeats").addClass("displayNone");
$("#spinnerButtonMatchEventSeats").removeClass("displayNone");
var formData = new FormData();
formData.append("archivo", archivo);
formData.append("matchEventId", matchEventId);
$.ajax({
type: "POST",
dataType: "json",
processData: false,
contentType: false,
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
},
data: formData,
url: "/tickets/importMatchEventSeats",
success: function (r) {
$("#buttonImportMatchEventSeats").removeClass("displayNone");
$("#spinnerButtonMatchEventSeats").addClass("displayNone");
if (r.d != null) {
if (r.d.length > 0) {
for (var i = 0; i < r.d.length; i++) {
t.row.add([
r.d[i].message,
r.d[i].line,
]);
}
$('#modalMatchEventSeatsImport').modal("hide");
$('#logModal').modal("show");
t.draw();
} else if (r.r) {
swal(r.m, {
icon: "success",
buttons: {
Ok: true,
},
}).then((val) => {
if (val == "Ok") {
$(location).attr("href", window.location.pathname);
}
});
}
} else {
swal("Error", "¡Error al subir el archivo!", "error");
}
},
error: function (e) {
$("#buttonImportMatchEventSeats").removeClass("displayNone");
$("#spinnerButtonMatchEventSeats").addClass("displayNone");
swal("Error", e.responseJSON ? e.responseJSON.message : 'Hubo un error en el servidor, espere unos segundos e intente de nuevo', "error");
}
});
}
function billingOnDemand() {
email = $("#email").val();
type = $("#type").val();
if (!email && !type) {
swal("Error", "¡Debes ingresar un correo o un tipo!", "error");
return false;
}
$("#button").addClass("displayNone");
$("#spinner").removeClass("displayNone");
var info = {
email: email,
matchEventId: matchEventId,
type: type,
};
$.ajax({
url: "/tickets/billingOnDemand",
type: "POST",
contentType: "application/json",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr(
"content"
),
"Content-Type": "application/json",
},
data: JSON.stringify(info),
success: function (r) {
if (r.r) {
swal(r.m, {
icon: "success",
buttons: {
Ok: true,
},
}).then((val) => {
if (val == "Ok") {
$(location).attr("href", window.location.pathname);
}
});
} else {
$("#button").removeClass("displayNone");
$("#spinner").addClass("displayNone");
swal(r.m, { icon: "error" });
}
},
error: function (e) {
$("#button").removeClass("displayNone");
$("#spinner").addClass("displayNone");
swal("Error", e.responseJSON ? e.responseJSON.message : 'Hubo un error en el servidor, espere unos segundos e intente de nuevo', "error");
},
});
}
function importMatchEventSpecialText() {
var archivo = document.getElementById("fileImportMatchEventSpecialText");
archivo = archivo.files[0];
if (!archivo) {
swal("Advertencia", "¡No hay archivo!", "warning");
return;
}
var t = $("#example22").DataTable();
t.clear().draw();
$("#buttonImportMatchEventSpecialText").addClass("displayNone");
$("#spinnerButtonMatchEventSpecialText").removeClass("displayNone");
var formData = new FormData();
formData.append("archivo", archivo);
formData.append("matchEventId", matchEventId);
$.ajax({
type: "POST",
dataType: "json",
processData: false,
contentType: false,
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
},
data: formData,
url: "/tickets/importMatchEventSpecialText",
success: function (r) {
$("#buttonImportMatchEventSpecialText").removeClass("displayNone");
$("#spinnerButtonMatchEventSpecialText").addClass("displayNone");
if (r.d != null) {
if (r.d.length > 0) {
for (var i = 0; i < r.d.length; i++) {
t.row.add([
r.d[i].message,
r.d[i].line,
]);
}
$('#modalMassiveLoadSpecialTextInTickets').modal("hide");
$('#logModal').modal("show");
t.draw();
} else if (r.r) {
swal(r.m, {
icon: "success",
buttons: {
Ok: true,
},
}).then((val) => {
if (val == "Ok") {
$(location).attr("href", window.location.pathname);
}
});
}
} else {
swal("Error", "¡Error al subir el archivo!", "error");
}
},
error: function (e) {
$("#buttonImportMatchEventSpecialText").removeClass("displayNone");
$("#spinnerButtonMatchEventSpecialText").addClass("displayNone");
swal("Error", e.responseJSON ? e.responseJSON.message : 'Hubo un error en el servidor, espere unos segundos e intente de nuevo', "error");
}
});
}
function alertLogMatchEventSeats() {
$(location).attr("href", window.location.pathname);
}
function specialTicketModalClick(value) {
$('#modal_special_tickets').modal('show');
specialTicketId = value;
}
function generateSpecialTickets() {
$("#createSpecialTickets").validator("update");
var info = {
special_text: $('#special_text').val(),
amount: $("#createSpecialTickets input[name='amount']").val(),
ticket_id: specialTicketId
};
if (!info.special_text || !info.amount || !info.ticket_id) {
swal("Advertencia", "¡Debes ingresar todos los datos!", "warning");
return;
}
swal(Lang.get("messagesClient.match_event_tickets.tag_1"), {
buttons: {
cancel: "No",
Ok: true,
},
}).then((val) => {
if (val == "Ok") {
$.ajax({
url: "/events/generateSpecialTickets",
type: "POST",
contentType: "application/json",
headers: {
"X-CSRF-TOKEN": $(
'meta[name="csrf-token"]'
).attr("content"),
"Content-Type": "application/json",
},
data: JSON.stringify(info),
success: function (r) {
if (r.r) {
swal(r.m, {
icon: "success",
buttons: {
Ok: true,
},
}).then((val) => {
if (val == "Ok") {
$(location).attr("href", window.location.pathname);
}
});
} else {
if (r.r == false) {
swal("Error", r.m, "warning");
} else {
swal("Error", Lang.get("messagesClient.user_client_tag3"), "error");
}
}
},
});
}
});
}
function openCreditNote(ticketMainId) {
swal({
icon: "warning",
text: 'Se enviará a generar nota de crédito para esta compra, ¿Desea continuar?',
buttons: {
cancel: 'Cancelar',
ok: {
text: "Continuar",
closeModal: false,
},
},
closeOnClickOutside: false,
closeOnEsc: false
}).then((val) => {
if (val == "ok") {
var info = {
ticketMainId: ticketMainId,
};
$.ajax({
url: "/events/credit-note",
type: "POST",
contentType: "application/json",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr(
"content"
),
"Content-Type": "application/json",
},
data: JSON.stringify(info),
success: function (r) {
if (r.r) {
swal(r.m, {
icon: "success",
buttons: {
Ok: true,
},
}).then((val) => {
if (val == "Ok") {
$(location).attr("href", window.location.pathname);
}
});
} else {
swal("Error", r.m, { icon: "error" });
}
},
error: function (e) {
swal("Error", Lang.get("messagesClient.events.tag_9"), "error");
},
});
}
}).catch(err => {
if (err) {
swal("Ops...", "Ocurrió un error", "error");
} else {
swal.stopLoading();
swal.close();
}
});
}
function openReInvoice(ticketMainId) {
swal({
icon: "warning",
text: 'Se enviará a re-facturar esta compra, ¿Desea continuar?',
buttons: {
cancel: 'Cancelar',
ok: {
text: "Continuar",
closeModal: false,
},
},
closeOnClickOutside: false,
closeOnEsc: false
}).then((val) => {
if (val == "ok") {
var info = {
ticketMainId: ticketMainId,
};
$.ajax({
url: "/events/re-invoice",
type: "POST",
contentType: "application/json",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr(
"content"
),
"Content-Type": "application/json",
},
data: JSON.stringify(info),
success: function (r) {
if (r.r) {
swal(r.m, {
icon: "success",
buttons: {
Ok: true,
},
}).then((val) => {
if (val == "Ok") {
$(location).attr("href", window.location.pathname);
}
});
} else {
swal("Error", r.m, { icon: "error" });
}
},
error: function (e) {
swal("Error", Lang.get("messagesClient.events.tag_9"), "error");
},
});
}
}).catch(err => {
if (err) {
swal("Ops...", "Ocurrió un error", "error");
} else {
swal.stopLoading();
swal.close();
}
});
}
function ticketNotifications(ticketMainId, codeTicket) {
tickets = codeTicket;
localStorage.setItem('ticket_main_id', ticketMainId);
swal({
title: "Envio boleta",
text: "Boleta a enviar: " + tickets,
buttons: false,
closeOnClickOutside: false,
content: createCustomButtons()
});
function createCustomButtons() {
const container = document.createElement('div');
container.className = 'swal-buttons-container';
container.innerHTML = `
<span id="keepSelling" class="swal-button-cancel" title="Cerrar">×</span>
<button id="sendEmail" class="swal-button swal-button-action">
<i class="fa fa-envelope"></i> Enviar por correo
</button>
<button id="sendWhatsApp" class="swal-button swal-button-action">
<i class="fa fa-whatsapp"></i> Enviar por WhatsApp
</button>
<button id="printTicket" class="swal-button swal-button-action">
<i class="fa fa-print"></i> Imprimir
</button>
`;
return container;
}
// Escuchar clicks después de que se muestre
setTimeout(() => {
document.getElementById('keepSelling').addEventListener('click', () => {
swal.close();
});
document.getElementById('sendEmail').addEventListener('click', () => {
swal.close();
$('#emailModal').modal('show');
});
document.getElementById('printTicket').addEventListener('click', () => {
swal.close();
printTickets(tickets);
});
document.getElementById('sendWhatsApp').addEventListener('click', () => {
swal.close();
$('#whatsappModal').modal('show');
});
}, 100);
}
function printTickets(tickets) {
window.open(window.location.origin + '/tickets/pdf/' + tickets);
}
function sendTicketByEmail(event) {
event.preventDefault();
email = $('#email_address').val();
if (email != $('#confirm_email_address').val()) {
swal("Advertencia", "Los correos electrónicos no coinciden", "warning");
return;
}
ticket_main_id = localStorage.getItem("ticket_main_id");
var info = {
ticket_main_id: ticket_main_id,
email: email,
url: window.location.origin + '/tickets/pdf/' + tickets
};
$('#loading').show();
$.ajax({
url: "/flash_ticket/sendByEmail",
type: "POST",
contentType: "application/json",
headers: {
"X-CSRF-TOKEN": $(
'meta[name="csrf-token"]'
).attr("content"),
"Content-Type": "application/json",
},
data: JSON.stringify(info),
success: function (r) {
$('#loading').hide();
if (r.r) {
swal(r.m, {
icon: "success",
buttons: {
Ok: "Aceptar",
},
}).then((val) => {
$(location).attr("href", window.location.pathname);
});
} else {
if (r.r == false) {
swal("Error", r.m, "error");
} else {
swal("Error", "No se puede enviar por correo la boleta(s)", "error");
}
}
},
});
return false;
}
function sendTicketByWhatsApp(event) {
event.preventDefault();
var phone = $('#dial-code').val() + $('#phone').val();
var phoneConfirmation = $('#dial-code-confirmation').val() + $('#phone-confirmation').val();
if (phone != phoneConfirmation) {
swal("Advertencia", "Los números de WhatsApp no coinciden", "warning");
return;
}
ticket_main_id = localStorage.getItem("ticket_main_id");
var info = {
ticket_main_id: ticket_main_id,
phone: phone,
tickets: tickets
};
$('#loading').show();
$.ajax({
url: "/flash_ticket/sendByWhatsApp",
type: "POST",
contentType: "application/json",
headers: {
"X-CSRF-TOKEN": $(
'meta[name="csrf-token"]'
).attr("content"),
"Content-Type": "application/json",
},
data: JSON.stringify(info),
success: function (r) {
$('#loading').hide();
if (r.r) {
swal(r.m, {
icon: "success",
buttons: {
Ok: "Aceptar",
},
}).then((val) => {
$(location).attr("href", window.location.pathname);
});
} else {
if (r.r == false) {
swal("Error", r.m, "error");
} else {
swal("Error", "No se puede enviar por WhatsApp la boleta(s)", "error");
}
}
},
catch: function (e) {
console.error(e);
$('#loading').hide();
swal("Error", e.message || "No se puede enviar por WhatsApp la boleta(s)", "error");
}
});
return false;
}
function reloadPage() {
$(location).attr("href", window.location.pathname);
}
function initIntlTelInput(phoneInputId, dialCodeInputId, countryCodeInputId) {
const phoneInput = document.querySelector(phoneInputId);
const dialCodeInput = document.querySelector(dialCodeInputId);
const countryCodeInput = document.querySelector(countryCodeInputId);
if (phoneInput && window.intlTelInput) {
const iti = window.intlTelInput(phoneInput, {
initialCountry: "co", // o "auto"
preferredCountries: ["co", "us", "pa", "ec", "cl"],
separateDialCode: true,
utilsScript: "https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.19/js/utils.js",
});
if (dialCodeInput) dialCodeInput.value = iti.getSelectedCountryData().dialCode;
if (countryCodeInput) countryCodeInput.value = iti.getSelectedCountryData().iso2;
phoneInput.addEventListener("countrychange", function () {
if (dialCodeInput) dialCodeInput.value = iti.getSelectedCountryData().dialCode;
if (countryCodeInput) countryCodeInput.value = iti.getSelectedCountryData().iso2;
});
return iti;
}
return null;
}
const iti1 = initIntlTelInput("#phone", "#dial-code", "#country-code");
const iti2 = initIntlTelInput("#phone-confirmation", "#dial-code-confirmation", "#country-code-confirmation");
function isValidPhoneNumber(itiInstance) {
return itiInstance && itiInstance.isValidNumber();
}