Advertisement
arlendafitranto

budget.blade

Sep 17th, 2023
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 7.50 KB | Source Code | 0 0
  1. @extends('layouts.app')
  2.  
  3. @section('content')
  4.  
  5. <div class="row">
  6.     <div class="col-12">
  7.         <div class="card">
  8.             <div class="card-header">
  9.                 <h3 class="card-title mt-2">
  10.                     Budget (Tahun ini dan tahun depan)
  11.                 </h3>
  12.                 <div class="float-right d-none d-sm-block">
  13.                     <div class="form-inline ml-0 ml-md-3">
  14.                         <div class="form-group mx-3">
  15.                             <label class="font-weight-normal">Short by:</label>
  16.                             <select class="form-control" id="ccBudgetBy" style="border: none; cursor: pointer;">
  17.                                 @if (count($cost_center) > 0)
  18.                                 <option value="all" selected>All CC</option>
  19.                                 @foreach ($cost_center as $cc)
  20.                                 <option value="{{ $cc->id }}">{{ $cc->cc }}</option>
  21.                                 @endforeach
  22.                                 @else
  23.                                 <option value="" selected>No Data</option>
  24.                                 @endif
  25.                             </select>
  26.                         </div>
  27.                         <div class="form-group mx-3">
  28.                             <label class="font-weight-normal">For Year:</label>
  29.                             <select class="form-control" id="ccBudgetYear" style="border: none; cursor: pointer;"
  30.                                 title="year">
  31.                                 <option value="{{ date('Y') }}" selected>{{ date('Y') }}</option>
  32.                                 <option value="{{ date('Y') + 1 }}">{{ date('Y') + 1 }}</option>
  33.                             </select>
  34.                         </div>
  35.                         @can('app-dev')
  36.                         <button type="button" class="btn btn-sm btn-primary mx-3" data-toggle="modal"
  37.                             data-target="#addBudgetModal">
  38.                             + Add / Revise Budget
  39.                         </button>
  40.                         @endcan
  41.                     </div>
  42.                 </div>
  43.             </div>
  44.             <div class="card-body">
  45.                 @if(session()->has('error'))
  46.                 <div class="alert alert-danger" role="alert">
  47.                     {{ session('error') }}
  48.                 </div>
  49.                 @endif
  50.                 @if(session()->has('success'))
  51.                 <div class="alert alert-primary" role="alert">
  52.                     {{ session('success') }}
  53.                 </div>
  54.                 @endif
  55.                 <div class="row">
  56.                     <div class="col-md-4 col-sm-12">
  57.                         <div class="info-box">
  58.                             <span class="info-box-icon bg-info"><i class="fa-solid fa-rupiah-sign"></i></span>
  59.                             <div class="info-box-content">
  60.                                 <span class="info-box-text">Budget</span>
  61.                                 <span class="info-box-number" id="dtTotBudget">Rp. {{ $tot_budget }}</span>
  62.                             </div>
  63.                         </div>
  64.                     </div>
  65.                     <div class="col-md-4 col-sm-12">
  66.                         <div class="info-box">
  67.                             <span class="info-box-icon bg-info"><i class="fa-solid fa-cart-shopping"></i></span>
  68.                             <div class="info-box-content">
  69.                                 <span class="info-box-text">Forecast</span>
  70.                                 <span class="info-box-number" id="dtTotForecast">Rp. {{ $tot_forecast }}</span>
  71.                             </div>
  72.                         </div>
  73.                     </div>
  74.                     <div class="col-md-4 col-sm-12">
  75.                         <div class="info-box">
  76.                             <span class="info-box-icon bg-info"><i class="fa-solid fa-scale-balanced"></i></span>
  77.                             <div class="info-box-content">
  78.                                 <span class="info-box-text">Balance</span>
  79.                                 <span class="info-box-number" id="dtBalance">Rp. {{ $balance }}</span>
  80.                             </div>
  81.                         </div>
  82.                     </div>
  83.                 </div>
  84.                 <div class="table-responssive overflow-auto">
  85.                     <table class="table table-sm budget-datatable">
  86.                         <thead>
  87.                             <tr>
  88.                                 <th>#</th>
  89.                                <th>Year</th>
  90.                                 <th>CC</th>
  91.                                 <th>Theme</th>
  92.                                 <th>Category</th>
  93.                                 <th>Exp. No.</th>
  94.                                 <th>PIC</th>
  95.                                 <th>Amount</th>
  96.                                 <th>Actual</th>
  97.                                 <th>Forecast</th>
  98.                                 <th>Balance</th>
  99.                                 <th></th>
  100.                             </tr>
  101.                         </thead>
  102.                         <tbody>
  103.  
  104.                         </tbody>
  105.                     </table>
  106.                 </div>
  107.  
  108.             </div>
  109.         </div>
  110.     </div>
  111. </div>
  112. @include('expenses.partials.add-budget-modal')
  113. @push('scripts')
  114. <script>
  115.     let dtTotBudget = ''
  116.     let dtTotForecast = ''
  117.     let dtBalance = ''
  118.  
  119.     let budgetTable = $('.budget-datatable').DataTable({
  120.         processing: true,
  121.         serverSide: true,
  122.         pageLength: 25,
  123.         ajax: {
  124.             url: "{{ route('exp.budget.index') }}",
  125.             type: 'GET',
  126.             data: function(d) {
  127.                 d.year = $('#ccBudgetYear').val()
  128.                 d.ccBy = $('#ccBudgetBy').val()
  129.             },
  130.         },
  131.         columns: [
  132.             { data: "DT_RowIndex", name: "DT_RowIndex", className: "dt-body-center" },
  133.             { data: "year", name: "year" },
  134.             { data: "cc_id", name: "cc_id" },
  135.             { data: "theme", name: "theme" },
  136.             { data: "category_id", name: "category_id" },
  137.             { data: "exp_no", name: "exp_no" },
  138.             { data: "pic", name: "pic" },
  139.             { data: "amount", name: "amount", className: "text-right" },
  140.             { data: "tot_actual", name: "tot_actual", className: "text-right" },
  141.             { data: "tot_forecast", name: "tot_forecast", className: "text-right" },
  142.             { data: "balance", name: "balance", className: "text-right" },
  143.             { data: "action", name: "action", searchable: false, orderable: false, className: "text-center" },
  144.         ],
  145.     })
  146.  
  147.     /** Balance budget saat datatable berubah */
  148.     budgetTable.on('draw.dt', function(){
  149.         dtData = budgetTable.ajax.json().data[0]
  150.  
  151.         // console.log(dtData);
  152.  
  153.         if (dtData) {
  154.             dtTotBudget = dtData.DT_RowData.dt_tot_budget
  155.             dtTotForecast = dtData.DT_RowData.dt_tot_forecast
  156.             dtBalance = dtData.DT_RowData.dt_balance
  157.         } else {
  158.             dtTotBudget = '-'
  159.             dtTotForecast = '-'
  160.             dtBalance = '-'
  161.         }
  162.        
  163.         $('#dtTotBudget').text('Rp. ' + dtTotBudget)
  164.         $('#dtTotForecast').text('Rp. ' + dtTotForecast)
  165.         $('#dtBalance').text('Rp. ' + dtBalance)
  166.     })
  167.     $('#ccBudgetYear').on('change', function(){
  168.         budgetTable.ajax.reload()
  169.     })
  170.  
  171.     $('#ccBudgetBy').on('change', function(){
  172.         budgetTable.ajax.reload()
  173.     })
  174. </script>
  175.  
  176. @endpush
  177. @endsection
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement