- Creazione PDF Temporanei (Generati)

- Assegnazione di questi su PDF OnLine e PDF per Stampa
This commit is contained in:
Surya Paolo
2025-05-12 18:43:25 +02:00
parent 89bbda59b3
commit 85faf11d27
4 changed files with 279 additions and 137 deletions

View File

@@ -102,16 +102,28 @@
}}</span>
</div>
<div
v-if="myrec.pdf_generato"
v-if="myrec.pdf_online"
class="text-caption text-h7 text-blue q-pb-xs"
>
<q-icon name="fas fa-book" /> -
<q-icon name="fas fa-book" />&nbsp;
<a
:href="myrec.pdf_generato"
:href="myrec.pdf_online"
target="_blank"
>PDF Generato</a
>PDF OnLine</a
>
(Data: {{ tools.getstrDate(myrec.data_generato) }})
aggiornato al ({{ tools.getstrDate(myrec.data_online) }})
</div>
<div
v-if="!tools.isUtente() && myrec.pdf_online_stampa && dettagli"
class="text-caption text-h7 text-blue q-pb-xs"
>
<q-icon name="fas fa-print" />&nbsp;
<a
:href="myrec.pdf_online_stampa"
target="_blank"
>PDF per Stampa</a
>
aggiornato al ({{ tools.getstrDate(myrec.data_online_stampa) }})
</div>
<div
v-if="!tools.isUtente() && dettagli"
@@ -123,24 +135,10 @@
{{ myrec.username_lista_generata }}
</span>
</div>
<div
v-if="myrec.pdf_online"
class="text-caption text-h7 text-blue q-pb-xs"
>
<q-icon name="fas fa-book" /> -
<a
:href="myrec.pdf_online"
target="_blank"
>PDF ONLINE</a
>
(Data: {{ tools.getstrDate(myrec.data_online) }})
</div>
</div>
<!--<div class="text-overline text-orange-9">{{collanestr}}</div>-->
</q-card-section>
<q-card-actions
v-if="!tools.isUtente() && dettagli"
align="center"
@@ -277,6 +275,12 @@
:color="myrec.pdf_online ? 'green' : 'red'"
:copy="true"
/>
<CLabel
:value="myrec.pdf_generato_stampa || 'ancora non è stato generato'"
label="PDF per Stampa"
:color="myrec.pdf_generato_stampa ? 'green' : 'red'"
:copy="true"
/>
</div>
</q-card-section>
</q-card>

View File

