OpenSTAManager
Sito webFacebookYouTubeUltima release
2.4.38
2.4.38
  • 📣Novità
  • Openstamanager
    • 🚀OpenSTAManager
    • 📙Configurazione
      • 🎯Installazione
      • ▶️Inizializzazione
      • 🆙Aggiornamento
      • ⏸️Backup
    • 📘Interfaccia
      • 📚Moduli e plugin
      • 👾Widget
      • ⚙️Stato dei servizi
      • 🔼Gestione upload
    • 📘Moduli
      • 📅Dashboard
        • ➕Creazione
        • 🖌️Modifica
        • ❗Azioni aggiuntive
      • 👤Anagrafiche
        • ➕Creazione
        • 🖌️Modifica
        • 🦠Tipi di anagrafiche
        • 📞Relazioni
        • 🌏Zone
        • 📭Provenienze clienti
        • 🗃️Settori merceologici
        • ❗Azioni aggiuntive
        • 🔧Plugin
          • 🔨Impianti del cliente
          • 🧑Referenti
          • 📍Sedi
          • 📊Statistiche
          • 📤Ddt del cliente
          • 🤵Dichiarazioni d'intento
          • 🎥Storico attività
          • 🛄Allegati
          • 🧾Contratti del cliente
          • 💰Movimenti contabili
          • 📑Regole pagamenti
          • 🔖Note interne
          • ⁉️Info
      • 📧Gestione email
        • 🔄Coda di invio
        • 📬Newsletter
        • 📋Liste
        • 📃Template email
        • ✉️Account email
      • 📖Gestione documentale
        • ➕Creazione
        • 🖌️Modifica
        • 📑Categorie documenti
      • 🚚Attività
        • ➕Creazione
        • 🖌️Modifica
        • ⛽Tipi di attività
        • ⏱️Fasce orarie
        • 🚇Stati di attività
        • 🧑‍🔧Tecnici e tariffe
        • 🔊Voci di servizio
        • ❗Azioni aggiuntive
        • 🔧Plugin
          • 📡Impianti
          • ✅Checklist
      • 💰Vendite
        • 🤝Contratti
          • ❗Azioni aggiuntive
          • 🔧Plugin
            • 🪙Consuntivo
            • 📅Pianificazione attività
            • 🔄Rinnovi
            • 📆Pianificazione fatturazione
        • 🧾Preventivi
          • ❗Azioni aggiuntive
          • 🔧Plugin
            • 🪙Consuntivo
            • 🔍Revisioni
        • 📞Ordini cliente
          • ❗Azioni aggiuntive
          • 🔧Plugin
            • 🪙Consuntivo
        • 📃Fatture di vendita
          • ❗Azioni aggiuntive
          • 🔧Plugin
            • 📃Fatturazione elettronica
            • 🖋️Movimenti contabili
            • 📽️Registrazioni
      • 💵Acquisti
        • 📞Ordini fornitore
          • ❗Azioni aggiuntive
          • 🔧Plugin
        • 📄Fatture di acquisto
          • ❗Azioni aggiuntive
          • 🔧Plugin
      • ⚖️Contabilità
        • 🖨️Stampe contabili
        • 1️⃣Prima nota
        • 📖Piano dei conti
        • ⏳Scadenzario
          • 💳Presentazioni bancarie
      • 📦Magazzino
        • 📺Articoli
          • ❗Azioni aggiuntive
          • 🔧Plugin
            • 💸Movimenti
            • 🏷️Serial
            • 🧺Giacenze
            • 📈Statistiche
            • 📑Listino clienti
            • 🧾Listino fornitori
            • ✂️Piani di sconto/magg.
            • 🪛Varianti articolo
            • ➗Provvigioni
        • 📖Movimenti
        • ✂️Piani di sconto/magg.
        • 🧾Listini
          • 📲Import listini
        • 📑Listini cliente
        • 📤DDT in uscita
          • ❗Azioni aggiuntive
        • 📥DDT in entrata
          • ❗Azioni aggiuntive
        • 🏬Giacenze sedi
        • ◾Attributi combinazioni
        • 🔳Combinazioni
      • 🪝Impianti
        • ➕Creazione
        • 🖌️Modifica
        • 🪜Categorie impianti
        • ❗Azioni aggiuntive
        • 🔧Plugin
          • 🔚Interventi svolti
          • 🔌Componenti
      • 📊Statistiche
      • 🗺️Mappa
      • 🔨Strumenti
        • 💡Campi personalizzati
        • 👀Viste
        • 🗣️Utenti e permessi
        • 🎚️Impostazioni
        • 🗃️Tabelle
          • 📦Tipi di spedizione
          • 🎉Eventi
          • 📜Tipi documento
          • 🏷️Causali movimenti
          • ⏲️Tipi scadenze
          • 📑Stati dei contratti
          • 📑Stati dei preventivi
          • ➖Ritenute previdenziali
          • 💸Casse previdenziali
          • 💰IVA
          • 🖊️Modelli prima nota
          • 🏦Banche
          • 🪙Ritenute acconto
          • 💻Categorie articoli
          • 💶Pagamenti
          • ⚱️Porto
          • 📏Unità di misura
          • 🪞Aspetto beni
          • ❔Causali
          • 👨‍🏭Mansioni referenti
        • 🪢Segmenti
        • 📥Import
        • 🖨️Stampe
        • 🚦Stato dei servizi
        • ☑️Checklists
        • ⏫Backup
        • 🔝Aggiornamenti
  • guide
    • 🔮Come si fa?
      • 👏Autofattura
      • 🏦Banca predefinita anagrafica
      • 📲Calendario su telefono
      • ⏱️Contratti a ore
      • 🧑‍🔧Contratti di manutenzione
      • 🙋‍♂️Dichiarazioni d'Intento
      • 📘Fatturazione Elettronica
        • 🏷️Codice identificativo documento e CIG
        • ⌛Decreto Rilancio 2020
        • 🤔Domande comuni
        • ⛔Errori frequenti
        • 🏫Fattura elettronica verso PA
        • 🙋‍♀️Fatture TD21 - TD27
        • 📩Inviare/ricevere fatture elettroniche
        • 🏫Split payment e reverse charge
      • 📃Fatture non elettroniche
      • 🌈Formattazione celle
      • 💵Gestione acconto
      • 🗳️Gestione magazzini
      • 📇Import anagrafiche
      • 📲Import articoli
      • 💶Incassi e pagamenti
      • 🔜Incassi e pagamenti anticipati
      • 💵Liquidazione di salari e stipendi
      • 📄Nota di credito
      • 🧑‍🔧Permessi di visualizzazione degli utenti
      • 👨‍🏫Prezzo di vendita automatico
      • 🏢Quantità di magazzino
      • 💸Registrazione di crediti inesigibili
      • 📝Sconto combinato
      • 🗓️Tasks programmati
      • 🔨Verificare l'installazione di OSM
    • 🪂Strumenti esterni
      • 📸Awesome screenshot
    • 📽️Videoguide
      • 🎥Attività/Fatturazione
      • 🎥Autofattura
      • 🎥Importazione articoli
      • 🎥Preventivo/Consuntivo
      • 🎥Registrazione movimenti bancari
      • 🎥Scheda accettazione
    • 📘F.A.Q.
  • Moduli premium
    • 📙Installazione
    • 📗Budget
    • 📗Disponibilità tecnici
    • 📗Distinta base
    • 📗E-commerce
    • 📗Email ticketing
    • 📗Import FE
    • 📗Registrazione movimenti bancari
    • 📗Riordino fornitori
    • 📗Scheda accettazione
    • 📗Vendita al banco
  • Configurazioni
    • 📙API
      • 📙Retrieve
    • 📙Google Maps API key
    • 📙OAuth2
  • per sviluppatori
    • 📘Recupero della password
    • 📒Contribuire
    • 📒Personalizzazione
      • 🕹️Codice
      • 🖥️Framework
      • 💾Assets
    • 📒Strutture
      • 📒Moduli
        • 📒Nucleo
        • 📒Stampe
        • 📒Widget
        • 📒Plugin
