laporan barang kes
This commit is contained in:
@@ -1890,6 +1890,55 @@ class AkaunController extends Controller
|
||||
));
|
||||
}
|
||||
|
||||
public function cetak_laporanbarangkes(Request $request)
|
||||
|
||||
{
|
||||
$api_url = $request->hostname;
|
||||
// $api_url = ($request->hostname) ? $request->hostname : config('api.url');
|
||||
$auth_user = Auth::user();
|
||||
$current = Carbon::now();
|
||||
$current = new Carbon();
|
||||
$tarikh_cetak = $current->toDateString();
|
||||
|
||||
if($request->datemula == null){
|
||||
$mula_date = '2017-01-01';
|
||||
}else{
|
||||
$mula_date = $request->datemula;
|
||||
}
|
||||
|
||||
if($request->datehingga == null){
|
||||
$hingga_date = $current->toDateString();
|
||||
}else{
|
||||
$hingga_date = $request->datehingga;
|
||||
}
|
||||
|
||||
$barangkes = Http::get($request->hostname . '/api/barangkes/laporan/', ['kodcaw' => $request->kodcaw,'alasan' => $request->sltalasan,'tarikh_mula' => $mula_date,'tarikh_akhir' => $hingga_date])->json();
|
||||
|
||||
$palsu = Http::get($request->hostname . '/api/palsu/laporan/', ['kodcaw' => $request->kodcaw,'tarikh_mula' => $mula_date,'tarikh_akhir' => $hingga_date])->json();
|
||||
|
||||
if (!is_array($palsu)) {
|
||||
$palsu = []; // utk nak tengok data tubik ke dok
|
||||
}
|
||||
|
||||
$cawangan_info = Http::get($request->hostname . '/api/cawangan/'. $request->kodcaw)->json();
|
||||
$cawangan = Http::get($request->hostname . '/api/cawangan/detail/'. $request->kodcaw)->json();
|
||||
$cawangan_detail=$cawangan[0];
|
||||
|
||||
$hostname = $request->hostname;
|
||||
|
||||
if(isset($request->jenis))
|
||||
{
|
||||
if($request->jenis == 'pdf')
|
||||
{
|
||||
$pdf = PDF::loadView('akaun.laporan_brgkes', compact('hostname','palsu','cawangan_detail','tarikh_cetak','mula_date','hingga_date','api_url'))->setPaper('a4', 'potrait');
|
||||
return $pdf->download('laporan_brgkes' . $request->kodcaw .'_'. $mula_date .'_'. $hingga_date . '.pdf');
|
||||
}else{
|
||||
return view('akaun.laporan_brgkes', compact('hostname','palsu','cawangan_detail','tarikh_cetak','mula_date','hingga_date','api_url'));
|
||||
}
|
||||
}
|
||||
|
||||
return view('akaun.laporan_brgkes', compact('hostname','cawangan_detail','mula_date','hingga_date','tarikh_cetak','api_url','palsu'));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,120 @@
|
||||
<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 Barang Kes</span>
|
||||
</div>
|
||||
<form method="get" id="formringter" :action="Urlredirect()" target="_blank">
|
||||
<div class="rounded bg-white shadow p-6">
|
||||
<div class="pb-6">
|
||||
<div class="flex justify-center mb-4">
|
||||
<input :value="jenisgenerate" type="hidden" name="jenis" />
|
||||
<input :value="$kodcaw" name="kodcaw" hidden/>
|
||||
<input :value="$hostname" name="hostname" hidden/>
|
||||
<span style="background-color: #F9FAFB" class="text-gray-600 border-2 rounded-l px-4 py-2 whitespace-no-wrap">Mula</span>
|
||||
<input id="tarikhmula" name="datemula" class="border-2 border-l-0 rounded-r px-4 py-2 w-80r mr-2" type="date" min="2023-01-01" :max="maxDate"/>
|
||||
<span style="background-color: #F9FAFB" class="text-gray-600 border-2 rounded-l px-4 py-2 whitespace-no-wrap">Hingga</span>
|
||||
<input id="tarikhhingga" name="datehingga" class="border-2 border-l-0 rounded-r px-4 py-2 w-80r mr-2" type="date" min="2023-01-01" :max="maxDate"/>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="flex justify-end mt-10">
|
||||
<button @click.prevent="generatepdf" class=" mr-2 border border-yellow-600 text-yellow-600 font-montserrat py-2 px-8 font-medium rounded-xl hover:bg-yellow-600 hover:text-white transition-all duration-300"><i class="fas fa-file-pdf mr-2"></i>PDF</button>
|
||||
<button @click.prevent="generateview" class="border border-yellow-600 text-yellow-600 font-montserrat py-2 px-8 font-medium rounded-xl hover:bg-yellow-600 hover:text-white transition-all duration-300"><i class="fas fa-eye mr-2"></i>View</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
required,
|
||||
minLength,
|
||||
between
|
||||
} from 'vuelidate/lib/validators'
|
||||
export default {
|
||||
data(){
|
||||
return{
|
||||
jenisgenerate:'none',
|
||||
kodcaw:'',
|
||||
hostname:'',
|
||||
maxDate: null,
|
||||
yesterday: null,
|
||||
selectedalasan: '',
|
||||
jenisalasan: {}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.setMaxDate();
|
||||
},
|
||||
created() {
|
||||
this.senaraiAlasan();
|
||||
},
|
||||
methods: {
|
||||
setMaxDate() {
|
||||
const today = new Date();
|
||||
today.setDate(today.getDate() - 1);
|
||||
this.yesterday = today.toISOString().split('T')[0];
|
||||
this.maxDate = this.yesterday;
|
||||
},
|
||||
async generatepdf(){
|
||||
await this.setJenis('pdf');
|
||||
|
||||
|
||||
Vue.swal({
|
||||
title: 'Memuatkan...',
|
||||
allowEscapeKey : false,
|
||||
allowOutsideClick: false,
|
||||
showCancelButton: false,
|
||||
showConfirmButton: false,
|
||||
timer: 8000,
|
||||
});
|
||||
|
||||
document.getElementById("formringter").submit();
|
||||
},
|
||||
async generateview(){
|
||||
await this.setJenis('view');
|
||||
|
||||
|
||||
Vue.swal({
|
||||
title: 'Memuatkan...',
|
||||
allowEscapeKey : false,
|
||||
allowOutsideClick: false,
|
||||
showCancelButton: false,
|
||||
showConfirmButton: false,
|
||||
timer: 8000,
|
||||
});
|
||||
|
||||
document.getElementById("formringter").submit();
|
||||
},
|
||||
Urlredirect: function() {
|
||||
return window.route('cetak.laporanbarangkes')
|
||||
},
|
||||
setJenis: function(value){
|
||||
return this.jenisgenerate = value;
|
||||
},
|
||||
senaraiAlasan: function () {
|
||||
this.axios.get(this.$hostname + '/api/lookupalasan').then(response => {
|
||||
this.jenisalasan = response.data;
|
||||
});
|
||||
},
|
||||
|
||||
},
|
||||
validations: {
|
||||
selectedalasan: {
|
||||
required
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
@@ -185,6 +185,11 @@
|
||||
<h2 class="mx-auto text-center font-bold text-2xl uppercase">Laporan Lelong</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/barangkes">
|
||||
<h2 class="mx-auto text-center font-bold text-2xl uppercase">Barang Kes</h2>
|
||||
</router-link>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -0,0 +1,187 @@
|
||||
<template>
|
||||
<div>
|
||||
<transition name="modal-fade">
|
||||
<div v-if="showModal" class="overflow-x-hidden overflow-y-auto fixed inset-0 z-50 outline-none focus:outline-none justify-center items-center flex">
|
||||
<div class="relative w-1/3 my-6 mx-auto max-w-6xl">
|
||||
<!-- content -->
|
||||
<div class="border-0 rounded-lg shadow-lg relative flex flex-col w-full bg-white outline-none focus:outline-none">
|
||||
<div class="relative p-4 flex-auto">
|
||||
<h3 class="text-center text-3xl font-semibold">
|
||||
Daftar Barang Kes
|
||||
</h3>
|
||||
|
||||
<div class="flex flex-wrap mt-4">
|
||||
<div class="w-full max-w-lg mx-auto">
|
||||
|
||||
<!-- No Rujukan -->
|
||||
<div class="mb-4">
|
||||
<label class="block text-gray-700 text-sm font-bold mb-2" for="norujukan">
|
||||
No Rujukan:
|
||||
</label>
|
||||
<input
|
||||
id="norujukan"
|
||||
type="text"
|
||||
v-model="norujukan"
|
||||
class="bg-white appearance-none border-2 border-gray-400 rounded w-full py-2 px-4 text-gray-700 leading-tight focus:outline-none focus:bg-white focus:border-blue-500 border-black"
|
||||
placeholder="isi no rujukan"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<!-- IC dan SAG -->
|
||||
<div class="flex flex-wrap items-end mb-6 gap-4">
|
||||
<!-- IC -->
|
||||
<div class="w-full md:w-1/2">
|
||||
<label class="block text-gray-700 text-sm font-bold mb-2" for="nama">
|
||||
IC:
|
||||
</label>
|
||||
<input
|
||||
id="frminput"
|
||||
type="text"
|
||||
ref="btnDropdownRef"
|
||||
class="bg-white appearance-none border-2 border-gray-400 rounded w-full py-2 px-4 text-gray-700 leading-tight focus:outline-none focus:bg-white focus:border-blue-500 border-black"
|
||||
placeholder="isi nama / IC"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<!-- SAG -->
|
||||
<div class="w-full md:w-1/2">
|
||||
<label class="block text-gray-700 text-sm font-bold mb-2" for="sag">
|
||||
SAG:
|
||||
</label>
|
||||
<input
|
||||
id="saginput"
|
||||
type="text"
|
||||
v-model="kodcaw"
|
||||
class="bg-white appearance-none border-2 border-gray-400 rounded w-full py-2 px-4 text-gray-700 leading-tight focus:outline-none focus:bg-white focus:border-blue-500 border-black"
|
||||
placeholder="isi kod SAG / cawangan"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Button Carian -->
|
||||
<div class="flex justify-end mb-6 gap-2">
|
||||
<button
|
||||
class="flex items-center gap-2 px-6 py-3 bg-blue-600 hover:bg-blue-700 text-white text-sm font-semibold rounded shadow"
|
||||
@click="cariMarhun"
|
||||
>
|
||||
<i class="fas fa-search"></i>
|
||||
Cari Marhun
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<!-- Tunjuk hasil carian -->
|
||||
<div v-if="marhunData" class="mt-4 bg-gray-100 p-4 rounded">
|
||||
<p><strong>No Rujukan:</strong> {{ marhunData.norujukan }}</p>
|
||||
<p><strong>Nama Marhun:</strong> {{ marhunData.nama }}</p>
|
||||
</div>
|
||||
|
||||
<!-- Footer button -->
|
||||
<div class="flex items-center justify-end p-6 border-t border-solid border-blueGray-200 rounded-b">
|
||||
<button class="bg-gray-500 hover:bg-gray-700 text-white font-bold py-2 px-4 border border-gray-700 rounded mr-1" v-on:click="toggleModal" type="button">
|
||||
Batal
|
||||
</button>
|
||||
<button class="bg-yellow-500 hover:bg-yellow-700 text-white font-bold py-2 px-4 border border-green-700 rounded" @click="addfunc" type="button">
|
||||
Daftar
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</transition>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "modal",
|
||||
data() {
|
||||
return {
|
||||
showModal: false,
|
||||
kodcaw: '',
|
||||
norujukan: '',
|
||||
marhunData: null
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
toggleModal() {
|
||||
this.showModal = !this.showModal;
|
||||
},
|
||||
async cariMarhun() {
|
||||
if (!this.norujukan) {
|
||||
this.$toast.warning("Sila isi No Rujukan dahulu.");
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
const response = await this.axios.get(this.$hostname + '/marhun/' + this.norujukan);
|
||||
this.marhunData = response.data;
|
||||
this.$toast.success("Maklumat berjaya dijumpai!");
|
||||
} catch (error) {
|
||||
this.marhunData = null;
|
||||
this.$toast.error("Rujukan tidak dijumpai atau berlaku ralat.");
|
||||
console.error("Gagal dapatkan data marhun:", error);
|
||||
}
|
||||
},
|
||||
addfunc: function(){
|
||||
|
||||
let dataHantar = {
|
||||
kodcaw: this.kodcaw,
|
||||
nokp: (this.specCust.kpbaru) ? this.specCust.kpbaru : this.specCust.kplama,
|
||||
nota: this.nota
|
||||
};
|
||||
|
||||
console.log("Hantar ke backend:", dataHantar);
|
||||
|
||||
axios.post(this.$hostname + '/admin/AddBarangKes', dataHantar)
|
||||
.then(response => {
|
||||
if(response.data == 'berjaya') {
|
||||
this.showModal = false;
|
||||
this.$toast.success("tambah Sudah Berjaya!");
|
||||
this.$emit('clickEvent_', this.pageNumber);
|
||||
} else {
|
||||
this.showModal = false;
|
||||
this.$toast.error("tambah tidak berjaya");
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
console.error("Gagal hantar:", error);
|
||||
|
||||
|
||||
}).then(response => {
|
||||
|
||||
if(response.data == 'berjaya')
|
||||
{
|
||||
this.showModal = false;
|
||||
this.$toast.success("tambah Sudah Berjaya!")
|
||||
// vm.$forceUpdate();
|
||||
|
||||
this.$emit('clickEvent_', this.pageNumber)
|
||||
|
||||
// setTimeout("window.location.reload()", 3000);
|
||||
}else{
|
||||
|
||||
this.showModal = false;
|
||||
this.$toast.error("tambah tidak berjaya")
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.modal-fade-enter,
|
||||
.modal-fade-leave-to {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.modal-fade-enter-active,
|
||||
.modal-fade-leave-active {
|
||||
transition: opacity .5s ease;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,100 @@
|
||||
<template>
|
||||
<div class="">
|
||||
|
||||
<deletemodal ref="delmodal" @clickDelete_="getBarangKes"></deletemodal>
|
||||
<modal ref="modal" @clickEvent_="getBarangKes"></modal>
|
||||
|
||||
<div class="flex justify-between mb-2">
|
||||
<div>
|
||||
<button @click.prevent="showModal" class="border border-green-600 text-green-600 font-montserrat py-2 px-3 font-medium rounded-xl hover:bg-yellow-600 hover:text-white transition-all duration-300">
|
||||
<i class="fas fa-plus mr-2"></i>Daftar
|
||||
</button>
|
||||
</div>
|
||||
<div>
|
||||
<input v-model="search" class="border border-2 rounded px-4 py-2 w-80r mr-2" type="text" />
|
||||
<button @click.prevent="searchname" 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-search mr-2"></i>Cari
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="min-w-full leading-normal">
|
||||
<thead class="text-center">
|
||||
<tr>
|
||||
<th class="px-5 py-3 border-b-2 border-gray-200 bg-gray-100 text-left text-xs font-semibold text-gray-600 uppercase tracking-wider">Bil</th>
|
||||
<th class="px-5 py-3 border-b-2 border-gray-200 bg-gray-100 text-left text-xs font-semibold text-gray-600 uppercase tracking-wider">Nama</th>
|
||||
<th class="px-5 py-3 border-b-2 border-gray-200 bg-gray-100 text-left text-xs font-semibold text-gray-600 uppercase tracking-wider">IC</th>
|
||||
<th class="px-5 py-3 border-b-2 border-gray-200 bg-gray-100 text-left text-xs font-semibold text-gray-600 uppercase tracking-wider">Nota</th>
|
||||
<th class="px-5 py-3 border-b-2 border-gray-200 bg-gray-100 text-left text-xs font-semibold text-gray-600 uppercase tracking-wider">Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(barangkes, i) in showBarangKes.data" :key="i">
|
||||
<td class="px-5 py-5 border-b border-gray-200 bg-white text-sm">
|
||||
<p class="text-gray-900 whitespace-no-wrap" v-text="(showBarangKes.from + i)"></p>
|
||||
</td>
|
||||
<td class="px-5 py-5 border-b border-gray-200 bg-white text-sm">
|
||||
<p class="text-gray-900 whitespace-no-wrap" v-text="barangkes.nama"></p>
|
||||
</td>
|
||||
<td class="px-5 py-5 border-b border-gray-200 bg-white text-sm">
|
||||
<p class="text-gray-900 whitespace-no-wrap" v-text="barangkes.nokp"></p>
|
||||
</td>
|
||||
<td class="px-5 py-5 border-b border-gray-200 bg-white text-sm">
|
||||
<p class="text-gray-900 whitespace-no-wrap" v-text="barangkes.nota"></p>
|
||||
</td>
|
||||
<td class="px-5 py-5 border-b border-gray-200 bg-white text-sm">
|
||||
<button @click="deleteBarangKes(barangkes.id, barangkes.nama, barangkes.nokp)" class="border border-red-600 text-red-600 font-montserrat py-2 px-4 font-medium rounded-xl hover:bg-red-600 hover:text-white transition-all duration-300">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16" />
|
||||
</svg>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<pagination :data="paginate" @clickEvent_="getBarangKes"></pagination>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import pagination from '../components/pagination.vue'
|
||||
import modal from '../components/util/BarangkesModal.vue'
|
||||
import deletemodal from '../components/util/Deletemodal.vue'
|
||||
|
||||
export default {
|
||||
components: {
|
||||
pagination,
|
||||
modal,
|
||||
deletemodal
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
currentPage: 1,
|
||||
showBarangKes: [],
|
||||
paginate: {},
|
||||
search: ''
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getBarangKes(this.currentPage)
|
||||
},
|
||||
methods: {
|
||||
getBarangKes(pageNumber) {
|
||||
|
||||
},
|
||||
|
||||
showModal() {
|
||||
this.$refs.modal.showModal = true;
|
||||
this.$refs.modal.kodcaw = this.$kodcaw;
|
||||
},
|
||||
deleteBarangKes(id, nama, nokp) {
|
||||
this.$refs.delmodal.deleteid = id;
|
||||
this.$refs.delmodal.nama = nama;
|
||||
this.$refs.delmodal.nokp = nokp;
|
||||
this.$refs.delmodal.showDelete = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
Vendored
+2
@@ -61,6 +61,7 @@ import AuditPage from './Audit/Audit'
|
||||
import KeuntunganSebenarPage from './Audit/KeuntunganSebenar'
|
||||
import UpahSimpanPage from './Audit/UpahSimpan'
|
||||
import LaporanLelong from './Akaun/LaporanLelong.vue'
|
||||
import Barangkes from './Akaun/Barangkes.vue'
|
||||
|
||||
|
||||
|
||||
@@ -105,6 +106,7 @@ export default new VueRouter({
|
||||
{ path: '/akaunhome/imbangdugabackup', component: ImbangDugaBackup },
|
||||
{ path: '/akaunhome/saghilang', component: SagHilang },
|
||||
{ path: '/akaunhome/laporanlelong', component: LaporanLelong },
|
||||
{ path: '/akaunhome/barangkes', component: Barangkes },
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,308 @@
|
||||
<style>
|
||||
#header {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#header td, #customers th {
|
||||
|
||||
padding:4px;
|
||||
font-size:10px;
|
||||
}
|
||||
|
||||
#header tr:nth-child(even){background-color: #ffffff;}
|
||||
|
||||
#header tr:hover {background-color: #ddd;}
|
||||
|
||||
#header th {
|
||||
padding-top: 12px;
|
||||
padding-bottom: 12px;
|
||||
text-align: left;
|
||||
padding:4px;
|
||||
color:black;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
|
||||
<style>
|
||||
#scan {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#scan td, #scan th {
|
||||
|
||||
padding: 8px;
|
||||
font-size:11px;
|
||||
}
|
||||
|
||||
#scan tr:nth-child(even){background-color: #ffffff;}
|
||||
|
||||
#scan tr:hover {background-color: #ddd;}
|
||||
|
||||
#scan th {
|
||||
padding-top: 12px;
|
||||
padding-bottom: 12px;
|
||||
text-align: left;
|
||||
padding:4px;
|
||||
color:black;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
<style>
|
||||
#scan {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#scan td, #scan th {
|
||||
border-collapse: collapse;
|
||||
padding: 8px;
|
||||
font-size:11px;
|
||||
}
|
||||
|
||||
#scan tr:nth-child(even){background-color: #ffffff;}
|
||||
|
||||
#scan tr:hover {background-color: #ddd;}
|
||||
|
||||
#scan th {
|
||||
border-collapse: collapse;
|
||||
padding-top: 12px;
|
||||
padding-bottom: 12px;
|
||||
text-align: left;
|
||||
padding:4px;
|
||||
color:black;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
|
||||
<style>
|
||||
#details {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#details td, #details th {
|
||||
|
||||
padding: 8px;
|
||||
font-size:8px;
|
||||
}
|
||||
|
||||
#details tr:nth-child(even){background-color: #ffffff;}
|
||||
|
||||
#details tr:hover {background-color: #ddd;}
|
||||
|
||||
#details th {
|
||||
padding-top: 12px;
|
||||
font-style:bold;
|
||||
padding-bottom: 12px;
|
||||
text-align: left;
|
||||
padding:4px;
|
||||
color:black;
|
||||
}
|
||||
</style>
|
||||
|
||||
<style>
|
||||
#sign {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#sign td, #sign th {
|
||||
|
||||
padding: 8px;
|
||||
font-size:11px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#sign tr:nth-child(even){background-color: #ffffff;}
|
||||
|
||||
#sign tr:hover {background-color: #ddd;}
|
||||
|
||||
#sign th {
|
||||
padding-top: 12px;
|
||||
padding-bottom: 12px;
|
||||
text-align: left;
|
||||
padding:4px;
|
||||
color:black;
|
||||
}
|
||||
|
||||
@media print {
|
||||
.new-page {
|
||||
page-break-before: always;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<table id="header">
|
||||
<tr>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="font-size:20px;font-weight:bold;">{{ $cawangan_detail['namacaw'] }}</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
<table id="scan">
|
||||
<tr>
|
||||
@php
|
||||
$api_url = request()->hostname;
|
||||
@endphp
|
||||
|
||||
@if(Str::contains($api_url, 'apiv3.arrahn'))
|
||||
<th colspan ="5"><b>LAPORAN BARANG KES(arOSv3)</b></th>
|
||||
@else
|
||||
<th colspan ="5"><b>LAPORAN BARANG KES</b></th>
|
||||
@endif
|
||||
|
||||
<th> </th>
|
||||
<th> </th>
|
||||
<th></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="5"><b> TARIKH CETAK:</b>
|
||||
@php
|
||||
$myDateTime = DateTime::createFromFormat('Y-m-d', $tarikh_cetak);
|
||||
$formattedweddingdate = $myDateTime->format('d-m-Y');
|
||||
echo($formattedweddingdate);
|
||||
@endphp
|
||||
</th>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th style="width:20px"> <b>TARIKH:</b></th>
|
||||
<th>@php
|
||||
$myDateTime = DateTime::createFromFormat('Y-m-d', $mula_date);
|
||||
$formattedweddingdate = $myDateTime->format('d-m-Y');
|
||||
echo($formattedweddingdate);
|
||||
@endphp</th>
|
||||
<th style="width:20px"> <b>HINGGA:</b></th>
|
||||
<th>@php
|
||||
$myDateTime = DateTime::createFromFormat('Y-m-d', $hingga_date);
|
||||
$formattedweddingdate = $myDateTime->format('d-m-Y');
|
||||
echo($formattedweddingdate);
|
||||
@endphp</th>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br>
|
||||
{{-- <table id="details">
|
||||
<tr>
|
||||
<th>Bil</th>
|
||||
<th>Tarikh</th>
|
||||
<th>IC Pelanggan</th>
|
||||
<th>Nama Pelanggan</th>
|
||||
<th>Norujukan</th>
|
||||
<th>Alasan</th>
|
||||
<th>Nilai Marhun(RM)</th>
|
||||
<th>Pembiayaan</th>
|
||||
<th>Sebulan</th>
|
||||
<th>Jumlah</th>
|
||||
<th>Margin</th>
|
||||
</tr>
|
||||
@foreach($polis as $index=>$sh)
|
||||
<tr>
|
||||
<td>{{ $loop->iteration}}</td>
|
||||
<td> {{ $sh['tarikh'] }}</td>
|
||||
<td> {{ $sh['nokp'] }}</td>
|
||||
@php
|
||||
$noic = Http::withOptions(['verify' => config('app.api_verify')])->get($hostname . '/api/customers/' .$sh['nokp'] )->json();
|
||||
@endphp
|
||||
<td> {{ $noic['nama'] }} </td>
|
||||
<td> {{ $sh['norujukan'] }}</td>
|
||||
<td> {{ $sh['komen1'] }}</td>
|
||||
<td>{{ number_format($item['nilaimarhun'],2) }}</td>
|
||||
<td>{{ number_format($item['pinjaman'],2) }}</td>
|
||||
|
||||
@php
|
||||
$koddaerah = Http::withOptions(['verify' => config('app.api_verify')])->get($hostname . '/api/daerah/' .$sh['koddaerah'] )->json();
|
||||
$kodnegeri = Http::withOptions(['verify' => config('app.api_verify')])->get($hostname . '/api/negeri/' .$sh['kodnegeri'] )->json();
|
||||
@endphp
|
||||
<td> {{ $koddaerah['namadaerah'] }}</td>
|
||||
<td> {{ $kodnegeri['negeri'] }}</td>
|
||||
<td> {{ $sh['sttebus'] }}</td>
|
||||
<td> {{ $sh['t_update'] }}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</table> --}}
|
||||
<table id="details">
|
||||
<tr>
|
||||
<th>Bil</th>
|
||||
<th>Tarikh</th>
|
||||
<th>No Rujukan</th>
|
||||
<th>Nota</th>
|
||||
<th>Pembiayaan (RM)</th>
|
||||
<th>Nilai Marhun (RM)</th>
|
||||
<th>JBG</th>
|
||||
<th>Untung (RM)</th>
|
||||
<th>1% (RM)</th>
|
||||
<th>Caj Lain (RM)</th>
|
||||
</tr>
|
||||
|
||||
@foreach($palsu as $index => $item)
|
||||
<tr>
|
||||
<td>{{ $loop->iteration }}</td>
|
||||
<td>{{ $item['tarikh'] }}</td>
|
||||
<td>{{ $item['norujukan'] }}</td>
|
||||
<td>{{ $item['nota'] }}</td>
|
||||
<td>{{ number_format($item['pembiayaan'], 2) }}</td>
|
||||
<td>{{ number_format($item['nilaimarhun'], 2) }}</td>
|
||||
<td>{{ number_format($item['jbg'], 2) }}</td>
|
||||
<td>{{ number_format($item['untung'], 2) }}</td>
|
||||
<td>{{ number_format($item['untungonepercent'], 2) }}</td>
|
||||
<td>{{ number_format($item['untungcajlain'], 2) }}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
|
||||
<br><br>
|
||||
|
||||
<br>
|
||||
<br><br><br>
|
||||
<table id="sign">
|
||||
<tr>
|
||||
<td></td>
|
||||
<td colspan="2"> .................................................................. </td>
|
||||
<td> </td>
|
||||
<td colspan="2"> .................................................................. </td>
|
||||
<td> </td>
|
||||
<td colspan="2">.................................................................. </td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td colspan="2"><B> Disediakan </B> </td>
|
||||
<td></td>
|
||||
<td colspan="2"><B> Disemak </B> </td>
|
||||
<td> </td>
|
||||
<td colspan="2"><B> Disahkan </B></td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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' : 'Pelanggan', 'icon' : 'fas fa-users' },{ 'title' : 'Barangkes', 'icon' : 'fas fa-box' }]"></breadcrumb>
|
||||
|
||||
<barangkes-pelanggan kodcaw="{{ Auth::user()->cawangan }}"></barangkes-pelanggan>
|
||||
|
||||
</div>
|
||||
</main>
|
||||
@include('layouts.footer')
|
||||
</div>
|
||||
@endsection
|
||||
@@ -131,6 +131,7 @@ Route::get('/akaunhome/cetakpenebusanRangeDate',['as'=>'cetak.penebusanRangeDate
|
||||
Route::get('/akaunhome/imbangdugabackup',['as'=>'cetak.imbangdugabackup','uses'=>'App\Http\Controllers\AkaunController@cetak_imbangdugaharian'])->middleware(['roleChecker:admin,akaun,operasi,kpo,callcenter']);
|
||||
Route::get('/akaunhome/cetak_saghilang',['as'=>'cetak.saghilang','uses'=>'App\Http\Controllers\AkaunController@cetak_laporansaghilang'])->middleware(['roleChecker:admin,akaun,operasi,kpo,callcenter']);
|
||||
Route::get('/akaunhome/cetak_laporanlelong',['as'=>'cetak.laporanlelong','uses'=>'App\Http\Controllers\AkaunController@cetak_laporanlelong'])->middleware(['roleChecker:admin,akaun,operasi,kpo,callcenter']);
|
||||
Route::get('/akaunhome/cetak_barangkes',['as'=>'cetak.laporanbarangkes','uses'=>'App\Http\Controllers\AkaunController@cetak_laporanbarangkes'])->middleware(['roleChecker:admin,akaun,operasi,kpo,callcenter']);
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user