Formattazione codice

This commit is contained in:
Pek5892 2024-03-22 15:52:24 +01:00
parent bf34ae7051
commit 092e9880e8
472 changed files with 1968 additions and 2025 deletions

View File

@ -19,6 +19,7 @@
include_once __DIR__.'/core.php'; include_once __DIR__.'/core.php';
use Models\Module;
use Models\Note; use Models\Note;
use Models\OperationLog; use Models\OperationLog;
use Models\Upload; use Models\Upload;
@ -27,7 +28,6 @@ use Modules\Checklists\Checklist;
use Modules\Emails\Template; use Modules\Emails\Template;
use Notifications\EmailNotification; use Notifications\EmailNotification;
use Util\Zip; use Util\Zip;
use Models\Module;
if (empty($structure) || empty($structure['enabled'])) { if (empty($structure) || empty($structure['enabled'])) {
exit(tr('Accesso negato')); exit(tr('Accesso negato'));
@ -138,7 +138,6 @@ if (filter('op') == 'aggiungi-allegato' || filter('op') == 'rimuovi-allegato') {
// DELETE // DELETE
elseif (filter('op') == 'rimuovi-allegato' && filter('filename') !== null) { elseif (filter('op') == 'rimuovi-allegato' && filter('filename') !== null) {
$name = Uploads::delete(filter('filename'), [ $name = Uploads::delete(filter('filename'), [
'id_module' => $id_module, 'id_module' => $id_module,
'id_plugin' => $id_plugin, 'id_plugin' => $id_plugin,
@ -162,8 +161,8 @@ if (filter('op') == 'aggiungi-allegato' || filter('op') == 'rimuovi-allegato') {
elseif (filter('op') == 'download-allegato') { elseif (filter('op') == 'download-allegato') {
$rs = $dbo->fetchArray('SELECT * FROM zz_files WHERE id_module='.prepare($id_module).' AND id='.prepare(filter('id')).' AND filename='.prepare(filter('filename'))); $rs = $dbo->fetchArray('SELECT * FROM zz_files WHERE id_module='.prepare($id_module).' AND id='.prepare(filter('id')).' AND filename='.prepare(filter('filename')));
//download($upload_dir.'/'.$rs[0]['filename'], $rs[0]['original']); // download($upload_dir.'/'.$rs[0]['filename'], $rs[0]['original']);
$file = Models\Upload::find($rs[0]['id']); $file = Upload::find($rs[0]['id']);
if (!empty($file)) { if (!empty($file)) {
$content = $file->get_contents(); $content = $file->get_contents();

View File

@ -51,7 +51,7 @@ echo '
</a> </a>
</li>'; </li>';
$plugins = $dbo->fetchArray('SELECT `zz_plugins`.`id`,`title` FROM `zz_plugins` LEFT JOIN `zz_plugins_lang` ON (`zz_plugins`.`id` = `zz_plugins_lang`.`id_record` AND `zz_plugins_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE `idmodule_to`='.prepare($id_module)." AND `position`='tab_main' AND `enabled` = 1"); $plugins = $dbo->fetchArray('SELECT `zz_plugins`.`id`,`title` FROM `zz_plugins` LEFT JOIN `zz_plugins_lang` ON (`zz_plugins`.`id` = `zz_plugins_lang`.`id_record` AND `zz_plugins_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `idmodule_to`='.prepare($id_module)." AND `position`='tab_main' AND `enabled` = 1");
// Tab dei plugin // Tab dei plugin
foreach ($plugins as $plugin) { foreach ($plugins as $plugin) {

View File

@ -18,7 +18,7 @@
*/ */
// Rimozione header X-Powered-By // Rimozione header X-Powered-By
//header_remove('X-Powered-By'); // header_remove('X-Powered-By');
// Impostazioni di configurazione PHP // Impostazioni di configurazione PHP
date_default_timezone_set('Europe/Rome'); date_default_timezone_set('Europe/Rome');
@ -55,7 +55,7 @@ $rootdir = ROOTDIR;
$baseurl = BASEURL; $baseurl = BASEURL;
// Controllo che le intestazioni non siano già state inviate. // Controllo che le intestazioni non siano già state inviate.
if (!headers_sent()){ if (!headers_sent()) {
// Sicurezza della sessioni // Sicurezza della sessioni
ini_set('session.cookie_samesite', 'lax'); ini_set('session.cookie_samesite', 'lax');
ini_set('session.use_trans_sid', '0'); ini_set('session.use_trans_sid', '0');
@ -265,7 +265,6 @@ if (!API\Response::isAPIRequest()) {
} }
Permissions::check(); Permissions::check();
} }
// Retrocompatibilità // Retrocompatibilità
@ -308,7 +307,7 @@ foreach ($list as $file) {
// Inizializzazione traduzioni // Inizializzazione traduzioni
if (database()->tableExists('zz_settings') && database()->tableExists('zz_langs')) { if (database()->tableExists('zz_settings') && database()->tableExists('zz_langs')) {
$id_lang = setting('Lingua'); $id_lang = setting('Lingua');
\Models\Locale::setDefault($id_lang); Models\Locale::setDefault($id_lang);
$lang = \Models\Locale::find($id_lang)->language_code; $lang = Models\Locale::find($id_lang)->language_code;
} }

View File

@ -27,7 +27,7 @@ echo '
<p>'.tr('Trascina le colonne per ordinare la struttura della tabella principale, seleziona e deseleziona le colonne per renderle visibili o meno').'.</p> <p>'.tr('Trascina le colonne per ordinare la struttura della tabella principale, seleziona e deseleziona le colonne per renderle visibili o meno').'.</p>
<div class="sortable">'; <div class="sortable">';
$fields = $dbo->fetchArray('SELECT *, (SELECT GROUP_CONCAT(`zz_groups_lang`.`name`) FROM `zz_group_view` INNER JOIN `zz_groups` ON `zz_group_view`.`id_gruppo` = `zz_groups`.`id` LEFT JOIN `zz_groups_lang` ON (`zz_groups`.`id` = `zz_groups_lang`.`id_record` AND `zz_groups_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE `zz_group_view`.`id_vista` = `zz_views`.`id`) AS gruppi_con_accesso FROM `zz_views` LEFT JOIN `zz_views_lang` ON (`zz_views`.`id` = `zz_views_lang`.`id_record` AND `zz_views_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE `id_module`='.prepare($id_module).' ORDER BY `order` ASC'); $fields = $dbo->fetchArray('SELECT *, (SELECT GROUP_CONCAT(`zz_groups_lang`.`name`) FROM `zz_group_view` INNER JOIN `zz_groups` ON `zz_group_view`.`id_gruppo` = `zz_groups`.`id` LEFT JOIN `zz_groups_lang` ON (`zz_groups`.`id` = `zz_groups_lang`.`id_record` AND `zz_groups_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `zz_group_view`.`id_vista` = `zz_views`.`id`) AS gruppi_con_accesso FROM `zz_views` LEFT JOIN `zz_views_lang` ON (`zz_views`.`id` = `zz_views_lang`.`id_record` AND `zz_views_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `id_module`='.prepare($id_module).' ORDER BY `order` ASC');
foreach ($fields as $field) { foreach ($fields as $field) {
echo ' echo '
<div class="panel panel-default clickable col-md-4" data-id="'.$field['id'].'"> <div class="panel panel-default clickable col-md-4" data-id="'.$field['id'].'">

View File

@ -30,7 +30,7 @@ $articolo = $database->fetchOne('SELECT
IFNULL(`mg_fornitore_articolo`.`descrizione`, `mg_articoli_lang`.`name`) AS descrizione, IFNULL(`mg_fornitore_articolo`.`descrizione`, `mg_articoli_lang`.`name`) AS descrizione,
IFNULL(`mg_fornitore_articolo`.`qta_minima`, 0) AS qta_minima IFNULL(`mg_fornitore_articolo`.`qta_minima`, 0) AS qta_minima
FROM `mg_articoli` FROM `mg_articoli`
LEFT JOIN `mg_articoli_lang` ON (`mg_articoli_lang`.`id_record` = `mg_articoli`.`id` AND `mg_articoli_lang`.`id_lang` = "'.prepare(\Models\Locale::getDefault()->id).') LEFT JOIN `mg_articoli_lang` ON (`mg_articoli_lang`.`id_record` = `mg_articoli`.`id` AND `mg_articoli_lang`.`id_lang` = "'.prepare(Models\Locale::getDefault()->id).')
LEFT JOIN `mg_fornitore_articolo` ON `mg_fornitore_articolo`.`id_articolo` = `mg_articoli`.`id` AND `mg_fornitore_articolo`.`id` = '.prepare($result['id_dettaglio_fornitore']).' LEFT JOIN `mg_fornitore_articolo` ON `mg_fornitore_articolo`.`id_articolo` = `mg_articoli`.`id` AND `mg_fornitore_articolo`.`id` = '.prepare($result['id_dettaglio_fornitore']).'
WHERE WHERE
`mg_articoli`.`id` = '.prepare($result['idarticolo'])); `mg_articoli`.`id` = '.prepare($result['idarticolo']));

View File

@ -17,12 +17,12 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use Models\Module;
use Modules\Contratti\Stato as StatoContratto; use Modules\Contratti\Stato as StatoContratto;
use Modules\DDT\Stato;
use Modules\Fatture\Stato as StatoFattura; use Modules\Fatture\Stato as StatoFattura;
use Modules\Ordini\Stato as StatoOrdine; use Modules\Ordini\Stato as StatoOrdine;
use Modules\DDT\Stato;
use Plugins\ListinoFornitori\DettaglioFornitore; use Plugins\ListinoFornitori\DettaglioFornitore;
use Models\Module;
// Inizializzazione // Inizializzazione
$documento = $options['documento']; $documento = $options['documento'];
@ -96,20 +96,20 @@ if (!empty($options['create_document'])) {
$stato_predefinito = (new StatoFattura())->getByField('name', 'Bozza'); $stato_predefinito = (new StatoFattura())->getByField('name', 'Bozza');
if (!empty($options['reversed'])) { if (!empty($options['reversed'])) {
$idtipodocumento = database()->fetchOne('SELECT `co_tipidocumento`.`id` FROM `co_tipidocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento_lang`.`id_record` = `co_tipidocumento`.`id` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE `name` = "Nota di credito" AND `dir` = \''.$dir.'\'')['id']; $idtipodocumento = database()->fetchOne('SELECT `co_tipidocumento`.`id` FROM `co_tipidocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento_lang`.`id_record` = `co_tipidocumento`.`id` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `name` = "Nota di credito" AND `dir` = \''.$dir.'\'')['id'];
} elseif (in_array($original_module->getTranslation('name'), ['Ddt di vendita', 'Ddt di acquisto'])) { } elseif (in_array($original_module->getTranslation('name'), ['Ddt di vendita', 'Ddt di acquisto'])) {
$idtipodocumento = database()->fetchOne('SELECT `co_tipidocumento`.`id` FROM `co_tipidocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento_lang`.`id_record` = `co_tipidocumento`.`id` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE `name` = '.($dir == 'uscita' ? 'Fattura differita di acquisto' : 'Fattura differita di vendita').' AND `dir` = \''.$dir.'\'')['id']; $idtipodocumento = database()->fetchOne('SELECT `co_tipidocumento`.`id` FROM `co_tipidocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento_lang`.`id_record` = `co_tipidocumento`.`id` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `name` = '.($dir == 'uscita' ? 'Fattura differita di acquisto' : 'Fattura differita di vendita').' AND `dir` = \''.$dir.'\'')['id'];
} else { } else {
$idtipodocumento = database()->fetchOne('SELECT `co_tipidocumento`.`id` FROM `co_tipidocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento_lang`.`id_record` = `co_tipidocumento`.`id` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE `dir` = \''.$dir.'\' AND `predefined` = 1')['id']; $idtipodocumento = database()->fetchOne('SELECT `co_tipidocumento`.`id` FROM `co_tipidocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento_lang`.`id_record` = `co_tipidocumento`.`id` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `dir` = \''.$dir.'\' AND `predefined` = 1')['id'];
} }
echo ' echo '
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato", "required": 1, "values": "query=SELECT `co_statidocumento`.`id` as id, `co_statidocumento_lang`.`name` as descrizione FROM `co_statidocumento` LEFT JOIN `co_statidocumento_lang` ON (`co_statidocumento`.`id` = `co_statidocumento_lang`.`id_record` AND `co_statidocumento_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE `name` IN (\'Emessa\', \'Bozza\')", "value": "'.$stato_predefinito.'"]} {[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato", "required": 1, "values": "query=SELECT `co_statidocumento`.`id` as id, `co_statidocumento_lang`.`name` as descrizione FROM `co_statidocumento` LEFT JOIN `co_statidocumento_lang` ON (`co_statidocumento`.`id` = `co_statidocumento_lang`.`id_record` AND `co_statidocumento_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `name` IN (\'Emessa\', \'Bozza\')", "value": "'.$stato_predefinito.'"]}
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "'.tr('Tipo documento').'", "name": "idtipodocumento", "required": 1, "values": "query=SELECT `co_tipidocumento`.`id`, CONCAT(`codice_tipo_documento_fe`, \' - \', `name`) AS descrizione FROM `co_tipidocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento`.`id` = `co_tipidocumento_lang`.`id_record` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE `enabled` = 1 AND `dir` = '.prepare($dir).' ORDER BY `codice_tipo_documento_fe`", "value": "'.$idtipodocumento.'" ]} {[ "type": "select", "label": "'.tr('Tipo documento').'", "name": "idtipodocumento", "required": 1, "values": "query=SELECT `co_tipidocumento`.`id`, CONCAT(`codice_tipo_documento_fe`, \' - \', `name`) AS descrizione FROM `co_tipidocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento`.`id` = `co_tipidocumento_lang`.`id_record` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `enabled` = 1 AND `dir` = '.prepare($dir).' ORDER BY `codice_tipo_documento_fe`", "value": "'.$idtipodocumento.'" ]}
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
@ -121,13 +121,13 @@ if (!empty($options['create_document'])) {
elseif ($final_module->getTranslation('name') == 'Interventi') { elseif ($final_module->getTranslation('name') == 'Interventi') {
echo ' echo '
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato_intervento", "required": 1, "values": "query=SELECT `in_statiintervento`.`id`, `in_statiintervento_lang`.`name` as `descrizione`, `colore` AS _bgcolor_ FROM `in_statiintervento` LEFT JOIN `in_statiintervento_lang` ON (`in_statiintervento`.`id` = `in_statiintervento_lang`.`id_record` AND `in_statiintervento_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE `deleted_at` IS NULL AND `is_completato` = 0 ORDER BY `name`" ]} {[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato_intervento", "required": 1, "values": "query=SELECT `in_statiintervento`.`id`, `in_statiintervento_lang`.`name` as `descrizione`, `colore` AS _bgcolor_ FROM `in_statiintervento` LEFT JOIN `in_statiintervento_lang` ON (`in_statiintervento`.`id` = `in_statiintervento_lang`.`id_record` AND `in_statiintervento_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `deleted_at` IS NULL AND `is_completato` = 0 ORDER BY `name`" ]}
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "'.tr('Tipo').'", "name": "id_tipo_intervento", "required": 1, "ajax-source": "tipiintervento" ]} {[ "type": "select", "label": "'.tr('Tipo').'", "name": "id_tipo_intervento", "required": 1, "ajax-source": "tipiintervento" ]}
</div>'; </div>';
} }
// Opzioni aggiuntive per i Contratti // Opzioni aggiuntive per i Contratti
elseif ($final_module->getTranslation('name') == 'Contratti') { elseif ($final_module->getTranslation('name') == 'Contratti') {
@ -135,7 +135,7 @@ if (!empty($options['create_document'])) {
echo ' echo '
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato", "required": 1, "values": "query=SELECT `co_staticontratti`.`id`, `co_staticontratti_lang`.`name` AS descrizione FROM `co_staticontratti` LEFT JOIN `co_staticontratti_lang` ON (`co_staticontratti`.`id` = `co_staticontratti_lang`.`id_record` AND `co_staticontratti_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).')", "value": "'.$stato_predefinito.'" ]} {[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato", "required": 1, "values": "query=SELECT `co_staticontratti`.`id`, `co_staticontratti_lang`.`name` AS descrizione FROM `co_staticontratti` LEFT JOIN `co_staticontratti_lang` ON (`co_staticontratti`.`id` = `co_staticontratti_lang`.`id_record` AND `co_staticontratti_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).')", "value": "'.$stato_predefinito.'" ]}
</div>'; </div>';
} }
@ -145,7 +145,7 @@ if (!empty($options['create_document'])) {
echo ' echo '
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato", "required": 1, "values": "query=SELECT * FROM `dt_statiddt` LEFT JOIN `dt_statiddt_lang` ON (`dt_statiddt`.`id` = `dt_statiddt_lang`.`id_record` AND `dt_statiddt_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).')", "value": "'.$stato_predefinito.'" ]} {[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato", "required": 1, "values": "query=SELECT * FROM `dt_statiddt` LEFT JOIN `dt_statiddt_lang` ON (`dt_statiddt`.`id` = `dt_statiddt_lang`.`id_record` AND `dt_statiddt_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).')", "value": "'.$stato_predefinito.'" ]}
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
@ -159,7 +159,7 @@ if (!empty($options['create_document'])) {
echo ' echo '
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato", "required": 1, "values": "query=SELECT * ,`or_statiordine`.`id`, `or_statiordine_lang`.`name` AS descrizione FROM `or_statiordine` LEFT JOIN `or_statiordine_lang` ON (`or_statiordine`.`id` = `or_statiordine_lang`.`id_record` AND `or_statiordine_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE `name` IN(\'Bozza\', \'Accettato\', \'In attesa di conferma\', \'Annullato\')", "value": "'.$stato_predefinito.'" ]} {[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato", "required": 1, "values": "query=SELECT * ,`or_statiordine`.`id`, `or_statiordine_lang`.`name` AS descrizione FROM `or_statiordine` LEFT JOIN `or_statiordine_lang` ON (`or_statiordine`.`id` = `or_statiordine_lang`.`id_record` AND `or_statiordine_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `name` IN(\'Bozza\', \'Accettato\', \'In attesa di conferma\', \'Annullato\')", "value": "'.$stato_predefinito.'" ]}
</div>'; </div>';
} }
@ -343,8 +343,8 @@ foreach ($righe as $i => $riga) {
if (!empty($mancanti)) { if (!empty($mancanti)) {
echo ' echo '
<br><b><small class="text-danger">'.tr('_NUM_ serial mancanti', [ <br><b><small class="text-danger">'.tr('_NUM_ serial mancanti', [
'_NUM_' => $mancanti, '_NUM_' => $mancanti,
]).'</small></b>'; ]).'</small></b>';
} }
} }

View File

@ -17,8 +17,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use Modules\Articoli\Articolo;
use Models\Module; use Models\Module;
use Modules\Articoli\Articolo;
$articolo = Articolo::find($result['idarticolo']); $articolo = Articolo::find($result['idarticolo']);
$width = $options['dir'] == 'uscita' && $articolo->fattore_um_secondaria ? 3 : 4; $width = $options['dir'] == 'uscita' && $articolo->fattore_um_secondaria ? 3 : 4;
@ -52,7 +52,7 @@ echo '
if ($options['dir'] == 'uscita' && $articolo->fattore_um_secondaria) { if ($options['dir'] == 'uscita' && $articolo->fattore_um_secondaria) {
echo ' echo '
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "number", "label": "'.tr('Q.tà secondaria').'", "name": "fattore_um_secondaria", "value": "'.abs((float) $articolo-> fattore_um_secondaria * $result['qta']).'", "icon-after": "'.$articolo->um_secondaria.'" ]} {[ "type": "number", "label": "'.tr('Q.tà secondaria').'", "name": "fattore_um_secondaria", "value": "'.abs((float) $articolo->fattore_um_secondaria * $result['qta']).'", "icon-after": "'.$articolo->um_secondaria.'" ]}
</div> </div>
<script> <script>

View File

@ -147,8 +147,8 @@ if (post('db_host') !== null) {
</div> </div>
<div class="box-body"> <div class="box-body">
<p>'.tr('Sembra che non ci siano i permessi di scrittura sul file _FILE_', [ <p>'.tr('Sembra che non ci siano i permessi di scrittura sul file _FILE_', [
'_FILE_' => '<b>config.inc.php</b>', '_FILE_' => '<b>config.inc.php</b>',
]).'</p> ]).'</p>
<form action="'.base_path().'/index.php?action=updateconfig&firstuse=true" method="post"> <form action="'.base_path().'/index.php?action=updateconfig&firstuse=true" method="post">
<div class="hide"> <div class="hide">
<input type="hidden" name="db_name" value="'.$db_name.'"> <input type="hidden" name="db_name" value="'.$db_name.'">
@ -169,8 +169,8 @@ if (post('db_host') !== null) {
</div> </div>
<div class="box-body"> <div class="box-body">
<p>'.tr('Inserire il seguente testo nel file _FILE_', [ <p>'.tr('Inserire il seguente testo nel file _FILE_', [
'_FILE_' => '<b>config.inc.php</b>', '_FILE_' => '<b>config.inc.php</b>',
]).'</p> ]).'</p>
<pre class="text-left">'.htmlentities($new_config).'</pre> <pre class="text-left">'.htmlentities($new_config).'</pre>
</div> </div>
</div> </div>
@ -215,8 +215,8 @@ if (empty($creation) && (!file_exists('config.inc.php') || !$valid_config)) {
<div class="box-body"> <div class="box-body">
<p>'.tr("L'avvio del software è fallito a causa dell'assenza di alcuni parametri nella configurazione di base").'.</p> <p>'.tr("L'avvio del software è fallito a causa dell'assenza di alcuni parametri nella configurazione di base").'.</p>
<p>'.tr("Si prega di controllare che il file _FILE_ contenga tutti i dati inseriti durante la configurazione iniziale (con l'eccezione di password e indirizzo email amministrativi)", [ <p>'.tr("Si prega di controllare che il file _FILE_ contenga tutti i dati inseriti durante la configurazione iniziale (con l'eccezione di password e indirizzo email amministrativi)", [
'_FILE_' => '<b>config.inc.php</b>', '_FILE_' => '<b>config.inc.php</b>',
]).'.</p> ]).'.</p>
<p>'.tr("Nel caso il problema persista, rivolgersi all'assistenza ufficiale").'.</p> <p>'.tr("Nel caso il problema persista, rivolgersi all'assistenza ufficiale").'.</p>
<a class="btn btn-info" href="'.base_path().'/index.php"><i class="fa fa-repeat"></i> '.tr('Riprova').'</a> <a class="btn btn-info" href="'.base_path().'/index.php"><i class="fa fa-repeat"></i> '.tr('Riprova').'</a>
</div> </div>
@ -432,8 +432,8 @@ if (empty($creation) && (!file_exists('config.inc.php') || !$valid_config)) {
echo ' echo '
<div id="step-2"> <div id="step-2">
<p>'.tr('OpenSTAManager è tutelato dalla licenza _LICENSE_', [ <p>'.tr('OpenSTAManager è tutelato dalla licenza _LICENSE_', [
'_LICENSE_' => 'GPL 3.0', '_LICENSE_' => 'GPL 3.0',
]).':</p> ]).':</p>
<textarea class="form-control autosize" rows="15" readonly>'.file_get_contents('LICENSE').'</textarea><br> <textarea class="form-control autosize" rows="15" readonly>'.file_get_contents('LICENSE').'</textarea><br>
<a class="pull-left" href="https://www.gnu.org/licenses/translations.en.html#GPL" target="_blank">[ '.tr('Versioni tradotte').' ]</a><hr> <a class="pull-left" href="https://www.gnu.org/licenses/translations.en.html#GPL" target="_blank">[ '.tr('Versioni tradotte').' ]</a><hr>
@ -462,8 +462,8 @@ if (empty($creation) && (!file_exists('config.inc.php') || !$valid_config)) {
<p>'.tr('Non hai ancora configurato OpenSTAManager').'.</p> <p>'.tr('Non hai ancora configurato OpenSTAManager').'.</p>
<p><small class="help-block">'.tr('Configura correttamente il software con i seguenti parametri (modificabili successivamente dal file _FILE_)', [ <p><small class="help-block">'.tr('Configura correttamente il software con i seguenti parametri (modificabili successivamente dal file _FILE_)', [
'_FILE_' => '<b>config.inc.php</b>', '_FILE_' => '<b>config.inc.php</b>',
]).'</small></p> ]).'</small></p>
<hr>'; <hr>';
@ -488,8 +488,8 @@ if (empty($creation) && (!file_exists('config.inc.php') || !$valid_config)) {
</div> </div>
<small>'.tr('I formati sono impostabili attraverso lo standard previsto da PHP: _LINK_', [ <small>'.tr('I formati sono impostabili attraverso lo standard previsto da PHP: _LINK_', [
'_LINK_' => '<a href="https://www.php.net/manual/en/function.date.php#refsect1-function.date-parameters">https://www.php.net/manual/en/function.date.php#refsect1-function.date-parameters</a>', '_LINK_' => '<a href="https://www.php.net/manual/en/function.date.php#refsect1-function.date-parameters">https://www.php.net/manual/en/function.date.php#refsect1-function.date-parameters</a>',
]).'.</small> ]).'.</small>
<hr>'; <hr>';
@ -519,8 +519,8 @@ if (empty($creation) && (!file_exists('config.inc.php') || !$valid_config)) {
</div> </div>
<small>'.tr("Si consiglia l'abilitazione dell'estensione _EXT_ di PHP", [ <small>'.tr("Si consiglia l'abilitazione dell'estensione _EXT_ di PHP", [
'_EXT_' => 'intl', '_EXT_' => 'intl',
]).'.</small> ]).'.</small>
<hr>'; <hr>';
} }

View File

@ -19,10 +19,10 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
use Modules\Anagrafiche\Tipo; use Models\Group;
use Models\Module; use Models\Module;
use Models\Setting; use Models\Setting;
use Models\Group; use Modules\Anagrafiche\Tipo;
if (Update::isUpdateAvailable() || !$dbo->isInstalled()) { if (Update::isUpdateAvailable() || !$dbo->isInstalled()) {
return; return;
@ -31,7 +31,7 @@ if (Update::isUpdateAvailable() || !$dbo->isInstalled()) {
$has_azienda = $dbo->fetchNum('SELECT `an_anagrafiche`.`idanagrafica` FROM `an_anagrafiche` $has_azienda = $dbo->fetchNum('SELECT `an_anagrafiche`.`idanagrafica` FROM `an_anagrafiche`
LEFT JOIN `an_tipianagrafiche_anagrafiche` ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` LEFT JOIN `an_tipianagrafiche_anagrafiche` ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica`
LEFT JOIN `an_tipianagrafiche` ON `an_tipianagrafiche`.`id`=`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` LEFT JOIN `an_tipianagrafiche` ON `an_tipianagrafiche`.`id`=`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`
LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id`=`an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang`='.prepare(\Models\Locale::getDefault()->id).") LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id`=`an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang`='.prepare(Models\Locale::getDefault()->id).")
WHERE `an_tipianagrafiche_lang`.`name` = 'Azienda' AND `an_anagrafiche`.`deleted_at` IS NULL") != 0; WHERE `an_tipianagrafiche_lang`.`name` = 'Azienda' AND `an_anagrafiche`.`deleted_at` IS NULL") != 0;
$has_user = $dbo->fetchNum('SELECT `id` FROM `zz_users`') != 0; $has_user = $dbo->fetchNum('SELECT `id` FROM `zz_users`') != 0;

View File

@ -52,8 +52,8 @@ if (!$creation) {
</div> </div>
<div class="box-body"> <div class="box-body">
<p>'.tr('Sembra che non ci siano i permessi di scrittura sul file _FILE_', [ <p>'.tr('Sembra che non ci siano i permessi di scrittura sul file _FILE_', [
'_FILE_' => '<b>manifest.json</b>', '_FILE_' => '<b>manifest.json</b>',
]).'</p> ]).'</p>
</div> </div>
</div>'; </div>';
} }

View File

@ -33,43 +33,43 @@ $sapi_name = php_sapi_name();
$php_interface = ''; $php_interface = '';
switch (true) { switch (true) {
case strpos($sapi_name, 'apache') !== false: case strpos($sapi_name, 'apache') !== false:
//PHP è in esecuzione come modulo Apache (4) // PHP è in esecuzione come modulo Apache (4)
$php_interface = 'apache'; $php_interface = 'apache';
break; break;
case strpos($sapi_name, 'fpm-fcgi') !== false: case strpos($sapi_name, 'fpm-fcgi') !== false:
//PHP è in esecuzione come PHP-FPM FastCGI (3) // PHP è in esecuzione come PHP-FPM FastCGI (3)
$php_interface = 'fpm-fcgi'; $php_interface = 'fpm-fcgi';
break; break;
case strpos($sapi_name, 'fpm') !== false: case strpos($sapi_name, 'fpm') !== false:
//PHP è in esecuzione come PHP-FPM (9) // PHP è in esecuzione come PHP-FPM (9)
$php_interface = 'fpm'; $php_interface = 'fpm';
break; break;
case strpos($sapi_name, 'cgi-fcgi') !== false: case strpos($sapi_name, 'cgi-fcgi') !== false:
//PHP è in esecuzione come FastCGI (8) // PHP è in esecuzione come FastCGI (8)
$php_interface = 'cgi-fcgi'; $php_interface = 'cgi-fcgi';
break; break;
case strpos($sapi_name, 'cgi') !== false: case strpos($sapi_name, 'cgi') !== false:
//PHP è in esecuzione come modulo CGI (2) // PHP è in esecuzione come modulo CGI (2)
$php_interface = 'cgi'; $php_interface = 'cgi';
break; break;
case strpos($sapi_name, 'cli') !== false: case strpos($sapi_name, 'cli') !== false:
//PHP è in esecuzione dalla riga di comando (command line interface) (1) // PHP è in esecuzione dalla riga di comando (command line interface) (1)
$php_interface = 'cli'; $php_interface = 'cli';
break; break;
case strpos($sapi_name, 'embed') !== false: case strpos($sapi_name, 'embed') !== false:
//PHP è incorporato in un'applicazione (5) // PHP è incorporato in un'applicazione (5)
$php_interface = 'embed'; $php_interface = 'embed';
break; break;
case strpos($sapi_name, 'litespeed') !== false: case strpos($sapi_name, 'litespeed') !== false:
//PHP è in esecuzione come modulo LiteSpeed (6) // PHP è in esecuzione come modulo LiteSpeed (6)
$php_interface = 'litespeed'; $php_interface = 'litespeed';
break; break;
case strpos($sapi_name, 'isapi') !== false: case strpos($sapi_name, 'isapi') !== false:
//PHP è in esecuzione come modulo ISAPI in IIS (7) // PHP è in esecuzione come modulo ISAPI in IIS (7)
$php_interface = 'isapi'; $php_interface = 'isapi';
break; break;
default: default:
//Non è possibile determinare il tipo di interfaccia di PHP (0) // Non è possibile determinare il tipo di interfaccia di PHP (0)
$php_interface = 'n.d.'; $php_interface = 'n.d.';
} }
@ -219,8 +219,8 @@ foreach ($settings as $name => $values) {
} }
$description = tr('Valore consigliato: _VALUE_ (Valore attuale: _INI_)', [ $description = tr('Valore consigliato: _VALUE_ (Valore attuale: _INI_)', [
'_VALUE_' => $description, '_VALUE_' => $description,
'_INI_' => ini_get($name), '_INI_' => ini_get($name),
]); ]);
} }
@ -242,7 +242,6 @@ foreach ($settings as $name => $values) {
]; ];
} }
// MySQL // MySQL
if ($database->isInstalled()) { if ($database->isInstalled()) {
if (method_exists($database, 'isMySQL')) { if (method_exists($database, 'isMySQL')) {
@ -254,7 +253,7 @@ if ($database->isInstalled()) {
'minimum' => $database->isMySQL() ? '5.7.0' : '10.1.0', 'minimum' => $database->isMySQL() ? '5.7.0' : '10.1.0',
'maximum' => $database->isMySQL() ? '8.0.99' : '10.6.99', 'maximum' => $database->isMySQL() ? '8.0.99' : '10.6.99',
], ],
'sort_buffer_size' => [ 'sort_buffer_size' => [
'type' => 'value', 'type' => 'value',
'description' => '>2M', 'description' => '>2M',
@ -297,11 +296,10 @@ foreach ($db as $name => $values) {
$status = ((version_compare($database->getMySQLVersion(), $values['minimum'], '>=') && version_compare($database->getMySQLVersion(), $values['maximum'], '<=')) ? 1 : 0); $status = ((version_compare($database->getMySQLVersion(), $values['minimum'], '>=') && version_compare($database->getMySQLVersion(), $values['maximum'], '<=')) ? 1 : 0);
if($values['warning'] && $status == 1){ if ($values['warning'] && $status == 1) {
$status = 0; $status = 0;
$description .= '. <i class="fa fa-exclamation-triangle text-danger" ></i><b> '.tr('Al momento MariaDB _MYSQL_VERSION_ non è completamente supportato, si consiglia di passare a MySQL.', ['_MYSQL_VERSION_'=>$database->getMySQLVersion()]).'</b>'; $description .= '. <i class="fa fa-exclamation-triangle text-danger" ></i><b> '.tr('Al momento MariaDB _MYSQL_VERSION_ non è completamente supportato, si consiglia di passare a MySQL.', ['_MYSQL_VERSION_' => $database->getMySQLVersion()]).'</b>';
} }
} else { } else {
$type = tr('Impostazione'); $type = tr('Impostazione');
@ -334,8 +332,8 @@ foreach ($db as $name => $values) {
} }
$description = tr('Valore consigliato: _VALUE_ (Valore attuale: _INC_)', [ $description = tr('Valore consigliato: _VALUE_ (Valore attuale: _INC_)', [
'_VALUE_' => $description, '_VALUE_' => $description,
'_INC_' => Util\FileSystem::formatBytes($inc), '_INC_' => Util\FileSystem::formatBytes($inc),
]); ]);
} }
@ -449,7 +447,7 @@ foreach ($config_to_check as $name => $values) {
$requirements = [ $requirements = [
tr('Apache (_INTERFACE_)', [ tr('Apache (_INTERFACE_)', [
'_INTERFACE_' => $php_interface, '_INTERFACE_' => $php_interface,
]) => $apache, ]) => $apache,
tr('PHP (_VERSION_ _SUPPORTED_)', [ tr('PHP (_VERSION_ _SUPPORTED_)', [
'_VERSION_' => phpversion(), '_VERSION_' => phpversion(),
@ -457,7 +455,7 @@ $requirements = [
]) => $php, ]) => $php,
tr('DBMS (_TYPE_)', [ tr('DBMS (_TYPE_)', [
'_TYPE_' => method_exists($database, 'getType') ? $database->getType() : '', '_TYPE_' => method_exists($database, 'getType') ? $database->getType() : '',
] ) => $mysql, ]) => $mysql,
tr('Percorsi di servizio') => $directories, tr('Percorsi di servizio') => $directories,
tr('File di servizio') => $files, tr('File di servizio') => $files,
tr('Configurazioni') => $config, tr('Configurazioni') => $config,
@ -466,7 +464,7 @@ $requirements = [
if (!$database->isInstalled() || empty($mysql)) { if (!$database->isInstalled() || empty($mysql)) {
unset($requirements[tr('DBMS (_TYPE_)', [ unset($requirements[tr('DBMS (_TYPE_)', [
'_TYPE_' => $database->getType(), '_TYPE_' => $database->getType(),
] )]); ])]);
} }
// Tabelle di riepilogo // Tabelle di riepilogo

View File

@ -45,8 +45,8 @@ if (filter('action') == 'do_update') {
echo ' echo '
<script> <script>
$("#progress .info").html($("#progress .info").html() + "<p>&nbsp;&nbsp;&nbsp;&nbsp;<i class=\"fa fa-check\"></i> '.tr('Aggiornamento del database (_FILENAME_)', [ $("#progress .info").html($("#progress .info").html() + "<p>&nbsp;&nbsp;&nbsp;&nbsp;<i class=\"fa fa-check\"></i> '.tr('Aggiornamento del database (_FILENAME_)', [
'_FILENAME_' => '<i>'.$update['filename'].'.sql</i>', '_FILENAME_' => '<i>'.$update['filename'].'.sql</i>',
]).'</p>"); ]).'</p>");
</script>'; </script>';
} }
@ -56,8 +56,8 @@ if (filter('action') == 'do_update') {
echo ' echo '
<script> <script>
$("#progress .info").html($("#progress .info").html() + "<p>&nbsp;&nbsp;&nbsp;&nbsp;<i class=\"fa fa-check\"></i> '.tr('Esecuzione dello script di aggiornamento (_FILENAME_)', [ $("#progress .info").html($("#progress .info").html() + "<p>&nbsp;&nbsp;&nbsp;&nbsp;<i class=\"fa fa-check\"></i> '.tr('Esecuzione dello script di aggiornamento (_FILENAME_)', [
'_FILENAME_' => '<i>'.$update['filename'].'.php</i>', '_FILENAME_' => '<i>'.$update['filename'].'.php</i>',
]).'</p>"); ]).'</p>");
</script>'; </script>';
$rate = $scriptValue; $rate = $scriptValue;
@ -80,8 +80,8 @@ if (filter('action') == 'do_update') {
echo ' echo '
<div class="alert alert-danger"> <div class="alert alert-danger">
<i class="fa fa-times"></i> '.tr("Errore durante l'esecuzione dell'aggiornamento alla versione _VERSION_", [ <i class="fa fa-times"></i> '.tr("Errore durante l'esecuzione dell'aggiornamento alla versione _VERSION_", [
'_VERSION_' => $update['version'], '_VERSION_' => $update['version'],
]).' ]).'
</div>'; </div>';
} }
} }
@ -99,8 +99,8 @@ if (filter('action') == 'do_update') {
if ($_GET['firstuse'] == 'true') { if ($_GET['firstuse'] == 'true') {
echo ' echo '
<p class="text-danger">'.tr('Si consiglia di rimuovere i permessi di scrittura dal file _FILE_', [ <p class="text-danger">'.tr('Si consiglia di rimuovere i permessi di scrittura dal file _FILE_', [
'_FILE_' => '<b>config.inc.php</b>', '_FILE_' => '<b>config.inc.php</b>',
]).'.</p>'; ]).'.</p>';
} }
echo ' echo '
@ -156,8 +156,8 @@ if (filter('action') == 'do_update') {
} }
echo ' echo '
<p>'.tr("Premi il tasto _BUTTON_ per procedere con l'".(!$dbo->isInstalled() ? tr('installazione') : tr('aggiornamento')).'!', [ <p>'.tr("Premi il tasto _BUTTON_ per procedere con l'".(!$dbo->isInstalled() ? tr('installazione') : tr('aggiornamento')).'!', [
'_BUTTON_' => '<b>"'.$button.'"</b>', '_BUTTON_' => '<b>"'.$button.'"</b>',
]).'</p> ]).'</p>
<input type="button" class="btn btn-primary" value="'.$button.'" onclick="continue_update()" id="contine_button"> <input type="button" class="btn btn-primary" value="'.$button.'" onclick="continue_update()" id="contine_button">
<script> <script>
@ -248,10 +248,10 @@ if (filter('action') == 'do_update') {
current += 1; current += 1;
$("#progress .info").html($("#progress .info").html() + "<p><strong>'.tr('Aggiornamento _DONE_ di _TODO_ (_VERSION_)', [ $("#progress .info").html($("#progress .info").html() + "<p><strong>'.tr('Aggiornamento _DONE_ di _TODO_ (_VERSION_)', [
'_DONE_' => '" + current + "', '_DONE_' => '" + current + "',
'_TODO_' => '" + count + "', '_TODO_' => '" + count + "',
'_VERSION_' => '" + version.trim() + "', '_VERSION_' => '" + version.trim() + "',
]).'</strong></p>"); ]).'</strong></p>");
} }
} }
</script> </script>

View File

@ -20,8 +20,8 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
use Modules\DDT\DDT; use Modules\DDT\DDT;
use Modules\Ordini\Ordine;
use Modules\DDT\Stato as StatoDDT; use Modules\DDT\Stato as StatoDDT;
use Modules\Ordini\Ordine;
use Modules\Ordini\Stato as StatoOrdine; use Modules\Ordini\Stato as StatoOrdine;
// Informazioni generali sulla riga // Informazioni generali sulla riga

View File

@ -17,8 +17,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use Util\FileSystem;
use Models\Module; use Models\Module;
use Util\FileSystem;
include_once __DIR__.'/../core.php'; include_once __DIR__.'/../core.php';
@ -414,7 +414,7 @@ if (Auth::check()) {
<li class="nav-button" > <li class="nav-button" >
<p style="padding:10px 15px;">&nbsp;</p> <p style="padding:10px 15px;">&nbsp;</p>
</li>'; </li>';
//Visualizzo gli hooks solo se non sono stati disabilitati // Visualizzo gli hooks solo se non sono stati disabilitati
if (!$config['disable_hooks']) { if (!$config['disable_hooks']) {
echo ' echo '
<li class="dropdown notifications-menu nav-button"> <li class="dropdown notifications-menu nav-button">
@ -437,23 +437,23 @@ if (Auth::check()) {
} }
echo ' echo '
<li class="nav-button"><a href="#" onclick="window.print()" class="tip nav-button" title="' . tr('Stampa') . '"> <li class="nav-button"><a href="#" onclick="window.print()" class="tip nav-button" title="'.tr('Stampa').'">
<i class="fa fa-print"></i> <i class="fa fa-print"></i>
</a></li> </a></li>
<li class="nav-button"><a href="' . base_path() . '/log.php" class="tip nav-button" title="' . tr('Log accessi') . '"> <li class="nav-button"><a href="'.base_path().'/log.php" class="tip nav-button" title="'.tr('Log accessi').'">
<i class="fa fa-book"></i> <i class="fa fa-book"></i>
</a></li> </a></li>
<li class="nav-button"><a data-href="' . base_path() . '/shortcuts.php" data-title="' . tr('Scorciatoie da tastiera') . '" class="tip nav-button" title="' . tr('Scorciatoie') . '"> <li class="nav-button"><a data-href="'.base_path().'/shortcuts.php" data-title="'.tr('Scorciatoie da tastiera').'" class="tip nav-button" title="'.tr('Scorciatoie').'">
<i class="fa fa-keyboard-o"></i> <i class="fa fa-keyboard-o"></i>
</a></li> </a></li>
<li class="nav-button"><a href="' . base_path() . '/info.php" class="tip nav-button" title="' . tr('Informazioni') . '"> <li class="nav-button"><a href="'.base_path().'/info.php" class="tip nav-button" title="'.tr('Informazioni').'">
<i class="fa fa-info"></i> <i class="fa fa-info"></i>
</a></li> </a></li>
<li class="nav-button"><a href="' . base_path() . '/index.php?op=logout" onclick="sessionStorage.clear()" class="bg-red tip" title="' . tr('Esci') . '"> <li class="nav-button"><a href="'.base_path().'/index.php?op=logout" onclick="sessionStorage.clear()" class="bg-red tip" title="'.tr('Esci').'">
<i class="fa fa-power-off"></i> <i class="fa fa-power-off"></i>
</a></li> </a></li>
</ul> </ul>
@ -524,7 +524,7 @@ if (Auth::check()) {
// Tab dei plugin // Tab dei plugin
if (!empty($id_record)) { if (!empty($id_record)) {
$plugins = $dbo->fetchArray('SELECT `zz_plugins`.`id`, `title`, `options`, `options2` FROM `zz_plugins` LEFT JOIN `zz_plugins_lang` ON (`zz_plugins`.`id` = `zz_plugins_lang`.`id_record` AND `zz_plugins_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE `idmodule_to`='.prepare($id_module)." AND `position`='tab' AND `enabled` = 1 ORDER BY `zz_plugins`.`order` DESC"); $plugins = $dbo->fetchArray('SELECT `zz_plugins`.`id`, `title`, `options`, `options2` FROM `zz_plugins` LEFT JOIN `zz_plugins_lang` ON (`zz_plugins`.`id` = `zz_plugins_lang`.`id_record` AND `zz_plugins_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `idmodule_to`='.prepare($id_module)." AND `position`='tab' AND `enabled` = 1 ORDER BY `zz_plugins`.`order` DESC");
foreach ($plugins as $plugin) { foreach ($plugins as $plugin) {
// Badge count per record plugin // Badge count per record plugin
$count = 0; $count = 0;
@ -652,7 +652,7 @@ if (!empty($messages['error'])) {
foreach ($messages['error'] as $value) { foreach ($messages['error'] as $value) {
echo ' echo '
<div class="alert alert-danger push"> <div class="alert alert-danger push">
<h4><i class="icon fa fa fa-ban"></i> '.tr("Errore").'</h4> <h4><i class="icon fa fa fa-ban"></i> '.tr('Errore').'</h4>
'.$value.' '.$value.'
</div>'; </div>';
} }
@ -663,7 +663,7 @@ if (!empty($messages['warning'])) {
foreach ($messages['warning'] as $value) { foreach ($messages['warning'] as $value) {
echo ' echo '
<div class="alert alert-warning push"> <div class="alert alert-warning push">
<h4><i class="icon fa fa-warning"></i> '.tr("Attenzione").'</h4> <h4><i class="icon fa fa-warning"></i> '.tr('Attenzione').'</h4>
'.$value.' '.$value.'
</div>'; </div>';
} }
@ -685,8 +685,8 @@ if ($free_space < ($space_limit * (1024 ** 3))) {
<i class="fa fa-warning"></i> '.tr('Spazio in esaurimento').' <i class="fa fa-warning"></i> '.tr('Spazio in esaurimento').'
</h4> </h4>
<p>'.tr('Lo spazio a disposizione del gestionale è in esaurimento: sono al momento disponibili _TOT_', [ <p>'.tr('Lo spazio a disposizione del gestionale è in esaurimento: sono al momento disponibili _TOT_', [
'_TOT_' => FileSystem::formatBytes($free_space), '_TOT_' => FileSystem::formatBytes($free_space),
]).'.</p> ]).'.</p>
<p>'.tr('Questo può risultare un serio problema per la continuità di funzionamento del software, poiché le operazioni più espansive che richiedono spazio di archiviazione possono causare malfunzionamenti imprevisti').'. '.tr('Ad esempio, le attività di backup, caricamento di allegati o anche l\'utilizzo normale del gestionale potrebbero rendere i dati inaffidabili, provocando pertanto una perdita delle informazioni salvate').'.</p> <p>'.tr('Questo può risultare un serio problema per la continuità di funzionamento del software, poiché le operazioni più espansive che richiedono spazio di archiviazione possono causare malfunzionamenti imprevisti').'. '.tr('Ad esempio, le attività di backup, caricamento di allegati o anche l\'utilizzo normale del gestionale potrebbero rendere i dati inaffidabili, provocando pertanto una perdita delle informazioni salvate').'.</p>
<p>'.tr('Contatta gli amministratori di sistema per risolvere al più presto il problema').'.</p> <p>'.tr('Contatta gli amministratori di sistema per risolvere al più presto il problema').'.</p>
</div>'; </div>';

View File

@ -327,11 +327,10 @@ function getPrezzoConsigliato($id_anagrafica, $direzione, $id_articolo, $riga =
/** /**
* Funzione PHP che controlla se un campo "cellulare" contiene già un prefisso telefonico: * Funzione PHP che controlla se un campo "cellulare" contiene già un prefisso telefonico:
* *
* @return boolean * @return bool
*/ */
function checkPrefix($cellulare)
function checkPrefix($cellulare) { {
// Array di prefissi telefonici da controllare // Array di prefissi telefonici da controllare
$internationalPrefixes = ['+1', '+44', '+49', '+33', '+39']; // Esempi di prefissi $internationalPrefixes = ['+1', '+44', '+49', '+33', '+39']; // Esempi di prefissi
@ -341,39 +340,40 @@ function checkPrefix($cellulare) {
return true; // Un prefisso è già presente return true; // Un prefisso è già presente
} }
} }
return false; // Nessun prefisso trovato return false; // Nessun prefisso trovato
} }
/** /**
* Funzione PHP che dato id_modulo restituisce un array contenente tutti i valori di "search_" per quel modulo * Funzione PHP che dato id_modulo restituisce un array contenente tutti i valori di "search_" per quel modulo.
* *
* @param int $id_module * @param int $id_module
* *
* @return array * @return array
*/ */
function getSearchValues($id_module) { function getSearchValues($id_module)
{
$result = []; $result = [];
if(isset($_SESSION['module_'.$id_module])) { if (isset($_SESSION['module_'.$id_module])) {
// Itera su tutti i valori // Itera su tutti i valori
foreach($_SESSION['module_'.$id_module] as $key => $value) { foreach ($_SESSION['module_'.$id_module] as $key => $value) {
// Controlla se la chiave inizia con "search_" // Controlla se la chiave inizia con "search_"
if (!empty($value) && string_starts_with($key, 'search_')) { if (!empty($value) && string_starts_with($key, 'search_')) {
$result[str_replace(["search_", "-"], ["", " "], $key)] = $value; $result[str_replace(['search_', '-'], ['', ' '], $key)] = $value;
} }
} }
} }
return $result; return $result;
} }
/** /**
* Funzione PHP che controlla se l'articolo ha una distinta * Funzione PHP che controlla se l'articolo ha una distinta.
* *
* @param int $id_articolo * @param int $id_articolo
* *
* @return boolean * @return bool
*/ */
function hasArticoliFiglio($id_articolo) function hasArticoliFiglio($id_articolo)
{ {
@ -382,4 +382,4 @@ function hasArticoliFiglio($id_articolo)
} else { } else {
return false; return false;
} }
} }

View File

@ -17,8 +17,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use Modules\Emails\Template;
use Models\Module; use Models\Module;
use Modules\Emails\Template;
include_once __DIR__.'/core.php'; include_once __DIR__.'/core.php';
@ -79,7 +79,7 @@ if (sizeof($campi_mancanti) > 0) {
echo ' echo '
<div class="alert alert-warning"> <div class="alert alert-warning">
<i class="fa fa-warning"></i> '.tr("Prima di procedere all'invio completa: _VALUES_", [ <i class="fa fa-warning"></i> '.tr("Prima di procedere all'invio completa: _VALUES_", [
'_VALUES_' => '<b>'.implode(', ', $campi_mancanti).'</b>', '_VALUES_' => '<b>'.implode(', ', $campi_mancanti).'</b>',
]).'<br/> ]).'<br/>
'.Modules::link('Account email', $smtp['id'], tr('Vai alla scheda account email'), null).' '.Modules::link('Account email', $smtp['id'], tr('Vai alla scheda account email'), null).'
</div>'; </div>';
@ -151,7 +151,7 @@ echo '
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "multiple": "1", "label": "'.tr('Stampe').'", "name": "prints[]", "value": "'.implode(',', $selected).'", "values": "query=SELECT `zz_prints`.`id`, `title` AS text FROM `zz_prints` LEFT JOIN `zz_prints_lang` ON (`zz_prints`.`id` = `zz_prints_lang`.`id_record` AND `zz_prints_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE `id_module` = '.prepare($id_module).' AND `enabled`=1 AND `is_record`=1", "link": "stampa" ]} {[ "type": "select", "multiple": "1", "label": "'.tr('Stampe').'", "name": "prints[]", "value": "'.implode(',', $selected).'", "values": "query=SELECT `zz_prints`.`id`, `title` AS text FROM `zz_prints` LEFT JOIN `zz_prints_lang` ON (`zz_prints`.`id` = `zz_prints_lang`.`id_record` AND `zz_prints_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `id_module` = '.prepare($id_module).' AND `enabled`=1 AND `is_record`=1", "link": "stampa" ]}
</div>'; </div>';
$uploads = []; $uploads = [];

View File

@ -23,11 +23,10 @@ use Modules\FileAdapters\FileAdapter;
switch (filter('op')) { switch (filter('op')) {
case 'add': case 'add':
$adapter = new FileAdapter(); $adapter = new FileAdapter();
$adapter->setTranslation('name', post('name')); $adapter->setTranslation('name', post('name'));
$adapter->class = "\\Modules\\FileAdapters\\Adapters\\".post('class'); $adapter->class = '\\Modules\\FileAdapters\\Adapters\\'.post('class');
$adapter->save(); $adapter->save();
@ -38,9 +37,8 @@ switch (filter('op')) {
break; break;
case 'update': case 'update':
$adapter->setTranslation('name', post('name')); $adapter->setTranslation('name', post('name'));
$adapter->class = "\\Modules\\FileAdapters\\Adapters\\".post('class'); $adapter->class = '\\Modules\\FileAdapters\\Adapters\\'.post('class');
$adapter->options = post('options'); $adapter->options = post('options');
$adapter->is_default = post('is_default'); $adapter->is_default = post('is_default');
@ -49,10 +47,9 @@ switch (filter('op')) {
flash()->info(tr('Adattatore modificato correttamente!')); flash()->info(tr('Adattatore modificato correttamente!'));
break; break;
case 'delete':
case 'delete':
$adapter->delete(); $adapter->delete();
break; break;
} }

View File

@ -30,7 +30,7 @@ include_once __DIR__.'/../../core.php';
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "<?php echo tr('Tipo archiviazione'); ?>", "name": "class", "values": "list=\"LocalAdapter\":\"<?=tr('Archiviazione locale')?>\",\"FTPAdapter\":\"<?=tr('Archiviazione FTP')?>\"", "required": 1 ]} {[ "type": "select", "label": "<?php echo tr('Tipo archiviazione'); ?>", "name": "class", "values": "list=\"LocalAdapter\":\"<?php echo tr('Archiviazione locale'); ?>\",\"FTPAdapter\":\"<?php echo tr('Archiviazione FTP'); ?>\"", "required": 1 ]}
</div> </div>
</div> </div>

View File

@ -30,7 +30,7 @@ include_once __DIR__.'/../../core.php';
</div> </div>
<div class="col-md-5"> <div class="col-md-5">
{[ "type": "select", "label": "<?php echo tr('Tipo archiviazione'); ?>", "name": "class", "value": "<?=explode('\\', $record["class"])[4]?>", "values": "list=\"LocalAdapter\":\"Archiviazione locale\",\"FTPAdapter\":\"Archiviazione FTP\"", "required": 1, "disabled": "1" ]} {[ "type": "select", "label": "<?php echo tr('Tipo archiviazione'); ?>", "name": "class", "value": "<?php echo explode('\\', $record['class'])[4]; ?>", "values": "list=\"LocalAdapter\":\"Archiviazione locale\",\"FTPAdapter\":\"Archiviazione FTP\"", "required": 1, "disabled": "1" ]}
</div> </div>
<div class="col-md-2"> <div class="col-md-2">
@ -49,27 +49,26 @@ include_once __DIR__.'/../../core.php';
$rs_files = Models\Upload::where('id_adapter', $record['id'])->get(); $rs_files = Models\Upload::where('id_adapter', $record['id'])->get();
if(sizeof($rs_files)>0) { if (sizeof($rs_files) > 0) {
echo ' echo '
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<div class="alert alert-warning">L\'adattatore non può essere eliminato perchè uno o più file sono collegati.</div> <div class="alert alert-warning">L\'adattatore non può essere eliminato perchè uno o più file sono collegati.</div>
</div> </div>
</div>'; </div>';
} elseif ($adapter->is_default && $adapter->can_delete) {
}else if($adapter->is_default && $adapter->can_delete){ echo '
echo '
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<div class="alert alert-warning">L\'adattatore non può essere eliminato.</div> <div class="alert alert-warning">L\'adattatore non può essere eliminato.</div>
</div> </div>
</div>'; </div>';
}else{ } else {
echo ' echo '
<a class="btn btn-danger ask" data-backto="record-list"> <a class="btn btn-danger ask" data-backto="record-list">
<i id ="elimina" class="fa fa-trash"></i> <?php echo tr(\'Elimina\'); ?> <i id ="elimina" class="fa fa-trash"></i> <?php echo tr(\'Elimina\'); ?>
</a>'; </a>';
} }
?> ?>
</form> </form>

View File

@ -25,4 +25,4 @@ if (isset($id_record)) {
$adapter = FileAdapter::find($id_record); $adapter = FileAdapter::find($id_record);
$record = $dbo->fetchOne('SELECT * FROM `zz_storage_adapters` WHERE `id`='.prepare($id_record)); $record = $dbo->fetchOne('SELECT * FROM `zz_storage_adapters` WHERE `id`='.prepare($id_record));
} }

View File

@ -22,13 +22,12 @@ namespace Modules\FileAdapters\Adapters;
use League\Flysystem\Ftp\FTPAdapter as OriginalAdapter; use League\Flysystem\Ftp\FTPAdapter as OriginalAdapter;
use League\Flysystem\Ftp\FtpConnectionOptions; use League\Flysystem\Ftp\FtpConnectionOptions;
class FTPAdapter extends OriginalAdapter { class FTPAdapter extends OriginalAdapter
{
public function __construct( $options ){ public function __construct($options)
{
$options = json_decode($options, 1); $options = json_decode($options, 1);
parent::__construct(FtpConnectionOptions::fromArray($options)); parent::__construct(FtpConnectionOptions::fromArray($options));
} }
} }

View File

@ -21,13 +21,12 @@ namespace Modules\FileAdapters\Adapters;
use League\Flysystem\Local\LocalFilesystemAdapter as OriginalAdapter; use League\Flysystem\Local\LocalFilesystemAdapter as OriginalAdapter;
class LocalAdapter extends OriginalAdapter { class LocalAdapter extends OriginalAdapter
{
public function __construct( $options ){ public function __construct($options)
{
$options = json_decode($options); $options = json_decode($options);
parent::__construct(base_dir()."/".$options->directory); parent::__construct(base_dir().'/'.$options->directory);
} }
} }

View File

@ -37,9 +37,9 @@ class FileAdapter extends Model
return true; return true;
} }
public function setIsDefaultAttribute($valore){ public function setIsDefaultAttribute($valore)
{
self::getAll()->where('id', '!=', $this->id)->each(function($item){ self::getAll()->where('id', '!=', $this->id)->each(function ($item) {
$item->attributes['is_default'] = false; $item->attributes['is_default'] = false;
$item->save(); $item->save();
}); });
@ -47,15 +47,13 @@ class FileAdapter extends Model
$this->attributes['is_default'] = $valore; $this->attributes['is_default'] = $valore;
} }
public static function getDefaultConnector(){ public static function getDefaultConnector()
{
return self::where('is_default', 1)->first(); return self::where('is_default', 1)->first();
} }
public static function getLocalConnector(){ public static function getLocalConnector()
{
return self::where('is_local', 1)->first(); return self::where('is_local', 1)->first();
} }
}
}

View File

@ -23,7 +23,6 @@ use League\Flysystem\Filesystem;
class OSMFilesystem extends Filesystem class OSMFilesystem extends Filesystem
{ {
/** @var array Elenco delle tipologie di file pericolose */ /** @var array Elenco delle tipologie di file pericolose */
protected static $not_allowed_types = [ protected static $not_allowed_types = [
'php' => 'application/php', 'php' => 'application/php',
@ -33,9 +32,9 @@ class OSMFilesystem extends Filesystem
'htm' => 'text/html', 'htm' => 'text/html',
]; ];
public function upload($directory, $filename, $contents){ public function upload($directory, $filename, $contents)
{
//Verifico se l'esensione non è consentita // Verifico se l'esensione non è consentita
$extension = pathinfo($filename, PATHINFO_EXTENSION); $extension = pathinfo($filename, PATHINFO_EXTENSION);
$extension = strtolower($extension); $extension = strtolower($extension);
@ -43,14 +42,16 @@ class OSMFilesystem extends Filesystem
$allowed = self::isSupportedType($extension); $allowed = self::isSupportedType($extension);
if (!$allowed) { if (!$allowed) {
flash()->error(tr('Estensione non supportata!')); flash()->error(tr('Estensione non supportata!'));
return false; return false;
} }
if(!$this->directoryExists($directory)){ if (!$this->directoryExists($directory)) {
try{ try {
$this->createDirectory($directory); $this->createDirectory($directory);
}catch(\Exception $e){ } catch (\Exception $e) {
flash()->error(tr('Impossibile creare la cartella controllare i permessi!')); flash()->error(tr('Impossibile creare la cartella controllare i permessi!'));
return false; return false;
} }
} }
@ -59,15 +60,13 @@ class OSMFilesystem extends Filesystem
$filename = random_string().'.'.$extension; $filename = random_string().'.'.$extension;
} while ($this->fileExists($directory.'/'.$filename)); } while ($this->fileExists($directory.'/'.$filename));
$this->write($directory.'/'.$filename, $contents);
$this->write($directory."/".$filename, $contents); return ['filename' => $filename, 'extension' => $extension];
return ["filename" => $filename, "extension" => $extension];
} }
protected static function isSupportedType($extension) protected static function isSupportedType($extension)
{ {
return !in_array(strtolower($extension), array_keys(self::$not_allowed_types)); return !in_array(strtolower($extension), array_keys(self::$not_allowed_types));
} }
}
}

View File

@ -82,8 +82,8 @@ if (!empty($errors)) {
<div class="alert alert-warning"> <div class="alert alert-warning">
<i class="fa fa-warning"></i> <i class="fa fa-warning"></i>
'.tr('Attenzione: questa funzionalità può presentare dei risultati falsamente positivi, sulla base del contenuto del file _FILE_', [ '.tr('Attenzione: questa funzionalità può presentare dei risultati falsamente positivi, sulla base del contenuto del file _FILE_', [
'_FILE_' => '<b>checksum.json</b>', '_FILE_' => '<b>checksum.json</b>',
]).'. ]).'.
</div> </div>
<table class="table table-bordered table-striped"> <table class="table table-bordered table-striped">
@ -108,7 +108,6 @@ if (!empty($errors)) {
</tbody> </tbody>
</table>'; </table>';
} else { } else {
OperationLog::setInfo('options', 'OK'); OperationLog::setInfo('options', 'OK');
echo ' echo '
@ -116,4 +115,4 @@ if (!empty($errors)) {
<i class="fa fa-info-circle"></i> '.tr('Nessun file con problemi di integrità').'. <i class="fa fa-info-circle"></i> '.tr('Nessun file con problemi di integrità').'.
</div>'; </div>';
} }
OperationLog::build('effettua_controllo'); OperationLog::build('effettua_controllo');

View File

@ -107,7 +107,7 @@ switch ($database->getType()) {
case 'MySQL': case 'MySQL':
$mysql_min_version = '5.7.0'; $mysql_min_version = '5.7.0';
$mysql_max_version = '5.7.99'; $mysql_max_version = '5.7.99';
$file_to_check_database = ((version_compare($database->getMySQLVersion(), $mysql_min_version, '>=') && version_compare($database->getMySQLVersion(), $mysql_max_version, '<=')) ? 'mysql_5_7.json' :'mysql.json'); $file_to_check_database = ((version_compare($database->getMySQLVersion(), $mysql_min_version, '>=') && version_compare($database->getMySQLVersion(), $mysql_max_version, '<=')) ? 'mysql_5_7.json' : 'mysql.json');
break; break;
default: default:
$file_to_check_database = 'mysql.json'; $file_to_check_database = 'mysql.json';
@ -121,8 +121,8 @@ if (empty($data)) {
echo ' echo '
<div class="alert alert-warning"> <div class="alert alert-warning">
<i class="fa fa-warning"></i> '.tr('Impossibile effettuare controlli di integrità in assenza del file _FILE_', [ <i class="fa fa-warning"></i> '.tr('Impossibile effettuare controlli di integrità in assenza del file _FILE_', [
'_FILE_' => '<b>'.$file_to_check_database.'</b>', '_FILE_' => '<b>'.$file_to_check_database.'</b>',
]).'. ]).'.
</div>'; </div>';
return; return;
@ -147,11 +147,10 @@ if (!empty($results) || !empty($results_settings) || !empty($results_settings_ad
<div class="alert alert-warning"> <div class="alert alert-warning">
<i class="fa fa-warning"></i> <i class="fa fa-warning"></i>
'.tr('Attenzione: questa funzionalità può presentare dei risultati falsamente positivi, sulla base del contenuto del file _FILE_ e la versione di _MYSQL_VERSION_ di _DBMS_TYPE_ rilevata a sistema', [ '.tr('Attenzione: questa funzionalità può presentare dei risultati falsamente positivi, sulla base del contenuto del file _FILE_ e la versione di _MYSQL_VERSION_ di _DBMS_TYPE_ rilevata a sistema', [
'_FILE_' => '<b>'.$file_to_check_database.'</b>', '_FILE_' => '<b>'.$file_to_check_database.'</b>',
'_MYSQL_VERSION_' => '<b>'.$database->getMySQLVersion().'</b>', '_MYSQL_VERSION_' => '<b>'.$database->getMySQLVersion().'</b>',
'_DBMS_TYPE_' => '<b>'.$database->getType().'</b>', '_DBMS_TYPE_' => '<b>'.$database->getType().'</b>',
]).'.
]).'.
</div>'; </div>';
foreach ($results as $table => $errors) { foreach ($results as $table => $errors) {

View File

@ -65,8 +65,8 @@ if (function_exists('customComponents')) {
<div class="alert alert-warning"> <div class="alert alert-warning">
<i class="fa fa-warning"></i> <i class="fa fa-warning"></i>
<b>'.tr('Attenzione!').'</b> '.tr('Ci sono delle tabelle non previste nella versione standard del gestionale: _LIST_', [ <b>'.tr('Attenzione!').'</b> '.tr('Ci sono delle tabelle non previste nella versione standard del gestionale: _LIST_', [
'_LIST_' => implode(', ', $tables), '_LIST_' => implode(', ', $tables),
]).'. ]).'.
</div>'; </div>';
} }
@ -116,7 +116,7 @@ if (!empty($alerts)) {
echo ' echo '
<div class="alert alert-info"> <div class="alert alert-info">
<p>'.tr('Devi modificare il seguenti parametri del file di configurazione PHP (_FILE_) per poter caricare gli aggiornamenti', [ <p>'.tr('Devi modificare il seguenti parametri del file di configurazione PHP (_FILE_) per poter caricare gli aggiornamenti', [
'_FILE_' => '<b>php.ini</b>', '_FILE_' => '<b>php.ini</b>',
]).':<ul>'; ]).':<ul>';
foreach ($alerts as $key => $value) { foreach ($alerts as $key => $value) {
echo ' echo '
@ -175,8 +175,8 @@ function search(button) {
} else { } else {
let beta_warning = data.includes("beta") ? "<br><b>'.tr('Attenzione: la versione individuata è in fase sperimentale, e pertanto può presentare diversi bug e malfunzionamenti').'.</b>" : ""; let beta_warning = data.includes("beta") ? "<br><b>'.tr('Attenzione: la versione individuata è in fase sperimentale, e pertanto può presentare diversi bug e malfunzionamenti').'.</b>" : "";
$("#update-search").html("'.tr("E' stato individuato un nuovo aggiornamento").': " + data + "." + beta_warning + "<br>'.tr('Scaricalo ora: _LINK_', [ $("#update-search").html("'.tr("E' stato individuato un nuovo aggiornamento").': " + data + "." + beta_warning + "<br>'.tr('Scaricalo ora: _LINK_', [
'_LINK_' => "<a target='_blank' href='https://github.com/devcode-it/openstamanager/releases'>https://github.com/devcode-it/openstamanager/releases</a>", '_LINK_' => "<a target='_blank' href='https://github.com/devcode-it/openstamanager/releases'>https://github.com/devcode-it/openstamanager/releases</a>",
]).'"); ]).'");
} }
} }
}); });
@ -185,7 +185,7 @@ function search(button) {
<div class="row">'; <div class="row">';
//Verifiche di integrità // Verifiche di integrità
echo ' echo '
<div class="col-md-4"> <div class="col-md-4">
<div class="box box-primary"> <div class="box box-primary">
@ -210,7 +210,7 @@ echo '
</div> </div>
</div>'; </div>';
//Controllo automatico della presenza di aggiornamenti per il gestionale // Controllo automatico della presenza di aggiornamenti per il gestionale
echo ' echo '
<div class="col-md-4"> <div class="col-md-4">
@ -235,8 +235,7 @@ echo ' </div>
</div> </div>
</div>'; </div>';
// Form di caricamento aggiornamenti gestionale o moduli
//Form di caricamento aggiornamenti gestionale o moduli
echo ' echo '
<div class="col-md-4"> <div class="col-md-4">
<div class="box box-primary"> <div class="box box-primary">

View File

@ -103,8 +103,8 @@ if (!function_exists('customDatabase')) {
function customDatabase() function customDatabase()
{ {
$database = database(); $database = database();
$modules = $database->fetchArray("SELECT `name`, CONCAT('modules/', `directory`) AS directory FROM `zz_modules` LEFT JOIN `zz_modules_lang` ON (`zz_modules`.`id` = `zz_modules_lang`.`id_record` AND `zz_modules_lang`.`id_lang` = ".prepare(\Models\Locale::getDefault()->id).") WHERE `options2` != ''"); $modules = $database->fetchArray("SELECT `name`, CONCAT('modules/', `directory`) AS directory FROM `zz_modules` LEFT JOIN `zz_modules_lang` ON (`zz_modules`.`id` = `zz_modules_lang`.`id_record` AND `zz_modules_lang`.`id_lang` = ".prepare(Models\Locale::getDefault()->id).") WHERE `options2` != ''");
$plugins = $database->fetchArray("SELECT `name`, CONCAT('plugins/', `directory`) AS directory FROM `zz_plugins` LEFT JOIN `zz_plugins_lang` ON (`zz_plugins`.`id` = `zz_plugins_lang`.`id_record` AND `zz_plugins_lang`.`id_lang` = ".prepare(\Models\Locale::getDefault()->id).") WHERE `options2` != ''"); $plugins = $database->fetchArray("SELECT `name`, CONCAT('plugins/', `directory`) AS directory FROM `zz_plugins` LEFT JOIN `zz_plugins_lang` ON (`zz_plugins`.`id` = `zz_plugins_lang`.`id_record` AND `zz_plugins_lang`.`id_lang` = ".prepare(Models\Locale::getDefault()->id).") WHERE `options2` != ''");
$results = array_merge($modules, $plugins); $results = array_merge($modules, $plugins);

View File

@ -20,7 +20,7 @@
namespace Modules\Aggiornamenti\Controlli; namespace Modules\Aggiornamenti\Controlli;
use Models\Module; use Models\Module;
use Models\View;
class ColonneDuplicateViste extends Controllo class ColonneDuplicateViste extends Controllo
{ {
public function getName() public function getName()
@ -36,7 +36,7 @@ class ColonneDuplicateViste extends Controllo
public function check() public function check()
{ {
$duplicati = database()->fetchArray('SELECT `id_module`, `name` FROM `zz_views` LEFT JOIN `zz_views_lang` ON (`zz_views`.`id` = `zz_views_lang`.`id_record` AND `zz_views_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') GROUP BY `id_module`, `name` HAVING COUNT(`name`) > 1'); $duplicati = database()->fetchArray('SELECT `id_module`, `name` FROM `zz_views` LEFT JOIN `zz_views_lang` ON (`zz_views`.`id` = `zz_views_lang`.`id_record` AND `zz_views_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') GROUP BY `id_module`, `name` HAVING COUNT(`name`) > 1');
foreach ($duplicati as $colonna) { foreach ($duplicati as $colonna) {
$modulo = Module::find($colonna['id_module']); $modulo = Module::find($colonna['id_module']);

View File

@ -19,9 +19,9 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
use Util\Zip;
use Models\Module; use Models\Module;
use Models\Plugin; use Models\Plugin;
use Util\Zip;
if (!setting('Attiva aggiornamenti')) { if (!setting('Attiva aggiornamenti')) {
exit(tr('Accesso negato')); exit(tr('Accesso negato'));
@ -92,7 +92,7 @@ if (file_exists($extraction_dir.'/VERSION')) {
'name' => $info['name'], 'name' => $info['name'],
'title' => !empty($info['title']) ? $info['title'] : $info['name'], 'title' => !empty($info['title']) ? $info['title'] : $info['name'],
'id_record' => $id_record, 'id_record' => $id_record,
'id_lang' => \Models\Locale::getDefault()->id, 'id_lang' => Models\Locale::getDefault()->id,
])); ]));
flash()->error(tr('Installazione completata!')); flash()->error(tr('Installazione completata!'));
@ -158,7 +158,7 @@ if (file_exists($extraction_dir.'/VERSION')) {
'name' => $info['name'], 'name' => $info['name'],
'title' => !empty($info['title']) ? $info['title'] : $info['name'], 'title' => !empty($info['title']) ? $info['title'] : $info['name'],
'id_record' => $id_record, 'id_record' => $id_record,
'id_lang' => \Models\Locale::getDefault()->id, 'id_lang' => Models\Locale::getDefault()->id,
])); ]));
flash()->error(tr('Installazione completata!')); flash()->error(tr('Installazione completata!'));
} else { } else {

View File

@ -120,8 +120,8 @@ switch (post('op')) {
])); ]));
// Aggiorno il codice anagrafica se non è già presente, altrimenti lo ignoro // Aggiorno il codice anagrafica se non è già presente, altrimenti lo ignoro
$codice = $anagrafica->codice; $codice = $anagrafica->codice;
if (!empty($codice)) { if (!empty($codice)) {
$anagrafiche_codice = Anagrafica::where('codice', $codice) $anagrafiche_codice = Anagrafica::where('codice', $codice)
->where('idanagrafica', '!=', $anagrafica->id) ->where('idanagrafica', '!=', $anagrafica->id)
->get(); ->get();
@ -193,7 +193,7 @@ switch (post('op')) {
break; break;
case 'add': case 'add':
$idtipoanagrafica = (array)post('idtipoanagrafica'); $idtipoanagrafica = (array) post('idtipoanagrafica');
$ragione_sociale = post('ragione_sociale'); $ragione_sociale = post('ragione_sociale');
$anagrafica = Anagrafica::build($ragione_sociale, post('nome'), post('cognome'), $idtipoanagrafica); $anagrafica = Anagrafica::build($ragione_sociale, post('nome'), post('cognome'), $idtipoanagrafica);
@ -203,7 +203,7 @@ switch (post('op')) {
// Lettura tipologia dell'utente loggato // Lettura tipologia dell'utente loggato
$agente_is_logged = false; $agente_is_logged = false;
if (!empty($user['idanagrafica'])) { if (!empty($user['idanagrafica'])) {
$rs = $dbo->fetchArray('SELECT `name` AS descrizione FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche`.`id` = `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` WHERE `idanagrafica` = '.prepare($user['idanagrafica'])); $rs = $dbo->fetchArray('SELECT `name` AS descrizione FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche`.`id` = `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` WHERE `idanagrafica` = '.prepare($user['idanagrafica']));
for ($i = 0; $i < count($rs); ++$i) { for ($i = 0; $i < count($rs); ++$i) {
if ($rs[$i]['descrizione'] == 'Agente') { if ($rs[$i]['descrizione'] == 'Agente') {

View File

@ -24,7 +24,7 @@ include_once __DIR__.'/../../core.php';
$id_nazione_italia = (new Nazione())->getByField('name', 'Italia'); $id_nazione_italia = (new Nazione())->getByField('name', 'Italia');
$tipo = get('tipoanagrafica'); $tipo = get('tipoanagrafica');
if (!empty($tipo)) { if (!empty($tipo)) {
$rs = $dbo->fetchArray('SELECT `an_tipianagrafiche`.`id`, `an_tipianagrafiche_lang`.`name` as descrizione FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE `name`='.prepare($tipo)); $rs = $dbo->fetchArray('SELECT `an_tipianagrafiche`.`id`, `an_tipianagrafiche_lang`.`name` as descrizione FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `name`='.prepare($tipo));
$idtipoanagrafica = $rs[0]['id']; $idtipoanagrafica = $rs[0]['id'];
} }
@ -39,7 +39,7 @@ echo '
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "'.tr('Tipo di anagrafica').'", "name": "idtipoanagrafica[]", "id": "idtipoanagrafica_add", "multiple": "1", "required": 1, "values": "query=SELECT `an_tipianagrafiche`.`id`, `name` as descrizione FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE `an_tipianagrafiche`.`id` NOT IN (SELECT DISTINCT(`x`.`idtipoanagrafica`) FROM `an_tipianagrafiche_anagrafiche` x INNER JOIN `an_tipianagrafiche` t ON `x`.`idtipoanagrafica` = `t`.`id` LEFT JOIN `an_tipianagrafiche_lang` ON (`t`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `x`.`idanagrafica` WHERE `an_tipianagrafiche_lang`.`name` = \'Azienda\' AND `deleted_at` IS NULL) ORDER BY `name`", "value": "'.(isset($idtipoanagrafica) ? $idtipoanagrafica : null).'", "readonly": '.(!empty(get('readonly_tipo')) ? 1 : 0).' ]} {[ "type": "select", "label": "'.tr('Tipo di anagrafica').'", "name": "idtipoanagrafica[]", "id": "idtipoanagrafica_add", "multiple": "1", "required": 1, "values": "query=SELECT `an_tipianagrafiche`.`id`, `name` as descrizione FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `an_tipianagrafiche`.`id` NOT IN (SELECT DISTINCT(`x`.`idtipoanagrafica`) FROM `an_tipianagrafiche_anagrafiche` x INNER JOIN `an_tipianagrafiche` t ON `x`.`idtipoanagrafica` = `t`.`id` LEFT JOIN `an_tipianagrafiche_lang` ON (`t`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `x`.`idanagrafica` WHERE `an_tipianagrafiche_lang`.`name` = \'Azienda\' AND `deleted_at` IS NULL) ORDER BY `name`", "value": "'.(isset($idtipoanagrafica) ? $idtipoanagrafica : null).'", "readonly": '.(!empty(get('readonly_tipo')) ? 1 : 0).' ]}
</div> </div>
</div> </div>
@ -99,7 +99,7 @@ echo '
<div class="row"> <div class="row">
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "select", "label": "'.tr('Nazione').'", "name": "id_nazione", "id": "id_nazione_add", "values": "query=SELECT `an_nazioni`.`id` AS id, CONCAT_WS(\' - \', `iso2`, `an_nazioni_lang`.`name`) AS descrizione, `iso2` FROM `an_nazioni` LEFT JOIN `an_nazioni_lang` ON (`an_nazioni`.`id` = `an_nazioni_lang`.`id_record` AND `an_nazioni_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') ORDER BY CASE WHEN `iso2`=\'IT\' THEN -1 ELSE `iso2` END", "value": "'.$id_nazione_italia.'" ]} {[ "type": "select", "label": "'.tr('Nazione').'", "name": "id_nazione", "id": "id_nazione_add", "values": "query=SELECT `an_nazioni`.`id` AS id, CONCAT_WS(\' - \', `iso2`, `an_nazioni_lang`.`name`) AS descrizione, `iso2` FROM `an_nazioni` LEFT JOIN `an_nazioni_lang` ON (`an_nazioni`.`id` = `an_nazioni_lang`.`id_record` AND `an_nazioni_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') ORDER BY CASE WHEN `iso2`=\'IT\' THEN -1 ELSE `iso2` END", "value": "'.$id_nazione_italia.'" ]}
</div> </div>
<div class="col-md-4"> <div class="col-md-4">

View File

@ -108,7 +108,7 @@ foreach ($fields as $name => $value) {
$rs = $dbo->fetchArray($query); $rs = $dbo->fetchArray($query);
$plugin = $dbo->fetchArray("SELECT `zz_plugins`.`id` FROM `zz_plugins` LEFT JOIN `zz_plugins_lang` ON (`zz_plugins`.`id` = `zz_plugins_lang`.`id_record` AND `zz_plugins_lang`.`id_lang` = ".prepare(\Models\Locale::getDefault()->id).") WHERE `name`='Referenti'"); $plugin = $dbo->fetchArray('SELECT `zz_plugins`.`id` FROM `zz_plugins` LEFT JOIN `zz_plugins_lang` ON (`zz_plugins`.`id` = `zz_plugins_lang`.`id_record` AND `zz_plugins_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).") WHERE `name`='Referenti'");
foreach ($rs as $r) { foreach ($rs as $r) {
$result = []; $result = [];

View File

@ -44,21 +44,21 @@ switch ($resource) {
`an_anagrafiche` `an_anagrafiche`
INNER JOIN (`an_tipianagrafiche_anagrafiche` INNER JOIN (`an_tipianagrafiche_anagrafiche`
INNER JOIN `an_tipianagrafiche`ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id` INNER JOIN `an_tipianagrafiche`ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id`
LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = ".prepare(\Models\Locale::getDefault()->id).")) LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = ".prepare(Models\Locale::getDefault()->id).'))
ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` LEFT JOIN `in_tipiintervento` ON `an_anagrafiche`.`idtipointervento_default`=`in_tipiintervento`.`id` LEFT JOIN `in_tipiintervento_lang` ON (`in_tipiintervento`.`id`=`in_tipiintervento_lang`.`id_record` AND `in_tipiintervento_lang`.`id_lang`=".prepare(\Models\Locale::getDefault()->id).") ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` LEFT JOIN `in_tipiintervento` ON `an_anagrafiche`.`idtipointervento_default`=`in_tipiintervento`.`id` LEFT JOIN `in_tipiintervento_lang` ON (`in_tipiintervento`.`id`=`in_tipiintervento_lang`.`id_record` AND `in_tipiintervento_lang`.`id_lang`='.prepare(Models\Locale::getDefault()->id).')
LEFT JOIN `an_relazioni` ON `an_anagrafiche`.`idrelazione`=`an_relazioni`.`id` LEFT JOIN `an_relazioni` ON `an_anagrafiche`.`idrelazione`=`an_relazioni`.`id`
LEFT JOIN `an_relazioni_lang` ON (`an_relazioni`.`id`=`an_relazioni_lang`.`id_record` AND `an_relazioni_lang`.`id_lang`= ".prepare(\Models\Locale::getDefault()->id).") LEFT JOIN `an_relazioni_lang` ON (`an_relazioni`.`id`=`an_relazioni_lang`.`id_record` AND `an_relazioni_lang`.`id_lang`= '.prepare(Models\Locale::getDefault()->id).")
LEFT JOIN LEFT JOIN
(SELECT `co_contratti`.`id`, `idanagrafica`, CONCAT('Contratto ', `numero`, ' del ', DATE_FORMAT(`data_bozza`, '%d/%m/%Y'), ' - ', `co_contratti`.`nome`, ' [', `co_staticontratti_lang`.`name` , ']') AS descrizione FROM `co_contratti` LEFT JOIN `co_staticontratti` ON `co_contratti`.`idstato`=`co_staticontratti`.`id` LEFT JOIN `co_staticontratti_lang` ON (`co_staticontratti`.`id`=`co_staticontratti_lang`.`id_record` AND `co_staticontratti_lang`.`id_lang`= ".prepare(\Models\Locale::getDefault()->id).") WHERE `co_contratti`.`predefined`=1 AND `is_pianificabile`=1) AS contratto (SELECT `co_contratti`.`id`, `idanagrafica`, CONCAT('Contratto ', `numero`, ' del ', DATE_FORMAT(`data_bozza`, '%d/%m/%Y'), ' - ', `co_contratti`.`nome`, ' [', `co_staticontratti_lang`.`name` , ']') AS descrizione FROM `co_contratti` LEFT JOIN `co_staticontratti` ON `co_contratti`.`idstato`=`co_staticontratti`.`id` LEFT JOIN `co_staticontratti_lang` ON (`co_staticontratti`.`id`=`co_staticontratti_lang`.`id_record` AND `co_staticontratti_lang`.`id_lang`= ".prepare(Models\Locale::getDefault()->id).') WHERE `co_contratti`.`predefined`=1 AND `is_pianificabile`=1) AS contratto
ON `an_anagrafiche`.`idanagrafica`=`contratto`.`idanagrafica` ON `an_anagrafiche`.`idanagrafica`=`contratto`.`idanagrafica`
LEFT JOIN `co_pagamenti` ON `an_anagrafiche`.`idpagamento_vendite`=`co_pagamenti`.`id` LEFT JOIN `co_pagamenti` ON `an_anagrafiche`.`idpagamento_vendite`=`co_pagamenti`.`id`
LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti`.`id`=`co_pagamenti_lang`.`id_record` AND `co_pagamenti_lang`.`id_lang`= ".prepare(\Models\Locale::getDefault()->id).") LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti`.`id`=`co_pagamenti_lang`.`id_record` AND `co_pagamenti_lang`.`id_lang`= '.prepare(Models\Locale::getDefault()->id).')
LEFT JOIN LEFT JOIN
`co_banche` banca_vendite `co_banche` banca_vendite
ON `co_pagamenti`.`idconto_vendite` = `banca_vendite`.`id_pianodeiconti3` AND `banca_vendite`.`id_anagrafica` = ".prepare($id_azienda)." AND `banca_vendite`.`deleted_at` IS NULL AND `banca_vendite`.`predefined` = 1 ON `co_pagamenti`.`idconto_vendite` = `banca_vendite`.`id_pianodeiconti3` AND `banca_vendite`.`id_anagrafica` = '.prepare($id_azienda).' AND `banca_vendite`.`deleted_at` IS NULL AND `banca_vendite`.`predefined` = 1
|where| |where|
ORDER BY ORDER BY
`ragione_sociale`"; `ragione_sociale`';
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = '`an_anagrafiche`.`idanagrafica`='.prepare($element); $filter[] = '`an_anagrafiche`.`idanagrafica`='.prepare($element);
@ -115,9 +115,9 @@ switch ($resource) {
INNER JOIN ( INNER JOIN (
`an_tipianagrafiche_anagrafiche` `an_tipianagrafiche_anagrafiche`
INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id` INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id`
LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = ".prepare(\Models\Locale::getDefault()->id).')) ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = ".prepare(Models\Locale::getDefault()->id).')) ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica`
LEFT JOIN `co_pagamenti` ON `an_anagrafiche`.`idpagamento_acquisti`=`co_pagamenti`.`id` LEFT JOIN `co_pagamenti` ON `an_anagrafiche`.`idpagamento_acquisti`=`co_pagamenti`.`id`
LEFT JOIN `co_pagamenti_lang` co_pagamenti_lang ON (`co_pagamenti`.`id` = `co_pagamenti_lang`.`id_record` AND `co_pagamenti_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).") LEFT JOIN `co_pagamenti_lang` co_pagamenti_lang ON (`co_pagamenti`.`id` = `co_pagamenti_lang`.`id_record` AND `co_pagamenti_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).")
LEFT JOIN `co_banche` banca_acquisti ON `co_pagamenti`.`idconto_acquisti` = `banca_acquisti`.`id_pianodeiconti3` AND `banca_acquisti`.`id_anagrafica` = '.prepare($id_azienda).' AND `banca_acquisti`.`deleted_at` IS NULL AND `banca_acquisti`.`predefined` = 1 LEFT JOIN `co_banche` banca_acquisti ON `co_pagamenti`.`idconto_acquisti` = `banca_acquisti`.`id_pianodeiconti3` AND `banca_acquisti`.`id_anagrafica` = '.prepare($id_azienda).' AND `banca_acquisti`.`deleted_at` IS NULL AND `banca_acquisti`.`predefined` = 1
|where| |where|
ORDER BY ORDER BY
@ -144,7 +144,7 @@ switch ($resource) {
break; break;
case 'vettori': case 'vettori':
$query = "SELECT `an_anagrafiche`.`idanagrafica` AS id, CONCAT(`ragione_sociale`, IF(`citta` IS NULL OR `citta` = '', '', CONCAT(' (', `citta`, ')')), IF(`an_anagrafiche`.`deleted_at` IS NULL, '', ' (".tr('eliminata').")'),' - ', `an_anagrafiche`.`codice`) AS descrizione, `idtipointervento_default` AS idtipointervento FROM `an_anagrafiche` INNER JOIN (`an_tipianagrafiche_anagrafiche` INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = ".prepare(\Models\Locale::getDefault()->id).')) ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` |where| ORDER BY `ragione_sociale`'; $query = "SELECT `an_anagrafiche`.`idanagrafica` AS id, CONCAT(`ragione_sociale`, IF(`citta` IS NULL OR `citta` = '', '', CONCAT(' (', `citta`, ')')), IF(`an_anagrafiche`.`deleted_at` IS NULL, '', ' (".tr('eliminata').")'),' - ', `an_anagrafiche`.`codice`) AS descrizione, `idtipointervento_default` AS idtipointervento FROM `an_anagrafiche` INNER JOIN (`an_tipianagrafiche_anagrafiche` INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = ".prepare(Models\Locale::getDefault()->id).')) ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` |where| ORDER BY `ragione_sociale`';
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = '`an_anagrafiche`.`idanagrafica`='.prepare($element); $filter[] = '`an_anagrafiche`.`idanagrafica`='.prepare($element);
@ -171,7 +171,7 @@ switch ($resource) {
* - idanagrafica * - idanagrafica
*/ */
case 'agenti': case 'agenti':
$query = "SELECT `an_anagrafiche`.`idanagrafica` AS id, CONCAT(`ragione_sociale`, IF(`citta` IS NULL OR `citta` = '', '', CONCAT(' (', `citta`, ')')), IF(`an_anagrafiche`.`deleted_at` IS NULL, '', ' (".tr('eliminata').")'),' - ', `an_anagrafiche`.`codice`) AS descrizione, `idtipointervento_default` FROM `an_anagrafiche` INNER JOIN (`an_tipianagrafiche_anagrafiche` INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = ".prepare(\Models\Locale::getDefault()->id).')) ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` |where| ORDER BY `ragione_sociale`'; $query = "SELECT `an_anagrafiche`.`idanagrafica` AS id, CONCAT(`ragione_sociale`, IF(`citta` IS NULL OR `citta` = '', '', CONCAT(' (', `citta`, ')')), IF(`an_anagrafiche`.`deleted_at` IS NULL, '', ' (".tr('eliminata').")'),' - ', `an_anagrafiche`.`codice`) AS descrizione, `idtipointervento_default` FROM `an_anagrafiche` INNER JOIN (`an_tipianagrafiche_anagrafiche` INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = ".prepare(Models\Locale::getDefault()->id).')) ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` |where| ORDER BY `ragione_sociale`';
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = '`an_anagrafiche`.`idanagrafica`='.prepare($element); $filter[] = '`an_anagrafiche`.`idanagrafica`='.prepare($element);
@ -209,7 +209,7 @@ switch ($resource) {
break; break;
case 'tecnici': case 'tecnici':
$query = "SELECT `an_anagrafiche`.`idanagrafica` AS id, CONCAT(`ragione_sociale`, IF(`citta` IS NULL OR `citta` = '', '', CONCAT(' (', `citta`, ')')), IF(`an_anagrafiche`.`deleted_at` IS NULL, '', ' (".tr('eliminata').")'),' - ', `an_anagrafiche`.`codice`) AS descrizione, `idtipointervento_default` FROM `an_anagrafiche` INNER JOIN (`an_tipianagrafiche_anagrafiche` INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = ".prepare(\Models\Locale::getDefault()->id).')) ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` |where| ORDER BY `ragione_sociale`'; $query = "SELECT `an_anagrafiche`.`idanagrafica` AS id, CONCAT(`ragione_sociale`, IF(`citta` IS NULL OR `citta` = '', '', CONCAT(' (', `citta`, ')')), IF(`an_anagrafiche`.`deleted_at` IS NULL, '', ' (".tr('eliminata').")'),' - ', `an_anagrafiche`.`codice`) AS descrizione, `idtipointervento_default` FROM `an_anagrafiche` INNER JOIN (`an_tipianagrafiche_anagrafiche` INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = ".prepare(Models\Locale::getDefault()->id).')) ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` |where| ORDER BY `ragione_sociale`';
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = '`an_anagrafiche`.`idanagrafica`='.prepare($element); $filter[] = '`an_anagrafiche`.`idanagrafica`='.prepare($element);
@ -241,7 +241,7 @@ switch ($resource) {
break; break;
case 'clienti_fornitori': case 'clienti_fornitori':
$query = "SELECT `an_anagrafiche`.`idanagrafica` AS id, CONCAT_WS('', `ragione_sociale`, IF(`citta` !='' OR `provincia` != '', CONCAT(' (', `citta`, IF(`provincia`!='', CONCAT(' ', `provincia`), ''), ')'), ''), IF(`an_anagrafiche`.`deleted_at` IS NULL, '', ' (".tr('eliminata').")'),' - ', `an_anagrafiche`.`codice`) AS descrizione, `an_tipianagrafiche_lang`.`name` AS optgroup, `idtipointervento_default`, `an_tipianagrafiche`.`id` as id_tipo FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = ".prepare(\Models\Locale::getDefault()->id).') INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche`.`id`=`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` |where| ORDER BY `optgroup` ASC, `ragione_sociale` ASC'; $query = "SELECT `an_anagrafiche`.`idanagrafica` AS id, CONCAT_WS('', `ragione_sociale`, IF(`citta` !='' OR `provincia` != '', CONCAT(' (', `citta`, IF(`provincia`!='', CONCAT(' ', `provincia`), ''), ')'), ''), IF(`an_anagrafiche`.`deleted_at` IS NULL, '', ' (".tr('eliminata').")'),' - ', `an_anagrafiche`.`codice`) AS descrizione, `an_tipianagrafiche_lang`.`name` AS optgroup, `idtipointervento_default`, `an_tipianagrafiche`.`id` as id_tipo FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = ".prepare(Models\Locale::getDefault()->id).') INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche`.`id`=`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` |where| ORDER BY `optgroup` ASC, `ragione_sociale` ASC';
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = '`an_anagrafiche`.`idanagrafica`='.prepare($element); $filter[] = '`an_anagrafiche`.`idanagrafica`='.prepare($element);
@ -250,7 +250,7 @@ switch ($resource) {
$where = []; $where = [];
if (empty($filter)) { if (empty($filter)) {
$where[] = '`an_anagrafiche`.`deleted_at` IS NULL'; $where[] = '`an_anagrafiche`.`deleted_at` IS NULL';
$where[] = '`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` IN (SELECT `an_tipianagrafiche`.`id` FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).") WHERE `name` = 'Cliente' OR `name` = 'Fornitore' OR `name` = 'Azienda')"; $where[] = '`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` IN (SELECT `an_tipianagrafiche`.`id` FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).") WHERE `name` = 'Cliente' OR `name` = 'Fornitore' OR `name` = 'Azienda')";
} }
if (!empty($search)) { if (!empty($search)) {
@ -291,7 +291,7 @@ switch ($resource) {
// Nota Bene: nel campo id viene specificato idtipoanagrafica-idanagrafica -> modulo Utenti e permessi, creazione nuovo utente // Nota Bene: nel campo id viene specificato idtipoanagrafica-idanagrafica -> modulo Utenti e permessi, creazione nuovo utente
case 'anagrafiche': case 'anagrafiche':
$query = "SELECT `an_anagrafiche`.`idanagrafica` AS id, CONCAT_WS('', `ragione_sociale`, IF(`citta` !='' OR `provincia` != '', CONCAT(' (', `citta`, IF(`provincia`!='', CONCAT(' ', `provincia`), ''), ')'), ''), IF(`an_anagrafiche`.`deleted_at` IS NULL, '', ' (".tr('eliminata').")'),' - ', `an_anagrafiche`.`codice`) AS descrizione, `an_tipianagrafiche_lang`.`name` AS optgroup FROM `an_anagrafiche` INNER JOIN (`an_tipianagrafiche_anagrafiche` INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = ".prepare(\Models\Locale::getDefault()->id).')) ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` |where| ORDER BY `optgroup` ASC, `ragione_sociale` ASC'; $query = "SELECT `an_anagrafiche`.`idanagrafica` AS id, CONCAT_WS('', `ragione_sociale`, IF(`citta` !='' OR `provincia` != '', CONCAT(' (', `citta`, IF(`provincia`!='', CONCAT(' ', `provincia`), ''), ')'), ''), IF(`an_anagrafiche`.`deleted_at` IS NULL, '', ' (".tr('eliminata').")'),' - ', `an_anagrafiche`.`codice`) AS descrizione, `an_tipianagrafiche_lang`.`name` AS optgroup FROM `an_anagrafiche` INNER JOIN (`an_tipianagrafiche_anagrafiche` INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = ".prepare(Models\Locale::getDefault()->id).')) ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` |where| ORDER BY `optgroup` ASC, `ragione_sociale` ASC';
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = '`an_anagrafiche`.`idanagrafica`='.prepare($element); $filter[] = '`an_anagrafiche`.`idanagrafica`='.prepare($element);
@ -427,7 +427,7 @@ switch ($resource) {
break; break;
case 'nazioni': case 'nazioni':
$query = 'SELECT `an_nazioni`.`id` AS id, `iso2`, CONCAT_WS(\' - \', `iso2`, `an_nazioni_lang`.`name`) AS descrizione FROM `an_nazioni` LEFT JOIN `an_nazioni_lang` ON (`an_nazioni`.`id` = `an_nazioni_lang`.`id_record` AND `an_nazioni_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') |where| ORDER BY CASE WHEN `iso2`=\'IT\' THEN -1 ELSE `iso2` END'; $query = 'SELECT `an_nazioni`.`id` AS id, `iso2`, CONCAT_WS(\' - \', `iso2`, `an_nazioni_lang`.`name`) AS descrizione FROM `an_nazioni` LEFT JOIN `an_nazioni_lang` ON (`an_nazioni`.`id` = `an_nazioni_lang`.`id_record` AND `an_nazioni_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') |where| ORDER BY CASE WHEN `iso2`=\'IT\' THEN -1 ELSE `iso2` END';
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = '`an_nazioni`.`id`='.prepare($element); $filter[] = '`an_nazioni`.`id`='.prepare($element);
@ -443,7 +443,7 @@ switch ($resource) {
case 'regioni': case 'regioni':
if (isset($superselect['id_nazione'])) { if (isset($superselect['id_nazione'])) {
$query = 'SELECT `an_regioni`.`id` AS id, `an_regioni`.`iso2`, CONCAT(CONCAT_WS(\' - \', `an_regioni`.`iso2`, `an_regioni_lang`.`name`), \' (\', `an_nazioni`.`iso2`, \')\') AS descrizione FROM `an_regioni` LEFT JOIN `an_regioni_lang` ON (`an_regioni`.`id` = `an_regioni_lang`.`id_record` AND `an_regioni_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') INNER JOIN `an_nazioni` ON `an_regioni`.`id_nazione` = `an_nazioni`.`id` |where| ORDER BY `an_regioni_lang`.`name`'; $query = 'SELECT `an_regioni`.`id` AS id, `an_regioni`.`iso2`, CONCAT(CONCAT_WS(\' - \', `an_regioni`.`iso2`, `an_regioni_lang`.`name`), \' (\', `an_nazioni`.`iso2`, \')\') AS descrizione FROM `an_regioni` LEFT JOIN `an_regioni_lang` ON (`an_regioni`.`id` = `an_regioni_lang`.`id_record` AND `an_regioni_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') INNER JOIN `an_nazioni` ON `an_regioni`.`id_nazione` = `an_nazioni`.`id` |where| ORDER BY `an_regioni_lang`.`name`';
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = '`an_regioni`.`id`='.prepare($element); $filter[] = '`an_regioni`.`id`='.prepare($element);
@ -460,7 +460,7 @@ switch ($resource) {
break; break;
case 'relazioni': case 'relazioni':
$query = "SELECT `an_relazioni`.`id`, CONCAT(`name`, IF(`an_relazioni`.`deleted_at` IS NULL, '', ' (".tr('eliminata').")')) AS descrizione, `colore` AS _bgcolor_ FROM `an_relazioni` LEFT JOIN `an_relazioni_lang` ON (`an_relazioni`.`id` = `an_relazioni_lang`.`id_record` AND `an_relazioni_lang`.`id_lang` = ".prepare(\Models\Locale::getDefault()->id).') |where| ORDER BY descrizione'; $query = "SELECT `an_relazioni`.`id`, CONCAT(`name`, IF(`an_relazioni`.`deleted_at` IS NULL, '', ' (".tr('eliminata').")')) AS descrizione, `colore` AS _bgcolor_ FROM `an_relazioni` LEFT JOIN `an_relazioni_lang` ON (`an_relazioni`.`id` = `an_relazioni_lang`.`id_record` AND `an_relazioni_lang`.`id_lang` = ".prepare(Models\Locale::getDefault()->id).') |where| ORDER BY descrizione';
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = '`an_relazioni`.`id`='.prepare($element); $filter[] = '`an_relazioni`.`id`='.prepare($element);
@ -477,7 +477,7 @@ switch ($resource) {
break; break;
case 'provenienze': case 'provenienze':
$query = 'SELECT `an_provenienze`.`id`, `an_provenienze_lang`.`name` as descrizione, `colore` AS bgcolor FROM `an_provenienze` LEFT JOIN `an_provenienze_lang` ON (`an_provenienze`.`id` = `an_provenienze_lang`.`id_record` AND `an_provenienze_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') |where| ORDER BY `descrizione`'; $query = 'SELECT `an_provenienze`.`id`, `an_provenienze_lang`.`name` as descrizione, `colore` AS bgcolor FROM `an_provenienze` LEFT JOIN `an_provenienze_lang` ON (`an_provenienze`.`id` = `an_provenienze_lang`.`id_record` AND `an_provenienze_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') |where| ORDER BY `descrizione`';
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = '`an_provenienze`.`id`='.prepare($element); $filter[] = '`an_provenienze`.`id`='.prepare($element);
@ -490,7 +490,7 @@ switch ($resource) {
break; break;
case 'settori': case 'settori':
$query = 'SELECT `an_settori`.`id`, `an_settori_lang`.`name` as descrizione FROM `an_settori` LEFT JOIN `an_settori_lang` ON (`an_settori`.`id` = `an_settori_lang`.`id_record` AND `an_settori_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') |where| ORDER BY `name`'; $query = 'SELECT `an_settori`.`id`, `an_settori_lang`.`name` as descrizione FROM `an_settori` LEFT JOIN `an_settori_lang` ON (`an_settori`.`id` = `an_settori_lang`.`id_record` AND `an_settori_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') |where| ORDER BY `name`';
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = '`an_settori`.`id`='.prepare($element); $filter[] = '`an_settori`.`id`='.prepare($element);

View File

@ -26,10 +26,10 @@ include_once __DIR__.'/../../core.php';
switch (post('op')) { switch (post('op')) {
case 'delete-bulk': case 'delete-bulk':
$id_tipo_azienda = $dbo->fetchArray('SELECT `an_tipianagrafiche`.`id` FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).") WHERE `name`='Azienda'")[0]['id']; $id_tipo_azienda = $dbo->fetchArray('SELECT `an_tipianagrafiche`.`id` FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).") WHERE `name`='Azienda'")[0]['id'];
foreach ($id_records as $id) { foreach ($id_records as $id) {
$anagrafica = $dbo->fetchArray('SELECT `an_tipianagrafiche`.`id` FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche`.`id`=`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` WHERE `idanagrafica`='.prepare($id)); $anagrafica = $dbo->fetchArray('SELECT `an_tipianagrafiche`.`id` FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche`.`id`=`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` WHERE `idanagrafica`='.prepare($id));
$tipi = array_column($anagrafica, 'idtipoanagrafica'); $tipi = array_column($anagrafica, 'idtipoanagrafica');
// Se l'anagrafica non è di tipo Azienda // Se l'anagrafica non è di tipo Azienda

View File

@ -17,8 +17,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use Models\Module;
use Models\Group; use Models\Group;
use Models\Module;
if (in_array($id_cliente, $tipi_anagrafica) or in_array($id_fornitore, $tipi_anagrafica)) { if (in_array($id_cliente, $tipi_anagrafica) or in_array($id_fornitore, $tipi_anagrafica)) {
echo ' echo '

View File

@ -18,10 +18,10 @@
*/ */
use Carbon\Carbon; use Carbon\Carbon;
use Modules\Anagrafiche\Anagrafica;
use Modules\Banche\Banca;
use Models\Module; use Models\Module;
use Models\Plugin; use Models\Plugin;
use Modules\Anagrafiche\Anagrafica;
use Modules\Banche\Banca;
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
@ -101,7 +101,7 @@ if (sizeof($problemi_anagrafica) > 0) {
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "select", "label": "<?php echo tr('Tipologia'); ?>", "name": "tipo", "values": "list=\"Azienda\": \"<?php echo tr('Azienda'); ?>\", \"Ente pubblico\": \"<?php echo tr('Ente pubblico'); ?>\" <?php echo ($anagrafica->isAzienda() ? "" : ',\"Privato\":\"'.tr("Privato").'\"' ); ?>", "value": "$tipo$", "placeholder": "<?php echo tr('Non specificato'); ?>" ]} {[ "type": "select", "label": "<?php echo tr('Tipologia'); ?>", "name": "tipo", "values": "list=\"Azienda\": \"<?php echo tr('Azienda'); ?>\", \"Ente pubblico\": \"<?php echo tr('Ente pubblico'); ?>\" <?php echo $anagrafica->isAzienda() ? '' : ',\"Privato\":\"'.tr('Privato').'\"'; ?>", "value": "$tipo$", "placeholder": "<?php echo tr('Non specificato'); ?>" ]}
</div> </div>
</div> </div>
@ -156,7 +156,7 @@ if (sizeof($problemi_anagrafica) > 0) {
'.tr('Se non si conosce il codice destinatario lasciare vuoto il campo, e verrà applicato in automatico quello previsto di default dal sistema (\'0000000\', \'999999\', \'XXXXXXX\')').'.'; '.tr('Se non si conosce il codice destinatario lasciare vuoto il campo, e verrà applicato in automatico quello previsto di default dal sistema (\'0000000\', \'999999\', \'XXXXXXX\')').'.';
if (in_array($id_azienda, $tipi_anagrafica)) { if (in_array($id_azienda, $tipi_anagrafica)) {
$help_codice_destinatario .= ' <br><b>'.tr("Attenzione").': </b>'.tr("Non è necessario comunicare il proprio codice destinatario ai fornitori in quanto è sufficiente che questo sia registrato all'interno portale del Sistema Di Interscambio dell'Agenzia Entrate (SDI) (ivaservizi.agenziaentrate.gov.it)").'.'; $help_codice_destinatario .= ' <br><b>'.tr('Attenzione').': </b>'.tr("Non è necessario comunicare il proprio codice destinatario ai fornitori in quanto è sufficiente che questo sia registrato all'interno portale del Sistema Di Interscambio dell'Agenzia Entrate (SDI) (ivaservizi.agenziaentrate.gov.it)").'.';
} }
?> ?>
@ -509,7 +509,7 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "'.tr('Pagamento predefinito').'", "name": "idpagamento_vendite", "values": "query=SELECT `co_pagamenti`.`id`, `co_pagamenti_lang`.`name` AS descrizione FROM `co_pagamenti` LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti`.`id` = `co_pagamenti_lang`.`id_record` AND `co_pagamenti_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') GROUP BY `descrizione` ORDER BY `descrizione` ASC", "value": "$idpagamento_vendite$" ]} {[ "type": "select", "label": "'.tr('Pagamento predefinito').'", "name": "idpagamento_vendite", "values": "query=SELECT `co_pagamenti`.`id`, `co_pagamenti_lang`.`name` AS descrizione FROM `co_pagamenti` LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti`.`id` = `co_pagamenti_lang`.`id_record` AND `co_pagamenti_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') GROUP BY `descrizione` ORDER BY `descrizione` ASC", "value": "$idpagamento_vendite$" ]}
</div> </div>
</div> </div>
@ -539,13 +539,13 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "'.tr('Agente principale').'", "name": "idagente", "values": "query=SELECT `an_anagrafiche`.`idanagrafica` AS id, IF(deleted_at IS NOT NULL, CONCAT(`ragione_sociale`, \' (Eliminato)\'), `ragione_sociale` ) AS descrizione FROM `an_anagrafiche` INNER JOIN (`an_tipianagrafiche_anagrafiche` INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche_lang`.`id_record` = `an_tipianagrafiche`.`id` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).')) ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` WHERE (`name`=\'Agente\' AND `deleted_at` IS NULL)'.(isset($record['idagente']) ? 'OR (`an_anagrafiche`.`idanagrafica` = '.prepare($record['idagente']).' AND `deleted_at` IS NOT NULL) ' : '').'ORDER BY `ragione_sociale`", "value": "$idagente$" ]} {[ "type": "select", "label": "'.tr('Agente principale').'", "name": "idagente", "values": "query=SELECT `an_anagrafiche`.`idanagrafica` AS id, IF(deleted_at IS NOT NULL, CONCAT(`ragione_sociale`, \' (Eliminato)\'), `ragione_sociale` ) AS descrizione FROM `an_anagrafiche` INNER JOIN (`an_tipianagrafiche_anagrafiche` INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche_lang`.`id_record` = `an_tipianagrafiche`.`id` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).')) ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` WHERE (`name`=\'Agente\' AND `deleted_at` IS NULL)'.(isset($record['idagente']) ? 'OR (`an_anagrafiche`.`idanagrafica` = '.prepare($record['idagente']).' AND `deleted_at` IS NOT NULL) ' : '').'ORDER BY `ragione_sociale`", "value": "$idagente$" ]}
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "'.tr('Agenti secondari').'", "multiple": "1", "name": "idagenti[]", "values": "query=SELECT `an_anagrafiche`.`idanagrafica` AS id, IF(`deleted_at` IS NOT NULL, CONCAT(`ragione_sociale`, \' (Eliminato)\'), `ragione_sociale` ) AS descrizione FROM `an_anagrafiche` INNER JOIN (`an_tipianagrafiche_anagrafiche` INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche_lang`.`id_record` = `an_tipianagrafiche`.`id` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).')) ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` WHERE (`name`=\'Agente\' AND `deleted_at` IS NULL AND `an_anagrafiche`.`idanagrafica` NOT IN (SELECT `idagente` FROM `an_anagrafiche` WHERE `idanagrafica` = '.prepare($record['idanagrafica']).')) OR (`an_anagrafiche`.`idanagrafica` IN (SELECT `idagente` FROM `an_anagrafiche_agenti` WHERE `idanagrafica` = '.prepare($record['idanagrafica']).') ) ORDER BY `ragione_sociale`", "value": "$idagenti$" ]} {[ "type": "select", "label": "'.tr('Agenti secondari').'", "multiple": "1", "name": "idagenti[]", "values": "query=SELECT `an_anagrafiche`.`idanagrafica` AS id, IF(`deleted_at` IS NOT NULL, CONCAT(`ragione_sociale`, \' (Eliminato)\'), `ragione_sociale` ) AS descrizione FROM `an_anagrafiche` INNER JOIN (`an_tipianagrafiche_anagrafiche` INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche_lang`.`id_record` = `an_tipianagrafiche`.`id` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).')) ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` WHERE (`name`=\'Agente\' AND `deleted_at` IS NULL AND `an_anagrafiche`.`idanagrafica` NOT IN (SELECT `idagente` FROM `an_anagrafiche` WHERE `idanagrafica` = '.prepare($record['idanagrafica']).')) OR (`an_anagrafiche`.`idanagrafica` IN (SELECT `idagente` FROM `an_anagrafiche_agenti` WHERE `idanagrafica` = '.prepare($record['idanagrafica']).') ) ORDER BY `ragione_sociale`", "value": "$idagenti$" ]}
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
@ -585,7 +585,7 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
<div class="tab-pane '.(!$is_fornitore ? 'hide' : (!$is_cliente ? 'active' : '')).'" id="fornitore"> <div class="tab-pane '.(!$is_fornitore ? 'hide' : (!$is_cliente ? 'active' : '')).'" id="fornitore">
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "'.tr('Pagamento predefinito').'", "name": "idpagamento_acquisti", "values": "query=SELECT `co_pagamenti`.`id`, `co_pagamenti_lang`.`name` AS descrizione FROM `co_pagamenti` LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti`.`id` = `co_pagamenti_lang`.`id_record` AND `co_pagamenti_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') GROUP BY `descrizione` ORDER BY `descrizione` ASC", "value": "$idpagamento_acquisti$" ]} {[ "type": "select", "label": "'.tr('Pagamento predefinito').'", "name": "idpagamento_acquisti", "values": "query=SELECT `co_pagamenti`.`id`, `co_pagamenti_lang`.`name` AS descrizione FROM `co_pagamenti` LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti`.`id` = `co_pagamenti_lang`.`id_record` AND `co_pagamenti_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') GROUP BY `descrizione` ORDER BY `descrizione` ASC", "value": "$idpagamento_acquisti$" ]}
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
@ -657,8 +657,8 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "text", "label": "<?php echo tr('Codice R.E.A.').' <small>('.tr('provincia-C.C.I.A.A.').')</small>'; ?>", "name": "codicerea", "value": "$codicerea$", "class": "rea-mask text-uppercase", "help": "<?php echo tr('Esempio: _PATTERN_', [ {[ "type": "text", "label": "<?php echo tr('Codice R.E.A.').' <small>('.tr('provincia-C.C.I.A.A.').')</small>'; ?>", "name": "codicerea", "value": "$codicerea$", "class": "rea-mask text-uppercase", "help": "<?php echo tr('Esempio: _PATTERN_', [
'_PATTERN_' => 'RM-123456', '_PATTERN_' => 'RM-123456',
]); ?>" ]} ]); ?>" ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
@ -713,7 +713,7 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
{[ "type": "select", "multiple": "1", "label": "<?php echo tr('Tipo di anagrafica'); ?>", "name": "idtipoanagrafica[]", "values": "query=SELECT `an_tipianagrafiche`.`id`, `name` as descrizione FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = <?php echo prepare(\Models\Locale::getDefault()->id); ?>) WHERE `an_tipianagrafiche`.`id` NOT IN (SELECT DISTINCT(`x`.`idtipoanagrafica`) FROM `an_tipianagrafiche_anagrafiche` x INNER JOIN `an_tipianagrafiche` t ON `x`.`idtipoanagrafica` = `t`.`id` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche_lang`.`id_record` = `t`.`id` AND `an_tipianagrafiche_lang`.`id_lang` = <?php echo prepare(\Models\Locale::getDefault()->id); ?>) INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `x`.`idanagrafica` WHERE `an_tipianagrafiche_lang`.`name` = 'Azienda' AND `deleted_at` IS NULL) ORDER BY `name`", "value": "$idtipianagrafica$" ]} {[ "type": "select", "multiple": "1", "label": "<?php echo tr('Tipo di anagrafica'); ?>", "name": "idtipoanagrafica[]", "values": "query=SELECT `an_tipianagrafiche`.`id`, `name` as descrizione FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = <?php echo prepare(Models\Locale::getDefault()->id); ?>) WHERE `an_tipianagrafiche`.`id` NOT IN (SELECT DISTINCT(`x`.`idtipoanagrafica`) FROM `an_tipianagrafiche_anagrafiche` x INNER JOIN `an_tipianagrafiche` t ON `x`.`idtipoanagrafica` = `t`.`id` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche_lang`.`id_record` = `t`.`id` AND `an_tipianagrafiche_lang`.`id_lang` = <?php echo prepare(Models\Locale::getDefault()->id); ?>) INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `x`.`idanagrafica` WHERE `an_tipianagrafiche_lang`.`name` = 'Azienda' AND `deleted_at` IS NULL) ORDER BY `name`", "value": "$idtipianagrafica$" ]}
<?php <?php
if (in_array($id_azienda, $tipi_anagrafica)) { if (in_array($id_azienda, $tipi_anagrafica)) {
echo ' echo '
@ -744,16 +744,16 @@ if (setting('Azienda predefinita') == $id_record) {
// Collegamenti diretti // Collegamenti diretti
// Fatture, ddt, preventivi, contratti, ordini, interventi, utenti collegati a questa anagrafica // Fatture, ddt, preventivi, contratti, ordini, interventi, utenti collegati a questa anagrafica
$elementi = $dbo->fetchArray('SELECT `co_documenti`.`id`, `co_documenti`.`data`, `co_documenti`.`numero`, `co_documenti`.`numero_esterno`, `co_tipidocumento_lang`.`name` AS tipo_documento, `co_tipidocumento`.`dir`, NULL AS `deleted_at` FROM `co_documenti` INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento`.`id` = `co_tipidocumento_lang`.`id_record` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE `co_documenti`.`idanagrafica` = '.prepare($id_record).' $elementi = $dbo->fetchArray('SELECT `co_documenti`.`id`, `co_documenti`.`data`, `co_documenti`.`numero`, `co_documenti`.`numero_esterno`, `co_tipidocumento_lang`.`name` AS tipo_documento, `co_tipidocumento`.`dir`, NULL AS `deleted_at` FROM `co_documenti` INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento`.`id` = `co_tipidocumento_lang`.`id_record` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `co_documenti`.`idanagrafica` = '.prepare($id_record).'
UNION UNION
SELECT `zz_users`.`idgruppo` AS id, `zz_users`.`created_at` AS data, `zz_users`.`username` AS numero, 0 AS `numero_esterno`, "Utente" AS tipo_documento, 0 AS `dir`, NULL AS `deleted_at` FROM `zz_users` WHERE `zz_users`.`idanagrafica` = '.prepare($id_record).' SELECT `zz_users`.`idgruppo` AS id, `zz_users`.`created_at` AS data, `zz_users`.`username` AS numero, 0 AS `numero_esterno`, "Utente" AS tipo_documento, 0 AS `dir`, NULL AS `deleted_at` FROM `zz_users` WHERE `zz_users`.`idanagrafica` = '.prepare($id_record).'
UNION UNION
SELECT `or_ordini`.`id`, `or_ordini`.`data`, `or_ordini`.`numero`, `or_ordini`.`numero_esterno`, `or_tipiordine_lang`.`name` AS tipo_documento, `or_tipiordine`.`dir`, NULL AS `deleted_at` FROM `or_ordini` INNER JOIN `or_tipiordine` ON `or_tipiordine`.`id` = `or_ordini`.`idtipoordine` LEFT JOIN `or_tipiordine_lang` ON (`or_tipiordine`.`id` = `or_tipiordine_lang`.`id_record` AND `or_tipiordine_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE `or_ordini`.`idanagrafica` = '.prepare($id_record).' SELECT `or_ordini`.`id`, `or_ordini`.`data`, `or_ordini`.`numero`, `or_ordini`.`numero_esterno`, `or_tipiordine_lang`.`name` AS tipo_documento, `or_tipiordine`.`dir`, NULL AS `deleted_at` FROM `or_ordini` INNER JOIN `or_tipiordine` ON `or_tipiordine`.`id` = `or_ordini`.`idtipoordine` LEFT JOIN `or_tipiordine_lang` ON (`or_tipiordine`.`id` = `or_tipiordine_lang`.`id_record` AND `or_tipiordine_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `or_ordini`.`idanagrafica` = '.prepare($id_record).'
UNION UNION
SELECT `dt_ddt`.`id`, `dt_ddt`.`data`, `dt_ddt`.`numero`, `dt_ddt`.`numero_esterno`, `dt_tipiddt_lang`.`name` AS tipo_documento, `dt_tipiddt`.`dir`, NULL AS `deleted_at` FROM `dt_ddt` INNER JOIN `dt_tipiddt` ON `dt_tipiddt`.`id` = `dt_ddt`.`idtipoddt` LEFT JOIN `dt_tipiddt_lang` ON (`dt_tipiddt`.`id` = `dt_tipiddt_lang`.`id_record` AND `dt_tipiddt_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE `dt_ddt`.`idanagrafica` = '.prepare($id_record).' SELECT `dt_ddt`.`id`, `dt_ddt`.`data`, `dt_ddt`.`numero`, `dt_ddt`.`numero_esterno`, `dt_tipiddt_lang`.`name` AS tipo_documento, `dt_tipiddt`.`dir`, NULL AS `deleted_at` FROM `dt_ddt` INNER JOIN `dt_tipiddt` ON `dt_tipiddt`.`id` = `dt_ddt`.`idtipoddt` LEFT JOIN `dt_tipiddt_lang` ON (`dt_tipiddt`.`id` = `dt_tipiddt_lang`.`id_record` AND `dt_tipiddt_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `dt_ddt`.`idanagrafica` = '.prepare($id_record).'
UNION UNION
SELECT `in_interventi`.`id`, `in_interventi`.`data_richiesta`, `in_interventi`.`codice` AS numero, 0 AS numero_esterno, "Intervento" AS tipo_documento, 0 AS dir, in_interventi.deleted_at AS `deleted_at` FROM `in_interventi` LEFT JOIN `in_interventi_tecnici` ON `in_interventi`.`id` = `in_interventi_tecnici`.`idintervento` WHERE `in_interventi`.`id` IN (SELECT `idintervento` FROM `in_interventi_tecnici` WHERE `idtecnico` = '.prepare($id_record).') OR `in_interventi`.`idanagrafica` = '.prepare($id_record).' SELECT `in_interventi`.`id`, `in_interventi`.`data_richiesta`, `in_interventi`.`codice` AS numero, 0 AS numero_esterno, "Intervento" AS tipo_documento, 0 AS dir, in_interventi.deleted_at AS `deleted_at` FROM `in_interventi` LEFT JOIN `in_interventi_tecnici` ON `in_interventi`.`id` = `in_interventi_tecnici`.`idintervento` WHERE `in_interventi`.`id` IN (SELECT `idintervento` FROM `in_interventi_tecnici` WHERE `idtecnico` = '.prepare($id_record).') OR `in_interventi`.`idanagrafica` = '.prepare($id_record).'
@ -843,7 +843,7 @@ if (empty($record['deleted_at'])) {
<script> <script>
var an_sdi = <?php echo (($anagrafica->tipo == 'Azienda') ? $dbo->fetchOne('SELECT JSON_ARRAYAGG(`codice`) AS `elenco_codici` FROM `an_sdi`')['elenco_codici'] : '') ?>; var an_sdi = <?php echo ($anagrafica->tipo == 'Azienda') ? $dbo->fetchOne('SELECT JSON_ARRAYAGG(`codice`) AS `elenco_codici` FROM `an_sdi`')['elenco_codici'] : ''; ?>;
$(document).ready(function() { $(document).ready(function() {

View File

@ -40,7 +40,7 @@ if (!empty($id_record)) {
`an_anagrafiche` `an_anagrafiche`
INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica`
INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche`.`id`=`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche`.`id`=`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`
LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id`=`an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang`='.prepare(\Models\Locale::getDefault()->id).') LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id`=`an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang`='.prepare(Models\Locale::getDefault()->id).')
LEFT JOIN `an_anagrafiche_agenti` ON `an_anagrafiche`.`idanagrafica`=`an_anagrafiche_agenti`.`idanagrafica` LEFT JOIN `an_anagrafiche_agenti` ON `an_anagrafiche`.`idanagrafica`=`an_anagrafiche_agenti`.`idanagrafica`
WHERE WHERE
`an_anagrafiche`.`idanagrafica`='.prepare($id_record)); `an_anagrafiche`.`idanagrafica`='.prepare($id_record));

View File

@ -17,9 +17,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use Models\Module;
use Models\Upload; use Models\Upload;
use Modules\Anagrafiche\Anagrafica; use Modules\Anagrafiche\Anagrafica;
use Models\Module;
include_once __DIR__.'/../../../core.php'; include_once __DIR__.'/../../../core.php';

View File

@ -39,7 +39,7 @@ class Anagrafiche extends Resource implements RetrieveInterface, CreateInterface
$joins[] = [ $joins[] = [
'an_nazioni_lang' => '`an_nazioni_lang`.`id_record` = `an_nazioni`.`id` AND `an_nazioni_lang`.`id_lang` = '.\Models\Locale::getDefault()->id, 'an_nazioni_lang' => '`an_nazioni_lang`.`id_record` = `an_nazioni`.`id` AND `an_nazioni_lang`.`id_lang` = '.\Models\Locale::getDefault()->id,
]; ];
$where[] = ['`an_anagrafiche`.`deleted_at`', '=', null]; $where[] = ['`an_anagrafiche`.`deleted_at`', '=', null];
@ -62,7 +62,7 @@ class Anagrafiche extends Resource implements RetrieveInterface, CreateInterface
$joins[] = [ $joins[] = [
'an_tipianagrafiche_lang' => '`an_tipianagrafiche_lang`.`idrecord` = `an_tipianagrafiche`.`id` AND `an_tipianagrafiche_lang`.`idlang` = '.\Models\Locale::getDefault()->id, 'an_tipianagrafiche_lang' => '`an_tipianagrafiche_lang`.`idrecord` = `an_tipianagrafiche`.`id` AND `an_tipianagrafiche_lang`.`idlang` = '.\Models\Locale::getDefault()->id,
]; ];
$where[] = ['`an_tipianagrafiche_lang`.`name`', '=', $type]; $where[] = ['`an_tipianagrafiche_lang`.`name`', '=', $type];
} }

View File

@ -44,7 +44,8 @@ class Nazione extends Model
return ''; return '';
} }
public static function getTranslatedFields(){ public static function getTranslatedFields()
{
return self::$translated_fields; return self::$translated_fields;
} }
} }

View File

@ -40,7 +40,7 @@ class Sede extends Model
* *
* @return self * @return self
*/ */
public static function build(Anagrafica $anagrafica = null, $is_sede_legale = false) public static function build(?Anagrafica $anagrafica = null, $is_sede_legale = false)
{ {
$model = parent::make(); $model = parent::make();

View File

@ -51,8 +51,8 @@ class Tipo extends Model
return 'Tipi di anagrafiche'; return 'Tipi di anagrafiche';
} }
public static function getTranslatedFields(){ public static function getTranslatedFields()
{
return self::$translated_fields; return self::$translated_fields;
} }
} }

View File

@ -46,7 +46,7 @@ switch ($name) {
['idanagrafica', '<>', $id_record], ['idanagrafica', '<>', $id_record],
])->count() == 0; ])->count() == 0;
$message = $disponibile ? '<i class="icon fa fa-check text-green"></i> '.tr('Questo codice fiscale non è ancora stato utilizzato.') : '<i class="icon fa fa-warning text-yellow"></i> '. tr("Il codice fiscale è già utilizzato in un'altra anagrafica."); $message = $disponibile ? '<i class="icon fa fa-check text-green"></i> '.tr('Questo codice fiscale non è ancora stato utilizzato.') : '<i class="icon fa fa-warning text-yellow"></i> '.tr("Il codice fiscale è già utilizzato in un'altra anagrafica.");
// Validazione del Codice Fiscale // Validazione del Codice Fiscale
// Se anagrafica non ancora definita OPPURE Se il codice fiscale è diverso dalla partita iva ma solo per anagrafiche Private e Aziende. // Se anagrafica non ancora definita OPPURE Se il codice fiscale è diverso dalla partita iva ma solo per anagrafiche Private e Aziende.
@ -54,7 +54,7 @@ switch ($name) {
$check = Validate::isValidTaxCode($value); $check = Validate::isValidTaxCode($value);
if (empty($check)) { if (empty($check)) {
$disponibile = false; $disponibile = false;
$message .= '<br><i class="icon fa fa-warning text-yellow"></i> '.tr('Il codice fiscale _COD_ non possiede un formato valido.', [ $message .= '<br><i class="icon fa fa-warning text-yellow"></i> '.tr('Il codice fiscale _COD_ non possiede un formato valido.', [
'_COD_' => $value, '_COD_' => $value,
]); ]);
} }
@ -85,31 +85,28 @@ switch ($name) {
break; break;
case 'codice_intermediario': case 'codice_intermediario':
if (!empty($anagrafica)) {
if (!empty($anagrafica)){
$value = trim($value); $value = trim($value);
switch ($anagrafica->tipo) { switch ($anagrafica->tipo) {
case "Azienda": case 'Azienda':
case "Privato": case 'Privato':
$length = 7; $length = 7;
$valido = (strlen($value) === $length ? true : false); $valido = (strlen($value) === $length ? true : false);
break; break;
case "Ente pubblico": case 'Ente pubblico':
$length = 6; $length = 6;
$valido = (strlen($value) === $length ? true : false); $valido = (strlen($value) === $length ? true : false);
break; break;
default: default:
$length = 7; $length = 7;
$valido = (strlen($value) >= $length ? true : false); $valido = (strlen($value) >= $length ? true : false);
break; break;
} }
} }
$message = $valido ? '<i class="icon fa fa-check text-green"></i> '.tr('Il codice intermediario è valido.') : '<i class="icon fa fa-warning text-yellow"></i> '.tr("Il codice intermediario non sembra essere valido. Lunghezza attesa _LENGTH_ caratteri.", ['_LENGTH_' => $length]); $message = $valido ? '<i class="icon fa fa-check text-green"></i> '.tr('Il codice intermediario è valido.') : '<i class="icon fa fa-warning text-yellow"></i> '.tr('Il codice intermediario non sembra essere valido. Lunghezza attesa _LENGTH_ caratteri.', ['_LENGTH_' => $length]);
$response = [ $response = [
'result' => $valido, 'result' => $valido,
@ -182,7 +179,6 @@ switch ($name) {
$errors[] = tr("L'email _COD_ non possiede un formato valido.", [ $errors[] = tr("L'email _COD_ non possiede un formato valido.", [
'_COD_' => $value, '_COD_' => $value,
]); ]);
} }
if (isset($check['smtp-check']) && empty($check['smtp-check'])) { if (isset($check['smtp-check']) && empty($check['smtp-check'])) {

View File

@ -19,8 +19,8 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
use Modules\Iva\Aliquota;
use Models\Module; use Models\Module;
use Modules\Iva\Aliquota;
$prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA'); $prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA');
$iva_predefinita = setting('Iva predefinita'); $iva_predefinita = setting('Iva predefinita');
@ -50,7 +50,7 @@ $aliquota_predefinita = floatval(Aliquota::find($iva_predefinita)->percentuale);
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "<?php echo tr('Sottocategoria'); ?>", "name": "subcategoria", "id": "subcategoria_add", "ajax-source": "sottocategorie", "icon-after": "add|<?php echo (new Module())->getByField('name', 'Categorie articoli'); ?>||hide" ]} {[ "type": "select", "label": "<?php echo tr('Sottocategoria'); ?>", "name": "subcategoria", "id": "subcategoria_add", "ajax-source": "sottocategorie", "icon-after": "add|<?php echo (new Module())->getByField('name', 'Categorie articoli'); ?>||hide" ]}
</div> </div>
</div> </div>
@ -104,7 +104,7 @@ $aliquota_predefinita = floatval(Aliquota::find($iva_predefinita)->percentuale);
<div class="row"> <div class="row">
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "select", "label": "<?php echo tr('Unità di misura'); ?>", "name": "um", "value": "", "ajax-source": "misure", "icon-after": "add|<?php echo (new Module())->getByField('name', 'Unità di misura articoli'); ?>" ]} {[ "type": "select", "label": "<?php echo tr('Unità di misura'); ?>", "name": "um", "value": "", "ajax-source": "misure", "icon-after": "add|<?php echo (new Module())->getByField('name', 'Unità di misura articoli'); ?>" ]}
</div> </div>
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "select", "label": "<?php echo tr('U.m. secondaria'); ?>", "name": "um_secondaria", "value": "", "ajax-source": "misure", "help": "<?php echo tr("Unità di misura da utilizzare nelle stampe di Ordini fornitori in relazione all'articolo"); ?>" ]} {[ "type": "select", "label": "<?php echo tr('U.m. secondaria'); ?>", "name": "um_secondaria", "value": "", "ajax-source": "misure", "help": "<?php echo tr("Unità di misura da utilizzare nelle stampe di Ordini fornitori in relazione all'articolo"); ?>" ]}

View File

@ -107,7 +107,7 @@ switch ($resource) {
`co_righe_documenti` `co_righe_documenti`
INNER JOIN `co_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento` INNER JOIN `co_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento`
INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento`
LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento_lang`.`id_record` = `co_tipidocumento`.`id` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento_lang`.`id_record` = `co_tipidocumento`.`id` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).')
WHERE WHERE
`idarticolo` = '.prepare($idarticolo).' AND `dir` = "entrata" `idarticolo` = '.prepare($idarticolo).' AND `dir` = "entrata"
UNION UNION
@ -123,7 +123,7 @@ switch ($resource) {
`dt_righe_ddt` `dt_righe_ddt`
INNER JOIN `dt_ddt` ON `dt_ddt`.`id` = `dt_righe_ddt`.`idddt` INNER JOIN `dt_ddt` ON `dt_ddt`.`id` = `dt_righe_ddt`.`idddt`
INNER JOIN `dt_tipiddt` ON `dt_tipiddt`.`id` = `dt_ddt`.`idtipoddt` INNER JOIN `dt_tipiddt` ON `dt_tipiddt`.`id` = `dt_ddt`.`idtipoddt`
LEFT JOIN `dt_tipiddt_lang` ON (`dt_tipiddt_lang`.`id_record` = `dt_tipiddt`.`id` AND `dt_tipiddt_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') LEFT JOIN `dt_tipiddt_lang` ON (`dt_tipiddt_lang`.`id_record` = `dt_tipiddt`.`id` AND `dt_tipiddt_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).')
WHERE WHERE
`idarticolo` = '.prepare($idarticolo).' AND `dir` = "entrata" `idarticolo` = '.prepare($idarticolo).' AND `dir` = "entrata"
ORDER BY ORDER BY
@ -167,7 +167,7 @@ switch ($resource) {
`co_righe_documenti` `co_righe_documenti`
INNER JOIN `co_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento` INNER JOIN `co_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento`
INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento`
LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento_lang`.`id_record` = `co_tipidocumento`.`id` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento_lang`.`id_record` = `co_tipidocumento`.`id` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).')
WHERE WHERE
`idarticolo` = '.prepare($idarticolo).' AND `dir` = "uscita" `idarticolo` = '.prepare($idarticolo).' AND `dir` = "uscita"
UNION UNION
@ -183,7 +183,7 @@ switch ($resource) {
`dt_righe_ddt` `dt_righe_ddt`
INNER JOIN `dt_ddt` ON `dt_ddt`.`id` = `dt_righe_ddt`.`idddt` INNER JOIN `dt_ddt` ON `dt_ddt`.`id` = `dt_righe_ddt`.`idddt`
INNER JOIN `dt_tipiddt` ON `dt_tipiddt`.`id` = `dt_ddt`.`idtipoddt` INNER JOIN `dt_tipiddt` ON `dt_tipiddt`.`id` = `dt_ddt`.`idtipoddt`
LEFT JOIN `dt_tipiddt_lang` ON (`dt_tipiddt_lang`.`id_record` = `dt_tipiddt`.`id` AND `dt_tipiddt_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') LEFT JOIN `dt_tipiddt_lang` ON (`dt_tipiddt_lang`.`id_record` = `dt_tipiddt`.`id` AND `dt_tipiddt_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).')
WHERE WHERE
`idarticolo` = '.prepare($idarticolo).' AND `dir` = "uscita" `idarticolo` = '.prepare($idarticolo).' AND `dir` = "uscita"
ORDER BY ORDER BY

View File

@ -29,8 +29,8 @@ $fields = [
'codice' => 'mg_articoli.codice', 'codice' => 'mg_articoli.codice',
'barcode' => 'mg_articoli.barcode', 'barcode' => 'mg_articoli.barcode',
'descrizione' => 'mg_articoli_lang.name', 'descrizione' => 'mg_articoli_lang.name',
'categoria' => '(SELECT `name` FROM `mg_categorie` LEFT JOIN `mg_categorie_lang` ON (`mg_categorie`.`id` = `mg_categorie_lang`.`id_record` AND `mg_categorie_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE `mg_categorie`.`id` = `mg_articoli`.`id_categoria`)', 'categoria' => '(SELECT `name` FROM `mg_categorie` LEFT JOIN `mg_categorie_lang` ON (`mg_categorie`.`id` = `mg_categorie_lang`.`id_record` AND `mg_categorie_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `mg_categorie`.`id` = `mg_articoli`.`id_categoria`)',
'subcategoria' => '(SELECT `name` FROM `mg_categorie` LEFT JOIN `mg_categorie_lang` ON (`mg_categorie`.`id` = `mg_categorie_lang`.`id_record` AND `mg_categorie_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE `mg_categorie`.`id` = `mg_articoli`.`id_sottocategoria`)', 'subcategoria' => '(SELECT `name` FROM `mg_categorie` LEFT JOIN `mg_categorie_lang` ON (`mg_categorie`.`id` = `mg_categorie_lang`.`id_record` AND `mg_categorie_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `mg_categorie`.`id` = `mg_articoli`.`id_sottocategoria`)',
'Note' => 'note', 'Note' => 'note',
]; ];
@ -40,7 +40,7 @@ foreach ($fields as $name => $value) {
$query .= ', '.$value." AS '".str_replace("'", "\'", $name)."'"; $query .= ', '.$value." AS '".str_replace("'", "\'", $name)."'";
} }
$query .= ' FROM `mg_articoli` LEFT JOIN `mg_articoli_lang` ON (`mg_articoli`.`id` = `mg_articoli_lang`.`id_record` AND `mg_articoli_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE deleted_at IS NULL AND (1=0 '; $query .= ' FROM `mg_articoli` LEFT JOIN `mg_articoli_lang` ON (`mg_articoli`.`id` = `mg_articoli_lang`.`id_record` AND `mg_articoli_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE deleted_at IS NULL AND (1=0 ';
foreach ($fields as $name => $value) { foreach ($fields as $name => $value) {
$query .= ' OR '.$value.' LIKE "%'.$term.'%"'; $query .= ' OR '.$value.' LIKE "%'.$term.'%"';

View File

@ -37,7 +37,7 @@ switch ($resource) {
$idagente = $superselect['idagente']; $idagente = $superselect['idagente'];
$id_listino = $superselect['id_listino']; $id_listino = $superselect['id_listino'];
$iva_predefinita = setting('IVA predefinita'); $iva_predefinita = setting('IVA predefinita');
$query = "SELECT $query = "SELECT
DISTINCT `mg_articoli`.`id`, DISTINCT `mg_articoli`.`id`,
IF(`categoria_lang`.`name` IS NOT NULL, CONCAT(`categoria_lang`.`name`, IF(`sottocategoria_lang`.`name` IS NOT NULL, CONCAT(' (', `sottocategoria_lang`.`name`, ')'), '-')), '<i>".tr('Nessuna categoria')."</i>') AS optgroup, IF(`categoria_lang`.`name` IS NOT NULL, CONCAT(`categoria_lang`.`name`, IF(`sottocategoria_lang`.`name` IS NOT NULL, CONCAT(' (', `sottocategoria_lang`.`name`, ')'), '-')), '<i>".tr('Nessuna categoria')."</i>') AS optgroup,
@ -99,11 +99,11 @@ switch ($resource) {
CONCAT(`conto_acquisto_categoria` .`numero`, '.', `conto_acquisto_sottocategoria`.`numero`, ' ', `conto_acquisto_sottocategoria`.`descrizione`) AS idconto_acquisto_title CONCAT(`conto_acquisto_categoria` .`numero`, '.', `conto_acquisto_sottocategoria`.`numero`, ' ', `conto_acquisto_sottocategoria`.`descrizione`) AS idconto_acquisto_title
FROM FROM
`mg_articoli` `mg_articoli`
LEFT JOIN `mg_articoli_lang` ON (`mg_articoli`.`id` = `mg_articoli_lang`.`id_record` AND `mg_articoli_lang`.`id_lang` = ".prepare(\Models\Locale::getDefault()->id).") LEFT JOIN `mg_articoli_lang` ON (`mg_articoli`.`id` = `mg_articoli_lang`.`id_record` AND `mg_articoli_lang`.`id_lang` = ".prepare(Models\Locale::getDefault()->id).')
LEFT JOIN `mg_categorie` AS categoria ON `categoria`.`id` = `mg_articoli`.`id_categoria` LEFT JOIN `mg_categorie` AS categoria ON `categoria`.`id` = `mg_articoli`.`id_categoria`
LEFT JOIN `mg_categorie_lang` AS categoria_lang ON (`categoria`.`id` = `categoria_lang`.`id_record` AND `categoria_lang`.`id_lang` = ".prepare(\Models\Locale::getDefault()->id).") LEFT JOIN `mg_categorie_lang` AS categoria_lang ON (`categoria`.`id` = `categoria_lang`.`id_record` AND `categoria_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).')
LEFT JOIN `mg_categorie` AS sottocategoria ON `sottocategoria`.`id` = `mg_articoli`.`id_sottocategoria` LEFT JOIN `mg_categorie` AS sottocategoria ON `sottocategoria`.`id` = `mg_articoli`.`id_sottocategoria`
LEFT JOIN `mg_categorie_lang` AS sottocategoria_lang ON (`sottocategoria`.`id` = `sottocategoria_lang`.`id_record` AND `sottocategoria_lang`.`id_lang` = ".prepare(\Models\Locale::getDefault()->id).") LEFT JOIN `mg_categorie_lang` AS sottocategoria_lang ON (`sottocategoria`.`id` = `sottocategoria_lang`.`id_record` AND `sottocategoria_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).")
LEFT JOIN `co_pianodeiconti3` AS conto_vendita_sottocategoria ON `conto_vendita_sottocategoria`.`id`=`mg_articoli`.`idconto_vendita` LEFT JOIN `co_pianodeiconti3` AS conto_vendita_sottocategoria ON `conto_vendita_sottocategoria`.`id`=`mg_articoli`.`idconto_vendita`
LEFT JOIN `co_pianodeiconti2` AS conto_vendita_categoria ON `conto_vendita_sottocategoria`.`idpianodeiconti2`=`conto_vendita_categoria`.`id` LEFT JOIN `co_pianodeiconti2` AS conto_vendita_categoria ON `conto_vendita_sottocategoria`.`idpianodeiconti2`=`conto_vendita_categoria`.`id`
LEFT JOIN `co_pianodeiconti3` AS conto_acquisto_sottocategoria ON `conto_acquisto_sottocategoria`.`id`=`mg_articoli`.`idconto_acquisto` LEFT JOIN `co_pianodeiconti3` AS conto_acquisto_sottocategoria ON `conto_acquisto_sottocategoria`.`id`=`mg_articoli`.`idconto_acquisto`
@ -111,14 +111,14 @@ switch ($resource) {
LEFT JOIN (SELECT `co_righe_documenti`.`idarticolo` AS id, (SUM((`co_righe_documenti`.`prezzo_unitario`-`co_righe_documenti`.`sconto_unitario`)*`co_righe_documenti`.`qta`)/SUM(`co_righe_documenti`.`qta`)) AS media_ponderata FROM `co_righe_documenti` LEFT JOIN `co_documenti` ON `co_documenti`.`id`=`co_righe_documenti`.`iddocumento` LEFT JOIN `co_tipidocumento` ON `co_tipidocumento`.`id`=`co_documenti`.`idtipodocumento` WHERE `co_tipidocumento`.`dir`='uscita' GROUP BY `co_righe_documenti`.`idarticolo`) AS righe LEFT JOIN (SELECT `co_righe_documenti`.`idarticolo` AS id, (SUM((`co_righe_documenti`.`prezzo_unitario`-`co_righe_documenti`.`sconto_unitario`)*`co_righe_documenti`.`qta`)/SUM(`co_righe_documenti`.`qta`)) AS media_ponderata FROM `co_righe_documenti` LEFT JOIN `co_documenti` ON `co_documenti`.`id`=`co_righe_documenti`.`iddocumento` LEFT JOIN `co_tipidocumento` ON `co_tipidocumento`.`id`=`co_documenti`.`idtipodocumento` WHERE `co_tipidocumento`.`dir`='uscita' GROUP BY `co_righe_documenti`.`idarticolo`) AS righe
ON `righe`.`id`=`mg_articoli`.`id` ON `righe`.`id`=`mg_articoli`.`id`
LEFT JOIN `co_iva` AS iva_articolo ON `iva_articolo`.`id` = `mg_articoli`.`idiva_vendita` LEFT JOIN `co_iva` AS iva_articolo ON `iva_articolo`.`id` = `mg_articoli`.`idiva_vendita`
LEFT JOIN `co_iva_lang` AS iva_articolo_lang on (`iva_articolo`.`id` = `iva_articolo_lang`.`id_record` AND `iva_articolo_lang`.`id_lang` = ".prepare(\Models\Locale::getDefault()->id).") LEFT JOIN `co_iva_lang` AS iva_articolo_lang on (`iva_articolo`.`id` = `iva_articolo_lang`.`id_record` AND `iva_articolo_lang`.`id_lang` = ".prepare(Models\Locale::getDefault()->id).")
LEFT JOIN `co_iva` AS `iva_predefinita` ON `iva_predefinita`.`id` = '.$iva_predefinita.' LEFT JOIN `co_iva` AS `iva_predefinita` ON `iva_predefinita`.`id` = '.$iva_predefinita.'
LEFT JOIN `co_iva_lang` AS iva_predefinita_lang on (`iva_predefinita`.`id` = `iva_predefinita_lang`.`id_record` AND `iva_predefinita_lang`.`id_lang` = ".prepare(\Models\Locale::getDefault()->id).')'; LEFT JOIN `co_iva_lang` AS iva_predefinita_lang on (`iva_predefinita`.`id` = `iva_predefinita_lang`.`id_record` AND `iva_predefinita_lang`.`id_lang` = ".prepare(Models\Locale::getDefault()->id).')';
if ($usare_iva_anagrafica) { if ($usare_iva_anagrafica) {
$query .= ' $query .= '
LEFT JOIN `co_iva` AS iva_anagrafica ON `iva_anagrafica`.`id` = (SELECT `idiva_vendite` FROM `an_anagrafiche` WHERE `idanagrafica` = '.prepare($superselect['idanagrafica']).') LEFT JOIN `co_iva` AS iva_anagrafica ON `iva_anagrafica`.`id` = (SELECT `idiva_vendite` FROM `an_anagrafiche` WHERE `idanagrafica` = '.prepare($superselect['idanagrafica']).')
LEFT JOIN `co_iva_lang` AS iva_anagrafica_lang on (`iva_anagrafica`.`id` = `iva_anagrafica_lang`.`id_record` AND `iva_anagrafica_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).')'; LEFT JOIN `co_iva_lang` AS iva_anagrafica_lang on (`iva_anagrafica`.`id` = `iva_anagrafica_lang`.`id_record` AND `iva_anagrafica_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).')';
} }
if ($idagente) { if ($idagente) {
@ -220,7 +220,7 @@ switch ($resource) {
break; break;
case 'categorie': case 'categorie':
$query = 'SELECT `mg_categorie`.`id`, `name` AS descrizione FROM `mg_categorie` LEFT JOIN `mg_categorie_lang` ON (`mg_categorie`.`id` = `mg_categorie_lang`.`id_record` AND `mg_categorie_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') |where| ORDER BY `name`'; $query = 'SELECT `mg_categorie`.`id`, `name` AS descrizione FROM `mg_categorie` LEFT JOIN `mg_categorie_lang` ON (`mg_categorie`.`id` = `mg_categorie_lang`.`id_record` AND `mg_categorie_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') |where| ORDER BY `name`';
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = '`mg_categorie`.`id`='.prepare($element); $filter[] = '`mg_categorie`.`id`='.prepare($element);
@ -240,7 +240,7 @@ switch ($resource) {
*/ */
case 'sottocategorie': case 'sottocategorie':
if (isset($superselect['id_categoria'])) { if (isset($superselect['id_categoria'])) {
$query = 'SELECT `mg_categorie`.`id`, `name` AS descrizione FROM `mg_categorie` LEFT JOIN `mg_categorie_lang` ON (`mg_categorie`.`id` = `mg_categorie_lang`.`id_record` AND `mg_categorie_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') |where| ORDER BY `name`'; $query = 'SELECT `mg_categorie`.`id`, `name` AS descrizione FROM `mg_categorie` LEFT JOIN `mg_categorie_lang` ON (`mg_categorie`.`id` = `mg_categorie_lang`.`id_record` AND `mg_categorie_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') |where| ORDER BY `name`';
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = '`mg_categorie`.`id`='.prepare($element); $filter[] = '`mg_categorie`.`id`='.prepare($element);

View File

@ -17,6 +17,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use Models\Module;
use Modules\Anagrafiche\Anagrafica; use Modules\Anagrafiche\Anagrafica;
use Modules\Articoli\Articolo; use Modules\Articoli\Articolo;
use Modules\Articoli\Export\CSV; use Modules\Articoli\Export\CSV;
@ -26,12 +27,11 @@ use Modules\Preventivi\Components\Articolo as ArticoloPreventivo;
use Modules\Preventivi\Preventivo; use Modules\Preventivi\Preventivo;
use Modules\TipiIntervento\Tipo as TipoSessione; use Modules\TipiIntervento\Tipo as TipoSessione;
use Plugins\ListinoClienti\DettaglioPrezzo; use Plugins\ListinoClienti\DettaglioPrezzo;
use Models\Module;
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
// Segmenti // Segmenti
$id_preventivi =(new Module())->getByField('name', 'Preventivi'); $id_preventivi = (new Module())->getByField('name', 'Preventivi');
$id_segment = $_SESSION['module_'.$id_preventivi]['id_segment']; $id_segment = $_SESSION['module_'.$id_preventivi]['id_segment'];
switch (post('op')) { switch (post('op')) {
@ -285,7 +285,7 @@ switch (post('op')) {
$articolo = Articolo::find($id); $articolo = Articolo::find($id);
if ($articolo->prezzo_acquisto == 0 && empty($articolo->idfornitore)) { if ($articolo->prezzo_acquisto == 0 && empty($articolo->idfornitore)) {
$new_prezzo_acquisto = $dbo->fetchOne('SELECT (`prezzo_unitario`-`sconto_unitario`) AS prezzo_acquisto FROM `co_righe_documenti` LEFT JOIN `co_documenti` ON `co_righe_documenti`.`iddocumento`=`co_documenti`.`id` INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id`=`co_documenti`.`idtipodocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento_lang`.`id_record` = `co_tipidocumento`.`id` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE `idarticolo`='.prepare($id).' AND `dir`="uscita" ORDER BY `co_documenti`.`data` DESC, `co_righe_documenti`.`id` DESC LIMIT 0,1')['prezzo_acquisto']; $new_prezzo_acquisto = $dbo->fetchOne('SELECT (`prezzo_unitario`-`sconto_unitario`) AS prezzo_acquisto FROM `co_righe_documenti` LEFT JOIN `co_documenti` ON `co_righe_documenti`.`iddocumento`=`co_documenti`.`id` INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id`=`co_documenti`.`idtipodocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento_lang`.`id_record` = `co_tipidocumento`.`id` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `idarticolo`='.prepare($id).' AND `dir`="uscita" ORDER BY `co_documenti`.`data` DESC, `co_righe_documenti`.`id` DESC LIMIT 0,1')['prezzo_acquisto'];
$articolo->prezzo_acquisto = $new_prezzo_acquisto; $articolo->prezzo_acquisto = $new_prezzo_acquisto;
$articolo->save(); $articolo->save();

View File

@ -23,8 +23,8 @@ include_once __DIR__.'/../../core.php';
if ($articolo->isVariante()) { if ($articolo->isVariante()) {
echo ' echo '
<div class="badge badge-info">'.tr('Variante: _NAME_', [ <div class="badge badge-info">'.tr('Variante: _NAME_', [
'_NAME_' => $articolo->nome_variante, '_NAME_' => $articolo->nome_variante,
]).'</div>'; ]).'</div>';
} }
echo ' echo '

View File

@ -19,8 +19,8 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
use Modules\Iva\Aliquota;
use Models\Module; use Models\Module;
use Modules\Iva\Aliquota;
?><form action="" method="post" id="edit-form" enctype="multipart/form-data"> ?><form action="" method="post" id="edit-form" enctype="multipart/form-data">
<input type="hidden" name="backto" value="record-edit"> <input type="hidden" name="backto" value="record-edit">
@ -393,9 +393,9 @@ $("#scorporaIva").click( function() {
// Collegamenti diretti // Collegamenti diretti
// Fatture, ddt, preventivi collegati a questo articolo // Fatture, ddt, preventivi collegati a questo articolo
$elementi = $dbo->fetchArray('SELECT `co_documenti`.`id`, `co_documenti`.`data`, `co_documenti`.`numero`, `co_documenti`.`numero_esterno`, `co_tipidocumento_lang`.`name` AS tipo_documento, `co_tipidocumento`.`dir`, SUM(`co_righe_documenti`.`qta`) AS qta_totale, ((SUM(`co_righe_documenti`.`prezzo_unitario`)-SUM(`co_righe_documenti`.`sconto_unitario`))*SUM(`co_righe_documenti`.`qta`)) AS prezzo_totale, SUM(`co_righe_documenti`.`prezzo_unitario`)-SUM(`co_righe_documenti`.`sconto_unitario`) AS prezzo_unitario FROM `co_documenti` INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento_lang`.`id_record` = `co_tipidocumento`.`id` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') INNER JOIN `co_righe_documenti` ON `co_documenti`.`id`=`co_righe_documenti`.`iddocumento` WHERE `co_righe_documenti`.`idarticolo` = '.prepare($id_record).' GROUP BY `co_documenti`.`id` $elementi = $dbo->fetchArray('SELECT `co_documenti`.`id`, `co_documenti`.`data`, `co_documenti`.`numero`, `co_documenti`.`numero_esterno`, `co_tipidocumento_lang`.`name` AS tipo_documento, `co_tipidocumento`.`dir`, SUM(`co_righe_documenti`.`qta`) AS qta_totale, ((SUM(`co_righe_documenti`.`prezzo_unitario`)-SUM(`co_righe_documenti`.`sconto_unitario`))*SUM(`co_righe_documenti`.`qta`)) AS prezzo_totale, SUM(`co_righe_documenti`.`prezzo_unitario`)-SUM(`co_righe_documenti`.`sconto_unitario`) AS prezzo_unitario FROM `co_documenti` INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento_lang`.`id_record` = `co_tipidocumento`.`id` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') INNER JOIN `co_righe_documenti` ON `co_documenti`.`id`=`co_righe_documenti`.`iddocumento` WHERE `co_righe_documenti`.`idarticolo` = '.prepare($id_record).' GROUP BY `co_documenti`.`id`
UNION SELECT `dt_ddt`.`id`, `dt_ddt`.`data`, `dt_ddt`.`numero`, `dt_ddt`.`numero_esterno`, `dt_tipiddt_lang`.`name` AS tipo_documento, `dt_tipiddt`.`dir`, SUM(dt_righe_ddt.qta) AS qta_totale, ((SUM(dt_righe_ddt.prezzo_unitario)-SUM(dt_righe_ddt.sconto_unitario))*SUM(dt_righe_ddt.qta)) AS prezzo_totale, SUM(dt_righe_ddt.prezzo_unitario)-SUM(dt_righe_ddt.sconto_unitario) AS prezzo_unitario FROM `dt_ddt` INNER JOIN `dt_tipiddt` ON `dt_tipiddt`.`id` = `dt_ddt`.`idtipoddt` LEFT JOIN `dt_tipiddt_lang` ON (`dt_tipiddt_lang`.`id_record` = `dt_tipiddt`.`id` AND `dt_tipiddt_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') INNER JOIN `dt_righe_ddt` ON `dt_ddt`.`id`=`dt_righe_ddt`.`idddt` WHERE `dt_righe_ddt`.`idarticolo` = '.prepare($id_record).' GROUP BY `dt_ddt`.`id` UNION SELECT `dt_ddt`.`id`, `dt_ddt`.`data`, `dt_ddt`.`numero`, `dt_ddt`.`numero_esterno`, `dt_tipiddt_lang`.`name` AS tipo_documento, `dt_tipiddt`.`dir`, SUM(dt_righe_ddt.qta) AS qta_totale, ((SUM(dt_righe_ddt.prezzo_unitario)-SUM(dt_righe_ddt.sconto_unitario))*SUM(dt_righe_ddt.qta)) AS prezzo_totale, SUM(dt_righe_ddt.prezzo_unitario)-SUM(dt_righe_ddt.sconto_unitario) AS prezzo_unitario FROM `dt_ddt` INNER JOIN `dt_tipiddt` ON `dt_tipiddt`.`id` = `dt_ddt`.`idtipoddt` LEFT JOIN `dt_tipiddt_lang` ON (`dt_tipiddt_lang`.`id_record` = `dt_tipiddt`.`id` AND `dt_tipiddt_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') INNER JOIN `dt_righe_ddt` ON `dt_ddt`.`id`=`dt_righe_ddt`.`idddt` WHERE `dt_righe_ddt`.`idarticolo` = '.prepare($id_record).' GROUP BY `dt_ddt`.`id`
UNION SELECT `co_preventivi`.`id`, `co_preventivi`.`data_bozza`, `co_preventivi`.`numero`, 0 AS numero_esterno , "Preventivo" AS tipo_documento, 0 AS dir, SUM(co_righe_preventivi.qta) AS qta_totale, ((SUM(co_righe_preventivi.prezzo_unitario)-SUM(co_righe_preventivi.sconto_unitario))*SUM(co_righe_preventivi.qta)) AS prezzo_totale, SUM(co_righe_preventivi.prezzo_unitario)-SUM(co_righe_preventivi.sconto_unitario) AS prezzo_unitario FROM `co_preventivi` INNER JOIN `co_righe_preventivi` ON `co_preventivi`.`id`=`co_righe_preventivi`.`idpreventivo` WHERE `co_righe_preventivi`.`idarticolo` = '.prepare($id_record).' GROUP BY co_preventivi.id ORDER BY `data`'); UNION SELECT `co_preventivi`.`id`, `co_preventivi`.`data_bozza`, `co_preventivi`.`numero`, 0 AS numero_esterno , "Preventivo" AS tipo_documento, 0 AS dir, SUM(co_righe_preventivi.qta) AS qta_totale, ((SUM(co_righe_preventivi.prezzo_unitario)-SUM(co_righe_preventivi.sconto_unitario))*SUM(co_righe_preventivi.qta)) AS prezzo_totale, SUM(co_righe_preventivi.prezzo_unitario)-SUM(co_righe_preventivi.sconto_unitario) AS prezzo_unitario FROM `co_preventivi` INNER JOIN `co_righe_preventivi` ON `co_preventivi`.`id`=`co_righe_preventivi`.`idpreventivo` WHERE `co_righe_preventivi`.`idarticolo` = '.prepare($id_record).' GROUP BY co_preventivi.id ORDER BY `data`');
@ -404,8 +404,8 @@ if (!empty($elementi)) {
<div class="box box-warning collapsable collapsed-box"> <div class="box box-warning collapsable collapsed-box">
<div class="box-header with-border"> <div class="box-header with-border">
<h3 class="box-title"><i class="fa fa-warning"></i> '.tr('Documenti collegati: _NUM_', [ <h3 class="box-title"><i class="fa fa-warning"></i> '.tr('Documenti collegati: _NUM_', [
'_NUM_' => count($elementi), '_NUM_' => count($elementi),
]).'</h3> ]).'</h3>
<div class="box-tools pull-right"> <div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-plus"></i></button> <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-plus"></i></button>
</div> </div>

View File

@ -24,5 +24,5 @@ use Modules\Articoli\Articolo;
if (isset($id_record)) { if (isset($id_record)) {
$articolo = Articolo::withTrashed()->find($id_record); $articolo = Articolo::withTrashed()->find($id_record);
$record = $dbo->fetchOne('SELECT *, `mg_articoli_lang`.`name` as descrizione, (SELECT COUNT(id) FROM `mg_prodotti` WHERE `id_articolo` = `mg_articoli`.`id`) AS serial FROM `mg_articoli` LEFT JOIN `mg_articoli_lang` ON (`mg_articoli_lang`.`id_record` = `mg_articoli`.`id` AND `mg_articoli_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE `mg_articoli`.`id`='.prepare($id_record)); $record = $dbo->fetchOne('SELECT *, `mg_articoli_lang`.`name` as descrizione, (SELECT COUNT(id) FROM `mg_prodotti` WHERE `id_articolo` = `mg_articoli`.`id`) AS serial FROM `mg_articoli` LEFT JOIN `mg_articoli_lang` ON (`mg_articoli_lang`.`id_record` = `mg_articoli`.`id` AND `mg_articoli_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `mg_articoli`.`id`='.prepare($id_record));
} }

View File

@ -41,7 +41,7 @@ include_once __DIR__.'/../../../core.php';
</div> </div>
<div class="col-md-4"> <div class="col-md-4">
{["type": "select", "label": "<?php echo tr('Causale'); ?>", "name": "causale", "values": "query=SELECT `mg_causali_movimenti`.`id`, `name` as text, `description` as descrizione, `tipo_movimento` FROM `mg_causali_movimenti` LEFT JOIN `mg_causali_movimenti_lang` ON (`mg_causali_movimenti`.`id` = `mg_causali_movimenti_lang`.`id_record` AND `mg_causali_movimenti_lang`.`id_lang` = <?php echo prepare(\Models\Locale::getDefault()->id); ?>)", "value": 1, "required": 1 ]} {["type": "select", "label": "<?php echo tr('Causale'); ?>", "name": "causale", "values": "query=SELECT `mg_causali_movimenti`.`id`, `name` as text, `description` as descrizione, `tipo_movimento` FROM `mg_causali_movimenti` LEFT JOIN `mg_causali_movimenti_lang` ON (`mg_causali_movimenti`.`id` = `mg_causali_movimenti_lang`.`id_record` AND `mg_causali_movimenti_lang`.`id_lang` = <?php echo prepare(Models\Locale::getDefault()->id); ?>)", "value": 1, "required": 1 ]}
<input type="hidden" name="tipo_movimento" id="tipo_movimento" value="carico"> <input type="hidden" name="tipo_movimento" id="tipo_movimento" value="carico">
</div> </div>
</div> </div>

View File

@ -18,12 +18,11 @@
*/ */
include_once __DIR__.'/../../../core.php'; include_once __DIR__.'/../../../core.php';
use Models\Module;
$impegnato = 0; $impegnato = 0;
$ordinato = 0; $ordinato = 0;
$query = "SELECT $query = 'SELECT
`or_ordini`.`id` AS id, `or_ordini`.`id` AS id,
`or_ordini`.`numero`, `or_ordini`.`numero`,
`or_ordini`.`numero_esterno`, `or_ordini`.`numero_esterno`,
@ -37,7 +36,7 @@ $query = "SELECT
INNER JOIN `or_statiordine` ON `or_ordini`.`idstatoordine`=`or_statiordine`.`id` INNER JOIN `or_statiordine` ON `or_ordini`.`idstatoordine`=`or_statiordine`.`id`
INNER JOIN `or_tipiordine` ON `or_ordini`.`idtipoordine`=`or_tipiordine`.`id` INNER JOIN `or_tipiordine` ON `or_ordini`.`idtipoordine`=`or_tipiordine`.`id`
WHERE WHERE
`idarticolo` = ".prepare($articolo->id)." `idarticolo` = '.prepare($articolo->id)."
AND `or_tipiordine`.`dir`= '|dir|' AND `or_tipiordine`.`dir`= '|dir|'
AND (`or_righe_ordini`.`qta` - `or_righe_ordini`.`qta_evasa`) > 0 AND (`or_righe_ordini`.`qta` - `or_righe_ordini`.`qta_evasa`) > 0
AND `or_righe_ordini`.`confermato` = 1 AND `or_righe_ordini`.`confermato` = 1
@ -100,9 +99,9 @@ if (!empty($ordini)) {
<td> <td>
<small> <small>
'.Modules::link('Ordini cliente', $documento['id'], tr('Ordine num. _NUM_ del _DATE_', [ '.Modules::link('Ordini cliente', $documento['id'], tr('Ordine num. _NUM_ del _DATE_', [
'_NUM_' => $numero, '_NUM_' => $numero,
'_DATE_' => dateFormat($documento['data']), '_DATE_' => dateFormat($documento['data']),
])).' ])).'
</small> </small>
</td> </td>
<td class="text-right"> <td class="text-right">
@ -167,9 +166,9 @@ if (!empty($ordini)) {
<td> <td>
<small> <small>
'.Modules::link('Ordini fornitore', $documento['id'], tr('Ordine num. _NUM_ del _DATE_', [ '.Modules::link('Ordini fornitore', $documento['id'], tr('Ordine num. _NUM_ del _DATE_', [
'_NUM_' => $numero, '_NUM_' => $numero,
'_DATE_' => dateFormat($documento['data']), '_DATE_' => dateFormat($documento['data']),
])).' ])).'
</small> </small>
</td> </td>
<td class="text-right"> <td class="text-right">

View File

@ -18,7 +18,6 @@
*/ */
include_once __DIR__.'/../../../core.php'; include_once __DIR__.'/../../../core.php';
use Models\Module;
$record['abilita_serial'] = ($record['serial'] > 0) ? 1 : $record['abilita_serial']; $record['abilita_serial'] = ($record['serial'] > 0) ? 1 : $record['abilita_serial'];
if (empty($record['abilita_serial'])) { if (empty($record['abilita_serial'])) {
@ -155,7 +154,7 @@ if (empty(get('modal'))) {
$module = 'Fatture di acquisto'; $module = 'Fatture di acquisto';
// Ricerca vendite su fatture // Ricerca vendite su fatture
$query = 'SELECT *, `co_tipidocumento_lang`.`name` AS tipo_documento, `co_tipidocumento`.`dir`, `co_documenti`.`numero`, `co_documenti`.`numero_esterno`, `co_documenti`.`data` FROM `co_righe_documenti` INNER JOIN `co_documenti` ON `co_righe_documenti`.`iddocumento` = `co_documenti`.`id` INNER JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento` = `co_tipidocumento`.`id` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento`.`id` = `co_tipidocumento_lang`.`id_record` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE `co_righe_documenti`.`id`='.prepare($acquisto['id_riga_documento']); $query = 'SELECT *, `co_tipidocumento_lang`.`name` AS tipo_documento, `co_tipidocumento`.`dir`, `co_documenti`.`numero`, `co_documenti`.`numero_esterno`, `co_documenti`.`data` FROM `co_righe_documenti` INNER JOIN `co_documenti` ON `co_righe_documenti`.`iddocumento` = `co_documenti`.`id` INNER JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento` = `co_tipidocumento`.`id` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento`.`id` = `co_tipidocumento_lang`.`id_record` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `co_righe_documenti`.`id`='.prepare($acquisto['id_riga_documento']);
$data = $dbo->fetchArray($query); $data = $dbo->fetchArray($query);
$id = $data[0]['iddocumento']; $id = $data[0]['iddocumento'];
@ -176,7 +175,7 @@ if (empty(get('modal'))) {
`dt_righe_ddt` `dt_righe_ddt`
INNER JOIN `dt_ddt` ON `dt_righe_ddt`.`idddt` = `dt_ddt`.`id` INNER JOIN `dt_ddt` ON `dt_righe_ddt`.`idddt` = `dt_ddt`.`id`
INNER JOIN `dt_tipiddt` ON `dt_ddt`.`idtipoddt` = `dt_tipiddt`.`id` INNER JOIN `dt_tipiddt` ON `dt_ddt`.`idtipoddt` = `dt_tipiddt`.`id`
LEFT JOIN `dt_tipiddt_lang` ON (`dt_tipiddt`.`id` = `dt_tipiddt_lang`.`id_record` AND `dt_tipiddt_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') LEFT JOIN `dt_tipiddt_lang` ON (`dt_tipiddt`.`id` = `dt_tipiddt_lang`.`id_record` AND `dt_tipiddt_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).')
WHERE WHERE
`dt_righe_ddt`.`id`='.prepare($acquisto['id_riga_ddt']); `dt_righe_ddt`.`id`='.prepare($acquisto['id_riga_ddt']);
$data = $dbo->fetchArray($query); $data = $dbo->fetchArray($query);
@ -200,7 +199,7 @@ if (empty(get('modal'))) {
`or_righe_ordini` `or_righe_ordini`
INNER JOIN `or_ordini` ON `or_righe_ordini`.`idordine`=`or_ordini`.`id` INNER JOIN `or_ordini` ON `or_righe_ordini`.`idordine`=`or_ordini`.`id`
INNER JOIN `or_tipiordine` ON `or_ordini`.`ididtipordine`=`or_tipiordine`.`id` INNER JOIN `or_tipiordine` ON `or_ordini`.`ididtipordine`=`or_tipiordine`.`id`
LEFT JOIN `or_tipiordine_lang` ON (`or_tipiordine`.`id` = `or_tipiordine_lang`.`id_record` AND `or_tipiordine_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') LEFT JOIN `or_tipiordine_lang` ON (`or_tipiordine`.`id` = `or_tipiordine_lang`.`id_record` AND `or_tipiordine_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).')
WHERE WHERE
`or_righe_ordini`.`id`='.prepare($acquisto['id_riga_ordine']); `or_righe_ordini`.`id`='.prepare($acquisto['id_riga_ordine']);
$data = $dbo->fetchArray($query); $data = $dbo->fetchArray($query);
@ -213,10 +212,10 @@ if (empty(get('modal'))) {
$numero = !empty($data[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_ num. _NUM_ del _DATE_', [ $text = tr('_DOC_ num. _NUM_ del _DATE_', [
'_DOC_' => $data[0]['tipo_documento'], '_DOC_' => $data[0]['tipo_documento'],
'_NUM_' => $numero, '_NUM_' => $numero,
'_DATE_' => Translator::dateToLocale($data[0]['data']), '_DATE_' => Translator::dateToLocale($data[0]['data']),
]).(!empty($extra) ? ' '.$extra : ''); ]).(!empty($extra) ? ' '.$extra : '');
echo Modules::link($module, $id, $text).'<br>'; echo Modules::link($module, $id, $text).'<br>';
} }
@ -265,7 +264,7 @@ if (empty(get('modal'))) {
$module = 'Fatture di vendita'; $module = 'Fatture di vendita';
// Ricerca vendite su fatture // Ricerca vendite su fatture
$query = 'SELECT *, `co_tipidocumento_lang`.`name` AS tipo_documento, `co_tipidocumento`.`dir`, `co_documenti`.`numero`, `co_documenti`.`numero_esterno`,`co_documenti`.`data` FROM `co_righe_documenti` INNER JOIN `co_documenti` ON `co_righe_documenti`.`iddocumento`=`co_documenti`.`id` INNER JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento`=`co_tipidocumento`.`id` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento`.`id`=`co_tipidocumento_lang`.`id_record` AND `co_tipidocumento_lang`.`id_lang`='.prepare(\Models\Locale::getDefault()->id).') WHERE `co_righe_documenti`.`id`='.prepare($vendita['id_riga_documento']); $query = 'SELECT *, `co_tipidocumento_lang`.`name` AS tipo_documento, `co_tipidocumento`.`dir`, `co_documenti`.`numero`, `co_documenti`.`numero_esterno`,`co_documenti`.`data` FROM `co_righe_documenti` INNER JOIN `co_documenti` ON `co_righe_documenti`.`iddocumento`=`co_documenti`.`id` INNER JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento`=`co_tipidocumento`.`id` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento`.`id`=`co_tipidocumento_lang`.`id_record` AND `co_tipidocumento_lang`.`id_lang`='.prepare(Models\Locale::getDefault()->id).') WHERE `co_righe_documenti`.`id`='.prepare($vendita['id_riga_documento']);
$data = $dbo->fetchArray($query); $data = $dbo->fetchArray($query);
$id = $data[0]['iddocumento']; $id = $data[0]['iddocumento'];
@ -286,7 +285,7 @@ if (empty(get('modal'))) {
`dt_righe_ddt` `dt_righe_ddt`
INNER JOIN `dt_ddt` ON `dt_righe_ddt`.`idddt`=`dt_ddt`.`id` INNER JOIN `dt_ddt` ON `dt_righe_ddt`.`idddt`=`dt_ddt`.`id`
INNER JOIN `dt_tipiddt` ON `dt_ddt`.`idtipoddt`=`dt_tipiddt`.`id` INNER JOIN `dt_tipiddt` ON `dt_ddt`.`idtipoddt`=`dt_tipiddt`.`id`
LEFT JOIN `dt_tipiddt_lang` ON (`dt_tipiddt_lang`.`id_record`=`dt_tipiddt`.`id` AND `dt_tipiddt_lang`.`id_lang`='.prepare(\Models\Locale::getDefault()->id).') LEFT JOIN `dt_tipiddt_lang` ON (`dt_tipiddt_lang`.`id_record`=`dt_tipiddt`.`id` AND `dt_tipiddt_lang`.`id_lang`='.prepare(Models\Locale::getDefault()->id).')
WHERE WHERE
`dt_righe_ddt`.`id`='.prepare($vendita['id_riga_ddt']); `dt_righe_ddt`.`id`='.prepare($vendita['id_riga_ddt']);
$data = $dbo->fetchArray($query); $data = $dbo->fetchArray($query);
@ -310,7 +309,7 @@ if (empty(get('modal'))) {
`or_righe_ordini` `or_righe_ordini`
INNER JOIN `or_ordini` ON `or_righe_ordini`.`idordine`=`or_ordini`.`id` INNER JOIN `or_ordini` ON `or_righe_ordini`.`idordine`=`or_ordini`.`id`
INNER JOIN `or_tipiordine` ON `or_ordini`.`idtipoordine`=`or_tipiordine`.`id` INNER JOIN `or_tipiordine` ON `or_ordini`.`idtipoordine`=`or_tipiordine`.`id`
LEFT JOIN `or_tipiordine_lang` ON (`or_tipiordine_lang`.`id_record`=`or_tipiordine`.`id` AND `or_tipiordine_lang`.`id_lang`='.prepare(\Models\Locale::getDefault()->id).') LEFT JOIN `or_tipiordine_lang` ON (`or_tipiordine_lang`.`id_record`=`or_tipiordine`.`id` AND `or_tipiordine_lang`.`id_lang`='.prepare(Models\Locale::getDefault()->id).')
WHERE WHERE
`or_righe_ordini`.`id`='.prepare($vendita['id_riga_ordine']); `or_righe_ordini`.`id`='.prepare($vendita['id_riga_ordine']);
$data = $dbo->fetchArray($query); $data = $dbo->fetchArray($query);
@ -434,8 +433,8 @@ function addSerial(form_id, numero) {
swal({ swal({
title: "'.tr('Nuovi seriali').'", title: "'.tr('Nuovi seriali').'",
html: "'.tr("Confermi l'inserimento di _NUM_ nuovi seriali?", [ html: "'.tr("Confermi l'inserimento di _NUM_ nuovi seriali?", [
'_NUM_' => '" + numero + "', '_NUM_' => '" + numero + "',
]).'", ]).'",
type: "success", type: "success",
showCancelButton: true, showCancelButton: true,
confirmButtonText: "'.tr('Continua').'" confirmButtonText: "'.tr('Continua').'"

View File

@ -19,8 +19,8 @@
include_once __DIR__.'/../../../core.php'; include_once __DIR__.'/../../../core.php';
use Modules\Anagrafiche\Anagrafica;
use Models\Module; use Models\Module;
use Modules\Anagrafiche\Anagrafica;
echo ' echo '
<div class="panel panel-primary"> <div class="panel panel-primary">
@ -152,9 +152,9 @@ if (!empty($movimenti)) {
$data = ($movimento->data ? $movimento->data : $movimento->data_movimento); $data = ($movimento->data ? $movimento->data : $movimento->data_movimento);
echo ' echo '
<td class="text-center">'.dateFormat($data).' <span class="tip" title="'.tr('Creazione movimento: _DATE_ <br>Creatore movimento: _USER_', [ <td class="text-center">'.dateFormat($data).' <span class="tip" title="'.tr('Creazione movimento: _DATE_ <br>Creatore movimento: _USER_', [
'_DATE_' => timestampFormat($movimento->data_movimento), '_DATE_' => timestampFormat($movimento->data_movimento),
'_USER_' => $utente->username, '_USER_' => $utente->username,
]).'"><i class="fa fa-question-circle-o"></i></span> </td>'; ]).'"><i class="fa fa-question-circle-o"></i></span> </td>';
// Operazioni // Operazioni
echo ' echo '

View File

@ -79,8 +79,8 @@ if (!empty($movimenti)) {
// Data // Data
echo ' echo '
<td class="text-center">'.dateFormat($movimento->data).' <span class="tip" title="'.tr('Data di creazione del movimento: _DATE_', [ <td class="text-center">'.dateFormat($movimento->data).' <span class="tip" title="'.tr('Data di creazione del movimento: _DATE_', [
'_DATE_' => timestampFormat($movimento->created_at), '_DATE_' => timestampFormat($movimento->created_at),
]).'"><i class="fa fa-question-circle-o"></i></span> </td>'; ]).'"><i class="fa fa-question-circle-o"></i></span> </td>';
// Operazioni // Operazioni
echo ' echo '

View File

@ -39,7 +39,7 @@ class Articoli extends Resource implements RetrieveInterface, UpdateInterface, C
$joins[] = [ $joins[] = [
'mg_articoli_lang' => 'mg_articoli_lang.id_record = mg_articoli.id AND mg_articoli_lang.id_lang = '.\Models\Locale::getDefault()->id, 'mg_articoli_lang' => 'mg_articoli_lang.id_record = mg_articoli.id AND mg_articoli_lang.id_lang = '.\Models\Locale::getDefault()->id,
]; ];
$joins[] = [ $joins[] = [
'`mg_categorie` AS categorie', '`mg_categorie` AS categorie',
@ -49,7 +49,7 @@ class Articoli extends Resource implements RetrieveInterface, UpdateInterface, C
$joins[] = [ $joins[] = [
'mg_categorie_lang AS categorie_lang' => '`mg_categorie_lang`.`id_record` = `categorie`.`id` AND `mg_categorie_lang`.`id_lang` = '.\Models\Locale::getDefault()->id, 'mg_categorie_lang AS categorie_lang' => '`mg_categorie_lang`.`id_record` = `categorie`.`id` AND `mg_categorie_lang`.`id_lang` = '.\Models\Locale::getDefault()->id,
]; ];
$joins[] = [ $joins[] = [
'`mg_categorie` AS sottocategorie', '`mg_categorie` AS sottocategorie',

View File

@ -22,13 +22,13 @@ namespace Modules\Articoli;
use Common\SimpleModelTrait; use Common\SimpleModelTrait;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\SoftDeletes;
use Models\Module;
use Modules\AttributiCombinazioni\ValoreAttributo; use Modules\AttributiCombinazioni\ValoreAttributo;
use Modules\CombinazioniArticoli\Combinazione; use Modules\CombinazioniArticoli\Combinazione;
use Modules\Interventi\Components\Articolo as ArticoloIntervento; use Modules\Interventi\Components\Articolo as ArticoloIntervento;
use Modules\Iva\Aliquota; use Modules\Iva\Aliquota;
use Plugins\ListinoFornitori\DettaglioFornitore; use Plugins\ListinoFornitori\DettaglioFornitore;
use Traits\RecordTrait; use Traits\RecordTrait;
use Models\Module;
class Articolo extends Model class Articolo extends Model
{ {
@ -61,7 +61,6 @@ class Articolo extends Model
return $model; return $model;
} }
/** /**
* Funzione per registrare un movimento del magazzino in relazione all'articolo corrente, modificando di conseguenza la quantità dell'articolo stesso. * Funzione per registrare un movimento del magazzino in relazione all'articolo corrente, modificando di conseguenza la quantità dell'articolo stesso.
* *
@ -238,12 +237,12 @@ class Articolo extends Model
`mg_articolo_attributo` `mg_articolo_attributo`
INNER JOIN `mg_valori_attributi` ON `mg_valori_attributi`.`id` = `mg_articolo_attributo`.`id_valore` INNER JOIN `mg_valori_attributi` ON `mg_valori_attributi`.`id` = `mg_articolo_attributo`.`id_valore`
INNER JOIN `mg_attributi` ON `mg_attributi`.`id` = `mg_valori_attributi`.`id_attributo` INNER JOIN `mg_attributi` ON `mg_attributi`.`id` = `mg_valori_attributi`.`id_attributo`
LEFT JOIN `mg_attributi_lang` ON (`mg_attributi_lang`.`id_record` = `mg_attributi`.`id` AND `mg_attributi_lang`.`id_lang` = ".prepare(\Models\Locale::getDefault()->id).") LEFT JOIN `mg_attributi_lang` ON (`mg_attributi_lang`.`id_record` = `mg_attributi`.`id` AND `mg_attributi_lang`.`id_lang` = ".prepare(\Models\Locale::getDefault()->id).')
INNER JOIN `mg_articoli` ON `mg_articoli`.`id` = `mg_articolo_attributo`.`id_articolo` INNER JOIN `mg_articoli` ON `mg_articoli`.`id` = `mg_articolo_attributo`.`id_articolo`
INNER JOIN `mg_combinazioni` ON `mg_combinazioni`.`id` = `mg_articoli`.`id_combinazione` INNER JOIN `mg_combinazioni` ON `mg_combinazioni`.`id` = `mg_articoli`.`id_combinazione`
INNER JOIN `mg_attributo_combinazione` ON `mg_attributo_combinazione`.`id_combinazione` = `mg_combinazioni`.`id` AND `mg_attributo_combinazione`.`id_attributo` = `mg_attributi`.`id` INNER JOIN `mg_attributo_combinazione` ON `mg_attributo_combinazione`.`id_combinazione` = `mg_combinazioni`.`id` AND `mg_attributo_combinazione`.`id_attributo` = `mg_attributi`.`id`
WHERE WHERE
`mg_articoli`.`id` = ".prepare($this->id).' `mg_articoli`.`id` = '.prepare($this->id).'
ORDER BY ORDER BY
`mg_attributo_combinazione`.`order`'); `mg_attributo_combinazione`.`order`');
@ -345,8 +344,8 @@ class Articolo extends Model
->first(); ->first();
} }
public static function getTranslatedFields()
public static function getTranslatedFields(){ {
return self::$translated_fields; return self::$translated_fields;
} }
} }

View File

@ -57,7 +57,8 @@ class Categoria extends Model
return 'Categorie articoli'; return 'Categorie articoli';
} }
public static function getTranslatedFields(){ public static function getTranslatedFields()
{
return self::$translated_fields; return self::$translated_fields;
} }
} }

View File

@ -21,6 +21,7 @@ namespace Modules\Articoli\Import;
use Carbon\Carbon; use Carbon\Carbon;
use Importer\CSVImporter; use Importer\CSVImporter;
use Models\Module;
use Models\Upload; use Models\Upload;
use Modules\Anagrafiche\Anagrafica; use Modules\Anagrafiche\Anagrafica;
use Modules\Anagrafiche\Sede; use Modules\Anagrafiche\Sede;
@ -30,7 +31,6 @@ use Modules\Articoli\Categoria;
use Modules\Iva\Aliquota; use Modules\Iva\Aliquota;
use Plugins\ListinoClienti\DettaglioPrezzo; use Plugins\ListinoClienti\DettaglioPrezzo;
use Plugins\ListinoFornitori\DettaglioFornitore; use Plugins\ListinoFornitori\DettaglioFornitore;
use Models\Module;
/** /**
* Struttura per la gestione delle operazioni di importazione (da CSV) degli Articoli. * Struttura per la gestione delle operazioni di importazione (da CSV) degli Articoli.

View File

@ -32,7 +32,7 @@ class Movimento extends Model
protected $document; protected $document;
protected $table = 'mg_movimenti'; protected $table = 'mg_movimenti';
public static function build(Articolo $articolo = null, $qta = null, $descrizione = null, $data = null, $document = null, $id_sede = null) public static function build(?Articolo $articolo = null, $qta = null, $descrizione = null, $data = null, $document = null, $id_sede = null)
{ {
$model = new static(); $model = new static();

View File

@ -19,7 +19,7 @@
include_once __DIR__.'/../../../core.php'; include_once __DIR__.'/../../../core.php';
$rs = $dbo->fetchArray('SELECT `mg_articoli`.`id`, `mg_articoli_lang`.`name` as descrizione, `qta`, `threshold_qta`, `codice`, `um` AS unitamisura FROM `mg_articoli` LEFT JOIN `mg_articoli_lang` ON (`mg_articoli`.`id` = `mg_articoli_lang`.`id_record` AND `mg_articoli_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE `qta` < `threshold_qta` AND `attivo` = 1 AND `deleted_at` IS NULL ORDER BY `qta` ASC'); $rs = $dbo->fetchArray('SELECT `mg_articoli`.`id`, `mg_articoli_lang`.`name` as descrizione, `qta`, `threshold_qta`, `codice`, `um` AS unitamisura FROM `mg_articoli` LEFT JOIN `mg_articoli_lang` ON (`mg_articoli`.`id` = `mg_articoli_lang`.`id_record` AND `mg_articoli_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `qta` < `threshold_qta` AND `attivo` = 1 AND `deleted_at` IS NULL ORDER BY `qta` ASC');
if (!empty($rs)) { if (!empty($rs)) {
echo ' echo '

View File

@ -18,23 +18,20 @@
*/ */
include_once __DIR__.'/../../../core.php'; include_once __DIR__.'/../../../core.php';
use Models\PrintTemplate;
// Trovo id_print della stampa // Trovo id_print della stampa
if(!empty(setting('Magazzino cespiti'))){ if (!empty(setting('Magazzino cespiti'))) {
$id_print = $dbo->fetchOne('SELECT
$id_print = $dbo->fetchOne('SELECT
`zz_prints`.`id` `zz_prints`.`id`
FROM FROM
`zz_prints` `zz_prints`
LEFT JOIN `zz_prints_lang` ON (`zz_prints`.`id` = `zz_prints_lang`.`id_record` AND `zz_prints_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') LEFT JOIN `zz_prints_lang` ON (`zz_prints`.`id` = `zz_prints_lang`.`id_record` AND `zz_prints_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).')
INNER JOIN `zz_modules` ON `zz_prints`.`id_module`=`zz_modules`.`id` INNER JOIN `zz_modules` ON `zz_prints`.`id_module`=`zz_modules`.`id`
LEFT JOIN `zz_modules_lang` ON (`zz_modules`.`id` = `zz_modules_lang`.`id_record` AND `zz_modules_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') LEFT JOIN `zz_modules_lang` ON (`zz_modules`.`id` = `zz_modules_lang`.`id_record` AND `zz_modules_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).')
WHERE WHERE
`zz_modules_lang`.`name`="Articoli" AND `zz_prints_lang`.`name`="Inventario cespiti"')['id']; `zz_modules_lang`.`name`="Articoli" AND `zz_prints_lang`.`name`="Inventario cespiti"')['id'];
echo '
echo '
<form action="'.base_path().'/pdfgen.php?id_print='.$id_print.'" method="post" target="_blank"> <form action="'.base_path().'/pdfgen.php?id_print='.$id_print.'" method="post" target="_blank">
<div class="row"> <div class="row">
@ -58,12 +55,9 @@ if(!empty(setting('Magazzino cespiti'))){
</form> </form>
<script>$(document).ready(init)</script>'; <script>$(document).ready(init)</script>';
} else {
}else{ echo '
echo '
<div class="alert alert-danger" style="margin:0px;"> <div class="alert alert-danger" style="margin:0px;">
'.tr('Seleziona il magazzino cespiti dalle impostazioni per visualizzare la stampa.').' '.tr('Seleziona il magazzino cespiti dalle impostazioni per visualizzare la stampa.').'
</div>'; </div>';
} }

View File

@ -18,16 +18,15 @@
*/ */
include_once __DIR__.'/../../../core.php'; include_once __DIR__.'/../../../core.php';
use Models\PrintTemplate;
// Trovo id_print della stampa // Trovo id_print della stampa
$id_print = $dbo->fetchOne('SELECT $id_print = $dbo->fetchOne('SELECT
`zz_prints`.`id` `zz_prints`.`id`
FROM FROM
`zz_prints` `zz_prints`
LEFT JOIN `zz_prints_lang` ON (`zz_prints`.`id` = `zz_prints_lang`.`id_record` AND `zz_prints_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') LEFT JOIN `zz_prints_lang` ON (`zz_prints`.`id` = `zz_prints_lang`.`id_record` AND `zz_prints_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).')
INNER JOIN `zz_modules` ON `zz_prints`.`id_module`=`zz_modules`.`id` INNER JOIN `zz_modules` ON `zz_prints`.`id_module`=`zz_modules`.`id`
LEFT JOIN `zz_modules_lang` ON (`zz_modules`.`id` = `zz_modules_lang`.`id_record` AND `zz_modules_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') LEFT JOIN `zz_modules_lang` ON (`zz_modules`.`id` = `zz_modules_lang`.`id_record` AND `zz_modules_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).')
WHERE WHERE
`zz_modules_lang`.`name`="Articoli" AND `zz_prints_lang`.`name`="Inventario magazzino"')['id']; `zz_modules_lang`.`name`="Articoli" AND `zz_prints_lang`.`name`="Inventario magazzino"')['id'];

View File

@ -32,7 +32,7 @@ switch (filter('op')) {
flash()->error(tr('Questo nome è già stato utilizzato per un altro attributo.')); flash()->error(tr('Questo nome è già stato utilizzato per un altro attributo.'));
} else { } else {
$attributo = Attributo::build(); $attributo = Attributo::build();
$id_record= $dbo->lastInsertedID(); $id_record = $dbo->lastInsertedID();
$attributo->setTranslation('name', $descrizione); $attributo->setTranslation('name', $descrizione);
$attributo->setTranslation('title', $title); $attributo->setTranslation('title', $title);
$attributo->save(); $attributo->save();
@ -45,7 +45,7 @@ switch (filter('op')) {
$title = post('titolo'); $title = post('titolo');
$attributo_new = (new Attributo())->getByField('name', $descrizione); $attributo_new = (new Attributo())->getByField('name', $descrizione);
if (!empty($attributo_new) && $attributo_new != $id_record){ if (!empty($attributo_new) && $attributo_new != $id_record) {
flash()->error(tr('Questo nome è già stato utilizzato per un altro attributo.')); flash()->error(tr('Questo nome è già stato utilizzato per un altro attributo.'));
} else { } else {
$attributo->setTranslation('title', $title); $attributo->setTranslation('title', $title);

View File

@ -17,7 +17,6 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
include_once __DIR__.'/init.php'; include_once __DIR__.'/init.php';
echo ' echo '

View File

@ -17,7 +17,6 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
echo ' echo '

View File

@ -6,6 +6,7 @@ use Common\SimpleModelTrait;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\SoftDeletes;
use Traits\RecordTrait; use Traits\RecordTrait;
class Attributo extends Model class Attributo extends Model
{ {
use SimpleModelTrait; use SimpleModelTrait;
@ -14,7 +15,6 @@ class Attributo extends Model
protected $table = 'mg_attributi'; protected $table = 'mg_attributi';
protected static $translated_fields = [ protected static $translated_fields = [
'name', 'name',
'title', 'title',
@ -34,13 +34,13 @@ class Attributo extends Model
return $this->hasMany(ValoreAttributo::class, 'id_attributo'); return $this->hasMany(ValoreAttributo::class, 'id_attributo');
} }
public function getModuleAttribute() public function getModuleAttribute()
{ {
return 'Attributi combinazioni'; return 'Attributi combinazioni';
} }
public static function getTranslatedFields(){ public static function getTranslatedFields()
{
return self::$translated_fields; return self::$translated_fields;
} }
} }

View File

@ -13,7 +13,7 @@ class ValoreAttributo extends Model
protected $table = 'mg_valori_attributi'; protected $table = 'mg_valori_attributi';
public static function build(Attributo $attributo = null, $valore = null) public static function build(?Attributo $attributo = null, $valore = null)
{ {
$model = new self(); $model = new self();

View File

@ -17,7 +17,7 @@ echo '
// Tecnico // Tecnico
echo ' echo '
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "'.tr('Tecnico').'", "name": "idtecnico", "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`.`id` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).')) ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` WHERE (`name`=\'Tecnico\') AND `deleted_at` IS NULL ORDER BY `ragione_sociale`", "value": "'.$idtecnico.'" ]} {[ "type": "select", "label": "'.tr('Tecnico').'", "name": "idtecnico", "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`.`id` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).')) ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` WHERE (`name`=\'Tecnico\') AND `deleted_at` IS NULL ORDER BY `ragione_sociale`", "value": "'.$idtecnico.'" ]}
</div>'; </div>';
// Data di partenza // Data di partenza

View File

@ -11,11 +11,11 @@ $rs2 = $dbo->fetchArray('SELECT
`mg_articoli`.`qta` AS qta_magazzino, `mg_articoli`.`qta` AS qta_magazzino,
`mg_articoli_lang`.`name`, `mg_articoli_lang`.`name`,
`mg_articoli`.`prezzo_vendita`, `mg_articoli`.`prezzo_vendita`,
(SELECT `percentuale` FROM `co_iva` LEFT JOIN `co_iva_lang` ON ( `co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE `co_iva`.`id`=`mg_articoli`.`idiva_vendita`) AS prciva_vendita (SELECT `percentuale` FROM `co_iva` LEFT JOIN `co_iva_lang` ON ( `co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `co_iva`.`id`=`mg_articoli`.`idiva_vendita`) AS prciva_vendita
FROM FROM
`mg_movimenti` `mg_movimenti`
INNER JOIN `mg_articoli` ON `mg_movimenti`.`idarticolo`=`mg_articoli`.`id` INNER JOIN `mg_articoli` ON `mg_movimenti`.`idarticolo`=`mg_articoli`.`id`
LEFT JOIN `mg_articoli_lang` ON (`mg_articoli`.`id` = `mg_articoli_lang`.`id_record` AND `mg_articoli_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') LEFT JOIN `mg_articoli_lang` ON (`mg_articoli`.`id` = `mg_articoli_lang`.`id_record` AND `mg_articoli_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).')
WHERE WHERE
`mg_movimenti`.`idsede`='.prepare($id_record).' `mg_movimenti`.`idsede`='.prepare($id_record).'
GROUP BY GROUP BY

View File

@ -55,15 +55,14 @@ switch (filter('op')) {
break; break;
case 'backup': case 'backup':
$ignores = ['dirs' => [], 'files' => []];
$ignores = ['dirs' => [], 'files' => []]; if (filter('exclude') == 'exclude_attachments') {
$ignores = ['dirs' => ['files']];
if (filter('exclude') == 'exclude_attachments'){ } elseif (filter('exclude') == 'only_database') {
$ignores = ['dirs' => ['files']]; $ignores = ['dirs' => ['vendor', 'update', 'templates', 'src', 'plugins', 'modules', 'logs', 'locale', 'lib', 'include', 'files', 'config', 'assets', 'api'], 'files' => ['*.php', '*.md', '*.json', '*.js', '*.xml', '.*']];
}else if (filter('exclude') == 'only_database'){
$ignores = ['dirs' => ['vendor','update','templates','src','plugins','modules','logs','locale','lib','include','files','config','assets','api'], 'files' => ['*.php','*.md','*.json','*.js','*.xml','.*']];
} }
try { try {
$result = Backup::create($ignores); $result = Backup::create($ignores);
@ -93,8 +92,8 @@ switch (filter('op')) {
if (filter('op') == 'restore') { if (filter('op') == 'restore') {
if (!extension_loaded('zip')) { if (!extension_loaded('zip')) {
flash()->error(tr('Estensione zip non supportata!').'<br>'.tr('Verifica e attivala sul tuo file _FILE_', [ flash()->error(tr('Estensione zip non supportata!').'<br>'.tr('Verifica e attivala sul tuo file _FILE_', [
'_FILE_' => '<b>php.ini</b>', '_FILE_' => '<b>php.ini</b>',
])); ]));
return; return;
} }
@ -121,5 +120,4 @@ if (filter('op') == 'restore') {
} catch (Exception $e) { } catch (Exception $e) {
flash()->error(tr('Errore durante il ripristino del backup!').' '.$e->getMessage()); flash()->error(tr('Errore durante il ripristino del backup!').' '.$e->getMessage());
} }
} }

View File

@ -54,8 +54,8 @@ if (string_starts_with($backup_dir, base_dir())) {
echo ' echo '
<div class="alert alert-warning"> <div class="alert alert-warning">
<i class="fa fa-warning"></i> '.tr('Per motivi di sicurezza si consiglia di modificare il percorso della cartella di backup al di fuori della cartella di OSM, possibilmente in una unità esterna. Puoi modificare il percorso di backup dal tuo file _FILE_', [ <i class="fa fa-warning"></i> '.tr('Per motivi di sicurezza si consiglia di modificare il percorso della cartella di backup al di fuori della cartella di OSM, possibilmente in una unità esterna. Puoi modificare il percorso di backup dal tuo file _FILE_', [
'_FILE_' => '<b>config.inc.php</b>', '_FILE_' => '<b>config.inc.php</b>',
]).'. ]).'.
</div>'; </div>';
} }
@ -153,11 +153,11 @@ echo '
<div class="alert bg-light-blue-active"> <div class="alert bg-light-blue-active">
<p>'.$message.'</p><br> <p>'.$message.'</p><br>
<p>'.tr('Spazio totale occupato dai backup: _SPAZIO_', [ <p>'.tr('Spazio totale occupato dai backup: _SPAZIO_', [
'_SPAZIO_' => '<i id="total_size"></i>', '_SPAZIO_' => '<i id="total_size"></i>',
]).'</p> ]).'</p>
<p>'.tr('Numero di backup: _NUM_', [ <p>'.tr('Numero di backup: _NUM_', [
'_NUM_' => count($backups), '_NUM_' => count($backups),
]).'</p> ]).'</p>
</div> </div>
</div> </div>
@ -227,16 +227,16 @@ if (file_exists($backup_dir)) {
$data = $info['YYYY'].'-'.$info['m'].'-'.$info['d']; $data = $info['YYYY'].'-'.$info['m'].'-'.$info['d'];
$ora = $info['H'].':'.$info['i'].':'.$info['s']; $ora = $info['H'].':'.$info['i'].':'.$info['s'];
$tipo = $info['AAAAAAA']; $tipo = $info['AAAAAAA'];
echo ' echo '
<div class="callout callout-info"> <div class="callout callout-info">
<h4>'.tr('Backup del _DATE_ alle _TIME_', [ <h4>'.tr('Backup del _DATE_ alle _TIME_', [
'_DATE_' => Translator::dateToLocale($data), '_DATE_' => Translator::dateToLocale($data),
'_TIME_' => Translator::timeToLocale($ora), '_TIME_' => Translator::timeToLocale($ora),
]).'</h4> ]).'</h4>
<p><small> <p><small>
'.tr('Nome del file').': '.$name.'<br> '.tr('Nome del file').': '.$name.'<br>
'.tr('Tipo').': '.(($tipo == 'PARTIAL')? '🟠 '.tr('Parziale'):'🟢 '.tr('Completo')).'<br> '.tr('Tipo').': '.(($tipo == 'PARTIAL') ? '🟠 '.tr('Parziale') : '🟢 '.tr('Completo')).'<br>
'.tr('Dimensione').': <i id="c-'.$id.'"></i> '.tr('Dimensione').': <i id="c-'.$id.'"></i>
</small></p> </small></p>
@ -282,9 +282,9 @@ if (file_exists($backup_dir)) {
echo ' echo '
<div class="callout callout-warning"> <div class="callout callout-warning">
<h4>'.tr('Backup del _DATE_ alle _TIME_', [ <h4>'.tr('Backup del _DATE_ alle _TIME_', [
'_DATE_' => Translator::dateToLocale($data), '_DATE_' => Translator::dateToLocale($data),
'_TIME_' => Translator::timeToLocale($ora), '_TIME_' => Translator::timeToLocale($ora),
]).'</h4> ]).'</h4>
<p><small> <p><small>
'.tr('Nome del file').': '.$name.'<br> '.tr('Nome del file').': '.$name.'<br>
'.tr('Dimensione').': <i id="n-'.$id.'"></i> '.tr('Dimensione').': <i id="n-'.$id.'"></i>

View File

@ -41,7 +41,7 @@ class Banca extends Model
* *
* @return self * @return self
*/ */
public static function build(Anagrafica $anagrafica = null, $nome = null, $iban = null, $bic = null) public static function build(?Anagrafica $anagrafica = null, $nome = null, $iban = null, $bic = null)
{ {
$model = new static(); $model = new static();

View File

@ -23,8 +23,8 @@ switch (post('op')) {
case 'update': case 'update':
$descrizione = post('descrizione'); $descrizione = post('descrizione');
if ($dbo->fetchNum('SELECT * FROM `dt_aspettobeni` LEFT JOIN `dt_aspettobeni_lang` ON (`dt_aspettobeni`.`id`=`dt_aspettobeni_lang`.`id_record` AND `dt_aspettobeni_lang`.`lang`='.prepare(\Models\Locale::getDefault()->id).') WHERE `name`='.prepare($descrizione).' AND `dt_aspettobeni`.`id`!='.prepare($id_record)) == 0) { if ($dbo->fetchNum('SELECT * FROM `dt_aspettobeni` LEFT JOIN `dt_aspettobeni_lang` ON (`dt_aspettobeni`.`id`=`dt_aspettobeni_lang`.`id_record` AND `dt_aspettobeni_lang`.`lang`='.prepare(Models\Locale::getDefault()->id).') WHERE `name`='.prepare($descrizione).' AND `dt_aspettobeni`.`id`!='.prepare($id_record)) == 0) {
$dbo->query('UPDATE `dt_aspettobeni_lang` SET `name`='.prepare($descrizione).' WHERE `id_record`='.prepare($id_record)).' AND `lang`='.prepare(\Models\Locale::getDefault()->id); $dbo->query('UPDATE `dt_aspettobeni_lang` SET `name`='.prepare($descrizione).' WHERE `id_record`='.prepare($id_record)).' AND `lang`='.prepare(Models\Locale::getDefault()->id);
flash()->info(tr('Salvataggio completato.')); flash()->info(tr('Salvataggio completato.'));
} else { } else {
flash()->error(tr("E' già presente un aspetto beni con questa descrizione.")); flash()->error(tr("E' già presente un aspetto beni con questa descrizione."));
@ -38,7 +38,7 @@ switch (post('op')) {
$dbo->query('INSERT INTO `dt_aspettobeni` (`created_at`) VALUES (NOW())'); $dbo->query('INSERT INTO `dt_aspettobeni` (`created_at`) VALUES (NOW())');
$id_record = $dbo->lastInsertedID(); $id_record = $dbo->lastInsertedID();
$dbo->query('INSERT INTO `dt_aspettobeni_lang` (`name`, `id_record`, `id_lang`) VALUES ('.prepare($descrizione).', '.prepare($id_record).', '.prepare(\Models\Locale::getDefault()->id).')'); $dbo->query('INSERT INTO `dt_aspettobeni_lang` (`name`, `id_record`, `id_lang`) VALUES ('.prepare($descrizione).', '.prepare($id_record).', '.prepare(Models\Locale::getDefault()->id).')');
if (isAjaxRequest()) { if (isAjaxRequest()) {
echo json_encode(['id' => $id_record, 'text' => $descrizione]); echo json_encode(['id' => $id_record, 'text' => $descrizione]);

View File

@ -21,7 +21,7 @@ include_once __DIR__.'/../../../core.php';
switch ($resource) { switch ($resource) {
case 'aspetto-beni': case 'aspetto-beni':
$query = 'SELECT `dt_aspettobeni`.`id`, `dt_aspettobeni_lang`.`name` as descrizione FROM `dt_aspettobeni` LEFT JOIN `dt_aspettobeni_lang` ON (`dt_aspettobeni`.`id`=`dt_aspettobeni_lang`.`id_record` AND `dt_aspettobeni_lang`.`id_lang`='.prepare(\Models\Locale::getDefault()->id).') |where| ORDER BY `name` ASC'; $query = 'SELECT `dt_aspettobeni`.`id`, `dt_aspettobeni_lang`.`name` as descrizione FROM `dt_aspettobeni` LEFT JOIN `dt_aspettobeni_lang` ON (`dt_aspettobeni`.`id`=`dt_aspettobeni_lang`.`id_record` AND `dt_aspettobeni_lang`.`id_lang`='.prepare(Models\Locale::getDefault()->id).') |where| ORDER BY `name` ASC';
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = '`dt_aspettobeni`.`id`='.prepare($element); $filter[] = '`dt_aspettobeni`.`id`='.prepare($element);

View File

@ -20,5 +20,5 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
if (isset($id_record)) { if (isset($id_record)) {
$record = $dbo->fetchOne('SELECT * FROM `dt_aspettobeni` LEFT JOIN `dt_aspettobeni_lang` ON (`dt_aspettobeni`.`id`=`dt_aspettobeni_lang`.`id_record` AND `dt_aspettobeni_lang`.`id_lang`='.prepare(\Models\Locale::getDefault()->id).') WHERE `dt_aspettobeni`.`id`='.prepare($id_record)); $record = $dbo->fetchOne('SELECT * FROM `dt_aspettobeni` LEFT JOIN `dt_aspettobeni_lang` ON (`dt_aspettobeni`.`id`=`dt_aspettobeni_lang`.`id_record` AND `dt_aspettobeni_lang`.`id_lang`='.prepare(Models\Locale::getDefault()->id).') WHERE `dt_aspettobeni`.`id`='.prepare($id_record));
} }

View File

@ -35,7 +35,6 @@ switch (filter('op')) {
$categoria->save(); $categoria->save();
flash()->info(tr('Salvataggio completato!')); flash()->info(tr('Salvataggio completato!'));
} else { } else {
flash()->error(tr('Ci sono stati alcuni errori durante il salvataggio!')); flash()->error(tr('Ci sono stati alcuni errori durante il salvataggio!'));
} }
@ -55,7 +54,7 @@ switch (filter('op')) {
$colore = filter('colore'); $colore = filter('colore');
$id_original = filter('id_original') ?: null; $id_original = filter('id_original') ?: null;
$categoria_new = Categoria::where('id', "=", (new Categoria())->getByField('name', $nome)); $categoria_new = Categoria::where('id', '=', (new Categoria())->getByField('name', $nome));
if (!empty($id_original)) { if (!empty($id_original)) {
$categoria_new = $categoria_new->where('parent', '=', $id_original); $categoria_new = $categoria_new->where('parent', '=', $id_original);
} else { } else {
@ -63,11 +62,11 @@ switch (filter('op')) {
} }
$categoria_new = $categoria_new->first(); $categoria_new = $categoria_new->first();
if (!empty($categoria_new)){ if (!empty($categoria_new)) {
flash()->error(tr('Questo nome è già stato utilizzato per un altra categoria.')); flash()->error(tr('Questo nome è già stato utilizzato per un altra categoria.'));
} else { } else {
$categoria = Categoria::build($nota, $colore); $categoria = Categoria::build($nota, $colore);
$id_record= $dbo->lastInsertedID(); $id_record = $dbo->lastInsertedID();
$categoria->parent = $id_original; $categoria->parent = $id_original;
$categoria->setTranslation('name', $nome); $categoria->setTranslation('name', $nome);
$categoria->save(); $categoria->save();
@ -76,7 +75,7 @@ switch (filter('op')) {
'_TYPE_' => 'categoria', '_TYPE_' => 'categoria',
])); ]));
} }
if (isAjaxRequest()) { if (isAjaxRequest()) {
echo json_encode(['id' => $id_record, 'text' => $nome]); echo json_encode(['id' => $id_record, 'text' => $nome]);
} else { } else {

View File

@ -99,8 +99,8 @@ if (!empty($elementi)) {
<div class="box box-warning collapsable collapsed-box"> <div class="box box-warning collapsable collapsed-box">
<div class="box-header with-border"> <div class="box-header with-border">
<h3 class="box-title"><i class="fa fa-warning"></i> '.tr('Articoli collegati: _NUM_', [ <h3 class="box-title"><i class="fa fa-warning"></i> '.tr('Articoli collegati: _NUM_', [
'_NUM_' => count($elementi), '_NUM_' => count($elementi),
]).'</h3> ]).'</h3>
<div class="box-tools pull-right"> <div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-plus"></i></button> <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-plus"></i></button>
</div> </div>
@ -110,8 +110,8 @@ if (!empty($elementi)) {
foreach ($elementi as $elemento) { foreach ($elementi as $elemento) {
$descrizione = tr('Articolo _CODICE_', [ $descrizione = tr('Articolo _CODICE_', [
'_CODICE_' => !empty($elemento['codice']) ? $elemento['codice'] : $elemento['barcode'], '_CODICE_' => !empty($elemento['codice']) ? $elemento['codice'] : $elemento['barcode'],
]); ]);
$modulo = 'Articoli'; $modulo = 'Articoli';
$id = $elemento['id']; $id = $elemento['id'];

View File

@ -21,7 +21,7 @@ include_once __DIR__.'/../../core.php';
use Modules\Articoli\Categoria; use Modules\Articoli\Categoria;
if (isset($id_record)) { if (isset($id_record)) {
$record = $dbo->fetchOne('SELECT * FROM `mg_categorie` LEFT JOIN `mg_categorie_lang` ON (`mg_categorie`.`id`=`mg_categorie_lang`.`id_record` AND `mg_categorie_lang`.`id_lang`='.prepare(\Models\Locale::getDefault()->id).') WHERE `mg_categorie`.`id`='.prepare($id_record)); $record = $dbo->fetchOne('SELECT * FROM `mg_categorie` LEFT JOIN `mg_categorie_lang` ON (`mg_categorie`.`id`=`mg_categorie_lang`.`id_record` AND `mg_categorie_lang`.`id_lang`='.prepare(Models\Locale::getDefault()->id).') WHERE `mg_categorie`.`id`='.prepare($id_record));
$categoria = Categoria::find($id_record); $categoria = Categoria::find($id_record);
} }

View File

@ -18,8 +18,8 @@
*/ */
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
use Modules\Articoli\Categoria;
use Modules\Articoli\Articolo; use Modules\Articoli\Articolo;
use Modules\Articoli\Categoria;
$subcategorie = Categoria::where('parent', '=', $id_record)->get(); $subcategorie = Categoria::where('parent', '=', $id_record)->get();

View File

@ -26,7 +26,7 @@ switch (post('op')) {
$descrizione = post('descrizione'); $descrizione = post('descrizione');
$categoria_new = Categoria::where('id', '=', (new Categoria())->getByField('name', $descrizione))->where('deleted_at', '=', null)->first(); $categoria_new = Categoria::where('id', '=', (new Categoria())->getByField('name', $descrizione))->where('deleted_at', '=', null)->first();
if (!empty($categoria_new) && $categoria_new->id != $id_record){ if (!empty($categoria_new) && $categoria_new->id != $id_record) {
flash()->error(tr('Categoria _NAME_ già esistente!', [ flash()->error(tr('Categoria _NAME_ già esistente!', [
'_NAME_' => $descrizione, '_NAME_' => $descrizione,
])); ]));
@ -45,7 +45,7 @@ switch (post('op')) {
$descrizione = post('descrizione'); $descrizione = post('descrizione');
$categoria_new = Categoria::where('id', '=', (new Categoria())->getByField('name', $descrizione))->where('deleted_at', '=', null)->first(); $categoria_new = Categoria::where('id', '=', (new Categoria())->getByField('name', $descrizione))->where('deleted_at', '=', null)->first();
if (!empty($categoria_new) && $categoria_new->id != $id_record){ if (!empty($categoria_new) && $categoria_new->id != $id_record) {
flash()->error(tr('Categoria _NAME_ già esistente!', [ flash()->error(tr('Categoria _NAME_ già esistente!', [
'_NAME_' => $descrizione, '_NAME_' => $descrizione,
])); ]));
@ -54,7 +54,7 @@ switch (post('op')) {
$id_record = $dbo->lastInsertedID(); $id_record = $dbo->lastInsertedID();
$categoria->setTranslation('name', $descrizione); $categoria->setTranslation('name', $descrizione);
$categoria->save(); $categoria->save();
if (isAjaxRequest()) { if (isAjaxRequest()) {
echo json_encode(['id' => $id_record, 'text' => $descrizione]); echo json_encode(['id' => $id_record, 'text' => $descrizione]);
} }

View File

@ -21,7 +21,7 @@ include_once __DIR__.'/../../../core.php';
switch ($resource) { switch ($resource) {
case 'categorie_documenti': case 'categorie_documenti':
$query = 'SELECT `do_categorie`.`id`, `do_categorie_lang`.`name` as descrizione FROM `do_categorie` LEFT JOIN `do_categorie_lang` ON (`do_categorie_lang`.`id_record` = `do_categorie`.`id` AND `do_categorie_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).')|where| ORDER BY `name` ASC'; $query = 'SELECT `do_categorie`.`id`, `do_categorie_lang`.`name` as descrizione FROM `do_categorie` LEFT JOIN `do_categorie_lang` ON (`do_categorie_lang`.`id_record` = `do_categorie`.`id` AND `do_categorie_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).')|where| ORDER BY `name` ASC';
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = '`do_categorie`.`id`='.prepare($element); $filter[] = '`do_categorie`.`id`='.prepare($element);

View File

@ -23,8 +23,8 @@ include_once __DIR__.'/../../core.php';
if ($record['doc_associati'] > 0) { if ($record['doc_associati'] > 0) {
echo ' echo '
<div class="alert alert-warning">'.tr('Non puoi eliminare questa categoria documento!').' '.tr('Ci sono _NUM_ documenti associati!', [ <div class="alert alert-warning">'.tr('Non puoi eliminare questa categoria documento!').' '.tr('Ci sono _NUM_ documenti associati!', [
'_NUM_' => $record['doc_associati'], '_NUM_' => $record['doc_associati'],
]).'</div>'; ]).'</div>';
} }
?><form action="" method="post" id="edit-form"> ?><form action="" method="post" id="edit-form">

View File

@ -24,15 +24,15 @@ use Modules\CategorieDocumentali\Categoria;
if (isset($id_record)) { if (isset($id_record)) {
$categoria = Categoria::find($id_record); $categoria = Categoria::find($id_record);
$record = $dbo->fetchOne("SELECT *, $record = $dbo->fetchOne('SELECT *,
(SELECT COUNT(`id`) FROM `do_documenti` WHERE `idcategoria` = ".prepare($id_record).") AS doc_associati, (SELECT COUNT(`id`) FROM `do_documenti` WHERE `idcategoria` = '.prepare($id_record).") AS doc_associati,
GROUP_CONCAT(`do_permessi`.`id_gruppo` SEPARATOR ',') AS permessi GROUP_CONCAT(`do_permessi`.`id_gruppo` SEPARATOR ',') AS permessi
FROM FROM
`do_categorie` `do_categorie`
LEFT JOIN `do_categorie_lang` ON (`do_categorie_lang`.`id_record` = `do_categorie`.`id` AND `do_categorie_lang`.`id_lang` = ".prepare(\Models\Locale::getDefault()->id).") LEFT JOIN `do_categorie_lang` ON (`do_categorie_lang`.`id_record` = `do_categorie`.`id` AND `do_categorie_lang`.`id_lang` = ".prepare(Models\Locale::getDefault()->id).')
LEFT JOIN `do_permessi` ON `do_permessi`.`id_categoria` = `do_categorie`.`id` LEFT JOIN `do_permessi` ON `do_permessi`.`id_categoria` = `do_categorie`.`id`
WHERE WHERE
`do_categorie`.`id`=".prepare($id_record)." `do_categorie`.`id`='.prepare($id_record).'
GROUP BY GROUP BY
`do_categorie`.`id`"); `do_categorie`.`id`');
} }

View File

@ -24,6 +24,7 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\SoftDeletes;
use Models\Group; use Models\Group;
use Traits\RecordTrait; use Traits\RecordTrait;
class Categoria extends Model class Categoria extends Model
{ {
use SimpleModelTrait; use SimpleModelTrait;
@ -32,7 +33,6 @@ class Categoria extends Model
protected $table = 'do_categorie'; protected $table = 'do_categorie';
protected static $translated_fields = [ protected static $translated_fields = [
'name', 'name',
]; ];
@ -54,8 +54,8 @@ class Categoria extends Model
$database = database(); $database = database();
$database->sync('do_permessi', ['id_categoria' => $this->id], [ $database->sync('do_permessi', ['id_categoria' => $this->id], [
'id_gruppo' => $groups, 'id_gruppo' => $groups,
]); ]);
} }
public function getModuleAttribute() public function getModuleAttribute()
@ -63,7 +63,8 @@ class Categoria extends Model
return 'Categorie documenti'; return 'Categorie documenti';
} }
public static function getTranslatedFields(){ public static function getTranslatedFields()
{
return self::$translated_fields; return self::$translated_fields;
} }
} }

View File

@ -19,8 +19,8 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
use Modules\Checklists\Check;
use Models\Module; use Models\Module;
use Modules\Checklists\Check;
$modulo_impianti = (new Module())->getByField('name', 'Impianti'); $modulo_impianti = (new Module())->getByField('name', 'Impianti');

View File

@ -101,8 +101,8 @@ if (!empty($elementi)) {
<div class="box box-warning collapsable collapsed-box"> <div class="box box-warning collapsable collapsed-box">
<div class="box-header with-border"> <div class="box-header with-border">
<h3 class="box-title"><i class="fa fa-warning"></i> '.tr('Impianti collegati: _NUM_', [ <h3 class="box-title"><i class="fa fa-warning"></i> '.tr('Impianti collegati: _NUM_', [
'_NUM_' => count($elementi), '_NUM_' => count($elementi),
]).'</h3> ]).'</h3>
<div class="box-tools pull-right"> <div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-plus"></i></button> <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-plus"></i></button>
</div> </div>
@ -112,8 +112,8 @@ if (!empty($elementi)) {
foreach ($elementi as $elemento) { foreach ($elementi as $elemento) {
$descrizione = tr('Impianto _MATRICOLA_', [ $descrizione = tr('Impianto _MATRICOLA_', [
'_MATRICOLA_' => $elemento['matricola'], '_MATRICOLA_' => $elemento['matricola'],
]); ]);
$modulo = 'Impianti'; $modulo = 'Impianti';
$id = $elemento['id']; $id = $elemento['id'];

View File

@ -25,7 +25,7 @@ switch (filter('op')) {
$predefined = post('predefined'); $predefined = post('predefined');
if (isset($descrizione)) { if (isset($descrizione)) {
if ($dbo->fetchNum('SELECT * FROM `dt_causalet` LEFT JOIN `dt_causalet_lang` ON (`dt_causalet`.`id` = `dt_causalet_lang`.`id_record` AND `dt_causalet_lang`.`id_lang` ='.prepare(\Models\Locale::getDefault()->id).') WHERE `deleted_at` IS NULL AND `name`='.prepare($descrizione).' AND `dt_causalet`.`id`!='.prepare($id_record)) == 0) { if ($dbo->fetchNum('SELECT * FROM `dt_causalet` LEFT JOIN `dt_causalet_lang` ON (`dt_causalet`.`id` = `dt_causalet_lang`.`id_record` AND `dt_causalet_lang`.`id_lang` ='.prepare(Models\Locale::getDefault()->id).') WHERE `deleted_at` IS NULL AND `name`='.prepare($descrizione).' AND `dt_causalet`.`id`!='.prepare($id_record)) == 0) {
if (!empty($predefined)) { if (!empty($predefined)) {
$dbo->query('UPDATE dt_causalet SET predefined = 0'); $dbo->query('UPDATE dt_causalet SET predefined = 0');
} }
@ -39,7 +39,7 @@ switch (filter('op')) {
$dbo->update('dt_causalet_lang', [ $dbo->update('dt_causalet_lang', [
'name' => $descrizione, 'name' => $descrizione,
], ['id_record' => $id_record, 'id_lang' => \Models\Locale::getDefault()->id]); ], ['id_record' => $id_record, 'id_lang' => Models\Locale::getDefault()->id]);
flash()->info(tr('Salvataggio completato!')); flash()->info(tr('Salvataggio completato!'));
} else { } else {
@ -55,7 +55,7 @@ switch (filter('op')) {
$descrizione = filter('descrizione'); $descrizione = filter('descrizione');
if (isset($descrizione)) { if (isset($descrizione)) {
if ($dbo->fetchNum('SELECT * FROM `dt_causalet` LEFT JOIN `dt_causalet_lang` ON (`dt_causalet`.`id` = `dt_causalet_lang`.`id_record` AND `dt_causalet_lang`.`id_lang` ='.prepare(\Models\Locale::getDefault()->id).') WHERE `deleted_at` IS NULL AND `name`='.prepare($descrizione)) == 0) { if ($dbo->fetchNum('SELECT * FROM `dt_causalet` LEFT JOIN `dt_causalet_lang` ON (`dt_causalet`.`id` = `dt_causalet_lang`.`id_record` AND `dt_causalet_lang`.`id_lang` ='.prepare(Models\Locale::getDefault()->id).') WHERE `deleted_at` IS NULL AND `name`='.prepare($descrizione)) == 0) {
$dbo->insert('dt_causalet', [ $dbo->insert('dt_causalet', [
'is_importabile' => 1, 'is_importabile' => 1,
]); ]);
@ -63,7 +63,7 @@ switch (filter('op')) {
$dbo->insert('dt_causalet_lang', [ $dbo->insert('dt_causalet_lang', [
'name' => $descrizione, 'name' => $descrizione,
'id_record' => $id_record, 'id_record' => $id_record,
'id_lang' => \Models\Locale::getDefault()->id, 'id_lang' => Models\Locale::getDefault()->id,
]); ]);
if (isAjaxRequest()) { if (isAjaxRequest()) {
@ -92,6 +92,6 @@ switch (filter('op')) {
} }
flash()->info(tr('Causale di trasporto eliminata.')); flash()->info(tr('Causale di trasporto eliminata.'));
break; break;
} }

View File

@ -21,7 +21,7 @@ include_once __DIR__.'/../../../core.php';
switch ($resource) { switch ($resource) {
case 'causali': case 'causali':
$query = 'SELECT `dt_causalet`.`id`, `dt_causalet_lang`.`name` as descrizione FROM dt_causalet LEFT JOIN `dt_causalet_lang` ON (`dt_causalet`.`id` = `dt_causalet_lang`.`id_record` AND `dt_causalet_lang`.`id_lang` ='.prepare(\Models\Locale::getDefault()->id).') |where| ORDER BY `name` ASC'; $query = 'SELECT `dt_causalet`.`id`, `dt_causalet_lang`.`name` as descrizione FROM dt_causalet LEFT JOIN `dt_causalet_lang` ON (`dt_causalet`.`id` = `dt_causalet_lang`.`id_record` AND `dt_causalet_lang`.`id_lang` ='.prepare(Models\Locale::getDefault()->id).') |where| ORDER BY `name` ASC';
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = '`dt_causalet`.`id`='.prepare($element); $filter[] = '`dt_causalet`.`id`='.prepare($element);

View File

@ -20,5 +20,5 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
if (isset($id_record)) { if (isset($id_record)) {
$record = $dbo->fetchOne('SELECT * FROM `dt_causalet` LEFT JOIN `dt_causalet_lang` ON (`dt_causalet`.`id` = `dt_causalet_lang`.`id_record` AND `dt_causalet_lang`.`id_lang` ='.prepare(\Models\Locale::getDefault()->id).') WHERE `dt_causalet`.`id`='.prepare($id_record)); $record = $dbo->fetchOne('SELECT * FROM `dt_causalet` LEFT JOIN `dt_causalet_lang` ON (`dt_causalet`.`id` = `dt_causalet_lang`.`id_record` AND `dt_causalet_lang`.`id_lang` ='.prepare(Models\Locale::getDefault()->id).') WHERE `dt_causalet`.`id`='.prepare($id_record));
} }

View File

@ -24,11 +24,11 @@ switch (filter('op')) {
if (isset($id_record)) { if (isset($id_record)) {
$database->update('mg_causali_movimenti', [ $database->update('mg_causali_movimenti', [
'tipo_movimento' => post('tipo_movimento'), 'tipo_movimento' => post('tipo_movimento'),
], ['id' => $id_record,]); ], ['id' => $id_record]);
$database->update('mg_causali_movimenti_lang', [ $database->update('mg_causali_movimenti_lang', [
'name' => post('nome'), 'name' => post('nome'),
'description' => post('descrizione'), 'description' => post('descrizione'),
], ['id_record' => $id_record, 'id_lang' => \Models\Locale::getDefault()->id,]); ], ['id_record' => $id_record, 'id_lang' => Models\Locale::getDefault()->id]);
} else { } else {
flash()->error(tr('Ci sono stati alcuni errori durante il salvataggio')); flash()->error(tr('Ci sono stati alcuni errori durante il salvataggio'));
} }
@ -44,7 +44,7 @@ switch (filter('op')) {
'name' => post('nome'), 'name' => post('nome'),
'description' => post('descrizione'), 'description' => post('descrizione'),
'id_record' => $id_record, 'id_record' => $id_record,
'id_lang' => \Models\Locale::getDefault()->id, 'id_lang' => Models\Locale::getDefault()->id,
]); ]);
break; break;

View File

@ -20,5 +20,5 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
if (isset($id_record)) { if (isset($id_record)) {
$record = $dbo->fetchOne('SELECT * FROM `mg_causali_movimenti` LEFT JOIN `mg_causali_movimenti_lang` ON (`mg_causali_movimenti`.`id` = `mg_causali_movimenti_lang`.`id_record` AND `mg_causali_movimenti_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE `mg_causali_movimenti`.`id`='.prepare($id_record)); $record = $dbo->fetchOne('SELECT * FROM `mg_causali_movimenti` LEFT JOIN `mg_causali_movimenti_lang` ON (`mg_causali_movimenti`.`id` = `mg_causali_movimenti_lang`.`id_record` AND `mg_causali_movimenti_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `mg_causali_movimenti`.`id`='.prepare($id_record));
} }

View File

@ -30,11 +30,11 @@ echo '
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "select", "label": "'.tr('Modulo del template').'", "name": "module", "values": "query=SELECT `zz_modules`.`id`, `title` AS descrizione FROM `zz_modules` LEFT JOIN `zz_modules_lang` ON (`zz_modules`.`id` = `zz_modules_lang`.`id_record` AND `zz_modules_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE `enabled` = 1", "value": "'.$record['id_module'].'", "disabled": "'.!empty($record['id_plugin']).'" ]} {[ "type": "select", "label": "'.tr('Modulo del template').'", "name": "module", "values": "query=SELECT `zz_modules`.`id`, `title` AS descrizione FROM `zz_modules` LEFT JOIN `zz_modules_lang` ON (`zz_modules`.`id` = `zz_modules_lang`.`id_record` AND `zz_modules_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `enabled` = 1", "value": "'.$record['id_module'].'", "disabled": "'.!empty($record['id_plugin']).'" ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "select", "label": "'.tr('Plugin del template').'", "name": "plugin", "values": "query=SELECT `zz_plugins`.`id`, `title` AS descrizione FROM `zz_plugins` LEFT JOIN `zz_plugins_lang` ON (`zz_plugins`.`id` = `zz_plugins_lang`.`id_record` AND `zz_plugins_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE `enabled` = 1", "value": "'.$record['id_plugin'].'", "disabled": "'.!empty($record['id_module']).'" ]} {[ "type": "select", "label": "'.tr('Plugin del template').'", "name": "plugin", "values": "query=SELECT `zz_plugins`.`id`, `title` AS descrizione FROM `zz_plugins` LEFT JOIN `zz_plugins_lang` ON (`zz_plugins`.`id` = `zz_plugins_lang`.`id_record` AND `zz_plugins_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `enabled` = 1", "value": "'.$record['id_plugin'].'", "disabled": "'.!empty($record['id_module']).'" ]}
</div> </div>
</div> </div>

View File

@ -35,12 +35,12 @@ echo '
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
'.input([ '.input([
'type' => 'ckeditor', 'type' => 'ckeditor',
'label' => tr('Contenuto'), 'label' => tr('Contenuto'),
'name' => 'content', 'name' => 'content',
'required' => 1, 'required' => 1,
'value' => '', 'value' => '',
]).' ]).'
</div> </div>
</div> </div>
@ -56,7 +56,7 @@ echo '
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "'.tr('Gruppo assegnato').'", "name": "group_id", "values": "query=SELECT `zz_groups`.`id`, `name` AS text FROM `zz_groups` LEFT JOIN `zz_groups_lang` ON (`zz_groups`.`id` = `zz_groups_lang`.`id_record` AND `zz_groups_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).')" ]} {[ "type": "select", "label": "'.tr('Gruppo assegnato').'", "name": "group_id", "values": "query=SELECT `zz_groups`.`id`, `name` AS text FROM `zz_groups` LEFT JOIN `zz_groups_lang` ON (`zz_groups`.`id` = `zz_groups_lang`.`id_record` AND `zz_groups_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).')" ]}
</div> </div>
<div class="col-md-6"> <div class="col-md-6">

View File

@ -44,7 +44,7 @@ echo '
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "'.tr('Gruppo assegnato').'", "name": "group_id", "values": "query=SELECT `zz_groups`.`id`, `name` AS text FROM `zz_groups` LEFT JOIN `zz_groups_lang` ON (`zz_groups`.`id` = `zz_groups_lang`.`id_record` AND `zz_groups_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).')" ]} {[ "type": "select", "label": "'.tr('Gruppo assegnato').'", "name": "group_id", "values": "query=SELECT `zz_groups`.`id`, `name` AS text FROM `zz_groups` LEFT JOIN `zz_groups_lang` ON (`zz_groups`.`id` = `zz_groups_lang`.`id_record` AND `zz_groups_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).')" ]}
</div> </div>
</div> </div>

View File

@ -37,11 +37,11 @@ echo '
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "select", "label": "'.tr('Modulo del template').'", "name": "module", "values": "query=SELECT `zz_modules`.`id`, `title` AS descrizione FROM `zz_modules` LEFT JOIN `zz_modules_lang` ON (`zz_modules`.`id` = `zz_modules_lang`.`id_record` AND `zz_modules_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE `enabled` = 1", "value": "'.$record->id_module.'", "disabled": "'.!empty($record->id_plugin).'" ]} {[ "type": "select", "label": "'.tr('Modulo del template').'", "name": "module", "values": "query=SELECT `zz_modules`.`id`, `title` AS descrizione FROM `zz_modules` LEFT JOIN `zz_modules_lang` ON (`zz_modules`.`id` = `zz_modules_lang`.`id_record` AND `zz_modules_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `enabled` = 1", "value": "'.$record->id_module.'", "disabled": "'.!empty($record->id_plugin).'" ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "select", "label": "'.tr('Plugin del template').'", "name": "plugin", "values": "query=SELECT `zz_plugins`.`id`, `zz_plugins_lang`.`title` AS descrizione, `zz_modules_lang`.`name` AS optgroup FROM zz_plugins INNER JOIN `zz_modules` ON `zz_plugins`.`id_module_to` = `zz_modules`.`id` LEFT JOIN `zz_modules_lang` ON (`zz_modules`.`id` = `zz_modules_lang`.`id_record` AND `zz_modules_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') LEFT JOIN `zz_plugins_lang` ON (`zz_plugins`.`id` = `zz_plugins_lang`.`id_record` AND `zz_plugins_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE `enabled` = 1", "value": "'.$record->id_plugin.'", "disabled": "'.!empty($record->id_module).'" ]} {[ "type": "select", "label": "'.tr('Plugin del template').'", "name": "plugin", "values": "query=SELECT `zz_plugins`.`id`, `zz_plugins_lang`.`title` AS descrizione, `zz_modules_lang`.`name` AS optgroup FROM zz_plugins INNER JOIN `zz_modules` ON `zz_plugins`.`id_module_to` = `zz_modules`.`id` LEFT JOIN `zz_modules_lang` ON (`zz_modules`.`id` = `zz_modules_lang`.`id_record` AND `zz_modules_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') LEFT JOIN `zz_plugins_lang` ON (`zz_plugins`.`id` = `zz_plugins_lang`.`id_record` AND `zz_plugins_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `enabled` = 1", "value": "'.$record->id_plugin.'", "disabled": "'.!empty($record->id_module).'" ]}
</div> </div>
</div> </div>
</div> </div>
@ -92,12 +92,12 @@ echo '
<div class="col-md-7"> <div class="col-md-7">
'.input([ '.input([
'type' => 'ckeditor', 'type' => 'ckeditor',
'label' => tr('Contenuto'), 'label' => tr('Contenuto'),
'name' => 'content', 'name' => 'content',
'required' => 1, 'required' => 1,
'value' => '', 'value' => '',
]).' ]).'
</div> </div>
<div class="col-md-5 text-center"> <div class="col-md-5 text-center">

View File

@ -19,8 +19,8 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
use Modules\Checklists\Checklist;
use Models\Module; use Models\Module;
use Modules\Checklists\Checklist;
$checklist_module = Module::find((new Module())->getByField('name', 'Checklists')); $checklist_module = Module::find((new Module())->getByField('name', 'Checklists'));

View File

@ -52,9 +52,9 @@ if (!function_exists('renderChecklist')) {
$result .= ' $result .= '
<td style="border-top:0px;"> <td style="border-top:0px;">
<span class="label label-default pull-right verificato '.(!$check->checked_at ? 'hidden' : '').'" style="margin-right:5px;padding:6px 8px;">'.(!empty($check->checked_at) ? tr('Verificato da _NAME_ il _DATE_', [ <span class="label label-default pull-right verificato '.(!$check->checked_at ? 'hidden' : '').'" style="margin-right:5px;padding:6px 8px;">'.(!empty($check->checked_at) ? tr('Verificato da _NAME_ il _DATE_', [
'_NAME_' => $check->checkUser->username, '_NAME_' => $check->checkUser->username,
'_DATE_' => timestampFormat($check->checked_at), '_DATE_' => timestampFormat($check->checked_at),
]) : '').' ]) : '').'
</span> </span>
</td>'; </td>';

Some files were not shown because too many files have changed in this diff Show More