<?php

namespace App\Http\Controllers;

use App\Models\MenuModel;
use App\Models\TransaksiModel;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

class LaporanController extends Controller
{
    function index(){
        $dataNonTunai = TransaksiModel::all();
    
        // Mengambil semua transaksi dengan metode bayar "Tunai"
        $transaksiTunai = TransaksiModel::where('metode_bayar', 'Tunai')->get();
    
        // Menghitung total ppn untuk transaksi dengan metode bayar "Tunai" dan kode_pesanan yang unik
        $TotalPpnTunai = $transaksiTunai->groupBy('kode_pesanan')->reduce(function ($carry, $group) {
            return $carry + $group->first()->ppn;
        }, 0);
    
        // Mengambil semua transaksi dengan metode bayar non-tunai
        $transaksiNonTunai = TransaksiModel::whereIn('metode_bayar', [
            'Debit BCA', 'Debit Mandiri', 'Debit BNI', 'Debit BRI', 
            'Debit CIMB NIAGA', 'GOPAY', 'OVO', 'QRIS', 'Transfer'
        ])->get();
    
        // Menghitung total ppn untuk transaksi dengan metode bayar non-tunai dan kode_pesanan yang unik
        $TotalPpnNonTunai = $transaksiNonTunai->groupBy('kode_pesanan')->reduce(function ($carry, $group) {
            return $carry + $group->first()->ppn;
        }, 0);
    
        return view('Laporan/index', compact('dataNonTunai', 'TotalPpnTunai', 'TotalPpnNonTunai'));
    }

    function laporanHarian() {
        
        $tanggalHariIni = Carbon::today(); // Mendapatkan tanggal hari ini
        
        // Mengambil transaksi non-tunai hanya untuk tanggal hari ini
        $dataTransaksi = TransaksiModel::whereIn('metode_bayar', [
            'Debit BCA', 'Debit Mandiri', 'Debit BNI', 'Debit BRI', 
            'Debit CIMB NIAGA', 'GOPAY', 'OVO', 'QRIS', 'Transfer'
        ])->whereDate('created_at', $tanggalHariIni)->get();
        
       $dataPenjualanHarian = TransaksiModel::whereDate('created_at', Carbon::today())
        ->select('pesanan','metode_bayar','jenis_pesanan','nama_pemesan','no_hp_customer', DB::raw('SUM(qty) as qty'))
        ->groupBy('pesanan','metode_bayar','jenis_pesanan','nama_pemesan','no_hp_customer')
        ->get();

        $TotalTransaksi = TransaksiModel::whereDate('created_at',Carbon::today())
        ->sum('qty');
        
        // $PTTehPoci = TransaksiModel::whereIn('pesanan',['Teh Poci'])->whereDate('created_at', $tanggalHariIni)->sum('qty');
        return view('laporan/LaporanHarian', compact('dataTransaksi','TotalTransaksi','dataPenjualanHarian'));
    }

    function laporanBulanan(){

        $tanggalHariIni = Carbon::today(); // Mendapatkan tanggal hari ini
        $BulanIni = Carbon::now()->month();
        
        // Mengambil transaksi non-tunai hanya untuk tanggal hari ini
        $dataTransaksi = TransaksiModel::whereIn('metode_bayar', [
            'Debit BCA', 'Debit Mandiri', 'Debit BNI', 'Debit BRI', 
            'Debit CIMB NIAGA', 'GOPAY', 'OVO', 'QRIS', 'Transfer'
        ])->whereDate('created_at', $tanggalHariIni)->get();
        
       $dataPenjualanBulanan = TransaksiModel::whereYear('created_at', Carbon::now()->year)
        ->whereMonth('created_at', Carbon::now()->month)
        ->select('pesanan','metode_bayar','jenis_pesanan','nama_pemesan','no_hp_customer', DB::raw('SUM(qty) as qty'))
        ->groupBy('pesanan','metode_bayar','jenis_pesanan','nama_pemesan','no_hp_customer')
        ->get();
        
      $TotalTransaksi = TransaksiModel::whereYear('created_at', Carbon::now()->year)
        ->whereMonth('created_at', Carbon::now()->month)
        ->sum('qty');
        
        // dd('TotalTransaksi');
        return view('Laporan/LaporanBulanan',compact('TotalTransaksi','dataPenjualanBulanan','dataTransaksi'));
    }
}
