diff --git a/app/Helpers/FormHelper.php b/app/Helpers/FormHelper.php index fad819b..3e59623 100644 --- a/app/Helpers/FormHelper.php +++ b/app/Helpers/FormHelper.php @@ -166,18 +166,17 @@ class FormHelper $userIds = $users->pluck('user_id')->toArray(); if($type == 'Up Country') { - $form = FormUpCountry::select('approved_total')->whereIn('user_id', $userIds)->whereMonth('tanggal', '=', date('m', strtotime($month)))->whereYear('tanggal', '=', $year); + $form = FormUpCountry::select('approved_total')->whereIn('user_id', $userIds)->whereMonth('tanggal', '=', date('m', strtotime($month)))->whereYear('tanggal', '=', $year)->where('status', ['Approved', 'Closed'])->get(); } else if($type == 'Vehicle Running Cost') { - $form = FormVehicleRunningCost::select('approved_total')->whereIn('user_id', $userIds)->whereMonth('tanggal', '=', date('m', strtotime($month)))->whereYear('tanggal', '=', $year); + $form = FormVehicleRunningCost::select('approved_total')->whereIn('user_id', $userIds)->whereMonth('tanggal', '=', date('m', strtotime($month)))->whereYear('tanggal', '=', $year)->where('status', ['Approved', 'Closed'])->get(); } else if($type == 'Entertainment') { - $form = FormEntertaimentPresentation::select('approved_total')->whereIn('user_id', $userIds)->whereMonth('tanggal', '=', date('m', strtotime($month)))->whereYear('tanggal', '=', $year); + $form = FormEntertaimentPresentation::select('approved_total')->whereIn('user_id', $userIds)->whereMonth('tanggal', '=', date('m', strtotime($month)))->whereYear('tanggal', '=', $year)->where('status', ['Approved', 'Closed'])->get(); } else if($type == 'Meeting / Seminar') { - $form = FormMeetingSeminar::select('approved_total')->whereIn('user_id', $userIds)->whereMonth('created_at', '=', date('m', strtotime($month)))->whereYear('created_at', '=', $year); + $form = FormMeetingSeminar::select('approved_total')->whereIn('user_id', $userIds)->whereMonth('created_at', '=', date('m', strtotime($month)))->whereYear('created_at', '=', $year)->where('status', ['Approved', 'Closed'])->get(); } else { - $form = FormOthers::select('approved_total')->whereIn('user_id', $userIds)->whereMonth('tanggal', '=', date('m', strtotime($month)))->whereYear('tanggal', '=', $year)->where('kategori_id', $type_id); + $form = FormOthers::select('approved_total')->whereIn('user_id', $userIds)->whereMonth('tanggal', '=', date('m', strtotime($month)))->whereYear('tanggal', '=', $year)->where('kategori_id', $type_id)->where('status', ['Approved', 'Closed'])->get(); } - $nominal = $form->sum('approved_total'); return $nominal; } diff --git a/app/Http/Controllers/Backend/DashboardController.php b/app/Http/Controllers/Backend/DashboardController.php index eaa10f4..1d353f1 100644 --- a/app/Http/Controllers/Backend/DashboardController.php +++ b/app/Http/Controllers/Backend/DashboardController.php @@ -24,32 +24,32 @@ class DashboardController extends Controller $forms = [ 'vehicle' => FormVehicleRunningCost::whereMonth('tanggal', date('m')) ->whereYear('tanggal', date('Y')) - ->where('tanggal', '<=', date('Y-m-10')) - ->whereRaw('DAY(CURDATE()) <= 10') + ->where('tanggal', '<=', date('Y-m-20')) + ->whereRaw('DAY(CURDATE()) <= 20') ->orderBy('tanggal', 'desc') ->get(), 'upcountry' => FormUpCountry::whereMonth('tanggal', date('m')) ->whereYear('tanggal', date('Y')) - ->where('tanggal', '<=', date('Y-m-10')) - ->whereRaw('DAY(CURDATE()) <= 10') + ->where('tanggal', '<=', date('Y-m-20')) + ->whereRaw('DAY(CURDATE()) <= 20') ->orderBy('tanggal', 'desc') ->get(), 'entertainment' => FormEntertaimentPresentation::whereMonth('tanggal', date('m')) ->whereYear('tanggal', date('Y')) - ->where('tanggal', '<=', date('Y-m-10')) - ->whereRaw('DAY(CURDATE()) <= 10') + ->where('tanggal', '<=', date('Y-m-20')) + ->whereRaw('DAY(CURDATE()) <= 20') ->orderBy('tanggal', 'desc') ->get(), 'meeting' => FormMeetingSeminar::whereMonth('created_at', date('m')) ->whereYear('created_at', date('Y')) - ->where('created_at', '<=', date('Y-m-10')) - ->whereRaw('DAY(CURDATE()) <= 10') + ->where('created_at', '<=', date('Y-m-20')) + ->whereRaw('DAY(CURDATE()) <= 20') ->orderBy('created_at', 'desc') ->get(), 'others' => FormOthers::whereMonth('tanggal', date('m')) ->whereYear('tanggal', date('Y')) - ->where('tanggal', '<=', date('Y-m-10')) - ->whereRaw('DAY(CURDATE()) <= 10') + ->where('tanggal', '<=', date('Y-m-20')) + ->whereRaw('DAY(CURDATE()) <= 20') ->orderBy('tanggal', 'desc') ->get(), ]; diff --git a/app/Http/Controllers/Backend/ReportController.php b/app/Http/Controllers/Backend/ReportController.php index f71f141..2df23f7 100644 --- a/app/Http/Controllers/Backend/ReportController.php +++ b/app/Http/Controllers/Backend/ReportController.php @@ -19,6 +19,8 @@ use App\Helpers\FormHelper; use App\Helpers\BudgetHelper; use Illuminate\Support\Carbon; use Illuminate\Support\Facades\Schema; +use App\Models\Kategori; +use App\Models\BudgetControlLog; class ReportController extends Controller { @@ -631,4 +633,60 @@ class ReportController extends Controller 'availableBudget' => $availableBudget ]); } + + public function jurnal() + { + $role = auth()->user()->getRoleNames()[0]; + $cabangs = []; + + if ($role == 'Admin Region' || $role == 'Marketing Operational Manager Region') { + $region_id = auth()->user()->getMyCabangAndRegionId()['region']; + + if ($region_id) { + $cabangs = Cabang::where('region_id', $region_id)->get(); + } + } else if ($role == 'Area Manager Cabang') { + $cabang_id = auth()->user()->getMyCabangAndRegionId()['cabang']; + + if ($cabang_id) { + $cabangs = Cabang::where('id', $cabang_id)->get(); + } + } else if ($role == 'Medical Representatif') { + $cabangs = null; + } else { + $cabangs = Cabang::all(); + } + + return view('backend.pages.report.jurnal', [ + 'pageInfo' => [ + 'title' => 'Generate Reports For Jurnal', + ], + 'cabang' => $cabangs, + ]); + } + + public function generateJurnal() { + $params = request()->all(); + + $kategoris = Kategori::all(); + $kategori_bca = Kategori::where('name', 'Cash in Bank BCA')->first(); + $cabang = Cabang::with('cost')->where('code', $params['cabang'])->first(); + + $year = $params['year']; + $month = $params['month']; + + $budget = BudgetControlLog::where('cabang_id', $cabang->id)->where('periode_year', $year)->where('periode_month', $month)->orderBy('created_at', 'desc')->first(); + + return view('backend.pages.report.generate_jurnal', [ + 'pageInfo' => [ + 'title' => 'Generate Reports For Jurnal', + ], + 'kategori' => $kategoris, + 'cabang' => $cabang, + 'year' => $year, + 'month' => $month, + 'budget' => $budget, + 'kategori_bca' => $kategori_bca + ]); + } } diff --git a/resources/views/backend/pages/report/generate_jurnal.blade.php b/resources/views/backend/pages/report/generate_jurnal.blade.php new file mode 100644 index 0000000..3ca55a3 --- /dev/null +++ b/resources/views/backend/pages/report/generate_jurnal.blade.php @@ -0,0 +1,154 @@ +@extends('layouts.app') + +@section('title') + {{ $pageInfo['title'] }} +@endsection + +@section('admin-content') +
+
+
+
+

