Miglioramenti vari
Miglioramento della presentazione del progetto e delle informazioni relative. Aggiunti messaggi per segnalare il collegamento dei documenti tra di loro ed evitare cancellazioni involontarie. Unificato il sistema di identificazione dei numeri (ora abbreviati in "num.").
This commit is contained in:
parent
9cf2a1c3e7
commit
6510807bdd
74
README.md
74
README.md
|
@ -1,4 +1,19 @@
|
|||
# OpenSTAManager
|
||||
<p align="center">
|
||||
<a href="http://openstamanager.com">
|
||||
<img src="https://www.openstamanager.com/wp-content/uploads/2015/04/logo_full-2.png">
|
||||
</a>
|
||||
|
||||
<p align="center">
|
||||
Il gestionale open source per l'assistenza tecnica e la fatturazione.
|
||||
<br>
|
||||
<br>
|
||||
<a href="https://devcode-it.github.io/openstamanager">Documentazione tecnica</a>
|
||||
·
|
||||
<a href="http://openstamanager.com">Sito ufficiale</a>
|
||||
</p>
|
||||
</p>
|
||||
|
||||
<br>
|
||||
|
||||
Il gestionale OpenSTAManager è un software open-source e web based, sviluppato dall'azienda informatica DevCode di Este per gestire ed archiviare il servizio di assistenza tecnica e la relativa fatturazione.
|
||||
Il nome del progetto deriva dalla parziale traduzione in inglese degli elementi principali che lo compongono: la natura open source e il suo obiettivo quale Gestore del Servizio Tecnico di Assistenza.
|
||||
|
@ -13,7 +28,7 @@ Un software gestionale, identificato nell'insieme degli applicativi che automati
|
|||
|
||||
Secondo questa definizione, OpenSTAManager riesce a generalizzare al proprio interno le funzionalità caratteristiche della contabilità e della gestione del magazzino, presentando inoltre moduli piuttosto avanzati e destinati a complementare l'attività aziendale in relazione agli interventi di assistenza della realtà lavorativa in oggetto.
|
||||
|
||||
La documentazione ufficiale risulta disponibile all'indirizzo <https://devcode-it.github.io/openstamanager/>.
|
||||
La documentazione ufficiale è disponibile all'indirizzo <https://devcode-it.github.io/openstamanager>.
|
||||
|
||||
<!-- TOC depthFrom:2 depthTo:6 orderedList:false updateOnSave:true withLinks:true -->
|
||||
|
||||
|
@ -22,7 +37,6 @@ La documentazione ufficiale risulta disponibile all'indirizzo <https://devcode-i
|
|||
- [Versioni](#versioni)
|
||||
- [Github](#github)
|
||||
- [Perché software open source](#perché-software-open-source)
|
||||
- [Componenti esterni](#componenti-esterni)
|
||||
- [Community](#community)
|
||||
- [Contribuire](#contribuire)
|
||||
- [Sviluppatori](#sviluppatori)
|
||||
|
@ -32,11 +46,9 @@ La documentazione ufficiale risulta disponibile all'indirizzo <https://devcode-i
|
|||
|
||||
## Requisiti
|
||||
|
||||
Prima di iniziare l'installazione, è necessario procedere al download di una versione del progetto da [Github](https://github.com/devcode-it/openstamanager). Si consiglia inoltre di controllare che i prerequisiti del software, elencati di seguito, siano soddisfatti.
|
||||
L'installazione del gestionale richiede la presenza di un server web con abilitato il [DBMS MySQL](https://www.mysql.com) e il linguaggio di programmazione [PHP](http://php.net).
|
||||
|
||||
L'installazione del gestionale richiede la presenza di un server web con abilitato il [DBMS (Database Management System)](https://it.wikipedia.org/wiki/Database_management_system) MySQL e il linguaggio di programmazione [PHP](http://php.net/).
|
||||
|
||||
- PHP >= 5.4 (si consiglia la versione 5.6 per poter usufruire di tutte le funzionalità del progetto)
|
||||
- PHP >= 5.4
|
||||
- MySQL >= 5.0
|
||||
|
||||
Per ulteriori informazioni sui pacchetti che forniscono questi elementi di default, visitare la sezione [Installazione](https://devcode-it.github.io/openstamanager/installazione.html) della documentazione.
|
||||
|
@ -45,26 +57,32 @@ Per ulteriori informazioni sui pacchetti che forniscono questi elementi di defau
|
|||
|
||||
Per procedere all'installazione è necessario seguire i seguenti punti:
|
||||
|
||||
1. Creare una cartella (ad esempio `openstamanager`) nella root del sever web installato ed estrarvi il contenuto della release scaricata. Il percorso della cartella root del server varia in base al software in utilizzo:
|
||||
1. [Scaricare una release ufficiale del progetto](https://github.com/devcode-it/openstamanager/releases).
|
||||
2. Creare una cartella (ad esempio `openstamanager`) nella root del sever web installato ed estrarvi il contenuto della release scaricata. Il percorso della cartella root del server varia in base al software in utilizzo:
|
||||
|
||||
- LAMP (`/var/www/html`);
|
||||
- XAMPP (`C:/xampp/htdocs` per Windows, `/opt/lampp/htdocs/` per Linux, `/Applications/XAMPP/htdocs/` per MAC);
|
||||
- WAMP (`C:\wamp\www`);
|
||||
- MAMP (`C:\MAMP\htdocs` per Windows, `/Applications/MAMP/htdocs` per MAC).
|
||||
- LAMP (`/var/www/html`)
|
||||
- XAMPP (`C:/xampp/htdocs` per Windows, `/opt/lampp/htdocs/` per Linux, `/Applications/XAMPP/htdocs/` per MAC)
|
||||
- WAMP (`C:\wamp\www`)
|
||||
- MAMP (`C:\MAMP\htdocs` per Windows, `/Applications/MAMP/htdocs` per MAC)
|
||||
|
||||
2. Creare un database vuoto (tramite [PHPMyAdmin](http://localhost/phpmyadmin/) o riga di comando).
|
||||
3. Accedere a <http://localhost/openstamanager> dal vostro browser.
|
||||
4. Inserire i dati per collegarsi al database e cliccare su **Installa** per completare l'installazione.
|
||||
3. Creare un database vuoto (tramite [PHPMyAdmin](http://localhost/phpmyadmin/) o riga di comando).
|
||||
4. Accedere a <http://localhost/openstamanager> dal vostro browser.
|
||||
5. Inserire i dati di configurazione per collegarsi al database.
|
||||
6. Procedere all'installazione del software, cliccando sul pulsante **Installa**.
|
||||
|
||||
**Attenzione**: è possibile che l'installazione richieda del tempo. Si consiglia pertanto di attendere almeno qualche minuto senza alcun cambiamento nella pagina di installazione (in particolare, della progress bar presente) prima di cercare una possibile soluzione nelle discussioni del forum o nella sezione dedicata.
|
||||
|
||||
### Versioni
|
||||
|
||||
Per mantenere un elevato grado di trasparenza riguardo al ciclo delle release, seguiamo le linee guida [Semantic Versioning (SemVer)](http://semver.org/) per definire le versioni del progetto. Per vedere tutte le versioni disponibili al download, visitare la [pagina relativa](https://github.com/devcode-it/openstamanager/releases) su Github (per versioni precedenti alla 2.3, visitare [SourceForge](https://sourceforge.net/projects/openstamanager/files/)).
|
||||
Per mantenere un elevato grado di trasparenza riguardo al ciclo delle release, seguiamo le linee guida [Semantic Versioning (SemVer)](http://semver.org/) per definire le versioni del progetto.
|
||||
Per vedere tutte le versioni disponibili al download, visitare la [pagina relativa](https://github.com/devcode-it/openstamanager/releases) su Github (per versioni precedenti alla 2.3, visitare [SourceForge](https://sourceforge.net/projects/openstamanager/files)).
|
||||
|
||||
Nel caso utilizziate il programma per uso commerciale, si consiglia di scaricare le release disponibili nel sito ufficiale del progetto (<http://www.openstamanager.com>), evitando di utilizzare direttamente il codice della repository.
|
||||
Se siete inoltre interessati a supporto e assistenza professionali, li potete richiedere nella [sezione dedicata](http://www.openstamanager.com/per-le-aziende/).
|
||||
|
||||
### Github
|
||||
|
||||
Nel caso si stia utilizzando la versione direttamente ottenuta dalla repository di Github, è necessario eseguire i seguenti comandi da linea di comando per completare le dipendenze PHP (tramite [Composer](https://getcomposer.org/)) e gli asssets (tramite [Yarn](https://yarnpkg.com/)) del progetto.
|
||||
Nel caso si stia utilizzando la versione direttamente ottenuta dalla repository di Github, è necessario eseguire i seguenti comandi da linea di comando per completare le dipendenze PHP (tramite [Composer](https://getcomposer.org)) e gli asssets (tramite [Yarn](https://yarnpkg.com)) del progetto.
|
||||
|
||||
```bash
|
||||
php composer.phar install
|
||||
|
@ -87,19 +105,6 @@ Il progetto è un software open source perché permette agli utilizzatori di stu
|
|||
|
||||
In questo modo è possibile ottenere un'ulteriore garanzia sul funzionamento del software, poiché chiunque ne abbia le capacità può verificarlo, escludendo mancanze in relazione alla sicurezza e alla privacy dei dati (caratteristica che il software proprietario non può offrire).
|
||||
|
||||
Nel caso utilizziate il programma per uso commerciale, si consiglia di non utilizzare le versioni ottenibili direttamente dalla repository su Github ma di scaricare le release ufficiali disponibili nel nostro sito ufficiale <http://www.openstamanager.com>; se siete inoltre interessati a supporto e assistenza professionali, li potete richiedere nella [sezione dedicata](http://www.openstamanager.com/per-le-aziende/).
|
||||
|
||||
## Componenti esterni
|
||||
|
||||
OpenSTAManager è stato progettato utilizzando altro software open source, tra cui principalmente:
|
||||
|
||||
- [PHP](https://secure.php.net/) - A popular general-purpose scripting language especially suited to web development
|
||||
- [MySQL](https://www.mysql.com/) - The world's most popular open source database
|
||||
- [JQuery](https://jquery.com/) - New Wave JavaScript
|
||||
- [Bootstrap](http://getbootstrap.com/) - The world's most popular mobile-first and responsive front-end framework
|
||||
- [FontAwesome](http://fontawesome.io/) - The iconic font and CSS toolkit
|
||||
- [HTML2PDF](http://html2pdf.fr/en/default) - HTML to PDF converter written in PHP
|
||||
|
||||
## Community
|
||||
|
||||
La community è una componente importante in un progetto open source, perché mette in contatto utenti e programmatori tra di loro e permette pertanto l'individuazione di soluzioni innovative e migliori.
|
||||
|
@ -116,7 +121,10 @@ Siamo presenti su [Facebook](https://www.facebook.com/openstamanager), e il nost
|
|||
|
||||
## Contribuire
|
||||
|
||||
Per poter contribuire, si consiglia di seguire le indicazioni descritte all'interno della [documentazione ufficiale](https://devcode-it.github.io/openstamanager/contribuire.html); in particolare, prestare attenzione al codice di condotta e allo stile del codice.
|
||||
Per poter contribuire, si consiglia di seguire le indicazioni descritte all'interno della [documentazione ufficiale](https://devcode-it.github.io/openstamanager/contribuire.html).
|
||||
|
||||
Le impostazione di base per il codice sono disponibili attraverso [editor config](https://github.com/devcode-it/openstamanager/blob/master/.editorconfig) per l'utilizzo semplificato negli editor più comuni.
|
||||
Maggiori informazioni sulla configurazione e sul plugin sono disponibili nel sito <http://editorconfig.org>.
|
||||
|
||||
## Sviluppatori
|
||||
|
||||
|
@ -126,8 +134,6 @@ Per poter contribuire, si consiglia di seguire le indicazioni descritte all'inte
|
|||
- **Matteo Baccarin**
|
||||
- **Thomas Zilio** ([Dasc3er](https://github.com/Dasc3er))
|
||||
|
||||
Per la lista completa delle persone che hanno partecipato al progetto, consultare la [pagina principale della documentazione](https://devcode-it.github.io/openstamanager/index.html) su Github.
|
||||
|
||||
## Licenza
|
||||
|
||||
Questo progetto è tutelato dalla licenza **GPL 3** (si veda [LICENSE](https://github.com/devcode-it/openstamanager/blob/master/LICENSE) per ulteriori dettagli).
|
||||
Questo progetto è tutelato dalla licenza [**GPL 3**](https://github.com/devcode-it/openstamanager/blob/master/LICENSE).
|
||||
|
|
|
@ -346,7 +346,7 @@ switch ($module_name) {
|
|||
($fatture[$i]['n2_fattura'] != '') ? $n_fattura = $fatture[$i]['n2_fattura'] : $n_fattura = $fatture[$i]['n_fattura'];
|
||||
|
||||
$id_module = Modules::getModule('Fatture di vendita')['id'];
|
||||
echo "<tr><td class='first_cell text-left'><a href='".$rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$fatture[$i]['iddocumento']."' target=\"_blank\" title=\"Apri il documento su una nuova finestra\">Fattura n<sup>o</sup> ".$n_fattura."</a></td>\n";
|
||||
echo "<tr><td class='first_cell text-left'><a href='".$rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$fatture[$i]['iddocumento']."' target=\"_blank\" title=\"Apri il documento su una nuova finestra\">Fattura num. ".$n_fattura."</a></td>\n";
|
||||
|
||||
echo "<td class='table_cell text-left'>".Translator::dateToLocale($fatture[$i]['data_fattura'])."</td>\n";
|
||||
echo "<td class='table_cell text-right'>".Translator::numberToLocale($fatture[$i]['costo_unitario'])." €</td></tr>\n";
|
||||
|
@ -378,7 +378,7 @@ switch ($module_name) {
|
|||
($fatture[$i]['n2_fattura'] != '') ? $n_fattura = $fatture[$i]['n2_fattura'] : $n_fattura = $fatture[$i]['n_fattura'];
|
||||
|
||||
$id_module = Modules::getModule('Fatture di vendita')['id'];
|
||||
echo "<tr><td class='first_cell text-left'><a href='".$rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$fatture[$i]['iddocumento']."' target=\"_blank\" title=\"Apri il documento su una nuova finestra\">Fattura n<sup>o</sup> ".$n_fattura."</a></td>\n";
|
||||
echo "<tr><td class='first_cell text-left'><a href='".$rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$fatture[$i]['iddocumento']."' target=\"_blank\" title=\"Apri il documento su una nuova finestra\">Fattura num. ".$n_fattura."</a></td>\n";
|
||||
|
||||
echo "<td class='table_cell text-left'>".Translator::dateToLocale($fatture[$i]['data_fattura'])."</td>\n";
|
||||
echo "<td class='table_cell text-right'>".Translator::numberToLocale($fatture[$i]['costo_unitario'])." €</td></tr>\n";
|
||||
|
@ -409,7 +409,7 @@ switch ($module_name) {
|
|||
($fatture[$i]['n2_fattura'] != '') ? $n_fattura = $fatture[$i]['n2_fattura'] : $n_fattura = $fatture[$i]['n_fattura'];
|
||||
|
||||
$id_module = Modules::getModule('Fatture di vendita')['id'];
|
||||
echo "<tr><td class='first_cell text-left'><a href='".$rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$fatture[$i]['iddocumento']."' target=\"_blank\" title=\"Apri il documento su una nuova finestra\">Fattura n<sup>o</sup> ".$n_fattura."</a></td>\n";
|
||||
echo "<tr><td class='first_cell text-left'><a href='".$rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$fatture[$i]['iddocumento']."' target=\"_blank\" title=\"Apri il documento su una nuova finestra\">Fattura num. ".$n_fattura."</a></td>\n";
|
||||
|
||||
echo "<td class='table_cell text-left'>".Translator::dateToLocale($fatture[$i]['data_fattura'])."</td>\n";
|
||||
echo "<td class='table_cell text-right'>".Translator::numberToLocale($fatture[$i]['costo_unitario'])." €</td></tr>\n";
|
||||
|
@ -813,7 +813,7 @@ if ($op == 'supersearch') {
|
|||
}
|
||||
|
||||
$result[$r + $i]['link'] = $rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$rs[$r]['iddocumento'];
|
||||
$result[$r + $i]['title'] = $rs[$r]['descrizione'].' n<sup>o</sup> '.$numero.' del '.Translator::dateToLocale($rs[$r]['data']);
|
||||
$result[$r + $i]['title'] = $rs[$r]['descrizione'].' num. '.$numero.' del '.Translator::dateToLocale($rs[$r]['data']);
|
||||
$result[$r + $i]['category'] = $rs[$r]['descrizione'];
|
||||
$result[$r + $i]['labels'] = [];
|
||||
|
||||
|
@ -877,7 +877,7 @@ if ($op == 'supersearch') {
|
|||
}
|
||||
|
||||
$result[$r + $i]['link'] = $rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$rs[$r]['iddocumento'];
|
||||
$result[$r + $i]['title'] = $rs[$r]['tipodoc'].' n<sup>o</sup> '.$numero.' del '.Translator::dateToLocale($rs[$r]['data']);
|
||||
$result[$r + $i]['title'] = $rs[$r]['tipodoc'].' num. '.$numero.' del '.Translator::dateToLocale($rs[$r]['data']);
|
||||
$result[$r + $i]['category'] = $rs[$r]['tipodoc'];
|
||||
$result[$r + $i]['labels'] = [];
|
||||
|
||||
|
@ -1035,7 +1035,7 @@ if ($op == 'supersearch') {
|
|||
}
|
||||
|
||||
$result[$r + $i]['link'] = $rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$rs[$r]['idddt'];
|
||||
$result[$r + $i]['title'] = $rs[$r]['descrizione'].' n<sup>o</sup> '.$numero.' del '.Translator::dateToLocale($rs[$r]['data']);
|
||||
$result[$r + $i]['title'] = $rs[$r]['descrizione'].' num. '.$numero.' del '.Translator::dateToLocale($rs[$r]['data']);
|
||||
$result[$r + $i]['category'] = $rs[$r]['descrizione'];
|
||||
$result[$r + $i]['labels'] = [];
|
||||
|
||||
|
@ -1100,7 +1100,7 @@ if ($op == 'supersearch') {
|
|||
|
||||
$result[$r + $i]['link'] = $rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$rs[$r]['idddt'];
|
||||
// $result[$r+$i]['link'] = $rootdir."/modules/magazzino/ddt/ddt.php?idddt=".$rs[$r]['iddocumento']."&dir=".$rs[$r]['dir'];
|
||||
$result[$r + $i]['title'] = $rs[$r]['tipodoc'].' n<sup>o</sup> '.$numero.' del '.Translator::dateToLocale($rs[$r]['data']);
|
||||
$result[$r + $i]['title'] = $rs[$r]['tipodoc'].' num. '.$numero.' del '.Translator::dateToLocale($rs[$r]['data']);
|
||||
$result[$r + $i]['category'] = $rs[$r]['tipodoc'];
|
||||
$result[$r + $i]['labels'] = [];
|
||||
|
||||
|
|
|
@ -6,7 +6,6 @@ currentMenu: installazione
|
|||
|
||||
<!-- TOC depthFrom:2 depthTo:6 orderedList:false updateOnSave:true withLinks:true -->
|
||||
|
||||
- [Tabella dei contenuti](#tabella-dei-contenuti)
|
||||
- [Requisiti](#requisiti)
|
||||
- [Installazione](#installazione)
|
||||
- [Versioni](#versioni)
|
||||
|
@ -23,41 +22,46 @@ currentMenu: installazione
|
|||
|
||||
## Requisiti
|
||||
|
||||
Prima di iniziare l'installazione, è necessario procedere al download di una versione del progetto da [Github](https://github.com/devcode-it/openstamanager). Si consiglia inoltre di controllare che i prerequisiti del software, elencati di seguito, siano soddisfatti.
|
||||
L'installazione del gestionale richiede la presenza di un server web con abilitato il [DBMS MySQL](https://www.mysql.com) e il linguaggio di programmazione [PHP](http://php.net).
|
||||
|
||||
L'installazione del gestionale richiede la presenza di un server web con abilitato il [DBMS (Database Management System)](https://it.wikipedia.org/wiki/Database_management_system) MySQL e il linguaggio di programmazione [PHP](http://php.net/).
|
||||
|
||||
- PHP >= 5.4 (si consiglia come minimo la versione 5.6 per poter usufruire di tutte le funzionalità del progetto)
|
||||
- PHP >= 5.4
|
||||
- MySQL >= 5.0
|
||||
|
||||
Per ulteriori informazioni sui pacchetti che forniscono questi elementi di default, visitare la sezione [Installazione](https://devcode-it.github.io/openstamanager/installazione.html) della documentazione.
|
||||
|
||||
## Installazione
|
||||
|
||||
Per procedere all'installazione è necessario seguire i seguenti punti:
|
||||
|
||||
1. Creare una cartella (ad esempio `openstamanager`) nella root del sever web installato ed estrarvi il contenuto della release scaricata. Il percorso della cartella root del server varia in base al software in utilizzo:
|
||||
1. [Scaricare una release ufficiale del progetto](https://github.com/devcode-it/openstamanager/releases).
|
||||
2. Creare una cartella (ad esempio `openstamanager`) nella root del sever web installato ed estrarvi il contenuto della release scaricata. Il percorso della cartella root del server varia in base al software in utilizzo:
|
||||
|
||||
- LAMP (`/var/www/html`);
|
||||
- XAMPP (`C:/xampp/htdocs` per Windows, `/opt/lampp/htdocs/` per Linux, `/Applications/XAMPP/htdocs/` per MAC);
|
||||
- WAMP (`C:\wamp\www`);
|
||||
- MAMP (`C:\MAMP\htdocs` per Windows, `/Applications/MAMP/htdocs` per MAC).
|
||||
- LAMP (`/var/www/html`)
|
||||
- XAMPP (`C:/xampp/htdocs` per Windows, `/opt/lampp/htdocs/` per Linux, `/Applications/XAMPP/htdocs/` per MAC)
|
||||
- WAMP (`C:\wamp\www`)
|
||||
- MAMP (`C:\MAMP\htdocs` per Windows, `/Applications/MAMP/htdocs` per MAC)
|
||||
|
||||
2. Creare un database vuoto (tramite [PHPMyAdmin](http://localhost/phpmyadmin/) o riga di comando).
|
||||
3. Accedere a <http://localhost/openstamanager> dal vostro browser.
|
||||
4. Inserire i dati per collegarsi al database e cliccare su **Installa** per completare l'installazione.
|
||||
3. Creare un database vuoto (tramite [PHPMyAdmin](http://localhost/phpmyadmin/) o riga di comando).
|
||||
4. Accedere a <http://localhost/openstamanager> dal vostro browser.
|
||||
5. Inserire i dati di configurazione per collegarsi al database.
|
||||
6. Procedere all'installazione del software, cliccando sul pulsante **Installa**.
|
||||
|
||||
**Attenzione**: è possibile che l'installazione richieda del tempo. Si consiglia pertanto di attendere almeno qualche minuto senza alcun cambiamento nella pagina di installazione (in particolare, della progress bar presente) prima di cercare una possibile soluzione nelle discussioni del forum o nella sezione dedicata.
|
||||
|
||||
### Versioni
|
||||
|
||||
Per mantenere un elevato grado di trasparenza riguardo al ciclo delle release, seguiamo le linee guida [Semantic Versioning (SemVer)](http://semver.org/) per definire le versioni del progetto. Per vedere tutte le versioni disponibili al download, visitare la [pagina relativa](https://github.com/devcode-it/openstamanager/releases) su Github (per versioni precedenti alla 2.3, visitare [SourceForge](https://sourceforge.net/projects/openstamanager/files/)).
|
||||
Per mantenere un elevato grado di trasparenza riguardo al ciclo delle release, seguiamo le linee guida [Semantic Versioning (SemVer)](http://semver.org/) per definire le versioni del progetto.
|
||||
Per vedere tutte le versioni disponibili al download, visitare la [pagina relativa](https://github.com/devcode-it/openstamanager/releases) su Github (per versioni precedenti alla 2.3, visitare [SourceForge](https://sourceforge.net/projects/openstamanager/files)).
|
||||
|
||||
Nel caso utilizziate il programma per uso commerciale, si consiglia di scaricare le release disponibili nel sito ufficiale del progetto (<http://www.openstamanager.com>), evitando di utilizzare direttamente il codice della repository.
|
||||
Se siete inoltre interessati a supporto e assistenza professionali, li potete richiedere nella [sezione dedicata](http://www.openstamanager.com/per-le-aziende/).
|
||||
|
||||
### Github
|
||||
|
||||
Nel caso si stia utilizzando la versione direttamente ottenuta dalla repository di Github, è necessario eseguire i seguenti comandi da linea di comando per completare le dipendenze PHP (tramite [Composer](https://getcomposer.org/)) e gli asssets (tramite [Yarn](https://yarnpkg.com/)) del progetto.
|
||||
Nel caso si stia utilizzando la versione direttamente ottenuta dalla repository di Github, è necessario eseguire i seguenti comandi da linea di comando per completare le dipendenze PHP (tramite [Composer](https://getcomposer.org)) e gli asssets (tramite [Yarn](https://yarnpkg.com)) del progetto.
|
||||
|
||||
```bash
|
||||
php composer.phar install
|
||||
php composer.phar update
|
||||
yarn global add gulp
|
||||
yarn install
|
||||
gulp
|
||||
|
|
|
@ -225,7 +225,7 @@ if ($fornitore) {
|
|||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "text", "label": "<?php echo tr('N<sup>o</sup> iscr. C.C.I.A.A.'); ?>", "name": "cciaa", "value": "$cciaa$" ]}
|
||||
{[ "type": "text", "label": "<?php echo tr('Num. iscr. C.C.I.A.A.'); ?>", "name": "cciaa", "value": "$cciaa$" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
|
@ -271,19 +271,19 @@ if ($fornitore) {
|
|||
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
{[ "type": "text", "label": "<?php echo tr('N<sup>o</sup> dipendenti'); ?>", "name": "dipendenti", "value": "$dipendenti$" ]}
|
||||
{[ "type": "text", "label": "<?php echo tr('Num. dipendenti'); ?>", "name": "dipendenti", "value": "$dipendenti$" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "text", "label": "<?php echo tr('N<sup>o</sup> macchine'); ?>", "name": "macchine", "value": "$macchine$" ]}
|
||||
{[ "type": "text", "label": "<?php echo tr('Num. macchine'); ?>", "name": "macchine", "value": "$macchine$" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "text", "label": "<?php echo tr('N<sup>o</sup> iscr. tribunale'); ?>", "name": "iscrizione_tribunale", "value": "$iscrizione_tribunale$" ]}
|
||||
{[ "type": "text", "label": "<?php echo tr('Num. iscr. tribunale'); ?>", "name": "iscrizione_tribunale", "value": "$iscrizione_tribunale$" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "text", "label": "<?php echo tr('N<sup>o</sup> iscr. albo artigiani'); ?>", "name": "n_alboartigiani", "value": "$n_alboartigiani$" ]}
|
||||
{[ "type": "text", "label": "<?php echo tr('Num. iscr. albo artigiani'); ?>", "name": "n_alboartigiani", "value": "$n_alboartigiani$" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -293,6 +293,6 @@ if ($tot > 0) {
|
|||
'.tr('Ci sono _NUM_ righe di documenti collegate', [
|
||||
'_NUM_' => $tot,
|
||||
]).'.
|
||||
'.tr('Eliminando questo articolo si potrebbero verificare problemi nelle altre sezioni del gestionale!').'
|
||||
'.tr('Eliminando questo elemento si potrebbero verificare problemi nelle altre sezioni del gestionale!').'
|
||||
</div>';
|
||||
}
|
||||
|
|
|
@ -243,13 +243,13 @@ for ($i = 0; $i < count($rs2); ++$i) {
|
|||
|
||||
$totali[] = [$data[0]['subtotale'], $data[0]['iva']];
|
||||
|
||||
$numero = !empty($rs6[0]['numero_esterno']) ? $data[0]['numero_esterno'] : $data[0]['numero'];
|
||||
$numero = !empty($data[0]['numero_esterno']) ? $data[0]['numero_esterno'] : $data[0]['numero'];
|
||||
|
||||
$text = tr('_DOC_ n<sup>o</sup> _NUM_ del _DATE_', [
|
||||
$text = tr('_DOC_ num. _NUM_ del _DATE_', [
|
||||
'_DOC_' => $data[0]['tipo_documento'],
|
||||
'_NUM_' => $numero,
|
||||
'_DATE_' => Translator::dateToLocale($data[0]['data']),
|
||||
]).(!empty($extra) ? ' '.$extra : '');
|
||||
]).(!empty($extra) ? ' '.$extra : '');
|
||||
|
||||
echo '
|
||||
'.Modules::link($module_id, $id, $text).'<br>';
|
||||
|
|
|
@ -105,10 +105,10 @@ $_SESSION['superselect']['idanagrafica'] = $records[0]['idanagrafica'];
|
|||
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
{[ "type": "number", "label": "<?php echo tr('Sconto totale') ?>", "name": "sconto_generico", "value": "$sconto_globale$", "help": "<?php echo tr("Sconto complessivo del contratto"); ?>", "icon-after": "choice|untprc|$tipo_sconto_globale$"<?php
|
||||
{[ "type": "number", "label": "<?php echo tr('Sconto totale') ?>", "name": "sconto_generico", "value": "$sconto_globale$", "help": "<?php echo tr('Sconto complessivo del contratto'); ?>", "icon-after": "choice|untprc|$tipo_sconto_globale$"<?php
|
||||
if ($records[0]['stato'] == 'Emessa') {
|
||||
echo ', "disabled" : 1';
|
||||
}
|
||||
echo ', "disabled" : 1';
|
||||
}
|
||||
?> ]}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -271,6 +271,7 @@ if ($records[0]['stato'] != 'Pagato') {
|
|||
?>
|
||||
<a class="btn btn-primary" data-href="<?php echo $rootdir ?>/modules/contratti/add_riga.php?idcontratto=<?php echo $id_record ?>" data-toggle="modal" data-title="Aggiungi riga" data-target="#bs-popup"><i class="fa fa-plus"></i> <?php echo tr('Riga'); ?></a><br>
|
||||
<?php
|
||||
|
||||
}
|
||||
?>
|
||||
<div class="clearfix"></div>
|
||||
|
@ -319,7 +320,7 @@ if (!empty($records[0]['idcontratto_prev'])) {
|
|||
echo '
|
||||
<tr>
|
||||
<td>
|
||||
'.Modules::link($id_module, $idcontratto_prev, tr('Contratto n<sup>o</sup> _NUM_', [
|
||||
'.Modules::link($id_module, $idcontratto_prev, tr('Contratto num. _NUM_', [
|
||||
'_NUM_' => $rs[0]['numero'],
|
||||
]).'<br><small class="text-muted">'.$rs[0]['nome'].'</small>').'
|
||||
</td>
|
||||
|
@ -367,3 +368,34 @@ if (!empty($records[0]['idcontratto_prev'])) {
|
|||
<a class="btn btn-danger ask" data-backto="record-list">
|
||||
<i class="fa fa-trash"></i> <?php echo tr('Elimina'); ?>
|
||||
</a>
|
||||
|
||||
<?php
|
||||
|
||||
$fatture = $dbo->fetchArray('SELECT `co_documenti`.*, `co_tipidocumento`.`descrizione` AS tipo_documento, `co_tipidocumento`.`dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idcontratto` = '.prepare($id_record).')');
|
||||
if (!empty($fatture)) {
|
||||
echo '
|
||||
<div class="alert alert-danger">
|
||||
<p>'.tr('Ci sono _NUM_ documenti collegate a questo elemento', [
|
||||
'_NUM_' => count($fatture),
|
||||
]).'.</p>
|
||||
<ul>';
|
||||
|
||||
foreach ($fatture as $fattura) {
|
||||
$descrizione = tr('_DOC_ num. _NUM_ del _DATE_', [
|
||||
'_DOC_' => $fattura['tipo_documento'],
|
||||
'_NUM_' => !empty($fattura['numero_esterno']) ? $fattura['numero_esterno'] : $fattura['numero'],
|
||||
'_DATE_' => Translator::dateToLocale($fattura['data']),
|
||||
]);
|
||||
|
||||
$modulo = ($fattura['dir'] == 'entrata') ? 'Fatture di vendita' : 'Fatture di acquisto';
|
||||
$id = $fattura['id'];
|
||||
|
||||
echo '
|
||||
<li>'.Modules::link($modulo, $id, $descrizione).'</li>';
|
||||
}
|
||||
|
||||
echo '
|
||||
</ul>
|
||||
<p>'.tr('Eliminando questo elemento si potrebbero verificare problemi nelle altre sezioni del gestionale!').'</p>
|
||||
</div>';
|
||||
}
|
||||
|
|
|
@ -243,7 +243,7 @@ if (empty($rs)) {
|
|||
$numero_doc = $rsf[0]['numero'];
|
||||
}
|
||||
|
||||
$documento = Modules::link('Fatture di vendita', $rs[$i]['iddocumento'], tr('Fattura n<sup>o</sup> _NUM_ del _DATE_', [
|
||||
$documento = Modules::link('Fatture di vendita', $rs[$i]['iddocumento'], tr('Fattura num. _NUM_ del _DATE_', [
|
||||
'_NUM_' => $numero_doc,
|
||||
'_DATE_' => Translator::dateToLocale($rsf[0]['data']),
|
||||
]));
|
||||
|
|
|
@ -188,7 +188,7 @@ if (empty($rs)) {
|
|||
echo '
|
||||
<span class="text-success">
|
||||
<i class="fa fa-check"></i>
|
||||
'.Modules::link('Interventi', $r['idintervento'], tr('Intervento n<sup>o</sup> _NUM_ del _DATE_', [
|
||||
'.Modules::link('Interventi', $r['idintervento'], tr('Intervento num. _NUM_ del _DATE_', [
|
||||
'_NUM_' => $res['codice'],
|
||||
'_DATE_' => Translator::dateToLocale($r[0]['data_intervento']),
|
||||
])).'
|
||||
|
|
|
@ -33,7 +33,7 @@ if ($module['name'] == 'Ddt di vendita') {
|
|||
if ($dir == 'uscita') {
|
||||
echo '
|
||||
<div class="col-md-3">
|
||||
{[ "type": "span", "label": "'. tr('Numero ddt').'", "class": "text-center", "value": "$numero$" ]}
|
||||
{[ "type": "span", "label": "'.tr('Numero ddt').'", "class": "text-center", "value": "$numero$" ]}
|
||||
</div>';
|
||||
}
|
||||
?>
|
||||
|
@ -89,7 +89,7 @@ if ($dir == 'uscita') {
|
|||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "text", "label": "<?php echo tr('N<sup>o</sup> colli'); ?>", "name": "n_colli", "value": "$n_colli$" ]}
|
||||
{[ "type": "text", "label": "<?php echo tr('Num. colli'); ?>", "name": "n_colli", "value": "$n_colli$" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -194,3 +194,34 @@ include $docroot.'/modules/ddt/row-list.php';
|
|||
<a class="btn btn-danger ask" data-backto="record-list">
|
||||
<i class="fa fa-trash"></i> <?php echo tr('Elimina'); ?>
|
||||
</a>
|
||||
|
||||
<?php
|
||||
|
||||
$fatture = $dbo->fetchArray('SELECT `co_documenti`.*, `co_tipidocumento`.`descrizione` AS tipo_documento, `co_tipidocumento`.`dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idddt` = '.prepare($id_record).')');
|
||||
if (!empty($fatture)) {
|
||||
echo '
|
||||
<div class="alert alert-danger">
|
||||
<p>'.tr('Ci sono _NUM_ documenti collegate a questo elemento', [
|
||||
'_NUM_' => count($fatture),
|
||||
]).'.</p>
|
||||
<ul>';
|
||||
|
||||
foreach ($fatture as $fattura) {
|
||||
$descrizione = tr('_DOC_ num. _NUM_ del _DATE_', [
|
||||
'_DOC_' => $fattura['tipo_documento'],
|
||||
'_NUM_' => !empty($fattura['numero_esterno']) ? $fattura['numero_esterno'] : $fattura['numero'],
|
||||
'_DATE_' => Translator::dateToLocale($fattura['data']),
|
||||
]);
|
||||
|
||||
$modulo = ($fattura['dir'] == 'entrata') ? 'Fatture di vendita' : 'Fatture di acquisto';
|
||||
$id = $fattura['id'];
|
||||
|
||||
echo '
|
||||
<li>'.Modules::link($modulo, $id, $descrizione).'</li>';
|
||||
}
|
||||
|
||||
echo '
|
||||
</ul>
|
||||
<p>'.tr('Eliminando questo elemento si potrebbero verificare problemi nelle altre sezioni del gestionale!').'</p>
|
||||
</div>';
|
||||
}
|
||||
|
|
|
@ -117,7 +117,7 @@ if ($dir == 'entrata') {
|
|||
$r = $dbo->select($data[$pos]['table'], $data[$pos]['id'], ['id' => $res[0][str_replace('id', 'id_riga_', $data[$pos]['id'])]]);
|
||||
|
||||
echo '
|
||||
'.Modules::link($modulo, $r[0][$data[$pos]['id']], tr('Visualizza vendita').' <i class="fa fa-external-link"></i>', null);
|
||||
'.Modules::link($modulo, $r[0][$data[$pos]['id']], tr('Visualizza vendita'), null);
|
||||
}
|
||||
echo '
|
||||
</div>';
|
||||
|
|
|
@ -144,7 +144,7 @@ if ($tipodoc == 'Fattura accompagnatoria di vendita') {
|
|||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "text", "label": "<?php echo tr('N<sup>o</sup> colli'); ?>", "name": "n_colli", "value": "$n_colli$" ]}
|
||||
{[ "type": "text", "label": "<?php echo tr('Num. colli'); ?>", "name": "n_colli", "value": "$n_colli$" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -145,7 +145,7 @@ if (!empty($rs)) {
|
|||
|
||||
if (!empty($descrizione)) {
|
||||
echo '
|
||||
<br>'.Modules::link($ref, $ref_id, $descrizione.' <i class="fa fa-external-link"></i>', $descrizione);
|
||||
<br>'.Modules::link($ref, $ref_id, $descrizione, $descrizione);
|
||||
}
|
||||
|
||||
echo '
|
||||
|
|
|
@ -23,19 +23,19 @@ if ($module['name'] == 'Ordini cliente') {
|
|||
<div class="row">
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "text", "label": "<?php echo tr("Numero ordine"); ?>", "name": "numero", "required": 1, "class": "text-center", "value": "$numero$" ]}
|
||||
{[ "type": "text", "label": "<?php echo tr('Numero ordine'); ?>", "name": "numero", "required": 1, "class": "text-center", "value": "$numero$" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "text", "label": "<?php echo tr("Numero secondario"); ?>", "name": "numero_esterno", "class": "text-center", "value": "$numero_esterno$" ]}
|
||||
{[ "type": "text", "label": "<?php echo tr('Numero secondario'); ?>", "name": "numero_esterno", "class": "text-center", "value": "$numero_esterno$" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "date", "label": "<?php echo tr("Data"); ?>", "maxlength": 10, "name": "data", "required": 1, "value": "$data$" ]}
|
||||
{[ "type": "date", "label": "<?php echo tr('Data'); ?>", "maxlength": 10, "name": "data", "required": 1, "value": "$data$" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "select", "label": "<?php echo tr("Stato"); ?>", "name": "idstatoordine", "required": 1, "values": "query=SELECT * FROM or_statiordine", "value": "$idstatoordine$" ]}
|
||||
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstatoordine", "required": 1, "values": "query=SELECT * FROM or_statiordine", "value": "$idstatoordine$" ]}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
@ -43,22 +43,22 @@ if ($module['name'] == 'Ordini cliente') {
|
|||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<?php
|
||||
if( $dir == 'entrata' ){
|
||||
?>
|
||||
{[ "type": "select", "label": "<?php echo tr("Cliente"); ?>", "name": "idanagrafica", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Cliente' AND deleted=0 ORDER BY ragione_sociale", "value": "$idanagrafica$", "ajax-source": "clienti" ]}
|
||||
if ($dir == 'entrata') {
|
||||
?>
|
||||
{[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Cliente' AND deleted=0 ORDER BY ragione_sociale", "value": "$idanagrafica$", "ajax-source": "clienti" ]}
|
||||
<?php
|
||||
}
|
||||
|
||||
else{
|
||||
?>
|
||||
{[ "type": "select", "label": "<?php echo tr("Fornitore"); ?>", "name": "idanagrafica", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Fornitore' AND deleted=0 ORDER BY ragione_sociale", "value": "$idanagrafica$" ]}
|
||||
} else {
|
||||
?>
|
||||
{[ "type": "select", "label": "<?php echo tr('Fornitore'); ?>", "name": "idanagrafica", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Fornitore' AND deleted=0 ORDER BY ragione_sociale", "value": "$idanagrafica$" ]}
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "select", "label": "<?php echo tr("Pagamento"); ?>", "name": "idpagamento", "required": 1, "values": "query=SELECT id, descrizione FROM co_pagamenti GROUP BY descrizione ORDER BY descrizione ASC", "value": "$idpagamento$" ]}
|
||||
{[ "type": "select", "label": "<?php echo tr('Pagamento'); ?>", "name": "idpagamento", "required": 1, "values": "query=SELECT id, descrizione FROM co_pagamenti GROUP BY descrizione ORDER BY descrizione ASC", "value": "$idpagamento$" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -70,7 +70,7 @@ if ($module['name'] == 'Ordini cliente') {
|
|||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{[ "type": "textarea", "label": "<?php echo tr("Note"); ?>", "name": "note", "value": "$note$" ]}
|
||||
{[ "type": "textarea", "label": "<?php echo tr('Note'); ?>", "name": "note", "value": "$note$" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -91,18 +91,22 @@ if ($module['name'] == 'Ordini cliente') {
|
|||
|
||||
<div class="panel-body">
|
||||
<div class="pull-left">
|
||||
<?php if( $records[0]['stato'] != 'Evaso' ){ ?>
|
||||
<?php if ($records[0]['stato'] != 'Evaso') {
|
||||
?>
|
||||
<a class="btn btn-sm btn-primary" data-href="<?php echo $rootdir ?>/modules/ordini/add_articolo.php?id_module=<?php echo $id_module ?>&id_record=<?php echo $id_record ?>" data-toggle="modal" data-title="Aggiungi articolo" data-target="#bs-popup"><i class="fa fa-plus"></i> Articolo</a>
|
||||
<a class="btn btn-sm btn-primary" data-href="<?php echo $rootdir ?>/modules/ordini/add_riga.php?id_module=<?php echo $id_module ?>&id_record=<?php echo $id_record ?>" data-toggle="modal" data-title="Aggiungi riga" data-target="#bs-popup"><i class="fa fa-plus"></i> Riga generica</a>
|
||||
<?php } ?>
|
||||
<?php
|
||||
} ?>
|
||||
</div>
|
||||
|
||||
<div class="pull-right">
|
||||
<!-- Stampe -->
|
||||
<?php if( $records[0]['stato'] != 'Evaso' ){ ?>
|
||||
<?php if ($records[0]['stato'] != 'Evaso') {
|
||||
?>
|
||||
<a class="btn btn-sm btn-info" data-href="<?php echo $rootdir ?>/modules/fatture/crea_documento.php?id_module=<?php echo $id_module ?>&&id_record=<?php echo $id_record ?>&documento=ddt" data-toggle="modal" data-title="Crea ddt" data-target="#bs-popup" ><i class="fa fa-magic"></i> Crea ddt da ordine...</i></a>
|
||||
<a class="btn btn-sm btn-info" data-href="<?php echo $rootdir ?>/modules/fatture/crea_documento.php?id_module=<?php echo $id_module ?>&id_record=<?php echo $id_record ?>&documento=fattura" data-toggle="modal" data-title="Crea fattura" data-target="#bs-popup" ><i class="fa fa-magic"></i> Crea fattura da ordine...</i></a>
|
||||
<?php } ?>
|
||||
<?php
|
||||
} ?>
|
||||
|
||||
<a class="btn btn-sm btn-info" target="_blank" href="<?php echo $rootdir ?>/pdfgen.php?ptype=ordini&idordine=<?php echo $id_record ?>" data-title="Stampa ordine"><i class="fa fa-print"></i> Stampa ordine</a>
|
||||
</div>
|
||||
|
@ -112,7 +116,7 @@ if ($module['name'] == 'Ordini cliente') {
|
|||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<?php include($docroot."/modules/ordini/row-list.php"); ?>
|
||||
<?php include $docroot.'/modules/ordini/row-list.php'; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -121,3 +125,40 @@ if ($module['name'] == 'Ordini cliente') {
|
|||
<a class="btn btn-danger ask" data-backto="record-list">
|
||||
<i class="fa fa-trash"></i> <?php echo tr('Elimina'); ?>
|
||||
</a>
|
||||
|
||||
<?php
|
||||
|
||||
$elementi = $dbo->fetchArray('SELECT `co_documenti`.`id`, `co_documenti`.`data`, `co_documenti`.`numero`, `co_documenti`.`numero_esterno`, `co_tipidocumento`.`descrizione` AS tipo_documento, `co_tipidocumento`.`dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idordine` = '.prepare($id_record).') UNION
|
||||
SELECT `dt_ddt`.`id`, `dt_ddt`.`data`, `dt_ddt`.`numero`, `dt_ddt`.`numero_esterno`, `dt_tipiddt`.`descrizione` AS tipo_documento, `dt_tipiddt`.`dir` FROM `dt_ddt` JOIN `dt_tipiddt` ON `dt_tipiddt`.`id` = `dt_ddt`.`idtipoddt` WHERE `dt_ddt`.`id` IN (SELECT `idddt` FROM `dt_righe_ddt` WHERE `idordine` = '.prepare($id_record).')');
|
||||
if (!empty($elementi)) {
|
||||
echo '
|
||||
<div class="alert alert-danger">
|
||||
<p>'.tr('Ci sono _NUM_ documenti collegate a questo elemento', [
|
||||
'_NUM_' => count($elementi),
|
||||
]).'.</p>
|
||||
<ul>';
|
||||
|
||||
foreach ($elementi as $elemento) {
|
||||
$descrizione = tr('_DOC_ num. _NUM_ del _DATE_', [
|
||||
'_DOC_' => $elemento['tipo_documento'],
|
||||
'_NUM_' => !empty($elemento['numero_esterno']) ? $elemento['numero_esterno'] : $elemento['numero'],
|
||||
'_DATE_' => Translator::dateToLocale($elemento['data']),
|
||||
]);
|
||||
|
||||
if (!in_array($elemento['tipo_documento'], ['Ddt di vendita', 'Ddt di acquisto'])) {
|
||||
$modulo = ($elemento['dir'] == 'entrata') ? 'Fatture di vendita' : 'Fatture di acquisto';
|
||||
} else {
|
||||
$modulo = ($elemento['dir'] == 'entrata') ? 'Ddt di vendita' : 'Ddt di acquisto';
|
||||
}
|
||||
|
||||
$id = $elemento['id'];
|
||||
|
||||
echo '
|
||||
<li>'.Modules::link($modulo, $id, $descrizione).'</li>';
|
||||
}
|
||||
|
||||
echo '
|
||||
</ul>
|
||||
<p>'.tr('Eliminando questo elemento si potrebbero verificare problemi nelle altre sezioni del gestionale!').'</p>
|
||||
</div>';
|
||||
}
|
||||
|
|
|
@ -161,3 +161,34 @@ include $docroot.'/modules/preventivi/row-list.php';
|
|||
<a class="btn btn-danger ask" data-backto="record-list">
|
||||
<i class="fa fa-trash"></i> <?php echo tr('Elimina'); ?>
|
||||
</a>
|
||||
|
||||
<?php
|
||||
|
||||
$fatture = $dbo->fetchArray('SELECT `co_documenti`.*, `co_tipidocumento`.`descrizione` AS tipo_documento, `co_tipidocumento`.`dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idpreventivo` = '.prepare($id_record).')');
|
||||
if (!empty($fatture)) {
|
||||
echo '
|
||||
<div class="alert alert-danger">
|
||||
<p>'.tr('Ci sono _NUM_ documenti collegate a questo elemento', [
|
||||
'_NUM_' => count($fatture),
|
||||
]).'.</p>
|
||||
<ul>';
|
||||
|
||||
foreach ($fatture as $fattura) {
|
||||
$descrizione = tr('_DOC_ num. _NUM_ del _DATE_', [
|
||||
'_DOC_' => $fattura['tipo_documento'],
|
||||
'_NUM_' => !empty($fattura['numero_esterno']) ? $fattura['numero_esterno'] : $fattura['numero'],
|
||||
'_DATE_' => Translator::dateToLocale($fattura['data']),
|
||||
]);
|
||||
|
||||
$modulo = ($fattura['dir'] == 'entrata') ? 'Fatture di vendita' : 'Fatture di acquisto';
|
||||
$id = $fattura['id'];
|
||||
|
||||
echo '
|
||||
<li>'.Modules::link($modulo, $id, $descrizione).'</li>';
|
||||
}
|
||||
|
||||
echo '
|
||||
</ul>
|
||||
<p>'.tr('Eliminando questo elemento si potrebbero verificare problemi nelle altre sezioni del gestionale!').'</p>
|
||||
</div>';
|
||||
}
|
||||
|
|
|
@ -458,9 +458,14 @@ class Modules
|
|||
*/
|
||||
public static function link($modulo, $id_record, $testo = null, $alternativo = true, $extra = null, $blank = true)
|
||||
{
|
||||
$testo = isset($testo) ? nl2br($testo) : tr('Visualizza scheda').' <i class="fa fa-external-link"></i>';
|
||||
$testo = isset($testo) ? nl2br($testo) : tr('Visualizza scheda');
|
||||
$alternativo = is_bool($alternativo) && $alternativo ? $testo : $alternativo;
|
||||
|
||||
// Aggiunta automatica dell'icona di riferimento
|
||||
if (!str_contains($testo, '<i ')) {
|
||||
$testo = $testo.' <i class="fa fa-external-link"></i>';
|
||||
}
|
||||
|
||||
$module = self::getModule($modulo);
|
||||
|
||||
$extra .= !empty($blank) ? ' target="_blank"' : '';
|
||||
|
|
|
@ -16,7 +16,7 @@ echo '
|
|||
<div class="row">
|
||||
<div class="col-xs-6">
|
||||
<div class="text-center" style="height:5mm;">
|
||||
<b>'.tr('Contratto N<sup>o</sup> _NUM_ del _DATE_', [
|
||||
<b>'.tr('Contratto Num. _NUM_ del _DATE_', [
|
||||
'_NUM_' => $records[0]['numero'],
|
||||
'_DATE_' => Translator::dateToLocale($records[0]['data_bozza']),
|
||||
], ['upper' => true]).'</b>
|
||||
|
|
|
@ -55,7 +55,7 @@ foreach ($rs_gen as $r) {
|
|||
$numero = !empty($rso[0]['numero_esterno']) ? $rso[0]['numero_esterno'] : $rso[0]['numero'];
|
||||
|
||||
echo '
|
||||
<br/><small>'.tr('Rif. ordine n<sup>o</sup>_NUM_ del _DATE_', [
|
||||
<br/><small>'.tr('Rif. ordine num._NUM_ del _DATE_', [
|
||||
'_NUM_' => $numero,
|
||||
'_DATE_' => Translator::dateToLocale($rso[0]['data']),
|
||||
]).'</small>';
|
||||
|
|
|
@ -75,7 +75,7 @@ echo '
|
|||
</th>
|
||||
|
||||
<th class="small" class style="width:20%">
|
||||
'.tr('N<sup>o</sup> colli', [], ['upper' => true]).'
|
||||
'.tr('Num. colli', [], ['upper' => true]).'
|
||||
</th>
|
||||
|
||||
<th class="small" style="width:30%">
|
||||
|
|
|
@ -103,7 +103,7 @@ if ($rs[0]['buono_ordine'] != '') {
|
|||
|
||||
$body .= "<table class='table_values' border='0' cellspacing='1'>\n";
|
||||
$body .= "<tr>\n";
|
||||
$body .= "<td width='".$width."' class='center'><b>".$rs[0]['tipo_doc']."</b><br/>n<sup>o</sup> $numero</td>\n";
|
||||
$body .= "<td width='".$width."' class='center'><b>".$rs[0]['tipo_doc']."</b><br/>num. $numero</td>\n";
|
||||
$body .= "<td width='".$width."' class='center'><b>Data:</b><br/>".Translator::dateToLocale($rs[0]['data'])."</td>\n";
|
||||
$body .= "<td width='".$width."' class='center'><b>Pagamento:</b><br/>".$rs[0]['tipo_pagamento']."</td>\n";
|
||||
|
||||
|
@ -331,14 +331,14 @@ if ($tot > 0) {
|
|||
if (!empty($rsr[$i]['idordine'])) {
|
||||
$rso = $dbo->fetchArray('SELECT numero, numero_esterno, data FROM or_ordini WHERE id="'.$rsr[$i]['idordine'].'"');
|
||||
($rso[0]['numero_esterno'] != '') ? $numero = $rso[0]['numero_esterno'] : $numero = $rso[0]['numero'];
|
||||
$body .= '<br/><small>Rif. ordine n<sup>o</sup>'.$numero.' del '.Translator::dateToLocale($rso[0]['data']).'</small>';
|
||||
$body .= '<br/><small>Rif. ordine num.'.$numero.' del '.Translator::dateToLocale($rso[0]['data']).'</small>';
|
||||
}
|
||||
|
||||
// Aggiunta riferimento a ddt
|
||||
elseif (!empty($rsr[$i]['idddt'])) {
|
||||
$rso = $dbo->fetchArray('SELECT numero, numero_esterno, data FROM dt_ddt WHERE id="'.$rsr[$i]['idddt'].'"');
|
||||
($rso[0]['numero_esterno'] != '') ? $numero = $rso[0]['numero_esterno'] : $numero = $rso[0]['numero'];
|
||||
$body .= '<br/><small>Rif. ddt n<sup>o</sup>'.$numero.' del '.Translator::dateToLocale($rso[0]['data']).'</small>';
|
||||
$body .= '<br/><small>Rif. ddt num.'.$numero.' del '.Translator::dateToLocale($rso[0]['data']).'</small>';
|
||||
}
|
||||
$body .= "</td>\n";
|
||||
|
||||
|
|
|
@ -18,8 +18,8 @@ echo '
|
|||
<tr>
|
||||
<td class="text-center" style="width:40%">'.tr('Intervento numero').': <b>'.$records[0]['codice'].'</b></td>
|
||||
<td class="text-center" style="width:20%">'.tr('Data').': <b>'.Translator::dateToLocale($records[0]['data_richiesta']).'</b></td>
|
||||
<td class="text-center" style="width:20%">'.tr('Preventivo N<sup>o</sup>').': <b>'.$records[0]['numero_preventivo'].'</b></td>
|
||||
<td class="text-center" style="width:20%">'.tr('Contratto N<sup>o</sup>').': <b>'.$records[0]['numero_contratto'].'</b></td>
|
||||
<td class="text-center" style="width:20%">'.tr('Preventivo Num.').': <b>'.$records[0]['numero_preventivo'].'</b></td>
|
||||
<td class="text-center" style="width:20%">'.tr('Contratto Num.').': <b>'.$records[0]['numero_contratto'].'</b></td>
|
||||
</tr>';
|
||||
|
||||
// Dati cliente
|
||||
|
|
|
@ -40,7 +40,7 @@ $body .= "<tr><td align=\"center\" colspan=\"2\" valign=\"middle\" style=\"font-
|
|||
|
||||
// Titolo "ordine di servizio" e tecnico
|
||||
$body .= "<tr>\n";
|
||||
$body .= '<td style="width:50%;">ORDINE DI SERVIZIO N<sup>o</sup> '.$rs[0]['id']."</td>\n";
|
||||
$body .= '<td style="width:50%;">ORDINE DI SERVIZIO Num. '.$rs[0]['id']."</td>\n";
|
||||
$body .= '<td style="width:50%;">TECNICO: '.$rs[0]['tecnico']."</td>\n";
|
||||
$body .= "</tr>\n";
|
||||
|
||||
|
@ -56,7 +56,7 @@ $body .= "<table class=\"table_values\" cellspacing=\"0\" border=\"0\" cellpaddi
|
|||
// Informazioni a sinistra
|
||||
$body .= "<tr>\n";
|
||||
$body .= "<td style=\"width:50%;\" valign=\"top\">\n";
|
||||
$body .= ' <b>Contratto n<sup>o</sup> '.$rs2[0]['numero'].":</b><br/>\n";
|
||||
$body .= ' <b>Contratto num. '.$rs2[0]['numero'].":</b><br/>\n";
|
||||
$body .= ' durata dal '.Translator::dateToLocale($rs2[0]['data_accettazione']).' al '.Translator::dateToLocale($rs2[0]['data_conclusione'])."<br/>\n";
|
||||
$body .= ' Tipologia: '.$rs2[0]['nome']."<br/><br/>\n";
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ echo '
|
|||
<div class="row">
|
||||
<div class="col-xs-6">
|
||||
<div class="text-center" style="height:5mm;">
|
||||
<b>'.tr('Preventivo N<sup>o</sup> _NUM_ del _DATE_', [
|
||||
<b>'.tr('Preventivo Num. _NUM_ del _DATE_', [
|
||||
'_NUM_' => $records[0]['numero'],
|
||||
'_DATE_' => Translator::dateToLocale($records[0]['data']),
|
||||
], ['upper' => true]).'</b>
|
||||
|
|
Loading…
Reference in New Issue