Rimozione di vari warning

This commit is contained in:
Thomas Zilio 2018-06-23 15:41:32 +02:00
parent 5a8deafa01
commit 893d1b6081
38 changed files with 334 additions and 348 deletions

View File

@ -102,7 +102,7 @@ if (!empty($result_query) && $result_query != 'menu' && $result_query != 'custom
// Query effettiva // Query effettiva
$query = str_replace_once('SELECT', 'SELECT SQL_CALC_FOUND_ROWS', $result_query); $query = str_replace_once('SELECT', 'SELECT SQL_CALC_FOUND_ROWS', $result_query);
$rs = $dbo->fetchArray($query); $rs = $dbo->fetchArray($query);
// Conteggio dei record filtrati // Conteggio dei record filtrati
@ -187,7 +187,7 @@ if (!empty($result_query) && $result_query != 'menu' && $result_query != 'custom
// Colore del testo // Colore del testo
if (!empty($column['data-background'])) { if (!empty($column['data-background'])) {
$column['data-color'] = $column['data-color'] ?: color_inverse($column['data-background']); $column['data-color'] = isset($column['data-color']) ? $column['data-color'] : color_inverse($column['data-background']);
} }
// Link della colonna // Link della colonna

View File

@ -72,7 +72,6 @@ if (filter('op') == 'send') {
} }
$pageTitle = tr('Bug'); $pageTitle = tr('Bug');
$jscript_modules[] = App::getPaths()['js'].'/ckeditor/ckeditor.js';
if (file_exists($docroot.'/include/custom/top.php')) { if (file_exists($docroot.'/include/custom/top.php')) {
include $docroot.'/include/custom/top.php'; include $docroot.'/include/custom/top.php';
@ -191,7 +190,9 @@ echo '
} }
}); });
}); });
</script>'; </script>
<script type="text/javascript" charset="utf-8" src="'.App::getPaths()['js'].'/ckeditor/ckeditor.js'.'"></script>';
if (file_exists($docroot.'/include/custom/bottom.php')) { if (file_exists($docroot.'/include/custom/bottom.php')) {
include $docroot.'/include/custom/bottom.php'; include $docroot.'/include/custom/bottom.php';

View File

@ -41,5 +41,6 @@ $formatter = [
// Ulteriori file CSS e JS da includere // Ulteriori file CSS e JS da includere
$assets = [ $assets = [
'css' => [], 'css' => [],
'print' => [],
'js' => [], 'js' => [],
]; ];

View File

@ -65,7 +65,7 @@ if (!API::isAPIRequest()) {
// Impostazioni di debug // Impostazioni di debug
if (!empty($debug)) { if (!empty($debug)) {
// Ignoramento degli avvertimenti e delle informazioni relative alla deprecazione di componenti // Ignora gli avvertimenti e le informazioni relative alla deprecazione di componenti
error_reporting(E_ALL & ~E_WARNING & ~E_NOTICE & ~E_USER_DEPRECATED); error_reporting(E_ALL & ~E_WARNING & ~E_NOTICE & ~E_USER_DEPRECATED);
// File di log ordinato in base alla data // File di log ordinato in base alla data
@ -178,21 +178,13 @@ if (!API::isAPIRequest()) {
register_shutdown_function('translateTemplate'); register_shutdown_function('translateTemplate');
// Impostazione della sessione di base // Impostazione della sessione di base
$_SESSION['infos'] = array_unique((array) $_SESSION['infos']); $_SESSION['infos'] = isset($_SESSION['infos']) ? array_unique($_SESSION['infos']) : [];
$_SESSION['warnings'] = array_unique((array) $_SESSION['warnings']); $_SESSION['warnings'] = isset($_SESSION['warnings']) ? array_unique($_SESSION['warnings']) : [];
$_SESSION['errors'] = array_unique((array) $_SESSION['errors']); $_SESSION['errors'] = isset($_SESSION['errors']) ? array_unique($_SESSION['errors']) : [];
// Impostazione del tema grafico di default // Impostazione del tema grafico di default
$theme = !empty($theme) ? $theme : 'default'; $theme = !empty($theme) ? $theme : 'default';
$assets = App::getAssets();
// CSS di base del progetto
$css_modules = $assets['css'];
// JS di base del progetto
$jscript_modules = $assets['js'];
if ($continue) { if ($continue) {
$id_module = filter('id_module'); $id_module = filter('id_module');
$id_record = filter('id_record'); $id_record = filter('id_record');
@ -211,11 +203,6 @@ if (!API::isAPIRequest()) {
$_SESSION['period_end'] = date('Y').'-12-31'; $_SESSION['period_end'] = date('Y').'-12-31';
} }
// Segmenti
if (empty($_SESSION['m'.$id_module]['id_segment'])) {
$_SESSION['m'.$id_module]['id_segment'] = Modules::getSegments($id_module)[0]['id'];
}
$user = Auth::user(); $user = Auth::user();
if (!empty($id_module)) { if (!empty($id_module)) {
@ -223,6 +210,12 @@ if (!API::isAPIRequest()) {
$pageTitle = $module['title']; $pageTitle = $module['title'];
// Segmenti
if (!isset($_SESSION['m'.$id_module]['id_segment'])) {
$segments = Modules::getSegments($id_module);
$_SESSION['m'.$id_module]['id_segment'] = isset($segments[0]['id']) ? $segments[0]['id'] : null;
}
Permissions::addModule($id_module); Permissions::addModule($id_module);
} }

View File

@ -33,11 +33,16 @@ echo '<!DOCTYPE html>
<link href="'.$paths['img'].'/favicon.png" rel="icon" type="image/x-icon" />'; <link href="'.$paths['img'].'/favicon.png" rel="icon" type="image/x-icon" />';
foreach ($css_modules as $style) { // CSS
$style = (is_array($style)) ? $style : ['href' => $style, 'media' => 'all']; foreach (App::getAssets()['css'] as $style) {
echo ' echo '
<link rel="stylesheet" type="text/css" media="'.$style['media'].'" href="'.$style['href'].'"/>'; <link rel="stylesheet" type="text/css" media="all" href="'.$style.'"/>';
}
// Print CSS
foreach (App::getAssets()['print'] as $style) {
echo '
<link rel="stylesheet" type="text/css" media="print" href="'.$style.'"/>';
} }
if (Auth::check()) { if (Auth::check()) {
@ -128,7 +133,8 @@ if (Auth::check()) {
</script>'; </script>';
} }
foreach ($jscript_modules as $js) { // JS
foreach (App::getAssets()['js'] as $js) {
echo ' echo '
<script type="text/javascript" charset="utf-8" src="'.$js.'"></script>'; <script type="text/javascript" charset="utf-8" src="'.$js.'"></script>';
} }

View File

@ -131,8 +131,11 @@ echo '
<script> <script>
var emails = []; var emails = [];
$(document).ready(function(){ $(document).ready(function(){';
// Autocompletamento destinatario // Autocompletamento destinatario
if (!empty($variables['id_anagrafica'])) {
echo '
$(document).load(globals.rootdir + "/ajax_complete.php?module=Anagrafiche&op=get_email&id_anagrafica='.$variables['id_anagrafica'].'", function(response) { $(document).load(globals.rootdir + "/ajax_complete.php?module=Anagrafiche&op=get_email&id_anagrafica='.$variables['id_anagrafica'].'", function(response) {
emails = JSON.parse(response); emails = JSON.parse(response);
@ -144,7 +147,10 @@ echo '
$(this).autocomplete("search", $(this).val()) $(this).autocomplete("search", $(this).val())
});; });;
}); });
}); });';
}
echo '
CKEDITOR.replace("body", { CKEDITOR.replace("body", {
toolbar: globals.ckeditorToolbar, toolbar: globals.ckeditorToolbar,

View File

@ -4,9 +4,7 @@ include_once __DIR__.'/../../../core.php';
switch ($resource) { switch ($resource) {
case 'clienti': case 'clienti':
//$citta_cliente = ", IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')'))"; $query = 'SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale) AS descrizione, idtipointervento_default FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica |where| ORDER BY ragione_sociale';
$query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale $citta_cliente) AS descrizione, idtipointervento_default FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica |where| ORDER BY ragione_sociale";
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = 'an_anagrafiche.idanagrafica='.prepare($element); $filter[] = 'an_anagrafiche.idanagrafica='.prepare($element);

View File

@ -5,7 +5,7 @@ include_once __DIR__.'/../../core.php';
/** /**
* Funzione per inserire i movimenti di magazzino. * Funzione per inserire i movimenti di magazzino.
*/ */
function add_movimento_magazzino($idarticolo, $qta, $array = [], $descrizone = '', $data='') function add_movimento_magazzino($id_articolo, $qta, $array = [], $descrizone = '', $data = '')
{ {
$dbo = Database::getConnection(); $dbo = Database::getConnection();
@ -13,8 +13,12 @@ function add_movimento_magazzino($idarticolo, $qta, $array = [], $descrizone = '
return false; return false;
} }
//Info Articolo $nome = null;
$rs_art = $dbo->fetchArray("SELECT * FROM mg_articoli WHERE id='".$idarticolo."'"); $tipo = null;
$numero = null;
// Informazioni articolo
$articolo = $dbo->fetchOne('SELECT * FROM mg_articoli WHERE id='.prepare($id_articolo));
$manuale = 0; $manuale = 0;
// Ddt // Ddt
@ -22,7 +26,7 @@ function add_movimento_magazzino($idarticolo, $qta, $array = [], $descrizone = '
$rs = $dbo->fetchArray('SELECT numero, numero_esterno, dt_tipiddt.descrizione AS tipo, dt_tipiddt.dir FROM dt_ddt LEFT JOIN dt_tipiddt ON dt_tipiddt.id = dt_ddt.idtipoddt WHERE dt_ddt.id='.prepare($array['idddt'])); $rs = $dbo->fetchArray('SELECT numero, numero_esterno, dt_tipiddt.descrizione AS tipo, dt_tipiddt.dir FROM dt_ddt LEFT JOIN dt_tipiddt ON dt_tipiddt.id = dt_ddt.idtipoddt WHERE dt_ddt.id='.prepare($array['idddt']));
$numero = (!empty($rs[0]['numero_esterno'])) ? $rs[0]['numero_esterno'] : $rs[0]['numero']; $numero = (!empty($rs[0]['numero_esterno'])) ? $rs[0]['numero_esterno'] : $rs[0]['numero'];
$tipo = strtolower($rs[0]['tipo']); $tipo = strtolower($rs[0]['tipo']);
$rs_data = $dbo->fetchArray("SELECT data FROM dt_ddt WHERE id='".$array['idddt']."'"); $rs_data = $dbo->fetchArray("SELECT data FROM dt_ddt WHERE id='".$array['idddt']."'");
$data = $rs_data[0]['data']; $data = $rs_data[0]['data'];
} }
@ -32,7 +36,7 @@ function add_movimento_magazzino($idarticolo, $qta, $array = [], $descrizone = '
$rs = $dbo->fetchArray('SELECT numero, numero_esterno, co_tipidocumento.descrizione AS tipo, co_tipidocumento.dir FROM co_documenti LEFT JOIN co_tipidocumento ON co_tipidocumento.id = co_documenti.idtipodocumento WHERE co_documenti.id='.prepare($array['iddocumento'])); $rs = $dbo->fetchArray('SELECT numero, numero_esterno, co_tipidocumento.descrizione AS tipo, co_tipidocumento.dir FROM co_documenti LEFT JOIN co_tipidocumento ON co_tipidocumento.id = co_documenti.idtipodocumento WHERE co_documenti.id='.prepare($array['iddocumento']));
$numero = (!empty($rs[0]['numero_esterno'])) ? $rs[0]['numero_esterno'] : $rs[0]['numero']; $numero = (!empty($rs[0]['numero_esterno'])) ? $rs[0]['numero_esterno'] : $rs[0]['numero'];
$tipo = strtolower($rs[0]['tipo']); $tipo = strtolower($rs[0]['tipo']);
$rs_data = $dbo->fetchArray("SELECT data FROM co_documenti WHERE id='".$array['iddocumento']."'"); $rs_data = $dbo->fetchArray("SELECT data FROM co_documenti WHERE id='".$array['iddocumento']."'");
$data = $rs_data[0]['data']; $data = $rs_data[0]['data'];
} }
@ -54,20 +58,18 @@ function add_movimento_magazzino($idarticolo, $qta, $array = [], $descrizone = '
$new = ($qta < 0 ? '+' : '').-$qta; $new = ($qta < 0 ? '+' : '').-$qta;
$dbo->query('UPDATE mg_articoli_automezzi SET qta = qta + '.$new.' WHERE idarticolo = '.prepare($idarticolo).' AND idautomezzo = '.prepare($array['idautomezzo'])); $dbo->query('UPDATE mg_articoli_automezzi SET qta = qta + '.$new.' WHERE idarticolo = '.prepare($id_articolo).' AND idautomezzo = '.prepare($array['idautomezzo']));
$data = date('Y-m-d'); $data = date('Y-m-d');
} }
// Intervento // Intervento
elseif (!empty($array['idintervento'])) { elseif (!empty($array['idintervento'])) {
$rs_data = $dbo->fetchArray('SELECT IFNULL(MAX(orario_fine), data_richiesta) AS data, codice FROM in_interventi LEFT JOIN in_interventi_tecnici ON in_interventi.id=in_interventi_tecnici.idintervento WHERE in_interventi.id = '.prepare($array['idintervento']));
$rs_data = $dbo->fetchArray('SELECT IFNULL(MAX(orario_fine), data_richiesta) AS data, codice FROM in_interventi LEFT JOIN in_interventi_tecnici ON in_interventi.id=in_interventi_tecnici.idintervento WHERE in_interventi.id = '.prepare($array['idintervento']));
$data = $rs_data[0]['data']; $data = $rs_data[0]['data'];
$codice_intervento = $rs_data[0]['codice']; $codice_intervento = $rs_data[0]['codice'];
$movimento = ($qta > 0) ? tr('Ripristino articolo da intervento _NUM_') : tr('Scarico magazzino per intervento _NUM_'); $movimento = ($qta > 0) ? tr('Ripristino articolo da intervento _NUM_') : tr('Scarico magazzino per intervento _NUM_');
$numero = $codice_intervento; $numero = $codice_intervento;
} }
// Manuale // Manuale
@ -79,8 +81,8 @@ function add_movimento_magazzino($idarticolo, $qta, $array = [], $descrizone = '
if (empty($movimento)) { if (empty($movimento)) {
$movimento = ($qta > 0) ? tr('Carico magazzino') : tr('Scarico magazzino'); $movimento = ($qta > 0) ? tr('Carico magazzino') : tr('Scarico magazzino');
} }
if($data==''){ if ($data == '') {
$data = date('Y-m-d'); $data = date('Y-m-d');
} }
} }
@ -99,16 +101,16 @@ function add_movimento_magazzino($idarticolo, $qta, $array = [], $descrizone = '
$new = ($qta > 0 ? '+' : '').$qta; $new = ($qta > 0 ? '+' : '').$qta;
//Movimento il magazzino solo se l'articolo non è un servizio // Movimento il magazzino solo se l'articolo non è un servizio
if ($rs_art[0]['servizio'] == 0) { if ($articolo['servizio'] == 0) {
// Movimentazione effettiva // Movimentazione effettiva
if (empty($array['idintervento']) || empty($array['idautomezzo'])) { if (empty($array['idintervento']) || empty($array['idautomezzo'])) {
$dbo->query('UPDATE mg_articoli SET qta = qta + '.$new.' WHERE id = '.prepare($idarticolo)); $dbo->query('UPDATE mg_articoli SET qta = qta + '.$new.' WHERE id = '.prepare($id_articolo));
} }
// Registrazione della movimentazione // Registrazione della movimentazione
$dbo->insert('mg_movimenti', array_merge($array, [ $dbo->insert('mg_movimenti', array_merge($array, [
'idarticolo' => $idarticolo, 'idarticolo' => $id_articolo,
'qta' => $qta, 'qta' => $qta,
'movimento' => $movimento, 'movimento' => $movimento,
'data' => $data, 'data' => $data,

View File

@ -11,9 +11,9 @@ echo '
</div> </div>
<div class="panel-body">'; <div class="panel-body">';
$search_lotto = $get['search_lotto']; $search_lotto = get('search_lotto');
$search_serial = $get['search_serial']; $search_serial = get('search_serial');
$search_altro = $get['search_altro']; $search_altro = get('search_altro');
// Calcolo prossimo lotto e serial number // Calcolo prossimo lotto e serial number
$rs = $dbo->fetchArray('SELECT MAX(lotto) AS max_lotto, MAX(serial) AS max_serial, MAX(altro) AS max_altro FROM mg_prodotti WHERE id_articolo='.prepare($id_record)); $rs = $dbo->fetchArray('SELECT MAX(lotto) AS max_lotto, MAX(serial) AS max_serial, MAX(altro) AS max_altro FROM mg_prodotti WHERE id_articolo='.prepare($id_record));

View File

@ -418,7 +418,7 @@ if (!empty($fatture)) {
?> ?>
{( "name": "filelist_and_upload", "id_module": "<?php echo $id_module; ?>", "id_record": "<?php echo $id_record; ?>", "ajax":"true" )} {( "name": "filelist_and_upload", "id_module": "<?php echo $id_module; ?>", "id_record": "<?php echo $id_record; ?>", "ajax": "true" )}
<a class="btn btn-danger ask" data-backto="record-list"> <a class="btn btn-danger ask" data-backto="record-list">
<i class="fa fa-trash"></i> <?php echo tr('Elimina'); ?> <i class="fa fa-trash"></i> <?php echo tr('Elimina'); ?>

View File

@ -10,45 +10,37 @@ $disabled = '';
$hide = 'hide'; $hide = 'hide';
$op = 'edit-pianifica'; $op = 'edit-pianifica';
//mi ricavo informazioni del contratto //mi ricavo informazioni del contratto
$data_conclusione = $dbo->fetchArray('SELECT `data_conclusione` FROM `co_contratti` WHERE `id` = '.prepare($id_record))[0]['data_conclusione']; $data_conclusione = $dbo->fetchArray('SELECT `data_conclusione` FROM `co_contratti` WHERE `id` = '.prepare($id_record))[0]['data_conclusione'];
$idanagrafica = $dbo->fetchArray('SELECT `idanagrafica` FROM `co_contratti` WHERE `id` = '.prepare($id_record))[0]['idanagrafica']; $idanagrafica = $dbo->fetchArray('SELECT `idanagrafica` FROM `co_contratti` WHERE `id` = '.prepare($id_record))[0]['idanagrafica'];
$list = '\"1\":\"'.tr('Pianificare a partire da oggi ').date('d/m/Y').'\"'; $list = '\"1\":\"'.tr('Pianificare a partire da oggi ').date('d/m/Y').'\"';
//promemoria esistente //promemoria esistente
if (!empty($get['idcontratto_riga'])){ if (!empty($get['idcontratto_riga'])) {
$idcontratto_riga = $get['idcontratto_riga'];
$idcontratto_riga = $get['idcontratto_riga']; $qp = 'SELECT *, (SELECT descrizione FROM in_tipiintervento WHERE idtipointervento=co_righe_contratti.idtipointervento) AS tipointervento, (SELECT tempo_standard FROM in_tipiintervento WHERE idtipointervento = co_righe_contratti.idtipointervento) AS tempo_standard FROM co_righe_contratti WHERE id = '.$idcontratto_riga;
$qp = 'SELECT *, (SELECT descrizione FROM in_tipiintervento WHERE idtipointervento=co_righe_contratti.idtipointervento) AS tipointervento, (SELECT tempo_standard FROM in_tipiintervento WHERE idtipointervento = co_righe_contratti.idtipointervento) AS tempo_standard FROM co_righe_contratti WHERE id = '.$idcontratto_riga; $rsp = $dbo->fetchArray($qp);
$rsp = $dbo->fetchArray($qp);
$data_richiesta = readDate($rsp[0]['data_richiesta']); $data_richiesta = readDate($rsp[0]['data_richiesta']);
$matricoleimpianti = trim($rsp[0]['idimpianti']); $matricoleimpianti = trim($rsp[0]['idimpianti']);
$idsede = $rsp[0]['idsede']; $idsede = $rsp[0]['idsede'];
$tempo_standard = $rsp[0]['tempo_standard']; $tempo_standard = $rsp[0]['tempo_standard'];
$readonly = 'readonly'; $readonly = 'readonly';
$hide = ''; $hide = '';
$list .= ', \"0\":\"'.tr('Pianificare a partire da questo promemoria ').$data_richiesta.'\"'; $list .= ', \"0\":\"'.tr('Pianificare a partire da questo promemoria ').$data_richiesta.'\"';
$op = 'pianificazione'; $op = 'pianificazione';
} }
//se non è impostata idcontratto_riga allora sono in fase di inserimento di nuovo promemoria e mi calcolo il prossimo id per co_righe_contratti //se non è impostata idcontratto_riga allora sono in fase di inserimento di nuovo promemoria e mi calcolo il prossimo id per co_righe_contratti
(empty($idcontratto_riga)) ? $idcontratto_riga = $dbo->fetchArray('SELECT MAX(id) AS max_idcontratto_riga FROM `co_righe_contratti`')[0]['max_idcontratto_riga'] : ''; (empty($idcontratto_riga)) ? $idcontratto_riga = $dbo->fetchArray('SELECT MAX(id) AS max_idcontratto_riga FROM `co_righe_contratti`')[0]['max_idcontratto_riga'] : '';
(empty($idcontratto_riga)) ? $idcontratto_riga = 1 : ''; (empty($idcontratto_riga)) ? $idcontratto_riga = 1 : '';
//orari inizio fine interventi (8h standard) //orari inizio fine interventi (8h standard)
$orario_inizio = '09:00'; $orario_inizio = '09:00';
$orario_fine = (!empty($tempo_standard)) ? date('H:i', strtotime($orario_inizio) + ((60 * 60 ) * $tempo_standard)) : '17:00'; $orario_fine = (!empty($tempo_standard)) ? date('H:i', strtotime($orario_inizio) + ((60 * 60) * $tempo_standard)) : '17:00';
echo ' echo '
<form id="add_form" action="'.$rootdir.'/editor.php?id_module='.Modules::get('Contratti')['id'].'&id_record='.$id_record.'&idcontratto_riga='.$idcontratto_riga.'" method="post"> <form id="add_form" action="'.$rootdir.'/editor.php?id_module='.Modules::get('Contratti')['id'].'&id_record='.$id_record.'&idcontratto_riga='.$idcontratto_riga.'" method="post">
@ -56,7 +48,7 @@ echo '
<input type="hidden" name="backto" value="record-edit"> <input type="hidden" name="backto" value="record-edit">
<input type="hidden" name="op" value="'.$op.'">'; <input type="hidden" name="op" value="'.$op.'">';
echo ' echo '
<!-- DATI PROMEMORIA? --> <!-- DATI PROMEMORIA? -->
<div class="panel panel-primary"> <div class="panel panel-primary">
<div class="panel-heading"> <div class="panel-heading">
@ -64,34 +56,34 @@ echo '
</div> </div>
<div class="panel-body"> <div class="panel-body">
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "date", "label": "'.tr('Data promemoria').'", "name": "data_richiesta", "required": 1, "value": "'.$data_richiesta.'", "extra":"'.$readonly.'" ]} {[ "type": "date", "label": "'.tr('Data promemoria').'", "name": "data_richiesta", "required": 1, "value": "'.$data_richiesta.'", "extra":"'.$readonly.'" ]}
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "'.tr('Tipo intervento').'", "name": "idtipointervento", "required": 1, "id": "idtipointervento_", "values": "query=SELECT idtipointervento AS id, descrizione FROM in_tipiintervento ORDER BY descrizione ASC", "value": "'.$rsp[0]['idtipointervento'].'", "extra": "'.$readonly.'", "ajax-source": "tipiintervento" ]} {[ "type": "select", "label": "'.tr('Tipo intervento').'", "name": "idtipointervento", "required": 1, "id": "idtipointervento_", "values": "query=SELECT idtipointervento AS id, descrizione FROM in_tipiintervento ORDER BY descrizione ASC", "value": "'.$rsp[0]['idtipointervento'].'", "extra": "'.$readonly.'", "ajax-source": "tipiintervento" ]}
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "multiple": "1", "label": "'.tr('Impianti').'", "name": "idimpianti[]", "values": "query=SELECT my_impianti.id AS id, my_impianti.nome AS descrizione FROM my_impianti_contratti INNER JOIN my_impianti ON my_impianti_contratti.idimpianto = my_impianti.id WHERE my_impianti_contratti.idcontratto = '.$id_record.' ORDER BY descrizione", "value": "'.$matricoleimpianti.'", "extra":"'.$readonly.'" ]} {[ "type": "select", "multiple": "1", "label": "'.tr('Impianti').'", "name": "idimpianti[]", "values": "query=SELECT my_impianti.id AS id, my_impianti.nome AS descrizione FROM my_impianti_contratti INNER JOIN my_impianti ON my_impianti_contratti.idimpianto = my_impianti.id WHERE my_impianti_contratti.idcontratto = '.$id_record.' ORDER BY descrizione", "value": "'.$matricoleimpianti.'", "extra":"'.$readonly.'" ]}
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "'.tr('Sede').'", "name": "idsede_c", "values": "query=SELECT 0 AS id, \'Sede legale\' AS descrizione UNION SELECT id, CONCAT( CONCAT_WS( \' (\', CONCAT_WS(\', \', `nomesede`, `citta`), `indirizzo` ), \')\') AS descrizione FROM an_sedi WHERE idanagrafica='.$idanagrafica.'", "value": "'.$idsede.'", "extra":"'.$readonly.'" ]} {[ "type": "select", "label": "'.tr('Sede').'", "name": "idsede_c", "values": "query=SELECT 0 AS id, \'Sede legale\' AS descrizione UNION SELECT id, CONCAT( CONCAT_WS( \' (\', CONCAT_WS(\', \', `nomesede`, `citta`), `indirizzo` ), \')\') AS descrizione FROM an_sedi WHERE idanagrafica='.$idanagrafica.'", "value": "'.$idsede.'", "extra":"'.$readonly.'" ]}
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
@ -99,10 +91,9 @@ echo '
</div> </div>
</div>'; </div>';
?> ?>
<!-- ARTICOLI --> <!-- ARTICOLI -->
<div class="panel panel-primary"> <div class="panel panel-primary">
<div class="panel-heading"> <div class="panel-heading">
@ -115,16 +106,16 @@ echo '
</div> </div>
<?php if (empty($readonly)) { <?php if (empty($readonly)) {
?> ?>
<button type="button" class="btn btn-primary" data-title="<?php echo tr('Aggiungi articolo'); ?>" data-target="#bs-popup2" data-toggle="modal" data-href="<?php echo $rootdir; ?>/modules/contratti/plugins/add_articolo.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>&idcontratto_riga=<?php echo $idcontratto_riga; ?>" ><i class="fa fa-plus"></i> <?php echo tr('Aggiungi articolo'); ?>...</button> <button type="button" class="btn btn-primary" data-title="<?php echo tr('Aggiungi articolo'); ?>" data-target="#bs-popup2" data-toggle="modal" data-href="<?php echo $rootdir; ?>/modules/contratti/plugins/add_articolo.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>&idcontratto_riga=<?php echo $idcontratto_riga; ?>" ><i class="fa fa-plus"></i> <?php echo tr('Aggiungi articolo'); ?>...</button>
<?php <?php
} ?> } ?>
</div> </div>
</div> </div>
<!-- SPESE AGGIUNTIVE --> <!-- SPESE AGGIUNTIVE -->
<div class="panel panel-primary"> <div class="panel panel-primary">
<div class="panel-heading"> <div class="panel-heading">
@ -133,23 +124,23 @@ echo '
<div class="panel-body"> <div class="panel-body">
<div id="righe"> <div id="righe">
<?php include $docroot.'/modules/contratti/plugins/ajax_righe.php' ?> <?php include $docroot.'/modules/contratti/plugins/ajax_righe.php'; ?>
</div> </div>
<?php if (empty($readonly)) { <?php if (empty($readonly)) {
?> ?>
<button type="button" class="btn btn-primary" data-title="<?php echo tr('Aggiungi altre spese'); ?>" data-target="#bs-popup2" data-toggle="modal" data-href="<?php echo $rootdir; ?>/modules/contratti/plugins/add_righe.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>&idcontratto_riga=<?php echo $idcontratto_riga; ?>"><i class="fa fa-plus"></i> <?php echo tr('Aggiungi altre spese'); ?>...</button> <button type="button" class="btn btn-primary" data-title="<?php echo tr('Aggiungi altre spese'); ?>" data-target="#bs-popup2" data-toggle="modal" data-href="<?php echo $rootdir; ?>/modules/contratti/plugins/add_righe.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>&idcontratto_riga=<?php echo $idcontratto_riga; ?>"><i class="fa fa-plus"></i> <?php echo tr('Aggiungi altre spese'); ?>...</button>
<?php <?php
} ?> } ?>
</div> </div>
</div> </div>
<?php <?php
echo ' echo '
{( "name": "filelist_and_upload", "id_record": "'.$idcontratto_riga.'", "id_plugin": "'.$id_plugin.'", "ajax":"true", '.((!empty($readonly)) ? '"readonly":"true"' : '"readonly":"false"' ). ' )} {( "name": "filelist_and_upload", "id_record": "'.$idcontratto_riga.'", "id_plugin": "'.$id_plugin.'", "ajax": "true", '.((!empty($readonly)) ? '"readonly": "true"' : '"readonly":"false"').' )}
</div> </div>
</div> </div>
@ -159,7 +150,6 @@ echo '
'; ';
echo ' echo '
<!-- PIANIFICAZIONE CICLICA? --> <!-- PIANIFICAZIONE CICLICA? -->
<div class="panel panel-primary '.$hide.'"> <div class="panel panel-primary '.$hide.'">
@ -168,17 +158,16 @@ echo '
</div> </div>
<div class="panel-body">'; <div class="panel-body">';
echo '<div class="row"> echo '<div class="row">
<div class="col-md-2"> <div class="col-md-2">
{[ "type": "number", "label": "'.tr('Intervallo').'", "name": "intervallo", "class": "", "decimals": 0, "required": 1, "icon-after": "GG", "min-value": "1" ]} {[ "type": "number", "label": "'.tr('Intervallo').'", "name": "intervallo", "class": "", "decimals": 0, "required": 1, "icon-after": "GG", "min-value": "1" ]}
</div>'; </div>';
?> ?>
<div class="col-md-7"> <div class="col-md-7">
{[ "type": "select", "label": "<?php echo tr('Inizio pianificazione'); ?>", "name": "parti_da_oggi", "values": "list=<?php echo $list ?>", "value": "" ]} {[ "type": "select", "label": "<?php echo tr('Inizio pianificazione'); ?>", "name": "parti_da_oggi", "values": "list=<?php echo $list; ?>", "value": "" ]}
</div> </div>
<?php <?php
@ -192,13 +181,11 @@ echo '
</div> </div>
</div> </div>
</div>'; </div>';
echo ' echo '
<!-- PIANIFICARE INTERVENTI? --> <!-- PIANIFICARE INTERVENTI? -->
<div class="panel panel-primary '.$hide.'"> <div class="panel panel-primary '.$hide.'">
@ -207,7 +194,7 @@ echo '
</div> </div>
<div class="panel-body"> <div class="panel-body">
<div class="row"> <div class="row">
@ -229,7 +216,7 @@ echo '
</div> </div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -1,12 +1,9 @@
<?php <?php
$rs = $dbo->fetchArray('SELECT *, $r = $dbo->fetchOne('SELECT *,
(SELECT email FROM an_anagrafiche WHERE an_anagrafiche.idanagrafica=co_contratti.idanagrafica) AS email (SELECT email FROM an_anagrafiche WHERE an_anagrafiche.idanagrafica=co_contratti.idanagrafica) AS email
FROM co_contratti WHERE id='.prepare($id_record)); FROM co_contratti WHERE id='.prepare($id_record));
// Risultato effettivo
$r = $rs[0];
// Variabili da sostituire // Variabili da sostituire
return [ return [
'email' => $r['email'], 'email' => $r['email'],

View File

@ -65,7 +65,7 @@ for ($i = 0; $i < count($rs); ++$i) {
} }
} }
$checks .= "<li><input type='checkbox' id='idstato_".$rs[$i]['id']."' value=\"".$rs[$i]['id'].'" '.$attr." onclick=\"$.when ( session_set_array( 'dashboard,idstatiintervento', '".$rs[$i]['id']."' ) ).promise().then(function( ){ $('#calendar').fullCalendar('refetchEvents'); }); update_counter( 'idstati_count', $('#idstati_ul').find('input:checked').length ); \"> <label for='idstato_".$rs[$i]['id']."'> <span class='badge' style=\"color:".color_inverse($rs[$i]['colore'])."; background:".$rs[$i]['colore'].";\">".$rs[$i]['descrizione']."</span></label></li>\n"; $checks .= "<li><input type='checkbox' id='idstato_".$rs[$i]['id']."' value=\"".$rs[$i]['id'].'" '.$attr." onclick=\"$.when ( session_set_array( 'dashboard,idstatiintervento', '".$rs[$i]['id']."' ) ).promise().then(function( ){ $('#calendar').fullCalendar('refetchEvents'); }); update_counter( 'idstati_count', $('#idstati_ul').find('input:checked').length ); \"> <label for='idstato_".$rs[$i]['id']."'> <span class='badge' style=\"color:".color_inverse($rs[$i]['colore']).'; background:'.$rs[$i]['colore'].';">'.$rs[$i]['descrizione']."</span></label></li>\n";
$allchecksstati .= "session_set_array( 'dashboard,idstatiintervento', '".$rs[$i]['id']."', 0 ); "; $allchecksstati .= "session_set_array( 'dashboard,idstatiintervento', '".$rs[$i]['id']."', 0 ); ";
} }
@ -176,7 +176,7 @@ for ($i = 0; $i < count($rs); ++$i) {
} }
} }
$checks .= "<li><input type='checkbox' id='tech_".$rs[$i]['id']."' value=\"".$rs[$i]['id'].'" '.$attr." onclick=\"$.when ( session_set_array( 'dashboard,idtecnici', '".$rs[$i]['id']."' ) ).promise().then(function( ){ $('#calendar').fullCalendar('refetchEvents'); }); update_counter( 'idtecnici_count', $('#idtecnici_ul').find('input:checked').length ); \"> <label for='tech_".$rs[$i]['id']."'><span class='badge' style=\"color:#000; background:transparent; border: 1px solid ".$rs[$i]['colore'].";\">".$rs[$i]['ragione_sociale']."</span></label></li>\n"; $checks .= "<li><input type='checkbox' id='tech_".$rs[$i]['id']."' value=\"".$rs[$i]['id'].'" '.$attr." onclick=\"$.when ( session_set_array( 'dashboard,idtecnici', '".$rs[$i]['id']."' ) ).promise().then(function( ){ $('#calendar').fullCalendar('refetchEvents'); }); update_counter( 'idtecnici_count', $('#idtecnici_ul').find('input:checked').length ); \"> <label for='tech_".$rs[$i]['id']."'><span class='badge' style=\"color:#000; background:transparent; border: 1px solid ".$rs[$i]['colore'].';">'.$rs[$i]['ragione_sociale']."</span></label></li>\n";
$allchecktecnici .= "session_set_array( 'dashboard,idtecnici', '".$rs[$i]['id']."', 0 ); "; $allchecktecnici .= "session_set_array( 'dashboard,idtecnici', '".$rs[$i]['id']."', 0 ); ";
} }
@ -234,6 +234,8 @@ if ($totale_tecnici == 0) {
<?php <?php
// Zone // Zone
$allcheckzone = null;
$checks = ''; $checks = '';
$count = 0; $count = 0;
$total = 0; $total = 0;
@ -253,7 +255,7 @@ for ($i = 0; $i < count($rs); ++$i) {
$checks .= "<li><input type='checkbox' id='idzone_".$rs[$i]['id']."' value=\"".$rs[$i]['id'].'" '.$attr." onclick=\"$.when ( session_set_array( 'dashboard,idzone', '".$rs[$i]['id']."' ) ).promise().then(function( ){ $('#calendar').fullCalendar('refetchEvents'); update_counter( 'idzone_count', $('#idzone_ul').find('input:checked').length ); }); \"> <label for='idzone_".$rs[$i]['id']."'> ".$rs[$i]['descrizione']."</label></li>\n"; $checks .= "<li><input type='checkbox' id='idzone_".$rs[$i]['id']."' value=\"".$rs[$i]['id'].'" '.$attr." onclick=\"$.when ( session_set_array( 'dashboard,idzone', '".$rs[$i]['id']."' ) ).promise().then(function( ){ $('#calendar').fullCalendar('refetchEvents'); update_counter( 'idzone_count', $('#idzone_ul').find('input:checked').length ); }); \"> <label for='idzone_".$rs[$i]['id']."'> ".$rs[$i]['descrizione']."</label></li>\n";
$allcheckzone .= "session_set_array( 'dashboard,idzone', '".$rs[$i]['id']."', 0 ); "; $allcheckzone = "session_set_array( 'dashboard,idzone', '".$rs[$i]['id']."', 0 ); ";
} }
if ($count == $total) { if ($count == $total) {
@ -304,8 +306,8 @@ if (!empty($rsp)) {
<h4>'.tr('Promemoria contratti da pianificare').'</h4>'; <h4>'.tr('Promemoria contratti da pianificare').'</h4>';
// Controllo pianificazioni mesi precedenti // Controllo pianificazioni mesi precedenti
$qp_old = "SELECT co_righe_contratti.id FROM co_righe_contratti INNER JOIN co_contratti ON co_righe_contratti.idcontratto=co_contratti.id WHERE idstato IN(SELECT id FROM co_staticontratti WHERE pianificabile = 1) AND idintervento IS NULL AND UNIX_TIMESTAMP(co_righe_contratti.data_richiesta)+86400<UNIX_TIMESTAMP(NOW()) $qp_old = 'SELECT co_righe_contratti.id FROM co_righe_contratti INNER JOIN co_contratti ON co_righe_contratti.idcontratto=co_contratti.id WHERE idstato IN(SELECT id FROM co_staticontratti WHERE pianificabile = 1) AND idintervento IS NULL AND UNIX_TIMESTAMP(co_righe_contratti.data_richiesta)+86400<UNIX_TIMESTAMP(NOW())
UNION SELECT co_ordiniservizio.id FROM co_ordiniservizio INNER JOIN co_contratti ON co_ordiniservizio.idcontratto=co_contratti.id WHERE idstato IN(SELECT id FROM co_staticontratti WHERE pianificabile = 1) AND idintervento IS NULL AND UNIX_TIMESTAMP(co_ordiniservizio.data_scadenza)+86400<UNIX_TIMESTAMP(NOW())"; UNION SELECT co_ordiniservizio.id FROM co_ordiniservizio INNER JOIN co_contratti ON co_ordiniservizio.idcontratto=co_contratti.id WHERE idstato IN(SELECT id FROM co_staticontratti WHERE pianificabile = 1) AND idintervento IS NULL AND UNIX_TIMESTAMP(co_ordiniservizio.data_scadenza)+86400<UNIX_TIMESTAMP(NOW())';
$rsp_old = $dbo->fetchNum($qp_old); $rsp_old = $dbo->fetchNum($qp_old);
if ($rsp_old > 0) { if ($rsp_old > 0) {

View File

@ -7,15 +7,13 @@ $module = Modules::get($id_module);
if ($module['name'] == 'Ddt di vendita') { if ($module['name'] == 'Ddt di vendita') {
$dir = 'entrata'; $dir = 'entrata';
$rs = $dbo->fetchArray("SELECT id FROM dt_tipiddt WHERE descrizione='Ddt di vendita' LIMIT 0,1"); $id_tipoddt = $dbo->fetchOne("SELECT id FROM dt_tipiddt WHERE descrizione='Ddt di vendita'")['id'];
$id_tipoddt = $rs[0]['id'];
$tipo_anagrafica = tr('Cliente'); $tipo_anagrafica = tr('Cliente');
} else { } else {
$dir = 'uscita'; $dir = 'uscita';
$rs = $dbo->fetchArray("SELECT id FROM dt_tipiddt WHERE descrizione='Ddt di acquisto' LIMIT 0,1"); $id_tipoddt = $dbo->fetchOne("SELECT id FROM dt_tipiddt WHERE descrizione='Ddt di acquisto'")['id'];
$id_tipoddt = $rs[0]['id'];
$tipo_anagrafica = tr('Fornitore'); $tipo_anagrafica = tr('Fornitore');
} }
@ -31,7 +29,7 @@ if ($module['name'] == 'Ddt di vendita') {
</div> </div>
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "select", "label": "<?php echo $tipo_anagrafica; ?>", "name": "idanagrafica", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='<?php echo $tipo_anagrafica; ?>' AND deleted=0 ORDER BY ragione_sociale", "value": "<?php echo $idanagrafica; ?>", "icon-after": "add|<?php echo Modules::get('Anagrafiche')['id']; ?>|tipoanagrafica=<?php echo $tipo_anagrafica; ?>" ]} {[ "type": "select", "label": "<?php echo $tipo_anagrafica; ?>", "name": "idanagrafica", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='<?php echo $tipo_anagrafica; ?>' AND deleted=0 ORDER BY ragione_sociale", "value": "<?php echo $user['idanagrafica']; ?>", "icon-after": "add|<?php echo Modules::get('Anagrafiche')['id']; ?>|tipoanagrafica=<?php echo $tipo_anagrafica; ?>" ]}
</div> </div>
<div class="col-md-4"> <div class="col-md-4">

View File

@ -1,12 +1,9 @@
<?php <?php
$rs = $dbo->fetchArray('SELECT *, $r = $dbo->fetchOne('SELECT *,
(SELECT email FROM an_anagrafiche WHERE an_anagrafiche.idanagrafica=dt_ddt.idanagrafica) AS email (SELECT email FROM an_anagrafiche WHERE an_anagrafiche.idanagrafica=dt_ddt.idanagrafica) AS email
FROM dt_ddt WHERE id='.prepare($id_record)); FROM dt_ddt WHERE id='.prepare($id_record));
// Risultato effettivo
$r = $rs[0];
// Variabili da sostituire // Variabili da sostituire
return [ return [
'email' => $r['email'], 'email' => $r['email'],

View File

@ -1,12 +1,9 @@
<?php <?php
$rs = $dbo->fetchArray('SELECT *, $r = $dbo->fetchOne('SELECT *,
(SELECT email FROM an_anagrafiche WHERE an_anagrafiche.idanagrafica=co_documenti.idanagrafica) AS email (SELECT email FROM an_anagrafiche WHERE an_anagrafiche.idanagrafica=co_documenti.idanagrafica) AS email
FROM co_documenti WHERE id='.prepare($id_record)); FROM co_documenti WHERE id='.prepare($id_record));
// Risultato effettivo
$r = $rs[0];
// Variabili da sostituire // Variabili da sostituire
return [ return [
'email' => $r['email'], 'email' => $r['email'],

View File

@ -52,7 +52,7 @@ foreach ($records as $record) {
else { else {
$numerico = in_array($record['tipo'], ['integer', 'decimal']); $numerico = in_array($record['tipo'], ['integer', 'decimal']);
$tipo = (preg_match('/password/i', $record['nome'], $m)) ? 'password' : $tipo; $tipo = preg_match('/password/i', $record['nome'], $m) ? 'password' : $record['tipo'];
$tipo = $numerico ? 'number' : 'text'; $tipo = $numerico ? 'number' : 'text';
echo ' echo '

View File

@ -1,10 +1,11 @@
<?php <?php
if (file_exists( __DIR__.'/../../../core.php')) { if (file_exists(__DIR__.'/../../../core.php')) {
include_once __DIR__.'/../../../core.php'; include_once __DIR__.'/../../../core.php';
}else { } else {
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
} }
if (file_exists($docroot.'/modules/interventi/custom/modutil.php')) { if (file_exists($docroot.'/modules/interventi/custom/modutil.php')) {
include_once $docroot.'/modules/interventi/custom/modutil.php'; include_once $docroot.'/modules/interventi/custom/modutil.php';
} else { } else {
@ -124,47 +125,26 @@ if (!empty($rs2)) {
<input type="hidden" name="prezzo_ore_unitario_tecnico['.$id.']" value="'.$costo_ore_unitario_tecnico.'" /> <input type="hidden" name="prezzo_ore_unitario_tecnico['.$id.']" value="'.$costo_ore_unitario_tecnico.'" />
<input type="hidden" name="prezzo_km_unitario_tecnico['.$id.']" value="'.$costo_km_unitario_tecnico.'" /> <input type="hidden" name="prezzo_km_unitario_tecnico['.$id.']" value="'.$costo_km_unitario_tecnico.'" />
<input type="hidden" name="prezzo_dirittochiamata_tecnico['.$id.']" value="'.$costo_dirittochiamata_tecnico.'" />'; <input type="hidden" name="prezzo_dirittochiamata_tecnico['.$id.']" value="'.$costo_dirittochiamata_tecnico.'" />
echo '
<tr>
<td class="tecn_'.$r['idtecnico'].'" style="min-width:200px;" >';
if ($rs[0]['stato'] != 'Fatturato') {
// Elenco tipologie di interventi
echo '
{[ "type": "select", "name": "idtipointerventot['.$id.']", "value": "'.$r['idtipointervento'].'", "values": "query=SELECT idtipointervento AS id, descrizione, IFNULL((SELECT costo_ore FROM in_tariffe WHERE idtipointervento=in_tipiintervento.idtipointervento AND idtecnico='.prepare($r['idtecnico']).'), 0) AS costo_orario FROM in_tipiintervento ORDER BY descrizione", "extra": "'.$readonly.'" ]}';
}
<tr>';
// Elenco tipologie di interventi
echo ' echo '
<td class="tecn_'.$r['idtecnico'].'" style="min-width:200px;">
{[ "type": "select", "name": "idtipointerventot['.$id.']", "value": "'.$r['idtipointervento'].'", "values": "query=SELECT idtipointervento AS id, descrizione, IFNULL((SELECT costo_ore FROM in_tariffe WHERE idtipointervento=in_tipiintervento.idtipointervento AND idtecnico='.prepare($r['idtecnico']).'), 0) AS costo_orario FROM in_tipiintervento ORDER BY descrizione", "extra": "'.$readonly.'" ]}
</td>'; </td>';
// Orario di inizio // Orario di inizio
echo ' echo '
<td>'; <td>
if ($rs[0]['stato'] == 'Fatturato') { {[ "type": "timestamp", "name": "orario_inizio['.$id.']", "id": "inizio_'.$id.'", "value": "'.$orario_inizio.'", "class": "orari min-width", "extra": "'.$readonly.'" ]}
echo '
<span>'.$orario_inizio.'</span>
<input type="hidden" name="orario_inizio['.$id.']" value="'.$orario_inizio.'">';
} else {
echo '
{[ "type": "timestamp", "name": "orario_inizio['.$id.']", "id": "inizio_'.$id.'", "value": "'.$orario_inizio.'", "class": "orari min-width", "extra": "'.$readonly.'" ]}';
}
echo '
</td>'; </td>';
// Orario di fine // Orario di fine
echo ' echo '
<td>'; <td>
if ($rs[0]['stato'] == 'Fatturato') { {[ "type": "timestamp", "name": "orario_fine['.$id.']", "id": "fine_'.$id.'", "value": "'.$orario_fine.'", "class": "orari min-width", "min-date": "'.$orario_inizio.'", "extra": "'.$readonly.'" ]}
echo '
<span>'.$orario_fine.'</span>
<input type="hidden" name="orario_fine['.$id.']" value="'.$orario_fine.'">';
} else {
echo '
{[ "type": "timestamp", "name": "orario_fine['.$id.']", "id": "fine_'.$id.'", "value": "'.$orario_fine.'", "class": "orari min-width", "min-date": "'.$orario_inizio.'", "extra": "'.$readonly.'" ]}';
}
echo '
</td>'; </td>';
// ORE // ORE
@ -296,18 +276,18 @@ if (!$flag_completato) {
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function(){ $(document).ready(function(){
<?php <?php
if (count($rs2)==0) { if (count($rs2) == 0) {
echo '$(".btn-details").attr("disabled", true);'; echo '$(".btn-details").attr("disabled", true);';
echo '$(".btn-details").addClass("disabled");'; echo '$(".btn-details").addClass("disabled");';
echo '$("#showall_dettagli").removeClass("hide");'; echo '$("#showall_dettagli").removeClass("hide");';
echo '$("#dontshowall_dettagli").addClass("hide");'; echo '$("#dontshowall_dettagli").addClass("hide");';
}else{ } else {
echo '$(".btn-details").attr("disabled", false);'; echo '$(".btn-details").attr("disabled", false);';
echo '$(".btn-details").removeClass("disabled");'; echo '$(".btn-details").removeClass("disabled");';
} }
?> ?>
$('.orari').on("dp.change", function(){ $('.orari').on("dp.change", function(){
idriga = $(this).attr('id').split('_')[1]; idriga = $(this).attr('id').split('_')[1];

View File

@ -158,11 +158,11 @@ $_SESSION['superselect']['idanagrafica'] = $records[0]['idanagrafica'];
<div class="row"> <div class="row">
<div class="col-md-12" id="tecnici"> <div class="col-md-12" id="tecnici">
<?php <?php
if (file_exists($docroot.'/modules/interventi/custom/ajax_tecnici.php')) { if (file_exists($docroot.'/modules/interventi/custom/ajax_tecnici.php')) {
?> ?>
<script>$('#tecnici').load('<?php echo $rootdir; ?>/modules/interventi/custom/ajax_tecnici.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>');</script> <script>$('#tecnici').load('<?php echo $rootdir; ?>/modules/interventi/custom/ajax_tecnici.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>');</script>
<?php <?php
}else{ }else{
?> ?>
<script>$('#tecnici').load('<?php echo $rootdir; ?>/modules/interventi/ajax_tecnici.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>');</script> <script>$('#tecnici').load('<?php echo $rootdir; ?>/modules/interventi/ajax_tecnici.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>');</script>
@ -183,7 +183,7 @@ $_SESSION['superselect']['idanagrafica'] = $records[0]['idanagrafica'];
<div class="panel-body"> <div class="panel-body">
<div id="articoli"> <div id="articoli">
<?php <?php
if (file_exists($docroot.'/modules/interventi/custom/ajax_articoli.php')) { if (file_exists($docroot.'/modules/interventi/custom/ajax_articoli.php')) {
include $docroot.'/modules/interventi/custom/ajax_articoli.php'; include $docroot.'/modules/interventi/custom/ajax_articoli.php';
}else{ }else{
@ -234,11 +234,11 @@ $_SESSION['superselect']['idanagrafica'] = $records[0]['idanagrafica'];
<div class="panel-body"> <div class="panel-body">
<div class="row"> <div class="row">
<div class="col-md-12" id="costi"> <div class="col-md-12" id="costi">
<?php <?php
if (file_exists($docroot.'/modules/interventi/custom/ajax_costi.php')) { if (file_exists($docroot.'/modules/interventi/custom/ajax_costi.php')) {
?> ?>
<script>$('#costi').load('<?php echo $rootdir; ?>/modules/interventi/custom/ajax_costi.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>');</script> <script>$('#costi').load('<?php echo $rootdir; ?>/modules/interventi/custom/ajax_costi.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>');</script>
<?php <?php
}else{ }else{
?> ?>
<script>$('#costi').load('<?php echo $rootdir; ?>/modules/interventi/ajax_costi.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>');</script> <script>$('#costi').load('<?php echo $rootdir; ?>/modules/interventi/ajax_costi.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>');</script>
@ -251,7 +251,7 @@ $_SESSION['superselect']['idanagrafica'] = $records[0]['idanagrafica'];
</div> </div>
</form> </form>
{( "name": "filelist_and_upload", "id_module": "<?php echo $id_module; ?>", "id_record": "<?php echo $id_record; ?>", <?php echo ($records[0]['flag_completato']) ? '"readonly":"true"' : '"readonly":"false"'; ?> )} {( "name": "filelist_and_upload", "id_module": "<?php echo $id_module; ?>", "id_record": "<?php echo $id_record; ?>", <?php echo ($records[0]['flag_completato']) ? '"readonly": "true"' : '"readonly":"false"'; ?> )}
<!-- EVENTUALE FIRMA GIA' EFFETTUATA --> <!-- EVENTUALE FIRMA GIA' EFFETTUATA -->
<div class="text-center"> <div class="text-center">

View File

@ -1,13 +1,10 @@
<?php <?php
$rs = $dbo->fetchArray('SELECT *, $r = $dbo->fetchOne('SELECT *,
(SELECT MAX(orario_fine) FROM in_interventi_tecnici WHERE idintervento=in_interventi.id) AS data_fine, (SELECT MAX(orario_fine) FROM in_interventi_tecnici WHERE idintervento=in_interventi.id) AS data_fine,
(SELECT email FROM an_anagrafiche WHERE an_anagrafiche.idanagrafica=in_interventi.idanagrafica) AS email (SELECT email FROM an_anagrafiche WHERE an_anagrafiche.idanagrafica=in_interventi.idanagrafica) AS email
FROM in_interventi WHERE id='.prepare($id_record)); FROM in_interventi WHERE id='.prepare($id_record));
// Risultato effettivo
$r = $rs[0];
// Variabili da sostituire // Variabili da sostituire
return [ return [
'email' => $r['email'], 'email' => $r['email'],

View File

@ -1,12 +1,9 @@
<?php <?php
$rs = $dbo->fetchArray('SELECT *, $r = $dbo->fetchOne('SELECT *,
(SELECT email FROM an_anagrafiche WHERE an_anagrafiche.idanagrafica=or_ordini.idanagrafica) AS email (SELECT email FROM an_anagrafiche WHERE an_anagrafiche.idanagrafica=or_ordini.idanagrafica) AS email
FROM or_ordini WHERE id='.prepare($id_record)); FROM or_ordini WHERE id='.prepare($id_record));
// Risultato effettivo
$r = $rs[0];
// Variabili da sostituire // Variabili da sostituire
return [ return [
'email' => $r['email'], 'email' => $r['email'],

View File

@ -1,12 +1,9 @@
<?php <?php
$rs = $dbo->fetchArray('SELECT *, $r = $dbo->fetchOne('SELECT *,
(SELECT email FROM an_anagrafiche WHERE an_anagrafiche.idanagrafica=co_preventivi.idanagrafica) AS email (SELECT email FROM an_anagrafiche WHERE an_anagrafiche.idanagrafica=co_preventivi.idanagrafica) AS email
FROM co_preventivi WHERE id='.prepare($id_record)); FROM co_preventivi WHERE id='.prepare($id_record));
// Risultato effettivo
$r = $rs[0];
// Variabili da sostituire // Variabili da sostituire
return [ return [
'email' => $r['email'], 'email' => $r['email'],

View File

@ -131,7 +131,7 @@ class AJAX
$results = self::completeResults($query, $where, $filter, $search_fields, $custom); $results = self::completeResults($query, $where, $filter, $search_fields, $custom);
} }
return $results; return isset($results) ? $results : null;
} }
protected static function getSelectInfo() protected static function getSelectInfo()

View File

@ -18,10 +18,11 @@ class App
'app.min.css', 'app.min.css',
'style.min.css', 'style.min.css',
'themes.min.css', 'themes.min.css',
[ ],
'href' => 'print.min.css',
'media' => 'print', // Print CSS
], 'print' => [
'print.min.css',
], ],
// JS // JS
@ -155,49 +156,39 @@ class App
// Assets aggiuntivi // Assets aggiuntivi
$config = self::getConfig(); $config = self::getConfig();
$css = array_unique(array_merge(self::$assets['css'], $config['assets']['css']));
$js = array_unique(array_merge(self::$assets['js'], $config['assets']['js']));
// Impostazione dei percorsi // Impostazione dei percorsi
$paths = self::getPaths(); $paths = self::getPaths();
$lang = Translator::getInstance()->getCurrentLocale(); $lang = Translator::getInstance()->getCurrentLocale();
foreach ($css as $key => $value) { // Sezioni: nome - percorso
if (is_array($value)) { $sections = [
$path = $value['href']; 'css' => 'css',
} else { 'print' => 'css',
$path = $value; 'js' => 'js',
];
$assets = [];
foreach ($sections as $section => $dir) {
$result = array_unique(array_merge(self::$assets[$section], $config['assets'][$section]));
foreach ($result as $key => $element) {
$element = $paths[$dir].'/'.$element;
$element = str_replace('|lang|', $lang, $element);
$result[$key] = $element;
} }
$path = $paths['css'].'/'.$path; $assets[$section] = $result;
$path = str_replace('|lang|', $lang, $path);
if (is_array($value)) {
$value['href'] = $path;
} else {
$value = $path;
}
$css[$key] = $value;
}
foreach ($js as $key => $value) {
$value = $paths['js'].'/'.$value;
$value = str_replace('|lang|', $lang, $value);
$js[$key] = $value;
} }
// JS aggiuntivi per gli utenti connessi // JS aggiuntivi per gli utenti connessi
if (Auth::check()) { if (Auth::check()) {
$js[] = ROOTDIR.'/lib/functions.js'; $assets['js'][] = ROOTDIR.'/lib/functions.js';
$js[] = ROOTDIR.'/lib/init.js'; $assets['js'][] = ROOTDIR.'/lib/init.js';
} }
return [ return $assets;
'css' => $css,
'js' => $js,
];
} }
/** /**

View File

@ -286,8 +286,28 @@ class Database extends Util\Singleton
*/ */
public function fetchRow($query) public function fetchRow($query)
{ {
return $this->fetchOne($query);
}
/**
* Restituisce il primo elemento della selezione, strutturato in base ai nomi degli attributi.
* Attenzione: aggiunge il LIMIT relativo a fine della query.
*
* @since 2.4
*
* @param string $query Query da eseguire
*
* @return array
*/
public function fetchOne($query)
{
if (!str_contains($query, 'LIMIT')) {
$query .= ' LIMIT 1';
}
$result = $this->fetchArray($query); $result = $this->fetchArray($query);
if (is_array($result)) {
if (isset($result[0])) {
return $result[0]; return $result[0];
} }
@ -390,7 +410,7 @@ class Database extends Util\Singleton
throw new UnexpectedValueException(); throw new UnexpectedValueException();
} }
if (!is_array($array[0])) { if (!isset($array[0]) || !is_array($array[0])) {
$array = [$array]; $array = [$array];
} }

View File

@ -204,7 +204,7 @@ class HTMLBuilder
unset($json[$key]); unset($json[$key]);
} }
// Sostituzione delle variabili $nome$ col relativo valore da database // Sostituzione delle variabili $nome$ col relativo valore da database
elseif (preg_match_all('/\$([a-z0-9\_]+)\$/i', $json[$key], $m)) { elseif (is_string($json[$key]) && preg_match_all('/\$([a-z0-9\_]+)\$/i', $json[$key], $m)) {
for ($i = 0; $i < count($m[0]); ++$i) { for ($i = 0; $i < count($m[0]); ++$i) {
$record = isset($records[0][$m[1][$i]]) ? $records[0][$m[1][$i]] : ''; $record = isset($records[0][$m[1][$i]]) ? $records[0][$m[1][$i]] : '';
$json[$key] = str_replace($m[0][$i], prepareToField($record), $json[$key]); $json[$key] = str_replace($m[0][$i], prepareToField($record), $json[$key]);

View File

@ -48,7 +48,7 @@ class ChoicesHandler implements HandlerInterface
// Generazione del codice HTML // Generazione del codice HTML
// "+ this.checked" rende il valore booleano un numero // "+ this.checked" rende il valore booleano un numero
$result .= ' $result = '
<div class="input-group"> <div class="input-group">
<span class="input-group-addon"> <span class="input-group-addon">
<input |attr| onchange="$(this).parent().find(\'[type=hidden]\').val( + this.checked)"> <input |attr| onchange="$(this).parent().find(\'[type=hidden]\').val( + this.checked)">

View File

@ -18,7 +18,7 @@ class DateHandler implements HandlerInterface
'min-date', 'min-date',
]; ];
foreach ($detect as $attr) { foreach ($detect as $attr) {
if ($values[$attr] == '-now-') { if (isset($values[$attr]) && $values[$attr] == '-now-') {
$values[$attr] = date(\Intl\Formatter::getStandardFormats()['timestamp']); $values[$attr] = date(\Intl\Formatter::getStandardFormats()['timestamp']);
} }
} }

View File

@ -46,8 +46,13 @@ class SelectHandler implements HandlerInterface
<option></option>'; <option></option>';
} }
// Gestione del select dal formato JSON completo, convertito in array
if (is_array($values['values'])) {
$result .= $this->selectArray($values['values'], $values['value']);
}
// Gestione del select da query specifica (se il campo "values" è impostato a "query=SQL") // Gestione del select da query specifica (se il campo "values" è impostato a "query=SQL")
if (preg_match_all('/^query=(.+?)$/', $values['values'], $matches)) { elseif (preg_match_all('/^query=(.+?)$/', $values['values'], $matches)) {
$result .= $this->selectQuery($matches[1][0], $values['value']); $result .= $this->selectQuery($matches[1][0], $values['value']);
} }
@ -55,11 +60,6 @@ class SelectHandler implements HandlerInterface
elseif (preg_match_all('/^list=(.+?)$/', $values['values'], $matches)) { elseif (preg_match_all('/^list=(.+?)$/', $values['values'], $matches)) {
$result .= $this->selectList(json_decode('{'.$matches[1][0].'}', true), $values); $result .= $this->selectList(json_decode('{'.$matches[1][0].'}', true), $values);
} }
// Gestione del select dal formato JSON completo, convertito in array
elseif (is_array($values['values'])) {
$result .= $this->selectArray($values['values'], $values['value']);
}
} }
// Impostazione del placeholder // Impostazione del placeholder
@ -155,6 +155,8 @@ class SelectHandler implements HandlerInterface
*/ */
protected function selectArray($array, $values) protected function selectArray($array, $values)
{ {
$result = '';
$prev = ''; $prev = '';
foreach ($array as $element) { foreach ($array as $element) {
if (!empty($element['optgroup'])) { if (!empty($element['optgroup'])) {

View File

@ -9,6 +9,8 @@ class ButtonManager implements ManagerInterface
{ {
public function manage($options) public function manage($options)
{ {
$options['parameters'] = isset($options['parameters']) ? $options['parameters'] : null;
$result = ''; $result = '';
if (isset($options['id'])) { if (isset($options['id'])) {
@ -111,6 +113,7 @@ class ButtonManager implements ManagerInterface
'id_module' => $options['id_module'], 'id_module' => $options['id_module'],
'id_record' => $options['id_record'], 'id_record' => $options['id_record'],
'class' => $options['class'], 'class' => $options['class'],
'parameters' => $options['parameters'],
]); ]);
unset($list[$main]); unset($list[$main]);
@ -131,6 +134,7 @@ class ButtonManager implements ManagerInterface
'id_module' => $options['id_module'], 'id_module' => $options['id_module'],
'id_record' => $options['id_record'], 'id_record' => $options['id_record'],
'class' => false, 'class' => false,
'parameters' => $options['parameters'],
]).'</li>'; ]).'</li>';
} }
@ -144,6 +148,7 @@ class ButtonManager implements ManagerInterface
'id_module' => $options['id_module'], 'id_module' => $options['id_module'],
'id_record' => $options['id_record'], 'id_record' => $options['id_record'],
'class' => $options['class'], 'class' => $options['class'],
'parameters' => $options['parameters'],
]); ]);
} else { } else {
$result = ' '; $result = ' ';

View File

@ -9,27 +9,31 @@ namespace HTMLBuilder\Manager;
*/ */
class FileManager implements ManagerInterface class FileManager implements ManagerInterface
{ {
/**
/** * Gestione "filelist_and_upload".
* Gestione "filelist_and_upload".
* Esempio: {( "name": "filelist_and_upload", "id_module": "2", "id_record": "1", "readonly": "false", "ajax": "true" )}. * Esempio: {( "name": "filelist_and_upload", "id_module": "2", "id_record": "1", "readonly": "false", "ajax": "true" )}.
* *
* @param array $options * @param array $options
* *
* @return string * @return string
*/ */
public function manage($options) public function manage($options)
{ {
$options['readonly'] = ($options['readonly']=='true') ? true : false; $options['readonly'] = !empty($options['readonly']) ? true : false;
$options['ajax'] = isset($options['ajax']) ? $options['ajax'] : false; $options['ajax'] = isset($options['ajax']) ? $options['ajax'] : false;
$options['showpanel'] = isset($options['showpanel']) ? $options['showpanel'] : true; $options['showpanel'] = isset($options['showpanel']) ? $options['showpanel'] : true;
$options['label'] = isset($options['label']) ? $options['label'] : tr('Nuovo allegato').':'; $options['label'] = isset($options['label']) ? $options['label'] : tr('Nuovo allegato').':';
// Riferimento ad un plugin
$plugin = null;
if (!empty($options['id_plugin'])) {
$plugin = '_'.$options['id_plugin'];
}
$dbo = \Database::getConnection(); $dbo = \Database::getConnection();
$result .= ' $result = '
<div id="attachments_'.$options['id_record'].((!empty($options['id_plugin'])) ? '_'.$options['id_plugin'] : '').'" > <div id="attachments_'.$options['id_record'].$plugin.'" >
<a name="attachments_'.rand().'"></a>'; <a name="attachments_'.rand().'"></a>';
if (!empty($options['showpanel'])) { if (!empty($options['showpanel'])) {
@ -65,43 +69,40 @@ $result .= '
</td> </td>
<td>'.\Translator::timestampToLocale($r['created_at']).'</td> <td>'.\Translator::timestampToLocale($r['created_at']).'</td>
<td class="text-center"> <td class="text-center">
<a class="btn btn-sm btn-primary" href="'.ROOTDIR.'/actions.php?id_module='.$options['id_module'].'&op=download_file&id='.$r['id'].'&filename='.$r['filename'].'" target="_blank"> <a class="btn btn-sm btn-primary" href="'.ROOTDIR.'/actions.php?id_module='.$options['id_module'].'&op=download_file&id='.$r['id'].'&filename='.$r['filename'].'" target="_blank">
<i class="fa fa-download"></i> <i class="fa fa-download"></i>
</a>'; </a>';
//Anteprime supportate dal browser
//Anteprime supportate dal browser $extension = strtolower(end((explode('.', $r['original']))));
$extension = strtolower(end((explode('.', $r['original'])))); $supported_extensions = ['pdf', 'jpg', 'png', 'gif', 'jpeg', 'bmp'];
$supported_extensions = ['pdf','jpg','png','gif','jpeg','bmp']; if (in_array($extension, $supported_extensions)) {
if ( in_array($extension, $supported_extensions)){ $result .= "<div class='hide' id='view-".$r['id']."' >";
$result .= "<div class='hide' id='view-".$r['id']."' >"; if ($extension == 'pdf') {
$result .= '
if ($extension=='pdf'){ <iframe src="'.ROOTDIR.'/files/'.\Modules::get($options['id_module'])['directory'].'/'.$r['filename'].'" frameborder="0" scrolling="no" width="100%" height="550"></iframe>';
$result .= " } else {
<iframe src=\"".ROOTDIR.'/files/'.\Modules::get($options['id_module'])['directory'].'/'.$r['filename']."\" frameborder=\"0\" scrolling=\"no\" width=\"100%\" height=\"550\"></iframe>"; $result .= '
}else{ <img src="'.ROOTDIR.'/files/'.\Modules::get($options['id_module'])['directory'].'/'.$r['filename'].'" width="100%" ></img>';
$result .= " }
<img src=\"".ROOTDIR.'/files/'.\Modules::get($options['id_module'])['directory'].'/'.$r['filename']."\" width=\"100%\" ></img>";
} $result .= '</div>';
$result .= "</div>"; $result .= ' <button class="btn btn-sm btn-info" data-target="#bs-popup" type="button" data-title="'.htmlentities($r['nome'], ENT_QUOTES, 'UTF-8').' <small><em>('.$r['filename'].')</em></small>" data-href="#view-'.$r['id']."\" ><i class='fa fa-eye'></i></button>";
} else {
$result .= " <button class=\"btn btn-sm btn-info\" data-target=\"#bs-popup\" type=\"button\" data-title=\"".htmlentities($r['nome'], ENT_QUOTES, "UTF-8")." <small><em>(".$r['filename'].")</em></small>\" data-href=\"#view-".$r['id']."\" ><i class='fa fa-eye'></i></button>"; $result .= ' <button class="btn btn-sm btn-default" title="'.tr('Anteprima file non disponibile').".\" onclick=\"alert('".tr('Anteprima file di tipo "'.$extension.'" non supportata.')."');\" ><i class='fa fa-eye'></i></button>\n";
}
}else{
$result .= " <button class=\"btn btn-sm btn-default\" title=\"".tr('Anteprima file non disponibile').".\" onclick=\"alert('".tr('Anteprima file di tipo "'.$extension.'" non supportata.')."');\" ><i class='fa fa-eye'></i></button>\n"; if (!$options['readonly']) {
} $result .= '
if (!$options['readonly']){
$result .= '
<a class="btn btn-sm btn-danger ask" data-backto="record-edit" data-msg="'.tr('Vuoi eliminare questo file?').'" data-op="unlink_file" data-id="'.$r['id'].'" data-filename="'.$r['filename'].'"> <a class="btn btn-sm btn-danger ask" data-backto="record-edit" data-msg="'.tr('Vuoi eliminare questo file?').'" data-op="unlink_file" data-id="'.$r['id'].'" data-filename="'.$r['filename'].'">
<i class="fa fa-trash"></i> <i class="fa fa-trash"></i>
</a>'; </a>';
} }
$result .= ' $result .= '
</td> </td>
</tr>'; </tr>';
} }
@ -110,63 +111,69 @@ $result .= '
</table> </table>
<div class="clearfix"></div> <div class="clearfix"></div>
<br>'; <br>';
}else{ } else {
//in caso di readonly, se non è stato caricato nessun allegato mostro almeno box informativo //in caso di readonly, se non è stato caricato nessun allegato mostro almeno box informativo
if ($options['readonly']){ if ($options['readonly']) {
$result .= ' $result .= '
<div class="alert alert-info" style="margin-bottom:0px;" > <div class="alert alert-info" style="margin-bottom:0px;" >
<i class="fa fa-info-circle"></i> <i class="fa fa-info-circle"></i>
'.tr('Nessun allegato è stato caricato', []).'. '.tr('Nessun allegato è stato caricato', []).'.
</div>'; </div>';
} }
} }
if (!$options['readonly']) {
if (!$options['readonly']){ // Form per l'upload di un nuovo file
$result .= '
// Form per l'upload di un nuovo file
$result .= '
<b>'.$options['label'].'</b> <b>'.$options['label'].'</b>
<div class="row"> <div class="row">
<div class="col-lg-4"> <div class="col-lg-4">
{[ "type": "text", "placeholder": "'.tr('Nome').'", "name": "nome_allegato", "id": "nome_allegato_'.$options['id_record'].((!empty($options['id_plugin'])) ? '_'.$options['id_plugin'] : '').'" ]} {[ "type": "text", "placeholder": "'.tr('Nome').'", "name": "nome_allegato", "id": "nome_allegato_'.$options['id_record'].$plugin.'" ]}
</div> </div>
<div class="col-lg-6"> <div class="col-lg-6">
{[ "type": "file", "placeholder": "'.tr('File').'", "name": "blob", "id": "blob_'.$options['id_record'].((!empty($options['id_plugin'])) ? '_'.$options['id_plugin'] : '').'", "required": 0 ]} {[ "type": "file", "placeholder": "'.tr('File').'", "name": "blob", "id": "blob_'.$options['id_record'].$plugin.'", "required": 0 ]}
</div>'; </div>';
$result .= ' $result .= '
<div class="col-lg-2 text-right"> <div class="col-lg-2 text-right">
<button type="button" class="btn btn-success" onclick="saveFile_'.$options['id_record'].((!empty($options['id_plugin'])) ? '_'.$options['id_plugin'] : '').' ( $(this) );"> <button type="button" class="btn btn-success" onclick="saveFile_'.$options['id_record'].$plugin.' ( $(this) );">
<i class="fa fa-upload"></i> '.tr('Carica').' <i class="fa fa-upload"></i> '.tr('Carica').'
</button> </button>
</div>'; </div>';
$result .= ' $result .= '
</div>'; </div>';
} }
$result .= ' $result .= '
<script> <script>
function saveFile_'.$options['id_record'].((!empty($options['id_plugin'])) ? '_'.$options['id_plugin'] : '').' (btn){ function saveFile_'.$options['id_record'].$plugin.' (btn){
if(!$("#blob_'.$options['id_record'].((!empty($options['id_plugin'])) ? '_'.$options['id_plugin'] : '').'").val()){ if(!$("#blob_'.$options['id_record'].$plugin.'").val()){
swal("'.addslashes(tr('Attenzione!')).'", "'.addslashes(tr('Devi selezionare un file con il tasto "Sfoglia"')).'...", "warning"); swal("'.addslashes(tr('Attenzione!')).'", "'.addslashes(tr('Devi selezionare un file con il tasto "Sfoglia"')).'...", "warning");
return false; return false;
} }
var file_data = $("#blob_'.$options['id_record'].((!empty($options['id_plugin'])) ? '_'.$options['id_plugin'] : '').'").prop("files")[0]; var file_data = $("#blob_'.$options['id_record'].$plugin.'").prop("files")[0];
var form_data = new FormData(); var form_data = new FormData();
form_data.append("blob", file_data); form_data.append("blob", file_data);
form_data.append("nome_allegato", $("input[id=nome_allegato_'.$options['id_record'].((!empty($options['id_plugin'])) ? '_'.$options['id_plugin'] : '').']").val()); form_data.append("nome_allegato", $("input[id=nome_allegato_'.$options['id_record'].$plugin.']").val());
form_data.append("op","link_file"); form_data.append("op","link_file");
form_data.append("id_record","'.$options['id_record'].'"); form_data.append("id_record","'.$options['id_record'].'");
form_data.append("id_module", "'.$options['id_module'].'"); form_data.append("id_module", "'.$options['id_module'].'");';
form_data.append("id_plugin","'.$options['id_plugin'].'");
if (!empty($options['id_plugin'])) {
$result .= '
form_data.append("id_plugin","'.$options['id_plugin'].'");';
}
$result .= '
prev_html = btn.html(); prev_html = btn.html();
btn.html("<i class=\"fa fa-spinner fa-pulse fa-fw\"></i>'.tr("Attendere...").'"); btn.html("<i class=\"fa fa-spinner fa-pulse fa-fw\"></i>'.tr('Attendere...').'");
btn.prop("disabled", true); btn.prop("disabled", true);
$.ajax({ $.ajax({
@ -178,17 +185,17 @@ $result .= '
dataType : "html", dataType : "html",
data: form_data, data: form_data,
success: function(data) { success: function(data) {
btn.html(prev_html); btn.html(prev_html);
btn.prop("disabled", false);'; btn.prop("disabled", false);';
if (($options['ajax'])) { if ($options['ajax']) {
$result .= '$("#attachments_'.$options['id_record'].((!empty($options['id_plugin'])) ? '_'.$options['id_plugin'] : '').'").load( globals.rootdir + "/ajax.php?op=list_attachments&id_module='.$options['id_module'].'&id_record='.$options['id_record'].((!empty($options['id_plugin'])) ? '&id_plugin='.$options['id_plugin'].'#tab_'.$options['id_plugin'] : '').'" );'; $result .= '$("#attachments_'.$options['id_record'].$plugin.'").load( globals.rootdir + "/ajax.php?op=list_attachments&id_module='.$options['id_module'].'&id_record='.$options['id_record'].((!empty($options['id_plugin'])) ? '&id_plugin='.$options['id_plugin'].'#tab_'.$options['id_plugin'] : '').'" );';
}else{ } else {
$result .= 'location.href = globals.rootdir + "/editor.php?id_module='.$options['id_module'].'&id_record='.$options['id_record'].((!empty($options['id_plugin'])) ? '#tab_'.$options['id_plugin'] : '').'";'; $result .= 'location.href = globals.rootdir + "/editor.php?id_module='.$options['id_module'].'&id_record='.$options['id_record'].((!empty($options['id_plugin'])) ? '#tab_'.$options['id_plugin'] : '').'";';
} }
$result .= '}, $result .= '},
error: function(data) { error: function(data) {
alert(data); alert(data);
} }
@ -205,4 +212,4 @@ $result .= '
return $result; return $result;
} }
} }

View File

@ -81,12 +81,13 @@ class WidgetManager implements ManagerInterface
$value = null; $value = null;
if (!empty($query)) { if (!empty($query)) {
$value = $database->fetchArray($query)[0]['dato']; $value = $database->fetchArray($query)[0]['dato'];
if (!preg_match('/\\d/', $value)) if (!preg_match('/\\d/', $value)) {
$value = '-'; $value = '-';
}
} }
// Generazione del codice HTML // Generazione del codice HTML
$result .= ' $result = '
<button type="button" class="close" onclick="if(confirm(\'Disabilitare questo widget?\')) { $.post( \''.ROOTDIR.'/modules/aggiornamenti/actions.php?id_module='.$widget['id_module'].'\', { op: \'disable_widget\', id: \''.$widget['id'].'\' }, function(response){ location.reload(); }); };" > <button type="button" class="close" onclick="if(confirm(\'Disabilitare questo widget?\')) { $.post( \''.ROOTDIR.'/modules/aggiornamenti/actions.php?id_module='.$widget['id_module'].'\', { op: \'disable_widget\', id: \''.$widget['id'].'\' }, function(response){ location.reload(); }); };" >
<span aria-hidden="true">&times;</span><span class="sr-only">'.tr('Chiudi').'</span> <span aria-hidden="true">&times;</span><span class="sr-only">'.tr('Chiudi').'</span>
</button>'; </button>';

View File

@ -12,8 +12,8 @@ class HTMLWrapper implements WrapperInterface
$result = ''; $result = '';
// Valori particolari // Valori particolari
$values['icon-before'] = $this->parser($values, $values['icon-before']); $values['icon-before'] = isset($values['icon-before']) ? $this->parser($values, $values['icon-before']) : null;
$values['icon-after'] = $this->parser($values, $values['icon-after']); $values['icon-after'] = isset($values['icon-after']) ? $this->parser($values, $values['icon-after']) : null;
// Generazione dell'etichetta // Generazione dell'etichetta
if (!empty($values['label'])) { if (!empty($values['label'])) {
@ -100,17 +100,15 @@ class HTMLWrapper implements WrapperInterface
$id_module = $pieces[1]; $id_module = $pieces[1];
$extra = empty($pieces[2]) ? '' : '&'.$pieces[2]; $get = !empty($pieces[2]) ? '&'.$pieces[2] : null;
$classes = !empty($pieces[3]) ? ' '.$pieces[3] : null;
$classes = empty($pieces[3]) ? '' : ' '.$pieces[3]; $extras = !empty($pieces[4]) ? ' '.$pieces[4] : null;
$extras = empty($pieces[4]) ? '' : ' '.$pieces[4];
$module = \Modules::get($id_module); $module = \Modules::get($id_module);
if (in_array($module['permessi'], ['r', 'rw'])) { if (in_array($module['permessi'], ['r', 'rw'])) {
$result = ' $result = '
<button '.$extras.' data-href="'.ROOTDIR.'/add.php?id_module='.$id_module.$extra.'&select='.$values['id'].'&ajax=yes" data-target="#bs-popup2" data-toggle="modal" data-title="'.tr('Aggiungi').'" type="button" class="btn'.$classes.'"> <button '.$extras.' data-href="'.ROOTDIR.'/add.php?id_module='.$id_module.$get.'&select='.$values['id'].'&ajax=yes" data-target="#bs-popup2" data-toggle="modal" data-title="'.tr('Aggiungi').'" type="button" class="btn'.$classes.'">
<i class="fa fa-plus"></i> <i class="fa fa-plus"></i>
</button>'; </button>';
} }
@ -124,7 +122,7 @@ class HTMLWrapper implements WrapperInterface
$pieces = explode('|', $string); $pieces = explode('|', $string);
$type = $pieces[1]; $type = $pieces[1];
$extra = $pieces[3]; $extra = !empty($pieces[3]) ? $pieces[3] : null;
if ($type == 'untprc') { if ($type == 'untprc') {
$choices = [ $choices = [

View File

@ -54,9 +54,7 @@ class Import
*/ */
public static function get($module) public static function get($module)
{ {
if (!is_numeric($module) && !empty(self::getModules()[$module])) { $module = Modules::get($module)['id'];
$module = self::getModules()[$module];
}
return self::getImports()[$module]; return self::getImports()[$module];
} }

View File

@ -144,6 +144,7 @@ class Formatter
*/ */
public function parseNumber($value) public function parseNumber($value)
{ {
$sign = null;
if ($value[0] == '+' || $value[0] == '-') { if ($value[0] == '+' || $value[0] == '-') {
$sign = $value[0]; $sign = $value[0];
$value = substr($value, 1); $value = substr($value, 1);

View File

@ -12,6 +12,7 @@ class Mail extends PHPMailer\PHPMailer\PHPMailer
/** @var array Elenco dei template email disponibili */ /** @var array Elenco dei template email disponibili */
protected static $templates = []; protected static $templates = [];
protected static $references = [];
/** @var array Elenco dei template email per modulo */ /** @var array Elenco dei template email per modulo */
protected static $modules = []; protected static $modules = [];
@ -80,18 +81,20 @@ class Mail extends PHPMailer\PHPMailer\PHPMailer
$templates = []; $templates = [];
// Inizializzazione dei riferimenti
foreach (Modules::getModules() as $module) {
self::$modules[$module['id']] = [];
}
foreach ($results as $result) { foreach ($results as $result) {
$templates[$result['id']] = $result; $templates[$result['id']] = $result;
$templates[$result['name']] = $result['id']; $references[$result['name']] = $result['id'];
if (!isset(self::$modules[$result['id_module']])) {
self::$modules[$result['id_module']] = [];
}
self::$modules[$result['id_module']][] = $result['id']; self::$modules[$result['id_module']][] = $result['id'];
} }
self::$templates = $templates; self::$templates = $templates;
self::$references = $references;
} }
return self::$templates; return self::$templates;
@ -106,8 +109,8 @@ class Mail extends PHPMailer\PHPMailer\PHPMailer
*/ */
public static function getTemplate($template) public static function getTemplate($template)
{ {
if (!is_numeric($template) && !empty(self::getTemplates()[$template])) { if (!is_numeric($template) && !empty(self::$references[$template])) {
$template = self::getTemplates()[$template]; $template = self::$references[$template];
} }
return self::getTemplates()[$template]; return self::getTemplates()[$template];

View File

@ -14,6 +14,7 @@ class Modules
/** @var array Elenco dei moduli disponibili */ /** @var array Elenco dei moduli disponibili */
protected static $modules = []; protected static $modules = [];
protected static $references = [];
/** @var array Elenco delle condizioni aggiuntive disponibili */ /** @var array Elenco delle condizioni aggiuntive disponibili */
protected static $additionals = []; protected static $additionals = [];
/** @var array Elenco dei segmenti disponibili */ /** @var array Elenco dei segmenti disponibili */
@ -61,11 +62,12 @@ class Modules
unset($result['idmodule']); unset($result['idmodule']);
$modules[$result['id']] = $result; $modules[$result['id']] = $result;
$modules[$result['name']] = $result['id']; $references[$result['name']] = $result['id'];
} }
} }
self::$modules = $modules; self::$modules = $modules;
self::$references = $references;
} }
return self::$modules; return self::$modules;
@ -80,6 +82,7 @@ class Modules
{ {
// Individuazione dei moduli con permesso di accesso // Individuazione dei moduli con permesso di accesso
$modules = self::getModules(); $modules = self::getModules();
foreach ($modules as $key => $module) { foreach ($modules as $key => $module) {
if ($module['permessi'] == '-') { if ($module['permessi'] == '-') {
unset($modules[$key]); unset($modules[$key]);
@ -98,8 +101,8 @@ class Modules
*/ */
public static function get($module) public static function get($module)
{ {
if (!is_numeric($module) && !empty(self::getModules()[$module])) { if (!is_numeric($module) && !empty(self::$references[$module])) {
$module = self::getModules()[$module]; $module = self::$references[$module];
} }
return self::getModules()[$module]; return self::getModules()[$module];
@ -129,7 +132,7 @@ class Modules
$module = self::get($module); $module = self::get($module);
$user = Auth::user(); $user = Auth::user();
if (!isset(self::$additionals[$module])) { if (!isset(self::$additionals[$module['id']])) {
$database = Database::getConnection(); $database = Database::getConnection();
$additionals['WHR'] = []; $additionals['WHR'] = [];
@ -337,7 +340,7 @@ class Modules
$options = ($element['options2'] != '') ? $element['options2'] : $element['options']; $options = ($element['options2'] != '') ? $element['options2'] : $element['options'];
$link = ($options != '' && $options != 'menu') ? ROOTDIR.'/controller.php?id_module='.$element['id'] : 'javascript:;'; $link = ($options != '' && $options != 'menu') ? ROOTDIR.'/controller.php?id_module='.$element['id'] : 'javascript:;';
$title = $element['title']; $title = $element['title'];
$target = ($element['new'] == 1) ? '_blank' : '_self'; $target = '_self'; // $target = ($element['new'] == 1) ? '_blank' : '_self';
$active = ($actual == $element['name']); $active = ($actual == $element['name']);
$show = (self::getPermission($element['id']) != '-' && !empty($element['enabled'])) ? true : false; $show = (self::getPermission($element['id']) != '-' && !empty($element['enabled'])) ? true : false;

View File

@ -26,16 +26,17 @@ class Prints
$prints = []; $prints = [];
// Inizializzazione dei riferimenti
foreach (Modules::getModules() as $module) {
self::$modules[$module['id']] = [];
}
foreach ($results as $result) { foreach ($results as $result) {
$result['full_directory'] = DOCROOT.'/templates/'.$result['directory']; $result['full_directory'] = DOCROOT.'/templates/'.$result['directory'];
$prints[$result['id']] = $result; $prints[$result['id']] = $result;
$prints[$result['name']] = $result['id']; $prints[$result['name']] = $result['id'];
if (!isset(self::$modules[$result['id_module']])) {
self::$modules[$result['id_module']] = [];
}
self::$modules[$result['id_module']][] = $result['id']; self::$modules[$result['id_module']][] = $result['id'];
} }