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

View File

@ -51,7 +51,7 @@ echo '
</a>
</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
foreach ($plugins as $plugin) {

View File

@ -18,7 +18,7 @@
*/
// Rimozione header X-Powered-By
//header_remove('X-Powered-By');
// header_remove('X-Powered-By');
// Impostazioni di configurazione PHP
date_default_timezone_set('Europe/Rome');
@ -55,7 +55,7 @@ $rootdir = ROOTDIR;
$baseurl = BASEURL;
// Controllo che le intestazioni non siano già state inviate.
if (!headers_sent()){
if (!headers_sent()) {
// Sicurezza della sessioni
ini_set('session.cookie_samesite', 'lax');
ini_set('session.use_trans_sid', '0');
@ -265,7 +265,6 @@ if (!API\Response::isAPIRequest()) {
}
Permissions::check();
}
// Retrocompatibilità
@ -308,7 +307,7 @@ foreach ($list as $file) {
// Inizializzazione traduzioni
if (database()->tableExists('zz_settings') && database()->tableExists('zz_langs')) {
$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>
<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) {
echo '
<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`.`qta_minima`, 0) AS qta_minima
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']).'
WHERE
`mg_articoli`.`id` = '.prepare($result['idarticolo']));

View File

@ -17,12 +17,12 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
use Models\Module;
use Modules\Contratti\Stato as StatoContratto;
use Modules\DDT\Stato;
use Modules\Fatture\Stato as StatoFattura;
use Modules\Ordini\Stato as StatoOrdine;
use Modules\DDT\Stato;
use Plugins\ListinoFornitori\DettaglioFornitore;
use Models\Module;
// Inizializzazione
$documento = $options['documento'];
@ -96,20 +96,20 @@ if (!empty($options['create_document'])) {
$stato_predefinito = (new StatoFattura())->getByField('name', 'Bozza');
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'])) {
$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 {
$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 '
<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 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 class="col-md-6">
@ -121,13 +121,13 @@ if (!empty($options['create_document'])) {
elseif ($final_module->getTranslation('name') == 'Interventi') {
echo '
<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 class="col-md-6">
{[ "type": "select", "label": "'.tr('Tipo').'", "name": "id_tipo_intervento", "required": 1, "ajax-source": "tipiintervento" ]}
</div>';
}
}
// Opzioni aggiuntive per i Contratti
elseif ($final_module->getTranslation('name') == 'Contratti') {
@ -135,7 +135,7 @@ if (!empty($options['create_document'])) {
echo '
<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>';
}
@ -145,7 +145,7 @@ if (!empty($options['create_document'])) {
echo '
<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 class="col-md-6">
@ -159,7 +159,7 @@ if (!empty($options['create_document'])) {
echo '
<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>';
}
@ -343,8 +343,8 @@ foreach ($righe as $i => $riga) {
if (!empty($mancanti)) {
echo '
<br><b><small class="text-danger">'.tr('_NUM_ serial mancanti', [
'_NUM_' => $mancanti,
]).'</small></b>';
'_NUM_' => $mancanti,
]).'</small></b>';
}
}

View File

@ -17,8 +17,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
use Modules\Articoli\Articolo;
use Models\Module;
use Modules\Articoli\Articolo;
$articolo = Articolo::find($result['idarticolo']);
$width = $options['dir'] == 'uscita' && $articolo->fattore_um_secondaria ? 3 : 4;
@ -52,7 +52,7 @@ echo '
if ($options['dir'] == 'uscita' && $articolo->fattore_um_secondaria) {
echo '
<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>
<script>

View File

@ -147,8 +147,8 @@ if (post('db_host') !== null) {
</div>
<div class="box-body">
<p>'.tr('Sembra che non ci siano i permessi di scrittura sul file _FILE_', [
'_FILE_' => '<b>config.inc.php</b>',
]).'</p>
'_FILE_' => '<b>config.inc.php</b>',
]).'</p>
<form action="'.base_path().'/index.php?action=updateconfig&firstuse=true" method="post">
<div class="hide">
<input type="hidden" name="db_name" value="'.$db_name.'">
@ -169,8 +169,8 @@ if (post('db_host') !== null) {
</div>
<div class="box-body">
<p>'.tr('Inserire il seguente testo nel file _FILE_', [
'_FILE_' => '<b>config.inc.php</b>',
]).'</p>
'_FILE_' => '<b>config.inc.php</b>',
]).'</p>
<pre class="text-left">'.htmlentities($new_config).'</pre>
</div>
</div>
@ -215,8 +215,8 @@ if (empty($creation) && (!file_exists('config.inc.php') || !$valid_config)) {
<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("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>',
]).'.</p>
'_FILE_' => '<b>config.inc.php</b>',
]).'.</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>
</div>
@ -432,8 +432,8 @@ if (empty($creation) && (!file_exists('config.inc.php') || !$valid_config)) {
echo '
<div id="step-2">
<p>'.tr('OpenSTAManager è tutelato dalla licenza _LICENSE_', [
'_LICENSE_' => 'GPL 3.0',
]).':</p>
'_LICENSE_' => 'GPL 3.0',
]).':</p>
<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>
@ -462,8 +462,8 @@ if (empty($creation) && (!file_exists('config.inc.php') || !$valid_config)) {
<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_)', [
'_FILE_' => '<b>config.inc.php</b>',
]).'</small></p>
'_FILE_' => '<b>config.inc.php</b>',
]).'</small></p>
<hr>';
@ -488,8 +488,8 @@ if (empty($creation) && (!file_exists('config.inc.php') || !$valid_config)) {
</div>
<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>',
]).'.</small>
'_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>
<hr>';
@ -519,8 +519,8 @@ if (empty($creation) && (!file_exists('config.inc.php') || !$valid_config)) {
</div>
<small>'.tr("Si consiglia l'abilitazione dell'estensione _EXT_ di PHP", [
'_EXT_' => 'intl',
]).'.</small>
'_EXT_' => 'intl',
]).'.</small>
<hr>';
}

View File

@ -19,10 +19,10 @@
include_once __DIR__.'/../../core.php';
use Modules\Anagrafiche\Tipo;
use Models\Group;
use Models\Module;
use Models\Setting;
use Models\Group;
use Modules\Anagrafiche\Tipo;
if (Update::isUpdateAvailable() || !$dbo->isInstalled()) {
return;
@ -31,7 +31,7 @@ if (Update::isUpdateAvailable() || !$dbo->isInstalled()) {
$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` 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;
$has_user = $dbo->fetchNum('SELECT `id` FROM `zz_users`') != 0;

View File

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

View File

@ -33,43 +33,43 @@ $sapi_name = php_sapi_name();
$php_interface = '';
switch (true) {
case strpos($sapi_name, 'apache') !== false:
//PHP è in esecuzione come modulo Apache (4)
// PHP è in esecuzione come modulo Apache (4)
$php_interface = 'apache';
break;
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';
break;
case strpos($sapi_name, 'fpm') !== false:
//PHP è in esecuzione come PHP-FPM (9)
// PHP è in esecuzione come PHP-FPM (9)
$php_interface = 'fpm';
break;
case strpos($sapi_name, 'cgi-fcgi') !== false:
//PHP è in esecuzione come FastCGI (8)
// PHP è in esecuzione come FastCGI (8)
$php_interface = 'cgi-fcgi';
break;
case strpos($sapi_name, 'cgi') !== false:
//PHP è in esecuzione come modulo CGI (2)
// PHP è in esecuzione come modulo CGI (2)
$php_interface = 'cgi';
break;
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';
break;
case strpos($sapi_name, 'embed') !== false:
//PHP è incorporato in un'applicazione (5)
// PHP è incorporato in un'applicazione (5)
$php_interface = 'embed';
break;
case strpos($sapi_name, 'litespeed') !== false:
//PHP è in esecuzione come modulo LiteSpeed (6)
// PHP è in esecuzione come modulo LiteSpeed (6)
$php_interface = 'litespeed';
break;
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';
break;
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.';
}
@ -219,8 +219,8 @@ foreach ($settings as $name => $values) {
}
$description = tr('Valore consigliato: _VALUE_ (Valore attuale: _INI_)', [
'_VALUE_' => $description,
'_INI_' => ini_get($name),
'_VALUE_' => $description,
'_INI_' => ini_get($name),
]);
}
@ -242,7 +242,6 @@ foreach ($settings as $name => $values) {
];
}
// MySQL
if ($database->isInstalled()) {
if (method_exists($database, 'isMySQL')) {
@ -254,7 +253,7 @@ if ($database->isInstalled()) {
'minimum' => $database->isMySQL() ? '5.7.0' : '10.1.0',
'maximum' => $database->isMySQL() ? '8.0.99' : '10.6.99',
],
'sort_buffer_size' => [
'type' => 'value',
'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);
if($values['warning'] && $status == 1){
if ($values['warning'] && $status == 1) {
$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 {
$type = tr('Impostazione');
@ -334,8 +332,8 @@ foreach ($db as $name => $values) {
}
$description = tr('Valore consigliato: _VALUE_ (Valore attuale: _INC_)', [
'_VALUE_' => $description,
'_INC_' => Util\FileSystem::formatBytes($inc),
'_VALUE_' => $description,
'_INC_' => Util\FileSystem::formatBytes($inc),
]);
}
@ -449,7 +447,7 @@ foreach ($config_to_check as $name => $values) {
$requirements = [
tr('Apache (_INTERFACE_)', [
'_INTERFACE_' => $php_interface,
'_INTERFACE_' => $php_interface,
]) => $apache,
tr('PHP (_VERSION_ _SUPPORTED_)', [
'_VERSION_' => phpversion(),
@ -457,7 +455,7 @@ $requirements = [
]) => $php,
tr('DBMS (_TYPE_)', [
'_TYPE_' => method_exists($database, 'getType') ? $database->getType() : '',
] ) => $mysql,
]) => $mysql,
tr('Percorsi di servizio') => $directories,
tr('File di servizio') => $files,
tr('Configurazioni') => $config,
@ -466,7 +464,7 @@ $requirements = [
if (!$database->isInstalled() || empty($mysql)) {
unset($requirements[tr('DBMS (_TYPE_)', [
'_TYPE_' => $database->getType(),
] )]);
])]);
}
// Tabelle di riepilogo

View File

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

View File

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

View File

@ -17,8 +17,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
use Util\FileSystem;
use Models\Module;
use Util\FileSystem;
include_once __DIR__.'/../core.php';
@ -414,7 +414,7 @@ if (Auth::check()) {
<li class="nav-button" >
<p style="padding:10px 15px;">&nbsp;</p>
</li>';
//Visualizzo gli hooks solo se non sono stati disabilitati
// Visualizzo gli hooks solo se non sono stati disabilitati
if (!$config['disable_hooks']) {
echo '
<li class="dropdown notifications-menu nav-button">
@ -437,23 +437,23 @@ if (Auth::check()) {
}
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>
</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>
</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>
</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>
</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>
</a></li>
</ul>
@ -524,7 +524,7 @@ if (Auth::check()) {
// Tab dei plugin
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) {
// Badge count per record plugin
$count = 0;
@ -652,7 +652,7 @@ if (!empty($messages['error'])) {
foreach ($messages['error'] as $value) {
echo '
<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.'
</div>';
}
@ -663,7 +663,7 @@ if (!empty($messages['warning'])) {
foreach ($messages['warning'] as $value) {
echo '
<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.'
</div>';
}
@ -685,8 +685,8 @@ if ($free_space < ($space_limit * (1024 ** 3))) {
<i class="fa fa-warning"></i> '.tr('Spazio in esaurimento').'
</h4>
<p>'.tr('Lo spazio a disposizione del gestionale è in esaurimento: sono al momento disponibili _TOT_', [
'_TOT_' => FileSystem::formatBytes($free_space),
]).'.</p>
'_TOT_' => FileSystem::formatBytes($free_space),
]).'.</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>
</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:
*
* @return boolean
* @return bool
*/
function checkPrefix($cellulare) {
function checkPrefix($cellulare)
{
// Array di prefissi telefonici da controllare
$internationalPrefixes = ['+1', '+44', '+49', '+33', '+39']; // Esempi di prefissi
@ -341,39 +340,40 @@ function checkPrefix($cellulare) {
return true; // Un prefisso è già presente
}
}
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
*
*
* @return array
*/
function getSearchValues($id_module) {
function getSearchValues($id_module)
{
$result = [];
if(isset($_SESSION['module_'.$id_module])) {
if (isset($_SESSION['module_'.$id_module])) {
// 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_"
if (!empty($value) && string_starts_with($key, 'search_')) {
$result[str_replace(["search_", "-"], ["", " "], $key)] = $value;
$result[str_replace(['search_', '-'], ['', ' '], $key)] = $value;
}
}
}
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
*
* @return boolean
* @return bool
*/
function hasArticoliFiglio($id_articolo)
{
@ -382,4 +382,4 @@ function hasArticoliFiglio($id_articolo)
} else {
return false;
}
}
}

View File

@ -17,8 +17,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
use Modules\Emails\Template;
use Models\Module;
use Modules\Emails\Template;
include_once __DIR__.'/core.php';
@ -79,7 +79,7 @@ if (sizeof($campi_mancanti) > 0) {
echo '
<div class="alert alert-warning">
<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/>
'.Modules::link('Account email', $smtp['id'], tr('Vai alla scheda account email'), null).'
</div>';
@ -151,7 +151,7 @@ echo '
<div class="row">
<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>';
$uploads = [];

View File

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

View File

@ -30,7 +30,7 @@ include_once __DIR__.'/../../core.php';
</div>
<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>

View File

@ -30,7 +30,7 @@ include_once __DIR__.'/../../core.php';
</div>
<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 class="col-md-2">
@ -49,27 +49,26 @@ include_once __DIR__.'/../../core.php';
$rs_files = Models\Upload::where('id_adapter', $record['id'])->get();
if(sizeof($rs_files)>0) {
echo '
if (sizeof($rs_files) > 0) {
echo '
<div class="row">
<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>
</div>';
}else if($adapter->is_default && $adapter->can_delete){
echo '
} elseif ($adapter->is_default && $adapter->can_delete) {
echo '
<div class="row">
<div class="col-md-12">
<div class="alert alert-warning">L\'adattatore non può essere eliminato.</div>
</div>
</div>';
}else{
echo '
} else {
echo '
<a class="btn btn-danger ask" data-backto="record-list">
<i id ="elimina" class="fa fa-trash"></i> <?php echo tr(\'Elimina\'); ?>
</a>';
}
?>
}
?>
</form>

View File

@ -25,4 +25,4 @@ if (isset($id_record)) {
$adapter = FileAdapter::find($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\FtpConnectionOptions;
class FTPAdapter extends OriginalAdapter {
public function __construct( $options ){
class FTPAdapter extends OriginalAdapter
{
public function __construct($options)
{
$options = json_decode($options, 1);
parent::__construct(FtpConnectionOptions::fromArray($options));
}
}

View File

@ -21,13 +21,12 @@ namespace Modules\FileAdapters\Adapters;
use League\Flysystem\Local\LocalFilesystemAdapter as OriginalAdapter;
class LocalAdapter extends OriginalAdapter {
public function __construct( $options ){
class LocalAdapter extends OriginalAdapter
{
public function __construct($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;
}
public function setIsDefaultAttribute($valore){
self::getAll()->where('id', '!=', $this->id)->each(function($item){
public function setIsDefaultAttribute($valore)
{
self::getAll()->where('id', '!=', $this->id)->each(function ($item) {
$item->attributes['is_default'] = false;
$item->save();
});
@ -47,15 +47,13 @@ class FileAdapter extends Model
$this->attributes['is_default'] = $valore;
}
public static function getDefaultConnector(){
public static function getDefaultConnector()
{
return self::where('is_default', 1)->first();
}
public static function getLocalConnector(){
public static function getLocalConnector()
{
return self::where('is_local', 1)->first();
}
}
}

View File

@ -23,7 +23,6 @@ use League\Flysystem\Filesystem;
class OSMFilesystem extends Filesystem
{
/** @var array Elenco delle tipologie di file pericolose */
protected static $not_allowed_types = [
'php' => 'application/php',
@ -33,9 +32,9 @@ class OSMFilesystem extends Filesystem
'htm' => 'text/html',
];
public function upload($directory, $filename, $contents){
//Verifico se l'esensione non è consentita
public function upload($directory, $filename, $contents)
{
// Verifico se l'esensione non è consentita
$extension = pathinfo($filename, PATHINFO_EXTENSION);
$extension = strtolower($extension);
@ -43,14 +42,16 @@ class OSMFilesystem extends Filesystem
$allowed = self::isSupportedType($extension);
if (!$allowed) {
flash()->error(tr('Estensione non supportata!'));
return false;
}
if(!$this->directoryExists($directory)){
try{
if (!$this->directoryExists($directory)) {
try {
$this->createDirectory($directory);
}catch(\Exception $e){
} catch (\Exception $e) {
flash()->error(tr('Impossibile creare la cartella controllare i permessi!'));
return false;
}
}
@ -59,15 +60,13 @@ class OSMFilesystem extends Filesystem
$filename = random_string().'.'.$extension;
} 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)
{
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">
<i class="fa fa-warning"></i>
'.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>
<table class="table table-bordered table-striped">
@ -108,7 +108,6 @@ if (!empty($errors)) {
</tbody>
</table>';
} else {
OperationLog::setInfo('options', 'OK');
echo '
@ -116,4 +115,4 @@ if (!empty($errors)) {
<i class="fa fa-info-circle"></i> '.tr('Nessun file con problemi di integrità').'.
</div>';
}
OperationLog::build('effettua_controllo');
OperationLog::build('effettua_controllo');

View File

@ -107,7 +107,7 @@ switch ($database->getType()) {
case 'MySQL':
$mysql_min_version = '5.7.0';
$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;
default:
$file_to_check_database = 'mysql.json';
@ -121,8 +121,8 @@ if (empty($data)) {
echo '
<div class="alert alert-warning">
<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>';
return;
@ -147,11 +147,10 @@ if (!empty($results) || !empty($results_settings) || !empty($results_settings_ad
<div class="alert alert-warning">
<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', [
'_FILE_' => '<b>'.$file_to_check_database.'</b>',
'_MYSQL_VERSION_' => '<b>'.$database->getMySQLVersion().'</b>',
'_DBMS_TYPE_' => '<b>'.$database->getType().'</b>',
]).'.
'_FILE_' => '<b>'.$file_to_check_database.'</b>',
'_MYSQL_VERSION_' => '<b>'.$database->getMySQLVersion().'</b>',
'_DBMS_TYPE_' => '<b>'.$database->getType().'</b>',
]).'.
</div>';
foreach ($results as $table => $errors) {

View File

@ -65,8 +65,8 @@ if (function_exists('customComponents')) {
<div class="alert alert-warning">
<i class="fa fa-warning"></i>
<b>'.tr('Attenzione!').'</b> '.tr('Ci sono delle tabelle non previste nella versione standard del gestionale: _LIST_', [
'_LIST_' => implode(', ', $tables),
]).'.
'_LIST_' => implode(', ', $tables),
]).'.
</div>';
}
@ -116,7 +116,7 @@ if (!empty($alerts)) {
echo '
<div class="alert alert-info">
<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>';
foreach ($alerts as $key => $value) {
echo '
@ -175,8 +175,8 @@ function search(button) {
} 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>" : "";
$("#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">';
//Verifiche di integrità
// Verifiche di integrità
echo '
<div class="col-md-4">
<div class="box box-primary">
@ -210,7 +210,7 @@ echo '
</div>
</div>';
//Controllo automatico della presenza di aggiornamenti per il gestionale
// Controllo automatico della presenza di aggiornamenti per il gestionale
echo '
<div class="col-md-4">
@ -235,8 +235,7 @@ echo ' </div>
</div>
</div>';
//Form di caricamento aggiornamenti gestionale o moduli
// Form di caricamento aggiornamenti gestionale o moduli
echo '
<div class="col-md-4">
<div class="box box-primary">

View File

@ -103,8 +103,8 @@ if (!function_exists('customDatabase')) {
function customDatabase()
{
$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` != ''");
$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` != ''");
$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` != ''");
$results = array_merge($modules, $plugins);

View File

@ -20,7 +20,7 @@
namespace Modules\Aggiornamenti\Controlli;
use Models\Module;
use Models\View;
class ColonneDuplicateViste extends Controllo
{
public function getName()
@ -36,7 +36,7 @@ class ColonneDuplicateViste extends Controllo
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');
foreach ($duplicati as $colonna) {
$modulo = Module::find($colonna['id_module']);

View File

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

View File

@ -120,8 +120,8 @@ switch (post('op')) {
]));
// Aggiorno il codice anagrafica se non è già presente, altrimenti lo ignoro
$codice = $anagrafica->codice;
if (!empty($codice)) {
$codice = $anagrafica->codice;
if (!empty($codice)) {
$anagrafiche_codice = Anagrafica::where('codice', $codice)
->where('idanagrafica', '!=', $anagrafica->id)
->get();
@ -193,7 +193,7 @@ switch (post('op')) {
break;
case 'add':
$idtipoanagrafica = (array)post('idtipoanagrafica');
$idtipoanagrafica = (array) post('idtipoanagrafica');
$ragione_sociale = post('ragione_sociale');
$anagrafica = Anagrafica::build($ragione_sociale, post('nome'), post('cognome'), $idtipoanagrafica);
@ -203,7 +203,7 @@ switch (post('op')) {
// Lettura tipologia dell'utente loggato
$agente_is_logged = false;
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) {
if ($rs[$i]['descrizione'] == 'Agente') {

View File

@ -24,7 +24,7 @@ include_once __DIR__.'/../../core.php';
$id_nazione_italia = (new Nazione())->getByField('name', 'Italia');
$tipo = get('tipoanagrafica');
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'];
}
@ -39,7 +39,7 @@ echo '
</div>
<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>
@ -99,7 +99,7 @@ echo '
<div class="row">
<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 class="col-md-4">

View File

@ -108,7 +108,7 @@ foreach ($fields as $name => $value) {
$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) {
$result = [];

View File

@ -44,21 +44,21 @@ switch ($resource) {
`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` 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_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).')
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
(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`
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
`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|
ORDER BY
`ragione_sociale`";
`ragione_sociale`';
foreach ($elements as $element) {
$filter[] = '`an_anagrafiche`.`idanagrafica`='.prepare($element);
@ -115,9 +115,9 @@ switch ($resource) {
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`
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_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
|where|
ORDER BY
@ -144,7 +144,7 @@ switch ($resource) {
break;
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) {
$filter[] = '`an_anagrafiche`.`idanagrafica`='.prepare($element);
@ -171,7 +171,7 @@ switch ($resource) {
* - idanagrafica
*/
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) {
$filter[] = '`an_anagrafiche`.`idanagrafica`='.prepare($element);
@ -209,7 +209,7 @@ switch ($resource) {
break;
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) {
$filter[] = '`an_anagrafiche`.`idanagrafica`='.prepare($element);
@ -241,7 +241,7 @@ switch ($resource) {
break;
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) {
$filter[] = '`an_anagrafiche`.`idanagrafica`='.prepare($element);
@ -250,7 +250,7 @@ switch ($resource) {
$where = [];
if (empty($filter)) {
$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)) {
@ -291,7 +291,7 @@ switch ($resource) {
// Nota Bene: nel campo id viene specificato idtipoanagrafica-idanagrafica -> modulo Utenti e permessi, creazione nuovo utente
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) {
$filter[] = '`an_anagrafiche`.`idanagrafica`='.prepare($element);
@ -427,7 +427,7 @@ switch ($resource) {
break;
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) {
$filter[] = '`an_nazioni`.`id`='.prepare($element);
@ -443,7 +443,7 @@ switch ($resource) {
case 'regioni':
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) {
$filter[] = '`an_regioni`.`id`='.prepare($element);
@ -460,7 +460,7 @@ switch ($resource) {
break;
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) {
$filter[] = '`an_relazioni`.`id`='.prepare($element);
@ -477,7 +477,7 @@ switch ($resource) {
break;
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) {
$filter[] = '`an_provenienze`.`id`='.prepare($element);
@ -490,7 +490,7 @@ switch ($resource) {
break;
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) {
$filter[] = '`an_settori`.`id`='.prepare($element);

View File

@ -26,10 +26,10 @@ include_once __DIR__.'/../../core.php';
switch (post('op')) {
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) {
$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');
// 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/>.
*/
use Models\Module;
use Models\Group;
use Models\Module;
if (in_array($id_cliente, $tipi_anagrafica) or in_array($id_fornitore, $tipi_anagrafica)) {
echo '

View File

@ -18,10 +18,10 @@
*/
use Carbon\Carbon;
use Modules\Anagrafiche\Anagrafica;
use Modules\Banche\Banca;
use Models\Module;
use Models\Plugin;
use Modules\Anagrafiche\Anagrafica;
use Modules\Banche\Banca;
include_once __DIR__.'/../../core.php';
@ -101,7 +101,7 @@ if (sizeof($problemi_anagrafica) > 0) {
</div>
<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>
@ -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\')').'.';
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 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>
@ -539,13 +539,13 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
</div>
<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 class="row">
<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 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="row">
<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 class="col-md-6">
@ -657,8 +657,8 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
<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_', [
'_PATTERN_' => 'RM-123456',
]); ?>" ]}
'_PATTERN_' => 'RM-123456',
]); ?>" ]}
</div>
<div class="col-md-3">
@ -713,7 +713,7 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
<div class="row">
<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
if (in_array($id_azienda, $tipi_anagrafica)) {
echo '
@ -744,16 +744,16 @@ if (setting('Azienda predefinita') == $id_record) {
// Collegamenti diretti
// 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
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
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
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
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>
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() {

View File

@ -40,7 +40,7 @@ if (!empty($id_record)) {
`an_anagrafiche`
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`
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`
WHERE
`an_anagrafiche`.`idanagrafica`='.prepare($id_record));

View File

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

View File

@ -39,7 +39,7 @@ class Anagrafiche extends Resource implements RetrieveInterface, CreateInterface
$joins[] = [
'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];
@ -62,7 +62,7 @@ class Anagrafiche extends Resource implements RetrieveInterface, CreateInterface
$joins[] = [
'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];
}

View File

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

View File

@ -40,7 +40,7 @@ class Sede extends Model
*
* @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();

View File

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

View File

@ -46,7 +46,7 @@ switch ($name) {
['idanagrafica', '<>', $id_record],
])->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
// 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);
if (empty($check)) {
$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,
]);
}
@ -85,31 +85,28 @@ switch ($name) {
break;
case 'codice_intermediario':
if (!empty($anagrafica)){
if (!empty($anagrafica)) {
$value = trim($value);
switch ($anagrafica->tipo) {
case "Azienda":
case "Privato":
$length = 7;
$valido = (strlen($value) === $length ? true : false);
break;
case "Ente pubblico":
$length = 6;
$valido = (strlen($value) === $length ? true : false);
break;
default:
$length = 7;
$valido = (strlen($value) >= $length ? true : false);
break;
case 'Azienda':
case 'Privato':
$length = 7;
$valido = (strlen($value) === $length ? true : false);
break;
case 'Ente pubblico':
$length = 6;
$valido = (strlen($value) === $length ? true : false);
break;
default:
$length = 7;
$valido = (strlen($value) >= $length ? true : false);
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 = [
'result' => $valido,
@ -182,7 +179,6 @@ switch ($name) {
$errors[] = tr("L'email _COD_ non possiede un formato valido.", [
'_COD_' => $value,
]);
}
if (isset($check['smtp-check']) && empty($check['smtp-check'])) {

View File

@ -19,8 +19,8 @@
include_once __DIR__.'/../../core.php';
use Modules\Iva\Aliquota;
use Models\Module;
use Modules\Iva\Aliquota;
$prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA');
$iva_predefinita = setting('Iva predefinita');
@ -50,7 +50,7 @@ $aliquota_predefinita = floatval(Aliquota::find($iva_predefinita)->percentuale);
</div>
<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>
@ -104,7 +104,7 @@ $aliquota_predefinita = floatval(Aliquota::find($iva_predefinita)->percentuale);
<div class="row">
<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 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"); ?>" ]}

View File

@ -107,7 +107,7 @@ switch ($resource) {
`co_righe_documenti`
INNER JOIN `co_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento`
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
`idarticolo` = '.prepare($idarticolo).' AND `dir` = "entrata"
UNION
@ -123,7 +123,7 @@ switch ($resource) {
`dt_righe_ddt`
INNER JOIN `dt_ddt` ON `dt_ddt`.`id` = `dt_righe_ddt`.`idddt`
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
`idarticolo` = '.prepare($idarticolo).' AND `dir` = "entrata"
ORDER BY
@ -167,7 +167,7 @@ switch ($resource) {
`co_righe_documenti`
INNER JOIN `co_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento`
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
`idarticolo` = '.prepare($idarticolo).' AND `dir` = "uscita"
UNION
@ -183,7 +183,7 @@ switch ($resource) {
`dt_righe_ddt`
INNER JOIN `dt_ddt` ON `dt_ddt`.`id` = `dt_righe_ddt`.`idddt`
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
`idarticolo` = '.prepare($idarticolo).' AND `dir` = "uscita"
ORDER BY

View File

@ -29,8 +29,8 @@ $fields = [
'codice' => 'mg_articoli.codice',
'barcode' => 'mg_articoli.barcode',
'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`)',
'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`)',
'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`)',
'Note' => 'note',
];
@ -40,7 +40,7 @@ foreach ($fields as $name => $value) {
$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) {
$query .= ' OR '.$value.' LIKE "%'.$term.'%"';

View File

@ -37,7 +37,7 @@ switch ($resource) {
$idagente = $superselect['idagente'];
$id_listino = $superselect['id_listino'];
$iva_predefinita = setting('IVA predefinita');
$query = "SELECT
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,
@ -99,11 +99,11 @@ switch ($resource) {
CONCAT(`conto_acquisto_categoria` .`numero`, '.', `conto_acquisto_sottocategoria`.`numero`, ' ', `conto_acquisto_sottocategoria`.`descrizione`) AS idconto_acquisto_title
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).")
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_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_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_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`
@ -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
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_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_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) {
$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_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) {
@ -220,7 +220,7 @@ switch ($resource) {
break;
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) {
$filter[] = '`mg_categorie`.`id`='.prepare($element);
@ -240,7 +240,7 @@ switch ($resource) {
*/
case 'sottocategorie':
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) {
$filter[] = '`mg_categorie`.`id`='.prepare($element);

View File

@ -17,6 +17,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
use Models\Module;
use Modules\Anagrafiche\Anagrafica;
use Modules\Articoli\Articolo;
use Modules\Articoli\Export\CSV;
@ -26,12 +27,11 @@ use Modules\Preventivi\Components\Articolo as ArticoloPreventivo;
use Modules\Preventivi\Preventivo;
use Modules\TipiIntervento\Tipo as TipoSessione;
use Plugins\ListinoClienti\DettaglioPrezzo;
use Models\Module;
include_once __DIR__.'/../../core.php';
// Segmenti
$id_preventivi =(new Module())->getByField('name', 'Preventivi');
$id_preventivi = (new Module())->getByField('name', 'Preventivi');
$id_segment = $_SESSION['module_'.$id_preventivi]['id_segment'];
switch (post('op')) {
@ -285,7 +285,7 @@ switch (post('op')) {
$articolo = Articolo::find($id);
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->save();

View File

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

View File

@ -19,8 +19,8 @@
include_once __DIR__.'/../../core.php';
use Modules\Iva\Aliquota;
use Models\Module;
use Modules\Iva\Aliquota;
?><form action="" method="post" id="edit-form" enctype="multipart/form-data">
<input type="hidden" name="backto" value="record-edit">
@ -393,9 +393,9 @@ $("#scorporaIva").click( function() {
// Collegamenti diretti
// 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`');
@ -404,8 +404,8 @@ if (!empty($elementi)) {
<div class="box box-warning collapsable collapsed-box">
<div class="box-header with-border">
<h3 class="box-title"><i class="fa fa-warning"></i> '.tr('Documenti collegati: _NUM_', [
'_NUM_' => count($elementi),
]).'</h3>
'_NUM_' => count($elementi),
]).'</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-plus"></i></button>
</div>

View File

@ -24,5 +24,5 @@ use Modules\Articoli\Articolo;
if (isset($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 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">
</div>
</div>

View File

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

View File

@ -18,7 +18,6 @@
*/
include_once __DIR__.'/../../../core.php';
use Models\Module;
$record['abilita_serial'] = ($record['serial'] > 0) ? 1 : $record['abilita_serial'];
if (empty($record['abilita_serial'])) {
@ -155,7 +154,7 @@ if (empty(get('modal'))) {
$module = 'Fatture di acquisto';
// 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);
$id = $data[0]['iddocumento'];
@ -176,7 +175,7 @@ if (empty(get('modal'))) {
`dt_righe_ddt`
INNER JOIN `dt_ddt` ON `dt_righe_ddt`.`idddt` = `dt_ddt`.`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
`dt_righe_ddt`.`id`='.prepare($acquisto['id_riga_ddt']);
$data = $dbo->fetchArray($query);
@ -200,7 +199,7 @@ if (empty(get('modal'))) {
`or_righe_ordini`
INNER JOIN `or_ordini` ON `or_righe_ordini`.`idordine`=`or_ordini`.`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
`or_righe_ordini`.`id`='.prepare($acquisto['id_riga_ordine']);
$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'];
$text = tr('_DOC_ num. _NUM_ del _DATE_', [
'_DOC_' => $data[0]['tipo_documento'],
'_NUM_' => $numero,
'_DATE_' => Translator::dateToLocale($data[0]['data']),
]).(!empty($extra) ? ' '.$extra : '');
'_DOC_' => $data[0]['tipo_documento'],
'_NUM_' => $numero,
'_DATE_' => Translator::dateToLocale($data[0]['data']),
]).(!empty($extra) ? ' '.$extra : '');
echo Modules::link($module, $id, $text).'<br>';
}
@ -265,7 +264,7 @@ if (empty(get('modal'))) {
$module = 'Fatture di vendita';
// 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);
$id = $data[0]['iddocumento'];
@ -286,7 +285,7 @@ if (empty(get('modal'))) {
`dt_righe_ddt`
INNER JOIN `dt_ddt` ON `dt_righe_ddt`.`idddt`=`dt_ddt`.`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
`dt_righe_ddt`.`id`='.prepare($vendita['id_riga_ddt']);
$data = $dbo->fetchArray($query);
@ -310,7 +309,7 @@ if (empty(get('modal'))) {
`or_righe_ordini`
INNER JOIN `or_ordini` ON `or_righe_ordini`.`idordine`=`or_ordini`.`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
`or_righe_ordini`.`id`='.prepare($vendita['id_riga_ordine']);
$data = $dbo->fetchArray($query);
@ -434,8 +433,8 @@ function addSerial(form_id, numero) {
swal({
title: "'.tr('Nuovi seriali').'",
html: "'.tr("Confermi l'inserimento di _NUM_ nuovi seriali?", [
'_NUM_' => '" + numero + "',
]).'",
'_NUM_' => '" + numero + "',
]).'",
type: "success",
showCancelButton: true,
confirmButtonText: "'.tr('Continua').'"

View File

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

View File

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

View File

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

View File

@ -22,13 +22,13 @@ namespace Modules\Articoli;
use Common\SimpleModelTrait;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Models\Module;
use Modules\AttributiCombinazioni\ValoreAttributo;
use Modules\CombinazioniArticoli\Combinazione;
use Modules\Interventi\Components\Articolo as ArticoloIntervento;
use Modules\Iva\Aliquota;
use Plugins\ListinoFornitori\DettaglioFornitore;
use Traits\RecordTrait;
use Models\Module;
class Articolo extends Model
{
@ -61,7 +61,6 @@ class Articolo extends Model
return $model;
}
/**
* 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`
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`
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_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`
WHERE
`mg_articoli`.`id` = ".prepare($this->id).'
`mg_articoli`.`id` = '.prepare($this->id).'
ORDER BY
`mg_attributo_combinazione`.`order`');
@ -345,8 +344,8 @@ class Articolo extends Model
->first();
}
public static function getTranslatedFields(){
public static function getTranslatedFields()
{
return self::$translated_fields;
}
}

View File

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

View File

@ -21,6 +21,7 @@ namespace Modules\Articoli\Import;
use Carbon\Carbon;
use Importer\CSVImporter;
use Models\Module;
use Models\Upload;
use Modules\Anagrafiche\Anagrafica;
use Modules\Anagrafiche\Sede;
@ -30,7 +31,6 @@ use Modules\Articoli\Categoria;
use Modules\Iva\Aliquota;
use Plugins\ListinoClienti\DettaglioPrezzo;
use Plugins\ListinoFornitori\DettaglioFornitore;
use Models\Module;
/**
* 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 $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();

View File

@ -19,7 +19,7 @@
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)) {
echo '

View File

@ -18,23 +18,20 @@
*/
include_once __DIR__.'/../../../core.php';
use Models\PrintTemplate;
// Trovo id_print della stampa
if(!empty(setting('Magazzino cespiti'))){
$id_print = $dbo->fetchOne('SELECT
if (!empty(setting('Magazzino cespiti'))) {
$id_print = $dbo->fetchOne('SELECT
`zz_prints`.`id`
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).')
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`
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
`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">
<div class="row">
@ -58,12 +55,9 @@ if(!empty(setting('Magazzino cespiti'))){
</form>
<script>$(document).ready(init)</script>';
}else{
echo '
} else {
echo '
<div class="alert alert-danger" style="margin:0px;">
'.tr('Seleziona il magazzino cespiti dalle impostazioni per visualizzare la stampa.').'
</div>';
}

View File

@ -18,16 +18,15 @@
*/
include_once __DIR__.'/../../../core.php';
use Models\PrintTemplate;
// Trovo id_print della stampa
$id_print = $dbo->fetchOne('SELECT
`zz_prints`.`id`
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).')
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`
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
`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.'));
} else {
$attributo = Attributo::build();
$id_record= $dbo->lastInsertedID();
$id_record = $dbo->lastInsertedID();
$attributo->setTranslation('name', $descrizione);
$attributo->setTranslation('title', $title);
$attributo->save();
@ -45,7 +45,7 @@ switch (filter('op')) {
$title = post('titolo');
$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.'));
} else {
$attributo->setTranslation('title', $title);

View File

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

View File

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

View File

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

View File

@ -13,7 +13,7 @@ class ValoreAttributo extends Model
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();

View File

@ -17,7 +17,7 @@ echo '
// Tecnico
echo '
<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>';
// Data di partenza

View File

@ -11,11 +11,11 @@ $rs2 = $dbo->fetchArray('SELECT
`mg_articoli`.`qta` AS qta_magazzino,
`mg_articoli_lang`.`name`,
`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
`mg_movimenti`
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
`mg_movimenti`.`idsede`='.prepare($id_record).'
GROUP BY

View File

@ -55,15 +55,14 @@ switch (filter('op')) {
break;
case 'backup':
$ignores = ['dirs' => [], 'files' => []];
$ignores = ['dirs' => [], 'files' => []];
if (filter('exclude') == 'exclude_attachments'){
$ignores = ['dirs' => ['files']];
}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','.*']];
if (filter('exclude') == 'exclude_attachments') {
$ignores = ['dirs' => ['files']];
} elseif (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 {
$result = Backup::create($ignores);
@ -93,8 +92,8 @@ switch (filter('op')) {
if (filter('op') == 'restore') {
if (!extension_loaded('zip')) {
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;
}
@ -121,5 +120,4 @@ if (filter('op') == 'restore') {
} catch (Exception $e) {
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 '
<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_', [
'_FILE_' => '<b>config.inc.php</b>',
]).'.
'_FILE_' => '<b>config.inc.php</b>',
]).'.
</div>';
}
@ -153,11 +153,11 @@ echo '
<div class="alert bg-light-blue-active">
<p>'.$message.'</p><br>
<p>'.tr('Spazio totale occupato dai backup: _SPAZIO_', [
'_SPAZIO_' => '<i id="total_size"></i>',
]).'</p>
'_SPAZIO_' => '<i id="total_size"></i>',
]).'</p>
<p>'.tr('Numero di backup: _NUM_', [
'_NUM_' => count($backups),
]).'</p>
'_NUM_' => count($backups),
]).'</p>
</div>
</div>
@ -227,16 +227,16 @@ if (file_exists($backup_dir)) {
$data = $info['YYYY'].'-'.$info['m'].'-'.$info['d'];
$ora = $info['H'].':'.$info['i'].':'.$info['s'];
$tipo = $info['AAAAAAA'];
$tipo = $info['AAAAAAA'];
echo '
<div class="callout callout-info">
<h4>'.tr('Backup del _DATE_ alle _TIME_', [
'_DATE_' => Translator::dateToLocale($data),
'_TIME_' => Translator::timeToLocale($ora),
]).'</h4>
'_DATE_' => Translator::dateToLocale($data),
'_TIME_' => Translator::timeToLocale($ora),
]).'</h4>
<p><small>
'.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>
</small></p>
@ -282,9 +282,9 @@ if (file_exists($backup_dir)) {
echo '
<div class="callout callout-warning">
<h4>'.tr('Backup del _DATE_ alle _TIME_', [
'_DATE_' => Translator::dateToLocale($data),
'_TIME_' => Translator::timeToLocale($ora),
]).'</h4>
'_DATE_' => Translator::dateToLocale($data),
'_TIME_' => Translator::timeToLocale($ora),
]).'</h4>
<p><small>
'.tr('Nome del file').': '.$name.'<br>
'.tr('Dimensione').': <i id="n-'.$id.'"></i>

View File

@ -41,7 +41,7 @@ class Banca extends Model
*
* @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();

View File

@ -23,8 +23,8 @@ switch (post('op')) {
case 'update':
$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) {
$dbo->query('UPDATE `dt_aspettobeni_lang` SET `name`='.prepare($descrizione).' WHERE `id_record`='.prepare($id_record)).' AND `lang`='.prepare(\Models\Locale::getDefault()->id);
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);
flash()->info(tr('Salvataggio completato.'));
} else {
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())');
$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()) {
echo json_encode(['id' => $id_record, 'text' => $descrizione]);

View File

@ -21,7 +21,7 @@ include_once __DIR__.'/../../../core.php';
switch ($resource) {
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) {
$filter[] = '`dt_aspettobeni`.`id`='.prepare($element);

View File

@ -20,5 +20,5 @@
include_once __DIR__.'/../../core.php';
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();
flash()->info(tr('Salvataggio completato!'));
} else {
flash()->error(tr('Ci sono stati alcuni errori durante il salvataggio!'));
}
@ -55,7 +54,7 @@ switch (filter('op')) {
$colore = filter('colore');
$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)) {
$categoria_new = $categoria_new->where('parent', '=', $id_original);
} else {
@ -63,11 +62,11 @@ switch (filter('op')) {
}
$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.'));
} else {
$categoria = Categoria::build($nota, $colore);
$id_record= $dbo->lastInsertedID();
$id_record = $dbo->lastInsertedID();
$categoria->parent = $id_original;
$categoria->setTranslation('name', $nome);
$categoria->save();
@ -76,7 +75,7 @@ switch (filter('op')) {
'_TYPE_' => 'categoria',
]));
}
if (isAjaxRequest()) {
echo json_encode(['id' => $id_record, 'text' => $nome]);
} else {

View File

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

View File

@ -21,7 +21,7 @@ include_once __DIR__.'/../../core.php';
use Modules\Articoli\Categoria;
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);
}

View File

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

View File

@ -26,7 +26,7 @@ switch (post('op')) {
$descrizione = post('descrizione');
$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!', [
'_NAME_' => $descrizione,
]));
@ -45,7 +45,7 @@ switch (post('op')) {
$descrizione = post('descrizione');
$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!', [
'_NAME_' => $descrizione,
]));
@ -54,7 +54,7 @@ switch (post('op')) {
$id_record = $dbo->lastInsertedID();
$categoria->setTranslation('name', $descrizione);
$categoria->save();
if (isAjaxRequest()) {
echo json_encode(['id' => $id_record, 'text' => $descrizione]);
}

View File

@ -21,7 +21,7 @@ include_once __DIR__.'/../../../core.php';
switch ($resource) {
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) {
$filter[] = '`do_categorie`.`id`='.prepare($element);

View File

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

View File

@ -24,15 +24,15 @@ use Modules\CategorieDocumentali\Categoria;
if (isset($id_record)) {
$categoria = Categoria::find($id_record);
$record = $dbo->fetchOne("SELECT *,
(SELECT COUNT(`id`) FROM `do_documenti` WHERE `idcategoria` = ".prepare($id_record).") AS doc_associati,
$record = $dbo->fetchOne('SELECT *,
(SELECT COUNT(`id`) FROM `do_documenti` WHERE `idcategoria` = '.prepare($id_record).") AS doc_associati,
GROUP_CONCAT(`do_permessi`.`id_gruppo` SEPARATOR ',') AS permessi
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).")
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`
WHERE
`do_categorie`.`id`=".prepare($id_record)."
`do_categorie`.`id`='.prepare($id_record).'
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 Models\Group;
use Traits\RecordTrait;
class Categoria extends Model
{
use SimpleModelTrait;
@ -32,7 +33,6 @@ class Categoria extends Model
protected $table = 'do_categorie';
protected static $translated_fields = [
'name',
];
@ -54,8 +54,8 @@ class Categoria extends Model
$database = database();
$database->sync('do_permessi', ['id_categoria' => $this->id], [
'id_gruppo' => $groups,
]);
'id_gruppo' => $groups,
]);
}
public function getModuleAttribute()
@ -63,7 +63,8 @@ class Categoria extends Model
return 'Categorie documenti';
}
public static function getTranslatedFields(){
public static function getTranslatedFields()
{
return self::$translated_fields;
}
}

View File

@ -19,8 +19,8 @@
include_once __DIR__.'/../../core.php';
use Modules\Checklists\Check;
use Models\Module;
use Modules\Checklists\Check;
$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-header with-border">
<h3 class="box-title"><i class="fa fa-warning"></i> '.tr('Impianti collegati: _NUM_', [
'_NUM_' => count($elementi),
]).'</h3>
'_NUM_' => count($elementi),
]).'</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-plus"></i></button>
</div>
@ -112,8 +112,8 @@ if (!empty($elementi)) {
foreach ($elementi as $elemento) {
$descrizione = tr('Impianto _MATRICOLA_', [
'_MATRICOLA_' => $elemento['matricola'],
]);
'_MATRICOLA_' => $elemento['matricola'],
]);
$modulo = 'Impianti';
$id = $elemento['id'];

View File

@ -25,7 +25,7 @@ switch (filter('op')) {
$predefined = post('predefined');
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)) {
$dbo->query('UPDATE dt_causalet SET predefined = 0');
}
@ -39,7 +39,7 @@ switch (filter('op')) {
$dbo->update('dt_causalet_lang', [
'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!'));
} else {
@ -55,7 +55,7 @@ switch (filter('op')) {
$descrizione = filter('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', [
'is_importabile' => 1,
]);
@ -63,7 +63,7 @@ switch (filter('op')) {
$dbo->insert('dt_causalet_lang', [
'name' => $descrizione,
'id_record' => $id_record,
'id_lang' => \Models\Locale::getDefault()->id,
'id_lang' => Models\Locale::getDefault()->id,
]);
if (isAjaxRequest()) {
@ -92,6 +92,6 @@ switch (filter('op')) {
}
flash()->info(tr('Causale di trasporto eliminata.'));
break;
}

View File

@ -21,7 +21,7 @@ include_once __DIR__.'/../../../core.php';
switch ($resource) {
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) {
$filter[] = '`dt_causalet`.`id`='.prepare($element);

View File

@ -20,5 +20,5 @@
include_once __DIR__.'/../../core.php';
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)) {
$database->update('mg_causali_movimenti', [
'tipo_movimento' => post('tipo_movimento'),
], ['id' => $id_record,]);
], ['id' => $id_record]);
$database->update('mg_causali_movimenti_lang', [
'name' => post('nome'),
'description' => post('descrizione'),
], ['id_record' => $id_record, 'id_lang' => \Models\Locale::getDefault()->id,]);
], ['id_record' => $id_record, 'id_lang' => Models\Locale::getDefault()->id]);
} else {
flash()->error(tr('Ci sono stati alcuni errori durante il salvataggio'));
}
@ -44,7 +44,7 @@ switch (filter('op')) {
'name' => post('nome'),
'description' => post('descrizione'),
'id_record' => $id_record,
'id_lang' => \Models\Locale::getDefault()->id,
'id_lang' => Models\Locale::getDefault()->id,
]);
break;

View File

@ -20,5 +20,5 @@
include_once __DIR__.'/../../core.php';
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 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 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>

View File

@ -35,12 +35,12 @@ echo '
<div class="row">
<div class="col-md-12">
'.input([
'type' => 'ckeditor',
'label' => tr('Contenuto'),
'name' => 'content',
'required' => 1,
'value' => '',
]).'
'type' => 'ckeditor',
'label' => tr('Contenuto'),
'name' => 'content',
'required' => 1,
'value' => '',
]).'
</div>
</div>
@ -56,7 +56,7 @@ echo '
<div class="row">
<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 class="col-md-6">

View File

@ -44,7 +44,7 @@ echo '
</div>
<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>

View File

@ -37,11 +37,11 @@ echo '
</div>
<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 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>
@ -92,12 +92,12 @@ echo '
<div class="col-md-7">
'.input([
'type' => 'ckeditor',
'label' => tr('Contenuto'),
'name' => 'content',
'required' => 1,
'value' => '',
]).'
'type' => 'ckeditor',
'label' => tr('Contenuto'),
'name' => 'content',
'required' => 1,
'value' => '',
]).'
</div>
<div class="col-md-5 text-center">

View File

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

View File

@ -52,9 +52,9 @@ if (!function_exists('renderChecklist')) {
$result .= '
<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_', [
'_NAME_' => $check->checkUser->username,
'_DATE_' => timestampFormat($check->checked_at),
]) : '').'
'_NAME_' => $check->checkUser->username,
'_DATE_' => timestampFormat($check->checked_at),
]) : '').'
</span>
</td>';

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