Merged in afiqhamzah/feat/add-laporan-keseluruhan-ringkasan-harian (pull request #13)
Add frontend on report ringkasan harian
This commit is contained in:
@@ -0,0 +1,139 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Reports;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Barryvdh\DomPDF\Facade as PDF;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Http;
|
||||||
|
use App\Helper;
|
||||||
|
|
||||||
|
class RingkasanHarianController extends Controller
|
||||||
|
{
|
||||||
|
public function index(Request $request)
|
||||||
|
{
|
||||||
|
$current = new Carbon();
|
||||||
|
|
||||||
|
$getReportDate = function ($date_string) use ($current) {
|
||||||
|
if ($date_string == null) {
|
||||||
|
return $current->toDateString();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $date_string;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
$request->hostname = config('api.url');
|
||||||
|
|
||||||
|
$ringkasanHarian = Http::get($request->hostname . '/api/reports/ringkasan-harian', [
|
||||||
|
'startDate' => $getReportDate($request->startDate),
|
||||||
|
'endDate' => $getReportDate($request->endDate),
|
||||||
|
])->json();
|
||||||
|
|
||||||
|
$startDate = $getReportDate($request->startDate);
|
||||||
|
$endDate = $getReportDate($request->endDate);
|
||||||
|
|
||||||
|
return view('reports.ringkasan-harian.index', compact('ringkasanHarian', 'startDate', 'endDate'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function downloadRingkasanHarianPdf($kod_cawangan, Request $request)
|
||||||
|
{
|
||||||
|
$api_url = $request->hostname;
|
||||||
|
$api_url = config('api.url');
|
||||||
|
|
||||||
|
$auth_user = Auth::user();
|
||||||
|
$current = Carbon::now();
|
||||||
|
$current = new Carbon();
|
||||||
|
$tarikh_cetak = $current->toDateString();
|
||||||
|
|
||||||
|
if ($request->dateringkasanharian == null) {
|
||||||
|
$ringkasan_date = $current->toDateString();
|
||||||
|
} else {
|
||||||
|
$split_date = explode('-', $request->dateringkasanharian);
|
||||||
|
$ringkasan_date = $split_date[2] . '-' . $split_date[1] . '-' . $split_date[0];
|
||||||
|
$ringkasan_date = $request->dateringkasanharian;
|
||||||
|
}
|
||||||
|
|
||||||
|
$cawangan = Http::get($api_url . '/api/cawangan/detail/' . $kod_cawangan)->json();
|
||||||
|
|
||||||
|
$laporan_ringkasan = Http::get($api_url . '/api/reports/ringkasan-harian/' . $kod_cawangan, [
|
||||||
|
'startDate' => $request->startDate,
|
||||||
|
'endDate' => $request->endDate,
|
||||||
|
])->json();
|
||||||
|
|
||||||
|
$kawalanstok = Http::get($api_url . '/api/reports/kawalan-stok/' . $kod_cawangan, [
|
||||||
|
'startDate' => $request->startDate,
|
||||||
|
'endDate' => $request->endDate,
|
||||||
|
])->json();
|
||||||
|
|
||||||
|
$laporan = $laporan_ringkasan[0];
|
||||||
|
|
||||||
|
/* Kawalan Stok */
|
||||||
|
//Gadai
|
||||||
|
$totalbilgadaikeseluruhan = $kawalanstok[0]['gadai1'][0]['bil'] + $kawalanstok[0]['gadai2'][0]['bil'] + $kawalanstok[0]['gadai3'][0]['bil'];
|
||||||
|
$totalbilgadaisehari = $kawalanstok[0]['gadaiini1'][0]['bil'] + $kawalanstok[0]['gadaiini2'][0]['bil'] + $kawalanstok[0]['gadaiini3'][0]['bil'];
|
||||||
|
$totalbilgadai = $totalbilgadaikeseluruhan + $totalbilgadaisehari;
|
||||||
|
|
||||||
|
$totalpinjgadaikeseluruhan = $kawalanstok[0]['gadai1'][0]['pinj'] + $kawalanstok[0]['gadai2'][0]['pinj'] + $kawalanstok[0]['gadai3'][0]['pinj'];
|
||||||
|
$totalpinjgadaisehari = $kawalanstok[0]['gadaiini1'][0]['pinj'] + $kawalanstok[0]['gadaiini2'][0]['pinj'] + $kawalanstok[0]['gadaiini3'][0]['pinj'];
|
||||||
|
$totalpinjgadai = $totalpinjgadaikeseluruhan + $totalpinjgadaisehari;
|
||||||
|
|
||||||
|
//Tebus
|
||||||
|
$totalbiltebuskeseluruhan = $kawalanstok[1]['tebus1'][0]['bil'] + $kawalanstok[1]['tebus2'][0]['bil'] + $kawalanstok[1]['tebus3'][0]['bil'];
|
||||||
|
$totalbiltebussehari = $kawalanstok[1]['tebusini1'][0]['bil'] + $kawalanstok[1]['tebusini2'][0]['bil'] + $kawalanstok[1]['tebusini3'][0]['bil'];
|
||||||
|
$totalbiltebus = $totalbiltebuskeseluruhan + $totalbiltebussehari;
|
||||||
|
|
||||||
|
$totalpinjtebuskeseluruhan = $kawalanstok[1]['tebus1'][0]['pinj'] + $kawalanstok[1]['tebus2'][0]['pinj'] + $kawalanstok[1]['tebus3'][0]['pinj'];
|
||||||
|
$totalpinjtebussehari = $kawalanstok[1]['tebusini1'][0]['pinj'] + $kawalanstok[1]['tebusini2'][0]['pinj'] + $kawalanstok[1]['tebusini3'][0]['pinj'];
|
||||||
|
$totalpinjtebus = $totalpinjtebuskeseluruhan + $totalpinjtebussehari;
|
||||||
|
|
||||||
|
//Ansuran
|
||||||
|
|
||||||
|
$totalbilanskeseluruhan = $kawalanstok[4]['ans1']['bil'] + $kawalanstok[4]['ans2']['bil'] + $kawalanstok[4]['ans3']['bil'];
|
||||||
|
$totalbilanssehari = $kawalanstok[4]['ansini1']['bil'] + $kawalanstok[4]['ansini2']['bil'] + $kawalanstok[4]['ansini3']['bil'];
|
||||||
|
$totalbilans = $totalbilanskeseluruhan + $totalbilanssehari;
|
||||||
|
|
||||||
|
$totalpinjanskeseluruhan = $kawalanstok[4]['ans1']['pinj'] + $kawalanstok[4]['ans2']['pinj'] + $kawalanstok[4]['ans3']['pinj'];
|
||||||
|
$totalpinjanssehari = $kawalanstok[4]['ansini1']['pinj'] + $kawalanstok[4]['ansini2']['pinj'] + $kawalanstok[4]['ansini3']['pinj'];
|
||||||
|
$totalpinjans = floatval($totalpinjanskeseluruhan + $totalpinjanssehari);
|
||||||
|
|
||||||
|
//Lelong
|
||||||
|
$totalbillelongkeseluruhan = $kawalanstok[2]['lelong1'][0]['bil'] + $kawalanstok[2]['lelong2'][0]['bil'] + $kawalanstok[2]['lelong3'][0]['bil'];
|
||||||
|
$totalbillelongsehari = $kawalanstok[2]['lelongini1'][0]['bil'] + $kawalanstok[2]['lelongini2'][0]['bil'] + $kawalanstok[2]['lelongini3'][0]['bil'];
|
||||||
|
$totalbillelong = $totalbillelongkeseluruhan + $totalbillelongsehari;
|
||||||
|
|
||||||
|
$totalpinjlelongkeseluruhan = $kawalanstok[2]['lelong1'][0]['pinj'] + $kawalanstok[2]['lelong2'][0]['pinj'] + $kawalanstok[2]['lelong3'][0]['pinj'];
|
||||||
|
$totalpinjlelongsehari = $kawalanstok[2]['lelongini1'][0]['pinj'] + $kawalanstok[2]['lelongini2'][0]['pinj'] + $kawalanstok[2]['lelongini3'][0]['pinj'];
|
||||||
|
$totalpinjlelong = floatval($totalpinjlelongkeseluruhan + $totalpinjlelongsehari);
|
||||||
|
|
||||||
|
$totalbilhapuskirakeseluruhan = $kawalanstok[3]['hapuskira1'][0]['bil'] + $kawalanstok[3]['hapuskira2'][0]['bil'] + $kawalanstok[3]['hapuskira3'][0]['bil'];
|
||||||
|
$totalbilhapuskirasehari = $kawalanstok[3]['hapuskiraini1'][0]['bil'] + $kawalanstok[3]['hapuskiraini2'][0]['bil'] + $kawalanstok[3]['hapuskiraini3'][0]['bil'];
|
||||||
|
$totalbilhapuskira = $totalbilhapuskirakeseluruhan + $totalbilhapuskirasehari;
|
||||||
|
|
||||||
|
$totalpinjhapuskirakeseluruhan = $kawalanstok[3]['hapuskira1'][0]['pinj'] + $kawalanstok[3]['hapuskira2'][0]['pinj'] + $kawalanstok[3]['hapuskira3'][0]['pinj'];
|
||||||
|
$totalpinjhapuskirasehari = $kawalanstok[3]['hapuskiraini1'][0]['pinj'] + $kawalanstok[3]['hapuskiraini2'][0]['pinj'] + $kawalanstok[3]['hapuskiraini3'][0]['pinj'];
|
||||||
|
$totalpinjhapuskira = $totalpinjhapuskirakeseluruhan + $totalpinjhapuskirasehari;
|
||||||
|
|
||||||
|
$totalbilkawalanstok = $totalbilgadai - $totalbiltebus /*-$totalbilans*/ - $totalbillelong - $totalbilhapuskira;
|
||||||
|
$totalpinjkawalanstok = $totalpinjgadai - $totalpinjtebus - $totalpinjans - $totalpinjlelong - $totalpinjhapuskira;
|
||||||
|
|
||||||
|
$report_data = [
|
||||||
|
'cawangan_detail' => $cawangan[0],
|
||||||
|
'tarikh_cetak' => Helper::formatDate(Carbon::now()),
|
||||||
|
'ringkasan_date' => sprintf('%s hingga %s', Helper::formatDate($request->startDate), Helper::formatDate($request->endDate)),
|
||||||
|
'api_url' => url()->current(),
|
||||||
|
'laporan' => $laporan,
|
||||||
|
'totalbilkawalanstok' => $totalbilkawalanstok,
|
||||||
|
'totalpinjkawalanstok' => $totalpinjkawalanstok,
|
||||||
|
];
|
||||||
|
|
||||||
|
if ($request->jenis == 'pdf') {
|
||||||
|
$pdf = PDF::loadView('akaun.laporan_ringkasanharian', $report_data)->setPaper('a4', 'landscape');
|
||||||
|
return $pdf->download('laporan_ringkasanharian_' . $request->kodcaw . '_' . $ringkasan_date . '.pdf');
|
||||||
|
} else {
|
||||||
|
return view('akaun.laporan_ringkasanharian', $report_data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -31,6 +31,12 @@
|
|||||||
<h2 class="mx-auto text-center font-bold text-2xl uppercase">Ansuran</h2>
|
<h2 class="mx-auto text-center font-bold text-2xl uppercase">Ansuran</h2>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
<div
|
||||||
|
class="bg-white ml-2 shadow border border-solid px-6 py-4 rounded-lg hover:bg-yellow-300 hover:transition-all mb-2 cursor-pointer">
|
||||||
|
<a href="{{ route('reports.ringkasan-harian.index', ['startDate' => now()->toDateString(), 'endDate' => now()->toDateString()]) }}" class="">
|
||||||
|
<h2 class="mx-auto text-center font-bold text-2xl uppercase">Ringkasan Harian</h2>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -0,0 +1,135 @@
|
|||||||
|
@extends('layouts.app')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
<div class="bg-gray-900 opacity-50 hidden fixed inset-0 z-10" id="sidebarBackdrop"></div>
|
||||||
|
<div id="main-content" class="h-full w-full bg-gray-50 relative overflow-y-auto">
|
||||||
|
<main>
|
||||||
|
|
||||||
|
<div class="pt-6 px-4">
|
||||||
|
|
||||||
|
<breadcrumb
|
||||||
|
:items="[{ 'title': 'Laporan', 'icon': 'fas fa-users' },
|
||||||
|
{ 'title': 'Ringkasan Harian', 'icon': 'fas fa-users' }
|
||||||
|
]">
|
||||||
|
</breadcrumb>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<div class="flex w-full">
|
||||||
|
<div class="xl:w-2/3 2xl:w-1/2 p-8 mx-auto">
|
||||||
|
<div class="bg-yellow-600 text-gray-200 text-lg px-6 py-4 rounded-t-lg"><a href="/akaunhome"
|
||||||
|
class="router-link-active"><i class="fas fa-backspace text-white"></i></a> <span
|
||||||
|
class="text-center mx-auto text-white font-bold">Laporan Ringkasan Harian</span></div>
|
||||||
|
<form method="get" id="formRingkasanHarian"
|
||||||
|
action="{{ route('reports.ringkasan-harian.index') }}">
|
||||||
|
<div class="rounded bg-white shadow p-6">
|
||||||
|
<div class="pb-6"><label for="username"
|
||||||
|
class="font-semibold text-gray-700 block pb-1">Tarikh</label>
|
||||||
|
<div class="flex">
|
||||||
|
<span
|
||||||
|
class="text-gray-600 border border-2 rounded-l px-4 py-2 whitespace-no-wrap"
|
||||||
|
style="background-color: rgb(249, 250, 251);">Mula</span>
|
||||||
|
<input id="tarikhmula" name="startDate" type="date"
|
||||||
|
value="{{ request()->startDate ?? $startDate }}"
|
||||||
|
class="border border-2 border-l-0 rounded-r px-4 py-2 w-80r mr-2">
|
||||||
|
<span
|
||||||
|
class="text-gray-600 border border-2 rounded-l px-4 py-2 whitespace-no-wrap"
|
||||||
|
style="background-color: rgb(249, 250, 251);">Hingga</span>
|
||||||
|
<input id="tarikhhingga" name="endDate" type="date"
|
||||||
|
value="{{ request()->endDate ?? $endDate }}"
|
||||||
|
class="border border-2 border-l-0 rounded-r px-4 py-2 w-80r mr-2">
|
||||||
|
<button
|
||||||
|
class="border border-yellow-600 text-yellow-600 font-montserrat py-2 px-8 font-medium rounded-xl hover:bg-yellow-600 hover:text-white transition-all duration-300 ml-5">
|
||||||
|
<i class="fas fa-eye mr-2"></i>View
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div kodcaw="operasi">
|
||||||
|
<div><!----> <!----></div>
|
||||||
|
<div><!----> <!----></div>
|
||||||
|
<div class="flex justify-between mb-2">
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<table class="min-w-full leading-normal">
|
||||||
|
<thead class="text-center">
|
||||||
|
<tr>
|
||||||
|
<th
|
||||||
|
class="px-5 py-3 border-b-2 border-gray-200 bg-gray-100 text-left text-xs font-semibold text-gray-600 uppercase tracking-wider">
|
||||||
|
No
|
||||||
|
</th>
|
||||||
|
<th
|
||||||
|
class="px-5 py-3 border-b-2 border-gray-200 bg-gray-100 text-left text-xs font-semibold text-gray-600 uppercase tracking-wider">
|
||||||
|
Kod Cawangan
|
||||||
|
</th>
|
||||||
|
<th
|
||||||
|
class="px-5 py-3 border-b-2 border-gray-200 bg-gray-100 text-left text-xs font-semibold text-gray-600 uppercase tracking-wider">
|
||||||
|
Cawangan
|
||||||
|
</th>
|
||||||
|
<th
|
||||||
|
class="px-5 py-3 border-b-2 border-gray-200 bg-gray-100 text-left text-xs font-semibold text-gray-600 uppercase tracking-wider">
|
||||||
|
Action
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@forelse ($ringkasanHarian as $data)
|
||||||
|
<tr>
|
||||||
|
<td class="px-5 py-5 border-b border-gray-200 bg-white text-sm">
|
||||||
|
<div class="flex items-center">
|
||||||
|
<div class="ml-3">
|
||||||
|
<p class="text-gray-900 whitespace-no-wrap">{{ $loop->iteration }}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td class="px-5 py-5 border-b border-gray-200 bg-white text-sm">
|
||||||
|
<div class="flex items-center">
|
||||||
|
<div class="ml-3">
|
||||||
|
<p class="text-gray-900 whitespace-no-wrap">{{ $data['kodcaw'] }}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td class="px-5 py-5 border-b border-gray-200 bg-white text-sm">
|
||||||
|
<div class="flex items-center">
|
||||||
|
<div class="ml-3">
|
||||||
|
<p class="text-gray-900 whitespace-no-wrap">{{ $data['details_caw'] }}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td class="px-5 py-5 border-b border-gray-200 bg-white text-sm">
|
||||||
|
<div class="flex items-center">
|
||||||
|
<div class="ml-3">
|
||||||
|
<a href="{{ route('reports.ringkasan-harian.cawangan.pdf', [$data['kodcaw'], 'startDate' => request()->startDate, 'endDate' => request()->endDate]) }}"
|
||||||
|
target="_blank" rel="noopener noreferrer"
|
||||||
|
class="flex border border-blue-600 text-blue-600 font-montserrat py-2 px-4 font-medium rounded-xl hover:bg-blue-600 hover:text-white transition-all duration-300">
|
||||||
|
<i class="fas fa-download mr-2"></i>Download
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
@empty
|
||||||
|
<tr>
|
||||||
|
<td colspan="6" class="px-5 py-5 border-b border-gray-200 bg-white text-sm">
|
||||||
|
<div class="flex items-center">
|
||||||
|
<div class="ml-3">
|
||||||
|
<p class="text-gray-900 whitespace-no-wrap">Data not available</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
@endforelse
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
@include('layouts.footer')
|
||||||
|
|
||||||
|
</div>
|
||||||
|
@endsection
|
||||||
@@ -3,6 +3,7 @@
|
|||||||
use App\Http\Controllers\Reports\GadaianController;
|
use App\Http\Controllers\Reports\GadaianController;
|
||||||
use App\Http\Controllers\Reports\PenebusanController;
|
use App\Http\Controllers\Reports\PenebusanController;
|
||||||
use App\Http\Controllers\Reports\AnsuranController;
|
use App\Http\Controllers\Reports\AnsuranController;
|
||||||
|
use App\Http\Controllers\Reports\RingkasanHarianController;
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
|
|
||||||
Route::middleware(['roleChecker:admin,akaun,operasi,kpo, null'])->group(function () {
|
Route::middleware(['roleChecker:admin,akaun,operasi,kpo, null'])->group(function () {
|
||||||
@@ -13,4 +14,6 @@ Route::middleware(['roleChecker:admin,akaun,operasi,kpo, null'])->group(function
|
|||||||
Route::get('penebusan/{kod_cawangan}', [PenebusanController::class, 'downloadPenebusanCawanganExcel'])->name('reports.penebusan.cawangan.excel');
|
Route::get('penebusan/{kod_cawangan}', [PenebusanController::class, 'downloadPenebusanCawanganExcel'])->name('reports.penebusan.cawangan.excel');
|
||||||
Route::get('ansuran', [AnsuranController::class, 'index'])->name('reports.ansuran.index');
|
Route::get('ansuran', [AnsuranController::class, 'index'])->name('reports.ansuran.index');
|
||||||
Route::get('ansuran/{kod_cawangan}', [AnsuranController::class, 'downloadAnsuranCawanganExcel'])->name('reports.ansuran.cawangan.excel');
|
Route::get('ansuran/{kod_cawangan}', [AnsuranController::class, 'downloadAnsuranCawanganExcel'])->name('reports.ansuran.cawangan.excel');
|
||||||
|
Route::get('ringkasan-harian', [RingkasanHarianController::class, 'index'])->name('reports.ringkasan-harian.index');
|
||||||
|
Route::get('ringkasan-harian/{kod_cawangan}', [RingkasanHarianController::class, 'downloadRingkasanHarianPdf'])->name('reports.ringkasan-harian.cawangan.pdf');
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user