@@ -2528,6 +2528,15 @@ export const useGlobalStore = defineStore('GlobalStore', {
return false;
});
},
async execOnlinePDF(paramquery: any) {
return Api.SendReq('/admin/online-pdf', 'POST', paramquery)
.then((res) => {
return res.data;
})
.catch((error) => {
return false;
});
},
async convertPdf(
pdfFile: any,

View File

@@ -1727,12 +1727,32 @@ export default defineComponent({
optcatalogo.value.indebug = !optcatalogo.value.indebug;
}
const preparePDF = async () => {
const preparePDF = () => {
$q.dialog({
message: 'Generare il PDF ?',
ok: {
label: t('dialog.yes'),
push: true,
},
cancel: {
label: t('dialog.cancel'),
},
title: 'Generazione PDF',
}).onOk(async () => {
optcatalogo.value.generazionePDFInCorso = true;
optcatalogo.value.areadistampa!.scale = optcatalogo.value.areadistampa!.scale_printable;
setTimeout(() => {
optcatalogo.value.generazionePDFInCorso = true;
setTimeout(() => {
generatePDF();
}, 500);
}, 500);
});
};
const terminaPDF = async () => {
const terminaPDF = () => {
optcatalogo.value.generazionePDFInCorso = false;
optcatalogo.value.areadistampa!.scale = 1;
};
@@ -1831,17 +1851,6 @@ export default defineComponent({
const generatePDF = async () => {
await nextTick();
$q.dialog({
message: 'Generare il PDF ?',
ok: {
label: t('dialog.yes'),
push: true,
},
cancel: {
label: t('dialog.cancel'),
},
title: 'Generazione PDF',
}).onOk(async () => {
$q.loading.show({
message: 'Caricamento immagini e generazione PDF in corso...',
});
@@ -1927,7 +1936,58 @@ export default defineComponent({
});
console.error('Errore nella generazione del PDF:', error);
}
};
const pubblicaPDF = async () => {
const catalog = getCatalogoByMyPage.value;
const ris = await globalStore.execOnlinePDF({ id_catalog: catalog._id, stampa: false });
if (ris) {
if (ris.catalog?.pdf_online) {
catalog.pdf_online = ris.catalog.pdf_online;
catalog.data_online = ris.catalog.data_online;
}
$q.notify({
color: 'positive',
message: 'PDF inviato ONLINE!',
icon: 'check',
});
} else {
$q.loading.hide();
$q.notify({
color: 'negative',
message: "Errore nell'invio del PDF OnLine",
icon: 'error',
});
}
};
const pubblicaPDFStampa = async () => {
const catalog = getCatalogoByMyPage.value;
const ris = await globalStore.execOnlinePDF({ id_catalog: catalog._id, stampa: true });
if (ris) {
if (ris.catalog.pdf_online_stampa) {
catalog.pdf_online_stampa = ris.catalog.pdf_online_stampa;
catalog.data_online_stampa = ris.catalog.data_online_stampa;
}
$q.notify({
color: 'positive',
message: 'PDF STAMPA inviato ONLINE!',
icon: 'check',
});
} else {
$q.loading.hide();
$q.notify({
color: 'negative',
message: "Errore nell'invio del PDF STAMPA OnLine",
icon: 'error',
});
}
// await saveCatalog();
};
onMounted(mounted);
@@ -2007,6 +2067,8 @@ export default defineComponent({
getPdfFilename,
filtroStrApplicato,
getCollane,
pubblicaPDF,
pubblicaPDFStampa,
};
},
});

View File

@@ -407,11 +407,13 @@
</q-toolbar>
</q-tab-panel>
<q-tab-panel name="genera">
<div v-if="!tools.isUtente()" class="row justify-center">
<div
v-if="!tools.isUtente()"
class="row justify-center"
>
<q-btn
v-if="optcatalogo.pdf && !optcatalogo.generazionePDFInCorso"
:label="`Prepara PDF`"
:label="`1) PREPARA PDF`"
@click="preparePDF"
></q-btn>
<q-btn
@@ -421,34 +423,99 @@
></q-btn>
<q-btn
v-if="optcatalogo.pdf && optcatalogo.generazionePDFInCorso"
:label="`Genera PDF ` + getPdfFilename()"
:label="`2) Genera PDF ` + getPdfFilename()"
@click="generatePDF()"
color="positive"
></q-btn>
<q-btn
v-if="tools.isAdmin() && false"
label="Debug"
@click="toggleDebug()"
:push="optcatalogo.indebug"
:color="optcatalogo.indebug ? `positive` : 'primary'"
></q-btn>
</div>
<div v-if="getCatalogoByMyPage.pdf_generato" class="column justify-center q-ma-sm q-pa-sm">
<div >
PDF:
<a :href="tools.getHost() + getCatalogoByMyPage.pdf_generato" target="_blank" v-if="getCatalogoByMyPage.pdf_generato" class="text-bold">
{{tools.getHost() + getCatalogoByMyPage.pdf_generato}}
</a>
<span v-else>-</span>
<br>(Generato il {{ tools.getstrDateTime(getCatalogoByMyPage.data_generato)}})
<div
v-if="getCatalogoByMyPage.pdf_generato"
class="bg-green-1 q-ma-sm q-pa-sm"
>
<div class="bg-blue-1 text-red text-bold text-h6 q-ma-sm q-pa-sm">
<strong>PDF generati Temporanei</strong>
</div>
<br>
<div>
PDF Stampa:
<a :href="tools.getHost() + getCatalogoByMyPage.pdf_generato_stampa" target="_blank" v-if="getCatalogoByMyPage.pdf_generato_stampa" class="text-bold">
{{tools.getHost() + getCatalogoByMyPage.pdf_generato_stampa}}
<div v-if="getCatalogoByMyPage.data_generato !== getCatalogoByMyPage.data_online">
PDF Generato:
<a
:href="tools.getHost() + getCatalogoByMyPage.pdf_generato"
target="_blank"
v-if="getCatalogoByMyPage.pdf_generato"
class="text-bold"
>
{{ tools.getHost() + getCatalogoByMyPage.pdf_generato }}
</a>
<span v-else>-</span>
<br>(Generato il {{ tools.getstrDateTime(getCatalogoByMyPage.data_generato_stampa) }})
<br />(del {{ tools.getstrDateTime(getCatalogoByMyPage.data_generato) }})
<br />
<q-btn
v-if="getCatalogoByMyPage.data_generato !== getCatalogoByMyPage.data_online"
rounded
label="Pubblica PDF OnLine"
color="positive"
@click="pubblicaPDF()"
></q-btn>
</div>
<br />
<div v-if="getCatalogoByMyPage.data_generato_stampa !== getCatalogoByMyPage.data_online_stampa">
PDF Generato Stampa:
<a
:href="tools.getHost() + getCatalogoByMyPage.pdf_generato_stampa"
target="_blank"
v-if="getCatalogoByMyPage.pdf_generato_stampa"
class="text-bold"
>
{{ tools.getHost() + getCatalogoByMyPage.pdf_generato_stampa }}
</a>
<span v-else>-</span>
<br />(del {{ tools.getstrDateTime(getCatalogoByMyPage.data_generato_stampa) }})
<br />
<q-btn
v-if="getCatalogoByMyPage.data_generato_stampa !== getCatalogoByMyPage.data_online_stampa"
rounded
label="Pubblica PDF Stampa"
color="positive"
@click="pubblicaPDFStampa()"
></q-btn>
</div>
<div class="bg-green-1">
<div class="bg-blue-1 text-green text-bold text-h6 q-ma-sm q-pa-sm">
<strong>PDF Pubblicati OnLine</strong>
</div>
<div>
PDF OnLine:
<a
:href="tools.getHost() + getCatalogoByMyPage.pdf_online"
target="_blank"
v-if="getCatalogoByMyPage.pdf_online"
class="text-bold"
>
{{ tools.getHost() + getCatalogoByMyPage.pdf_online }}
</a>
<span v-else>-</span>
<br />(del {{ tools.getstrDateTime(getCatalogoByMyPage.data_online) }})
</div>
<br />
<div>
PDF OnLine Stampa:
<a
:href="tools.getHost() + getCatalogoByMyPage.pdf_online_stampa"
target="_blank"
v-if="getCatalogoByMyPage.pdf_online_stampa"
class="text-bold"
>
{{ tools.getHost() + getCatalogoByMyPage.pdf_online_stampa }}
</a>
<span v-else>-</span>
<br />(del {{ tools.getstrDateTime(getCatalogoByMyPage.data_online_stampa) }})
</div>
</div>
</div>
</q-tab-panel>