dashboard.blade.php

 avatar
user_8248690604
php_laravel_blade
3 years ago
24 kB
4
Indexable
@extends('templates/main')
@section('css')
    <link rel="stylesheet" href="{{ asset('css/dashboard/style.css') }}">
    <style>
        .loader {
            border: 5px solid #f3f3f3;
            /* Light grey */
            border-top: 5px solid #3498db;
            /* Blue */
            border-radius: 50%;
            width: 30px;
            height: 30px;
            animation: spin 1.3s linear infinite;
            margin-top: 5px;
            margin-bottom: 5px;
            margin-left: auto;
            margin-right: auto;
        }

        @keyframes spin {
            0% {
                transform: rotate(0deg);
            }

            100% {
                transform: rotate(360deg);
            }
        }
    </style>
@endsection
@section('content')
    <div class="row page-title-header">
        <div class="col-12">
            <div class="page-header d-flex justify-content-between align-items-center">
                <h4 class="page-title">Dashboard</h4>
                <button class="setting-btn" data-toggle="modal" data-target="#pengaturanTokoModal">
                    Pengaturan Toko
                </button>
            </div>
        </div>
    </div>
    <div class="row modal-group">
        <div class="modal fade" id="pengaturanTokoModal" tabindex="-1" role="dialog"
            aria-labelledby="pengaturanTokoModalLabel" aria-hidden="true">
            <div class="modal-dialog">
                <div class="modal-content">
                    <form name="market_form" action="{{ url('/market/update') }}" method="POST">
                        @csrf
                        <div class="modal-header">
                            <h5 class="modal-title" id="pengaturanTokoModalLabel">Pengaturan Toko</h5>
                            <button type="button" class="close close-btn" data-dismiss="modal" aria-label="Close">
                                <span aria-hidden="true">&times;</span>
                            </button>
                        </div>
                        <div class="modal-body">
                            <div class="form-group row">
                                <div class="col-12">
                                    <div class="form-group row">
                                        <label
                                            class="col-lg-3 col-md-3 col-sm-4 col-12 col-form-label font-weight-bold">Nama
                                            Toko</label>
                                        <div class="col-lg-9 col-md-9 col-sm-8 col-12">
                                            <input type="text" class="form-control" name="nama_toko"
                                                placeholder="Masukkan Nama Toko" value="{{ $market->nama_toko }}">
                                        </div>
                                        <div class="col-lg-9 col-md-9 col-sm-8 col-12 offset-lg-3 offset-md-3 offset-sm-4 error-notice"
                                            id="nama_toko_error"></div>
                                    </div>
                                    <div class="form-group row">
                                        <label class="col-lg-3 col-md-3 col-sm-4 col-12 col-form-label font-weight-bold">No
                                            Telepon</label>
                                        <div class="col-lg-9 col-md-9 col-sm-8 col-12">
                                            <input type="text" class="form-control" name="no_telp"
                                                placeholder="Masukkan No Telepon" value="{{ $market->no_telp }}">
                                        </div>
                                        <div class="col-lg-9 col-md-9 col-sm-8 col-12 offset-lg-3 offset-md-3 offset-sm-4 error-notice"
                                            id="no_telp_error"></div>
                                    </div>
                                    <div class="form-group row">
                                        <label
                                            class="col-lg-3 col-md-3 col-sm-4 col-12 col-form-label font-weight-bold">Alamat</label>
                                        <div class="col-lg-9 col-md-9 col-sm-8 col-12">
                                            <textarea class="form-control" name="alamat" rows="4" placeholder="Masukkan Alamat">{{ $market->alamat }}</textarea>
                                        </div>
                                        <div class="col-lg-9 col-md-9 col-sm-8 col-12 offset-lg-3 offset-md-3 offset-sm-4 error-notice"
                                            id="alamat_error"></div>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <div class="modal-footer">
                            <button type="submit" class="btn btn-simpan"><i class="mdi mdi-content-save"></i>
                                Simpan</button>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
    <div class="row">
        <div class="col-lg-6 col-md-6 col-sm-12 col-12">
            <div class="row">
                <div class="col-lg-6 col-md-12 col-sm-6 col-12 mb-4">
                    <div class="card b-radius card-noborder bg-blue">
                        <div class="card-body custom-card-p">
                            <div class="row">
                                <div class="col-12 d-flex justify-content-start align-items-center icon-card">
                                    <div class="icon-round text-white">
                                        Rp
                                    </div>
                                    <div class="ml-3">
                                        <p class="m-0 text-white">Pemasukan Harian</p>
                                        <h5 class="text-white">{{ number_format($incomes_daily, 2, ',', '.') }}</h5>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
                <div class="col-lg-6 col-md-12 col-sm-6 col-12 mb-4">
                    <div class="card b-radius card-noborder">
                        <div class="card-body custom-card-p">
                            <div class="row">
                                <div class="col-12 d-flex justify-content-start align-items-center icon-card">
                                    <div class="icon-round-2">
                                        <i class="mdi mdi-account-multiple"></i>
                                    </div>
                                    <div class="ml-3">
                                        <p class="m-0">Pelanggan Harian</p>
                                        <h5>{{ $customers_daily }} Orang</h5>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
                <div class="col-lg-12 col-md-12 col-sm-12 col-12 mb-4">
                    <div class="card b-radius card-noborder">
                        <div class="card-body">
                            <div class="row">
                                <div class="col-12 mb-4 d-flex justify-content-between align-items-center">
                                    <h5 class="font-weight-semibold chart-title">Pemasukan 1 Minggu Terakhir</h5>
                                    <div class="dropdown">
                                        <button class="btn btn-filter-chart icon-btn dropdown-toggle" type="button"
                                            id="dropdownMenuIconButton1" data-toggle="dropdown" aria-haspopup="true"
                                            aria-expanded="false">
                                            Pemasukan
                                        </button>
                                        <div class="dropdown-menu" aria-labelledby="dropdownMenuIconButton1">
                                            <a class="dropdown-item chart-filter" href="#"
                                                data-filter="pemasukan">Pemasukan</a>
                                            <a class="dropdown-item chart-filter" href="#"
                                                data-filter="pelanggan">Pelanggan</a>
                                        </div>
                                    </div>
                                </div>
                                <div class="col-12">
                                    <canvas id="myChart" style="width: 100%; height: 315px;"></canvas>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <div class="col-lg-6 col-md-6 col-sm-12 col-12">
            <div class="card b-radius card-noborder">
                <div class="card-body">
                    <div class="row">
                        <div class="col-12 text-center">
                            <div class="form-group">
                                <div class="col-12 text-center">
                                    <p class="m-0">Filter Tahun</p>
                                </div>
                                <div class="input-group mt-2">
                                    <div class="col-md-1"></div>
                                    <input type="text" class="form-control col-md-4 form-control-md yearPicker"
                                        placeholder="Tahun Awal" id="year_awal" name="year_awal" required="required"
                                        required>
                                    <div class="input-group-prepend">
                                        <span class="input-group-text">-</span>
                                    </div>
                                    <input type="text" class="form-control col-md-4 form-control-md yearPicker"
                                        placeholder="Tahun Akhir" id="year_akhir" name="year_akhir" required="required"
                                        required>
                                    <div class="col-md-1">
                                        <button type="submit" class="btn btn-primary btn-search" id="btn-filter">
                                            <i class="mdi mdi-filter"></i>
                                        </button>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <div class="col-12 text-center mt-2">
                            <p class="m-0 total_pemasukan_title">Total Pemasukan</p>
                            <h2 class="font-weight-bold all-incomes"></h2>
                            <p class="m-0 txt-light min-max-date"></p>
                        </div>
                        <div class="col-12 text-center mt-4">
                            <div class="btn-view-all">
                                <i class="mdi mdi-chevron-down"></i>
                            </div>
                        </div>
                        <div class="col-12">
                            <hr>
                            <div class="d-flex justify-content-between align-items-center">
                                <h5 class="font-weight-semibold">Riwayat Transaksi</h5>
                                @php
                                    $access = \App\Acces::where('user', auth()->user()->id)->first();
                                @endphp
                                <button class="btn btn-view-transaction" type="button"
                                    data-access="{{ $access->kelola_laporan }}">Semua</button>
                            </div>
                        </div>
                        <div class="col-12">
                            @foreach ($kd_transaction_uniques as $transaksi)
                                @php
                                    $ket_transaksi = \App\Transaction::where('kode_transaksi', $transaksi->kode_transaksi)->first();
                                    if (!isset($ket_transaksi)) {
                                        $ket_transaksi = \App\TransactionNonPPN::where('kode_transaksi', $transaksi->kode_transaksi)->first();
                                    }
                                @endphp
                                <div class="text-group mt-3">
                                    <div class="d-flex justify-content-between">
                                        <div class="d-flex justify-content-start">
                                            <span class="icon-transaksi">
                                                <i class="mdi mdi-swap-horizontal"></i>
                                            </span>
                                            <div class="ml-2">
                                                <p class="kode_transaksi font-weight-semibold">
                                                    {{ $transaksi->kode_transaksi }}</p>
                                                <p class="des-transaksi">Rp.
                                                    {{ number_format($ket_transaksi->total, 2, ',', '.') }} <span
                                                        class="dot"><i
                                                            class="mdi mdi-checkbox-blank-circle"></i></span>
                                                    {{ $ket_transaksi->kasir }}</p>
                                            </div>
                                        </div>
                                        <span
                                            class="w-transaksi">{{ Carbon\Carbon::parse($ket_transaksi->created_at)->diffForHumans() }}</span>
                                    </div>
                                </div>
                            @endforeach
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
@endsection
@section('script')
    <script src="{{ asset('js/dashboard/script.js') }}"></script>
    <script src="{{ asset('plugins/js/Chart.min.js') }}"></script>
    <script src="{{ asset('plugins/js/ChartRadius.js') }}"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.4/js/bootstrap-datepicker.js"></script>
    <link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.4/css/bootstrap-datepicker.css"
         rel="stylesheet" />
    <script type="text/javascript">
        @if ($message = Session::get('update_success'))
            swal(
                "Berhasil!",
                "{{ $message }}",
                "success"
            );
        @endif
        $(".yearPicker").datepicker({
            format: "yyyy",
            viewMode: "years",
            minViewMode: "years",
            orientation: "bottom"
        });
        $(document).ready(function() {
            $y_awal = document.getElementById('year_awal').value;
            $y_akhir = document.getElementById('year_akhir').value;
            $.ajax({
                url: "{{ url('/dashboard/all-incomes') }}/" + $y_awal + '/' + $y_akhir,
                method: "GET",
                beforeSend: function() {
                    $('.all-incomes').addClass('loader');
                },
                success: function(response) {
                    var all_income = response.all_incomes;
                    var min_date = response.min_date;
                    var max_date = response.max_date;
                    $('.all-incomes').removeClass('loader');
                    $('.all-incomes').html('Rp ' + all_income);
                    $('.min-max-date').html(min_date + ' - ' + max_date)
                }
            });
        });

        // ------------------------------ FILTER TOTAL PEMASUKAN --------------------------------- //
        $(document).on('click', '#btn-filter', function(e) {
            e.preventDefault();
            $y_awal = document.getElementById('year_awal').value;
            $y_akhir = document.getElementById('year_akhir').value;
            console.log($y_awal);
            if ($y_awal == 0 || $y_akhir == 0)
                alert("input tahun harus diisi");
            else if ($y_awal > $y_akhir) {
                alert("tahun awal tidak bisa lebih besar dari tahun akhir");
            } else {
                $.ajax({
                    url: "{{ url('/dashboard/all-incomes') }}/" + $y_awal + '/' + $y_akhir,
                    method: "GET",
                    beforeSend: function() {
                        $('.all-incomes').html('');
                        $('.min-max-date').html('')
                        $('.all-incomes').addClass('loader');
                    },
                    // ==================== Tambahan 'error' ==================== //
                    success: function(response) {
                        var all_income = response.all_incomes;
                        $('.all-incomes').removeClass('loader');
                        if (response.error != null) {
                            $('.total_pemasukan_title').html('');
                            $('.min-max-date').html(response.error)
                        } else {
                            var min_date = response.min_date;
                            var max_date = response.max_date;
                            $('.total_pemasukan_title').html('Total Pemasukan');
                            $('.all-incomes').html('Rp ' + all_income);
                            $('.min-max-date').html(min_date + ' - ' + max_date);
                        }
                    }
                    // ==================== Tambahan 'error' ==================== //
                });
            }
        });
        // ------------------------------ FILTER TOTAL PEMASUKAN --------------------------------- //
        var ctx = document.getElementById('myChart').getContext('2d');
        var myChart = new Chart(ctx, {
            type: 'bar',
            data: {
                labels: [
                    @if (count($incomes) != 0)
                        @foreach ($incomes as $income)
                            "{{ date('d M, Y', strtotime($income)) }}",
                        @endforeach
                    @endif
                ],
                datasets: [{
                    label: '',
                    data: [
                        @if (count($incomes) != 0)
                            @foreach ($incomes as $income)
                                @php
                                    $total_n = \App\Transaction::whereDate('created_at', $income)->sum('total_barang');
                                    if ($total_n == null) {
                                        $total_n = 0;
                                    }
                                    $total_nppn = \App\TransactionNonPPN::whereDate('created_at', $income)->sum('total_barang');
                                    if ($total_nppn == null) {
                                        $total_nppn = 0;
                                    }
                                    $total = $total_n + $total_nppn;
                                @endphp
                                    "{{ $total }}",
                            @endforeach
                        @endif
                    ],
                    backgroundColor: 'RGB(44, 77, 240)',
                    borderColor: 'RGB(44, 77, 240)',
                    borderWidth: 0
                }]
            },
            options: {
                title: {
                    display: false,
                    text: ''
                },
                scales: {
                    yAxes: [{
                        ticks: {
                            beginAtZero: true,
                            callback: function(value, index, values) {
                                if (parseInt(value) >= 1000) {
                                    return 'Rp. ' + value.toString().replace(
                                        /\B(?=(\d{3})+(?!\d))/g,
                                        ",");
                                } else {
                                    return 'Rp. ' + value;
                                }
                            }
                        }
                    }],
                    xAxes: [{
                        barPercentage: 0.2
                    }]
                },
                legend: {
                    display: false
                },
                tooltips: {
                    callbacks: {
                        label: function(tooltipItem) {
                            return tooltipItem.yLabel;
                        }
                    }
                }
            }
        });

        $(document).on('click', '.chart-filter', function(e) {
            e.preventDefault();
            var data_filter = $(this).attr('data-filter');
            if (data_filter == 'pemasukan') {
                $('.btn-filter-chart').html('Pemasukan');
                $('.chart-title').html('Pemasukan 1 Minggu Terakhir');
            } else if (data_filter == 'pelanggan') {
                $('.btn-filter-chart').html('Pelanggan');
                $('.chart-title').html('Pelanggan 1 Minggu Terakhir');
            }
            $.ajax({
                url: "{{ url('/dashboard/chart') }}/" + data_filter,
                method: "GET",
                beforeSend: function() {
                    $('.myChart').addClass('loader');
                },
                success: function(response) {
                    console.log("success");
                    $('.myChart').removeClass('loader');
                    if (data_filter == 'pemasukan') {
                        if (response.incomes.length != 0) {
                            changeDataPemasukan(myChart, response.incomes, response.total);
                        }
                    } else if (data_filter == 'pelanggan') {
                        if (response.customers.length != 0) {
                            changeDataPelanggan(myChart, response.customers, response.jumlah);
                        }
                    }
                }
            });


        });

        $(document).on('click', '.btn-view-transaction', function() {
            var check_access = $(this).attr('data-access');
            if (check_access == 1) {
                window.open("{{ url('/report/transaction') }}", "_self");
            } else {
                swal(
                    "",
                    "Maaf anda tidak memiliki akses",
                    "error"
                );
            }
        });
    </script>
@endsection
Editor is loading...