receipt.blade.php 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. <div class="col">
  2. <div class="row h-100">
  3. <div class="col card--ui" id="card--dashboard">
  4. <header id="title--section" style="display:none !important" class="d-flex align-items-center justify-content-between">
  5. <div class="title--section_name d-flex align-items-center justify-content-between">
  6. <i class="ico--ui title_section utenti me-2"></i>
  7. <h2 class="primary">Ricevute</h2>
  8. </div>
  9. <!--
  10. <div class="title--section_addButton" wire:click="add()" style="cursor: pointer;">
  11. <div class="card--ui card--ui_btnAddHeaderUser entrata d-flex justify-items-between">
  12. <a href="#" wire:click="add()" style="color:white">Aggiungi</a>
  13. </div>
  14. </div>
  15. -->
  16. </header>
  17. <div class="showFilter" style="display:none" wire:ignore.self>
  18. <hr size="1">
  19. <div class="row g-3">
  20. <div class="col-md-2">
  21. <div class="row">
  22. <div class="col-md-12" style="margin-bottom:10px;">
  23. <b>Periodo</b>
  24. </div>
  25. <div class="col-12">
  26. <input id="dateFrom" type="date" class="form-control filterFrom" >
  27. </div>
  28. <div class="col-12">
  29. <input id="dateFrom" type="date" class="form-control filterTo" >
  30. </div>
  31. </div>
  32. </div>
  33. <div class="col-md-2">
  34. <div class="row">
  35. <div class="col-md-12" style="margin-bottom:10px;">
  36. <b>Stato</b>
  37. </div>
  38. <div class="col-12">
  39. <select class="form-select" wire:model="filterStatus" onchange="destroyDataTable()">
  40. <option value="">--Seleziona--
  41. <option value="1">Attiva
  42. <option value="99">Annullata
  43. </select>
  44. </div>
  45. </div>
  46. </div>
  47. </div>
  48. <div class="row g-3">
  49. <div class="col-md-12" style="text-align:right">
  50. <button class="card--ui card--ui_btnCancel" wire:click.prevent="disableSearch()" onclick="destroyDataTable()">CANCELLA</button>
  51. <button class="card--ui card--ui_btnAddHeaderUser" wire:click.prevent="search()" onclick="destroyDataTable()">FILTRA</button>
  52. </div>
  53. </div>
  54. <hr size="1">
  55. </div>
  56. <section id="resume-table">
  57. <div class="compare--chart_wrapper d-none"></div>
  58. <table class="table tablesaw tablesaw-stack" id="tablesaw-350">
  59. <thead>
  60. <tr>
  61. <th scope="col">Anno</th>
  62. <th scope="col">Numero</th>
  63. <th scope="col">Cognome</th>
  64. <th scope="col">Nome</th>
  65. <th scope="col">Stato</th>
  66. <th scope="col">Data</th>
  67. <th scope="col">Importo</th>
  68. <th scope="col">...</th>
  69. </tr>
  70. </thead>
  71. <tbody id="checkall-target">
  72. @foreach($records as $record)
  73. <tr>
  74. <td>{{$record->year}}</td>
  75. <td>{{$record->number}}</td>
  76. <td>{{$record->type == 'IN' ? ($record->member->last_name) : 'Uscita'}}</td>
  77. <td>{{$record->type == 'IN' ? ($record->member->first_name) : ''}}</td>
  78. <td>
  79. <span class="tablesaw-cell-content">
  80. <span class="badge tessera-badge {{$record->status == 1 ? 'active' : 'suspended'}}">{{$record->status == 1 ? 'Attivo' : 'Annullata'}}</span>
  81. </span>
  82. </td>
  83. <td>{{date("d/m/Y", strtotime($record->date))}}</td>
  84. <td>{{formatPrice($record->rows->sum('amount'))}}</td>
  85. <td>
  86. <button type="button" class="btn u" onclick="document.location.href='/in?id={{$record->record_id}}'"><i class="fa-solid fa-arrow-up-right-from-square"></i></button>
  87. <a target="_blank" class="btn u" href="/receipt/{{$record->id}}"><i class="fa-solid fa-print"></i></a>
  88. <a target="_blank" class="btn u" onclick="sendMail({{$record->id}})"><i class="fa-regular fa-envelope"></i></a>
  89. </td>
  90. </tr>
  91. @endforeach
  92. </tbody>
  93. </table>
  94. </section>
  95. </div>
  96. @push('scripts')
  97. <link href="/css/datatables.css" rel="stylesheet" />
  98. <script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
  99. <script src="/assets/js/datatables.js"></script>
  100. <script src="https://cdn.datatables.net/buttons/3.0.2/js/buttons.dataTables.js"></script>
  101. <script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"></script>
  102. <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/pdfmake.min.js"></script>
  103. <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/vfs_fonts.js"></script>
  104. @endpush
  105. @push('scripts')
  106. <script>
  107. $(document).ready(function() {
  108. loadDataTable();
  109. } );
  110. Livewire.on('load-data-table', () => {
  111. setTimeout(function() {loadDataTable()}, 100);
  112. });
  113. Livewire.on('destroy-data-table', () => {
  114. $('#tablesaw-350').DataTable().destroy();
  115. });
  116. function destroyDataTable()
  117. {
  118. $('#tablesaw-350').DataTable().destroy();
  119. }
  120. var isFilter = false;
  121. $(document).ready(function() {
  122. $(document).on("click",".showHideFilter",function() {
  123. if (isFilter)
  124. {
  125. isFilter = false;
  126. $(".showFilter").hide();
  127. }
  128. else
  129. {
  130. isFilter = true;
  131. $(".showFilter").show();
  132. }
  133. });
  134. } );
  135. function sendMail(id)
  136. {
  137. $.get("/receipt/mail/" + id, function(data, status){
  138. alert('Mail inviata');
  139. });
  140. }
  141. function loadDataTable(){
  142. $('#tablesaw-350').DataTable({
  143. thead: {
  144. 'th': {'background-color': 'blue'}
  145. },
  146. layout: {
  147. topStart : null,
  148. topEnd : null,
  149. top1A: {
  150. buttons: [
  151. {
  152. extend: 'collection',
  153. text: 'Esporta',
  154. buttons: [
  155. {
  156. extend: 'excelHtml5',
  157. title: 'Utenti',
  158. exportOptions: {
  159. columns: ":not(':last')"
  160. }
  161. },
  162. {
  163. extend: 'pdfHtml5',
  164. title: 'Utenti',
  165. exportOptions: {
  166. columns: ":not(':last')"
  167. }
  168. },
  169. {
  170. extend: 'print',
  171. text: 'Stampa',
  172. title: 'Utenti',
  173. exportOptions: {
  174. columns: ":not(':last')"
  175. }
  176. }
  177. ],
  178. dropup: true
  179. }
  180. ]
  181. },
  182. top1B : {
  183. pageLength: {
  184. menu: [[10, 25, 50, 100, 100000], [10, 25, 50, 100, "Tutti"]]
  185. }
  186. },
  187. top1C :'search',
  188. },
  189. order: [[0, 'desc'], [1, 'desc']],
  190. pagingType: 'numbers',
  191. "language": {
  192. "url": "/assets/js/Italian.json"
  193. },
  194. "fnInitComplete": function (oSettings, json) {
  195. var html = '&nbsp;<a href="#" class="showHideFilter card--ui card--ui_btnAddHeaderUser">&nbsp;&nbsp;<i class="fa-solid fa-sliders"></i>&nbsp;&nbsp;</a>';
  196. $(".dt-search").append(html);
  197. }
  198. });
  199. $('#tablesaw-350 thead tr th').addClass('col');
  200. $('#tablesaw-350 thead tr th').css("background-color", "#f6f8fa");
  201. $(document).ready(function() {
  202. $(document).on("click",".addData",function() {
  203. $(".title--section_addButton").trigger("click")
  204. });
  205. } );
  206. }
  207. </script>
  208. @endpush