Laporan#Laporan Online

This commit is contained in:
hafifierahman
2023-01-11 11:21:33 +08:00
parent 7db747c584
commit cc1bb1313e
6 changed files with 436 additions and 2 deletions
+40
View File
@@ -1255,6 +1255,46 @@ class AkaunController extends Controller
}
public function cetak_laporan_online(Request $request){
$api_url = $request->hostname;
$auth_user = Auth::user();
$current = Carbon::now();
$current = new Carbon();
$tarikh_cetak = $current->toDateString();
if($request->datemula == null){
$mula_date = '2017-01-01';
}else{
$split_date = explode('-', $request->datemula);
// $mula_date = $split_date[2] . '-' . $split_date[1] . '-' . $split_date[0];
$mula_date = $request->datemula;
}
if($request->datehingga == null){
$hingga_date = $current->toDateString();
}else{
$split_date = explode('-', $request->datehingga);
// $hingga_date = $split_date[2] . '-' . $split_date[1] . '-' . $split_date[0];
$hingga_date = $request->datehingga;
}
$Online = Http::get($request->hostname. '/admin/laporan/online',['kodcaw' => $request->kodcaw,'mula' => $mula_date,'hingga' => $hingga_date,'jenis' => $request->radonline])->json();
$cawangan = Http::get($request->hostname.'/api/cawangan/detail/'.$request->kodcaw)->json();
$cawangan_detail=$cawangan[0];
if(isset($request->jenis))
{
if($request->jenis == 'pdf')
{
$pdf = PDF::loadView('akaun.laporan_online', compact('Online','cawangan_detail','tarikh_cetak','mula_date','hingga_date','api_url'))->setPaper('a4', 'potrait');
return $pdf->download('laporan_Online_' . $request->kodcaw .'_'. $mula_date . '_' . $request->radonline . '.pdf');
}else{
return view('akaun.laporan_online', compact('Online','cawangan_detail','tarikh_cetak','mula_date','hingga_date','api_url'));
}
}
}
public function cetakimbangdugaAkru(Request $request){
$auth_user = Auth::user();
+2 -2
View File
@@ -66,8 +66,8 @@
</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">
<router-link to="/akaunhome/lelong">
<h2 class="mx-auto text-center font-bold text-2xl uppercase">Lelong</h2>
<router-link to="/akaunhome/online">
<h2 class="mx-auto text-center font-bold text-2xl uppercase">Online</h2>
</router-link>
</div>
+113
View File
@@ -0,0 +1,113 @@
<template>
<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">
<router-link to="/akaunhome">
<i class="fas fa-backspace text-white"></i>
</router-link>
<span class="text-center mx-auto text-white font-bold">Laporan Bayaran Online</span>
</div>
<form method="get" id="formonline" :action="Urlredirect()" target="_blank">
<input :value="$kodcaw" name="kodcaw" hidden/>
<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 place-content-center mb-2">
<input :value="jenisgenerate" type="hidden" name="jenis" />
<input :value="$hostname" name="hostname" hidden/>
<input :value="$kodcaw" name="kodcaw" hidden/>
<span style="background-color: #F9FAFB" class="text-gray-600 border border-2 rounded-l px-4 py-2 whitespace-no-wrap">Mula</span>
<input id="tarikhmula" name="datemula" class="border border-2 border-l-0 rounded-r px-4 py-2 w-80r mr-2" type="date" />
<span style="background-color: #F9FAFB" class="text-gray-600 border border-2 rounded-l px-4 py-2 whitespace-no-wrap">Hingga</span>
<input id="tarikhmula" name="datehingga" class="border border-2 border-l-0 rounded-r px-4 py-2 w-80r mr-2" type="date" />
</div>
</div>
<div class="flex justify-center mb-4">
<div class="mx-2 radio">
<input type="radio" id="portal" name="radonline" value="portal" class="hidden focus:bg-gray-500" v-model="selected">
<label for="portal" class="cursor-pointer text-gray-500 focus:bg-gray-500 hover:bg-gray-200 focus:bg-purple-500 focus:bg-purple-500 focus:outline-none border px-10 py-4 border-solid border-gray-500 rounded">Portal</label>
</div>
<div class="mx-2 radio cursor-pointer">
<input type="radio" id="mobile" name="radonline" value="mobile" class="hidden focus:bg-gray-500" v-model="selected">
<label for="mobile" class="cursor-pointer text-gray-500 focus:bg-gray-500 hover:bg-gray-200 focus:bg-purple-500 focus:outline-none border px-10 py-4 border-solid border-gray-500 rounded">Mobile</label>
</div>
<div class="mx-2 radio cursor-pointer">
<input type="radio" id="lelong" name="radonline" value="lelong" class="hidden focus:bg-gray-500" v-model="selected">
<label for="lelong" class="cursor-pointer text-gray-500 focus:bg-gray-500 hover:bg-gray-200 focus:bg-purple-500 focus:outline-none border px-10 py-4 border-solid border-gray-500 rounded">Lelong</label>
</div>
</div>
<div class="flex justify-end mt-10">
<button @click.prevent="generatepdf" class=" mr-2 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"><i class="fas fa-file-pdf mr-2"></i>PDF</button>
<button @click.prevent="generateview" 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"><i class="fas fa-eye mr-2"></i>View</button>
</div>
</div>
</form>
</div>
</div>
</div>
</template>
<style>
.radio input:checked + label{
border-color:#F6D860;
background-color:#FFF1BD;
outline:none;
}
</style>
<script>
export default {
data(){
return{
jenisgenerate:'none',
selected:'',
kodcaw:''
}
},
methods: {
async generatepdf(){
await this.setJenis('pdf');
Vue.swal({
title: 'Memuatkan...',
allowEscapeKey : false,
allowOutsideClick: false,
showCancelButton: false,
showConfirmButton: false,
timer: 8000,
});
document.getElementById("formonline").submit();
},
async generateview(){
await this.setJenis('view');
Vue.swal({
title: 'Memuatkan...',
allowEscapeKey : false,
allowOutsideClick: false,
showCancelButton: false,
showConfirmButton: false,
timer: 8000,
});
document.getElementById("formonline").submit();
},
Urlredirect: function() {
return window.route('cetak.online')
},
setJenis: function(value){
return this.jenisgenerate = value;
}
}
}
</script>
+2
View File
@@ -25,6 +25,7 @@ import AkruBulan from './Akaun/AkruBulan'
import Prestasi from './Akaun/Prestasi'
import SerahGadai from './Akaun/SerahGadai'
import SerahTebus from './Akaun/SerahTebus'
import Online from './Akaun/Online'
@@ -84,6 +85,7 @@ export default new VueRouter({
{ path: '/akaunhome/akrubulan', component: AkruBulan },
{ path: '/akaunhome/serahgadai', component: SerahGadai },
{ path: '/akaunhome/serahtebus', component: SerahTebus },
{ path: '/akaunhome/online', component: Online },
{ path: '/bajet/kemaskini', component: SenaraiBajet },
@@ -0,0 +1,278 @@
<style>
#header {
font-family: Arial, Helvetica, sans-serif;
border-collapse: collapse;
width: 100%;
}
#header td, #customers th {
padding:4px;
font-size:10px;
}
#header tr:nth-child(even){background-color: #ffffff;}
#header tr:hover {background-color: #ddd;}
#header th {
padding-top: 12px;
padding-bottom: 12px;
text-align: left;
padding:4px;
color:black;
}
</style>
<style>
#scan {
font-family: Arial, Helvetica, sans-serif;
border-collapse: collapse;
width: 100%;
}
#scan td, #scan th {
padding: 8px;
font-size:11px;
}
#scan tr:nth-child(even){background-color: #ffffff;}
#scan tr:hover {background-color: #ddd;}
#scan th {
padding-top: 12px;
padding-bottom: 12px;
text-align: left;
padding:4px;
color:black;
}
</style>
<style>
#scan {
font-family: Arial, Helvetica, sans-serif;
border-collapse: collapse;
width: 100%;
}
#scan td, #scan th {
border-collapse: collapse;
padding: 8px;
font-size:11px;
}
#scan tr:nth-child(even){background-color: #ffffff;}
#scan tr:hover {background-color: #ddd;}
#scan th {
border-collapse: collapse;
padding-top: 12px;
padding-bottom: 12px;
text-align: left;
padding:4px;
color:black;
}
</style>
<style>
#details {
font-family: Arial, Helvetica, sans-serif;
border-collapse: collapse;
width: 100%;
}
#details td, #details th {
padding: 8px;
font-size:8px;
}
#details tr:nth-child(even){background-color: #ffffff;}
#details tr:hover {background-color: #ddd;}
#details th {
padding-top: 12px;
font-style:bold;
padding-bottom: 12px;
text-align: left;
padding:4px;
color:black;
}
</style>
<style>
#sign {
font-family: Arial, Helvetica, sans-serif;
border-collapse: collapse;
width: 100%;
}
#sign td, #sign th {
padding: 8px;
font-size:11px;
text-align: center;
}
#sign tr:nth-child(even){background-color: #ffffff;}
#sign tr:hover {background-color: #ddd;}
#sign th {
padding-top: 12px;
padding-bottom: 12px;
text-align: left;
padding:4px;
color:black;
}
@media print {
.new-page {
page-break-before: always;
}
}
</style>
<table id="header">
<tr>
{{-- <th rowspan="4" style="width:50px"><br><img src="{{ asset('img/ARRAHN1.png') }}" style="width:70px"></img></th> --}}
{{-- <th colspan="1">KOPERASI PERMODALAN KELANTAN BERHAD</th> --}}
</tr>
<tr>
<td style="font-size:20px;font-weight:bold;">{{ $cawangan_detail['namacaw'] }}</td>
<td></td>
</tr>
{{-- <tr>
<td>{{ $cawangan_detail['alamat1'] }}</td>
<td></td>
</tr>
<tr>
<td>{{ $cawangan_detail['alamat2'].' No Tel : '. $cawangan_detail['notel'].' No Faks : '. $cawangan_detail['nofaks'] }}</td>
<td></td>
</tr> --}}
</table>
<br>
<table id="scan">
<tr>
<th colspan ="5"><b>LAPORAN ONLINE</b></th>
<th> </th>
<th> </th>
<th></th>
</tr>
<tr>
<th colspan="5"><b> TARIKH CETAK:</b>
@php
$myDateTime = DateTime::createFromFormat('Y-m-d', $tarikh_cetak);
$formattedweddingdate = $myDateTime->format('d-m-Y');
echo($formattedweddingdate);
@endphp
</th>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td style="width:20px"> <b>MULA:</b></td>
<td>@php
$myDateTime = DateTime::createFromFormat('Y-m-d', $mula_date);
$formattedweddingdate = $myDateTime->format('d-m-Y');
echo($formattedweddingdate);
@endphp</td>
<td style="width:20px"> <b>HINGGA:</b></td>
<td>@php
$myDateTime = DateTime::createFromFormat('Y-m-d', $hingga_date);
$formattedweddingdate = $myDateTime->format('d-m-Y');
echo($formattedweddingdate);
@endphp</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
<br>
<table id="details">
<tr>
<th>Bil</th>
<th>Tarikh</th>
<th>Keterangan</th>
<th>Nama</th>
<th>Amaun (RM)</th>
</tr>
@php $counter = 1; $totalamaun = 0; $jenis = ''; @endphp
@foreach($Online as $index=>$item)
<td>{{ $counter }}</td>
<td>{{ $item['tarikh'] }}</td>
<td><b>{{ $item['descpt'] }}</b></td>
<td>{{ $item['teller'] }}</td>
<td>{{ ($item['pendahuluan'] > 0) ? number_format($item['pendahuluan'],2) : number_format($item['serahan'],2) }}</td>
</tr>
@php $counter++;$totalamaun += ($item['pendahuluan'] > 0) ? $item['pendahuluan'] : $item['serahan'];
if($index == 0)
if($item['pendahuluan'] > 0)
$jenis = 'PENDAHULUAN';
else
$jenis = 'SERAHAN';
@endphp
@endforeach
</table>
<br><br>
<table id="details" style="border-top:1px solid black;border-bottom:1px solid black;text-align:center;">
<tr>
<td colspan="3" style="text-align: center;"><b>JUMLAH {{ $jenis }}</b></td>
<td style="text-align:center">{{ 'RM ' . number_format($totalamaun,2) }}</td>
</tr>
</table>
<br>
<br><br><br>
<table id="sign">
<tr>
<td></td>
<td colspan="2"> .................................................................. </td>
<td> </td>
<td colspan="2"> .................................................................. </td>
<td> </td>
<td colspan="2">.................................................................. </td>
<td> </td>
</tr>
<tr>
<td></td>
<td colspan="2"><B> Disediakan </B> </td>
<td></td>
<td colspan="2"><B> Disemak </B> </td>
<td> </td>
<td colspan="2"><B> Disahkan </B></td>
<td> </td>
</tr>
</table>
+1
View File
@@ -97,6 +97,7 @@ Route::get('/akaunhome/prestasi',['as'=>'cetak.prestasi','uses'=>'App\Http\Contr
Route::get('/akaunhome/cetakakrubulan',['as'=>'cetak.akrubulan','uses'=>'App\Http\Controllers\AkaunController@cetak_akru_bulanan'])->middleware(['roleChecker:admin,akaun,operasi']);
Route::get('/akaunhome/cetakserahgadai',['as'=>'cetak.serahgadai','uses'=>'App\Http\Controllers\AkaunController@cetak_serahgadai'])->middleware(['roleChecker:admin,akaun,operasi']);
Route::get('/akaunhome/cetakserahtebus',['as'=>'cetak.serahtebus','uses'=>'App\Http\Controllers\AkaunController@cetak_serahtebus'])->middleware(['roleChecker:admin,akaun,operasi']);
Route::get('/akaunhome/cetakonline',['as'=>'cetak.online','uses'=>'App\Http\Controllers\AkaunController@cetak_laporan_online'])->middleware(['roleChecker:admin,akaun,operasi']);