Anons79 Mini Shell

Directory : /home/aplikasiposinfo/.trash/resources/views/kalender-jadwal/
Upload File :
Current File : /home/aplikasiposinfo/.trash/resources/views/kalender-jadwal/index.blade.php

@extends('layouts.app')

@section('content')
    <h4 class="fw-bold py-3 mb-4"><span class="text-muted fw-light">Master Data /</span> Data Kalender Jadwal</h4>

    <div class="card">
        <h5 class="card-header">
            <div class="row">
                <div class="col-md-4">
                    Data Kalender Jadwal
                </div>
                <div class="col text-end">
                    @if ($akses['tambah'])
                        <div class="btn-group float-md-right" role="group" aria-label="Button group with nested dropdown">
                            <a href="{{ route('kalender-jadwal.create') }}" class="btn btn-primary"><i
                                    class="bx bx-import"></i>
                                Import</a>
                        </div>
                    @endif

                </div>
            </div>
        </h5>
        <div class="card-body">
            <form class="form row mb-4" action="">
                <div class="col-md-12">
                    <div class="row mb-2">
                        <div class="col-md-3">
                            <div class="form-group">
                                <label for="">Cari</label>
                                <input type="text" class="form-control" placeholder="Search..." aria-label="Search"
                                    name="search" value="{{ request()->search }}">
                            </div>
                        </div>
                        <div class="col-md-3">
                            <div class="form-group">
                                <label for="perusahaan_id">Perusahaan</label>
                                <select class="form-control" id="perusahaan_id" name="perusahaan_id">
                                    <option value="0">Semua Perusahaan</option>
                                    @foreach ($perusahaans as $item)
                                        <option value="{{ $item->id }}"
                                            @if (request()->perusahaan_id == $item->id) selected @endif>{{ $item->nama_perusahaan }}
                                        </option>
                                    @endforeach
                                </select>
                            </div>
                        </div>
                        <div class="col-md-3">
                            <div class="form-group">
                                <label for="departemen_id">Departemen</label>
                                <select class="form-control" id="departemen_id" name="departemen_id">
                                    <option value="0">Semua Departemen</option>
                                    @foreach ($departemens as $departemen)
                                        <option value="{{ $departemen->id }}"
                                            @if (request()->departemen_id == $departemen->id) selected @endif>
                                            {{ $departemen->nama_departemen }}</option>
                                    @endforeach
                                </select>
                            </div>
                        </div>
                        <div class="col-md-3">
                            <div class="form-group">
                                <label for="lokasi_kerja_id">Lokasi Kerja</label>
                                <select class="form-control" id="lokasi_kerja_id" name="lokasi_kerja_id">
                                    <option value="0">Semua Lokasi</option>
                                    @foreach ($lokasiKerjas as $item)
                                        <option value="{{ $item->id }}"
                                            @if (request()->lokasi_kerja_id == $item->id) selected @endif>
                                            {{ $item->nama_lokasi }}</option>
                                    @endforeach
                                </select>
                            </div>
                        </div>

                    </div>
                    <div class="row mb-2">
                        <div class="col">
                            <div class="form-group">
                                <label for="periode_awal">Periode Awal</label>
                                <input type="date" class="form-control" placeholder="Periode Awal..."
                                    aria-label="Periode Awal" name="periode_awal" id="periode_awal"
                                    value="{{ request()->periode_awal ?? date('Y-m-20') }}">
                            </div>
                        </div>
                        <div class="col">
                            <div class="form-group">
                                <label for="periode_akhir">Periode Akhir</label>
                                <input type="date" class="form-control" placeholder="Periode Akhir..."
                                    aria-label="Periode Akhir" name="periode_akhir" id="periode_akhir"
                                    value="{{ request()->periode_akhir ?? date('Y-m-20', strtotime('+1 month')) }}">
                            </div>
                        </div>

                    </div>
                    <div class="row">
                        <div class="col">
                            <button class="btn btn-secondary" name="filter" value="true">Search</button>
                        </div>
                        <div class="col">
                            <button class="btn btn-success" name="export" value="true">Export</button>
                        </div>
                    </div>
                </div>

            </form>

            <form action="{{ route('kalender-jadwal.update-jadwal', request()->all()) }}" class="form" method="POST">
                @csrf
                <div class="table-responsive text-nowrap">
                    <table class="table table-striped">
                        <thead>
                            <tr>
                                <th>No</th>
                                <th>NIK</th>
                                <th class="karyawan">Nama</th>
                                <th>Departemen</th>
                                @foreach ($periods as $period)
                                    <th>
                                        {{ $period->format('Y/m/d') }}
                                    </th>
                                @endforeach
                            </tr>
                        </thead>
                        <tbody>
                            @foreach ($karyawans as $no => $karyawan)
                                @php
                                    // $kalenderTanggals = $karyawan->getKalenderJadwalPeriode([$periode_awal,$periode_akhir]);
                                    $periode = [$periode_awal, $periode_akhir];
                                    $kalenderTanggals = [];
                                    $periode_awal = $periode[0] ?? date('Y-m-d', strtotime('-1 week'));
                                    $periode_akhir = $periode[1] ?? date('Y-m-d');
                                    $begin = new DateTime($periode_awal);
                                    $end = new DateTime($periode_akhir);
                                    $end = $end->modify('+1 day');
                                    $periods = new DatePeriod($begin, new DateInterval('P1D'), $end);

                                    // $kalenders = $karyawan->kalender_jadwal()->whereBetween('tanggal', [$periode_awal, $periode_akhir])->orderBy('created_at','desc')->pluck('status', 'tanggal');
                                    // $kArr = $karyawan->kalender_jadwal->pluck('status','tanggal')->sortBy('updated_at')->reverse()->toArray();
                                    $kArr = array_reduce(
                                        $karyawans->kalender_jadwal->sortBy('updated_at')->reverse()->toArray(),
                                        function ($carry, $item) {
                                            return $carry + [$item['tanggal'] => $item['status']];
                                        },
                                        [],
                                    );
                                    //sort by ['created_at' => 'desc']
                                    // usort($kArr, function ($a, $b) {
                                    //     return strtotime($a['updated_at']) - strtotime($b['updated_at']);
                                    // });
                                    // $kalenders = array_reduce($kArr, function ($carry, $item) {
                                    //     $carry[$item['tanggal']] = $item['status'];
                                    //     return $carry;
                                    // }, []);
                                    // $kalenders = array_map(function($carry) {
                                    //     return [
                                    //         $carry['tanggal'] => $carry['status'],
                                    //     ];
                                    // },$kArr);

                                    $datas = [];
                                    $haris = Helper::checkJadwal($karyawan, $periode_awal, $periode_akhir);

                                    $jadwalkerja = $karyawan->jadwal_kerja;
                                    foreach ($periods as $key => $periode) {
                                        if (isset($kArr[$periode->format('Y-m-d')])) {
                                            $kalenderTanggals[$periode->format('Y-m-d')] =
                                                @$kArr[$periode->format('Y-m-d')] ?? 'na';
                                        } else {
                                            foreach ($jadwalkerja as $jadwal) {
                                                $s = $haris[$jadwal->id][$key] ?? null;
                                                if ($s) {
                                                    if ($s->status_kerja == 'work-day') {
                                                        $kalenderTanggals[$periode->format('Y-m-d')] = 'work';
                                                        break;
                                                    } else {
                                                        $kalenderTanggals[$periode->format('Y-m-d')] = 'off';
                                                    }
                                                }
                                            }
                                        }
                                    }
                                @endphp
                                <tr>
                                    <td>{{ $karyawans->firstItem() + $no }}</td>
                                    <td>{{ $karyawan->nik }}</td>
                                    <td class="karyawan">{{ $karyawan->nama }}</td>
                                    <td>{{ @$karyawan->departemen->nama_departemen }}</td>

                                    @foreach ($periods as $period)
                                        <td data-value="{{ @$kalenderTanggals[$period->format('Y-m-d')] ?? '-' }}"
                                            data-k="{{ @$kArr[$periode->format('Y-m-d')] ?? 'na' }}">
                                            <select name="status[{{ $karyawan->id }}][{{ $period->format('Y-m-d') }}]"
                                                id="status-{{ $karyawan->id }}-{{ $period->format('Y-m-d') }}">
                                                <option value="na" @if (@$kalenderTanggals[$period->format('Y-m-d')] == 'na') selected @endif>NA
                                                </option>
                                                <option value="work" @if (@$kalenderTanggals[$period->format('Y-m-d')] == 'work') selected @endif>
                                                    Work</option>
                                                <option value="off" @if (@$kalenderTanggals[$period->format('Y-m-d')] == 'off') selected @endif>Off
                                                </option>

                                                <option value="cuti" @if (@$kalenderTanggals[$period->format('Y-m-d')] == 'cuti') selected @endif>
                                                    Cuti Tahunan</option>
                                                <option value="fb" @if (@$kalenderTanggals[$period->format('Y-m-d')] == 'fb') selected @endif>
                                                    Cuti (FB)</option>
                                                <option value="sakit" @if (@$kalenderTanggals[$period->format('Y-m-d')] == 'sakit') selected @endif>
                                                    Sakit</option>
                                                <option value="izin" @if (@$kalenderTanggals[$period->format('Y-m-d')] == 'izin') selected @endif>
                                                    Izin</option>
                                            </select>
                                        </td>
                                    @endforeach
                                </tr>
                            @endforeach


                        </tbody>
                        <tfoot>
                            <tr>
                                <td colspan="{{ 4 + iterator_count($periods) }}">
                                    {{ $karyawans->appends(request()->query())->links() }}
                                </td>
                            </tr>
                        </tfoot>

                    </table>

                </div>
                <button type="submit" class="btn btn-success"><i class='bx bx-save'></i> Simpan</button>
            </form>
        </div>
    </div>
@endsection

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]