feature: po pay downpayment

This commit is contained in:
2026-07-20 13:14:28 +07:00
parent dd5f0b6ab4
commit d92fb57751
64 changed files with 6166 additions and 1739 deletions

View File

@@ -0,0 +1,248 @@
<template>
<v-dialog v-model="dialog_add_mapping_default" persistent width="40vw">
<v-card>
<v-card-title class="headline grey lighten-2">Add Form</v-card-title>
<v-card-text>
<v-layout row wrap>
<v-flex xs12 pa-1>
<v-autocomplete :items="list_gol_inventaris.records" hide-details outline
label="Golongan Inventaris" item-text="M_InventarisGolName" item-value="M_InventarisGolID"
v-model="form.golID"></v-autocomplete>
</v-flex>
<v-flex xs12 pa-1>
<v-autocomplete :items="invCoa" hide-details outline label="Account Inventaris"
v-model="form.invCoaID" item-text="coaDescription" item-value="coaID"
:search-input.sync="searchInv" no-filter clearable>
<template slot="item" slot-scope="data">
<v-list-tile-content>
<v-list-tile-title v-html="data.item.coaAccountNo"></v-list-tile-title>
<v-list-tile-sub-title v-html="data.item.coaDescription"></v-list-tile-sub-title>
</v-list-tile-content>
</template>
</v-autocomplete>
</v-flex>
<v-flex xs12 pa-1>
<v-autocomplete :items="debtCoa" hide-details outline label="Account Hutang Inventaris"
v-model="form.debtCoaID" item-text="coaDescription" item-value="coaID"
:search-input.sync="searchDebt" no-filter clearable>
<template slot="item" slot-scope="data">
<v-list-tile-content>
<v-list-tile-title v-html="data.item.coaAccountNo"></v-list-tile-title>
<v-list-tile-sub-title v-html="data.item.coaDescription"></v-list-tile-sub-title>
</v-list-tile-content>
</template>
</v-autocomplete>
</v-flex>
<v-flex xs12 pa-1>
<v-autocomplete :items="bebanCoa" hide-details outline item-value="coaID"
label="Account Beban Penyusutan Inventaris" item-text="coaDescription"
v-model="form.bebanCoaID" :search-input.sync="searchBeban" no-filter clearable>
<template slot="item" slot-scope="data">
<v-list-tile-content>
<v-list-tile-title v-html="data.item.coaAccountNo"></v-list-tile-title>
<v-list-tile-sub-title v-html="data.item.coaDescription"></v-list-tile-sub-title>
</v-list-tile-content>
</template>
</v-autocomplete>
</v-flex>
<v-flex xs12 pa-1>
<v-autocomplete :items="accumCoa" hide-details outline item-value="coaID"
label="Account Akumulasi Penyusutan Inventaris" item-text="coaDescription"
v-model="form.accumCoaID" :search-input.sync="searchAccum" no-filter clearable>
<template slot="item" slot-scope="data">
<v-list-tile-content>
<v-list-tile-title v-html="data.item.coaAccountNo"></v-list-tile-title>
<v-list-tile-sub-title v-html="data.item.coaDescription"></v-list-tile-sub-title>
</v-list-tile-content>
</template>
</v-autocomplete>
</v-flex>
<v-flex xs12 pa-1>
<v-autocomplete :items="labaCoa" hide-details outline item-value="coaID"
label="Account Laba Pelepasan Inventaris" item-text="coaDescription"
v-model="form.labaCoaID" :search-input.sync="searchLaba" no-filter clearable>
<template slot="item" slot-scope="data">
<v-list-tile-content>
<v-list-tile-title v-html="data.item.coaAccountNo"></v-list-tile-title>
<v-list-tile-sub-title v-html="data.item.coaDescription"></v-list-tile-sub-title>
</v-list-tile-content>
</template>
</v-autocomplete>
</v-flex>
<v-flex xs12 pa-1>
<v-autocomplete :items="rugiCoa" hide-details outline item-value="coaID"
label="Account Rugi Pelepasan Inventaris" item-text="coaDescription"
v-model="form.rugiCoaID" :search-input.sync="searchRugi" no-filter clearable>
<template slot="item" slot-scope="data">
<v-list-tile-content>
<v-list-tile-title v-html="data.item.coaAccountNo"></v-list-tile-title>
<v-list-tile-sub-title v-html="data.item.coaDescription"></v-list-tile-sub-title>
</v-list-tile-content>
</template>
</v-autocomplete>
</v-flex>
</v-layout>
</v-card-text>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn @click="batalForm()" color="error" class="white--text">Batal</v-btn>
<v-btn @click="simpanForm()" color="primary" class="white--text">Simpan</v-btn>
</v-card-actions>
</v-card>
</v-dialog>
</template>
<script>
module.exports = {
data() {
return {
searchInv: null,
searchDebt: null,
searchBeban: null,
searchAccum: null,
searchLaba: null,
searchRugi: null,
debounceTimeout: null
}
},
computed: {
dialog_add_mapping_default: {
get() {
return this.$store.state.invMap.dialog_add_mapping_default;
},
set(val) {
this.$store.commit("invMap/update_dialog_add_mapping_default", val);
}
},
form: {
get() {
return this.$store.state.invMap.form_gol;
},
set(val) {
this.$store.commit("invMap/update_form_gol", val);
}
},
list_gol_inventaris: {
get() {
return this.$store.state.invMap.list_gol_inventaris;
},
set(val) {
this.$store.commit("invMap/update_list_gol_inventaris", val);
}
},
loading_process() {
return this.$store.state.datacoa.loading_process;
},
invCoa() {
return this.$store.state.datacoa.invCoa;
},
debtCoa() {
return this.$store.state.datacoa.debtCoa;
},
bebanCoa() {
return this.$store.state.datacoa.bebanCoa;
},
accumCoa() {
return this.$store.state.datacoa.accumCoa;
},
labaCoa() {
return this.$store.state.datacoa.labaCoa;
},
rugiCoa() {
return this.$store.state.datacoa.rugiCoa;
},
},
methods: {
fetchCoa(keyword, key) {
this.$store.dispatch("datacoa/getListCoa", { keyword: keyword, key: key });
},
batalForm() {
this.form = {
golID: 0,
invCoaID: 0,
debtCoaID: 0,
bebanCoaID: 0,
accumCoaID: 0,
labaCoaID: 0,
rugiCoaID: 0
}
this.dialog_add_mapping_default = false;
},
simpanForm() {
if (!this.loading_process) {
const form = this.form;
const param = {
M_InventarisGolID: form.golID,
CoaInventarisID: form.invCoaID,
CoaHutangID: form.debtCoaID,
CoaPembelianID: form.invCoaID,
CoaBebanPenyusutanID: form.bebanCoaID,
CoaAkumulasiPenyusutanID: form.accumCoaID,
CoaLabaPelepasanID: form.labaCoaID,
CoaRugiPelepasanID: form.rugiCoa
}
if (form.M_InventarisCoaMappingID) {
param.M_InventarisCoaMappingID = form.M_InventarisCoaMappingID;
this.$store.dispatch("invMap/editInventarisGolMapping", param);
} else {
this.$store.dispatch("invMap/createInventarisGolMapping", param);
}
} else {
const snac = { state: true, msg: "terdapat ongoing proses", color: "warning" };
this.$store.commit('update_snackbar', snac);
}
}
},
watch: {
searchInv(val) {
if (!val) return;
clearTimeout(this.debounceTimeout);
this.debounceTimeout = setTimeout(() => {
this.fetchCoa(val, 'invCoa');
}, 500)
},
searchDebt(val) {
if (!val) return;
clearTimeout(this.debounceTimeout);
this.debounceTimeout = setTimeout(() => {
this.fetchCoa(val, 'debtCoa');
}, 500)
},
searchBeban(val) {
if (!val) return;
clearTimeout(this.debounceTimeout);
this.debounceTimeout = setTimeout(() => {
this.fetchCoa(val, 'bebanCoa');
}, 500)
},
searchAccum(val) {
if (!val) return;
clearTimeout(this.debounceTimeout);
this.debounceTimeout = setTimeout(() => {
this.fetchCoa(val, 'accumCoa');
}, 500)
},
searchLaba(val) {
if (!val) return;
clearTimeout(this.debounceTimeout);
this.debounceTimeout = setTimeout(() => {
this.fetchCoa(val, 'labaCoa');
}, 500)
},
searchRugi(val) {
if (!val) return;
clearTimeout(this.debounceTimeout);
this.debounceTimeout = setTimeout(() => {
this.fetchCoa(val, 'rugiCoa');
}, 500)
}
}
}
</script>

