Files
fe-accone/test/vuex/acc-one-receive-item-po-inventaris/components/dialogPrintBarcode.vue

177 lines
5.9 KiB
Vue

<template>
<v-dialog v-model="dialog_barcode" persistent max-width="600">
<v-card>
<v-card-title style="color: #fff" class="headline grey darken-1">Cetak Barcode</v-card-title>
<v-card-text>
<v-layout pa-2 class="grey lighten-2" row>
<v-flex xs1>
<v-checkbox style="padding-top: 0; margin-top: 0" hide-details color="grey darken-1"
:indeterminate="indeterminatex" @change="changeCbxAll(bar_chx_all)" v-model="bar_chx_all">
</v-checkbox>
</v-flex>
<v-flex xs5> ITEM </v-flex>
<v-flex xs5> NUMBER BARCODE </v-flex>
<v-flex xs1> CETAK </v-flex>
</v-layout>
<v-layout align-center pa-2 v-for="(vs, idx) in barcodes" :key="vs.id" class="grey lighten-4" row>
<v-flex xs1>
<v-checkbox style="padding-top: 0; margin-top: 0" color="grey darken-1" hide-details v-model="vs.chex"
@change="checkTop()"></v-checkbox>
</v-flex>
<v-flex xs5>
{{ vs.M_ItemDesc }}
</v-flex>
<v-flex xs5>
{{ vs.T_BarcodeBarangNumber }}
</v-flex>
<v-flex xs1>
<span @click="printSingleBarcode(vs)"
class="icon-medium-fill-base-small xs1 white--text grey darken-1 ml-1 icon-print"></span>
</v-flex>
</v-layout>
</v-card-text>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn color="grey darken-1" flat @click="dialog_barcode = false">Tutup</v-btn>
<!-- <v-btn dark color="grey darken-3" @click="printRobo"
>Cetak Robo
</v-btn> -->
<v-btn dark color="grey darken-1" @click="printMultipleBarcode">Cetak terpilih [ {{ selected_barcode.length }}
]</v-btn>
</v-card-actions>
</v-card>
</v-dialog>
</template>
<script>
module.exports = {
data() {
return {
valid_formhandover: true
}
},
computed: {
dialog_barcode: {
get() {
return this.$store.state.ro.dialog_barcode
},
set(val) {
this.$store.commit("ro/update_dialog_barcode", val)
}
},
barcodes: {
get() {
return this.$store.state.ro.barcodes
},
set(val) {
this.$store.commit("ro/update_barcodes", val)
}
},
selected_item_received: {
get() {
return this.$store.state.form.selected_item_received
},
set(val) {
this.$store.commit("form/update_selected_item_received", val)
}
},
selected_ro: {
get() {
return this.$store.state.ro.selected_ro
},
set(val) {
this.$store.commit("ro/update_selected_ro", val);
}
},
list_staff() {
return this.$store.state.ro.list_staff
},
urlQrCode: {
get() {
return this.$store.state.ro.urlQrCode;
},
set(val) {
this.$store.commit("ro/update_urlQrCode", val);
},
},
indeterminatex: {
get() {
return this.$store.state.ro.indeterminatex;
},
set(val) {
this.$store.commit("ro/update_indeterminatex", val);
},
},
bar_chx_all: {
get() {
return this.$store.state.ro.bar_chx_all;
},
set(val) {
this.$store.commit("ro/update_bar_chx_all", val);
},
},
selected_barcode: {
get() {
return this.$store.state.ro.selected_barcode;
},
set(val) {
this.$store.commit("ro/update_selected_barcode", val);
},
},
},
methods: {
changeCbxAll(value) {
var arr = this.barcodes;
this.indeterminatex = false;
arr.forEach((el) => {
el.chex = value;
});
var selected = _.filter(arr, function (o) {
return o.chex;
});
this.selected_barcode = selected;
},
checkTop() {
var barcodes = this.barcodes;
var selected = _.filter(barcodes, function (o) {
return o.chex;
});
this.bar_chx_all = false;
this.indeterminatex = false;
if (selected.length > 0 && barcodes.length === selected.length) {
this.bar_chx_all = true;
this.indeterminatex = false;
}
if (selected.length > 0 && barcodes.length > selected.length) {
this.bar_chx_all = false;
this.indeterminatex = true;
}
this.selected_barcode = selected;
console.log(selected);
},
printSingleBarcode(value) {
var inp = {
nama_item: value.M_ItemDesc,
no_inv: value.T_BarcodeBarangNumber,
lokasi: value.M_RuanganName,
cabang: value.M_BranchName
};
one_print_qrcode_inv(inp);
},
printMultipleBarcode() {
var barcodes = this.selected_barcode;
barcodes.forEach(value => {
var inp = {
nama_item: value.M_ItemDesc,
no_inv: value.T_BarcodeBarangNumber,
lokasi: value.M_RuanganName,
cabang: value.M_BranchName
};
one_print_qrcode_inv(inp);
});
},
},
}
</script>