File: /var/www/vhost/disk-apps/demo.sports-crowd.com/resources/views/academy/academy_users.blade.php
@extends('modules.head') @section('contenido')
<style>
/* Ensure that the demo table scrolls */
/* th, */
td {
white-space: nowrap;
}
div.dataTables_wrapper {
height: fit-content;
margin: 0px 10px 0px 10px;
}
.dataTables_scrollBody {
max-height: none !important;
}
.canvas-container {
display: flex;
align-items: center;
justify-content: center;
}
.pendingPayment {
background-color: #FB5656 !important;
}
/* toasts */
* {
box-sizing: border-box;
}
.btn:active {
transform: scale(0.98);
}
#toasts {
position: fixed;
bottom: 100px;
right: 10px;
display: flex;
flex-direction: column;
align-items: flex-end;
z-index: 1051;
}
.toast {
width: 300px;
height: 70px;
border-radius: 5px;
margin: 0.5rem;
color: #ffffff;
font-weight: 900;
display: flex;
align-items: center;
justify-content: center;
flex-direction: row-reverse;
}
.success {
background-color: #4caf50;
}
.hidden {
display: none;
}
</style>
@php
$page_prefix = "academy_user_" . $type_academy;
@endphp
<div class="box-header">
<a class="btn btn-app btnReportProducts" onclick="clickExportAll('{{ $type_academy }}')">
<i class="fa fa-file-excel-o"></i> {{ Lang::get('messages.academy_users.title_export_all') }}
</a>
<a class="btn btn-app btnReportProducts" data-toggle="modal" data-target="#modal_import_reports_academy">
<i class="fa fa-file-pdf-o"></i> {{ Lang::get('messages.academy_users.tag74') }}
</a>
@if (!in_array(Auth::user()->rol->id, [14]))
<a class="btn btn-app btnReportProducts" data-toggle="modal" data-target="#modal_import_students">
<i class="fa fa-cloud-upload"></i> {{ Lang::get('messages.academy_users.title_import_all') }}
</a>
<a class="btn btn-app btnReportProducts" data-toggle="modal" data-target="#modal_schedule_payments">
<i class="fa fa-cloud-upload"></i> {{ Lang::get('messages.academy_users.title_schedule_payments') }}
</a>
<a class="auxiliar-black" href="{{ url('/academy/add_academy_users') }}{{ '/' . $type_academy }}">
<button class="btn btnAdd pull-right">
<i style="margin-right:5px;" class="fa fa-plus"></i>{{ Lang::get('messages.academy_users.titleAdd') }}
</button>
</a>
<a class="btn btn-app btnReportProducts" data-toggle="modal" data-target="#modal_import_schedules">
<i class="fa fa-cloud-upload"></i> {{ Lang::get('messages.academy_users.import_all_schedules') }}
</a>
<a class="btn btn-app btnReportProducts" data-toggle="modal" data-target="#modal_import_tags">
<i class="fa fa-cloud-upload"></i> {{ Lang::get('messages.academy_users.import_all_tags') }}
</a>
@endif
</div>
<div class="box">
<div class="box-header">
<h3 class="box-title"><b>{{ Lang::get('messages.academy_users.filters') }}</b></h3>
<div class="row">
<div class="col-3 col-md-3">
<label for="states">{{ Lang::get('messages.academy_users.tag43') }}</label>
<select class="form-control select2" multiple="multiple" data-placeholder="{{ Lang::get('messages.academy_users.placeholder_select') }}" name="states" value="" required>
@foreach ($states as $state)
<option value="{{ $state->id }}">{{ $state->name }}</option>
@endforeach
</select>
</div>
<div class="col-3 col-md-3">
<label for="status">{{ Lang::get('messages.academy_users.tag27-1') }}</label>
<select class="form-control select2" multiple="multiple" data-placeholder="{{ Lang::get('messages.academy_users.placeholder_select') }}" name="status" value="" required>
@foreach ($status as $statu)
<option value="{{ $statu }}">{{ $statu }}</option>
@endforeach
</select>
</div>
<div class="col-3 col-md-3">
<label for="from_date">{{ Lang::get('messages.academy_users.tag8-1') }}</label>
<div class="input-group date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<input type="text" class="form-control pull-right" placeholder="{{ Lang::get('messages.academy_users.placeholder_date') }}" name="from_date" value="" autocomplete="off">
</div>
</div>
<div class="col-3 col-md-3">
<label for="to_date">{{ Lang::get('messages.academy_users.tag8-2') }}</label>
<div class="input-group date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<input type="text" class="form-control pull-right" placeholder="{{ Lang::get('messages.academy_users.placeholder_date') }}" name="to_date" value="" autocomplete="off">
</div>
</div>
</div>
{{-- new filters --}}
<div class="row">
<div class="col-3 col-md-3">
<label for="locations">{{ config('app.location') . Lang::get('messages.academy_users.tag2') }}</label>
<select class="form-control select2" multiple="multiple"
data-placeholder="{{ Lang::get('messages.academy_schedules.select') }}"
name="locations" id="locations" required>
</select>
</div>
<div class="col-3 col-md-3">
<label for="categories">{{ Lang::get('messages.screen_banners_tag6') }}</label>
<select class="form-control select2" multiple="multiple"
data-placeholder="{{ Lang::get('messages.academy_schedules.select') }}"
name="categories" id ="categories" required>
</select>
</div>
<div class="col-3 col-md-3">
<label for="schedules">Horarios</label>
<select class="form-control select2" multiple="multiple"
data-placeholder="{{ Lang::get('messages.academy_schedules.select') }}"
name="schedules" id="schedules" required>
</select>
</div>
<div class="col-3 col-md-3">
<label for="coaches">{{ Lang::get('messages.academy_schedules.tag7') }}</label>
<select class="form-control select2" multiple="multiple"
data-placeholder="{{ Lang::get('messages.academy_schedules.select') }}"
name="coaches" id="coaches" required>
</select>
</div>
</div>
{{-- end new filters --}}
<p style="margin-top: 10px; border-bottom: 1px solid #D3D3D3;"></p>
<h3 class="box-title"><b>{{ Lang::get('messages.academy_users.title') }}</b></h3>
</div>
<!-- /.box-header -->
<table id="{{$page_prefix}}" class="stripe row-border order-column" style="width:100%" role="grid" aria-describedby="academy_user_info">
<thead>
<tr role="row">
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag2-1') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag2-2') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag43') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag2-12') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag2-3') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag2-4') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
Código estudiante
</th>
@if ($type_academy == 'children')
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag2-5') }}
</th>
@endif
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag2-6') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag2-7') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag2-8') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag2-9') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag2-10') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.student_address') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag1-1') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag1-2') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag1-3') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag1-4') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag1-5') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag15-1') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag15-2') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag15-3') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag15-4') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag15-5') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag15-6') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.observations') }}
</th>
{{--Campos persona jurídica --}}
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.type_person') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.advisor_nit') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.advisor_business_name') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.advisor_property_name') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.advisor_isic_code') }}
</th>
{{-- <th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1"
aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.advisor_name_of_contact_person_nit') }}</th> --}}
{{-- <th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1"
aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.advisor_city') }}</th> --}}
{{-- <th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1"
aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.advisor_address') }}</th> --}}
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.advisor_phone') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.advisor_cell_phone') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.address_advisor') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.advisor_mail') }}
</th>
{{--END Campos persona jurica --}}
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag37') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag38') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ config('app.location') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag58') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag64-1') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag64-2') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag3-1') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag3-2') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag31-1')}}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag31-2')}}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag59') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag60') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag8') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag45') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag27-1') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag27-2') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.last_status_date') }}
</th>
{{-- Terms and conditions --}}
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ $textTermsColumn ?? 'Términos y Condiciones'}}
</th>
{{-- --}}
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_document.app_certificate') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.reports') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag42') }}
</th>
<th class="sorting" tabindex="0" aria-controls="{{$page_prefix}}" rowspan="1" colspan="1" aria-label="Engine version: activate to sort column ascending">
{{ Lang::get('messages.academy_users.tag41') }}
</th>
</tr>
</thead>
</table>
<!-- /.box-body -->
</div>
@include('academy.users.modal.schedule_payments')
@include('academy.users.modal.carnet')
@include('academy.users.modal.import_reports_academy')
@include('academy.users.modal.import_students')
@include('academy.users.modal.import_schedules')
@include('academy.users.modal.import_tags')
@include('academy.users.modal.logs')
<!-- alert toast -->
<div id="toasts"></div>
<button class="btn" id="button" onclick="clickEvent()"></button>
<script src="{{ asset('js/jQuery/jquery-2.2.3.min.js') }}"></script>
<script src="{{ asset('js/bootstrap/js/bootstrap.min.js') }}"></script>
<script src="{{ asset('js/util.js') . '?v=' . time() }}"></script>
<script src="{{ asset('js/academy.js') . '?v=' . time() }}"></script>
<script src="{{ asset('js/academy_reports.js') . '?v=' . time() }}"></script>
<script src="{{ asset('js/dropzone/dropzone.js') . '?v=' . time() }}"></script>
<script src="{{ asset('js/filter.js') . '?v=' . time() }}"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js"></script>
<script type="text/javascript">
let typeAcademy = <?php echo json_encode($type_academy); ?>;
const SELECTOR_PREFIX = "{{$page_prefix}}";
$(document).ready(function() {
const existingLocationId = localRetrieve(`${SELECTOR_PREFIX}_filterLocations`);
const existingCategoryId = localRetrieve(`${SELECTOR_PREFIX}_filterCategories`);
const existingScheduleId = localRetrieve(`${SELECTOR_PREFIX}_filterSchedules`);
const existingCoachId = localRetrieve(`${SELECTOR_PREFIX}_filterCoaches`);
const existingFilteredStates = localRetrieve(`${SELECTOR_PREFIX}_filterStatesAux`);
const locationRequest = getAcademyLocations(existingLocationId);
const categoryRequest = getAcademyCategories(existingCategoryId);
const scheduleRequest = getAcademySchedules(existingScheduleId);
const coachRequest = getAcademyCoaches(existingCoachId);
validateLocalStoreInformation();
$('.select2').select2();
$.when(locationRequest, categoryRequest, scheduleRequest, coachRequest).done(function() {
if (existingLocationId || existingCategoryId || existingScheduleId || existingCoachId) {
restoreFilteredStates(existingFilteredStates, existingLocationId, existingCategoryId, existingScheduleId, existingCoachId);
cleanPagination();
getData();
}else{
getData();
}
}).fail(function() {
console.error('Alguna de las peticiones falló');
});
$("select[name='locations']").on('change', function(event) {
generalFilter(event);
cleanPagination();
getData();
});
$("select[name='categories']").on('change', function(event) {
generalFilter(event);
cleanPagination();
getData();
});
$("select[name='schedules']").on('change', function (event) {
generalFilter(event);
cleanPagination();
getData();
});
$("select[name='coaches']").on('change', function(event) {
generalFilter(event);
cleanPagination();
getData();
});
var info =
'<i class="fa fa-info-circle" id="btn-info-busqueda"></i><div class="dropdown-menu" id="menuBusqueda" style="left: 50%; padding: 5px; background-color: #f9fb8f;"><p data-toggle="modal">Busqueda por Código, Nombre y Teléfono</p></div>';
$(`#${SELECTOR_PREFIX}_filter`).append(info);
$('#btn-info-busqueda').on('click', function() {
$('#menuBusqueda').toggle();
});
$('.select2').select2();
$.fn.datepicker.dates['en'] = {
days: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'],
daysShort: ['Dom', 'Lun', 'Mar', 'Mié', 'Juv', 'Vie', 'Sáb'],
daysMin: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sá'],
months: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre',
'Octubre', 'Noviembre', 'Diciembre'
],
monthsShort: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov',
'Dic'
],
today: "Hoy",
clear: "Clear",
format: "yyyy-mm-dd",
titleFormat: "MM yyyy",
weekStart: 0
};
$("input[name='from_date']").datepicker({
dateFormat: 'yyyy-mm-dd'
});
$("input[name='to_date']").datepicker({
dateFormat: 'yyyy-mm-dd'
});
$("select[name='states']").on('change', function() {
cleanPagination();
getData();
});
$("select[name='status']").on('change', function() {
cleanPagination();
getData();
});
let from_date;
$("input[name='from_date']").on('change', function(event) {
if ((this.value && from_date != this.value) || (!this.value && from_date)) {
from_date = this.value;
cleanPagination();
getData();
} else {
localStore(`${SELECTOR_PREFIX}_filterFromDate`, this.value);
}
});
let to_date;
$("input[name='to_date']").on('change', function() {
if ((this.value && to_date != this.value) || (!this.value && to_date)) {
to_date = this.value;
cleanPagination();
getData();
} else {
localStore(`${SELECTOR_PREFIX}_filterToDate`, this.value);
}
});
});
function getData() {
let states = $("select[name='states']").val();
let status = $("select[name='status']").val();
let from_date = $("input[name='from_date']").val();
let to_date = $("input[name='to_date']").val();
let locations = $("select[name='locations']").val();
let categories = $("select[name='categories']").val();
let schedules = $("select[name='schedules']").val();
let coaches = $("select[name='coaches']").val();
localStore(`${SELECTOR_PREFIX}_filterStates`, states);
localStore(`${SELECTOR_PREFIX}_filterStatus`, status);
localStore(`${SELECTOR_PREFIX}_filterFromDate`, from_date);
localStore(`${SELECTOR_PREFIX}_filterToDate`, to_date);
localStore(`${SELECTOR_PREFIX}_filterLocations`, locations);
localStore(`${SELECTOR_PREFIX}_filterCategories`, categories);
localStore(`${SELECTOR_PREFIX}_filterSchedules`, schedules);
localStore(`${SELECTOR_PREFIX}_filterCoaches`, coaches);
var sort_col = $(`#${SELECTOR_PREFIX}`).find("th:contains("+ Lang.get('messages.academy_users.tag8')+")")[0].cellIndex;
var tableData = [
{
data: 'student_name',
name: 'student_name'
},
{
data: 'student_last_name',
name: 'student_last_name'
},
{
data: 'academy_state.name',
render: function(data, type, row, column) {
return row.academy_state ? '<div style="background-color: ' + row.academy_state.color +
'; color: white; padding: 5px; font-weight: bold; border-radius: 10px; text-align: center;">' +
row.academy_state.name + '</div>' : '';
},
name: 'academy_state.name'
},
{
data: 'photo',
name: 'photo'
},
{
data: 'studentDocumentType',
name: 'document_types.name'
},
{
data: 'identification',
name: 'identification'
},
{
data: 'student_academy_code',
name: 'student_academy_code'
},
{
data: 'school_name',
name: 'school_name'
},
{
data: 'school_grade',
name: 'school_grade'
},
{
data: 'birthdate',
name: 'birthdate'
},
{
data: 'age',
name: 'age'
},
{
data: 'mail',
name: 'mail'
},
{
data: 'phone',
name: 'phone'
},
{
data: 'direction_student',
name: 'addresses_student.direction'
},
{
data: 'academy_user_id',
render: function(data, type, row, column) {
if (row.user_deleted_at !== null) {
return row.academy_users && row.academy_users.user
? `<div style="color:red;">Eliminado: ${row.academy_users.user.first_name}</div>`
: '<div style="color:red;">Eliminado: Sin nombre</div>';
}
return row.academy_users && row.academy_users.user ? row.academy_users.user.first_name : '';
},
name: 'appUser.first_name'
},
{
data: 'academy_user_id',
render: function(data, type, row, column) {
if (row.user_deleted_at !== null) {
return row.academy_users && row.academy_users.user
? `<div style="color:red;">Eliminado: ${row.academy_users.user.last_name}</div>`
: '<div style="color:red;">Eliminado: Sin apellido</div>';
}
return row.academy_users && row.academy_users.user ? row.academy_users.user.last_name : '';
},
name: 'appUser.last_name'
},
{
data: 'academy_user_id',
render: function(data, type, row) {
if (row.user_deleted_at !== null) {
return row.academy_users && row.academy_users.user
? `<div style="color:red;">Eliminado: ${row.academy_users.user.email}</div>`
: '<div style="color:red;">Eliminado: Asignar usuario app</div>';
}
return row.academy_users && row.academy_users.user ? row.academy_users.user.email :
'<div style="color:red;">Asignar usuario app</div>';
},
name: 'appUser.email'
},
{
data: 'contactDocumentType',
name: 'document_types_contact.name'
},
{
data: 'academy_user_id',
render: function(data, type, row, column) {
if (row.user_deleted_at !== null) {
return row.academy_users && row.academy_users.user && row.academy_users.user.document
? `<div style="color:red;">Eliminado: ${row.academy_users.user.document}</div>`
: '<div style="color:red;">Eliminado: Sin documento</div>';
}
return row.academy_users && row.academy_users.user && row.academy_users.user.document
? row.academy_users.user.document : '';
},
name: 'appUser.document'
},
{
data: 'advisor_name',
name: 'advisor_name'
},
{
data: 'advisor_last_name',
name: 'advisor_last_name'
},
{
data: 'advisorDocumentType',
name: 'document_types_advisor.name'
},
{
data: 'advisor_identification',
name: 'advisor_identification'
},
{
data: 'advisor_relation',
name: 'advisor_relation'
},
{
data: 'advisor_ocupation',
name: 'advisor_ocupation'
},
{
data: 'observations',
name: 'observations'
},
{
data: 'type_person',
render: function(data, type, row, column) {
response = row.type_person;
switch (row.type_person) {
case 'ALL':
response = "{{ Lang::get('messages.academy_document.all') }}";
break;
case 'JURIDIC_PERSON':
response = "{{ Lang::get('messages.academy_document.juridic_person') }}";
break;
case 'NATURAL_PERSON':
response = "{{ Lang::get('messages.academy_document.natural_person') }}";
break;
}
return response;
},
name: 'type_person'
},
{
data: 'advisor_nit',
name: 'advisor_nit'
},
{
data: 'advisor_business_name',
name: 'advisor_business_name'
},
{
data: 'advisor_property_name',
name: 'advisor_property_name'
},
{
data: 'advisor_isic_code',
name: 'advisor_isic_code'
},
{
data: 'advisor_phone',
name: 'advisor_phone'
},
{
data: 'advisor_cell_phone',
name: 'advisor_cell_phone'
},
{
data: 'direction_advisor',
name: 'addresses_advisor.direction'
},
{
data: 'advisor_mail',
name: 'advisor_mail'
},
{
data: 'blood_type',
name: 'blood_type'
},
{
data: 'eps',
name: 'eps'
},
{
data: 'locationName',
render: function(data, type, row) {
return row.locationName ?? row.academy_place;
},
name: 'academy_locations.name' || 'academy_place'
},
{
data: 'categoryName',
name: 'academy_categories.name'
},
{
data: 'scheduleName',
name: 'academy_schedules.name'
},
{
data: 'coaches',
name: 'coaches',
render: function(data, type, row, meta) {
let coaches = '';
if (row.coaches) {
let coachesData = row.coaches.split(',');
let coachesList = coachesData.map(function(data, index) {
return '<li>' + data + '</li>';
});
coaches = coachesList.join('');
}
return coaches;
}
},
{
data: 'last_inscription_year',
name: 'last_inscription_year'
},
{
data: 'discounts',
render: function(data, type, row, column) {
let discounts = '';
if (row.discounts) {
let discountsRow = row.discounts.split(',');
let discountsItems = [];
discountsRow.forEach(function(item, index) {
discountsItems.push('<li>' + item + '</li>');
});
discounts = discountsItems.join('');
}
return discounts;
},
name: 'academy_discounts.name'
},
{
data: 'tshirt_size',
name: 'tshirt_size'
},
{
data: 'uniform_type',
name: 'uniform_type'
},
{
data: 'periodName',
render: function(data, type, row, column) {
if (row.periodActive === 0) {
return `<div style="color:red;" title="Este período está inactivo">🛑 Inactivo: ${data}</div>`;
}
return data || '';
},
name: 'academy_periods.name'
},
{
data: 'segmentation',
render: function(data, type, row) {
let tags = '';
if (row.segmentation) {
let list = row.segmentation.split(',');
let data = list.map(function(d) {
return '<li>' + d + '</li>';
});
tags = data.join('');
}
return tags;
},
name: 'tags.name'
},
{
data: 'created_at',
name: 'created_at'
},
{
data: 'review_state',
name: 'review_state'
},
{
data: 'payment_status',
name: 'payment_status'
},
{
data: 'last_payment_date',
name: 'last_payment_date'
},
{
data: 'last_status_date',
name: 'last_status_date'
},
{
data: 'terms_conditions',
render: function(data, type, row, column) {
if (!row.terms_conditions) {
return "No";
} else {
return "Sí";
}
},
name: 'terms_conditions'
},
{
data: 'academy_documents1',
render: function(data, type, row, meta) {
var name = row.academy_documents1 ? row.academy_documents1 : '';
var response = name.includes("Certificado de salud APP") ? "Sí" : "No";
return response;
},
name: 'academy_documents1'
},
{
data: 'academy_reports',
name: 'academy_reports'
},
{
data: 'active',
name: 'active'
},
{
data: 'actions',
name: 'actions'
},
];
if (typeAcademy != 'children') {
tableData = tableData.filter(function(obj) {
return obj.data !== 'school_name';
});
}
let fixedColumns = false;
let isMobileDevice = /Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
if (!isMobileDevice) {
fixedColumns = {
left: 3,
right: 2
};
}
$(`#${SELECTOR_PREFIX}`).dataTable().fnDestroy();
_table = $(`#${SELECTOR_PREFIX}`).DataTable({
stateSave: true,
stateSaveCallback: function(settings, data) {
localStore(`DataTables_${SELECTOR_PREFIX}`, data)
},
stateLoadCallback: function(settings) {
return localRetrieve(`DataTables_${SELECTOR_PREFIX}`)
},
responsive: true,
processing: true,
serverSide: true,
order: [
[sort_col, 'desc']
],
language: {
url: window.DATATABLES_LANGUAGE_URL,
},
scrollX: true,
scrollCollapse: true,
paging: true,
fixedColumns: fixedColumns,
ajax: {
url: '/academy_user/list',
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
},
type: "POST",
data: {
states: states,
status: status,
from_date: from_date,
to_date: to_date,
type_academy: typeAcademy,
locations: locations,
categories: categories,
schedules: schedules,
coaches: coaches
}
},
columns: tableData,
"createdRow": function(row, data, dataIndex) {
if (data['payment_status'] && data['payment_status'] == 'EN MORA') {
$(row).addClass('pendingPayment');
}
}
});
var info = '<i class="fa fa-info-circle" id="btn-info-busqueda"></i><div class="dropdown-menu" id="menuBusqueda" style="left: 50%; padding: 5px; background-color: #f9fb8f;"><p data-toggle="modal">Busqueda por Nombre, Orden y Link</p></div>';
$(`#${SELECTOR_PREFIX}_filter`).append(info);
$('#btn-info-busqueda').on('click', function() {
$('#menuBusqueda').toggle();
});
}
function clickExportAll(typeAcademy) {
$('#loading').show();
_table = $(`#${SELECTOR_PREFIX}`).DataTable();
let query = _table.ajax.json().queries[_table.ajax.json().queries.length - 1].query;
let bindings = _table.ajax.json().queries[_table.ajax.json().queries.length - 1].bindings;
query = query.split(' limit ')[0];
var validateDownloadUrl = document.location.origin + "/academy_user/validateExport";
var downloadUrl = document.location.origin + "/academy_user/export/";
var formData = new FormData();
formData.append("query", query);
formData.append("bindings", bindings);
formData.append("type_academy", typeAcademy);
$.ajax({
type: "POST",
dataType: "json",
processData: false,
contentType: false,
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
},
data: formData,
url: validateDownloadUrl,
success: function(response) {
$('#loading').hide();
if (response.success) {
window.location.assign(downloadUrl + response.data);
} else {
swal("Error", response.message, "error");
}
},
error: function(response) {
$('#loading').hide();
swal("Error", response.responseJSON ? response.responseJSON.message :
'Hubo un error en el servidor, espere unos segundos e intente de nuevo', "error");
}
});
}
function validateLocalStoreInformation() {
$("select[name='states']").select2().val(localRetrieve(`${SELECTOR_PREFIX}_filterStates`));
$("select[name='status']").select2().val(localRetrieve(`${SELECTOR_PREFIX}_filterStatus`));
$("input[name='from_date']").val(localRetrieve(`${SELECTOR_PREFIX}_filterFromDate`));
$("input[name='to_date']").val(localRetrieve(`${SELECTOR_PREFIX}_filterToDate`));
$("select[name='locations']").select2().val(localRetrieve(`${SELECTOR_PREFIX}_filterLocations`));
$("select[name='categories']").select2().val(localRetrieve(`${SELECTOR_PREFIX}_filterCategories`));
$("select[name='schedules']").select2().val(localRetrieve(`${SELECTOR_PREFIX}_filterSchedules`));
$("select[name='coaches']").select2().val(localRetrieve(`${SELECTOR_PREFIX}_filterCoaches`));
}
let cleanPagination = function() {
localRemove(`DataTables_${SELECTOR_PREFIX}`);
}
</script>
@endsection