- 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> }}</span>
</div> </div>
<div <div
v-if="myrec.pdf_generato" v-if="myrec.pdf_online"
class="text-caption text-h7 text-blue q-pb-xs" class="text-caption text-h7 text-blue q-pb-xs"
> >
<q-icon name="fas fa-book" /> - <q-icon name="fas fa-book" />&nbsp;
<a <a
:href="myrec.pdf_generato" :href="myrec.pdf_online"
target="_blank" 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>
<div <div
v-if="!tools.isUtente() && dettagli" v-if="!tools.isUtente() && dettagli"
@@ -123,24 +135,10 @@
{{ myrec.username_lista_generata }} {{ myrec.username_lista_generata }}
</span> </span>
</div> </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>
<!--<div class="text-overline text-orange-9">{{collanestr}}</div>--> <!--<div class="text-overline text-orange-9">{{collanestr}}</div>-->
</q-card-section> </q-card-section>
<q-card-actions <q-card-actions
v-if="!tools.isUtente() && dettagli" v-if="!tools.isUtente() && dettagli"
align="center" align="center"
@@ -277,6 +275,12 @@
:color="myrec.pdf_online ? 'green' : 'red'" :color="myrec.pdf_online ? 'green' : 'red'"
:copy="true" :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> </div>
</q-card-section> </q-card-section>
</q-card> </q-card>

View File

@@ -2528,6 +2528,15 @@ export const useGlobalStore = defineStore('GlobalStore', {
return false; 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( async convertPdf(
pdfFile: any, pdfFile: any,

View File

@@ -1727,12 +1727,32 @@ export default defineComponent({
optcatalogo.value.indebug = !optcatalogo.value.indebug; 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.generazionePDFInCorso = true;
optcatalogo.value.areadistampa!.scale = optcatalogo.value.areadistampa!.scale_printable; 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.generazionePDFInCorso = false;
optcatalogo.value.areadistampa!.scale = 1; optcatalogo.value.areadistampa!.scale = 1;
}; };
@@ -1831,17 +1851,6 @@ export default defineComponent({
const generatePDF = async () => { const generatePDF = async () => {
await nextTick(); 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({ $q.loading.show({
message: 'Caricamento immagini e generazione PDF in corso...', message: 'Caricamento immagini e generazione PDF in corso...',
}); });
@@ -1927,7 +1936,58 @@ export default defineComponent({
}); });
console.error('Errore nella generazione del PDF:', error); 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); onMounted(mounted);
@@ -2007,6 +2067,8 @@ export default defineComponent({
getPdfFilename, getPdfFilename,
filtroStrApplicato, filtroStrApplicato,
getCollane, getCollane,
pubblicaPDF,
pubblicaPDFStampa,
}; };
}, },
}); });

View File

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