<?php

namespace App\Http\Controllers\Kasir;

use App\Http\Controllers\Controller;
use App\Models\DetailPesanan;
use App\Models\Pesanan;
use Carbon\Carbon;
use Illuminate\Http\Request;

class History extends Controller
{
    public function index()
    {
        return view('pages.History.index');
    }

    public function getDataHistory(Request $request)
    {
        $nomor = 1;
        $filter_tanggal_1 = $request->filter_tanggal_1;
        $filter_tanggal_2 = $request->filter_tanggal_2;
        $data = Pesanan::with(['detailPesanan', 'user'])
            ->when($filter_tanggal_1, function ($query) use ($filter_tanggal_1) {
                return $query->whereDate('tanggal_pesanan', '>=', $filter_tanggal_1);
            })
            ->when($filter_tanggal_2, function ($query) use ($filter_tanggal_2) {
                return $query->whereDate('tanggal_pesanan', '<=', $filter_tanggal_2);
            })
            ->when(!$filter_tanggal_1 && !$filter_tanggal_2, function ($query) {
                return $query->whereDate('tanggal_pesanan', Carbon::today());
            })
            ->orderBy('tanggal_pesanan', 'desc')
            ->get();

        return datatables()
            ->of($data)
            ->addColumn('nomor', function ($data) use (&$nomor) {
                return $nomor++;
            })
            ->addColumn('nama_pemesan', function ($data) {
                $nomor = $data->nomor_pemesan != null ? '(' . $data->nomor_pemesan . ')' : '';
                return $data->nama_pemesan . ' ' . $nomor;
            })
            ->addColumn('nomor_meja', function ($data) {
                return $data->nomor_meja != null ? $data->nomor_meja : '-';
            })
            ->addColumn('created_at', function ($data) {
                return \Carbon\Carbon::parse($data->created_at)->format('d F Y H:i:s');
            })
            ->addColumn('total_bayar_rp', function ($data) {
                return 'Rp ' . number_format($data->total_bayar, 0, ',', '.');
            })
            ->addColumn('grand_total_rp', function ($data) {
                return 'Rp ' . number_format($data->grand_total, 0, ',', '.');
            })
            ->addColumn('ubah', function ($data) {
                return '<div class="btn-group">
                    <a href="javascript:void(0)" onclick="detail(\'' . $data->id . '\')"><span class="btn btn-xs btn-warning mr-1"><i class="fas fa-eye"></i></span></a>
                    <a href="javascript:void(0)" onclick="print(\'' . $data->id . '\')"><span class="btn btn-xs btn-success"><i class="fas fa-print"></i></span></a></div>';
            })
            ->rawColumns(['nomor', 'nama_user', 'created_at', 'grand_total', 'ubah'])
            ->make(true);
    }

    public function print($id)
    {
        $pesanan = \App\Models\Pesanan::with('detailPesanan', 'user')->find($id);

        return view('pages.Kasir.print_dapur', compact('pesanan'));
    }

    public function getDataDetailHistory(Request $request)
    {
        $data = Pesanan::with('detailPesanan')->find($request->id_pesanan);

        return response()->json(['status' => true, 'data' => $data]);
    }
}