{{ $pageInfo['title'] }}

+
+
+ +
+
+
+
+
+
+
    +
  • Cabang: {{ $cabang->name }}
  • +
  • Periode: {{ ucfirst($month) }} {{ $year }}
  • +
  • Cost Centre {{ $cabang->cost->code }}
  • +
+
+
+
+
+
+
+ + @php + use App\Helpers\FormHelper; + @endphp + +
+
+ +
+
+
+
+
+ @include('backend.layouts.partials.messages') +
+ + + + + + + + + + + + + @php + $totalDr = 0; + $totalCr = 0; + @endphp + @foreach ($kategori as $item) + @php + $drValue = FormHelper::getNominalByFormType($cabang->id, $item->name, $item->id, $month, $year); + $drFormatted = $drValue == 0 ? '' : number_format($drValue, 0, ',', '.'); + $totalDr += $drValue; + @endphp + + + + + + + + @endforeach + + + + + + + + + + {{-- Static Rows --}} + + + + + + + + + + + + + + + + + + + + + + + +
#TypeAccount NumberDrCr
{{ $loop->iteration }}{{ $item->name }}{{ $item->account_number }}{{ $drFormatted }}
{{ $kategori->count() + 1 }}Petty Cash + @php + $crValue = $budget && $budget->amount != 0 ? $budget->amount : 0; + $totalCr += $crValue; + echo $crValue == 0 ? '' : number_format($crValue, 0, ',', '.'); + @endphp +
{{ $kategori->count() + 2 }}Cash Advance (Opening Balance){{ $kategori_bca->account_number }} + @php + $totalCr += 500000; + @endphp + {{ number_format(500000, 0, ',', '.') }} +
{{ $kategori->count() + 3 }}Cash Advance (Ending Balance){{ $kategori_bca->account_number }} + @php + $totalDr += 500000; + @endphp + {{ number_format(500000, 0, ',', '.') }} +
Total{{ number_format($totalDr, 0, ',', '.') }}{{ number_format($totalCr, 0, ',', '.') }}
+
+
+
+
+
+
+
+
+@endsection + +@section('scripts') + +@endsection diff --git a/resources/views/backend/pages/report/jurnal.blade.php b/resources/views/backend/pages/report/jurnal.blade.php new file mode 100644 index 0000000..0df8b94 --- /dev/null +++ b/resources/views/backend/pages/report/jurnal.blade.php @@ -0,0 +1,89 @@ +@extends('layouts.app') + +@section('title') + {{ $pageInfo['title'] }} +@endsection + +@section('admin-content') +
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+ + +
+
+ +
+
+ + +
+
+ +
+ +
+
+ + Reset +
+
+
+
+
+
+
+
+
+@endsection + +@section('scripts') + +@endsection diff --git a/routes/web.php b/routes/web.php index c08b5a5..3dd5c67 100644 --- a/routes/web.php +++ b/routes/web.php @@ -109,6 +109,9 @@ Route::middleware(['auth:admin', 'menu'])->group(function () { Route::get('/meeting', [ReportController::class, 'meeting'])->name('reports.meeting'); Route::get('/others', [ReportController::class, 'others'])->name('reports.others'); Route::get('/all', [ReportController::class, 'all'])->name('reports.all'); + + Route::get('/jurnal', [ReportController::class, 'jurnal'])->name('reports.jurnal'); + Route::get('/generateJurnal', [ReportController::class, 'generateJurnal'])->name('reports.jurnal.generate'); }); // Forms