course_list.blade.php 58 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204
  1. <div class="col card--ui" id="card--dashboard" style="padding-top: 0px !important;">
  2. <header id="title--section" style="display:none !important" class="d-flex align-items-center justify-content-between">
  3. <div class="title--section_name d-flex align-items-center justify-content-between">
  4. <i class="ico--ui title_section utenti me-2"></i>
  5. <h2 class="primary">Pagamento corsi</h2>
  6. </div>
  7. </header>
  8. <div class="showFilter" style="display:none" wire:ignore.self>
  9. <hr size="1">
  10. <div class="row g-3">
  11. <div class="col-md-2">
  12. <div class="row">
  13. <div class="col-md-12" style="margin-bottom:10px;">
  14. <b>Anno</b>
  15. </div>
  16. <div class="col-12">
  17. <select class="form-select filterYear" >
  18. <option value="">--Seleziona--
  19. @foreach($course_years as $c)
  20. @php
  21. $selected = '';
  22. try
  23. {
  24. list($f, $t) = explode("-", $c);
  25. if ($f == date("Y"))
  26. $selected = 'selected';
  27. } catch (Exception $e) {
  28. }
  29. @endphp
  30. <option value="{{$c}}" {{$selected}}>{{$c}}
  31. @endforeach
  32. </select>
  33. </div>
  34. </div>
  35. </div>
  36. <div class="col-md-2">
  37. <div class="row">
  38. <div class="col-md-12" style="margin-bottom:10px;">
  39. <b>Corso</b>
  40. </div>
  41. <div class="col-12" >
  42. <select class="form-select filterCourse" multiple="multiple">
  43. @foreach($courses as $c)
  44. <option value="{{$c}}">{{$c}}
  45. @endforeach
  46. </select>
  47. </div>
  48. </div>
  49. </div>
  50. <div class="col-md-2">
  51. <div class="row">
  52. <div class="col-md-12" style="margin-bottom:10px;">
  53. <b>Livello</b>
  54. </div>
  55. <div class="col-12">
  56. <select class="form-select filterLevel" multiple="multiple">
  57. @foreach($course_levels as $c)
  58. <option value="{{$c->id}}">{{$c->name}}
  59. @endforeach
  60. </select>
  61. </div>
  62. </div>
  63. </div>
  64. <div class="col-md-2">
  65. <div class="row">
  66. <div class="col-md-12" style="margin-bottom:10px;">
  67. <b>Frequenza</b>
  68. </div>
  69. <div class="col-12">
  70. <select class="form-select filterFrequency" multiple="multiple">
  71. @foreach($course_frequencies as $c)
  72. <option value="{{$c->id}}">{{$c->name}}
  73. @endforeach
  74. </select>
  75. </div>
  76. </div>
  77. </div>
  78. <div class="col-md-2">
  79. <div class="row">
  80. <div class="col-md-12" style="margin-bottom:10px;">
  81. <b>Tipologia</b>
  82. </div>
  83. <div class="col-12">
  84. <select class="form-select filterType" multiple="multiple">
  85. @foreach($course_types as $c)
  86. <option value="{{$c->id}}">{{$c->name}}
  87. @endforeach
  88. </select>
  89. </div>
  90. </div>
  91. </div>
  92. <div class="col-md-2">
  93. <div class="row">
  94. <div class="col-md-12" style="margin-bottom:10px;">
  95. <b>Durata</b>
  96. </div>
  97. <div class="col-12">
  98. <select class="form-select filterDuration" multiple="multiple">
  99. @foreach($course_durations as $c)
  100. <option value="{{$c->id}}">{{$c->name}}
  101. @endforeach
  102. </select>
  103. </div>
  104. </div>
  105. </div>
  106. </div>
  107. <div class="row g-3" style="margin-top:20px;">
  108. <div class="col-md-12" style="text-align:right">
  109. <button class="btn--ui_outline light" onclick="reset()">RESET</button>
  110. <button class="btn--ui" onclick="loadDataTable()">FILTRA</button>
  111. </div>
  112. </div>
  113. <hr size="1">
  114. </div>
  115. <div class="row text-right">
  116. <div class="col-md-12" style="text-align:right">
  117. <button style="display:none; width:200px;" class="btn--ui btNewPayment" onclick="newPayment()">NUOVA ENTRATA</button>
  118. <button class="btn--ui primary btStopPayment" style="display:none; width:200px; color:white" onclick="suspendPayment()">Sospendi</button>
  119. <button class="btn--ui primary btResumePayment" style="display:none; width:200px; color:white" onclick="resumePayment()">Riattiva</button>
  120. </div>
  121. </div>
  122. <section id="resume-table" class="scrollTable">
  123. <div class="compare--chart_wrapper d-none"></div>
  124. <table class="table tablesaw tableHead tablesaw-stack pagamento--corsi display nowrap" id="tablesaw-350" width="100%">
  125. <thead>
  126. <tr>
  127. <th scope="col" class="sticky-col-header first-zero"></th>
  128. <th scope="col" class="sticky-col-header first-col" style="background-color:#f6f8fa !important">Corso</th>
  129. <th scope="col" class="sticky-col-header second-col">Cognome</th>
  130. <th scope="col" class="sticky-col-header third-col">Nome</th>
  131. <th scope="col">Iscrizione</th>
  132. @foreach($months as $m)
  133. <th scope="col">&nbsp;&nbsp;&nbsp;&nbsp;{{$m}}</th>
  134. @endforeach
  135. </tr>
  136. </thead>
  137. <tbody id="checkall-target">
  138. </tbody>
  139. <tfoot id="checkall-target">
  140. <tr>
  141. <th class="sticky-col-header first-zero"></th>
  142. <th class="sticky-col-header first-col"></th>
  143. <th style="padding-left:5px !important;padding-right:5px !important;"></th>
  144. <th style="padding-left:5px !important;padding-right:5px !important;"></th>
  145. <th style="padding-left:5px !important;padding-right:5px !important;"></th>
  146. <th style="padding-left:5px !important;padding-right:5px !important;"></th>
  147. <th style="padding-left:5px !important;padding-right:5px !important;"></th>
  148. <th style="padding-left:5px !important;padding-right:5px !important;"></th>
  149. <th style="padding-left:5px !important;padding-right:5px !important;"></th>
  150. <th style="padding-left:5px !important;padding-right:5px !important;"></th>
  151. <th style="padding-left:5px !important;padding-right:5px !important;"></th>
  152. <th style="padding-left:5px !important;padding-right:5px !important;"></th>
  153. <th style="padding-left:5px !important;padding-right:5px !important;"></th>
  154. <th style="padding-left:5px !important;padding-right:5px !important;"></th>
  155. <th style="padding-left:5px !important;padding-right:5px !important;"></th>
  156. <th style="padding-left:5px !important;padding-right:5px !important;"></th>
  157. <th style="padding-left:5px !important;padding-right:5px !important;"></th>
  158. </tr>
  159. </tfoot>
  160. </table>
  161. </section>
  162. </div>
  163. @push('scripts')
  164. @endpush
  165. @push('scripts')
  166. <link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
  167. <style>
  168. .scrollTable {
  169. padding: 15px;
  170. /*max-width: 800px !important;*/
  171. /*overflow-x: auto;
  172. overflow-y: auto;
  173. white-space: nowrap;*/
  174. /*border: 1px solid #ddd;*/
  175. }
  176. ::-webkit-scrollbar-thumb {
  177. background: #e4e4e4;
  178. border-radius: 10px;
  179. }
  180. .select2-container--default .select2-selection--single{
  181. background-color: #E9F0F5;
  182. border: 0.0625rem solid #DFE5EB;
  183. font-size: 0.75rem;
  184. }
  185. .select2-selection
  186. {
  187. height: 38px !important;
  188. }
  189. .select2-selection__rendered
  190. {
  191. padding-top:3px;
  192. }
  193. .select2 {
  194. width:100% !important;
  195. }
  196. tfoot #checkall-target > tr > th
  197. {
  198. padding-right:5px !important;
  199. }
  200. /*.container-fluid
  201. {
  202. display: table-row !important;
  203. }
  204. .row.row.header--gestionale
  205. {
  206. padding-left:20px !important;
  207. }*/
  208. </style>
  209. <script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
  210. <script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
  211. @endpush
  212. @push('scripts')
  213. <link href="/css/datatables.css" rel="stylesheet" />
  214. <script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
  215. <link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
  216. <style>
  217. #tablesaw-350_wrapper > div.justify-content-between
  218. {
  219. background-color: white;
  220. position: sticky;
  221. z-index: 100000;
  222. padding-top:10px;
  223. top: -15px;
  224. left: 0px;
  225. }
  226. /*.table-v-scroll > div, #checkall-target
  227. {
  228. overflow-x: auto !important;
  229. overflow-y: hidden !important;
  230. }*/
  231. table.tableHead thead {
  232. /* Important */
  233. position: sticky;
  234. z-index: 100;
  235. top: 35px;
  236. }
  237. table thead {
  238. /* Important */
  239. position: sticky;
  240. z-index: 100;
  241. top: 0;
  242. }
  243. .select2-container--default .select2-selection--single{
  244. background-color: #E9F0F5;
  245. border: 0.0625rem solid #DFE5EB;
  246. font-size: 0.75rem;
  247. }
  248. .select2-selection
  249. {
  250. height: 38px !important;
  251. }
  252. .select2-selection__rendered
  253. {
  254. padding-top:3px;
  255. }
  256. .select2 {
  257. width:100% !important;
  258. }
  259. .select2-selection--multiple{
  260. overflow: hidden !important;
  261. height: auto !important;
  262. }
  263. .select2-container {
  264. box-sizing: border-box;
  265. display: inline-block;
  266. margin: 0;
  267. position: relative;
  268. vertical-align: middle;
  269. }
  270. .select2-container .select2-selection--single {
  271. box-sizing: border-box;
  272. cursor: pointer;
  273. display: block;
  274. height: 38px;
  275. user-select: none;
  276. -webkit-user-select: none;
  277. }
  278. .select2-container .select2-selection--single .select2-selection__rendered {
  279. display: block;
  280. padding-left: 8px;
  281. padding-right: 20px;
  282. overflow: hidden;
  283. text-overflow: ellipsis;
  284. white-space: nowrap;
  285. }
  286. .select2-selection__choice__display{
  287. color:#000000 !important;
  288. }
  289. .sticky-col-header {
  290. position: -webkit-sticky !important;
  291. position: sticky !important;
  292. background-color: '#f6f8fa' !important;
  293. }
  294. .sticky-col {
  295. position: -webkit-sticky !important;
  296. position: sticky !important;
  297. background-color: white;
  298. }
  299. .first-zero {
  300. width: 20px;
  301. min-width: 20px;
  302. max-width: 20px;
  303. left: 0px;
  304. z-index:99;
  305. }
  306. .first-col {
  307. width: 100px;
  308. min-width: 100px;
  309. max-width: 100px;
  310. left: 0px;
  311. z-index:99;
  312. }
  313. .second-col {
  314. width: 150px;
  315. min-width: 150px;
  316. max-width: 150px;
  317. left: 100px;
  318. z-index:99;
  319. }
  320. .third-col {
  321. width: 150px;
  322. min-width: 150px;
  323. max-width: 150px;
  324. left: 250px;
  325. z-index:99;
  326. }
  327. </style>
  328. <script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
  329. <script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
  330. <script src="/assets/js/datatables.js"></script>
  331. <script src="https://cdn.datatables.net/buttons/3.0.2/js/buttons.dataTables.js"></script>
  332. <script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"></script>
  333. <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/pdfmake.min.js"></script>
  334. <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/vfs_fonts.js"></script>
  335. @endpush
  336. @push('scripts')
  337. <script>
  338. var totals = '';
  339. $(document).ready(function() {
  340. loadDataTable();
  341. } );
  342. $('.filterYear').select2({"language": {"noResults": function(){return "Nessun risultato";}}});
  343. $('.filterYear').val('{{date("Y")-1}}-{{date("Y")}}').trigger("change");
  344. $('.filterCourse').select2({"language": {"noResults": function(){return "Nessun risultato";}}});
  345. /*$('.filterCourse').on('change', function (e) {
  346. var data = $('.filterCourse').select2("val");
  347. if (data == null) data = [];
  348. @this.set('filterCourse', data);
  349. //@this.search();
  350. });*/
  351. $('.filterLevel').select2({"language": {"noResults": function(){return "Nessun risultato";}}});
  352. /*$('.filterLevel').on('change', function (e) {
  353. var data = $('.filterLevel').select2("val");
  354. if (data == null) data = [];
  355. //@this.set('filterLevel', data);
  356. //@this.search();
  357. });*/
  358. $('.filterFrequency').select2({"language": {"noResults": function(){return "Nessun risultato";}}});
  359. /*$('.filterFrequency').on('change', function (e) {
  360. var data = $('.filterFrequency').select2("val");
  361. if (data == null) data = [];
  362. @this.set('filterFrequency', data);
  363. //@this.search();
  364. });*/
  365. $('.filterType').select2({"language": {"noResults": function(){return "Nessun risultato";}}});
  366. /*$('.filterType').on('change', function (e) {
  367. var data = $('.filterType').select2("val");
  368. if (data == null) data = [];
  369. @this.set('filterType', data);
  370. //@this.search();
  371. });*/
  372. $('.filterDuration').select2({"language": {"noResults": function(){return "Nessun risultato";}}});
  373. /*$('.filterDuration').on('change', function (e) {
  374. var data = $('.filterDuration').select2("val");
  375. if (data == null) data = [];
  376. // @this.set('filterDuration', data);
  377. //@this.search();
  378. });*/
  379. Livewire.on('load-data-table', () => {
  380. $('.filterYear').select2({"language": {"noResults": function(){return "Nessun risultato";}}});
  381. $('.filterCourse').select2({"language": {"noResults": function(){return "Nessun risultato";}}});
  382. $('.filterLevel').select2({"language": {"noResults": function(){return "Nessun risultato";}}});
  383. $('.filterFrequency').select2({"language": {"noResults": function(){return "Nessun risultato";}}});
  384. $('.filterType').select2({"language": {"noResults": function(){return "Nessun risultato";}}});
  385. $('.filterDuration').select2({"language": {"noResults": function(){return "Nessun risultato";}}});
  386. loadDataTable();
  387. });
  388. Livewire.on('destroy-data-table', () => {
  389. $('#tablesaw-350').DataTable().destroy();
  390. });
  391. function destroyDataTable()
  392. {
  393. $('#tablesaw-350').DataTable().destroy();
  394. }
  395. var isFilter = false;
  396. $(document).ready(function() {
  397. $(document).on("click",".showHideFilter",function() {
  398. if (isFilter)
  399. {
  400. isFilter = false;
  401. $(".showFilter").hide();
  402. }
  403. else
  404. {
  405. isFilter = true;
  406. $(".showFilter").show();
  407. }
  408. });
  409. } );
  410. function searchAction()
  411. {
  412. //destroyDataTable();
  413. //@this.search();
  414. }
  415. @if(isset($_GET["showFilters"]))
  416. var filterYear = localStorage.getItem("filterYearCourseList");
  417. if (filterYear)
  418. {
  419. $('.filterYear').val(filterYear).trigger('change');
  420. }
  421. var filterCourse = localStorage.getItem("filterCourseCourseList");
  422. if (filterCourse)
  423. {
  424. $('.filterCourse').val(filterCourse).trigger('change');
  425. }
  426. var filterLevel = localStorage.getItem("filterLevelCourseList");
  427. if (filterLevel)
  428. {
  429. $('.filterLevel').val(filterLevel).trigger('change');
  430. }
  431. var filterFrequency = localStorage.getItem("filterFrequencyCourseList");
  432. if (filterFrequency)
  433. {
  434. $('.filterFrequency').val(filterFrequency).trigger('change');
  435. }
  436. var filterDuration = localStorage.getItem("filterDurationCourseList");
  437. if (filterDuration)
  438. {
  439. $('.filterDuration').val(filterDuration).trigger('change');
  440. }
  441. var filterType = localStorage.getItem("filterTypeCourseList");
  442. if (filterType)
  443. {
  444. $('.filterType').val(filterType).trigger('change');
  445. }
  446. @endif
  447. function reset()
  448. {
  449. $('.filterYear').val(null).trigger("change");
  450. $('.filterCourse').val(null).trigger("change");
  451. $('.filterLevel').val(null).trigger("change");
  452. $('.filterFrequency').val(null).trigger("change");
  453. $('.filterDuration').val(null).trigger("change");
  454. $('.filterType').val(null).trigger("change");
  455. destroyDataTable();
  456. //localStorage.clear();
  457. loadDataTable();
  458. }
  459. function loadDataTable(){
  460. if ( $.fn.DataTable.isDataTable('#tablesaw-350') ) {
  461. $('#tablesaw-350').DataTable().destroy();
  462. }
  463. var filterYear = $('.filterYear').val();
  464. localStorage.setItem("filterYearCourseList", filterYear);
  465. var filterCourse = $('.filterCourse').val();
  466. localStorage.setItem("filterCourseCourseList", filterCourse);
  467. var filterLevel = $('.filterLevel').val();
  468. localStorage.setItem("filterLevelCourseList", filterLevel);
  469. var filterDuration = $('.filterDuration').val();
  470. localStorage.setItem("filterDurationCourseList", filterDuration);
  471. var filterFrequency = $('.filterFrequency').val();
  472. localStorage.setItem("filterFrequencyCourseList", filterFrequency);
  473. var filterType = $('.filterType').val();
  474. localStorage.setItem("filterTypeCourseList", filterType);
  475. var output_table = $('#tablesaw-350').DataTable({
  476. //scrollX: true,
  477. //scrollY: true,
  478. //scrollCollapse: true,
  479. scrollY: '400px',
  480. serverSide: true,
  481. ajax: {
  482. url : '/get_course_list?filterCourse=' + filterCourse + '&filterDuration=' + filterDuration + '&filterLevel=' + filterLevel + '&filterType=' + filterType + '&filterFrequency=' + filterFrequency + '&filterYear=' + filterYear,
  483. dataSrc: function (json){
  484. if(json.totals){
  485. totals = json.totals;
  486. }
  487. return json.data;
  488. }
  489. },
  490. thead: {
  491. 'th': {'background-color': 'blue'}
  492. },
  493. columns: [
  494. {
  495. data: 'column_18',
  496. "orderable": false,
  497. className: 'red',
  498. render: function (data, type, row, meta){
  499. return data;
  500. }
  501. },
  502. {
  503. data: 'column_19',
  504. className: 'red',
  505. className: 'sticky-col first-col'
  506. },
  507. {
  508. data: 'column_0',
  509. className: 'red',
  510. className: 'sticky-col second-col',
  511. render: function (data, type, row){
  512. var ret = '<a href="/members?member_detail=' + row["column_17"] + '&from=course_list">' + data + '</a>';
  513. return ret;
  514. }
  515. },
  516. {
  517. data: 'column_1',
  518. className: 'sticky-col third-col',
  519. render: function (data, type, row){
  520. const x = data.split("§");
  521. var ret = '<a href="/members?member_detail=' + row["column_17"] + '&from=course_list">' + data + '</a>';
  522. return ret;
  523. }
  524. },
  525. {
  526. data: 'column_2',
  527. orderSequence: ['asc', 'desc'],
  528. className: 'ciccio',
  529. render: function (data, type, row){
  530. const x = data.split("§");
  531. var ret = '';
  532. if (x[0] == 0)
  533. {
  534. var ret = '<a style="width:100%;float:right; text-align:right; display:block; ' + (x[0] == 1 ? '' : 'cursor:pointer;') + '" class="' + (x[0] == 1 ? 'green' : 'orange') + ' sub_' + row["column_16"] + '" onclick="setSubscription(' + row["column_15"] + ', ' + row["column_17"] + ', ' + row["column_16"] + ')" style="cursor: pointer;"><small>' + x[1] + '</small></a>';
  535. }
  536. else if (x[0] == 'yellow')
  537. {
  538. ret = '<a style="width:100%;float:right; text-align:right; display:block; cursor:pointer;" class="' + x[0] + ' lnk_' + row["column_16"] + '" id="lnk_' + row["column_15"] + row["column_17"] + '" onclick="resumePayMonth(' + row["column_15"] + ', ' + row["column_17"] + ', ' + row["column_16"] + ')" style="cursor: pointer;"><small>' + x[1] + '</small></a>';
  539. }
  540. else
  541. {
  542. ret = '<a style="width:100%;float:right; text-align:right; display:block;" class="' + (x[0] == 1 ? 'green' : 'orange') + '"><small>' + x[1] + '</small></a>';
  543. }
  544. return ret;
  545. }
  546. },
  547. {
  548. data: 'column_3',
  549. orderSequence: ['asc', 'desc'],
  550. render: function (data, type, row, meta){
  551. const x = data.split("§");
  552. var ret = '';
  553. if (x[0] == 'orange')
  554. {
  555. ret = '<a style="width:100%;float:right; text-align:right; display:block; cursor:pointer;" class="' + x[0] + ' lnk_' + row["column_16"] + '" id="lnk_' + row["column_15"] + '_1_' + row["column_17"] + '" onclick="setPayMonth(' + row["column_15"] + ', 1, ' + row["column_17"] + ', ' + row["column_16"] + ')" style="cursor: pointer;"><small>' + x[1] + '</small></a>';
  556. }
  557. else if (x[0] == 'yellow')
  558. {
  559. ret = '<a style="width:100%;float:right; text-align:right; display:block; cursor:pointer;" class="' + x[0] + ' lnk_' + row["column_16"] + '" id="lnk_' + row["column_15"] + '_1_' + row["column_17"] + '" onclick="resumePayMonth(' + row["column_15"] + ', 1, ' + row["column_17"] + ', ' + row["column_16"] + ')" style="cursor: pointer;"><small>' + x[1] + '</small></a>';
  560. }
  561. else
  562. {
  563. if (x[0] != 'wgrey')
  564. ret = '<a style="width:100%;float:right; text-align:right; display:block;" class="' + x[0] + '"><small>' + x[1] + '</small></a>';
  565. }
  566. return ret;
  567. }
  568. },
  569. {
  570. data: 'column_4',
  571. orderSequence: ['asc', 'desc'],
  572. render: function (data, type, row, meta){
  573. const x = data.split("§");
  574. var ret = '';
  575. if (x[0] == 'orange')
  576. {
  577. ret = '<a style="width:100%;float:right; text-align:right; display:block; cursor:pointer;" class="' + x[0] + ' lnk_' + row["column_16"] + '" id="lnk_' + row["column_15"] + '_2_' + row["column_17"] + '" onclick="setPayMonth(' + row["column_15"] + ', 2, ' + row["column_17"] + ', ' + row["column_16"] + ')" style="cursor: pointer;"><small>' + x[1] + '</small></a>';
  578. }
  579. else if (x[0] == 'yellow')
  580. {
  581. ret = '<a style="width:100%;float:right; text-align:right; display:block; cursor:pointer;" class="' + x[0] + ' lnk_' + row["column_16"] + '" id="lnk_' + row["column_15"] + '_2_' + row["column_17"] + '" onclick="resumePayMonth(' + row["column_15"] + ',2, ' + row["column_17"] + ', ' + row["column_16"] + ')" style="cursor: pointer;"><small>' + x[1] + '</small></a>';
  582. }
  583. else
  584. {
  585. if (x[0] != 'wgrey')
  586. ret = '<a style="width:100%;float:right; text-align:right; display:block;" class="' + x[0] + '"><small>' + x[1] + '</small></a>';
  587. }
  588. return ret;
  589. }
  590. },
  591. {
  592. data: 'column_5',
  593. orderSequence: ['asc', 'desc'],
  594. render: function (data, type, row, meta){
  595. const x = data.split("§");
  596. var ret = '';
  597. if (x[0] == 'orange')
  598. {
  599. ret = '<a style="width:100%;float:right; text-align:right; display:block; cursor:pointer;" class="' + x[0] + ' lnk_' + row["column_16"] + '" id="lnk_' + row["column_15"] + '_3_' + row["column_17"] + '" onclick="setPayMonth(' + row["column_15"] + ', 3, ' + row["column_17"] + ', ' + row["column_16"] + ')" style="cursor: pointer;"><small>' + x[1] + '</small></a>';
  600. }
  601. else if (x[0] == 'yellow')
  602. {
  603. ret = '<a style="width:100%;float:right; text-align:right; display:block; cursor:pointer;" class="' + x[0] + ' lnk_' + row["column_16"] + '" id="lnk_' + row["column_15"] + '_3_' + row["column_17"] + '" onclick="resumePayMonth(' + row["column_15"] + ', 3, ' + row["column_17"] + ', ' + row["column_16"] + ')" style="cursor: pointer;"><small>' + x[1] + '</small></a>';
  604. }
  605. else
  606. {
  607. if (x[0] != 'wgrey')
  608. ret = '<a style="width:100%;float:right; text-align:right; display:block;" class="' + x[0] + '"><small>' + x[1] + '</small></a>';
  609. }
  610. return ret;
  611. }
  612. },
  613. {
  614. data: 'column_6',
  615. orderSequence: ['asc', 'desc'],
  616. render: function (data, type, row, meta){
  617. const x = data.split("§");
  618. var ret = '';
  619. if (x[0] == 'orange')
  620. {
  621. ret = '<a style="width:100%;float:right; text-align:right; display:block; cursor:pointer;" class="' + x[0] + ' lnk_' + row["column_16"] + '" id="lnk_' + row["column_15"] + '_4_' + row["column_17"] + '" onclick="setPayMonth(' + row["column_15"] + ', 4, ' + row["column_17"] + ', ' + row["column_16"] + ')" style="cursor: pointer;"><small>' + x[1] + '</small></a>';
  622. }
  623. else if (x[0] == 'yellow')
  624. {
  625. ret = '<a style="width:100%;float:right; text-align:right; display:block; cursor:pointer;" class="' + x[0] + ' lnk_' + row["column_16"] + '" id="lnk_' + row["column_15"] + '_4_' + row["column_17"] + '" onclick="resumePayMonth(' + row["column_15"] + ', 4, ' + row["column_17"] + ', ' + row["column_16"] + ')" style="cursor: pointer;"><small>' + x[1] + '</small></a>';
  626. }
  627. else
  628. {
  629. if (x[0] != 'wgrey')
  630. ret = '<a style="width:100%;float:right; text-align:right; display:block;" class="' + x[0] + '"><small>' + x[1] + '</small></a>';
  631. }
  632. return ret;
  633. }
  634. },
  635. {
  636. data: 'column_7',
  637. orderSequence: ['asc', 'desc'],
  638. render: function (data, type, row, meta){
  639. const x = data.split("§");
  640. var ret = '';
  641. if (x[0] == 'orange')
  642. {
  643. ret = '<a style="width:100%;float:right; text-align:right; display:block; cursor:pointer;" class="' + x[0] + ' lnk_' + row["column_16"] + '" id="lnk_' + row["column_15"] + '_5_' + row["column_17"] + '" onclick="setPayMonth(' + row["column_15"] + ', 5, ' + row["column_17"] + ', ' + row["column_16"] + ')" style="cursor: pointer;"><small>' + x[1] + '</small></a>';
  644. }
  645. else if (x[0] == 'yellow')
  646. {
  647. ret = '<a style="width:100%;float:right; text-align:right; display:block; cursor:pointer;" class="' + x[0] + ' lnk_' + row["column_16"] + '" id="lnk_' + row["column_15"] + '_5_' + row["column_17"] + '" onclick="resumePayMonth(' + row["column_15"] + ', 5, ' + row["column_17"] + ', ' + row["column_16"] + ')" style="cursor: pointer;"><small>' + x[1] + '</small></a>';
  648. }
  649. else
  650. {
  651. if (x[0] != 'wgrey')
  652. ret = '<a style="width:100%;float:right; text-align:right; display:block;" class="' + x[0] + '"><small>' + x[1] + '</small></a>';
  653. }
  654. return ret;
  655. }
  656. },
  657. {
  658. data: 'column_8',
  659. orderSequence: ['asc', 'desc'],
  660. render: function (data, type, row, meta){
  661. const x = data.split("§");
  662. var ret = '';
  663. if (x[0] == 'orange')
  664. {
  665. ret = '<a style="width:100%;float:right; text-align:right; display:block; cursor:pointer;" class="' + x[0] + ' lnk_' + row["column_16"] + '" id="lnk_' + row["column_15"] + '_6_' + row["column_17"] + '" onclick="setPayMonth(' + row["column_15"] + ', 6, ' + row["column_17"] + ', ' + row["column_16"] + ')" style="cursor: pointer;"><small>' + x[1] + '</small></a>';
  666. }
  667. else if (x[0] == 'yellow')
  668. {
  669. ret = '<a style="width:100%;float:right; text-align:right; display:block; cursor:pointer;" class="' + x[0] + ' lnk_' + row["column_16"] + '" id="lnk_' + row["column_15"] + '_6_' + row["column_17"] + '" onclick="resumePayMonth(' + row["column_15"] + ', 6, ' + row["column_17"] + ', ' + row["column_16"] + ')" style="cursor: pointer;"><small>' + x[1] + '</small></a>';
  670. }
  671. else
  672. {
  673. if (x[0] != 'wgrey')
  674. ret = '<a style="width:100%;float:right; text-align:right; display:block;" class="' + x[0] + '"><small>' + x[1] + '</small></a>';
  675. }
  676. return ret;
  677. }
  678. },
  679. {
  680. data: 'column_9',
  681. orderSequence: ['asc', 'desc'],
  682. render: function (data, type, row, meta){
  683. const x = data.split("§");
  684. var ret = '';
  685. if (x[0] == 'orange')
  686. {
  687. ret = '<a style="width:100%;float:right; text-align:right; display:block; cursor:pointer;" class="' + x[0] + ' lnk_' + row["column_16"] + '" id="lnk_' + row["column_15"] + '_7_' + row["column_17"] + '" onclick="setPayMonth(' + row["column_15"] + ', 7, ' + row["column_17"] + ', ' + row["column_16"] + ')" style="cursor: pointer;"><small>' + x[1] + '</small></a>';
  688. }
  689. else if (x[0] == 'yellow')
  690. {
  691. ret = '<a style="width:100%;float:right; text-align:right; display:block; cursor:pointer;" class="' + x[0] + ' lnk_' + row["column_16"] + '" id="lnk_' + row["column_15"] + '_7_' + row["column_17"] + '" onclick="resumePayMonth(' + row["column_15"] + ', 7, ' + row["column_17"] + ', ' + row["column_16"] + ')" style="cursor: pointer;"><small>' + x[1] + '</small></a>';
  692. }
  693. else
  694. {
  695. if (x[0] != 'wgrey')
  696. ret = '<a style="width:100%;float:right; text-align:right; display:block;" class="' + x[0] + '"><small>' + x[1] + '</small></a>';
  697. }
  698. return ret;
  699. }
  700. },
  701. {
  702. data: 'column_10',
  703. orderSequence: ['asc', 'desc'],
  704. render: function (data, type, row, meta){
  705. const x = data.split("§");
  706. var ret = '';
  707. if (x[0] == 'orange')
  708. {
  709. ret = '<a style="width:100%;float:right; text-align:right; display:block; cursor:pointer;" class="' + x[0] + ' lnk_' + row["column_16"] + '" id="lnk_' + row["column_15"] + '_8_' + row["column_17"] + '" onclick="setPayMonth(' + row["column_15"] + ', 8, ' + row["column_17"] + ', ' + row["column_16"] + ')" style="cursor: pointer;"><small>' + x[1] + '</small></a>';
  710. }
  711. else if (x[0] == 'yellow')
  712. {
  713. ret = '<a style="width:100%;float:right; text-align:right; display:block; cursor:pointer;" class="' + x[0] + ' lnk_' + row["column_16"] + '" id="lnk_' + row["column_15"] + '_8_' + row["column_17"] + '" onclick="resumePayMonth(' + row["column_15"] + ', 8, ' + row["column_17"] + ', ' + row["column_16"] + ')" style="cursor: pointer;"><small>' + x[1] + '</small></a>';
  714. }
  715. else
  716. {
  717. if (x[0] != 'wgrey')
  718. ret = '<a style="width:100%;float:right; text-align:right; display:block;" class="' + x[0] + '"><small>' + x[1] + '</small></a>';
  719. }
  720. return ret;
  721. }
  722. },
  723. {
  724. data: 'column_11',
  725. orderSequence: ['asc', 'desc'],
  726. render: function (data, type, row, meta){
  727. const x = data.split("§");
  728. var ret = '';
  729. if (x[0] == 'orange')
  730. {
  731. ret = '<a style="width:100%;float:right; text-align:right; display:block; cursor:pointer;" class="' + x[0] + ' lnk_' + row["column_16"] + '" id="lnk_' + row["column_15"] + '_9_' + row["column_17"] + '" onclick="setPayMonth(' + row["column_15"] + ', 9, ' + row["column_17"] + ', ' + row["column_16"] + ')" style="cursor: pointer;"><small>' + x[1] + '</small></a>';
  732. }
  733. else if (x[0] == 'yellow')
  734. {
  735. ret = '<a style="width:100%;float:right; text-align:right; display:block; cursor:pointer;" class="' + x[0] + ' lnk_' + row["column_16"] + '" id="lnk_' + row["column_15"] + '_9_' + row["column_17"] + '" onclick="resumePayMonth(' + row["column_15"] + ', 9, ' + row["column_17"] + ', ' + row["column_16"] + ')" style="cursor: pointer;"><small>' + x[1] + '</small></a>';
  736. }
  737. else
  738. {
  739. if (x[0] != 'wgrey')
  740. ret = '<a style="width:100%;float:right; text-align:right; display:block;" class="' + x[0] + '"><small>' + x[1] + '</small></a>';
  741. }
  742. return ret;
  743. }
  744. },
  745. {
  746. data: 'column_12',
  747. orderSequence: ['asc', 'desc'],
  748. render: function (data, type, row, meta){
  749. const x = data.split("§");
  750. var ret = '';
  751. if (x[0] == 'orange')
  752. {
  753. ret = '<a style="width:100%;float:right; text-align:right; display:block; cursor:pointer;" class="' + x[0] + ' lnk_' + row["column_16"] + '" id="lnk_' + row["column_15"] + '_10_' + row["column_17"] + '" onclick="setPayMonth(' + row["column_15"] + ', 10, ' + row["column_17"] + ', ' + row["column_16"] + ')" style="cursor: pointer;"><small>' + x[1] + '</small></a>';
  754. }
  755. else if (x[0] == 'yellow')
  756. {
  757. ret = '<a style="width:100%;float:right; text-align:right; display:block; cursor:pointer;" class="' + x[0] + ' lnk_' + row["column_16"] + '" id="lnk_' + row["column_15"] + '_10_' + row["column_17"] + '" onclick="resumePayMonth(' + row["column_15"] + ', 10, ' + row["column_17"] + ', ' + row["column_16"] + ')" style="cursor: pointer;"><small>' + x[1] + '</small></a>';
  758. }
  759. else
  760. {
  761. if (x[0] != 'wgrey')
  762. ret = '<a style="width:100%;float:right; text-align:right; display:block;" class="' + x[0] + '"><small>' + x[1] + '</small></a>';
  763. }
  764. return ret;
  765. }
  766. },
  767. {
  768. data: 'column_13',
  769. orderSequence: ['asc', 'desc'],
  770. render: function (data, type, row, meta){
  771. const x = data.split("§");
  772. var ret = '';
  773. if (x[0] == 'orange')
  774. {
  775. ret = '<a style="width:100%;float:right; text-align:right; display:block; cursor:pointer;" class="' + x[0] + ' lnk_' + row["column_16"] + '" id="lnk_' + row["column_15"] + '_11_' + row["column_17"] + '" onclick="setPayMonth(' + row["column_15"] + ', 11, ' + row["column_17"] + ', ' + row["column_16"] + ')" style="cursor: pointer;"><small>' + x[1] + '</small></a>';
  776. }
  777. else if (x[0] == 'yellow')
  778. {
  779. ret = '<a style="width:100%;float:right; text-align:right; display:block; cursor:pointer;" class="' + x[0] + ' lnk_' + row["column_16"] + '" id="lnk_' + row["column_15"] + '_11_' + row["column_17"] + '" onclick="resumePayMonth(' + row["column_15"] + ', 11, ' + row["column_17"] + ', ' + row["column_16"] + ')" style="cursor: pointer;"><small>' + x[1] + '</small></a>';
  780. }
  781. else
  782. {
  783. if (x[0] != 'wgrey')
  784. ret = '<a style="width:100%;float:right; text-align:right; display:block;" class="' + x[0] + '"><small>' + x[1] + '</small></a>';
  785. }
  786. return ret;
  787. }
  788. },
  789. {
  790. data: 'column_14',
  791. orderSequence: ['asc', 'desc'],
  792. render: function (data, type, row, meta){
  793. const x = data.split("§");
  794. var ret = '';
  795. if (x[0] == 'orange')
  796. {
  797. ret = '<a style="width:100%;float:right; text-align:right; display:block; cursor:pointer;" class="' + x[0] + ' lnk_' + row["column_16"] + '" id="lnk_' + row["column_15"] + '_12_' + row["column_17"] + '" onclick="setPayMonth(' + row["column_15"] + ', 12, ' + row["column_17"] + ', ' + row["column_16"] + ')" style="cursor: pointer;"><small>' + x[1] + '</small></a>';
  798. }
  799. else if (x[0] == 'yellow')
  800. {
  801. ret = '<a style="width:100%;float:right; text-align:right; display:block; cursor:pointer;" class="' + x[0] + ' lnk_' + row["column_16"] + '" id="lnk_' + row["column_15"] + '_9_' + row["column_17"] + '" onclick="resumePayMonth(' + row["column_15"] + ', 12, ' + row["column_17"] + ', ' + row["column_16"] + ')" style="cursor: pointer;"><small>' + x[1] + '</small></a>';
  802. }
  803. else
  804. {
  805. if (x[0] != 'wgrey')
  806. ret = '<a style="width:100%;float:right; text-align:right; display:block;" class="' + x[0] + '"><small>' + x[1] + '</small></a>';
  807. }
  808. return ret;
  809. }
  810. }
  811. ],
  812. layout: {
  813. topStart : null,
  814. topEnd : null,
  815. top1A: {
  816. buttons: [
  817. {
  818. extend: 'collection',
  819. text: 'Esporta',
  820. buttons: [
  821. {
  822. extend: 'excelHtml5',"action":newexportaction,
  823. title: 'Pagamento corsi',
  824. orientation: 'landscape',
  825. exportOptions: {
  826. columns: ":not(':last')"
  827. },
  828. footer:false,
  829. customize: function(xlsx) {
  830. var sheet = xlsx.xl.worksheets['sheet1.xml'];
  831. const letters = ["E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q"];
  832. for(y=0; y<letters.length; y++)
  833. {
  834. z = y + 4;
  835. var c = output_table.column(z).data().toArray();
  836. //console.log(c);
  837. for (var i = 0; i < c.length; i++)
  838. {
  839. var j = c[i].split("§");
  840. if (j[0] == '0' || j[0] == 'orange')
  841. {
  842. $('row:nth-child('+(i+3)+') [r^="' + letters[y] + '"]', sheet).attr('s', '10');
  843. //sheet.table.body[i+1][z].fillColor = 'orange';
  844. }
  845. if (j[0] == '1' || j[0] == 'green')
  846. {
  847. $('row:nth-child('+(i+3)+') [r^="' + letters[y] + '"]', sheet).attr('s', '40');
  848. //doc.content[1].table.body[i+1][z].fillColor = 'green';
  849. }
  850. if (j[0] == 'yellow')
  851. {
  852. $('row:nth-child('+(i+3)+') [r^="' + letters[y] + '"]', sheet).attr('s', '20');
  853. //doc.content[1].table.body[i+1][z].fillColor = 'blue';
  854. }
  855. }
  856. }
  857. },
  858. },
  859. {
  860. extend: 'pdfHtml5',"action":newexportaction,
  861. title: 'Pagamento corsi',
  862. orientation: 'landscape',
  863. exportOptions: {
  864. columns: ":not(':last')"
  865. },
  866. footer:false,
  867. customize: function(doc) {
  868. for(z=4; z<=16; z++)
  869. {
  870. var c = output_table.column(z).data().toArray();
  871. for (var i = 0; i < c.length; i++)
  872. {
  873. var j = c[i].split("§");
  874. if (j[0] == '0' || j[0] == 'orange')
  875. {
  876. doc.content[1].table.body[i+1][z].fillColor = 'orange';
  877. }
  878. if (j[0] == '1' || j[0] == 'green')
  879. {
  880. doc.content[1].table.body[i+1][z].fillColor = 'green';
  881. }
  882. if (j[0] == 'yellow')
  883. {
  884. doc.content[1].table.body[i+1][z].fillColor = 'blue';
  885. }
  886. }
  887. }
  888. }
  889. }/*,
  890. {
  891. extend: 'print',"action":newexportaction,
  892. text: 'Stampa',
  893. title: 'Pagamento corsi',
  894. exportOptions: {
  895. columns: ":not(':last')"
  896. },
  897. footer:false
  898. }*/
  899. ],
  900. dropup: true
  901. }
  902. ]
  903. },
  904. top1B : {
  905. pageLength: {
  906. menu: [[10, 25, 50, 100, 100000], [10, 25, 50, 100, "Tutti"]]
  907. }
  908. },
  909. top1C :'search',
  910. },
  911. order: [[2, 'asc'], [3, 'asc']],
  912. pagingType: 'numbers',
  913. "language": {
  914. "url": "/assets/js/Italian.json"
  915. },
  916. "fnInitComplete": function (oSettings, json) {
  917. var html = '&nbsp;<a href="#" class="showHideFilter btn--ui"><i class="fa-solid fa-sliders"></i></a>';
  918. $(".dt-search").append(html);
  919. },
  920. "footerCallback": function (row, data, start, end, display) {
  921. let api = this.api();
  922. api.column(0).footer().innerHTML = '';
  923. api.column(1).footer().innerHTML = '';
  924. api.column(2).footer().innerHTML = '';
  925. api.column(3).footer().innerHTML = '';
  926. for(var i=4; i<=15; i++)
  927. {
  928. api.column(i).footer().innerHTML = '';
  929. }
  930. if (totals != '')
  931. {
  932. totals.split("_").forEach(function (item)
  933. {
  934. var x = item.split("§");
  935. if (x[1] != undefined)
  936. api.column(x[0]).footer().innerHTML = x[1];
  937. else
  938. api.column(x[0]).footer().innerHTML = '';
  939. });
  940. }
  941. }/*,
  942. fixedColumns: {
  943. start: 1,
  944. end: 1
  945. },
  946. scrollX: true*/
  947. });
  948. $('#tablesaw-350 thead tr th').addClass('col');
  949. $('#tablesaw-350 thead tr th').css("background-color", "#f6f8fa");
  950. $('#tablesaw-350').on('draw.dt', function() {
  951. $('[data-bs-toggle="popover"]').popover()
  952. });
  953. jQuery.fn.dataTable.Api.register( 'sum()', function ( ) {
  954. return this.flatten().reduce( function ( a, b ) {
  955. if ( typeof a === 'string') {
  956. start = a.indexOf("€");
  957. a = a.substr(start + 2).replace("</small></a>", "").replace(",",".") * 1;
  958. }
  959. if ( typeof b === 'string' && b.indexOf('green') > 0) {
  960. start = b.indexOf("€");
  961. b = b.substr(start + 2).replace("</small></a>", "").replace(",",".") * 1;
  962. }
  963. else
  964. {
  965. b = 0;
  966. }
  967. return a + b;
  968. }, 0 );
  969. } );
  970. }
  971. Livewire.on('setTotals', (tot) =>
  972. {
  973. totals = tot;
  974. console.log(totals);
  975. });
  976. var subscription = false;
  977. var months = [];
  978. var selectedCourseId = 0;
  979. var selectedMemberId = 0;
  980. var selectedMemberCourseId = 0;
  981. var selectedMonth = 0;
  982. function setPayMonth(course_id, month, member_id, id)
  983. {
  984. if (selectedMemberId > 0 && selectedMemberId != member_id)
  985. {
  986. months = [];
  987. subscription = false;
  988. }
  989. if (selectedMemberCourseId != id)
  990. {
  991. $(".sub_" + selectedMemberCourseId).addClass("orange").removeClass("blue").removeClass("selected");
  992. $(".lnk_" + selectedMemberCourseId).addClass("orange").removeClass("blue").removeClass("selected");
  993. }
  994. selectedCourseId = course_id;
  995. selectedMemberId = member_id;
  996. selectedMemberCourseId = id;
  997. selectedMonth = month;
  998. if(!months.includes(month))
  999. {
  1000. months.push(month);
  1001. $("#lnk_" + course_id + "_" + month + "_" + member_id).addClass("blue").addClass("selected").removeClass("orange");
  1002. }
  1003. else
  1004. {
  1005. months.splice(months.indexOf(months), 1);
  1006. $("#lnk_" + course_id + "_" + month + "_" + member_id).addClass("orange").removeClass("blue").removeClass("selected");
  1007. }
  1008. if (months.length > 0)
  1009. {
  1010. $(".btNewPayment").show();
  1011. $(".btStopPayment").show();
  1012. }
  1013. else
  1014. {
  1015. $(".btNewPayment").hide();
  1016. $(".btStopPayment").hide();
  1017. }
  1018. }
  1019. function resumePayMonth(course_id, month, member_id, id)
  1020. {
  1021. if (selectedMemberId > 0 && selectedMemberId != member_id)
  1022. {
  1023. months = [];
  1024. subscription = false;
  1025. }
  1026. if (selectedMemberCourseId != id)
  1027. {
  1028. $(".sub_" + selectedMemberCourseId).removeClass("orange").addClass("blue").addClass("selected");
  1029. $(".lnk_" + selectedMemberCourseId).removeClass("orange").addClass("blue").addClass("selected");
  1030. }
  1031. selectedCourseId = course_id;
  1032. selectedMemberId = member_id;
  1033. selectedMemberCourseId = id;
  1034. selectedMonth = month;
  1035. console.log(month);
  1036. if(!months.includes(month))
  1037. {
  1038. months.push(month);
  1039. $("#lnk_" + course_id + "_" + month + "_" + member_id).removeClass("blue").removeClass("selected").addClass("orange").addClass("selected");
  1040. }
  1041. else
  1042. {
  1043. months.splice(months.indexOf(months), 1);
  1044. $("#lnk_" + course_id + "_" + month + "_" + member_id).removeClass("orange").addClass("blue").addClass("selected");
  1045. }
  1046. if (months.length > 0)
  1047. {
  1048. $(".btResumePayment").show();
  1049. }
  1050. else
  1051. {
  1052. $(".btResumePayment").hide();
  1053. }
  1054. }
  1055. function setSubscription(course_id, member_id, id)
  1056. {
  1057. if (selectedMemberCourseId != id)
  1058. {
  1059. $(".sub_" + selectedMemberCourseId).addClass("orange").removeClass("blue").removeClass("selected");
  1060. $(".lnk_" + selectedMemberCourseId).addClass("orange").removeClass("blue").removeClass("selected");
  1061. months = [];
  1062. subscription = false;
  1063. }
  1064. selectedCourseId = course_id;
  1065. selectedMemberId = member_id;
  1066. selectedMemberCourseId = id;
  1067. if (subscription)
  1068. {
  1069. $(".sub_" + selectedMemberCourseId).addClass("orange").removeClass("blue").removeClass("selected");
  1070. subscription = false;
  1071. $(".btNewPayment").hide();
  1072. }
  1073. else
  1074. {
  1075. $(".sub_" + selectedMemberCourseId).addClass("blue").addClass("selected").removeClass("orange");
  1076. subscription = true;
  1077. $(".btNewPayment").show();
  1078. }
  1079. }
  1080. function newPayment()
  1081. {
  1082. @this.newPayment(selectedCourseId, months.toString(), selectedMemberId, selectedMemberCourseId, subscription);
  1083. }
  1084. function suspendPayment()
  1085. {
  1086. @this.suspendPayment(selectedCourseId, selectedMonth, selectedMemberId, selectedMemberCourseId, subscription);
  1087. }
  1088. function resumePayment()
  1089. {
  1090. @this.resumePayment(selectedCourseId, selectedMonth, selectedMemberId, selectedMemberCourseId, subscription);
  1091. }
  1092. $( document ).ready( function(){
  1093. setMaxWidth();
  1094. setMaxHeight();
  1095. $( window ).bind( "resize", setMaxWidth );
  1096. $( window ).bind( "resize", setMaxHeight );
  1097. function setMaxWidth() {
  1098. $("#resume-table").width( Math.round( $(window ).width() - size ) ) ;
  1099. $(".justify-content-between").css({"width": Math.round( $(window ).width() - size) + "px;"}); //.width( Math.round( $(window ).width() - size ) ) ;
  1100. }
  1101. function setMaxHeight() {
  1102. console.log('height:' + $(window ).height() + 'px !important');
  1103. $("div.row.h-100").attr('style', 'height:' + ($(window ).height() + 50) + 'px !important');
  1104. $("#resume-table").height( Math.round( $(window ).height() - 150 ) ) ;
  1105. }
  1106. });
  1107. </script>
  1108. @endpush