Anons79 Mini Shell

Directory : /home/aplikasiposinfo/.trash/app.2/Traits/
Upload File :
Current File : /home/aplikasiposinfo/.trash/app.2/Traits/HomeController.php

<?php

namespace App\Http\Controllers;

use Carbon\Carbon;
use App\Models\User;
use App\Models\Target;
use App\Models\Tagihan;
use App\Models\Pelanggan;
use App\Models\Pembayaran;
use Illuminate\Http\Request;
use App\Models\TagihanPemasangan;
use Illuminate\Support\Facades\DB;
use App\Models\PembayaranPemasangan;
use Illuminate\Support\Facades\Auth;

class HomeController extends Controller
{
    public function index(Request $request)
    {
        if(Auth::user()->roles->first()->name == "Admin"){
            if($request->years){
                $pelanggan = User::whereYear('created_at', '=', $request->years)->count();
                $tagihan = Tagihan::whereYear('created_at', '=', $request->years)->count();
                $pembayaran = Tagihan::whereYear('created_at', '=', $request->years)->where('status', 2)->count();
                $pembayaran_telat = Tagihan::whereYear('created_at', '=', $request->years)->whereIn('status', [0, 1])->count();
            } else {
                $pelanggan = User::count();
                $tagihan = Tagihan::count();
                $pembayaran = Tagihan::where('status', 2)->count();
                $pembayaran_telat = Tagihan::whereIn('status', [0, 1])->count();
            }
        } else {
            if($request->years){
            $pelanggan = User::whereYear('created_at', '=', $request->years)->where('daerah_id', Auth::user()->daerah_id)->count();
            $tagihan = Tagihan::join("pelanggans", 'pelanggans.id', '=', 'tagihans.pelanggan_id')->whereYear('tagihans.created_at', '=', $request->years)->where("pelanggans.daerah_id", Auth::user()->daerah_id)->count();
            $pembayaran = Tagihan::join("pelanggans", 'pelanggans.id', '=', 'tagihans.pelanggan_id')->whereYear('tagihans.created_at', '=', $request->years)->where("pelanggans.daerah_id", Auth::user()->daerah_id)->where('status', 2)->count();
            $pembayaran_telat = Tagihan::join("pelanggans", 'pelanggans.id', '=', 'tagihans.pelanggan_id')->whereYear('tagihans.created_at', '=', $request->years)->where("pelanggans.daerah_id", Auth::user()->daerah_id)->whereIn('status', [0, 1])->count();
            } else {
                $pelanggan = User::where('daerah_id', Auth::user()->daerah_id)->count();
            $tagihan = Tagihan::join("pelanggans", 'pelanggans.id', '=', 'tagihans.pelanggan_id')->where("pelanggans.daerah_id", Auth::user()->daerah_id)->count();
            $pembayaran = Tagihan::join("pelanggans", 'pelanggans.id', '=', 'tagihans.pelanggan_id')->where("pelanggans.daerah_id", Auth::user()->daerah_id)->where('status', 2)->count();
            $pembayaran_telat = Tagihan::join("pelanggans", 'pelanggans.id', '=', 'tagihans.pelanggan_id')->where("pelanggans.daerah_id", Auth::user()->daerah_id)->whereIn('status', [0, 1])->count();
            }
        }
        $datas1 =  Target::join('upt_daerahs', 'targets.id_daerah', '=', 'upt_daerahs.id')->select('targets.id', 'targets.target', 'targets.tahun', 'targets.realisasi', 'targets.created_at', 'upt_daerahs.nama_daerah')->get()->pluck('target', "nama_daerah");
        $datas2 =  Target::join('upt_daerahs', 'targets.id_daerah', '=', 'upt_daerahs.id')->select('targets.id', 'targets.target', 'targets.tahun', 'targets.realisasi', 'targets.created_at', 'upt_daerahs.nama_daerah')->get()->pluck('realisasi', "nama_daerah");
        $datasTotal = Target::sum('target');
        $chartTargets = $datas1->values();
        $chartLabels2 = $datas1->keys();
        $chartRealisasis = $datas2->values();
        $datasDivide = $datasTotal / 12;
        $divide = array_fill(1, 12, $datasDivide);
        $values = array_values($divide);
        $daftar_realisasi = DB::table("tagihans")->select(DB::raw("sum(jumlah_pembayaran) as sum"), DB::raw("DATE_FORMAT(tanggal_penerimaan, '%Y-%m') as date"), 'status')->where('status', '=', 2)->groupBy(DB::raw("DATE_FORMAT(tanggal_penerimaan, '%Y-%m')"), 'status')->orderBy(DB::raw("DATE_FORMAT(tanggal_penerimaan, '%Y-%m')"), "asc")->get();
        $chartData2 = $daftar_realisasi->values();
        if($request->years){
            $jumlah_pembayaran = Tagihan::whereYear('created_at', '=', $request->years)->sum('jumlah_pembayaran');
            $jumlah_hutang = Tagihan::whereYear('created_at', '=', $request->years)->where([['status', '=', 1]])->orWhere('status', 3)->sum('jumlah_pembayaran');
        } else{
            $jumlah_pembayaran = Tagihan::sum('jumlah_pembayaran');
            $jumlah_hutang = Tagihan::where([['status', '=', 1]])->orWhere('status', 3)->sum('jumlah_pembayaran');
        }
        // dd($jumlah_hutang, Tagihan::where([['status', 1]])->get());
        $daftar_pembayaran = DB::table("tagihans")->select(DB::raw("sum(jumlah_pembayaran) as sum"), DB::raw("DATE_FORMAT(created_at, '%M-%Y') as date"))->whereYear('created_at', date('Y'))->groupBy(DB::raw("DATE_FORMAT(created_at, '%M-%Y')"))->orderBy(DB::raw("DATE_FORMAT(created_at, '%M-%Y')"), "asc")->pluck("sum", "date");
        $chartLabels = $daftar_pembayaran->keys();
        $chartData = $daftar_pembayaran->values();
        // $daftar_hutang = DB::table("tagihans")->select(DB::raw("sum(jumlah_pembayaran) as sum"), DB::raw("DATE_FORMAT(created_at, %M-%Y) as date"))->whereNotIn()->whereYear("created_at", date("Y"))->groupBy(DB::raw("DATE_FORMAT(created_at, '$%M-%Y')"))->orderBy("created_at", "asc")->pluck("sum", "date");
        $jumlah_pembayaran_pemasangan = TagihanPemasangan::sum('jumlah_pembayaran');
        $jumlah_hutang_pemasangan = 0;

        $tagihan_pemasangan = TagihanPemasangan::all();

        $datas = Tagihan::doesntHave('pembayaran')->orderBy('created_at', 'DESC')->get();

        // $pembayaran_telat = Tagihan::whereIn('status', [0, 1])->count();

        // dd(Tagihan::whereIn('status', [0, 1])->get());

        // foreach($datas as $d){
        //     if($d->tanggal->format('Y-m-d') < date('Y-m-d')){
        //         $pembayaran_telat += 1;
        //     }
        // }
        $thisMonthBill = 0;
        $thisMonthVolume = 0;

        foreach ($tagihan_pemasangan as $tp) {
            $jumlah = $tp->pembayaran->sum('jumlah_pembayaran');

            if($jumlah < $tp->jumlah_pembayaran){
                $jumlah_hutang_pemasangan += $tp->jumlah_pembayaran - $jumlah;
            }else if($jumlah >= $tp->jumlah_pembayaran){
                // return "Sudah Lunas";
            }else{
                $jumlah_hutang_pemasangan += $tp->jumlah_pembayaran - $jumlah;
            }
        }

        $penggunaan = 0;
        $total_bayar = 0;
        $countLunas = 0;
        $countBayar = 0;
        $thisMonthBill = 0;
        $thisMonthVolume = 0;
        $countBayar = 0;
        $countLunas = 0;
        $totalRealisasi = Target::sum("realisasi");
        $user = Auth::user();
        if($user->roles->first()->name == "Pihak Wajib Pajak"){
            $user_id = Auth::user()->pelanggan;
            // dd($user_id,  DB::table('tagihans')->select(DB::raw("sum(jumlah_pembayaran + denda_harian + denda_admin) as sum"))->where('pelanggan_id', '=', 443)->where('status', "=", 2)->first()->sum);
            foreach($user_id as $user){
                $total_bayar += DB::table('tagihans')->select(DB::raw("sum(jumlah_pembayaran + denda_harian + denda_admin) as sum"))->where('pelanggan_id', '=', $user->id)->where('status', "=", 2)->first()->sum;
                $penggunaan += DB::table('tagihans')->select(DB::raw("sum(meter_penggunaan) as sum"))->where('pelanggan_id', '=', $user->id)->first()->sum;
                $thisMonthBill += DB::table('tagihans')->select(DB::raw("sum(jumlah_pembayaran + denda_harian + denda_admin) as sum"))->whereMonth("created_at", '=', Carbon::now()->format("m"))->where('pelanggan_id', '=', $user->id)->first()->sum;
                $thisMonthVolume += Tagihan::whereMonth('created_at', '=', Carbon::now())->where('pelanggan_id', '=', $user->id)->sum("meter_penggunaan");
                $countLunas += count(Tagihan::where("pelanggan_id", '=', $user->id)->where("status", '=', 2)->get());
                $countBayar += count(Tagihan::where(function($query) use($user){
                    $query->where('pelanggan_id', '=', $user->id)
                    ->where('status', '=', 1);
                })
                ->orWhere(function($query) use($user){
                    $query->where('pelanggan_id', '=', $user->id)
                    ->where('status', '=', 3);
                })
                ->orWhere(function($query) use($user){
                    $query->where('pelanggan_id', '=', $user->id)
                    ->where('status', '=', 5);
                })
                ->orWhere(function($query) use($user){
                    $query->where('pelanggan_id', '=', $user->id)
                    ->where('status', '=', 6);
                })
                ->get());
            }
        }
        // dd(Tagihan::where(function($query){
        //     $query->where('pelanggan_id', '=', Auth::user()->pelanggan->id)
        //     ->where('status', '=', 1);
        // })
        // ->orWhere(
        //     function($query){
        //         $query->where('pelanggan_id', '=', Auth::user()->pelanggan->id)
        //         ->where('status', '=', 0);
        //     }
        // )
        // ->orWhere(function($query){
        //     $query->where('pelanggan_id', '=', Auth::user()->pelanggan->id)
        //     ->where('status', '=', 3);
        // })
        // ->get(), Auth::user()->pelanggan->id);
        // dd($jumlah_pembayaran_pemasangan);

        // $pembayaran_telat = Pembayaran::join('tagihans','tagihans.id','=','pembayarans.tagihan_id')->join('pelanggans','pelanggans.id','=','tagihans.pelanggan_id')
        //     ->whereRaw(' pembayarans.tanggal > tagihans.tanggal')
        //     ->select('pembayarans.id','pembayarans.id_pembayaran','pelanggans.id_pelanggan','pelanggans.name','tagihans.jumlah_pembayaran','tagihans.id_tagihan','pembayarans.created_at','tagihan_id')->count();
        $yearStart = Carbon::now()->addYears(-1);
        $yearEnd = Carbon::now();
        $years_to_render = $yearStart->diffInYears($yearEnd);
        $years = [];

        for ($i = 0; $i <= $years_to_render; $i++) {
            $years[] = $yearStart->isoFormat('Y');
            $yearStart->addYears();
        }

        return view('index',compact('pelanggan','tagihan','pembayaran','pembayaran_telat','jumlah_pembayaran','jumlah_hutang','jumlah_pembayaran_pemasangan','jumlah_hutang_pemasangan', 'chartLabels', 'chartData', 'chartTargets', 'chartLabels2', 'chartRealisasis', 'values', "chartData2", "penggunaan", "total_bayar", 'thisMonthBill', 'thisMonthVolume', 'countLunas', 'countBayar', 'totalRealisasi', 'years'));
    }
    public function homepage(){
        $datas =  Target::join('upt_daerahs', 'targets.id_daerah', '=', 'upt_daerahs.id')->select('targets.id', 'targets.target', 'targets.tahun', 'targets.realisasi', 'targets.created_at', 'upt_daerahs.nama_daerah')->get()->pluck('target', "nama_daerah");
        $datas2 =  Target::join('upt_daerahs', 'targets.id_daerah', '=', 'upt_daerahs.id')->select('targets.id', 'targets.target', 'targets.tahun', 'targets.realisasi', 'targets.created_at', 'upt_daerahs.nama_daerah')->get()->pluck('realisasi', "nama_daerah");
        $datasTotal = Target::sum('target');
        $chartTargets = $datas->values();
        $chartLabels = $datas->keys();
        $chartRealisasis = $datas2->values();
        $datasDivide = $datasTotal / 12;
        $divide = array_fill(1, 12, $datasDivide);
        $values = array_values($divide);
         $daftar_realisasi = DB::table("tagihans")->select(DB::raw("sum(jumlah_pembayaran + denda_harian + denda_admin) as sum"), DB::raw("DATE_FORMAT(created_at, '%Y-%m') as date"))->whereYear('created_at', date('Y'))->groupBy(DB::raw("DATE_FORMAT(created_at, '%Y-%m')"))->orderBy(DB::raw("DATE_FORMAT(created_at, '%Y-%m')"), "asc")->where(DB::raw("status = 2"))->get();
        $chartData = $daftar_realisasi->values();
        return view('home-page', compact('chartTargets', 'chartLabels', 'chartRealisasis', 'values', "chartData"));
    }
}

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