Merge branch 'fasa2lelong' into 'main'

Fasa2lelong

See merge request online-sistem1/admin-portal!20
This commit is contained in:
hafifie rahman
2022-07-27 16:50:47 +00:00
36 changed files with 11022 additions and 19531 deletions
+3
View File
@@ -13,3 +13,6 @@ npm-debug.log
yarn-error.log
/.idea
/.vscode
/public/css
/public/js
+38 -4
View File
@@ -755,7 +755,7 @@ class AkaunController extends Controller
$current = Carbon::now();
$current = new Carbon();
$tarikh_cetak = $current->toDateString();
$kodcaw = $request->kodcaw;
$split_date = explode('-',$request->datestokauditbackdate);
$bulan = $split_date[1];
$tahun = $split_date[0];
@@ -788,12 +788,46 @@ class AkaunController extends Controller
$tebus_date = $namabulan . ' ' . $tahun;
$cawangan=Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cawangan/detail/'.$auth_user['cawangan'])->json();
$cawangan=Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cawangan/detail/'.$kodcaw)->json();
$cawangan_detail=$cawangan[0];
$stokaudit = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/stokaudit/backdate',['kodcaw' => $auth_user['cawangan'],'tahun'=>$tahun,'bulan'=>$bulan])->json();
$stokaudit = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/stokaudit/backdate',['kodcaw' => $kodcaw,'tahun'=>$tahun,'bulan'=>$bulan])->json();
return view('akaun.laporan_stokauditbackdate', compact('stokaudit','cawangan_detail','tarikh_cetak','tebus_date','api_url'));
}
public function AuditGenerator(){
return view('audit.index');
}
public function CetakSenarai(Request $request)
{
$tarikhasal = $request->mula;
$jenistebus = $request->jenis;
$tarikh = explode("-",$request->mula);
$month = $tarikh[0];
$year = $tarikh[1];
$laporan = Http::get(config('api.url').'/admin/audit/keuntungansebenar',[
'kodcaw' => $request->kodcaw,
'year' => $year,
'month' => $month,
'jenistebus' => $request->jenis,
])->json();
$cawangan=Http::get(config('api.url').'/api/cawangan/detail/'. $request->kodcaw)->json();
$cawangan_detail=$cawangan[0];
if($jenistebus == 'L')
{
return view('audit.cetakanexcelelong', compact('laporan','cawangan_detail','tarikhasal','jenistebus'));
}else{
return view('audit.cetakanexcel', compact('laporan','cawangan_detail','tarikhasal','jenistebus'));
}
}
}
+57
View File
@@ -0,0 +1,57 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Http;
use Carbon\Carbon;
use PDF;
use Maatwebsite\Excel\Excel;
class WTDController extends Controller
{
// public function __construct()
// {
// $this->middleware('auth');
// }
public function index(){
return view('wtd.index');
}
public function CetakSenarai(Request $request)
{
// $norujukan = $request->norujukan;
$norujukan = json_decode($request->norujukan);
$tuntutbaki = Http::get(config('api.url').'/admin/wtd/senarai',['norujukan' => $norujukan,'kodcaw' => $request->cawangan])->json();
$cawangan=Http::get(config('api.url').'/api/cawangan/detail/'. $request->cawangan)->json();
$cawangan_detail=$cawangan[0];
$current = Carbon::now();
$tarikh_cetak = $current->toDateString();
$api_url = config('api.url');
$mula = $request->mula;
$hingga = $request->hingga;
// $myDateTime = DateTime::createFromFormat('Y-m-d', $tarikh_cetak);
// $tarikhcetakan = $myDateTime->format('d-m-Y');
if(isset($request->jenis))
{
if($request->jenis == 'pdf')
{
$pdf = PDF::loadView('wtd.cetakan', compact('tuntutbaki','cawangan_detail','tarikh_cetak','api_url','mula','hingga'))->setPaper('a4', 'potrait');
return $pdf->download('wtd_' . $request->cawangan .'_'. $tarikh_cetak . '.pdf');
}else{
return view('wtd.cetakanexcel', compact('tuntutbaki','cawangan_detail','tarikh_cetak','api_url','mula','hingga'));
}
}
}
}
+1352 -12013
View File
File diff suppressed because it is too large Load Diff
+3
View File
@@ -39,10 +39,13 @@
"jw-vue-pagination": "^1.0.3",
"laravel-echo": "^1.11.4",
"pusher-js": "^7.0.6",
"table2excel": "^1.0.4",
"vue-apexcharts": "^1.6.2",
"vue-axios": "^3.4.1",
"vue-class-component": "^7.2.6",
"vue-content-placeholders": "^0.2.1",
"vue-excel-xlsx": "^1.2.2",
"vue-flatpickr-component": "^8.1.7",
"vue-moment": "^4.1.0",
"vue-property-decorator": "^9.1.2",
"vue-pusher": "^1.1.0",
+18 -5795
View File
File diff suppressed because it is too large Load Diff
+7034 -1573
View File
File diff suppressed because one or more lines are too long
+2
View File
File diff suppressed because one or more lines are too long
+23
View File
@@ -0,0 +1,23 @@
<template>
<div>
<div class="mx-auto mt-10 mb-10 flex justify-center">
<router-link to="/wtd/rekod">
<button class="bg-yellow-500 p-4 rounded text-white mr-4">Keuntungan Sebenar</button>
</router-link>
<router-link to="/wtd/tambah">
<button class="bg-yellow-500 p-4 rounded text-white">Upah Simpan</button>
</router-link>
</div>
</div>
</template>
<script>
export default {
}
</script>
<style>
</style>
+23
View File
@@ -0,0 +1,23 @@
<template>
<div>
<div class="mx-auto mt-10 mb-10 flex justify-center">
<router-link to="/audit/keuntungansebenar">
<button class="bg-yellow-500 p-4 rounded text-white mr-4">Keuntungan Sebenar</button>
</router-link>
<router-link to="">
<button class="bg-yellow-200 p-4 rounded text-white">Upah Simpan</button>
</router-link>
</div>
</div>
</template>
<script>
export default {
}
</script>
<style>
</style>
+11
View File
@@ -0,0 +1,11 @@
<template>
<router-view>
</router-view>
</template>
<script>
export default {
}
</script>
+96
View File
@@ -0,0 +1,96 @@
<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="/audit">
<i class="fas fa-backspace text-white"></i>
</router-link>
<span class="text-center mx-auto text-white font-bold">Laporan Keuntungan Sebenar</span>
</div>
<form method="get" id="formpenebusan" 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>
<div class="flex place-content-center mb-2">
<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">Bulan</span>
<flat-pickr v-model="mula" :config="config" class="border border-2 rounded-r px-4 py-2 w-80r mr-2"></flat-pickr>
</div>
<div class="flex justify-center mt-10">
<div class="mx-2 radio">
<input type="radio" id="T" name="radpendser" value="T" class="hidden focus:bg-gray-500" v-model="selected">
<label for="T" 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">Tebus</label>
</div>
<div class="mx-2 radio cursor-pointer">
<input type="radio" id="A" name="radpendser" value="A" class="hidden focus:bg-gray-500" v-model="selected">
<label for="A" 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">Ansuran</label>
</div>
<div class="mx-2 radio cursor-pointer">
<input type="radio" id="L" name="radpendser" value="L" class="hidden focus:bg-gray-500" v-model="selected">
<label for="L" 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="generate" 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-file-excel mr-2"></i>View</button>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</template>
<script>
import monthSelectPlugin from 'flatpickr/dist/plugins/monthSelect/index.js'
import 'flatpickr/dist/plugins/monthSelect/style.css'
export default {
data() {
return {
mula: null,
selected: 'T',
config: {
wrap: false, // set wrap to true only when using 'input-group'
maxDate: 'today',
plugins: [
new monthSelectPlugin({
shorthand: true, //defaults to false
dateFormat: "m-Y", //defaults to "F Y"
altFormat: "F Y", //defaults to "F Y"
})
]
},
}
},
methods:{
generate: function () {
if(this.mula !== null)
{
let urldirect = window.route('audit.cetak');
window.open(urldirect + '?kodcaw=' + this.$kodcaw + '&&jenis=' + this.selected + '&&mula=' + this.mula, '_blank');
}
},
},
}
</script>
<style>
</style>
+62
View File
@@ -0,0 +1,62 @@
<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="/audit">
<i class="fas fa-backspace text-white"></i>
</router-link>
<span class="text-center mx-auto text-white font-bold">Laporan Upah Simpan</span>
</div>
<form method="get" id="formpenebusan" 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">
<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">Bulan</span>
<flat-pickr v-model="mula" :config="config" class="border border-2 rounded-r px-4 py-2 w-80r mr-2"></flat-pickr>
<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>
</div>
</form>
</div>
</div>
</div>
</template>
<script>
import monthSelectPlugin from 'flatpickr/dist/plugins/monthSelect/index.js'
import 'flatpickr/dist/plugins/monthSelect/style.css'
export default {
data() {
return {
mula: null,
config: {
wrap: false, // set wrap to true only when using 'input-group'
maxDate: 'today',
plugins: [
new monthSelectPlugin({
shorthand: true, //defaults to false
dateFormat: "m-Y", //defaults to "F Y"
altFormat: "F Y", //defaults to "F Y"
})
]
},
}
},
}
</script>
<style>
</style>
+112 -71
View File
@@ -233,7 +233,7 @@
<div v-if="userroles == 'operasi'" class="flex items-center">
<div v-if="mohon.tagoperasi === 0 && mohon.tagcit === 1 && mohon.jenismohon === 'bayaranbalik'" class="ml-3">
<div v-if="mohon.tagoperasi === 0 && mohon.tagcit === 1 && mohon.tagjanapc === 2 && mohon.jenismohon === 'bayaranbalik'" class="ml-3">
<button @click="funcsetuju(mohon.nopermohonan)" class="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">
@@ -256,7 +256,7 @@
</button>
</div>
<div v-if="mohon.tagoperasi === 0 && mohon.tagcit === 0 && mohon.jenismohon === 'bayaranbalik'" class="ml-3">
<div v-if="mohon.tagoperasi === 0 && mohon.tagcit === 0 && mohon.tagjanapc === 0 && mohon.tagjanapc === 1 && mohon.jenismohon === 'bayaranbalik'" class="ml-3">
<p class="text-white whitespace-no-wrap p-2 rounded bg-blue-500">
@@ -265,7 +265,7 @@
</p>
</div>
<div v-else-if="mohon.tagoperasi == 0 && mohon.jenismohon === 'permohonanwang'" class="ml-3">
<div v-else-if="mohon.tagoperasi == 0 && mohon.tagjanapc === 2 && mohon.jenismohon === 'permohonanwang'" class="ml-3">
<button @click="funcsetuju(mohon.nopermohonan)" class="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">
@@ -289,7 +289,7 @@
</div>
<div v-else-if="mohon.tagoperasi == 1" class="ml-3">
<div v-else-if="mohon.tagoperasi === 1" class="ml-3">
<p class="text-white whitespace-no-wrap p-2 rounded bg-green-500">
@@ -331,7 +331,7 @@
<div v-else-if="(mohon.tagakaun === 1 || mohon.tagakaun === 2) && mohon.tagprint === 0" class="ml-3">
<button @click="CetakanPB(mohon.kodcaw,mohon.nopermohonan)" class="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">
<button @click="CetakanPB(mohon.kodcaw,mohon.nopermohonan,mohon.files_kelakaun_id)" class="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">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
<path stroke-linecap="round" stroke-linejoin="round" d="M17 17h2a2 2 0 002-2v-4a2 2 0 00-2-2H5a2 2 0 00-2 2v4a2 2 0 002 2h2m2 4h6a2 2 0 002-2v-4a2 2 0 00-2-2H9a2 2 0 00-2 2v4a2 2 0 002 2zm8-12V5a2 2 0 00-2-2H9a2 2 0 00-2 2v4h10z" />
</svg>
@@ -342,11 +342,11 @@
<button @click="KelulusanPB(mohon.nopermohonan,formatterfunction(mohon.amaun_mohon))" class="border mb-2 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">
PB
</button>
<button @click="CetakanPB(mohon.kodcaw,mohon.nopermohonan)" class="mt-2 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">
<!-- <button @click="CetakanPB(mohon.kodcaw,mohon.nopermohonan)" class="mt-2 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">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
<path stroke-linecap="round" stroke-linejoin="round" d="M17 17h2a2 2 0 002-2v-4a2 2 0 00-2-2H5a2 2 0 00-2 2v4a2 2 0 002 2h2m2 4h6a2 2 0 002-2v-4a2 2 0 00-2-2H9a2 2 0 00-2 2v4a2 2 0 002 2zm8-12V5a2 2 0 00-2-2H9a2 2 0 00-2 2v4h10z" />
</svg>
</button>
</button> -->
</div>
<div v-else-if="mohon.tagpb === 1 && mohon.tagdeposit === 0">
@@ -421,6 +421,13 @@ const formatter = new Intl.NumberFormat('en-US', {
minimumFractionDigits: 2
});
const toBase64 = file => new Promise((resolve, reject) => {
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = () => resolve(reader.result.split(',')[1]);
reader.onerror = error => reject(error);
});
export default {
components: {
pagination,
@@ -613,65 +620,97 @@ export default {
if (response.data === 1) {
if (this.userroles === "operasi") {
this.axios.put(this.$hostname + '/admin/permohonan/updateoperasi', {
kelulusan: 'Lulus',
mohonid: mohonid,
namaoperasi: this.username
}).then(response => {
if (response.data === 1) {
this.$swal({
icon: 'success',
title: 'Berjaya',
text: 'Berjaya mengemaskini',
allowOutsideClick: false
}).then(function () {
refer.getSenaraiMohon(refer.currentPage);
});
this.$swal({
title: 'Muat Naik Fail Permohonan',
showCancelButton: true,
confirmButtonText: 'Muat Naik',
input: 'file',
allowOutsideClick: false,
willOpen: () => {
$(".swal2-file").change(function () {
var reader = new FileReader();
reader.readAsDataURL(this.files[0]);
});
}
}).then(async (file) => {
if (file.value) {
const d = new Date();
let time = d.getTime();
var imagename,data,imagetype;
var formData = new FormData();
var file = $('.swal2-file')[0].files[0];
} else {
this.$swal({
icon: 'warning',
title: 'Tidak Berjaya',
text: 'tidak berjaya dikemaskini',
allowOutsideClick: false
}).then(function () {
refer.getSenaraiMohon(refer.currentPage);
});
data = await toBase64(file);
imagetype = file.name.split('.').pop();
if (this.userroles === "operasi") {
imagename = 'TagOperasi_' + time + '.' + file.name.split('.').pop();
this.axios.put(this.$hostname + '/admin/permohonan/updateoperasi', {
kelulusan: 'Lulus',
mohonid: mohonid,
dataimage: data,
imagename: imagename,
imagetype: imagetype,
namaoperasi: this.username
}).then(response => {
if (response.data === 1) {
this.$swal({
icon: 'success',
title: 'Berjaya',
text: 'Berjaya mengemaskini',
allowOutsideClick: false
}).then(function () {
refer.getSenaraiMohon(refer.currentPage);
});
} else {
this.$swal({
icon: 'warning',
title: 'Tidak Berjaya',
text: 'tidak berjaya dikemaskini',
allowOutsideClick: false
}).then(function () {
refer.getSenaraiMohon(refer.currentPage);
});
}
});
} else if (this.userroles === 'akaun') {
imagename = 'TagAkaun_' + time + '.' + file.name.split('.').pop();
this.axios.put(this.$hostname + '/admin/permohonan/updateakaun', {
kelulusan: 'Lulus',
mohonid: mohonid,
dataimage: data,
imagename: imagename,
imagetype: imagetype,
namaakaun: this.username
}).then(response => {
if (response.data === 1) {
this.$swal({
icon: 'success',
title: 'Berjaya',
text: 'Berjaya mengemaskini',
allowOutsideClick: false
}).then(function () {
refer.getSenaraiMohon(refer.currentPage);
});
} else {
this.$swal({
icon: 'warning',
title: 'Tidak Berjaya',
text: 'tidak berjaya dikemaskini',
allowOutsideClick: false
}).then(function () {
refer.getSenaraiMohon(refer.currentPage);
});
}
});
}
});
} else if (this.userroles === 'akaun') {
this.axios.put(this.$hostname + '/admin/permohonan/updateakaun', {
kelulusan: 'Lulus',
mohonid: mohonid,
namaakaun: this.username
}).then(response => {
if (response.data === 1) {
this.$swal({
icon: 'success',
title: 'Berjaya',
text: 'Berjaya mengemaskini',
allowOutsideClick: false
}).then(function () {
refer.getSenaraiMohon(refer.currentPage);
});
} else {
this.$swal({
icon: 'warning',
title: 'Tidak Berjaya',
text: 'tidak berjaya dikemaskini',
allowOutsideClick: false
}).then(function () {
refer.getSenaraiMohon(refer.currentPage);
});
}
});
} else {
}
}
});
} else {
this.$swal({
@@ -685,7 +724,8 @@ export default {
}
});
},
CetakanPB: function (caw, mid) {
CetakanPB: function (caw,mid,perid) {
let refer = this;
this.axios.get(this.$hostname + '/admin/permohonan/get/' + caw + '/' + mid).then(response => {
@@ -702,6 +742,7 @@ export default {
text: 'Cetakan Berjaya Dijana!',
allowOutsideClick: false
}).then(function () {
window.open('/api/check/muatturun?files_id=' + perid, '_blank');
refer.getSenaraiMohon(refer.currentPage);
});
@@ -719,14 +760,14 @@ export default {
});
}
})
let route = window.route('permohonan.cetakanpenuh', {
_query: {
cawangan: caw,
mohonid: mid
},
});
window.open(route, '_blank')
return;
// let route = window.route('permohonan.cetakanpenuh', {
// _query: {
// cawangan: caw,
// mohonid: mid
// },
// });
// window.open(route, '_blank')
// return;
},
KelulusanPB: function (mid, mohon) {
+25 -13
View File
@@ -246,23 +246,26 @@
<div class="ml-3">
<p v-if="status.statusid === 1" class="text-gray-900 whitespace-no-wrap">
{{ status.description }} <br> {{ 'Nama : ' + pembesarannama(status[0].nama_pemohon) }}
</p>
<div v-if="status.statusid === 1" class="text-gray-900 whitespace-no-wrap flex justify-between">
<div>{{ status.description }} <br> {{ 'Nama : ' + pembesarannama(status[0].nama_pemohon) }}<br></div>
<div><button class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded" @click.prevent="downloadpermohonan(status[0].permohonanfiles_id)">Cetak</button></div>
</div>
<p v-if="status.statusid === 2" class="text-gray-900 whitespace-no-wrap">
{{ status.description }} <br> {{ 'Nama : ' + pembesarannama(status[0].nama_operasi) }}
</p>
<div v-if="status.statusid === 2" class="text-gray-900 whitespace-no-wrap flex justify-between">
<div>{{ status.description }} <br> {{ 'Nama : ' + pembesarannama(status[0].nama_operasi) }}</div>
<div><button class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded" @click.prevent="downloadkeloperasi(status[0].operasifiles_id)">Cetak</button></div>
</div>
<p v-if="status.statusid === 3" class="text-gray-900 whitespace-no-wrap">
{{ status.description }} <br> {{ 'Nama : ' + pembesarannama(status[0].nama_akaun) }}
</p>
<div v-if="status.statusid === 3" class="text-gray-900 whitespace-no-wrap flex justify-between">
<div>{{ status.description }} <br> {{ 'Nama : ' + pembesarannama(status[0].nama_akaun) }}</div>
<div><button class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded" @click.prevent="downloadkelakaun(status[0].akaunfiles_id)">Cetak</button></div>
</div>
<p v-if="status.statusid === 4" class="text-gray-900 whitespace-no-wrap">
{{ status.description }} <br> <b> {{ 'Jumlah Diluluskan : RM ' + formatterfunction(status[0].jumlah_diluluskan) }} </b>
<div v-if="status.statusid === 4" class="text-gray-900 whitespace-no-wrap">
<div>{{ status.description }} <br> <b> {{ 'Jumlah Diluluskan : RM ' + formatterfunction(status[0].jumlah_diluluskan) }} </b></div>
<br>
<button class="text-white p-2 bg-blue-500 rounded mr-1 mt-2" @click.prevent="downloadpb(status[0].pbfiles)">Muat Turun</button>
</p>
<div><button class="text-white p-2 bg-blue-500 rounded mr-1 mt-2" @click.prevent="downloadpb(status[0].pbfiles)">Cetak</button></div>
</div>
<div v-if="status.statusid === 5" class="text-gray-900 whitespace-no-wrap">
{{ status.description }}
@@ -475,6 +478,15 @@ export default {
downloadpb(pbid) {
window.open('/api/check/muatturun?files_id=' + pbid, '_blank');
},
downloadpermohonan(perid) {
window.open('/api/check/muatturun?files_id=' + perid, '_blank');
},
downloadkeloperasi(kelopid) {
window.open('/api/check/muatturun?files_id=' + kelopid, '_blank');
},
downloadkelakaun(kelakid) {
window.open('/api/check/muatturun?files_id=' + kelakid, '_blank');
},
pembesarannama(value) {
const str = value.toLowerCase().replace(/\b[a-z]/g, function (response) {
return response.toUpperCase();
+48
View File
@@ -0,0 +1,48 @@
<template>
<div>
<div class="mx-auto mt-10 mb-10 flex justify-center grid grid-cols-4">
<div v-for="(sb,i) in serahbakiarray" :key="i">
<router-link :to="{ name: '/selectwtd', params: { batchno: sb.batchno }, query:{ aktif: sb.aktif,totalbaki: sb.baki },}">
<a href="#" class="block p-6 max-w-sm bg-white rounded-lg border border-gray-200 shadow-md hover:bg-gray-100 dark:bg-gray-800 dark:border-gray-700 dark:hover:bg-gray-700">
<h5 class="mb-2 text-2xl font-bold tracking-tight text-gray-900 dark:text-white">BATCH NO : {{ sb.batchno }}</h5>
<p class="font-normal text-gray-700 dark:text-gray-400">Jumlah Wang Tak Dituntut : RM {{ formattext(sb.baki) }}</p>
<p class="font-normal text-gray-700 dark:text-gray-400">Diprocess : {{ sb.aktif ? 'Sudah Diproses' : 'Belum Diproses' }}</p>
</a>
</router-link>
</div>
</div>
</div>
</template>
<script>
const formatter = new Intl.NumberFormat('en-US', {
minimumFractionDigits: 2
});
export default {
data() {
return {
cawangan: 'KB2',
serahbakiarray: {},
}
},
methods: {
formattext: function (value) {
return formatter.format(value);
}
},
mounted() {
this.axios.get(this.$hostname + '/admin/wtd/rekod/', {
params: {
kodcaw: this.cawangan,
}
}).then(response => {
// console.log(response.data);
this.serahbakiarray = response.data;
})
}
}
</script>
+115
View File
@@ -0,0 +1,115 @@
<template>
<div>
<div v-if="arraybakilelong.length > 0" class="relative bg-white overflow-x-auto shadow-md sm:rounded-lg px-8 py-6">
<div class="flex justify-between">
<div class="p-4">
<h1 class="text-xl font-bold bg-clip-text text-transparent bg-gradient-to-br from-gray-500 to-gray-700">JUMLAH = RM {{ this.totalbaki }}</h1>
</div>
<div class="p-4">
<button @click.prevent="proseswtd" :disabled="aktif == 1" :class="{'hover:bg-yellow-600 bg-yellow-600 border-yellow-600': aktif == 0}" class="border border-yellow-300 text-white bg-yellow-300 font-montserrat py-2 px-8 font-medium rounded-xl transition-all duration-300">Proses WTD</button>
<span v-if="batchno != 0" class="text-lg font-bold ml-3">Batchno: {{ this.batchno }}</span>
</div>
</div>
<table class="w-full text-sm text-left text-gray-500 dark:text-gray-400 rounded-lg border w-full sm:h-96 p-6 overflow-x-auto overflow-y-scroll scrollbar">
<thead class="text-xs text-gray-700 uppercase bg-yellow-200 dark:bg-gray-700 dark:text-gray-400">
<tr>
<th scope="col" class="p-4">
<div class="flex items-center">
<span>Bil</span>
</div>
</th>
<th scope="col" class="px-6 py-3">
Norujukan
</th>
<th scope="col" class="px-6 py-3">
Tarikh Lelong
</th>
<th scope="col" class="px-6 py-3">
Pembiayaan
</th>
<th scope="col" class="px-6 py-3">
Baki
</th>
</tr>
</thead>
<tbody>
<tr v-for="(bl,i) in arraybakilelong" :key="i" class="bg-white border-b dark:bg-gray-800 dark:border-gray-700 hover:bg-gray-50 dark:hover:bg-gray-600">
<td class="w-4 p-4">
<div class="flex items-center">
<span>{{ i+1 }}</span>
</div>
</td>
<th scope="row" class="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap">
{{ bl.norujukan }}
</th>
<td class="px-6 py-4">
{{ bl.t_lelong }}
</td>
<td class="px-6 py-4">
{{ bl.pinjaman }}
</td>
<td class="px-6 py-4">
{{ bl.baki }}
</td>
</tr>
</tbody>
</table>
</div>
</div>
</template>
<script>
export default {
data() {
return {
mula: null,
hingga: null,
totalbaki: 0.00,
arraybakilelong: [],
allSelected: false,
boolblocksag: false,
cawangan: 'KB2',
batchno: 0,
aktif: 0
}
},
mounted() {
this.batchno = this.$route.params.batchno;
this.aktif = this.$route.query.aktif;
this.totalbaki = this.$route.query.totalbaki;
this.axios.get(this.$hostname + '/admin/wtd/rekod/' + this.batchno, {
params: {
kodcaw: this.cawangan,
}
}).then(response => {
this.arraybakilelong = response.data;
})
},
methods: {
proseswtd: function () {
this.axios.post(this.$hostname + '/admin/wtd/process', {
kodcaw: this.cawangan,
batch: this.batchno
}).then(response => {
if (response.data == 'success') {
this.$swal(
'Berjaya!',
'Berjaya Simpan Wang Tak Dituntut!',
'success'
)
this.aktif = 1;
}
});
},
}
}
</script>
+357
View File
@@ -0,0 +1,357 @@
<template>
<div v-if="arraybakilelong.length > 0" class="relative bg-white overflow-x-auto shadow-md sm:rounded-lg px-8 py-6">
<div class="flex justify-between">
<div class="p-4">
<h1 class="text-xl font-bold bg-clip-text text-transparent bg-gradient-to-br from-gray-500 to-gray-700">JUMLAH = RM {{ this.totalbaki }}</h1>
</div>
<div class="p-4">
<button @click.prevent="proseswtd" :disabled="boolblocksag == false" :class="{'hover:bg-yellow-600 bg-yellow-600 border-yellow-600': boolblocksag == true}" class="border border-yellow-300 text-white bg-yellow-300 font-montserrat py-2 px-8 font-medium rounded-xl transition-all duration-300">Proses WTD</button>
<span v-if="batchno != 0" class="text-lg font-bold ml-3">Batchno: {{ this.batchno }}</span>
</div>
<div class="p-4">
<button @click.prevent="callparentload" class="border border-yellow-600 text-white bg-yellow-600 font-montserrat py-2 px-8 font-medium rounded-xl hover:bg-yellow-600 hover:text-white transition-all duration-300">Kembali</button>
<button @click.prevent="printwtd" :disabled="blockseterusnya == true" :class="{'hover:bg-yellow-600 bg-yellow-600 border-yellow-600': blockseterusnya == false}" class="border text-white bg-yellow-300 border-yellow-300 font-montserrat py-2 px-8 font-medium rounded-xl transition-all duration-300">Seterusnya</button>
</div>
</div>
<div class="flex justify-between">
<div class="pr-4">
<button @click.prevent="cetakpdf" class="border border-yellow-600 text-white bg-yellow-600 font-montserrat py-2 px-4 font-medium rounded-xl hover:bg-yellow-600 hover:text-white transition-all duration-300">PDF</button>
<button @click.prevent="cetaksenarai" class="border border-yellow-600 text-white bg-yellow-600 font-montserrat py-2 px-4 font-medium rounded-xl hover:bg-yellow-600 hover:text-white transition-all duration-300">Excel</button>
</div>
<div class="p-4">
{{ extensionbulan(this.$props.bulanmula) }} Hingga {{ extensionbulan(this.$props.bulanhingga) }}
</div>
</div>
<table class="w-full text-sm text-left text-gray-500 dark:text-gray-400 rounded-lg border w-full sm:h-96 p-6 overflow-x-auto overflow-y-scroll scrollbar">
<thead class="text-xs text-gray-700 uppercase bg-yellow-200 dark:bg-gray-700 dark:text-gray-400">
<tr>
<th scope="col" class="p-4">
<div class="flex items-center">
<span v-if="batchno != 0">Bil</span>
<input v-if="batchno == 0" id="checkbox-all-search" :readonly="boolblocksag == true" @click="selectAll" v-model="allSelected" type="checkbox" class="w-4 h-4 text-blue-600 bg-gray-100 border-gray-300 rounded focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600">
</div>
</th>
<th scope="col" class="px-6 py-3">
Norujukan
</th>
<th scope="col" class="px-6 py-3">
Tarikh Lelong
</th>
<th scope="col" class="px-6 py-3">
Pembiayaan
</th>
<th scope="col" class="px-6 py-3">
Baki
</th>
</tr>
</thead>
<tbody>
<tr v-for="(bl,i) in arraybakilelong" :key="i" class="bg-white border-b dark:bg-gray-800 dark:border-gray-700 hover:bg-gray-50 dark:hover:bg-gray-600">
<td class="w-4 p-4">
<div class="flex items-center">
<span v-if="batchno != 0">{{ i+1 }}</span>
<input v-if="batchno == 0" :id="bl.norujukan" :readonly="boolblocksag == true" :value="bl.norujukan" type="checkbox" v-model="selectedNorujukan" @change="select($event)" class="w-4 h-4 text-blue-600 bg-gray-100 border-gray-300 rounded focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600">
</div>
</td>
<th scope="row" class="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap">
{{ bl.norujukan }}
</th>
<td class="px-6 py-4">
{{ bl.t_lelong }}
</td>
<td class="px-6 py-4">
{{ bl.pinjaman }}
</td>
<td class="px-6 py-4">
{{ bl.baki }}
</td>
</tr>
</tbody>
</table>
</div>
</template>
<script>
const formatter = new Intl.NumberFormat('en-US', {
minimumFractionDigits: 2
});
export default {
data() {
return {
mula: null,
hingga: null,
totalbaki: 0.00,
arraybakilelong: [],
selectedNorujukan: [],
allSelected: false,
boolblocksag: false,
cawangan: 'KB2',
batchno: 0,
blockseterusnya: false,
}
},
props: ['bakilelong', 'bulanmula', 'bulanhingga'],
methods: {
async associate() {
this.arraybakilelong = this.$props.bakilelong;
},
async calculate() {
let total = 0;
let ref = this;
await this.$props.bakilelong.map(function (valuebaki, keybaki) {
ref.selectedNorujukan.map(function (value, key) {
if (valuebaki.norujukan == value) {
total += parseFloat(valuebaki.baki);
}
})
});
this.totalbaki = formatter.format(total);
},
callparentload: function () {
this.arraybakilelong = [];
this.selectedNorujukan = [];
this.totalbaki = 0;
this.allSelected = false;
this.$emit('updateLoad')
},
selectAll: function () {
this.selectedNorujukan = [];
if (!this.allSelected) {
let ref = this;
this.arraybakilelong.map(function (value, key) {
ref.selectedNorujukan.push(value.norujukan);
});
ref.calculate();
} else {
this.calculate();
}
},
select: function (e) {
this.calculate();
this.allSelected = false;
},
async blockwtd() {
let cawangan = 'KB2';
let ref = this;
await this.$swal({
title: 'Block Surat Akuan Gadaian (SAG)?',
text: "anda tidak boleh ulang kembali setelah di block!",
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Yes',
allowOutsideClick: false,
}).then((result) => {
if (result.isConfirmed) {
this.axios.post(ref.$hostname + '/admin/wtd/insert', {
kodcaw: cawangan,
norujukan: ref.selectedNorujukan
}).then(response => {
if (response.data.status === 'success') {
this.batchno = response.data.batchno;
this.$swal(
'Berjaya!',
'Berjaya block senarai SAG!',
'success'
)
this.boolblocksag = true;
}
});
}
})
},
async printwtd() {
let cawangan = 'KB2';
let ref = this;
if (this.selectedNorujukan.length > 0) {
await this.$swal({
icon: 'info',
title: '<strong>Cetak WTD</strong>',
html: "Sila tekan <b>Cetak</b> untuk mencetak senarai SAG yang ingin dituntut,Sila tekan <b>Ya</b> untuk block SAG!",
// html:"<button onclick='console.log(`haha`);cetaksenarai();' class='px-4 py-2 bg-yellow-500 text-white rounded-xl'>PDF</button><button class='ml-2 px-4 py-2 bg-yellow-500 text-white rounded-xl'>Excel</button>",
showCloseButton: true,
showCancelButton: true,
showDenyButton: true,
// focusConfirm: false,
confirmButtonText: 'Ya',
cancelButtonText: 'Tidak',
confirmButtonColor: '#2ecc71',
cancelButtonColor: '#e74c3c',
allowOutsideClick: false,
}).then((result) => {
if (result.isConfirmed) {
this.blockwtd();
} else if (result.isDenied) {
this.$swal({
icon: 'info',
title: '<strong>Pilihan Cetakan</strong>',
html: "Sila tekan <b>PDF</b> untuk pilihan dalam bentuk PDF,Sila tekan <b>Excel</b> untuk pilihan dalam bentuk Excel!",
showCloseButton: true,
showCancelButton: false,
showDenyButton: true,
confirmButtonText: 'Excel',
denyButtonText: 'PDF',
confirmButtonColor: '#f39c12',
denyButtonColor: '#f39c12',
allowOutsideClick: false,
}).then((result) => {
if (result.isConfirmed) {
this.cetaksenarai();
event.preventDefault();
return false;
} else if (result.isDenied) {
this.cetakpdf();
event.preventDefault();
return false;
}
});
}
})
} else {
this.$swal(
'Amaran!',
'Sila pilih norujukan terlebih dahulu!',
'warning'
)
}
},
proseswtd: function () {
this.axios.post(this.$hostname + '/admin/wtd/process', {
kodcaw: this.cawangan,
batch: this.batchno
}).then(response => {
if (response.data == 'success') {
this.$swal(
'Berjaya!',
'Berjaya Simpan Wang Tak Dituntut!',
'success'
)
this.blockseterusnya = true;
this.boolblocksag = false;
}
});
},
cetaksenarai: function () {
if (this.selectedNorujukan.length > 0) {
let urldirect = window.route('wtd.cetak');
let noruj = JSON.stringify(this.selectedNorujukan);
window.open(urldirect + '?cawangan=' + this.cawangan + '&&norujukan=' + noruj + '&&jenis=excel' + '&&mula=' + this.extensionbulan(this.$props.bulanmula) + '&&hingga=' + this.extensionbulan(this.$props.bulanhingga), '_blank');
} else {
this.$swal(
'Amaran!',
'Sila pilih norujukan terlebih dahulu!',
'warning'
)
}
},
cetakpdf: function () {
if (this.selectedNorujukan.length > 0) {
let urldirect = window.route('wtd.cetak');
let noruj = JSON.stringify(this.selectedNorujukan);
window.open(urldirect + '?cawangan=' + this.cawangan + '&&norujukan=' + noruj + '&&jenis=pdf' + '&&mula=' + this.extensionbulan(this.$props.bulanmula) + '&&hingga=' + this.extensionbulan(this.$props.bulanhingga), '_blank');
} else {
this.$swal(
'Amaran!',
'Sila pilih norujukan terlebih dahulu!',
'warning'
)
}
},
extensionbulan: function (bulan) {
var stringexplode = bulan.split("-");
switch (stringexplode[0]) {
case '01':
bulan = "Januari";
break;
case '02':
bulan = "Februari";
break;
case '03':
bulan = "Mac";
break;
case '04':
bulan = "April";
break;
case '05':
bulan = "Mei";
break;
case '06':
bulan = "Jun";
break;
case '07':
bulan = "Julai";
break;
case '08':
bulan = "Ogos";
break;
case '09':
bulan = "September";
break;
case '10':
bulan = "Oktober";
break;
case '11':
bulan = "November";
break;
case '12':
bulan = "Disember";
break;
}
return bulan + '-' + stringexplode[1];
}
}
}
</script>
<style scoped>
.scrollbar::-webkit-scrollbar {
width: 20px;
height: 20px;
}
.scrollbar::-webkit-scrollbar-track {
border-radius: 100vh;
background: #f7f4ed;
}
.scrollbar::-webkit-scrollbar-thumb {
background: #e0cbcb;
border-radius: 100vh;
border: 3px solid #f6f7ed;
}
.scrollbar::-webkit-scrollbar-thumb:hover {
background: #c0a0b9;
}
</style>
+10
View File
@@ -0,0 +1,10 @@
<template>
<router-view>
</router-view>
</template>
<script>
export default {
}
</script>
+13
View File
@@ -0,0 +1,13 @@
<template>
<div>
<div class="mx-auto mt-10 mb-10 flex justify-center">
<router-link to="/wtd/rekod">
<button class="bg-yellow-500 p-4 rounded text-white mr-4">Rekod WTD</button>
</router-link>
<router-link to="/wtd/tambah">
<button class="bg-yellow-500 p-4 rounded text-white">Tambah WTD</button>
</router-link>
</div>
</div>
</template>
+105
View File
@@ -0,0 +1,105 @@
<template>
<div class="mx-auto">
<div v-if="loadbakilelong == 'process'" class="inset-0 z-30 h-full w-full flex mx-auto p-20 m-20" id="loading">
<i class="animate-spin fas fa-circle-notch fa-4x m-auto text-yellow-500"></i>
</div>
<div v-if="loadbakilelong == null" class=" w-2/5 mx-auto">
<form class="bg-white shadow-md rounded-lg px-8 pt-6 pb-4 mb-4" onclick="return false">
<div class="mb-4">
<label class="block text-gray-500 font-medium text-sm mb-2">Pilihan Melalui Bulan dan Tahun</label>
<div class="flex flex-wrap">
<div class="flex flex-row">
<span style="background-color: #F9FAFB" class="text-gray-600 border border-2 rounded-l px-4 py-2 whitespace-no-wrap">Mula</span>
<flat-pickr v-model="mula" :config="config" class="border border-2 rounded-r px-4 py-2 w-80r mr-2"></flat-pickr>
<span style="background-color: #F9FAFB" class="text-gray-600 border border-2 rounded-l px-4 py-2 whitespace-no-wrap">Hingga</span>
<flat-pickr v-model="hingga" :config="config" class="border border-2 rounded-r px-4 py-2 w-80r mr-2"></flat-pickr>
</div>
</div>
<div class="flex justify-center mt-10">
<button @click.prevent="generatebakilelong" 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">Cari</button>
</div>
</div>
</form>
</div>
<senarai-baki :bakilelong="bakilelong" :bulanmula="mula" :bulanhingga="hingga" ref="senaraibaki" @updateLoad="updateLoad"></senarai-baki>
</div>
</template>
<script>
import SenaraiBaki from './SenaraiBakiLelong.vue'
import monthSelectPlugin from 'flatpickr/dist/plugins/monthSelect/index.js'
import 'flatpickr/dist/plugins/monthSelect/style.css'
export default {
data() {
return {
mula: null,
hingga: null,
loadbakilelong: null,
bakilelong:[],
config: {
wrap: false, // set wrap to true only when using 'input-group'
maxDate: 'today',
plugins: [
new monthSelectPlugin({
shorthand: true, //defaults to false
dateFormat: "m-Y", //defaults to "F Y"
altFormat: "F Y", //defaults to "F Y"
})
]
},
}
},
methods: {
async generatebakilelong () {
let cawangan = 'KB2';
this.loadbakilelong = 'process';
if (this.mula == null && this.mula == null) {
console.log('xleh');
} else {
await this.axios.get(this.$hostname + '/admin/rangebakilelong/' + cawangan, {
params: {
mula: this.mula,
hingga: this.hingga
}
}).then(response => {
this.bakilelong = response.data;
this.loadbakilelong = 'success';
if(this.bakilelong.length <= 0)
{
this.loadbakilelong = null;
this.$swal(
'Amaran',
'Baki lelong tiada dalam senarai',
'error'
)
}
});
await this.$refs.senaraibaki.associate();
}
},
updateLoad: function(){
this.loadbakilelong = null;
this.bakilelong = null;
this.mula = null;
this.hingga = null;
}
},
components: {
SenaraiBaki,
}
}
</script>
+26 -5
View File
@@ -26,6 +26,11 @@ import 'sweetalert2/dist/sweetalert2.min.css';
import VueHtml5Editor from 'vue-html5-editor'
import VueFlatPickr from 'vue-flatpickr-component';
import 'flatpickr/dist/flatpickr.css';
import VueExcelXlsx from "vue-excel-xlsx";
let ops = {
// global component name
name: "vue-html5-editor",
@@ -106,6 +111,8 @@ Vue.use(datetime)
Vue.use(VueContentPlaceholders)
Vue.use(VueSweetalert2);
Vue.use(VueFriendlyIframe)
Vue.use(VueFlatPickr)
Vue.use(VueExcelXlsx)
Vue.use(require('vue-moment'));
@@ -119,18 +126,18 @@ Vue.use(require('vue-pusher'), {
}
});
Vue.prototype.$api1 = 'http://api.arrahn/'
Vue.prototype.$api1 = 'http://localhost:8000/'
Vue.prototype.$username = document.querySelector("meta[name='user_name']").getAttribute('content');
Vue.prototype.$userroles = document.querySelector("meta[name='user_roles']").getAttribute('content');
let initial = 'KB2';
let initialhostname = 'http://api.arrahn/';
let initialhostname = 'http://localhost:8000/';
const store = new Vuex.Store({
state: {
$kodcaw: 'KB2',
$hostname: 'http://api.arrahn/'
$hostname: 'http://localhost:8000/'
},
plugins: [createPersistedState()],
mutations: {
@@ -199,8 +206,10 @@ Vue.component('blacklist-pelanggan', require('./pages/Blacklist.vue').default)
Vue.component('harian-component', require('./components/Analisa/Harian.vue').default)
Vue.component('tahunan-component', require('./components/Analisa/Tahunan.vue').default)
Vue.component('aging-component', require('./components/Analisa/Aging.vue').default)
//Component Berkaitan
Vue.component('square-component', require('./components/util/Clock.vue').default)
Vue.component('bilangan-component', require('./components/Chart/BilanganChart.vue').default)
@@ -209,14 +218,26 @@ Vue.component('getkodcaw-component', require('./Bajet/GetKodcaw.vue').default)
Vue.component('senaraibajet-component', require('./Bajet/Homebajet.vue').default)
Vue.component('clock-component', require('./components/util/Clock.vue').default)
//Logout
Vue.component('logout-component', require('./Logout.vue').default)
//Notify
Vue.component('notify-component', require('./components/util/Notify.vue').default)
//Permohonan
Vue.component('permohonanindex-component', require('./Permohonan/index.vue').default)
Vue.component('permohonan-component', require('./Permohonan/SenaraiMohon.vue').default)
//WTD
Vue.component('wtdindex-component', require('./WTD/index.vue').default)
//Audit
Vue.component('audit-component', require('./Audit/Home.vue').default)
Vue.component('apexchart', VueApexCharts)
+203
View File
@@ -0,0 +1,203 @@
<template>
<div class="mb-4 w-full grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4">
<div class="bg-white shadow rounded-lg p-4 sm:p-6 xl:p-8">
<h3 class="text-xl font-bold text-gray-500">Data Lelong</h3>
<div class="relative overflow-x-auto shadow-md sm:rounded-lg">
<table class="w-full text-sm text-left text-gray-500 dark:text-gray-400">
<thead class="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400">
<tr>
<th scope="col" class="px-6 py-3">
Bulan
</th>
<th scope="col" class="px-6 py-3">
Bil
</th>
<th scope="col" class="px-6 py-3">
%
</th>
<th scope="col" class="px-6 py-3">
RM
</th>
</tr>
</thead>
<tbody>
<tr class="bg-white border-b dark:bg-gray-800 dark:border-gray-700">
<th class="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap">
1
</th>
<td class="px-6 py-4">
21
</td>
<td class="px-6 py-4">
10
</td>
<td class="px-6 py-4">
1,232.32
</td>
</tr>
<tr class="bg-white border-b dark:bg-gray-800 dark:border-gray-700">
<th scope="row" class="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap">
2
</th>
<td class="px-6 py-4">
11
</td>
<td class="px-6 py-4">
43
</td>
<td class="px-6 py-4">
5,000.00
</td>
</tr>
<tr class="bg-white dark:bg-gray-800">
<th scope="row" class="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap">
3
</th>
<td class="px-6 py-4">
3
</td>
<td class="px-6 py-4">
54
</td>
<td class="px-6 py-4">
3,432.00
</td>
</tr>
<tr class="bg-white dark:bg-gray-800">
<th scope="row" class="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap">
3
</th>
<td class="px-6 py-4">
3
</td>
<td class="px-6 py-4">
54
</td>
<td class="px-6 py-4">
3,432.00
</td>
</tr>
<tr class="bg-white dark:bg-gray-800">
<th scope="row" class="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap">
3
</th>
<td class="px-6 py-4">
3
</td>
<td class="px-6 py-4">
54
</td>
<td class="px-6 py-4">
3,432.00
</td>
</tr>
<tr class="bg-white dark:bg-gray-800">
<th scope="row" class="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap">
3
</th>
<td class="px-6 py-4">
3
</td>
<td class="px-6 py-4">
54
</td>
<td class="px-6 py-4">
3,432.00
</td>
</tr>
<tr class="bg-white dark:bg-gray-800">
<th scope="row" class="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap">
3
</th>
<td class="px-6 py-4">
3
</td>
<td class="px-6 py-4">
54
</td>
<td class="px-6 py-4">
3,432.00
</td>
</tr>
<tr class="bg-white dark:bg-gray-800">
<th scope="row" class="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap">
3
</th>
<td class="px-6 py-4">
3
</td>
<td class="px-6 py-4">
54
</td>
<td class="px-6 py-4">
3,432.00
</td>
</tr>
<tr class="bg-white dark:bg-gray-800">
<th scope="row" class="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap">
3
</th>
<td class="px-6 py-4">
3
</td>
<td class="px-6 py-4">
54
</td>
<td class="px-6 py-4">
3,432.00
</td>
</tr>
<tr class="bg-white dark:bg-gray-800">
<th scope="row" class="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap">
3
</th>
<td class="px-6 py-4">
3
</td>
<td class="px-6 py-4">
54
</td>
<td class="px-6 py-4">
3,432.00
</td>
</tr>
<tr class="bg-white dark:bg-gray-800">
<th scope="row" class="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap">
3
</th>
<td class="px-6 py-4">
3
</td>
<td class="px-6 py-4">
54
</td>
<td class="px-6 py-4">
3,432.00
</td>
</tr>
<tr class="bg-white dark:bg-gray-800">
<th scope="row" class="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap">
3
</th>
<td class="px-6 py-4">
3
</td>
<td class="px-6 py-4">
54
</td>
<td class="px-6 py-4">
3,432.00
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="bg-white shadow rounded-lg p-4 sm:p-6 xl:p-8">das</div>
<div class="bg-white shadow rounded-lg p-4 sm:p-6 xl:p-8">dasdsa</div>
</div>
</template>
+2 -2
View File
@@ -84,7 +84,7 @@
case 'JLI':
case 'ARP':
case '020303':{
this.sethostname('http://api.arrahn')
this.sethostname('http://localhost:8000')
break;
}
case '010621':
@@ -114,7 +114,7 @@
this.sethostname('http://api3.arrahn')
break;
}
default: this.sethostname('http://api.arrahn')
default: this.sethostname('http://localhost:8000')
break;
}
}
+23
View File
@@ -30,6 +30,17 @@ import StatusMohon from './Permohonan/StatusMohon'
import RekodMohon from './Permohonan/RekodMohon'
import WtdPage from './WTD/wtd'
import Wtdselect from './WTD/selection'
import WtdRekod from './WTD/Rekod'
import WtdSpecific from './WTD/SelectWTD'
import AuditPage from './Audit/Audit'
import KeuntunganSebenarPage from './Audit/KeuntunganSebenar'
import UpahSimpanPage from './Audit/UpahSimpan'
@@ -64,6 +75,18 @@ export default new VueRouter({
{ name: 'permohonanstatus',path: '/permohonan/status/:mohonid', component: StatusMohon },
{ path: '/permohonan/rekod', component: RekodMohon },
{ path: '/wtd', component: Wtdselect },
{ path: '/wtd/tambah', component: WtdPage },
{ path: '/wtd/rekod', component: WtdRekod },
{ name: '/selectwtd',path: '/wtd/select/:batchno', component: WtdSpecific },
{ path: '/audit', component: AuditPage },
{ path: '/audit/keuntungansebenar', component: KeuntunganSebenarPage },
{ path: '/audit/upahsimpan', component: UpahSimpanPage },
],
mode: 'history'
});
@@ -0,0 +1,262 @@
<script src="{{ asset('js/table2excel.js') }}"></script>
<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; */
/* border: 1px solid black; */
width: 100%;
}
#details td, #details th {
padding: 8px;
font-size:11px;
}
#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;
}
</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>{{ $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>Senarai Keuntungan Sebenar</b></th>
<th></th>
<th></th>
<th><b> Tarikh Cetak:</b>
{{ $tarikhasal }}
</th>
<th></th>
</tr>
</table>
<br>
<table id="details">
<thead>
<th>Bil</th>
<th>No IC</th>
<th>Norujukan</th>
<th>Bayaran Keuntungan</th>
<th>Keuntungan Rebet</th>
<th>Cawangan</th>
<th>trans_type</th>
</thead>
@php $counter = 1;$totalpinjaman = 0;$totalbaki = 0; @endphp
@foreach($laporan as $index=>$item)
@php
if($jenistebus === 'T')
$totalbaki += $item['keuntungan_rebet'];
else
$totalbaki += $item['bayaran_keuntungan'];
@endphp
<tr>
<td>{{ $counter }}</td>
<td>{{ $item['nokp'] }}</td>
<td>{{ $item['norujukan'] }}</td>
<td>{{ $item['bayaran_keuntungan'] }}</td>
<td>{{ $item['keuntungan_rebet'] }}</td>
<td>{{ $item['kodcaw'] }}</td>
<td>{{ $item['trans_type'] }}</td>
</tr>
@php $counter++; @endphp
@endforeach
<tr>
<th colspan='2'>Jumlah</th>
<th></th>
@if($jenistebus === 'T')
<th></th>
<th>{{ $totalbaki }}</th>
@else
<th></th>
<th>{{ $totalbaki }}</th>
@endif
</tr>
</table>
<br>
<br>
<table id="sign">
<tr>
<td></td>
<td colspan="2"> .................................................................. </td>
<td> </td>
<td colspan="2">.................................................................. </td>
<td> </td>
</tr>
<tr>
<td></td>
<td colspan="2"><B> DI SEMAK</B> </td>
<td> </td>
<td colspan="2"><B>DI SAHKAN </B></td>
<td> </td>
</tr>
</table>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function () {
// window.print();
// window.onfocus=function(){ window.close();}
let tarikh = "{{ $tarikhasal }}";
let jenis = "{{ $jenistebus }}";
let namacawangan = "{{ $cawangan_detail['namacaw'] }}";
var table2excel = new Table2Excel();
table2excel.export(document.querySelectorAll("#details"),'laporan_audit_' + tarikh + '_' + namacawangan + '_' + jenis);
setTimeout(function(){ window.close() }, 1000);
});
</script>
@@ -0,0 +1,248 @@
<script src="{{ asset('js/table2excel.js') }}"></script>
<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; */
/* border: 1px solid black; */
width: 100%;
}
#details td, #details th {
padding: 8px;
font-size:11px;
}
#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;
}
</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>{{ $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>Senarai Keuntungan Sebenar</b></th>
<th></th>
<th></th>
<th><b> Tarikh Cetak:</b>
{{ $tarikhasal }}
</th>
<th></th>
</tr>
</table>
<br>
<table id="details">
<thead>
<th>Bil</th>
<th>Norujukan</th>
<th>Tarikh Lelong</th>
<th>Baki Upah</th>
</thead>
@php $counter = 1;$totalbaki = 0; @endphp
@foreach($laporan as $index=>$item)
@php
$totalbaki += $item['bakiupah'];
@endphp
<tr>
<td>{{ $counter }}</td>
<td>{{ $item['norujukan'] }}</td>
<td>{{ $item['t_lelong'] }}</td>
<td>{{ $item['bakiupah'] }}</td>
</tr>
@php $counter++; @endphp
@endforeach
<tr>
<th>Jumlah</th>
<th></th>
<th></th>
<th>{{ $totalbaki }}</th>
</tr>
</table>
<br>
<br>
<table id="sign">
<tr>
<td></td>
<td colspan="2"> .................................................................. </td>
<td> </td>
<td colspan="2">.................................................................. </td>
<td> </td>
</tr>
<tr>
<td></td>
<td colspan="2"><B> DI SEMAK</B> </td>
<td> </td>
<td colspan="2"><B>DI SAHKAN </B></td>
<td> </td>
</tr>
</table>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function () {
// window.print();
// window.onfocus=function(){ window.close();}
let tarikh = "{{ $tarikhasal }}";
let jenis = "{{ $jenistebus }}";
let namacawangan = "{{ $cawangan_detail['namacaw'] }}";
var table2excel = new Table2Excel();
table2excel.export(document.querySelectorAll("#details"),'laporan_audit_' + tarikh + '_' + namacawangan + '_' + jenis);
setTimeout(function(){ window.close() }, 1000);
});
</script>
+18
View File
@@ -0,0 +1,18 @@
@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' : 'Audit', 'icon' : 'fas fa-file-alt' }]"></breadcrumb>
<audit-component></audit-component>
</div>
</main>
@include('layouts.footer')
@endsection
+2
View File
@@ -44,6 +44,8 @@
<tahunan-component kodcaw={{ Auth::user()->cawangan }}></tahunan-component>
<aging-component></aging-component>
<bilangan-component kodcaw={{ Auth::user()->cawangan }}></bilangan-component>
+1 -1
View File
@@ -135,7 +135,7 @@
@auth
<clock-component></clock-component>
<cawangan-component roles={{ Auth::user()->roles }} route={{ (Route::is('home') || Route::is('akaun.home')) ? 'ada' : 'tiada' }} akaun={{ (Route::is('akaun.home') ? 'yes' : 'no')}}></cawangan-component>
<cawangan-component roles={{ Auth::user()->roles }} route={{ (Route::is('home') || Route::is('akaun.home') || Route::is('audit.index')) ? 'ada' : 'tiada' }} akaun={{ ((Route::is('akaun.home') || Route::is('audit.index')) ? 'yes' : 'no')}}></cawangan-component>
@endauth
+26 -4
View File
@@ -159,6 +159,17 @@
</li>
</a>
{{-- <a href="{{ route('wtd.index') }}" class="rounded mb-2 mr-2 {{ Route::is('wtd') || Route::is('wtd.*') ? 'bg-gray-200 rounded text-white-500' : 'hover:bg-yellow-300 ' }}">
<li class="flex w-full justify-between text-gray-600 hover:text-gray-500 cursor-pointer items-center ">
<div class="flex items-center">
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
<path stroke-linecap="round" stroke-linejoin="round" d="M17 9V7a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2m2 4h10a2 2 0 002-2v-6a2 2 0 00-2-2H9a2 2 0 00-2 2v6a2 2 0 002 2zm7-5a2 2 0 11-4 0 2 2 0 014 0z" />
</svg>
<span class="text-sm ml-2 text-lg">WTD</span>
</div>
</li>
</a> --}}
<a href="{{ route('kelulusan') }}" class="rounded mb-2 mr-2 {{ Route::is('kelulusan') || Route::is('kelulusan.*') ? 'bg-gray-200 rounded text-white-500' : 'hover:bg-yellow-300 ' }}">
<li class="flex w-full justify-between text-gray-600 hover:text-gray-500 cursor-pointer items-center ">
<div class="flex items-center">
@@ -182,7 +193,7 @@
</li>
</a>
<a href="{{ route('permohonan.index') }}" class="rounded mb-2 mr-2 {{ Route::is('permohonan') || Route::is('permohonan.*') ? 'bg-gray-200 rounded text-white-500' : 'hover:bg-yellow-300 ' }}">
{{-- <a href="{{ route('permohonan.index') }}" class="rounded mb-2 mr-2 {{ Route::is('permohonan') || Route::is('permohonan.*') ? 'bg-gray-200 rounded text-white-500' : 'hover:bg-yellow-300 ' }}">
<li class="flex w-full justify-between text-gray-600 hover:text-gray-500 cursor-pointer items-center ">
<div class="flex items-center">
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
@@ -191,10 +202,21 @@
<span class="text-sm ml-2 text-lg">Permohonan</span>
</div>
</li>
</a>
</a> --}}
@elseif(Auth::user()->roles == 'akaun')
<a href="{{ route('audit.index') }}" class="rounded mb-2 mr-2 {{ Route::is('audit.index') || Route::is('audit.*') ? 'bg-gray-200 rounded text-white-500' : 'hover:bg-yellow-300 ' }}">
<li class="flex w-full justify-between text-gray-600 hover:text-gray-500 cursor-pointer items-center ">
<div class="flex items-center">
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10" />
</svg>
<span class="text-sm ml-2 text-lg">Audit</span>
</div>
</li>
</a>
<a href="{{ route('akaun.home') }}" class="rounded mb-2 mr-2 {{ Route::is('akaun.home') || Route::is('akaun.home.*') ? 'bg-gray-200 rounded text-white-500' : 'hover:bg-yellow-300 ' }}">
<li class="flex w-full justify-between text-gray-600 hover:text-gray-500 cursor-pointer items-center ">
<div class="flex items-center">
@@ -206,7 +228,7 @@
</li>
</a>
<a href="{{ route('permohonan.index') }}" class="rounded mb-2 mr-2 {{ Route::is('permohonan') || Route::is('permohonan.*') ? 'bg-gray-200 rounded text-white-500' : 'hover:bg-yellow-300 ' }}">
{{-- <a href="{{ route('permohonan.index') }}" class="rounded mb-2 mr-2 {{ Route::is('permohonan') || Route::is('permohonan.*') ? 'bg-gray-200 rounded text-white-500' : 'hover:bg-yellow-300 ' }}">
<li class="flex w-full justify-between text-gray-600 hover:text-gray-500 cursor-pointer items-center ">
<div class="flex items-center">
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
@@ -215,7 +237,7 @@
<span class="text-sm ml-2 text-lg">Permohonan</span>
</div>
</li>
</a>
</a> --}}
@endif
+178 -50
View File
@@ -27,7 +27,7 @@
</head>
<body class="p-2">
<div class="mb-10">
<div class="mb-2">
<div class="w-full flex flex-col justify-end items-end text-right">
<div class="ml-2">
@@ -36,13 +36,15 @@
<p class="text-xs">{{ $cawangan_detail['alamat1'] }}</p>
<p class="text-xs">{{ $cawangan_detail['alamat2'] }}</p>
<p class="text-xs">No Tel : {{ $cawangan_detail['notel'] }}</p>
<div class="flex justify-end">
<p class="text-xs mr-2">No Tel : {{ $cawangan_detail['notel'] }}</p>
<p class="text-xs">No Faks : {{ $cawangan_detail['nofaks'] }}</p>
</div>
</div>
</div>
</div>
<div class="flex mb-6">
<div class="flex mb-2">
<div class="ml-2 w-1/2 flex flex-col justify-end">
<b class="text-xs border border-black pl-1">Kepada</b>
<p class="text-xs">
@@ -63,7 +65,7 @@
</div>
</div>
<div class="flex mb-6">
<div class="flex mb-2">
<div class="ml-2 w-1/2 flex flex-col justify-end">
<b class="text-xs border border-black pl-1">Daripada</b>
<p class="text-xs">{{ ($permohonan['jawatan_pemohon'] == 'pc') ? 'Pengurus Cawangan' : 'Pen. Peng. Cawangan' }} {{ $cawangan_detail['namacaw'] }}</p>
@@ -78,9 +80,53 @@
</div>
</div>
<div class="flex mb-6">
<div class="flex mb-2">
<div class="ml-2 w-full flex flex-col">
<b class="text-xs border border-black pl-1 text-center bg-gray-300 font-bold"> PENYEDIA PERMOHONAN</b>
</div>
</div>
<div class="flex mb-2">
<div class="ml-2 w-1/2 flex flex-col justify-end">
<b class="text-xs border border-black pl-1">PERMOHONAN WANG</b>
<b class="text-xs border border-black pl-1">Disediakan oleh</b>
<p class="h-8"></p>
<div class="flex">
{{-- <div class="w-2/3"></div> --}}
{{-- <p class="text-xs w-full text-right italic text-black">{{ $permohonan['nama_pemohon'] }}</p> --}}
</div>
<div class="flex">
<div class="w-2/3"></div>
<div class="text-right border-t border-gray-300 w-1/3"></div>
</div>
<div class="flex">
<div class="w-2/3"></div>
<p class="text-xs w-2/3 text-right">{{ ($permohonan['jawatan_pemohon'] == 'pc') ? 'Pengurus Cawangan' : 'Pen. Peng. Cawangan' }}</p>
</div>
<div class="flex">
<p class="text-xs text-center w-2/3">Tarikh</p>
<p class="text-xs w-1/3 border border-gray-400 text-right">
@php
$myDateTime = DateTime::createFromFormat('Y-m-d', $permohonan['tarikh_permohonan']);
$formattedweddingdate = $myDateTime->format('d-m-Y');
echo($formattedweddingdate)
@endphp
</p>
</div>
</div>
</div>
<div class="flex mb-2">
<div class="ml-2 w-full flex flex-col">
<b class="text-xs border border-black pl-1 text-center bg-gray-300 font-bold">PERMOHONAN PENDAHULUAN / SERAHAN WANG PETI BESI</b>
</div>
</div>
<div class="flex mb-1">
<div class="ml-2 w-1/2 flex flex-col justify-end">
<b class="text-xs border border-black pl-1">PERMOHONAN PENDAHULUAN WANG PETI BESI</b>
@if($permohonan['jenismohon'] === 'permohonanwang')
<div class="flex">
<p class="text-xs w-full">Jumlah dipohon</p>
@@ -102,6 +148,69 @@
RM {{ number_format($permohonan['baki_petibesi'],2) }}
</p>
</div>
<div class="flex">
<p class="text-xs w-full">Pendahuluan terkumpul sehingga kini</p>
<p class="text-xs w-2/3 border border-gray-400 text-right">
</p>
</div>
<div class="flex">
<p class="text-xs w-full">Baki Pembiayaan</p>
<p class="text-xs w-2/3 border border-gray-400 text-right">
</p>
</div>
<div class="flex">
<p class="text-xs w-1/5">Nama</p>
<p class="text-xs w-4/5 border border-gray-400 text-right">
</p>
</div>
<div class="flex">
<p class="text-xs w-full">No. KP</p>
<p class="text-xs w-2/3 border border-gray-400 text-right">
</p>
</div>
<div class="flex flex-col">
<p class="text-xs w-full">Penerima Telegrafic Transfer (TT)</p>
<p class="text-xs w-full h-4 border border-gray-400 text-right">
</p>
<p class="text-xs w-full h-4 border border-gray-400">
Nota:
</p>
</div>
<div class="mt-2 flex mb-2">
<div class="w-full flex flex-col justify-end">
<b class="text-xs border border-black pl-1">Disahkan oleh</b>
<p class="h-8"></p>
<div class="flex">
{{-- <div class="w-2/3"></div> --}}
{{-- <p class="text-xs w-full text-right italic text-black">{{ $permohonan['nama_pemohon'] }}</p> --}}
</div>
<div class="flex">
<div class="w-2/3"></div>
<div class="text-right border-t border-gray-300 w-1/3"></div>
</div>
<div class="flex">
<div class="w-2/3"></div>
<p class="text-xs w-2/3 text-right">Pengurus Cawangan</p>
</div>
<div class="flex">
<p class="text-xs text-center w-2/3">Tarikh</p>
<p class="text-xs w-1/3 border border-gray-400 text-right">
@php
$myDateTime = DateTime::createFromFormat('Y-m-d', $permohonan['tarikh_permohonan']);
$formattedweddingdate = $myDateTime->format('d-m-Y');
echo($formattedweddingdate)
@endphp
</p>
</div>
</div>
</div>
@else
<div class="flex">
<p class="text-xs w-full">Jumlah dipohon</p>
@@ -123,20 +232,41 @@
</div>
<div class="ml-2 w-1/2 flex flex-col">
<b class="text-xs border border-black pl-1 justify-end">BAYARAN BALIK</b>
<b class="text-xs border border-black pl-1 justify-end">SERAHAN WANG PETI BESI</b>
@if($permohonan['jenismohon'] === 'permohonanwang')
<div class="flex">
<p class="text-xs w-full">Bayar balik pinjaman</p>
<p class="text-xs w-full">Jumlah Serahan</p>
<p class="text-xs w-2/3 border border-gray-400"></p>
</div>
<div class="flex">
<p class="text-xs w-full">Tarikh bank-in ke PKB</p>
<p class="text-xs w-full">Tarikh Transaksi</p>
<p class="text-xs w-2/3 border border-gray-400"></p>
</div>
<div class="flex">
<p class="text-xs w-full">Baki Peti Besi</p>
<p class="text-xs w-full">Baki Peti besi</p>
<p class="text-xs w-2/3 border border-gray-400"></p>
</div>
<div>
<div class="mb--1">
<label class="flex items-center">
<input type="checkbox" class="form-checkbox h-4 w-4">
<span class="text-xs ml-1">Terminal</span>
</label>
</div>
<div class="mb--1">
<label class="flex items-center">
<input type="checkbox" class="form-checkbox h-4 w-4">
<span class="text-xs ml-1">Bank In</span>
</label>
</div>
<div class="mb--1">
<label class="flex items-center">
<input type="checkbox" class="form-checkbox h-4 w-4">
<span class="text-xs ml-1">Cash In Transit (CIT)</span>
</label>
</div>
</div>
@else
<div class="flex">
<p class="text-xs w-full">Bayar balik pinjaman</p>
@@ -160,42 +290,23 @@
</div>
</div>
<div class="flex mb-6">
<div class="ml-2 w-1/2 flex flex-col justify-end">
<b class="text-xs border border-black pl-1">Disediakan oleh</b>
<p class="h-14"></p>
<div class="flex">
{{-- <div class="w-2/3"></div> --}}
<p class="text-xs w-full text-right italic text-black">{{ $permohonan['nama_pemohon'] }}</p>
</div>
<div class="flex">
<div class="w-2/3"></div>
<div class="text-right border-t border-gray-300 w-1/3"></div>
</div>
<div class="flex">
<div class="w-2/3"></div>
<p class="text-xs w-2/3 text-right">{{ ($permohonan['jawatan_pemohon'] == 'pc') ? 'Pengurus Cawangan' : 'Pen. Peng. Cawangan' }}</p>
</div>
<div class="flex">
<p class="text-xs text-center w-2/3">Tarikh</p>
<p class="text-xs w-1/3 border border-gray-400 text-right">
@php
$myDateTime = DateTime::createFromFormat('Y-m-d', $permohonan['tarikh_permohonan']);
$formattedweddingdate = $myDateTime->format('d-m-Y');
echo($formattedweddingdate)
@endphp
</p>
</div>
<div class="flex mb-2">
<div class="ml-2 w-full flex flex-col">
<b class="text-xs border border-black pl-1 text-center bg-gray-300 font-bold">PENGESAHAN BAHAGIAN OPERASI AR-RAHN</b>
</div>
</div>
<div class="flex mb-2">
<div class="ml-2 w-1/2 flex flex-col">
</div>
<div class="ml-2 w-1/2 flex flex-col">
<b class="text-xs border border-black pl-1">Disahkan oleh</b>
<p class="h-14"></p>
<p class="h-8"></p>
<div class="flex">
{{-- <div class="w-2/3"></div> --}}
<p class="text-xs w-full text-right italic">{{ $permohonan['nama_operasi'] }}</p>
{{-- <p class="text-xs w-full text-right italic">{{ $permohonan['nama_operasi'] }}</p> --}}
</div>
<div class="flex">
<div class="w-2/3"></div>
@@ -217,11 +328,11 @@
</div>
</div>
</div>
<div class="w-full text-center border border-black pl-1">
<b class="text-xs">@php if($jeniscawangan === 'PKB')
<div class="ml-2 w-full flex flex-col">
<b class="text-xs border border-black pl-1 text-center bg-gray-300 font-bold">@php if($jeniscawangan === 'PKB')
{
echo 'KELULUSAN ' . $fullname;
}else{
@@ -232,17 +343,17 @@
</div>
<div class="flex">
<p class="text-xs mt-5 w-2/4">Diluluskan pengeluaran wang kepada Ar-Rahn sebanyak RM</p>
<p class="text-xs mt-5 w-1/3">{{ ($permohonan['jumlah_diluluskan'] !== null) ? number_format($permohonan['jumlah_diluluskan'],2) : '' }} </p>
<p class="text-xs mt-2 w-2/4">Diluluskan pengeluaran wang kepada Ar-Rahn sebanyak RM</p>
<p class="text-xs mt-2 w-1/3">{{ ($permohonan['jumlah_diluluskan'] !== null) ? number_format($permohonan['jumlah_diluluskan'],2) : '' }} </p>
</div>
<div class="flex">
<p class="text-xs w-2/3">{{ ($ringgittext !== '') ? '(Ringgit Malaysia:' . $ringgittext . ' Sahaja)' : '' }}</p>
</div>
<div class="flex mb-6">
<div class="flex mb-2">
<div class="ml-2 w-1/2 flex flex-col justify-end">
<p class="h-20"></p>
<p class="h-8"></p>
<div class="flex">
<div class="w-2/3"></div>
<div class="text-right border-t border-gray-300 w-1/3"></div>
@@ -261,13 +372,30 @@
@endphp
</p>
</div>
{{-- <p class="text-xs">NO KP : 970403-03-5003</p> --}}
<div class="block">
<span class="text-black font-bold text-xs">Kaedah Penghantaran:</span>
<div class="flex ">
<div class="mb--1 flex">
<label class="flex items-center">
<input type="checkbox" class="form-checkbox h-4 w-4" checked>
<span class="text-xs ml-2">Cash In Transit (CIT)</span>
</label>
</div>
<div class="mb--1">
<label class="flex items-center">
<input type="checkbox" class="form-checkbox h-4 w-4">
<span class="text-xs ml-2">Telegrafic Transfer (TT)</span>
</label>
</div>
</div>
</div>
</div>
<div class="ml-2 w-1/2 flex flex-col">
<p class="h-20"></p>
<p class="h-8"></p>
<div class="flex">
<div class="w-2/3"></div>
<div class="text-right border-t border-gray-300 w-1/3"></div>
@@ -301,7 +429,7 @@
</div>
</div>
<div class="flex mb-6">
<div class="flex mb-2">
<div class="ml-2 w-1/2 flex flex-col justify-end">
<b class="text-xs border border-black pl-1 text-center">PENERIMA WANG</b>
<b class="text-xs border border-black pl-1 text-center">Wakil Ar-Rahn</b>
+240
View File
@@ -0,0 +1,240 @@
<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; */
/* border: 1px solid black; */
width: 100%;
}
#details td, #details th {
padding: 8px;
font-size:11px;
}
#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;
}
</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>{{ $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>Senarai SAG</b></th>
<th></th>
<th></th>
<th><b> Tarikh Cetak:</b>
@php
$myDateTime = DateTime::createFromFormat('Y-m-d', $tarikh_cetak);
$formattedweddingdate = $myDateTime->format('d-m-Y');
echo($formattedweddingdate)
@endphp
</th>
<th></th>
</tr>
<tr>
<th colspan ="5"><b>Mula : {{ $mula }} - Hingga : {{ $hingga }}</b></th>
<th></th>
<th></th>
<th></th>
</tr>
</table>
<table id="details">
<thead>
<th>Bil</th>
<th>Norujukan</th>
<th>Nama</th>
<th>No. IC</th>
<th>Baki</th>
</thead>
<tr></tr>
@php $counter = 1;$totalpinjaman = 0;$totalbaki = 0; @endphp
@foreach($tuntutbaki as $index=>$item)
@php $totalbaki += $item['baki']; @endphp
<tr>
<td>{{ $counter }}</td>
<td>{{$item['norujukan']}}</td>
<td>@php
$customer_info = Http::withOptions(['verify' => config('app.api_verify')])->get($api_url . '/api/customers/'. $item['nokp'])->json();
echo ($customer_info['nama']);
@endphp</td>
<td>{{ $item['nokp'] }}</td>
<td>{{ number_format($item['baki'],2) }}</td>
</tr>
@php $counter++; @endphp
@endforeach
<tr>
<th colspan='2'>Jumlah</th>
<th></th>
<th></th>
<th>{{ number_format($totalbaki,2) }}</th>
</tr>
</table>
<br>
<br>
<table id="sign">
<tr>
<td></td>
<td colspan="2"> .................................................................. </td>
<td> </td>
<td colspan="2">.................................................................. </td>
<td> </td>
</tr>
<tr>
<td></td>
<td colspan="2"><B> DI SEMAK</B> </td>
<td> </td>
<td colspan="2"><B>DI SAHKAN </B></td>
<td> </td>
</tr>
</table>
+260
View File
@@ -0,0 +1,260 @@
<script src="{{ asset('js/table2excel.js') }}"></script>
<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; */
/* border: 1px solid black; */
width: 100%;
}
#details td, #details th {
padding: 8px;
font-size:11px;
}
#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;
}
</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>{{ $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>Senarai SAG</b></th>
<th></th>
<th></th>
<th><b> Tarikh Cetak:</b>
@php
$myDateTime = DateTime::createFromFormat('Y-m-d', $tarikh_cetak);
$formattedweddingdate = $myDateTime->format('d-m-Y');
echo($formattedweddingdate)
@endphp
</th>
<th></th>
</tr>
<tr>
<th colspan ="5"><b>Mula : {{ $mula }} - Hingga : {{ $hingga }}</b></th>
<th></th>
<th></th>
<th></th>
</tr>
</table>
<br>
<table id="details">
<thead>
<th>Bil</th>
<th>Norujukan</th>
<th>Nama</th>
<th>No. IC</th>
<th>Baki</th>
</thead>
@php $counter = 1;$totalpinjaman = 0;$totalbaki = 0; @endphp
@foreach($tuntutbaki as $index=>$item)
@php $totalbaki += $item['baki']; @endphp
<tr>
<td>{{ $counter }}</td>
<td>{{$item['norujukan']}}</td>
<td>@php
$customer_info = Http::withOptions(['verify' => config('app.api_verify')])->get($api_url . '/api/customers/'. $item['nokp'])->json();
echo ($customer_info['nama']);
@endphp</td>
<td>{{ $item['nokp'] }}</td>
<td>{{ number_format($item['baki'],2) }}</td>
</tr>
@php $counter++; @endphp
@endforeach
<tr>
<th colspan='2'>Jumlah</th>
<th></th>
<th></th>
<th>{{ number_format($totalbaki,2) }}</th>
</tr>
</table>
<br>
<br>
<table id="sign">
<tr>
<td></td>
<td colspan="2"> .................................................................. </td>
<td> </td>
<td colspan="2">.................................................................. </td>
<td> </td>
</tr>
<tr>
<td></td>
<td colspan="2"><B> DI SEMAK</B> </td>
<td> </td>
<td colspan="2"><B>DI SAHKAN </B></td>
<td> </td>
</tr>
</table>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function () {
// window.print();
// window.onfocus=function(){ window.close();}
let tarikhmula = "{{ $mula }}";
let tarikhhingga = "{{ $hingga }}";
let namacawangan = "{{ $cawangan_detail['namacaw'] }}";
var table2excel = new Table2Excel();
table2excel.export(document.querySelectorAll("#details"),'laporan_wtd_' + tarikhmula + '_' + tarikhhingga + '_' + namacawangan);
setTimeout(function(){ window.close() }, 1000);
});
</script>
+16
View File
@@ -0,0 +1,16 @@
@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' : 'Wang Tak Dituntut', 'icon' : 'fas fa-gavel' }]"></breadcrumb>
<wtdindex-component></wtd-component>
</div>
</main>
@include('layouts.footer')
@endsection
+10
View File
@@ -110,6 +110,16 @@ Route::get('/permohonan',['as'=>'permohonan.index','uses'=>'App\Http\Controllers
Route::get('/permohonan/cetakanpb',['as'=>'permohonan.cetakanpb','uses'=>'App\Http\Controllers\PermohonanController@CetakanPB']);
Route::get('/permohonan/cetakanpenuh',['as'=>'permohonan.cetakanpenuh','uses'=>'App\Http\Controllers\PermohonanController@CetakanPenuh']);
//WTD
Route::get('/wtd',['as'=>'wtd.index','uses'=>'App\Http\Controllers\WTDController@index']);
Route::get('/wtd/cetakan', ['as'=>'wtd.cetak','uses'=>'App\Http\Controllers\WTDController@CetakSenarai']);
//Audit
Route::get('/audit',['as'=>'audit.index','uses'=>'App\Http\Controllers\AkaunController@AuditGenerator']);
Route::get('/audit/cetakan', ['as'=>'audit.cetak','uses'=>'App\Http\Controllers\AkaunController@CetakSenarai']);
Route::get('{any}', function () {
return view('home');
})->where('any','.*');