table.blade.php 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <div class="d-flex align-items-center justify-content-between">
  2. <div class="d-flex align-items-center">
  3. <div class="my-2">Showing <b>{{ $rows->firstItem() }}</b> to <b>{{ $rows->lastItem() }}</b> of total
  4. <b>{{ $rows->total() }}</b> records
  5. </div>
  6. </div>
  7. <div>
  8. @if(@$ordersSummary)
  9. <div class="d-flex align-items-start">
  10. @foreach($ordersSummary as $k=>$v)
  11. <div class="ms-2"><b>{{ toHumanReadable($k) }}: </b> ${{ displayAmount('', $v) }}</div>
  12. @endforeach
  13. </div>
  14. @endif
  15. </div>
  16. </div>
  17. <div class="table-responsive scrollable">
  18. <table class="table table-sm table-hover table-bordered mb-0 bg-white">
  19. <thead>
  20. <tr>
  21. <th>#</th>
  22. <th>Created At</th>
  23. <th>Total Amount</th>
  24. <th>Orders</th>
  25. <th>Trx</th>
  26. </tr>
  27. </thead>
  28. <tbody>
  29. @foreach ($rows as $order)
  30. <tr @if ($order->is_cancelled) class="cancelled-order" @endif>
  31. <td class="text-nowrap">
  32. <a href="{{ route('admin.orders.view.dashboard', $order) }}"
  33. class="me-2">{{ $order->orderNumber() }}</a>
  34. <a href="{{ route('admin.orders.view.preview-invoice', $order) }}"
  35. class="me-2">Invoice</a>
  36. </td>
  37. <td class="text-nowrap">{{ friendly_date_time($order->created_at) }}</td>
  38. <td>{{ displayAmount('$', $order->total()) }}</td>
  39. <td>
  40. @include('app.my-account.admin.orders.partials.order-tests-summary')
  41. </td>
  42. <td class="text-nowrap">
  43. <?php $finalTrx = $order->finalFinancialTransaction(); ?>
  44. @if (@$finalTrx)
  45. @if ($finalTrx->charge_or_refund == 'CHARGE')
  46. <span><i class="fa-duotone fa-circle-check fa-fw text-success"></i> CHARGED</span>
  47. @else
  48. <span><i class="fa-duotone fa-circle-xmark fa-fw text-danger"></i> REFUNDED</span>
  49. @endif
  50. @else
  51. <span><i class="fa-duotone fa-circle-xmark fa-fw text-danger"></i> NOT CHARGED</span>
  52. @endif
  53. </td>
  54. </tr>
  55. @endforeach
  56. </tbody>
  57. </table>
  58. </div>
  59. <script>
  60. (function($) {
  61. var ordersTable = {
  62. checkedOrders: [],
  63. initSelectAll: function() {
  64. var self = this;
  65. var multiCheckbox = $('[multi-check]');
  66. var orderCheckboxes = $('[order-check]');
  67. multiCheckbox.click(function(e) {
  68. var isChecked = e.target.checked ? true : false;
  69. var checkedOrders = [];
  70. if (isChecked) {
  71. $.each(orderCheckboxes, function(i, order) {
  72. var orderID = $(order).data('id');
  73. checkedOrders.push(orderID);
  74. $(order).attr('checked', true);
  75. });
  76. } else {
  77. $.each(orderCheckboxes, function(i, order) {
  78. $(order).attr('checked', false);
  79. });
  80. }
  81. self.updateCheckedOrders(checkedOrders);
  82. });
  83. },
  84. initSingleOrderCheckbox: function() {
  85. var self = this;
  86. $('[order-check]').click(function(e) {
  87. var input = e.target;
  88. var orderID = $(input).data('id');
  89. var isChecked = input.checked ? true : false;
  90. var checkedOrders = [...self.checkedOrders];
  91. if (isChecked) {
  92. checkedOrders.push(orderID);
  93. } else {
  94. var index = checkedOrders.indexOf(orderID);
  95. checkedOrders.splice(index, 1);
  96. }
  97. self.updateCheckedOrders(checkedOrders);
  98. });
  99. },
  100. updateCheckedOrders: function(orders) {
  101. var self = this;
  102. self.checkedOrders = orders;
  103. if ($('[order-check]:checked').length === $('[order-check]').length) {
  104. $('[multi-check]').prop('checked', true);
  105. } else {
  106. $('[multi-check]').prop('checked', false);
  107. }
  108. $('input[name=selectedIDs]').val(JSON.stringify(self.checkedOrders));
  109. if (self.checkedOrders.length) {
  110. $('#GenerateInvoicesPdfForm').removeClass('d-none');
  111. } else {
  112. $('#GenerateInvoicesPdfForm').addClass('d-none');
  113. }
  114. },
  115. init: function() {
  116. this.initSelectAll();
  117. this.initSingleOrderCheckbox();
  118. }
  119. };
  120. ordersTable.init();
  121. })(jQuery);
  122. </script>