Powered by GitBook
On this page
  • 📒 Struttura
  • 📒 settings.php
  • 📒 init.php
  • 📒 body.php
  • 📒 header.php
  • 📒 footer.php
  • 📒 Problemi
  • 📒 HTML2PDF
  • 📒 Struttura
  • 📒 Struttura interna

Was this helpful?

  1. per sviluppatori
  2. Strutture
  3. Moduli

Stampe

Guida alla personalizzazione delle stampe in OpenSTAManager

PreviousNucleoNextWidget

Last updated 2 years ago

Was this helpful?

All'interno del gestionale, vengono considerate stampe tutte le strutture che si occupano di generare dei file PDF che l'utente può successivamente visualizzare ed eventualmente salvare/stampare.

Tutte le stampe di OpenSTAManager sono contenute all'interno della cartella templates/, raggruppate per nome in un cartelle indipendenti.

La maggior parte delle stampe viene generata attraverso il framework .

📒 Struttura

Ogni stampa e le caratteristiche di default (cartella templates/base/) sono personalizzabili con la relativa cartella custom/, come documentato nella sezione .

Il sistema di template delle stampe presenta una gestione automatica per la sostituzione di alcune variabili comuni:

  • $default_header$: contenuti dell'header di default

  • $default_footer$: contenuti del footer di default

  • $default_logo$: percorso del logo di default

    • percorso dall'impostazione Logo stampe

    • templates/base/logo_azienda.jpg

  • $logo$: percorso del logo della stampa (logo_azienda.jpg nella cartella della stampa, oppure $default_logo$)

  • $docroot$: DOCROOT

  • $rootdir$: ROOTDIR

  • $directory$: percorso della stampa

  • $footer$: footer aggiuntivo personalizzato

  • $dicitura_fissa_fattura$: Dicitura fissa fattura dalle Impostazioni