View File

@@ -0,0 +1,251 @@
<template>
<v-dialog v-model="dialog_add_mapping_item" persistent width="40vw">
<v-card>
<v-card-title class="headline grey lighten-2">
{{ selected_inventaris_item.itemCoaMapID > 0
? "Edit Account Item"
: "Add Account Item"
}} {{ selected_inventaris_item.M_ItemDesc }}
</v-card-title>
<v-card-text>
<v-layout row wrap>
<v-flex xs12 pa-1>
<v-autocomplete :items="invCoa" hide-details outline label="Account Inventaris"
v-model="form.invCoaID" item-text="coaDescription" item-value="coaID"
:search-input.sync="searchInv" no-filter clearable>
<template slot="item" slot-scope="data">
<v-list-tile-content>
<v-list-tile-title v-html="data.item.coaAccountNo"></v-list-tile-title>
<v-list-tile-sub-title v-html="data.item.coaDescription"></v-list-tile-sub-title>
</v-list-tile-content>
</template>
</v-autocomplete>
</v-flex>
<v-flex xs12 pa-1>
<v-autocomplete :items="debtCoa" hide-details outline label="Account Hutang Inventaris"
v-model="form.debtCoaID" item-text="coaDescription" item-value="coaID"
:search-input.sync="searchDebt" no-filter clearable>
<template slot="item" slot-scope="data">
<v-list-tile-content>
<v-list-tile-title v-html="data.item.coaAccountNo"></v-list-tile-title>
<v-list-tile-sub-title v-html="data.item.coaDescription"></v-list-tile-sub-title>
</v-list-tile-content>
</template>
</v-autocomplete>
</v-flex>
<v-flex xs12 pa-1>
<v-autocomplete :items="bebanCoa" hide-details outline item-value="coaID"
label="Account Beban Penyusutan Inventaris" item-text="coaDescription"
v-model="form.bebanCoaID" :search-input.sync="searchBeban" no-filter clearable>
<template slot="item" slot-scope="data">
<v-list-tile-content>
<v-list-tile-title v-html="data.item.coaAccountNo"></v-list-tile-title>
<v-list-tile-sub-title v-html="data.item.coaDescription"></v-list-tile-sub-title>
</v-list-tile-content>
</template>
</v-autocomplete>
</v-flex>
<v-flex xs12 pa-1>
<v-autocomplete :items="accumCoa" hide-details outline item-value="coaID"
label="Account Akumulasi Penyusutan Inventaris" item-text="coaDescription"
v-model="form.accumCoaID" :search-input.sync="searchAccum" no-filter clearable>
<template slot="item" slot-scope="data">
<v-list-tile-content>
<v-list-tile-title v-html="data.item.coaAccountNo"></v-list-tile-title>
<v-list-tile-sub-title v-html="data.item.coaDescription"></v-list-tile-sub-title>
</v-list-tile-content>
</template>
</v-autocomplete>
</v-flex>
<v-flex xs12 pa-1>
<v-autocomplete :items="labaCoa" hide-details outline item-value="coaID"
label="Account Laba Pelepasan Inventaris" item-text="coaDescription"
v-model="form.labaCoaID" :search-input.sync="searchLaba" no-filter clearable>
<template slot="item" slot-scope="data">
<v-list-tile-content>
<v-list-tile-title v-html="data.item.coaAccountNo"></v-list-tile-title>
<v-list-tile-sub-title v-html="data.item.coaDescription"></v-list-tile-sub-title>
</v-list-tile-content>
</template>
</v-autocomplete>
</v-flex>
<v-flex xs12 pa-1>
<v-autocomplete :items="rugiCoa" hide-details outline item-value="coaID"
label="Account Rugi Pelepasan Inventaris" item-text="coaDescription"
v-model="form.rugiCoaID" :search-input.sync="searchRugi" no-filter clearable>
<template slot="item" slot-scope="data">
<v-list-tile-content>
<v-list-tile-title v-html="data.item.coaAccountNo"></v-list-tile-title>
<v-list-tile-sub-title v-html="data.item.coaDescription"></v-list-tile-sub-title>
</v-list-tile-content>
</template>
</v-autocomplete>
</v-flex>
</v-layout>
</v-card-text>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn @click="batalForm()" color="error" class="white--text">Batal</v-btn>
<v-btn @click="simpanForm()" color="primary" class="white--text">Simpan</v-btn>
</v-card-actions>
</v-card>
</v-dialog>
</template>
<script>
module.exports = {
data() {
return {
searchInv: null,
searchDebt: null,
searchBeban: null,
searchAccum: null,
searchLaba: null,
searchRugi: null,
debounceTimeout: null
}
},
computed: {
dialog_add_mapping_item: {
get() {
return this.$store.state.invItemMap.dialog_add_mapping_item;
},
set(val) {
this.$store.commit("invItemMap/update_dialog_add_mapping_item", val);
}
},
list_gol_inventaris: {
get() {
return this.$store.state.invMap.list_gol_inventaris;
},
set(val) {
this.$store.commit("invMap/update_list_gol_inventaris", val);
}
},
form: {
get() {
return this.$store.state.invItemMap.form;
},
set(val) {
this.$store.commit("invItemMap/update_form", val);
}
},
selected_inventaris_item() {
return this.$store.state.invItemMap.selected_inventaris_item;
},
loading_process() {
return this.$store.state.datacoa.loading_process;
},
invCoa() {
return this.$store.state.datacoa.invCoa;
},
debtCoa() {
return this.$store.state.datacoa.debtCoa;
},
bebanCoa() {
return this.$store.state.datacoa.bebanCoa;
},
accumCoa() {
return this.$store.state.datacoa.accumCoa;
},
labaCoa() {
return this.$store.state.datacoa.labaCoa;
},
rugiCoa() {
return this.$store.state.datacoa.rugiCoa;
},
},
methods: {
fetchCoa(keyword, key) {
this.$store.dispatch("datacoa/getListCoa", { keyword: keyword, key: key });
},
batalForm() {
this.form = {
invCoaID: 0,
debtCoaID: 0,
bebanCoaID: 0,
accumCoaID: 0,
labaCoaID: 0,
rugiCoaID: 0
}
this.dialog_add_mapping_item = false;
},
simpanForm() {
if (!this.loading_process) {
const form = this.form;
const selected = this.selected_inventaris_item
const param = {
M_ItemID: selected.M_ItemID,
M_InventarisItemCoaMappingID: selected.itemCoaMapID,
CoaInventarisID: form.invCoaID,
CoaHutangID: form.debtCoaID,
CoaPembelianID: form.invCoaID,
CoaBebanPenyusutanID: form.bebanCoaID,
CoaAkumulasiPenyusutanID: form.accumCoaID,
CoaLabaPelepasanID: form.labaCoaID,
CoaRugiPelepasanID: form.rugiCoaID
}
if (selected.itemCoaMapID > 0) {
this.$store.dispatch("invItemMap/editInvItemCoaMapping", param);
} else {
this.$store.dispatch("invItemMap/createInvItemCoaMapping", param);
}
} else {
const snac = { state: true, msg: "terdapat ongoing proses", color: "warning" };
this.$store.commit('update_snackbar', snac);
}
}
},
watch: {
searchInv(val) {
if (!val) return;
clearTimeout(this.debounceTimeout);
this.debounceTimeout = setTimeout(() => {
this.fetchCoa(val, 'invCoa');
}, 500)
},
searchDebt(val) {
if (!val) return;
clearTimeout(this.debounceTimeout);
this.debounceTimeout = setTimeout(() => {
this.fetchCoa(val, 'debtCoa');
}, 500)
},
searchBeban(val) {
if (!val) return;
clearTimeout(this.debounceTimeout);
this.debounceTimeout = setTimeout(() => {
this.fetchCoa(val, 'bebanCoa');
}, 500)
},
searchAccum(val) {
if (!val) return;
clearTimeout(this.debounceTimeout);
this.debounceTimeout = setTimeout(() => {
this.fetchCoa(val, 'accumCoa');
}, 500)
},
searchLaba(val) {
if (!val) return;
clearTimeout(this.debounceTimeout);
this.debounceTimeout = setTimeout(() => {
this.fetchCoa(val, 'labaCoa');
}, 500)
},
searchRugi(val) {
if (!val) return;
clearTimeout(this.debounceTimeout);
this.debounceTimeout = setTimeout(() => {
this.fetchCoa(val, 'rugiCoa');
}, 500)
}
}
}
</script>

