Merge branch 'fasa2lelong' into 'main'
Fasa2lelong See merge request online-sistem1/admin-portal!25
This commit is contained in:
+2
-3
@@ -13,6 +13,5 @@ npm-debug.log
|
||||
yarn-error.log
|
||||
/.idea
|
||||
/.vscode
|
||||
|
||||
/public/css
|
||||
/public/js
|
||||
/public/css/app.css
|
||||
/public/js/app.js
|
||||
|
||||
@@ -831,4 +831,55 @@ class AkaunController extends Controller
|
||||
return view('audit.cetakanexcel', compact('laporan','cawangan_detail','tarikhasal','jenistebus'));
|
||||
}
|
||||
}
|
||||
|
||||
public function cetakLaporanAging(Request $request)
|
||||
{
|
||||
$api_url = $request->hostname;
|
||||
$auth_user = Auth::user();
|
||||
$current = Carbon::now();
|
||||
$current = new Carbon();
|
||||
$tarikh_cetak = $current->toDateString();
|
||||
$kodcaw = $request->kodcaw;
|
||||
$split_date = explode('-',$request->dateaging);
|
||||
|
||||
$bulan = $split_date[0];
|
||||
$tahun = $split_date[1];
|
||||
|
||||
if($bulan == 1){
|
||||
$namabulan = 'Januari';
|
||||
}elseif($bulan == 2){
|
||||
$namabulan = 'Februari';
|
||||
}elseif($bulan == 3){
|
||||
$namabulan = 'Mac';
|
||||
}elseif($bulan == 4){
|
||||
$namabulan = 'April';
|
||||
}elseif($bulan == 5){
|
||||
$namabulan = 'Mei';
|
||||
}elseif($bulan == 6){
|
||||
$namabulan = 'Jun';
|
||||
}elseif($bulan == 7){
|
||||
$namabulan = 'Julai';
|
||||
}elseif($bulan == 8){
|
||||
$namabulan = 'Ogos';
|
||||
}elseif($bulan == 9){
|
||||
$namabulan = 'September';
|
||||
}elseif($bulan == 10){
|
||||
$namabulan = 'Oktober';
|
||||
}elseif($bulan == 11){
|
||||
$namabulan = 'November';
|
||||
}elseif($bulan == 12){
|
||||
$namabulan = 'Disember';
|
||||
}
|
||||
|
||||
$tebus_date = $namabulan . ' ' . $tahun;
|
||||
|
||||
$cawangan=Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cawangan/detail/'.$kodcaw)->json();
|
||||
$cawangan_detail=$cawangan[0];
|
||||
|
||||
$aging = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/admin/laporan/aging',['kodcaw' => $kodcaw,'tahun'=>$tahun,'bulan'=>$bulan])->json();
|
||||
|
||||
$pdf = PDF::loadView('akaun.laporan_aging', compact('aging','cawangan_detail','tarikh_cetak','tebus_date','api_url'))->setPaper('a4', 'potrait');
|
||||
return $pdf->download('laporan_aging_' . $request->kodcaw .'_'. $tebus_date . '.pdf');
|
||||
// return view('akaun.laporan_aging', compact('aging','cawangan_detail','tarikh_cetak','tebus_date','api_url'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
"apexcharts": "^3.35.0",
|
||||
"jw-vue-pagination": "^1.0.3",
|
||||
"laravel-echo": "^1.11.4",
|
||||
"npm-watch": "^0.11.0",
|
||||
"pusher-js": "^7.0.6",
|
||||
"table2excel": "^1.0.4",
|
||||
"vue-apexcharts": "^1.6.2",
|
||||
|
||||
Vendored
-182245
File diff suppressed because it is too large
Load Diff
Vendored
-140949
File diff suppressed because one or more lines are too long
@@ -0,0 +1,99 @@
|
||||
<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 Aging</span>
|
||||
</div>
|
||||
<form method="get" id="formaging" :action="Urlredirect()" target="_blank">
|
||||
<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="$kodcaw" name="kodcaw" hidden/>
|
||||
<input :value="$hostname" name="hostname" hidden/>
|
||||
<input :value="jenisgenerate" type="hidden" name="jenis" />
|
||||
<input :value="mula" type="hidden" name="dateaging"/>
|
||||
<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="datestokauditbackdate" class="border border-2 border-l-0 rounded-r px-4 py-2 w-80r mr-2" type="date" /> -->
|
||||
<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,
|
||||
jenisgenerate:'none',
|
||||
kodcaw: '',
|
||||
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 generatepdf(){
|
||||
// await this.setJenis('pdf');
|
||||
|
||||
|
||||
// Vue.swal({
|
||||
// title: 'Memuatkan...',
|
||||
// allowEscapeKey : false,
|
||||
// allowOutsideClick: false,
|
||||
// showCancelButton: false,
|
||||
// showConfirmButton: false,
|
||||
// timer: 8000,
|
||||
// });
|
||||
|
||||
// document.getElementById("formringkasanharian").submit();
|
||||
// },
|
||||
async generateview(){
|
||||
await this.setJenis('view');
|
||||
|
||||
|
||||
Vue.swal({
|
||||
title: 'Memuatkan...',
|
||||
allowEscapeKey : false,
|
||||
allowOutsideClick: false,
|
||||
showCancelButton: false,
|
||||
showConfirmButton: false,
|
||||
timer: 8000,
|
||||
});
|
||||
|
||||
document.getElementById("formaging").submit();
|
||||
},
|
||||
Urlredirect: function() {
|
||||
return window.route('cetak.aging')
|
||||
},
|
||||
setJenis: function(value){
|
||||
return this.jenisgenerate = value;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
@@ -96,6 +96,11 @@
|
||||
<h2 class="mx-auto text-center font-bold text-2xl uppercase">Stok Audit Back-date</h2>
|
||||
</router-link>
|
||||
</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/Aging">
|
||||
<h2 class="mx-auto text-center font-bold text-2xl uppercase">Aging</h2>
|
||||
</router-link>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
+60
-12
@@ -1,46 +1,94 @@
|
||||
<template>
|
||||
<div>
|
||||
|
||||
<router-link to="/wtd">
|
||||
<i class="fas fa-backspace fa-3x text-yellow-500"></i>
|
||||
</router-link>
|
||||
|
||||
<div class="mx-auto mt-10 mb-10 flex justify-center grid grid-cols-4">
|
||||
|
||||
<div v-for="(sb,i) in serahbakiarray" :key="i">
|
||||
<div v-for="(sb,i) in serahbakiarray.data" :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">
|
||||
<a href="#" class="block p-6 mr-2 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>
|
||||
<div class="flex flex-row font-normal text-gray-700 dark:text-gray-400">
|
||||
<div class="w-1/3">Jumlah WTD</div>
|
||||
<div>:</div>
|
||||
<div class="ml-2 w-1/3"><b>RM {{ formattext(sb.baki) }} </b></div>
|
||||
</div>
|
||||
<div class="flex flex-row font-normal text-gray-700 dark:text-gray-400">
|
||||
<div class="w-1/3">Diprocess
|
||||
</div>
|
||||
<div>:</div>
|
||||
<div class="w-1/3 ml-2">
|
||||
<span v-bind:class="getClass(sb.aktif)" class="text-xs font-semibold inline-block py-1 px-2 uppercase rounded uppercase last:mr-0 mr-1">{{ sb.aktif ? 'Selesai' : 'Belum' }} </span>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</router-link>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<pagination :data="serahbakiarray" @clickEvent_="getRekod"></pagination>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import pagination from '../components/pagination.vue'
|
||||
import {
|
||||
ChevronLeftIcon,
|
||||
ChevronRightIcon,
|
||||
ChevronDoubleRightIcon,
|
||||
ChevronDoubleLeftIcon
|
||||
} from '@vue-hero-icons/solid'
|
||||
|
||||
const formatter = new Intl.NumberFormat('en-US', {
|
||||
minimumFractionDigits: 2
|
||||
});
|
||||
|
||||
export default {
|
||||
components: {
|
||||
ChevronLeftIcon,
|
||||
ChevronRightIcon,
|
||||
ChevronDoubleLeftIcon,
|
||||
ChevronDoubleRightIcon,
|
||||
pagination
|
||||
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
cawangan: '',
|
||||
serahbakiarray: {},
|
||||
loaderserah: false,
|
||||
currentPage: 1,
|
||||
paginate: {},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
formattext: function (value) {
|
||||
return formatter.format(value);
|
||||
},
|
||||
getClass(property) {
|
||||
return {
|
||||
'text-green-600 bg-green-200 ': property,
|
||||
'text-pink-600 bg-pink-200 ': !property
|
||||
}
|
||||
},
|
||||
getRekod(pageNumber) {
|
||||
this.axios.get(this.$hostname + '/admin/wtd/rekod/', {
|
||||
params: {
|
||||
kodcaw: this.$kodcaw,
|
||||
page: pageNumber
|
||||
|
||||
}
|
||||
}).then(response => {
|
||||
this.serahbakiarray = response.data;
|
||||
this.paginate = response.data
|
||||
this.currentPage = pageNumber
|
||||
})
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.axios.get(this.$hostname + '/admin/wtd/rekod/', {
|
||||
params: {
|
||||
kodcaw: this.$kodcaw,
|
||||
}
|
||||
}).then(response => {
|
||||
this.serahbakiarray = response.data;
|
||||
})
|
||||
this.getRekod(this.currentPage)
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -1,12 +1,16 @@
|
||||
<template>
|
||||
<div>
|
||||
|
||||
<router-link to="/wtd">
|
||||
<i class="fas fa-backspace fa-3x text-yellow-500"></i>
|
||||
</router-link>
|
||||
|
||||
<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>
|
||||
<h1 class="text-xl font-bold bg-clip-text text-transparent bg-gradient-to-br from-gray-500 to-gray-700">JUMLAH = RM {{ formattext(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>
|
||||
@@ -51,10 +55,10 @@
|
||||
{{ bl.t_lelong }}
|
||||
</td>
|
||||
<td class="px-6 py-4">
|
||||
{{ bl.pinjaman }}
|
||||
{{ formattext(bl.pinjaman) }}
|
||||
</td>
|
||||
<td class="px-6 py-4">
|
||||
{{ bl.baki }}
|
||||
{{ formattext(bl.baki) }}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
@@ -64,6 +68,10 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
const formatter = new Intl.NumberFormat('en-US', {
|
||||
minimumFractionDigits: 2
|
||||
});
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
@@ -110,6 +118,9 @@ export default {
|
||||
}
|
||||
});
|
||||
},
|
||||
formattext: function (value) {
|
||||
return formatter.format(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -65,10 +65,10 @@
|
||||
{{ bl.t_lelong }}
|
||||
</td>
|
||||
<td class="px-6 py-4">
|
||||
{{ bl.pinjaman }}
|
||||
{{ formattext(bl.pinjaman) }}
|
||||
</td>
|
||||
<td class="px-6 py-4">
|
||||
{{ bl.baki }}
|
||||
{{ formattext(bl.baki) }}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
@@ -98,6 +98,9 @@ export default {
|
||||
},
|
||||
props: ['bakilelong', 'bulanmula', 'bulanhingga'],
|
||||
methods: {
|
||||
formattext: function (value) {
|
||||
return formatter.format(value);
|
||||
},
|
||||
async associate() {
|
||||
this.arraybakilelong = this.$props.bakilelong;
|
||||
},
|
||||
@@ -211,7 +214,7 @@ export default {
|
||||
}).then((result) => {
|
||||
if (result.isConfirmed) {
|
||||
this.blockwtd();
|
||||
blockseterusnya = true;
|
||||
this.blockseterusnya = true;
|
||||
}
|
||||
})
|
||||
|
||||
@@ -244,6 +247,7 @@ export default {
|
||||
});
|
||||
},
|
||||
cetaksenarai: function () {
|
||||
let cawangan = this.$kodcaw;
|
||||
if (this.selectedNorujukan.length > 0) {
|
||||
let urldirect = window.route('wtd.cetak');
|
||||
let noruj = JSON.stringify(this.selectedNorujukan);
|
||||
@@ -258,6 +262,7 @@ export default {
|
||||
|
||||
},
|
||||
cetakpdf: function () {
|
||||
let cawangan = this.$kodcaw;
|
||||
if (this.selectedNorujukan.length > 0) {
|
||||
let urldirect = window.route('wtd.cetak');
|
||||
let noruj = JSON.stringify(this.selectedNorujukan);
|
||||
|
||||
+13
-17
@@ -1,13 +1,12 @@
|
||||
<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">
|
||||
@@ -27,8 +26,6 @@
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<senarai-baki :bakilelong="bakilelong" :bulanmula="mula" :bulanhingga="hingga" ref="senaraibaki" @updateLoad="updateLoad"></senarai-baki>
|
||||
</div>
|
||||
</template>
|
||||
@@ -44,22 +41,22 @@ export default {
|
||||
mula: null,
|
||||
hingga: null,
|
||||
loadbakilelong: null,
|
||||
bakilelong:[],
|
||||
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"
|
||||
shorthand: true, //defaults to false
|
||||
dateFormat: "m-Y", //defaults to "F Y"
|
||||
altFormat: "F Y", //defaults to "F Y"
|
||||
})
|
||||
]
|
||||
]
|
||||
},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async generatebakilelong () {
|
||||
async generatebakilelong() {
|
||||
let cawangan = this.$kodcaw;
|
||||
|
||||
this.loadbakilelong = 'process';
|
||||
@@ -76,22 +73,21 @@ export default {
|
||||
this.bakilelong = response.data;
|
||||
this.loadbakilelong = 'success';
|
||||
|
||||
if(this.bakilelong.length <= 0)
|
||||
{
|
||||
if (this.bakilelong.length <= 0) {
|
||||
this.loadbakilelong = null;
|
||||
this.$swal(
|
||||
'Amaran',
|
||||
'Baki lelong tiada dalam senarai',
|
||||
'error'
|
||||
'Amaran',
|
||||
'Baki lelong tiada dalam senarai',
|
||||
'error'
|
||||
)
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
await this.$refs.senaraibaki.associate();
|
||||
}
|
||||
|
||||
},
|
||||
updateLoad: function(){
|
||||
updateLoad: function () {
|
||||
this.loadbakilelong = null;
|
||||
this.bakilelong = null;
|
||||
this.mula = null;
|
||||
|
||||
Vendored
+3
-3
@@ -126,18 +126,18 @@ Vue.use(require('vue-pusher'), {
|
||||
}
|
||||
});
|
||||
|
||||
Vue.prototype.$api1 = 'http://api.arrahn/'
|
||||
Vue.prototype.$api1 = 'http://api.arrahn'
|
||||
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://api.arrahn';
|
||||
|
||||
const store = new Vuex.Store({
|
||||
state: {
|
||||
$kodcaw: 'KB2',
|
||||
$hostname: 'http://api.arrahn/'
|
||||
$hostname: 'http://api.arrahn'
|
||||
},
|
||||
plugins: [createPersistedState()],
|
||||
mutations: {
|
||||
|
||||
@@ -1,203 +1,225 @@
|
||||
<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">
|
||||
<div class="mb-4 w-full grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4">
|
||||
|
||||
<h3 class="text-xl font-bold text-gray-500">Data Lelong</h3>
|
||||
<div class="bg-white shadow rounded-lg p-4 sm:p-6 xl:p-8" v-if="datasebenar === false">
|
||||
<content-placeholders>
|
||||
<content-placeholders-heading :img="true" />
|
||||
<content-placeholders-text :lines="3" />
|
||||
</content-placeholders>
|
||||
</div>
|
||||
|
||||
<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 class="bg-white shadow rounded-lg p-4 sm:p-6 xl:p-8" v-if="datasebenar === true">
|
||||
|
||||
<h3 class="text-xl font-bold text-gray-500 mb-4">Data Sebenar</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">
|
||||
Tempoh
|
||||
</th>
|
||||
<th scope="col" class="px-6 py-3">
|
||||
Bil
|
||||
</th>
|
||||
<th scope="col" class="px-6 py-3">
|
||||
RM
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(n,index) in 13" :key="index" 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">
|
||||
{{ (n == 13) ? '12 > ' : n }} Bulan
|
||||
</th>
|
||||
<td class="px-6 py-4">
|
||||
{{ collectionsebenar.count[index].toFixed(0) }}
|
||||
</td>
|
||||
<td class="px-6 py-4">
|
||||
{{ formatterfunction(collectionsebenar.sum[index]) }}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot class="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400">
|
||||
<tr>
|
||||
<th class="px-6 py-4">Keseluruhan</th>
|
||||
<th class="px-6 py-4">{{ collectionsebenar.count[13].toFixed(0) }}</th>
|
||||
<th class="px-6 py-4">{{ formatterfunction(collectionsebenar.sum[13]) }}</th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</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>
|
||||
|
||||
<div class="bg-white shadow rounded-lg p-4 sm:p-6 xl:p-8" v-if="datalelong === false">
|
||||
<content-placeholders>
|
||||
<content-placeholders-heading :img="true" />
|
||||
<content-placeholders-text :lines="3" />
|
||||
</content-placeholders>
|
||||
</div>
|
||||
|
||||
<div class="bg-white shadow rounded-lg p-4 sm:p-6 xl:p-8" v-if="datalelong === true">
|
||||
<h3 class="text-xl font-bold text-gray-500 mb-4">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">
|
||||
Tempoh
|
||||
</th>
|
||||
<th scope="col" class="px-6 py-3">
|
||||
Bil
|
||||
</th>
|
||||
<th scope="col" class="px-6 py-3">
|
||||
RM
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(n,index) in 13" :key="index" 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">
|
||||
{{ (n == 13) ? '12 > ' : n }} Bulan
|
||||
</th>
|
||||
<td class="px-6 py-4">
|
||||
{{ collectionlelong.count[index].toFixed(0) }}
|
||||
</td>
|
||||
<td class="px-6 py-4">
|
||||
{{ formatterfunction(collectionlelong.sum[index]) }}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot class="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400">
|
||||
<tr>
|
||||
<th class="px-6 py-4">Keseluruhan</th>
|
||||
<th class="px-6 py-4">{{ collectionlelong.count[13].toFixed(0) }}</th>
|
||||
<th class="px-6 py-4">{{ formatterfunction(collectionlelong.sum[13]) }}</th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="bg-white shadow rounded-lg p-4 sm:p-6 xl:p-8" v-if="datafilter === false">
|
||||
<content-placeholders>
|
||||
<content-placeholders-heading :img="true" />
|
||||
<content-placeholders-text :lines="3" />
|
||||
</content-placeholders>
|
||||
</div>
|
||||
<div class="bg-white shadow rounded-lg p-4 sm:p-6 xl:p-8" v-if="datafilter === true">
|
||||
<h3 class="text-xl font-bold text-gray-500 mb-4">Data Filter</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">
|
||||
Tempoh
|
||||
</th>
|
||||
<th scope="col" class="px-6 py-3">
|
||||
Bil
|
||||
</th>
|
||||
<th scope="col" class="px-6 py-3">
|
||||
RM
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(n,index) in 13" :key="index" 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">
|
||||
{{ (n == 13) ? '12 > ' : n }} Bulan
|
||||
</th>
|
||||
<td class="px-6 py-4">
|
||||
{{ collectionfilter.count[index].toFixed(0) }}
|
||||
</td>
|
||||
<td class="px-6 py-4">
|
||||
{{ formatterfunction(collectionfilter.sum[index]) }}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot class="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400">
|
||||
<tr>
|
||||
<th class="px-6 py-4">Keseluruhan</th>
|
||||
<th class="px-6 py-4">{{ collectionfilter.count[13].toFixed(0) }}</th>
|
||||
<th class="px-6 py-4">{{ formatterfunction(collectionfilter.sum[13]) }}</th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
const formatter = new Intl.NumberFormat('en-US', {
|
||||
minimumFractionDigits: 2
|
||||
});
|
||||
|
||||
export default {
|
||||
|
||||
data() {
|
||||
return {
|
||||
collectionsebenar: {},
|
||||
collectionlelong: {},
|
||||
collectionfilter: {},
|
||||
datasebenar: false,
|
||||
datalelong: false,
|
||||
datafilter: false,
|
||||
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
await this.getDataSebenar();
|
||||
await this.getDataLelong();
|
||||
await this.getDataFilter();
|
||||
},
|
||||
methods: {
|
||||
getDataSebenar() {
|
||||
this.axios.get(this.$hostname + '/admin/dashboard/aging', {
|
||||
params: {
|
||||
kodcaw: this.$kodcaw,
|
||||
options: 'sebenar'
|
||||
}
|
||||
}).then(response => {
|
||||
this.collectionsebenar = response.data;
|
||||
|
||||
if (this.datasebenar == false)
|
||||
this.datasebenar = true;
|
||||
});
|
||||
},
|
||||
getDataLelong() {
|
||||
this.axios.get(this.$hostname + '/admin/dashboard/aging', {
|
||||
params: {
|
||||
kodcaw: this.$kodcaw,
|
||||
options: 'datalelong'
|
||||
}
|
||||
}).then(response => {
|
||||
this.collectionlelong = response.data;
|
||||
|
||||
if (this.datalelong == false)
|
||||
this.datalelong = true;
|
||||
});
|
||||
},
|
||||
getDataFilter() {
|
||||
this.axios.get(this.$hostname + '/admin/dashboard/aging', {
|
||||
params: {
|
||||
kodcaw: this.$kodcaw,
|
||||
options: 'filter'
|
||||
}
|
||||
}).then(response => {
|
||||
this.collectionfilter = response.data;
|
||||
|
||||
if (this.datafilter == false)
|
||||
this.datafilter = true;
|
||||
});
|
||||
},
|
||||
formatterfunction(value) {
|
||||
return formatter.format(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -16,19 +16,19 @@
|
||||
<div v-if="data.total > 0" class="hidden sm:flex-1 sm:flex flex sm:items-center sm:justify-between ">
|
||||
<div>
|
||||
<p class="text-sm text-gray-700">
|
||||
Showing
|
||||
<!--Showing --> Menunjukkan
|
||||
{{ ' ' }}
|
||||
<span class="font-medium">{{ to }}</span>
|
||||
<span class="font-medium"><b>{{ to }}</b></span>
|
||||
{{ ' ' }}
|
||||
to
|
||||
<!-- to --> hingga
|
||||
{{ ' ' }}
|
||||
<span class="font-medium">{{ from }}</span>
|
||||
<span class="font-medium"><b>{{ from }}</b></span>
|
||||
{{ ' ' }}
|
||||
of
|
||||
<!-- of --> daripada
|
||||
{{ ' ' }}
|
||||
<span class="font-medium">{{ total }}</span>
|
||||
<span class="font-medium"><b>{{ total }}</b></span>
|
||||
{{ ' ' }}
|
||||
records
|
||||
<!-- records --> rekod
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
<button @click.prevent="getPreviousPage"
|
||||
class="relative inline-flex items-center px-2 py-2 rounded-l-md border border-gray-300 bg-white text-sm font-medium text-gray-500"
|
||||
:class="data.current_page == 1 ? 'text-gray-300 cursor-not-allowed' : 'hover:bg-gray-50' ">
|
||||
<span class="sr-only">Previous</span>
|
||||
<span class="sr-only"> <!-- Previous -->Sebelum</span>
|
||||
<svg class="h-5 w-5" :class="{'text-gray-400': data.current_page == 1}" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor"
|
||||
aria-hidden="true">
|
||||
<path fill-rule="evenodd"
|
||||
@@ -66,7 +66,7 @@
|
||||
<button @click.prevent="getNextPage"
|
||||
class="relative inline-flex items-center px-2 py-2 rounded-r-md border border-gray-300 bg-white text-sm font-medium text-gray-500 hover:bg-gray-50"
|
||||
:class="{'text-gray-300 cursor-not-allowed': data.current_page >= data.last_page}">
|
||||
<span class="sr-only">Next</span>
|
||||
<span class="sr-only"><!--Next-->Selepas</span>
|
||||
<svg class="h-5 w-5" :class="{'text-gray-400': data.current_page >= data.last_page}" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor"
|
||||
aria-hidden="true">
|
||||
<path fill-rule="evenodd"
|
||||
|
||||
Vendored
+3
@@ -17,6 +17,8 @@ import Perbelanjaan from './Akaun/Perbelanjaan'
|
||||
import RingkasanHarian from './Akaun/RingkasanHarian'
|
||||
import RingkasanTerkumpul from './Akaun/RingkasanTerkumpul'
|
||||
import StokAuditBackdate from './Akaun/StokAuditBackdate'
|
||||
import Aging from './Akaun/Aging'
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -66,6 +68,7 @@ export default new VueRouter({
|
||||
{ path: '/akaunhome/RingkasanHarian', component: RingkasanHarian },
|
||||
{ path: '/akaunhome/RingkasanTerkumpul', component: RingkasanTerkumpul },
|
||||
{ path: '/akaunhome/StokAuditBackdate', component: StokAuditBackdate },
|
||||
{ path: '/akaunhome/Aging', component: Aging },
|
||||
|
||||
|
||||
{ path: '/bajet/kemaskini', component: SenaraiBajet },
|
||||
|
||||
@@ -0,0 +1,351 @@
|
||||
<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: 50%;
|
||||
}
|
||||
|
||||
#details td,
|
||||
#details th {
|
||||
|
||||
padding: 8px;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
#details tr:nth-child(even) {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
#details tr:hover {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
#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>
|
||||
|
||||
|
||||
|
||||
<style>
|
||||
#title {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
border-collapse: collapse;
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
#title td,
|
||||
#title th {
|
||||
|
||||
padding: 4px;
|
||||
font-size: 12px;
|
||||
border: 0px solid #fff;
|
||||
}
|
||||
|
||||
#title tr:nth-child(even) {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
#title tr:hover {
|
||||
background-color: #ddd;
|
||||
}
|
||||
|
||||
#title th {
|
||||
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: 80%;
|
||||
|
||||
}
|
||||
|
||||
#details td,
|
||||
#details th {
|
||||
|
||||
padding: 4px;
|
||||
font-size: 12px;
|
||||
border: 0px solid #ddd;
|
||||
}
|
||||
|
||||
#details tr:nth-child(even) {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
#details tr:hover {
|
||||
background-color: #ddd;
|
||||
}
|
||||
|
||||
#details 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>
|
||||
<br>
|
||||
<br>
|
||||
|
||||
|
||||
<table id="title">
|
||||
<tr>
|
||||
<th> </th>
|
||||
<th> LAPORAN AGING BULANAN </th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width:60px"> <b> TARIKH :</b> </td>
|
||||
<td> {{ $tebus_date }} </td>
|
||||
|
||||
</table>
|
||||
|
||||
<br>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<table id="details">
|
||||
<tr>
|
||||
<th style="width:50%">TEMPOH </th>
|
||||
<th style="width:30%"> BIL GADAIAN </th>
|
||||
<th style="width:50%"> BAKI PEMBIAYAAN (RM) </th>
|
||||
</tr>
|
||||
@php $jumlahcount = 0;$jumlahsum = 0; @endphp
|
||||
@foreach($aging[0]['count'] as $index=>$ag)
|
||||
@php
|
||||
$jumlahcount += $ag; $jumlahsum += $aging[0]['sum'][$index];
|
||||
@endphp
|
||||
<tr>
|
||||
<td>{{ ($index == 12) ? '12 >' : $index+1 }}
|
||||
BULAN</td>
|
||||
<td>{{ number_format($ag) }}</td>
|
||||
<td>{{ number_format($aging[0]['sum'][$index],2) }}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td style="width:50%"> <b>JUMLAH</b></td>
|
||||
<td style="width:30%"><b> {{ number_format($jumlahcount) }} </b></td>
|
||||
<td style="width:30%"><b> {{ number_format($jumlahsum,2) }} </b></td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
|
||||
|
||||
<table id="details">
|
||||
<tr>
|
||||
<th> </th>
|
||||
<th> DISEMAK </th>
|
||||
<th></th>
|
||||
<th> DISAHKAN </th>
|
||||
<th></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>........................................................</td>
|
||||
<td></td>
|
||||
<td>......................................................... </td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<br>
|
||||
@@ -159,9 +159,9 @@
|
||||
@endif
|
||||
@else
|
||||
@if(Auth::user()->roles == 'operasi')
|
||||
<div class="mr-4">
|
||||
{{-- <div class="mr-4">
|
||||
<notify-component></notify-component>
|
||||
</div>
|
||||
</div> --}}
|
||||
@endif
|
||||
<logout-component csrftoken="{{ csrf_token() }}" :route={{ json_encode(route('logout')) }}></logout-component>
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<footer class="bg-white md:flex md:items-center md:justify-between shadow rounded-lg p-4 md:p-6 xl:p-8 my-6 mx-4">
|
||||
<ul class="flex items-center flex-wrap mb-6 md:mb-0">
|
||||
<li><p class="text-sm font-normal text-gray-500 mr-4 md:mr-6">Permodalan Kelantan Berhad © 2022 All Rights Reserved</p></li>
|
||||
<li><p class="text-sm font-normal text-gray-500 mr-4 md:mr-6">Permodalan Kelantan Berhad © 2022 Hak cipta terpelihara</p></li>
|
||||
{{-- <li><p class="text-sm font-normal text-gray-500 mr-4 md:mr-6">Paparan terbaik menggunakan Mozilla Firefox, Google Chrome & Internet Explorer 9.0 ke atas dengan resolusi 1920 x 1080</p></li> --}}
|
||||
|
||||
</ul>
|
||||
|
||||
@@ -170,7 +170,7 @@
|
||||
</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 ' }}">
|
||||
{{-- <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">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||
@@ -179,7 +179,7 @@
|
||||
<span class="text-sm ml-2 text-lg">Kelulusan</span>
|
||||
</div>
|
||||
</li>
|
||||
</a>
|
||||
</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 ' }}">
|
||||
|
||||
@@ -89,6 +89,8 @@ Route::get('/akaunhome/cetaklelong',['as'=>'cetak.lelong','uses'=>'App\Http\Cont
|
||||
Route::get('/akaunhome/cetakperbelanjaan',['as'=>'cetak.perbelanjaan','uses'=>'App\Http\Controllers\AkaunController@cetaklaporan_perbelanjaan'])->middleware(['roleChecker:admin,akaun,operasi']);
|
||||
Route::get('/akaunhome/cetakringkasanterkumpul',['as'=>'cetak.ringkasanterkumpul','uses'=>'App\Http\Controllers\AkaunController@cetakLaporanRingkasanTerkumpul'])->middleware(['roleChecker:admin,akaun,operasi']);
|
||||
Route::get('/akaunhome/cetakstokauditbackdate',['as'=>'cetak.stokauditbackdate','uses'=>'App\Http\Controllers\AkaunController@cetakLaporanStokAuditBackdate'])->middleware(['roleChecker:admin,akaun,operasi']);
|
||||
Route::get('/akaunhome/cetakaging',['as'=>'cetak.aging','uses'=>'App\Http\Controllers\AkaunController@cetakLaporanAging'])->middleware(['roleChecker:admin,akaun,operasi']);
|
||||
|
||||
|
||||
|
||||
//Resit
|
||||
|
||||
Reference in New Issue
Block a user