Files
fe-accone/test/vuex/acc-one-payment-voucher/components/voucherListingDetail.vue

259 lines
8.0 KiB
Vue

<template>
<div style="width: 100%;">
<v-layout row wrap>
<v-flex xs12 fill-height pa-1>
<v-card>
<v-card-text>
<v-layout row wrap>
<v-flex xs12>
<v-layout row wrap>
<v-flex xs11>
<v-layout row wrap>
<v-flex xs12>
<div>
<span>No : </span>
<span>{{
selected_voucher.PaymentVoucherNumber
}}</span>
</div>
</v-flex>
<v-flex xs12>
<div>
<span>Sumber Dana : </span>
<span>{{
selected_voucher.coaDescriptionSource
}}</span>
</div>
</v-flex>
<!-- <v-flex xs12>
<div>
<span>Biaya : </span>
<span>{{
selected_voucher.coaDescriptionExpense
}}</span>
</div>
</v-flex> -->
<v-flex xs12>
<div>
<span>Tampungan Sementara : </span>
<span>{{
selected_voucher.coaDescriptionTemporary
}}</span>
</div>
</v-flex>
</v-layout>
</v-flex>
<!-- <v-flex xs1>
<v-btn
color="primary"
flat
icon
@click="openDialogDetail()"
>
<v-icon>add_box</v-icon>
</v-btn>
</v-flex> -->
</v-layout>
</v-flex>
<v-flex xs12 pt-2 pb-2>
<v-layout row wrap>
<v-flex xs12>
<v-data-table
:headers="headers"
:items="xdetails"
:loading="isLoading"
hide-actions
class="elevation-1"
>
<template slot="items" slot-scope="props">
<td class="text-xs-center pa-2">
{{ props.item.RowNumber }}
</td>
<td class="text-xs-left pa-2">
{{ props.item.PurchaseRequestDirectNumber }}
</td>
<td class="text-xs-left pa-2">
Rp
{{
props.item.PaymentVoucherDetailTotal.toString().replace(
/\B(?=(\d{3})+(?!\d))/g,
"."
)
}}
</td>
<td>
<v-btn
style="min-width: 25px; height: 25px; margin: 0;" outline
small @click="openAccountDialog(props.item)" color="blue lighten-2"
>
<v-icon small color="blue">edit</v-icon>
</v-btn>
</td>
</template>
</v-data-table>
</v-flex>
</v-layout>
</v-flex>
<!-- <v-flex xs12 v-show="xdetails.length > 0">
<v-btn
@click="simpanKasir()"
>
Simpan
</v-btn>
</v-flex> -->
</v-layout>
</v-card-text>
</v-card>
</v-flex>
</v-layout>
<dialog-account-item></dialog-account-item>
</div>
</template>
<style scoped>
.date-type-table {
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.table.v-table tbody td,
table.v-table tbody th {
height: 40px;
}
.table.v-table thead tr {
height: 40px;
}
.scroll-container {
scroll-padding: 50px 0 0 50px;
}
</style>
<script>
module.exports = {
components: {
'dialog-account-item': httpVueLoader('./dialogAccountItem.vue')
},
data() {
return {
headers: [
{
text: "NO",
align: "left",
sortable: false,
value: "no",
width: "10%",
class: "blue lighten-3 white--text",
},
{
text: "NO REQUEST",
align: "left",
sortable: false,
value: "request",
width: "45%",
class: "blue lighten-3 white--text",
},
{
text: "TOTAL",
align: "left",
sortable: false,
value: "total",
width: "40%",
class: "blue lighten-3 white--text",
},
{
text: "AKSI",
align: "left",
sortable: false,
value: "total",
width: "5%",
class: "blue lighten-3 white--text",
},
],
}
},
mounted() {
},
computed: {
xdetails() {
return this.$store.state.voucher.details;
},
isLoading() {
return this.$store.state.voucher.search_status_detail === 1;
},
selected_voucher: {
get() {
return this.$store.state.voucher.selected_voucher;
},
set(val) {
this.$store.commit("voucher/update_selected_voucher", val);
},
},
dialog_account_item: {
get() {
return this.$store.state.voucher.dialog_account_item;
},
set(val) {
this.$store.commit("voucher/update_dialog_account_item", val)
}
},
list_voucher_detail: {
get() {
return this.$store.state.voucher.list_voucher_detail;
},
set(val) {
this.$store.commit("voucher/update_list_voucher_detail", val)
}
},
list_accitem: {
get() {
return this.$store.state.voucher.list_accitem;
},
set(val) {
this.$store.commit("voucher/update_list_accitem", val)
}
}
},
methods: {
convertMoney(money){
return one_money(money)
},
async openAccountDialog(data) {
await this.$store.dispatch("voucher/getVoucherDetailItem", {
PRDirectID: data.PaymentVoucherDetailPurchaseRequestDirectID
})
this.$store.dispatch("voucher/searchAccountItem", {search: ''})
this.dialog_account_item = true
},
simpanKasir() {
let details = this.xdetails
let isIncomplete = false
let message = 'Acoount item belum terisi pada : '
details.forEach(element => {
if (element.PurchaseRequestDirectAccountFilled == 'N') {
message = message + element.PurchaseRequestDirectNumber
isIncomplete = true
}
});
if (isIncomplete) {
this.$store.commit("voucher/update_alert_error", true);
this.$store.commit("voucher/update_error_message", message);
return
}
this.$store.dispatch("voucher/moveTokasir")
}
},
watch: {
}
}
</script>