View File

@@ -0,0 +1,41 @@
<template>
<v-dialog v-model="dialog_add_mapping" persistent width="50vw">
<v-card>
<v-card-title class="headline grey lighten-2">Add Form</v-card-title>
<v-card-text>
<v-layout></v-layout>
</v-card-text>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn @click="batalForm()" color="error" class="white--text">Batal</v-btn>
<v-btn @click="simpanForm()" color="primary" class="white--text">Simpan</v-btn>
</v-card-actions>
</v-card>
</v-dialog>
</template>
<script>
module.exports = {
data() {
return {}
},
computed: {
dialog_add_mapping: {
get() {
return this.$store.state.invMap.dialog_add_mapping;
},
set(val) {
this.$store.commit("invMap/update_dialog_add_mapping", val);
}
}
},
methods: {
batalForm() {
},
simpanForm() {
}
}
}
</script>

View File

@@ -0,0 +1,72 @@
<template>
<v-dialog v-model="dialog_confirm_item" persistent width="40vw">
<v-card>
<v-card-title class="headline grey lighten-2">Konfirmasi Hapus</v-card-title>
<v-card-text>
<v-layout row wrap>
<v-flex xs12>
<p>
Apakah anda yakin akan menghapus data mapping item coa inventaris golongan
: <strong>{{ selected_inventaris_item.M_ItemDesc }}</strong> ?
</p>
</v-flex>
</v-layout>
</v-card-text>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn @click="batal()" color="error" class="white--text">Batal</v-btn>
<v-btn @click="konfirmasi()" color="primary" class="white--text">Konfirmasi</v-btn>
</v-card-actions>
</v-card>
</v-dialog>
</template>
<script>
module.exports = {
data() {
return {}
},
computed: {
dialog_confirm_item: {
get() {
return this.$store.state.invItemMap.dialog_confirm_item;
},
set(val) {
this.$store.commit("invItemMap/update_dialog_confirm_item", val);
}
},
selected_inventaris_item: {
get() {
return this.$store.state.invItemMap.selected_inventaris_item;
},
set(val) {
this.$store.commit("invItemMap/update_selected_inventaris_item", val);
}
},
loading_process() {
return this.$store.state.invMap.loading_process;
}
},
methods: {
checkEmpty(obj) {
return obj && Object.keys(obj).length === 0 && obj.constructor === Object;
},
batal() {
this.selected_inventaris_item = {};
this.dialog_confirm_item = false;
},
konfirmasi() {
if (!this.loading_process) {
const itm = this.selected_inventaris_item;
this.$store.dispatch("invItemMap/deleteInvItemCoaMapping", {
M_InventarisItemCoaMappingID: itm.itemCoaMapID
})
} else {
const snac = { state: true, msg: "terdapat proses masih berjalan", color: "warning" };
this.$store.commit('invMap/update_snackbar', snac);
}
}
}
}
</script>

