File: /var/www/vhost/disk-apps/qas.sports-crowd.com/public/js/academy.js
function clickEditUser(id, typeAcademy) {
$(location).attr("href", "/academy_user/edit/" + id + "/" + typeAcademy);
}
function getUserPayments(user_id) {
$(location).attr("href", "/academy_user_payment/" + user_id);
}
function saveDocument(id) {
var formData = new FormData();
var inputAmount = document.getElementsByName("documentUpload").length;
for (var i = 0; i < document.getElementsByName("documentUpload").length; i++) {
if (document.getElementsByName("documentUpload")[i].files.length) {
var file = document.getElementsByName("documentUpload")[i].files[0];
var fileName = file.name;
var fileSize = file.size;
if (fileSize > 5000000) {
swal("Ok", "¡El archivo no debe superar los 5MB!", "error");
file.name = "";
file.value = "";
} else {
// recuperamos la extensión del archivo
var ext = fileName.split(".").pop();
var correctExte = true;
// Convertimos en minúscula porque
// la extensión del archivo puede estar en mayúscula
ext = ext.toLowerCase();
switch (ext) {
case "xlsx":
case "csv":
case "doc":
case "docx":
case "pdf":
case "jpg":
case "jpeg":
case "png":
break;
default:
swal(
"Ok",
"¡El archivo no tiene la extensión adecuada!",
"error"
);
correctExte = false;
file.name = "";
file.value = ""; // reset del valor
}
}
fDocument = file;
// quita las letras y deja solo el numero
documentId = document.getElementsByName("documentUpload")[i].id.replace(/[^0-9]/g, '');
formData.append("file" + i, fDocument);
formData.append("documentId" + i, documentId);
}
}
formData.append("inputAmount", inputAmount);
formData.append("userId", id.id);
if (correctExte) {
$.ajax({
type: "POST",
dataType: "json",
processData: false,
contentType: false,
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr(
"content"
),
},
data: formData,
url: "/academy_user/saveStudentDocument",
success: function (r) {
if (r.r) {
swal(r.m, {
icon: "success",
buttons: {
Ok: true,
},
}).then((val) => {
if (val == "Ok") {
$(location).attr("href", "/academy_user");
}
});
} else {
swal("Ok", "¡Error al cargar el documento!", "error");
$("#btn-create-category").prop("disabled", false);
}
},
error: function (e) {
swal("Ok", "¡Error al cargar el documento!", "error");
$("#btn-create-category").prop("disabled", false);
},
});
}
}
function saveUserAcademy(typeAcademy) {
$("#saveUser").validator("update");
$("#saveUser")
.validator("update")
.on("submit", function (e) {
if (e.isDefaultPrevented()) {
var validate = validateRequired();
if (validate == true) {
swal("Advertencia", Lang.get("Por favor diligenciar todos los campos requeridos en el formulario"), "warning");
}
} else {
e.preventDefault();
var age = $("#saveUser input[name='age']").val();
var date1 = dateNow();
if (age == 0) {
swal("Advertencia", Lang.get("Ingrese correctamente la fecha de nacimiento"), "warning");
return;
}
var info = {
id: $("#btn-save-user").attr("data-id"),
date: date1,
student_name: $("#saveUser input[name='user_name']").val(),
student_last_name: $("#saveUser input[name='user_last_name']").val(),
student_document_type_id: $("#saveUser select[name='student_document_type_id']").val(),
identification: $("#saveUser input[name='documentID']").val(),
school_name: $("#saveUser input[name='school_name']").val(),
school_grade: $("#saveUser select[name='school_grade']").val(),
age: $("#saveUser input[name='age']").val(),
birthdate: $("#saveUser input[name='birthdate']").val(),
mail: $("#saveUser input[name='email']").val(),
phone: $("#saveUser input[name='mobile']").val(),
city_id: $(" #saveUser select[name='citie_id']").val(),
advisor_name: $("#saveUser input[name='advisor_name']").val(),
advisor_last_name: $("#saveUser input[name='advisor_last_name']").val(),
advisor_name_juridic: $("#saveUser input[name='advisor_name_juridic']").val(),
advisor_last_name_juridic: $("#saveUser input[name='advisor_last_name_juridic']").val(),
advisor_document_type_id: $("#saveUser select[name='advisor_document_type_id']").val(),
advisor_identification: $("#saveUser input[name='advisor_identification']").val(),
advisor_relation: $("#saveUser select[name='advisor_relation']").val(),
type_person: $("#saveUser select[name='type_person']").val(),
advisor_ocupation: $("#saveUser select[name='advisor_ocupation']").val(),
advisor_nit: $("#saveUser input[name='advisor_nit']").val(),
advisor_business_name: $("#saveUser input[name='advisor_business_name']").val(),
advisor_property_name: $("#saveUser input[name='advisor_property_name']").val(),
advisor_isic_code: $("#saveUser input[name='advisor_isic_code']").val(),
// DIRECCION RESPONSABLE JURIDICO
advisor_address: $("#saveUser input[name='advisor_address']").val(),
advisor_address_lat: $("#saveUser input[name='lat-advisor_address']").val(),
advisor_address_lng: $("#saveUser input[name='lng-advisor_address']").val(),
// DIRECCION RESPONSABLE NATURAL
advisor_address_natural: $("#saveUser input[name='advisor_address_natural']").val(),
advisor_address_natural_lat: $("#saveUser input[name='lat-advisor_address_natural']").val(),
advisor_address_natural_lng: $("#saveUser input[name='lng-advisor_address_natural']").val(),
// DIRECCION ALUMNO
address: $("#saveUser input[name='address']").val(),
address_lat: $("#saveUser input[name='lat-address']").val(),
address_lng: $("#saveUser input[name='lng-address']").val(),
advisor_phone: $("#saveUser input[name='advisor_phone']").val(),
advisor_cell_phone: $("#saveUser input[name='advisor_cell_phone']").val(),
advisor_mail: $("#saveUser input[name='advisor_mail']").val(),
advisor_ocupation: $("#saveUser select[name='advisor_ocupation']").val(),
blood_type: $("#saveUser select[name='blood_type']").val(),
eps: $("#saveUser input[name='eps']").val(),
academy_schedule: $(" #saveUser select[name='academy_schedule']").val(),
academy_category_id: $("#saveUser select[name='academy_category']").val(),
tshirt_size: $("#saveUser select[name='tshirt_size']").val(),
uniform_type: $("#saveUser select[name='uniform_type']").val(),
last_inscription_year: $("#saveUser select[name='last_inscription_year']").val(),
discounts: $("#saveUser select[name='generalMultiselect']").val(),
student_academy_code: $("#saveUser input[name='student_academy_code']").val(),
type_academy: typeAcademy,
ocupation: $("#saveUser select[name='ocupation']").val(),
observation: $("#saveUser textarea[name='observations']").val(),
guardian_information: $("#saveUser textarea[name='guardian_information']").val(),
};
swal(Lang.get("messagesClient.academy_user_tag8"), {
buttons: {
cancel: "No",
Ok: true,
},
}).then((val) => {
if (val == "Ok") {
$.ajax({
url: "/academy_user/createStudent",
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) {
var id = r.d;
var doc = [];
var lis = document.getElementsByName("documentUpload").length;
for (var i = 0; i < lis; i++) {
if (document.getElementsByName("documentUpload")[i].files[0])
doc.push(document.getElementsByName("documentUpload")[i].files[0]);
}
if (doc.length) {
saveDocument(id);
} else {
swal(r.m, {
icon: "success",
buttons: {
Ok: true,
},
}).then((val) => {
if (val == "Ok") {
localStorage.setItem("setPageTable", true);
$(location).attr("href", "/academy_user/" + typeAcademy);
}
});
}
} else {
swal("Error", r.m, "error");
}
},
error: function (e) {
swal("Error", Lang.get("messagesClient.academy_user_tag9"), "error");
},
});
}
});
}
});
}
function editUserAcademy(typeAcademy) {
$("#editUser").validator("update");
$("#editUser")
.validator("update")
.on("submit", function (e) {
e.preventDefault();
// Validar campos obligatorios
const isValid = validateRequiredFields([
{ selector: "#editUser select[name='academy_category']", message: "Por favor, selecciona una categoría de academia." }]);
if (!isValid) {
return;
}
swal(Lang.get("messagesClient.academy_user_tag4"), {
buttons: {
cancel: "No",
Ok: true,
},
}).then((val) => {
if (val == "Ok") {
$('#loading').show();
let payStates = [5, 6, 7];
if ($("#editUser input[name='review_state']").val() == 'PENDIENTE' && payStates.includes(parseInt($("#editUser select[name='academy_state_id']").val()))) {
swal("Advertencia", "Existe una confirmación de revisión pendiente y NO se puede modificar el estado del alumno!", "warning")
$('#loading').hide();
return
}
if ($("#errorDocumentosBox").css("display") != "none" && $("#editUser input[name='message']").val() == "") {
swal("Advertencia", "¡Se debe ingresar mensaje!", "warning");
$('#loading').hide();
return
}
if ($("#active").is(":checked")) {
active_check = 1;
} else {
active_check = 0;
}
var date1 = dateNow();
var date2 = $("#editUser input[name='date2']").val();
var hour1 = hourNow();
var hour2 = convertTime12to24($("#editUser input[name='time2']").val());
var fecha1 = new Date(date1 + " " + hour1);
var fecha2 = new Date(date2 + " " + hour2);
if ($("#editUser input[name='date2']").val().trim() == "") {
$("#editUser input[name='date2']").val(date1)
}
if ($("#editUser input[name='time2']").val().trim() == "") {
$("#editUser input[name='time2']").val(hour1)
}
if ((new Date(fecha1).getTime() > new Date(fecha2).getTime()) && $("#editUser select[name='academy_state_id']").val() == 11) {
swal(
"Advertencia",
Lang.get("messagesClient.notification_tag3"),
"warning"
).then(() => {
$('#loading').hide();
});
return;
}
var info = {
id: $("#btn-edit-user").attr("data-id"),
date: $("#editUser input[name='date']").val(),
user_id: $("#editUser input[name='user_id']").val(),
student_name: $("#editUser input[name='user_name']").val(),
student_last_name: $("#editUser input[name='user_last_name']").val(),
student_document_type_id: $("#editUser select[name='student_document_type_id']").val(),
identification: $("#editUser input[name='documentID']").val(),
school_name: $("#editUser input[name='school_name']").val(),
school_grade: $("#editUser select[name='school_grade']").val(),
age: $("#editUser input[name='age']").val(),
birthdate: $("#editUser input[name='birthdate']").val(),
mail: $("#editUser input[name='email']").val(),
phone: $("#editUser input[name='mobile']").val(),
tags: $(" #editUser select[name='tags']").val(),
advisor_name: $("#editUser input[name='advisor_name']").val(),
advisor_last_name: $("#editUser input[name='advisor_last_name']").val(),
advisor_name_juridic: $("#editUser input[name='advisor_name_juridic']").val(),
advisor_last_name_juridic: $("#editUser input[name='advisor_last_name_juridic']").val(),
advisor_document_type_id: $("#editUser select[name='advisor_document_type_id']").val(),
advisor_identification: $("#editUser input[name='advisor_identification']").val(),
advisor_relation: $("#editUser select[name='advisor_relation']").val(),
type_person: $("#editUser select[name='type_person']").val(),
advisor_ocupation: $("#editUser select[name='advisor_ocupation']").val(),
advisor_nit: $("#editUser input[name='advisor_nit']").val(),
advisor_property_name: $("#editUser input[name='advisor_property_name']").val(),
advisor_isic_code: $("#editUser input[name='advisor_isic_code']").val(),
advisor_phone: $("#editUser input[name='advisor_phone']").val(),
advisor_cell_phone: $("#editUser input[name='advisor_cell_phone']").val(),
advisor_mail: $("#editUser input[name='advisor_mail']").val(),
advisor_ocupation: $("#editUser select[name='advisor_ocupation']").val(),
advisor_business_name: $("#editUser input[name='advisor_business_name']").val(),
/*DIRECCION RESPONSABLE */
advisor_direction: $("#editUser input[name='AdvisorDirection']").val(),
advisor_address_id: $("#editUser input[name='addressid-advisor_address']").val(),
advisor_address: $("#editUser input[name='advisor_address']").val(),
advisor_address_lat: $("#editUser input[name='lat-advisor_address']").val(),
advisor_address_lng: $("#editUser input[name='lng-advisor_address']").val(),
// DIRECCION RESPONSABLE NATURAL
advisor_address_natural: $("#editUser input[name='advisor_address_natural']").val(),
advisor_address_natural_lat: $("#editUser input[name='lat-advisor_address_natural']").val(),
advisor_address_natural_lng: $("#editUser input[name='lng-advisor_address_natural']").val(),
/* DIRECCION ALUMNO */
direction: $("#editUser input[name='direction']").val(),
address_id: $("#editUser input[name='addressid-address']").val(),
address: $("#editUser input[name='address']").val(),
address_lat: $("#editUser input[name='lat-address']").val(),
address_lng: $("#editUser input[name='lng-address']").val(),
blood_type: $("#editUser select[name='blood_type']").val(),
eps: $("#editUser input[name='eps']").val(),
message: $("#editUser textarea[name='message']").val(),
when_send:
$(" #editUser input[name='date2']").val() +
" " +
convertTime12to24(
$(
" #editUser input[name='time2']"
).val()
),
academy_schedule: $("#editUser select[name='academy_schedule']").val(),
academy_category_id: $("#editUser select[name='academy_category']").val(),
tshirt_size: $("#editUser select[name='tshirt_size']").val(),
uniform_type: $("#editUser select[name='uniform_type']").val(),
academy_state_id: $("#editUser select[name='academy_state_id']").val(),
last_inscription_year: $("#editUser select[name='last_inscription_year']").val(),
discounts: $("#editUser select[name='generalMultiselect']").val(),
student_academy_code: $("#editUser input[name='student_academy_code']").val(),
ocupation: $("#editUser select[name='ocupation']").val(),
observation: $("#editUser textarea[name='observations']").val(),
guardian_information: $("#editUser textarea[name='guardian_information']").val(),
academy_period_id: $("#editUser select[name='academy_period']").val(),
};
$.ajax({
url: "/academy_user/update",
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) {
$('#loading').hide();
if (r.r) {
var id = r.d;
var doc = [];
var lis = document.getElementsByName("documentUpload").length;
for (var i = 0; i < lis; i++) {
if (document.getElementsByName("documentUpload")[i].files[0])
doc.push(document.getElementsByName("documentUpload")[i].files[0]);
}
if (doc.length) {
saveDocument(id);
} else {
swal(r.m, {
icon: "success",
buttons: {
Ok: true,
},
}).then((val) => {
if (val == "Ok") {
localStorage.setItem("setPageTable", true);
$(location).attr("href", "/academy_user/" + typeAcademy);
}
});
}
} else {
swal("Error", r.m, "error");
}
},
error: function (response) {
$('#loading').hide();
if (response.responseJSON && response.responseJSON.errors) {
const errors = response.responseJSON.errors;
let htmlErrors = '';
for (const key in errors) {
if (errors.hasOwnProperty(key)) {
htmlErrors += `<p>• ${errors[key][0]}</p>`;
}
}
swal({
icon: "error",
title: "Error en el formulario",
content: {
element: "div",
attributes: {
innerHTML: htmlErrors,
},
},
buttons: {
Ok: true,
},
});
} else {
swal("Error", response.responseJSON?.message || "Ocurrió un error inesperado.", "error");
}
},
});
}
});
});
}
function editPaymentUserAcademy() {
$("#editPayment").validator("update");
$("#editPayment")
.validator("update")
.on("submit", function (e) {
// if (e.isDefaultPrevented()) {
// } else {
e.preventDefault();
swal(Lang.get("messagesClient.update_register"), {
buttons: {
cancel: "No",
Ok: true,
},
}).then((val) => {
if (val == "Ok") {
$('#loading').show();
if ($("#active_payment").is(":checked")) {
active_check = 1;
} else {
active_check = 0;
}
var info = {
id: $("#btn-edit-payment").attr("data-id"),
price_payment: $(
" #editPayment input[name='price_payment']"
).val(),
term_type: $(" #editPayment input[name='term_type']").val(),
term: $(" #editPayment input[name='term']").val(),
start_term: $(" #editPayment input[name='start_term']").val(),
end_term: $(" #editPayment input[name='end_term']").val(),
state_payment: $(
" #editPayment select[name='state_payment']"
).val(),
active: active_check,
};
$.ajax({
url: "/academy_payment/update",
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) {
$('#loading').hide();
if (r.r) {
swal(r.m, {
icon: "success",
buttons: {
Ok: true,
},
}).then((val) => {
if (val == "Ok") {
localStorage.setItem("setPageTable", true);
$(location).attr("href", "/user_payments_academy/" + $("#editPayment input[name='academy_user_id']").val());
}
});
} else {
swal("Error", r.m, "error");
}
},
error: function (response) {
$('#loading').hide();
swal("Error", response.responseJSON ? response.responseJSON.message : Lang.get("messagesClient.user_client_tag6"), "error");
},
});
}
});
//}
});
}
function clickDeleteUser(user_id) {
swal(Lang.get("messagesClient.academy_user_tag1"), {
buttons: {
cancel: "No",
Ok: true,
},
}).then((val) => {
if (val == "Ok") {
var info = {
user_id: user_id,
};
$.ajax({
url: "/academy_user/delete",
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.reload();
}
});
} else {
swal(
"Error",
Lang.get("messagesClient.academy_user_tag2"),
"error"
);
}
},
error: function (e) {
swal(
"Error",
Lang.get("messagesClient.academy_user_tag2"),
"error"
);
},
});
}
});
}
function chk(value) {
var state;
if ($("#Checkactive" + value).is(":checked")) {
state = 1;
} else {
state = 0;
}
var info = {
id: value,
state: state,
};
$.ajax({
url: "/academy_user/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(r.m, {
icon: "success",
buttons: {
Ok: true,
},
});
} else {
swal("Error", r.m, "error");
}
},
error: function (e) {
swal(
"Error",
Lang.get("messagesClient.academy_states.error_modifying"),
"error"
);
},
});
}
function chkAcademyStates(typeAcademy) {
var state = document.getElementById("academy_user_id");
var nameState = document.getElementById("academy_state_name");
swal(
(Lang.get("messagesClient.academy_user_tag3") + nameState.value + " ?"), {
buttons: {
cancel: "No",
Ok: true,
},
}).then((val) => {
if (val == "Ok") {
var info = {
id: state.value,
confirmReview: true,
};
$.ajax({
url: "/academy_user/confirmReview",
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") {
localStorage.setItem("setPageTable", true);
$(location).attr("href", "/academy_user/" + typeAcademy);
}
});
} else {
swal("Error", r.m, "error");
}
},
error: function (e) {
swal("Error", Lang.get("messagesClient.academy_states.error_modifying"), "error");
},
});
}
});
}
function modalInfoApp() {
$("#modal_app").modal("show");
}
function dateNow() {
var hoy = new Date();
var dd = hoy.getDate();
var mm = hoy.getMonth() + 1;
var yyyy = hoy.getFullYear();
dd = addZero(dd);
mm = addZero(mm);
return yyyy + "-" + mm + "-" + dd;
}
function addZero(i) {
if (i < 10) {
i = "0" + i;
}
return i;
}
function importAcademyStudents() {
var fExcel = document.getElementById("importAcademyStudents");
fExcel = fExcel.files[0];
if (!fExcel) {
swal("Advertencia", "¡No hay archivo!", "warning");
return;
}
var t = $("#example22").DataTable();
t.clear().draw();
$("#modal_import_students #buttonImport").addClass("displayNone");
$("#modal_import_students #spinnerImport").removeClass("displayNone");
var formData = new FormData();
formData.append("importAcademyStudents", fExcel);
$.ajax({
type: "POST",
dataType: "json",
processData: false,
contentType: false,
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
},
data: formData,
url: "/academy/addStudentsInBulk/import",
success: function (r) {
$("#modal_import_students #buttonImport").removeClass("displayNone");
$("#modal_import_students #spinnerImport").addClass("displayNone");
if (r.r) {
if (r.d != null && r.d.length > 0) {
for (var i = 0; i < r.d.length; i++) {
t.row.add([
r.d[i].message,
r.d[i].line,
]);
}
$('#logModal').modal("show");
t.draw();
} else {
swal(r.m, {
icon: "success",
buttons: {
Ok: true,
},
}).then((val) => {
if (val == "Ok") {
$(location).attr("href", "/academy_user");
}
});
}
} else {
swal("Error", r.m, "error");
}
},
error: function (err) {
$("#modal_import_students #buttonImport").removeClass("displayNone");
$("#modal_import_students #spinnerImport").addClass("displayNone");
swal("Error", err.responseJSON.message, "error");
}
});
}
function importSchedulePayments() {
var fExcel = document.getElementById("importSchedulePayments");
fExcel = fExcel.files[0];
if (!fExcel) {
swal("Advertencia", "¡No hay archivo!", "warning");
return;
}
var t = $("#example22").DataTable();
t.clear().draw();
$("#modal_schedule_payments #buttonImport").addClass("displayNone");
$("#modal_schedule_payments #spinnerImport").removeClass("displayNone");
var formData = new FormData();
formData.append("importSchedulePayments", fExcel);
$.ajax({
type: "POST",
dataType: "json",
processData: false,
contentType: false,
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
},
data: formData,
url: "/academy_purchase/import",
success: function (r) {
$("#modal_schedule_payments #buttonImport").removeClass("displayNone");
$("#modal_schedule_payments #spinnerImport").addClass("displayNone");
if (r.r) {
if (r.d != null && r.d.length > 0) {
for (var i = 0; i < r.d.length; i++) {
t.row.add([
r.d[i].message,
r.d[i].line,
]);
}
$('#logModal').modal("show");
t.draw();
} else {
swal(r.m, {
icon: "success",
buttons: {
Ok: true,
},
}).then((val) => {
if (val == "Ok") {
$(location).attr("href", "/academy_user");
}
});
}
} else {
swal("Error", r.m, "error");
}
},
error: function (err) {
$("#modal_schedule_payments #buttonImport").removeClass("displayNone");
$("#modal_schedule_payments #spinnerImport").addClass("displayNone");
swal("Error", err.responseJSON.message, "error");
}
});
}
function validateRequired() {
var nameFields = ['user_name', 'user_last_name', 'student_document_type_id', 'documentID', 'school_name', 'school_grade', 'birthdate', 'age', 'emailContact', 'mobile',/* 'advisor_name', 'advisor_last_name', 'advisor_document_type_id', 'advisor_identification', 'advisor_relation', 'type_person', 'advisor_ocupation', */ 'blood_type', 'academy_schedule', 'tshirt_size', 'uniform_type', 'last_inscription_year'];
var emptyFields = false;
nameFields.forEach(nameInput => {
if ($(`#saveUser input[name='${nameInput}']`).val() === '') {
emptyFields = true;
return;
}
});
return emptyFields;
}
function getCardInfo() {
var data;
$.ajax({
type: "GET",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
},
url: "/carnet/getCarnet/academy",
data: null,
async: false,
success: function (r) {
if (r.r) {
data = r.d;
} else {
swal("Error", r.m, "error");
}
},
error: function (textStatus, errorThrown) {
document.getElementById("btn-canvacarne").style.display = "none";
swal("Error", Lang.get("messagesClient.carnet.if_exists"), "error");
},
});
return data;
}
function loadCard(
student_id,
student_name,
student_last_name,
identification,
academy_schedule,
blood_type,
studentDocumentType,
categoryName,
userPhoto
) {
var carnet = getCardInfo();
if (student_id && carnet) {
$('#modal_carnet').modal('show');
if (carnet.html) {
showCarnetFromHtml(
carnet,
student_id,
student_name,
student_last_name,
identification,
studentDocumentType,
categoryName,
academy_schedule,
userPhoto
);
return;
}
var canvas = document.getElementById("canvasCarnet");
canvas.style.display = "block";
setTimeout(() => {
var ctx = canvas.getContext('2d');
var background = new Image();
background.crossOrigin = "*";
background.src = carnet["url"] + "?v=" + new Date().getTime();
// Asegúrese de que la imagen se cargue primero, de lo contrario, no se dibujará nada.
background.onload = function () {
ctx.drawImage(background, 0, 0);
}
var user = `${student_name} ${student_last_name}`;
var document = identification;
var documentType = studentDocumentType;
var cardName = carnet['name'];
var optionalField = carnet['optional'] ? carnet['optional'] : '';
var font_type = carnet['font_type'];
var font_color = carnet['font_color'];
if (documentType.length > 3) {
var documentTypeAlias = documentType.obtenerIniciales();
var identification_Alias;
if (documentTypeAlias.length == 3) {
var deleteletter = documentTypeAlias.replace("d", "");
identification_Alias = (deleteletter ? (deleteletter + ': ' + document) : document).toUpperCase();
} else {
identification_Alias = (documentTypeAlias ? (documentTypeAlias + ': ' + document) : document).toUpperCase();
}
} else {
identification_Alias = (documentType ? (documentType + ': ' + document) : document).toUpperCase();
}
user = user.toUpperCase();
cardName = cardName.toUpperCase() + ' - ' + categoryName;
let qrData = {
'u': student_id,
'c': carnet['id'],
't': 'A'
};
var qr = new Image();
qr.src = String(generate(JSON.stringify(qrData)));
background.onload = () => {
canvas.height = canvas.width * (background.height / background.width);
ctx.drawImage(background, 0, 0, canvas.width, canvas.height);
ctx.beginPath();
if (!font_color) {
ctx.fillStyle = 'white';
} else {
ctx.fillStyle = font_color;
}
if (!font_type) {
ctx.font = "bold 20px Arial black";
} else {
let font = 'bold 20px ' + font_type;
ctx.font = font;
}
ctx.textAlign = 'left';
let nameSplit = user.split(' ');
if (nameSplit.length > 3) {
ctx.fillText(nameSplit[0] + ' ' + nameSplit[1], 20, 160);
ctx.fillText(nameSplit[2] + ' ' + nameSplit[3], 20, 180);
} else {
ctx.fillText(user.length > 23 ? user.substring(0, 22) + '...' : user, 20, 180);
}
if (!font_type) {
ctx.font = 'bold 14px Arial';
} else {
let cardNameFont = '14px ' + font_type;
ctx.font = cardNameFont;
}
ctx.fillText(cardName.length > 30 ? cardName.substring(0, 29) + '...' : cardName, 20, 200);
ctx.fillText(identification_Alias, canvas.width / 4, 230);
ctx.fillText('SEDE: ' + academy_schedule, canvas.width / 4, 250);
ctx.fillText('RH: ' + blood_type, canvas.width / 4, 270);
if (optionalField) ctx.fillText(optionalField.length > 30 ? optionalField.substring(0, 29) + '...' : optionalField, canvas.width / 4, 290);
if (!font_color) {
ctx.fillStyle = '#edd549';
} else {
ctx.fillStyle = font_color;
}
ctx.fillText('> ', (canvas.width / 4) - 20, 230);
if (optionalField) ctx.fillText('✔ ', (canvas.width / 4) - 20, 290);
var someimage = window.document.getElementById('qr');
for (var i = 0; i < someimage.getElementsByTagName('img').length; i++) {
var myimg = someimage.getElementsByTagName('img')[i];
}
ctx.fillStyle = "#FFFFFF";
ctx.fillRect(canvas.width - 105, canvas.height - 165, 90, 90); // something in the background
ctx.drawImage(myimg, canvas.width - 100, canvas.height - 160, 80, 80);
myimg.onload = function () {
ctx.drawImage(myimg, canvas.width - 100, canvas.height - 160, 80, 80);
}
ctx.closePath();
};
}, 200);
} else {
document.getElementById("alertModal").style.display = "block";
}
}
function showCarnetFromHtml(
carnet,
student_id,
student_name,
student_last_name,
identification,
studentDocumentType,
categoryName,
academyLocation,
userPhoto
) {
$("#canvas-container").html(carnet.html);
$("#athlete_names").html(student_name);
$("#athlete_last_names").html(student_last_name);
$("#identification").html(studentDocumentType + ' ' + identification);
$("#academy_location").html(academyLocation);
$("#academy_category").html(categoryName);
if ($("#user-photo")) {
$("#user-photo").attr('src', userPhoto + '?_dc=' + new Date().getTime());
}
let qrData = {
'u': student_id,
'c': carnet['id'],
't': 'A'
};
generate(JSON.stringify(qrData));
setTimeout(() => {
const container = document.getElementById("qr");
const canvas = container.querySelector("canvas");
if (canvas) {
const base64 = canvas.toDataURL("image/png");
$('#qr-code').attr('src', base64);
} else {
const img = container.querySelector("img");
if (img) {
const base64 = img.src;
$('#qr-code').attr('src', base64);
}
}
}, 100);
}
function generate(user_input) {
document.getElementById("qr").innerHTML = "";
var qrcode = new QRCode(document.getElementById("qr"), {
text: `${user_input}`,
width: 170, //default 128
height: 170,
colorDark: "#000000",
colorLight: "#ffffff",
correctLevel: QRCode.CorrectLevel.H
});
return qrcode;
}
function clearQr() {
var bandera = false;
$('#modal_carnet').on('hide.bs.modal', function (event) {
var canvasQr = window.document.getElementById("qr");
var seeCanvas = canvasQr.getElementsByTagName('canvas')
if (bandera == false) {
for (let i = 0; i < canvasQr.getElementsByTagName('canvas').length; i++) {
var ctx = seeCanvas[i].getContext('2d');
ctx.clearRect(0, 0, seeCanvas[i].width, seeCanvas[i].height);
}
bandera = true;
}
});
}
function canvasDownload() {
var canvas = document.getElementById("canvasCarnet");
if (canvas) {
image = canvas.toDataURL("image/png", 1.0).replace("image/png", "image/octet-stream");
var link = document.createElement('a');
link.download = "mycarnet.png";
link.href = image;
link.click();
} else {
const element = document.getElementById("previewDiv");
html2canvas(element).then(canvas => {
const link = document.createElement("a");
link.download = "carnet.png";
link.href = canvas.toDataURL("image/png");
link.click();
});
}
}
String.prototype.obtenerIniciales = function (glue) {
if (typeof glue == "undefined") {
var glue = true;
}
var iniciales = this.replace(/[^a-zA-Z- ]/g, "").match(/\b\w/g);
if (glue) {
return iniciales.join('');
}
return iniciales;
};
function searchStates(state_id) {
var user_app = $("#editUser input[name='user_id']").val();
var info = {
state_id: state_id,
user_id: user_app,
};
$.ajax({
type: "POST",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
},
data: info,
url: "/academy/searchCities",
async: false,
success: function (r) {
if (r.r) {
data = r.d;
if (data) {
$('#citie_id3 option').remove();
data.forEach(function (item) {
$('#citie_id3').append(new Option(item.name, item.id));
});
$('#selected_cities').show();
$('#selected_cities_default').hide();
$('#btn-edit-user').attr('disabled', false);
}
} else {
swal("Error", r.m, "error");
}
},
error: function (textStatus, errorThrown) {
swal("Error", Lang.get("Error al seleccionar departamento"), "error");
},
});
select = document.getElementById('citie_id3');
for (var i = 0; i < data.length; i++) {
var opt = document.createElement('option');
opt.innerHTML = '';
opt.value = data[i]['id'];
opt.innerHTML = data[i]['name'];
select.appendChild(opt);
}
}
function advisorSearchStates(state_id) {
var user_app = $("#editUser input[name='user_id']").val();
var info = {
state_id: state_id,
user_id: user_app,
};
$.ajax({
type: "POST",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
},
data: info,
url: "/academy/searchCities",
async: false,
success: function (r) {
if (r.r) {
data = r.d;
if (data) {
$('#AdvisorCitie_id3 option').remove();
data.forEach(function (item) {
$('#AdvisorCitie_id3').append(new Option(item.name, item.id));
});
$('#advisor_selected_cities').show();
$('#advisor_selected_cities_default').hide();
$('#btn-edit-user').attr('disabled', false);
}
} else {
swal("Error", r.m, "error");
}
},
error: function (textStatus, errorThrown) {
swal("Error", Lang.get("Error al seleccionar departamento"), "error");
},
});
select = document.getElementById('citie_id3');
for (var i = 0; i < data.length; i++) {
var opt = document.createElement('option');
opt.innerHTML = '';
opt.value = data[i]['id'];
opt.innerHTML = data[i]['name'];
select.appendChild(opt);
}
}
function searchCities(citie_id) {
var select = $("#stateCountry_id option:selected").val();
var info = {
citie_id: citie_id,
state_id: select,
};
$.ajax({
type: "POST",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
},
data: info,
url: "/academy/selectCities",
async: false,
success: function (r) {
if (r.r) {
data = r.d;
$('#btn-edit-user').attr('disabled', false);
} else {
swal("Error", r.m, "error");
$('#btn-edit-user').attr('disabled', true);
}
},
error: function (textStatus, errorThrown) {
swal("Error", Lang.get("Error al seleccinar la ciudad"), "error");
},
});
}
function advisorSearchCities(citie_id) {
var select = $("#AdvisorStateCountry_id option:selected").val();
var info = {
citie_id: citie_id,
state_id: select,
};
$.ajax({
type: "POST",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
},
data: info,
url: "/academy/selectCities",
async: false,
success: function (r) {
if (r.r) {
data = r.d;
$('#btn-edit-user').attr('disabled', false);
} else {
swal("Error", r.m, "error");
$('#btn-edit-user').attr('disabled', true);
}
},
error: function (textStatus, errorThrown) {
swal("Error", Lang.get("Error al seleccinar la ciudad"), "error");
},
});
}
function importStudentSchedule() {
var fExcel = document.getElementById("importStudentSchedule");
fExcel = fExcel.files[0];
if (!fExcel) {
swal("Advertencia", "¡No hay archivo!", "warning");
return;
}
var t = $("#example22").DataTable();
t.clear().draw();
$("#modal_import_schedules #buttonImport").addClass("displayNone");
$("#modal_import_schedules #spinnerImport").removeClass("displayNone");
var formData = new FormData();
formData.append("importStudentSchedule", fExcel);
$.ajax({
type: "POST",
dataType: "json",
processData: false,
contentType: false,
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
},
data: formData,
url: "/academy/studentSchedule/import",
success: function (r) {
$("#modal_import_schedules #buttonImport").removeClass("displayNone");
$("#modal_import_schedules #spinnerImport").addClass("displayNone");
if (r.r) {
if (r.d != null && r.d.length > 0) {
for (var i = 0; i < r.d.length; i++) {
t.row.add([
r.d[i].message,
r.d[i].line,
]);
}
$('#logModal').modal("show");
t.draw();
} else {
swal(r.m, {
icon: "success",
buttons: {
Ok: true,
},
}).then((val) => {
if (val == "Ok") {
$(location).attr("href", "/academy_user");
}
});
}
} else {
swal("Error", r.m, "error");
}
},
error: function (err) {
$("#modal_import_schedules #buttonImport").removeClass("displayNone");
$("#modal_import_schedules #spinnerImport").addClass("displayNone");
swal("Error", err.responseJSON.message, "error");
},
});
}
function alertLogSchedule() {
swal(Lang.get("messagesClient.coverage_.title_1"), {
icon: "error",
buttons: {
Ok: true,
},
}).then((val) => {
if (val == "Ok") {
$(location).attr("href", "/academy_user");
}
});
}
function alertLogClients() {
$(location).attr("href", "/academy_user");
}
function alertLogStudents() {
swal(Lang.get("messagesClient.coverage_.title_1"), {
icon: "error",
buttons: {
Ok: true,
},
}).then((val) => {
if (val == "Ok") {
$(location).attr("href", "/academy_user");
}
});
}
function dateNow() {
var hoy = new Date();
var dd = hoy.getDate();
var mm = hoy.getMonth() + 1;
var yyyy = hoy.getFullYear();
dd = addZero(dd);
mm = addZero(mm);
return yyyy + "-" + mm + "-" + dd;
}
function convertTime12to24(time12h) {
const [time, modifier] = time12h.split(" ");
let [hours, minutes] = time.split(":");
if (hours === "12") {
hours = "00";
}
if (modifier === "PM") {
hours = parseInt(hours, 10) + 12;
}
return hours + ":" + minutes;
}
function hourNow() {
var hour = new Date();
hour = hour.getHours() + ":" + hour.getMinutes();
return hour;
}
function addZero(i) {
if (i < 10) {
i = "0" + i;
}
return i;
}
function validateRequiredFields(fields) {
for (const field of fields) {
const value = $(field.selector).val();
if (!value) {
swal("Error", field.message, "error");
return false;
}
}
return true;
}
function importAcademyTags() {
var fExcel = document.getElementById("importAcademyTags");
fExcel = fExcel.files[0];
if (!fExcel) {
swal("Advertencia", "¡No hay archivo!", "warning");
return;
}
var t = $("#example22").DataTable();
t.clear().draw();
$("#modal_import_tags #buttonImport").addClass("displayNone");
$("#modal_import_tags #spinnerImport").removeClass("displayNone");
var formData = new FormData();
formData.append("importAcademyTags", fExcel);
$.ajax({
type: "POST",
dataType: "json",
processData: false,
contentType: false,
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
},
data: formData,
url: "/academy/tags/import",
success: function (r) {
$("#modal_import_tags #buttonImport").removeClass("displayNone");
$("#modal_import_tags #spinnerImport").addClass("displayNone");
if (r.r) {
if (r.d != null && r.d.length > 0) {
for (var i = 0; i < r.d.length; i++) {
t.row.add([
r.d[i].message,
r.d[i].line,
]);
}
$('#logModal').modal("show");
t.draw();
} else {
swal(r.m, {
icon: "success",
buttons: {
Ok: true,
},
}).then((val) => {
if (val == "Ok") {
$(location).attr("href", "/academy_user");
}
});
}
} else {
swal("Error", r.m, "error");
}
},
error: function (err) {
$("#modal_import_tags #buttonImport").removeClass("displayNone");
$("#modal_import_tags #spinnerImport").addClass("displayNone");
swal("Error", err.responseJSON.message, "error");
},
});
}