2025-03-29 16:33:41 +03:30
|
|
|
|
<script lang="ts">
|
|
|
|
|
import { defineComponent } from 'vue';
|
|
|
|
|
import axios from 'axios';
|
|
|
|
|
|
|
|
|
|
export default defineComponent({
|
|
|
|
|
name: 'PrintOptions',
|
|
|
|
|
props: {
|
|
|
|
|
invoiceId: { type: String, required: true },
|
|
|
|
|
},
|
|
|
|
|
data: () => ({
|
|
|
|
|
dialog: false,
|
|
|
|
|
loading: false,
|
|
|
|
|
printOptions: {
|
|
|
|
|
pays: true,
|
|
|
|
|
note: true,
|
|
|
|
|
bidInfo: true,
|
|
|
|
|
taxInfo: true,
|
|
|
|
|
discountInfo: true,
|
|
|
|
|
paper: 'A4-L',
|
2025-05-09 16:32:39 +03:30
|
|
|
|
invoiceIndex: true,
|
|
|
|
|
businessStamp: true,
|
2025-03-29 16:33:41 +03:30
|
|
|
|
},
|
|
|
|
|
}),
|
|
|
|
|
methods: {
|
|
|
|
|
printInvoice(pdf = true, cloudPrinters = true) {
|
|
|
|
|
this.loading = true;
|
|
|
|
|
axios
|
|
|
|
|
.post('/api/sell/print/invoice', {
|
|
|
|
|
code: this.$props.invoiceId,
|
|
|
|
|
pdf,
|
|
|
|
|
printers: cloudPrinters,
|
|
|
|
|
printOptions: this.printOptions,
|
|
|
|
|
})
|
|
|
|
|
.then((response) => {
|
|
|
|
|
window.open(`${this.$API_URL}/front/print/${response.data.id}`, '_blank', 'noreferrer');
|
|
|
|
|
this.dialog = false;
|
|
|
|
|
})
|
|
|
|
|
.catch((error) => {
|
|
|
|
|
console.error('خطا در چاپ:', error);
|
|
|
|
|
})
|
|
|
|
|
.finally(() => {
|
|
|
|
|
this.loading = false;
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
// متد برای جلوگیری از بسته شدن دیالوگ با کلیک خارج
|
|
|
|
|
preventClose() {
|
|
|
|
|
// هیچ عملی انجام نمیشود تا دیالوگ بسته نشود
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<template>
|
|
|
|
|
<v-btn icon color="primary" class="ml-2" @click="dialog = true">
|
|
|
|
|
<v-icon>mdi-printer</v-icon>
|
|
|
|
|
<v-tooltip activator="parent" location="bottom">چاپ فاکتور</v-tooltip>
|
|
|
|
|
</v-btn>
|
|
|
|
|
|
|
|
|
|
<v-dialog
|
|
|
|
|
v-model="dialog"
|
|
|
|
|
max-width="500"
|
|
|
|
|
persistent
|
|
|
|
|
@click:outside="preventClose"
|
|
|
|
|
>
|
|
|
|
|
<v-card>
|
|
|
|
|
<v-toolbar color="grey-lighten-4" flat>
|
|
|
|
|
<v-toolbar-title>
|
|
|
|
|
<v-icon color="primary" left>mdi-printer</v-icon>
|
|
|
|
|
چاپ فاکتور
|
|
|
|
|
</v-toolbar-title>
|
|
|
|
|
<v-spacer></v-spacer>
|
|
|
|
|
<v-btn
|
|
|
|
|
icon
|
|
|
|
|
color="green"
|
|
|
|
|
:loading="loading"
|
|
|
|
|
@click="printInvoice"
|
|
|
|
|
class="mx-1"
|
|
|
|
|
>
|
|
|
|
|
<v-icon>mdi-printer</v-icon>
|
|
|
|
|
<v-tooltip activator="parent" location="bottom">چاپ فاکتور</v-tooltip>
|
|
|
|
|
</v-btn>
|
|
|
|
|
<v-btn icon @click="dialog = false" :disabled="loading">
|
|
|
|
|
<v-icon>mdi-close</v-icon>
|
|
|
|
|
</v-btn>
|
|
|
|
|
</v-toolbar>
|
|
|
|
|
<v-card-text class="pt-4">
|
|
|
|
|
<p class="mb-2">برای تغییر تنظیمات پیشفرض به بخش تنظیمات چاپ مراجعه نمایید</p>
|
|
|
|
|
<v-select
|
|
|
|
|
v-model="printOptions.paper"
|
|
|
|
|
:items="[
|
|
|
|
|
{ title: 'A4 افقی', value: 'A4-L' },
|
|
|
|
|
{ title: 'A4 عمودی', value: 'A4' },
|
|
|
|
|
{ title: 'A5 افقی', value: 'A5-L' },
|
|
|
|
|
{ title: 'A5 عمودی', value: 'A5' },
|
|
|
|
|
]"
|
|
|
|
|
label="سایز کاغذ و حالت چاپ"
|
|
|
|
|
variant="outlined"
|
|
|
|
|
></v-select>
|
|
|
|
|
<v-switch
|
|
|
|
|
v-model="printOptions.bidInfo"
|
|
|
|
|
label="اطلاعات کسبوکار"
|
|
|
|
|
class="my-1"
|
|
|
|
|
hide-details
|
2025-05-09 16:32:39 +03:30
|
|
|
|
color="primary"
|
2025-03-29 16:33:41 +03:30
|
|
|
|
></v-switch>
|
|
|
|
|
<v-switch
|
|
|
|
|
v-model="printOptions.pays"
|
|
|
|
|
label="نمایش پرداختهای فاکتور"
|
|
|
|
|
class="my-1"
|
|
|
|
|
hide-details
|
2025-05-09 16:32:39 +03:30
|
|
|
|
color="primary"
|
2025-03-29 16:33:41 +03:30
|
|
|
|
></v-switch>
|
|
|
|
|
<v-switch
|
|
|
|
|
v-model="printOptions.note"
|
|
|
|
|
label="یادداشت پایین فاکتور"
|
|
|
|
|
class="my-1"
|
|
|
|
|
hide-details
|
2025-05-09 16:32:39 +03:30
|
|
|
|
color="primary"
|
2025-03-29 16:33:41 +03:30
|
|
|
|
></v-switch>
|
|
|
|
|
<v-switch
|
|
|
|
|
v-model="printOptions.taxInfo"
|
|
|
|
|
label="مالیات به تفکیک اقلام"
|
|
|
|
|
class="my-1"
|
|
|
|
|
hide-details
|
2025-05-09 16:32:39 +03:30
|
|
|
|
color="primary"
|
2025-03-29 16:33:41 +03:30
|
|
|
|
></v-switch>
|
|
|
|
|
<v-switch
|
|
|
|
|
v-model="printOptions.discountInfo"
|
|
|
|
|
label="تخفیف به تفکیک اقلام"
|
|
|
|
|
class="my-1"
|
|
|
|
|
hide-details
|
2025-05-09 16:32:39 +03:30
|
|
|
|
color="primary"
|
|
|
|
|
></v-switch>
|
|
|
|
|
<v-switch
|
|
|
|
|
v-model="printOptions.invoiceIndex"
|
|
|
|
|
label="نمایه فاکتور"
|
|
|
|
|
class="my-1"
|
|
|
|
|
hide-details
|
|
|
|
|
color="primary"
|
|
|
|
|
></v-switch>
|
|
|
|
|
<v-switch
|
|
|
|
|
v-model="printOptions.businessStamp"
|
|
|
|
|
label="مهر کسب و کار"
|
|
|
|
|
class="my-1"
|
|
|
|
|
hide-details
|
|
|
|
|
color="primary"
|
2025-03-29 16:33:41 +03:30
|
|
|
|
></v-switch>
|
|
|
|
|
</v-card-text>
|
|
|
|
|
</v-card>
|
|
|
|
|
</v-dialog>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<style scoped>
|
|
|
|
|
/* استایلهای اضافی در صورت نیاز */
|
|
|
|
|
</style>
|