View File

@@ -0,0 +1,69 @@
<template>
<v-dialog v-model="dialog_confirm" persistent width="40vw">
<v-card>
<v-card-title class="headline grey lighten-2">Konfirmasi Hapus</v-card-title>
<v-card-text>
<v-layout row wrap>
<v-flex xs12>
<p>
Apakah anda yakin akan menghapus data mapping coa inventaris golongan
: <strong>{{ selected_inventaris_gol.M_InventarisGolName }}</strong> ?
</p>
</v-flex>
</v-layout>
</v-card-text>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn @click="batal()" color="error" class="white--text">Batal</v-btn>
<v-btn @click="konfirmasi()" color="primary" class="white--text">Konfirmasi</v-btn>
</v-card-actions>
</v-card>
</v-dialog>
</template>
<script>
module.exports = {
data() {
return {}
},
computed: {
dialog_confirm: {
get() {
return this.$store.state.invMap.dialog_confirm;
},
set(val) {
this.$store.commit("invMap/update_dialog_confirm", val);
}
},
selected_inventaris_gol: {
get() {
return this.$store.state.invMap.selected_inventaris_gol;
},
set(val) {
this.$store.commit("invMap/update_selected_inventaris_gol", val);
}
},
loading_process() {
return this.$store.state.invMap.loading_process;
}
},
methods: {
checkEmpty(obj) {
return obj && Object.keys(obj).length === 0 && obj.constructor === Object;
},
batal() {
this.selected_inventaris_gol = {};
this.dialog_confirm = false;
},
konfirmasi() {
if (!this.loading_process) {
const inv = this.selected_inventaris_gol;
this.$store.dispatch("invMap/deleteInventarisGolMapping", inv.M_InventarisCoaMappingID);
} else {
const snac = { state: true, msg: "terdapat proses masih berjalan", color: "warning" };
this.$store.commit('invMap/update_snackbar', snac);
}
}
}
}
</script>

