OpenSTAManager
Sito webFacebookYouTubeUltima release
2.4.44
2.4.44
  • 📣Novità
  • Openstamanager
    • 🚀OpenSTAManager
    • 📙Configurazione
      • 🎯Installazione
      • ▶️Inizializzazione
      • 🆙Aggiornamento
      • ⏸️Backup
    • 📘Interfaccia
      • 📚Moduli e plugin
      • 👾Widget
      • 🔼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
        • 🗃️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
        • 💡Campi personalizzati
        • 👀Viste
        • 🗣️Utenti e permessi
        • 🎚️Impostazioni
        • 📥Import
        • 🪢Segmenti
        • 🚦Stato dei servizi
        • ☑️Checklists
        • 🖨️Stampe
        • ⏫Backup
        • 🔝Aggiornamenti
    • 📱APP Tecnici
      • 3️⃣v3.0.30
  • guide
    • 🔮Come si fa?
      • 👏Autofattura
      • 🏦Banca predefinita anagrafica
      • 📲Calendario su telefono
      • ⏱️Contratti a ore
      • 🧑‍🔧Contratti di manutenzione
      • 🙋‍♂️Dichiarazioni d'Intento
      • 👍Esportare e stampare tabelle con molti record
      • 📘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
      • 🔰Impostare logo nelle stampe
      • 💶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
  • Cartella include/
  • 📓 Esempi
  • 📓 Modifica ordine dei campi
  • 📓 Azioni aggiuntive
  • 📓 Modifica del comportamento

Was this helpful?

  1. per sviluppatori
  2. Personalizzazione

Codice

Come modificare il codice di OpenSTAManager

OpenSTAManager presenta una struttura nativamente predisposta alla personalizzazione delle funzioni principali: di seguito verranno fornite le specifiche tecniche per modificare il codice dove previsto.

Ogni modifica sui file del gestionale potrebbe provocare errori e problematiche imprevedibili all'interno di OpenSTAManager. Si sconsiglia pertanto di non intraprendere queste azioni se non si è estremamente sicuri delle proprie conoscenza informatiche.

🏗️ Struttura

Per personalizzare un file è inizialmente necessario copiarlo all'interno della relativa cartella custom/.

Tutte le personalizzazioni del codice devono sempre essere inserite all'interno di una relativa cartella custom/ della sezione che si vuole personalizzare:

  • Modulo Anagrafiche: modules/anagrafiche/custom

  • Plugin Sedi: plugins/sedi/custom

  • Stampa Intervento: templates/interventi/custom/

Cartella include/

OpenSTAManager supporta inoltre la personalizzazione di alcuni contenuti della cartella include/:

  • File di gestione del layout

    • top.php per l'header

    • bottom.php per il footer

  • Cartella common/ con il layout di base per la maggior parte di righe/articoli dei moduli

  • Cartella extra/ per i contenuti personalizzati in alto ad ogni pagina

    • login.php per i contenuti al login

    • extra.php per i contenuti dopo il login

📓 Esempi

📓 Modifica ordine dei campi

Modulo considerato: Anagrafiche.

In base ai campi che si desidera riordinare, potrebbe essere necessario modificare sia il file modules/anagrafiche/custom/edit.php (schermata di modifica del record) che il file modules/anagrafiche/custom/add.php (schermata di creazione del record).

Se si desidera modificare l'ordine dei campi di un modulo nella modifica del record, per esempio Luogo di nascita e Data di nascita, modificare il codice HTML di default

<div class="col-md-4">
    {[ "type": "text", "label": "<?php echo tr('Luogo di nascita'); ?>", "name": "luogo_nascita", "value": "$luogo_nascita$" ]}
</div>

<div class="col-md-4">
    {[ "type": "date", "label": "<?php echo tr('Data di nascita'); ?>", "maxlength": 10, "name": "data_nascita", "value": "$data_nascita$" ]}
</div>

nel seguente

<div class="col-md-4">
    {[ "type": "date", "label": "<?php echo tr('Data di nascita'); ?>", "maxlength": 10, "name": "data_nascita", "value": "$data_nascita$" ]}
</div>

<div class="col-md-4">
    {[ "type": "text", "label": "<?php echo tr('Luogo di nascita'); ?>", "name": "luogo_nascita", "value": "$luogo_nascita$" ]}
</div>

📓 Azioni aggiuntive

Modulo considerato: Anagrafiche.

Per cambiare l'azione che viene effettuta a seguito del submit di un form del modulo, è necessario modificare di conseguenza il file modules/anagrafiche/custom/actions.php dopo aver individuato il valore del campo op del form in questione.

Valori standard del campo op:

  • Creazione del record: add

  • Modifica del record: update

  • Eliminazione del record: delete

📓 Modifica del comportamento

Modulo considerato: Fatture.

In alcuni casi complessi, può essere necessario modificare più sezioni di codice all'interno del modulo e in sezioni separate. Un esempio può essere individuato nella gestione delle righe delle fatture di OpenSTAManager, nel caso si voglia inserire nel campo Costo unitario il costo aggiuntivo di IVA.

In questo caso, le modifiche dovranno considerare numerosi file poichè il comportamento dovrà essere replicato in modo indipendete in tutte le procedure di creazione/modifica righe (file modules/fatture/custom/actions.php e modules/fatture/custom/modutil.php).

Una volta completata la gestione del modulo attraverso oggetti Eloquent, sarà possibile limitare la modifica ai soli file modules/fatture/custom/src/Articolo.php e modules/fatture/custom/src/Riga.php sovrascrivendo i metodi di base setSubtotale e setIdIvaAttribute:

public function fixSubtotale()
{
    $iva = database()->fetchOne('SELECT * FROM co_iva WHERE id = :id_iva', [
        ':id_iva' => $this->idiva,
    ]);

    $netto = $this->costo_unitario / (1 + $iva['percentuale'] / 100);
    $iva = $this->costo_unitario - $netto;

    $this->subtotale = $netto * $this->qta;
    $this->iva = $iva * $this->qta;

    $this->fixIvaIndetraibile();
}

public function fixIva()
{
    $iva = database()->fetchOne('SELECT * FROM co_iva WHERE id = :id_iva', [
        ':id_iva' => $this->idiva,
    ]);
    $descrizione = $iva['descrizione'];

    $this->desc_iva = $descrizione;

    $this->fixSubtotale();
    //$valore = ($this->subtotale - $this->sconto) * $iva['percentuale'] / 100;
    //$this->iva = $valore;
    //$this->iva_indetraibile = $valore / 100 * $iva['indetraibile'];
}

Ovviamente, bisognerà adeguare di conseguenza il file modules/fatture/custom/row-edit.php nella riga di individuazione del prezzo:

$result['prezzo'] = ($riga['subtotale'] + $riga['iva']) / $riga['qta'];
PreviousPersonalizzazioneNextFramework

Last updated 2 years ago

Was this helpful?

📒
🕹️