Sono inoltre disponibili attraverso il formato $c_*$ tutte le informazioni dell'anagrafica cliente e sotto $f_*$ tutte le informazioni dell'anagrafica azienda.

📒 settings.php

Il file settings.php permette di gestire le seguenti impostazioni PDF della stampa:

<?php

return [
    'orientation' => 'P', // Orientamento: P (verticale) o L (orizzontale)
    'format' => 'A4', // Formato della pagina
    'font-size' => 10, // Dimensione dei font
    'margins' => [
        'top' => 10, // Margine superiore
        'bottom' => 10, // Margine inferiore
        'left' => 12, // Margine sinistro
        'right' => 12, // Margine destro
    ],
    'header-height' => 35, // Altezza dell'header (da modificare se personalizzato)
    'footer-height' => 5, // Altezza del footer (da modificare se personalizzato)
];

Le impostazioni di default sono presenti nel file templates/base/settings.php.

📒 init.php

Il file init.php si occupa di definire le variabili principali necessarie per il corpo della stampa. Idealmente, questo file si occupa di gestire tutte le interazioni della stampa con le altre strutture del gestionale e del database.

Ci sono, in particolare, 3 variabili particolarmente importanti:

  • $id_cliente: individua il cliente interessato dalla stampa (per rendere disponibili le variabili $c_*$

  • $id_sede: individua la sede relativa del cliente

  • $custom: array per definire i valori personalizzati da sostituire nel template

    // Sostituzioni specifiche
    $custom = [
    'intervento_numero' => $records[0]['codice'],
    'intervento_data' => Translator::dateToLocale($records[0]['data_richiesta']),
    'commessa_numero' => !empty($records[0]['numero_preventivo']) ? $records[0]['codice'] : '&nbsp;',
    ];
    // Rende disponibili le variabili aggiuntive: $intervento_numero$, $intervento_data$, $commessa_numero$.

📒 body.php

Il file body.php gestisce tutti i contenuti principali della stampa PDF, eventualmente suddividendoli in varie pagine. Ogni stampa può gestire liberamente il proprio codice in questa sezione.

Se si desidera sfruttare la funzione di auto-riempimento approssimativo delle tabelle, è necessario definire le impostazioni relative:

$autofill = [
    'count' => 0, // Conteggio delle righe
    'words' => 70, // Numero di parolo dopo cui contare una riga nuova
    'rows' => 20, // Numero di righe massimo presente nella pagina
    'additional' => 15, // Numero di righe massimo da aggiungere
    'columns' => 5, // Numero di colonne della tabella
];

Ogni volta che viene aggiunta manualmente una riga, è necessario aumentare di conseguenza il valore di $autofill['count'] per permettere il corretto funzionamento del sistema.

📒 header.php

Il file header.php si occupa della generazione dell'header di ogni pagina del PDF, in modo da avere una struttura comune di base. La sua presenza è facoltativa, nel qual caso viene utilizzato l'header di default.

Il logo della stampa deve essere sempre inserito con il seguente codice:

<img src="$logo$" alt="Logo" border="0"/>

L'header di default è presente nel file templates/base/header.php.

📒 footer.php

Il file footer.php si occupa della generazione del footer di ogni pagina del PDF, in modo da avere una struttura comune di base. La sua presenza è facoltativa, nel qual caso viene utilizzato il footer di default.

Il footer di default è presente nel file templates/base/footer.php.

📒 Problemi

Testo piccolo nelle tabelle

Pertanto, nel caso si desideri aumentare le dimensioni del font, si consiglia di effettuare alcuni test per controllare se le tabelle vengono renderizzate nel modo corretto e previsto.

📒 HTML2PDF

📒 Struttura

pdfgen.php

Il file pdfgen.php si occupa della formattazione dei contenuti dei template per la visualizzazione vera e propria del PDF, inizializzando l'oggetto relativo ed eseguendone l'output.

pdfgen_variables.php

Il file pdfgen_variables.php si occupa della sostituzione delle variabili comuni a tutti i template, e viene richiamata dal file pdfgen.MODULO.php descritto di seguito.

📒 Struttura interna

La cartella templates contiene tutti i template per la creazione dei PDF relativi al modulo specifico, in una struttura interna simile alla seguente (modulo Contratti utilizzato come esempio).

.
└── contratti
    ├── contratto_body.html - Struttura di base del PDF
    ├── contratto.html - Contenitore personalizzato della struttura del PDF
    ├── logo_azienda.jpg - Logo dell'azienda specifico per il PDF
    └── pdfgen.contratti.php - Individuazione delle informazioni da visualizzare e generazione della loro struttura

Come indicato nel secondo punto in , MPDF effettua un resizing del font nel caso il contenuto di una cella superi l'altezza totale di una pagina. Si possono quindi verificare dei problemi con le dimensioni del testo nel caso ci siano contenuti molto lunghi.

Il formato delle stampe più vecchie viene strutturato per la generazione attraverso il framework .

📒
📒
📒
MPDF
Codice
http://mpdf.github.io/tables/auto-layout-algorithm.html
HTML2PDF