View File

@@ -0,0 +1,192 @@
<template>
<div>
<v-toolbar color="primary" dark>
<v-toolbar-title class="white--text">Inventaris Category</v-toolbar-title>
<v-spacer></v-spacer>
<v-btn icon @click="openDialogAdd()">
<v-icon large>add_box</v-icon>
</v-btn>
</v-toolbar>
<v-card class="pa-2">
<v-layout row wrap>
<v-flex xs4 pa-1>
<v-text-field v-model="keyword" hide-details outline
label="Cari" placeholder="Cari"></v-text-field>
</v-flex>
</v-layout>
</v-card>
<v-card class="pa-2 mt-2">
<v-data-table :headers="headers" :items="list_inventarisMapping.records" hide-actions class="elevation-1">
<template v-slot:items="props">
<tr @click="selected(props.item)" :class="{ 'amber lighten-4': isSelected(props.item) }">
<td class="text-xs-center pa-2">
{{ props.index + 1 }}
</td>
<td class="text-xs-left pa-2">
{{ props.item.M_InventarisGolName }}
</td>
<td class="text-xs-center pa-2">
<v-tooltip bottom>
<template v-slot:activator="{ on }">
<v-btn color="info" dark v-on="on" @click="openDialogEdit(props.item)"
small style="min-width: 40px; margin: 0;">
<v-icon small>edit</v-icon>
</v-btn>
</template>
<span>Edit</span>
</v-tooltip>
<v-tooltip bottom>
<template v-slot:activator="{ on }">
<v-btn color="error" dark v-on="on" @click="openDialogDelete(props.item)"
small style="min-width: 40px; margin: 0;">
<v-icon small>delete</v-icon>
</v-btn>
</template>
<span>Delete</span>
</v-tooltip>
</td>
</tr>
</template>
</v-data-table>
</v-card>
<v-snackbar v-model="snackbar.state" multi-line top :timeout="3000" :color="snackbar.color">
{{ snackbar.msg }}
<v-btn class="ml-2" round flat @click="snackbar.state = false">Tutup</v-btn>
</v-snackbar>
<dialog-add-form></dialog-add-form>
<dialog-add-form-item></dialog-add-form-item>
<dialog-confirm></dialog-confirm>
<dialog-confirm-item></dialog-confirm-item>
</div>
</template>
<script>
module.exports = {
components: {
'dialog-add-form': httpVueLoader('./dialog-add-mapping-def.vue'),
'dialog-add-form-item': httpVueLoader('./dialog-add-mapping-item.vue'),
'dialog-confirm': httpVueLoader('./dialog-confirm.vue'),
'dialog-confirm-item': httpVueLoader('./dialog-confirm-item.vue'),
},
mounted() {
this.$store.dispatch("invMap/getListingInventarisGol");
this.$store.dispatch("invMap/getListInventorygolMapping", "");
},
data() {
return {
keyword: "",
headers: [
{
text: "NO", align: "center", sortable: false, value: "nomor",
width: "10%", class: "pa-1 blue lighten-3 white--text",
},
{
text: "GOLONGAN INVENTARIS", align: "center", sortable: false, value: "nomor",
width: "60%", class: "pa-1 blue lighten-3 white--text",
},
{
text: "AKSI", align: "center", sortable: false, value: "nomor",
width: "30%", class: "pa-1 blue lighten-3 white--text",
},
]
}
},
computed: {
snackbar: {
get() {
return this.$store.state.invMap.snackbar;
},
set(val) {
this.$store.commit("invMap/update_snackbar", val);
}
},
selected_inventaris_gol: {
get() {
return this.$store.state.invMap.selected_inventaris_gol;
},
set(val) {
this.$store.commit("invMap/update_selected_inventaris_gol", val);
}
},
list_inventarisMapping: {
get() {
return this.$store.state.invMap.list_inventarisMapping;
},
set(val) {
this.$store.commit("invMap/update_list_inventarisMapping;", val);
}
}
},
methods: {
cariGolMapInventaris(keyword) {
setTimeout(() => {
this.$store.dispatch("invMap/getListInventorygolMapping", keyword);
}, 500);
},
openDialogAdd() {
this.hidrateCoaAutocomplete({});
this.$store.commit("invMap/update_dialog_add_mapping_default", true);
},
selected(item) {
this.$store.dispatch("invMap/getListItemInventaris", item.M_InventarisGolID);
this.selected_inventaris_gol = item;
},
isSelected(item) {
return item.M_InventarisGolID == this.selected_inventaris_gol.M_InventarisGolID
},
openDialogEdit(item) {
this.hidrateCoaAutocomplete(item);
this.selected_inventaris_gol = item;
const form = {
golID: item.M_InventarisGolID,
invCoaID: item.M_InventarisCoaMappingCoaInventarisID,
debtCoaID: item.M_InventarisCoaMappingCoaHutangID,
bebanCoaID: item.M_InventarisCoaMappingCoaBebanPenyusutanID,
accumCoaID: item.M_InventarisCoaMappingCoaAkumulasiPenyusutanID,
labaCoaID: item.M_InventarisCoaMappingCoaLabaPelepasanID,
rugiCoaID: item.M_InventarisCoaMappingCoaRugiPelepasanID,
M_InventarisCoaMappingID: item.M_InventarisCoaMappingID
}
this.$store.commit("invMap/update_form_gol", form);
this.$store.commit("invMap/update_dialog_add_mapping_default", true);
},
openDialogDelete(item) {
this.selected_inventaris_gol = item;
this.$store.commit("invMap/update_dialog_confirm", true);
},
hidrateCoaAutocomplete(item) {
this.$store.dispatch("datacoa/getListCoa", {
keyword: item.CoaInventarisAccountNo ?? "", key: "invCoa"
});
this.$store.dispatch("datacoa/getListCoa", {
keyword: item.CoaHutangAccountNo ?? "", key: "debtCoa"
});
this.$store.dispatch("datacoa/getListCoa", {
keyword: item.CoaBebanPenyusutanAccountNo ?? "", key: "bebanCoa"
});
this.$store.dispatch("datacoa/getListCoa", {
keyword: item.CoaAkumulasiPenyusutanAccountNo ?? "", key: "accumCoa"
});
this.$store.dispatch("datacoa/getListCoa", {
keyword: item.CoaLabaPelepasanAccountNo ?? "", key: "labaCoa"
});
this.$store.dispatch("datacoa/getListCoa", {
keyword: item.CoaRugiPelepasanAccountNo ?? "", key: "rugiCoa"
});
}
},
watch: {
keyword(newval, oldval) {
if (newval == oldval) return;
if (!newval) return;
if (newval.lenght < 1) return;
this.cariGolMapInventaris(newval);
}
}
}
</script>

View File

@@ -0,0 +1,227 @@
<template>
<div class="right-layout-container">
<v-toolbar color="primary" dark>
<v-toolbar-title class="white--text">Inventaris Item</v-toolbar-title>
<v-spacer></v-spacer>
</v-toolbar>
<v-card class="pa-2">
<v-layout row wrap>
<v-flex xs12 pa-1>
<h2>Setting Default Akun Inventaris</h2>
</v-flex>
<v-flex xs4 pa-1>
<strong>Akun Inventaris: </strong> <br>
{{ selected_inventaris_gol.CoaInventarisAccountNo }} <br>
{{ selected_inventaris_gol.CoaInventarisDescription }} <br>
</v-flex>
<v-flex xs4 pa-1>
<strong>Akun Inventaris Hutang: </strong> <br>
{{ selected_inventaris_gol.CoaHutangAccountNo }} <br>
{{ selected_inventaris_gol.CoaHutangDescription }} <br>
</v-flex>
<v-flex xs4 pa-1>
<strong>Akun Inventaris Beban Depresiasi: </strong> <br>
{{ selected_inventaris_gol.CoaBebanPenyusutanAccountNo }} <br>
{{ selected_inventaris_gol.CoaBebanPenyusutanDescription }} <br>
</v-flex>
<v-flex xs4 pa-1>
<strong>Akun Inventaris Akumulasi Depresiasi: </strong> <br>
{{ selected_inventaris_gol.CoaAkumulasiPenyusutanAccountNo }} <br>
{{ selected_inventaris_gol.CoaAkumulasiPenyusutanDescription }} <br>
</v-flex>
<v-flex xs4 pa-1>
<strong>Akun Inventaris Laba Pelepasan: </strong> <br>
{{ selected_inventaris_gol.CoaLabaPelepasanAccountNo }} <br>
{{ selected_inventaris_gol.CoaLabaPelepasanDescription }} <br>
</v-flex>
<v-flex xs4 pa-1>
<strong>Akun Inventaris Rugi Pelepasan: </strong> <br>
{{ selected_inventaris_gol.CoaRugiPelepasanAccountNo }} <br>
{{ selected_inventaris_gol.CoaRugiPelepasanDescription }} <br>
</v-flex>
</v-layout>
</v-card>
<v-card class="pa-2 table-card mt-2">
<v-layout row wrap>
<v-flex xs3 pa-1>
<v-text-field hide-details outline label="Cari" placeholder="Cari"></v-text-field>
</v-flex>
</v-layout>
<div class="table-scroll-wrapper">
<v-data-table :headers="headers" :items="list_item_inventaris.records" :pagination.sync="pagination"
:rows-per-page-items="[5, 10, 25]" class="elevation-1">
<template v-slot:items="props">
<tr>
<td class="text-xs-center pa-1">
{{ props.index + 1 }}
</td>
<td class="text-xs-left pa-1">
{{ props.item.M_ItemDesc }}
</td>
<td class="text-xs-left pa-1">
<v-layout row wrap>
<v-flex xs4 pa-1>
<strong>Akun Inventaris: </strong> <br>
{{ props.item.CoaInventarisAccountNo }} <br>
{{ props.item.CoaInventarisDescription }} <br>
</v-flex>
<v-flex xs4 pa-1>
<strong>Akun Inventaris Hutang: </strong> <br>
{{ props.item.CoaHutangAccountNo }} <br>
{{ props.item.CoaHutangDescription }} <br>
</v-flex>
<v-flex xs4 pa-1>
<strong>Akun Inventaris Beban Depresiasi: </strong> <br>
{{ props.item.CoaBebanPenyusutanAccountNo }} <br>
{{ props.item.CoaBebanPenyusutanDescription }} <br>
</v-flex>
<v-flex xs4 pa-1>
<strong>Akun Inventaris Akumulasi Depresiasi: </strong> <br>
{{ props.item.CoaAkumulasiPenyusutanAccountNo }} <br>
{{ props.item.CoaAkumulasiPenyusutanDescription }} <br>
</v-flex>
<v-flex xs4 pa-1>
<strong>Akun Inventaris Laba Pelepasan: </strong> <br>
{{ props.item.CoaLabaPelepasanAccountNo }} <br>
{{ props.item.CoaLabaPelepasanDescription }} <br>
</v-flex>
<v-flex xs4 pa-1>
<strong>Akun Inventaris Rugi Pelepasan: </strong> <br>
{{ props.item.CoaRugiPelepasanAccountNo }} <br>
{{ props.item.CoaRugiPelepasanDescription }} <br>
</v-flex>
</v-layout>
</td>
<td class="text-xs-center pa-1">
<v-tooltip bottom>
<template v-slot:activator="{ on }">
<v-btn color="info" dark v-on="on"
@click="editAcc(props.item)" small
style="min-width: 40px; margin: 0;"
>
<v-icon small>edit</v-icon>
</v-btn>
</template>
<span>Edit</span>
</v-tooltip>
<v-tooltip bottom>
<template v-slot:activator="{ on }">
<v-btn color="error" dark v-on="on"
@click="deleteAcc(props.item)" small
style="min-width: 40px; margin: 0;"
>
<v-icon small>delete</v-icon>
</v-btn>
</template>
<span>Delete</span>
</v-tooltip>
</td>
</tr>
</template>
</v-data-table>
</div>
</v-card>
</div>
</template>
<style scoped>
.right-layout-container {
display: flex;
flex-direction: column;
}
.table-card {
flex: 1;
min-height: 0;
display: flex;
flex-direction: column;
overflow: hidden;
}
</style>
<script>
module.exports = {
components: {
},
data() {
return {
pagination: {},
headers: [
{
text: "NO", align: "center", sortable: false, value: "nomor",
width: "5%", class: "pa-1 blue lighten-3 white--text",
},
{
text: "ITEM INVENTARIS", align: "center", sortable: false, value: "nomor",
width: "25%", class: "pa-1 blue lighten-3 white--text",
},
{
text: "ACCOUNT KHUSUS", align: "center", sortable: false, value: "nomor",
width: "60%", class: "pa-1 blue lighten-3 white--text",
},
{
text: "AKSI", align: "center", sortable: false, value: "nomor",
width: "10%", class: "pa-1 blue lighten-3 white--text",
},
]
}
},
computed: {
list_item_inventaris: {
get() {
return this.$store.state.invItemMap.list_item_inventaris
},
set(val) {
this.$store.commit("invItemMap/update_list_item_inventaris", val)
}
},
selected_inventaris_gol() {
return this.$store.state.invMap.selected_inventaris_gol;
}
},
methods: {
editAcc(item) {
this.hidrateCoaAutocomplete(item);
const form = {
invCoaID: item.M_InventarisItemCoaMappingCoaInventarisID,
debtCoaID: item.M_InventarisItemCoaMappingCoaHutangID,
bebanCoaID: item.M_InventarisItemCoaMappingCoaBebanPenyusutanID,
accumCoaID: item.M_InventarisItemCoaMappingCoaAkumulasiPenyusutanID,
labaCoaID: item.M_InventarisItemCoaMappingCoaLabaPelepasanID,
rugiCoaID: item.M_InventarisItemCoaMappingCoaRugiPelepasanID
}
this.$store.commit("invItemMap/update_form", form);
this.$store.commit("invItemMap/update_selected_inventaris_item", item)
this.$store.commit("invItemMap/update_dialog_add_mapping_item", true)
},
deleteAcc(item) {
this.$store.commit("invItemMap/update_selected_inventaris_item", item);
this.$store.commit("invItemMap/update_dialog_confirm_item", true);
},
hidrateCoaAutocomplete(item) {
this.$store.dispatch("datacoa/getListCoa", {
keyword: item.CoaInventarisAccountNo ?? "", key: "invCoa"
});
this.$store.dispatch("datacoa/getListCoa", {
keyword: item.CoaHutangAccountNo ?? "", key: "debtCoa"
});
this.$store.dispatch("datacoa/getListCoa", {
keyword: item.CoaBebanPenyusutanAccountNo ?? "", key: "bebanCoa"
});
this.$store.dispatch("datacoa/getListCoa", {
keyword: item.CoaAkumulasiPenyusutanAccountNo ?? "", key: "accumCoa"
});
this.$store.dispatch("datacoa/getListCoa", {
keyword: item.CoaLabaPelepasanAccountNo ?? "", key: "labaCoa"
});
this.$store.dispatch("datacoa/getListCoa", {
keyword: item.CoaRugiPelepasanAccountNo ?? "", key: "rugiCoa"
});
}
}
}
</script>