Migliorie varie
Aggiunto supporto al logo stampe caricabile come allegato. Miglioramento della gestione dei dati di input. Completata gestione AJAX degli allegati.
This commit is contained in:
parent
aebb5086c5
commit
459f75cab8
|
@ -169,10 +169,13 @@ if (filter('op') == 'link_file' || filter('op') == 'unlink_file') {
|
|||
|
||||
// Creazione file fisico
|
||||
if (move_uploaded_file($src, $upload_dir.'/'.$filename)) {
|
||||
$categoria = filter('categoria');
|
||||
|
||||
$dbo->insert('zz_files', [
|
||||
'nome' => $nome,
|
||||
'filename' => $filename,
|
||||
'original' => $_FILES['blob']['name'],
|
||||
'category' => !empty($categoria) ? $categoria : null,
|
||||
'id_module' => !empty($id_module) ? $id_module : null,
|
||||
'id_record' => $id_record,
|
||||
'id_plugin' => !empty($id_plugin) ? $id_plugin : null,
|
||||
|
@ -342,6 +345,8 @@ if (Modules::getPermission($permesso) == 'r' || Modules::getPermission($permesso
|
|||
if (!empty($info['script'])) {
|
||||
include App::filepath('modules/'.$info['module_dir'].'/plugins|custom|', $info['script']);
|
||||
|
||||
$dbo->query('COMMIT');
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
9
ajax.php
9
ajax.php
|
@ -48,12 +48,11 @@ switch (get('op')) {
|
|||
break;
|
||||
|
||||
case 'list_attachments':
|
||||
$id_module = get('id_module');
|
||||
$id_record = get('id_record');
|
||||
$id_plugin = get('id_plugin');
|
||||
|
||||
$id_module = get('id_module');
|
||||
$id_record = get('id_record');
|
||||
$id_plugin = get('id_plugin');
|
||||
|
||||
echo '{( "name": "filelist_and_upload", "id_module": "'.$id_module.'", "id_record": "'.$id_record.'", "id_plugin": "'.$id_plugin.'", "ajax": "true" )}';
|
||||
echo '{( "name": "filelist_and_upload", "id_module": "'.$id_module.'", "id_record": "'.$id_record.'", "id_plugin": "'.$id_plugin.'" )}';
|
||||
|
||||
break;
|
||||
}
|
||||
|
|
74
editor.php
74
editor.php
|
@ -236,7 +236,7 @@ echo '
|
|||
</a>';
|
||||
|
||||
echo '
|
||||
<script>';
|
||||
<script>';
|
||||
|
||||
// Se l'utente ha i permessi in sola lettura per il modulo, converto tutti i campi di testo in span
|
||||
if ($module['permessi'] == 'r') {
|
||||
|
@ -250,54 +250,54 @@ if ($module['permessi'] == 'r') {
|
|||
<?php
|
||||
} ?>
|
||||
|
||||
var content_was_modified = false;
|
||||
var content_was_modified = false;
|
||||
|
||||
//controllo se digito qualche valore o cambio qualche select
|
||||
$("input, textarea, select").bind("change paste keyup", function(event) {
|
||||
if( event.keyCode >= 32 ){
|
||||
content_was_modified = true;
|
||||
}
|
||||
});
|
||||
//controllo se digito qualche valore o cambio qualche select
|
||||
$("input, textarea, select").bind("change paste keyup", function(event) {
|
||||
if( event.keyCode >= 32 ){
|
||||
content_was_modified = true;
|
||||
}
|
||||
});
|
||||
|
||||
//tolgo il controllo se sto salvando
|
||||
$(".btn-success, button[type=submit]").bind("click", function() {
|
||||
content_was_modified = false;
|
||||
});
|
||||
//tolgo il controllo se sto salvando
|
||||
$(".btn-success, button[type=submit]").bind("click", function() {
|
||||
content_was_modified = false;
|
||||
});
|
||||
|
||||
// questo controllo blocca il modulo vendita al banco, dopo la lettura con barcode, appare il messaggio di conferma
|
||||
window.onbeforeunload = function(){
|
||||
if(content_was_modified) {
|
||||
return 'Uscire senza salvare?';
|
||||
}
|
||||
};
|
||||
// questo controllo blocca il modulo vendita al banco, dopo la lettura con barcode, appare il messaggio di conferma
|
||||
window.onbeforeunload = function(){
|
||||
if(content_was_modified) {
|
||||
return 'Uscire senza salvare?';
|
||||
}
|
||||
};
|
||||
<?php
|
||||
if ($advanced_sessions) {
|
||||
?>
|
||||
|
||||
function getActiveUsers(){
|
||||
$.getJSON('<?php echo ROOTDIR; ?>/call.php', {
|
||||
id_module: <?php echo $id_module; ?>,
|
||||
id_record: <?php echo $id_record; ?>
|
||||
},
|
||||
function(data) {
|
||||
if (data.length != 0) {
|
||||
$(".info-active").removeClass("hide");
|
||||
$(".info-active .list").html("");
|
||||
$.each( data, function( key, val ) {
|
||||
$(".info-active .list").append("<li>"+val.username+"</li>");
|
||||
});
|
||||
}
|
||||
else $(".info-active").addClass("hide");
|
||||
});
|
||||
}
|
||||
function getActiveUsers(){
|
||||
$.getJSON('<?php echo ROOTDIR; ?>/call.php', {
|
||||
id_module: <?php echo $id_module; ?>,
|
||||
id_record: <?php echo $id_record; ?>
|
||||
},
|
||||
function(data) {
|
||||
if (data.length != 0) {
|
||||
$(".info-active").removeClass("hide");
|
||||
$(".info-active .list").html("");
|
||||
$.each( data, function( key, val ) {
|
||||
$(".info-active .list").append("<li>"+val.username+"</li>");
|
||||
});
|
||||
}
|
||||
else $(".info-active").addClass("hide");
|
||||
});
|
||||
}
|
||||
|
||||
getActiveUsers();
|
||||
getActiveUsers();
|
||||
|
||||
setInterval(getActiveUsers, <?php echo get_var('Timeout notifica di presenza (minuti)') * 1000; ?>);
|
||||
setInterval(getActiveUsers, <?php echo get_var('Timeout notifica di presenza (minuti)') * 1000; ?>);
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</script>
|
||||
</script>
|
||||
<?php
|
||||
|
||||
include_once App::filepath('include|custom|', 'bottom.php');
|
||||
|
|
|
@ -587,9 +587,9 @@ function get_var($nome, $sezione = null, $descrizione = false, $again = false)
|
|||
*
|
||||
* @return string
|
||||
*/
|
||||
function filter($param, $method = null)
|
||||
function filter($param, $method = null, $raw = false)
|
||||
{
|
||||
return Filter::getValue($param, $method = null);
|
||||
return Filter::getValue($param, $method, $raw);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -602,9 +602,9 @@ function filter($param, $method = null)
|
|||
*
|
||||
* @return string
|
||||
*/
|
||||
function post($param, $rule = 'text')
|
||||
function post($param, $raw = false)
|
||||
{
|
||||
return Filter::getValue($param, 'post');
|
||||
return Filter::getValue($param, 'post', $raw);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -617,9 +617,9 @@ function post($param, $rule = 'text')
|
|||
*
|
||||
* @return string
|
||||
*/
|
||||
function get($param, $rule = 'text')
|
||||
function get($param, $raw = false)
|
||||
{
|
||||
return Filter::getValue($param, 'get');
|
||||
return Filter::getValue($param, 'get', $raw);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -14,7 +14,7 @@ switch (post('op')) {
|
|||
if (!empty($id)) {
|
||||
// Leggo l'id del modulo
|
||||
$rs = $dbo->fetchArray('SELECT id, name, directory FROM zz_modules WHERE id='.prepare($id).' AND `default`=0');
|
||||
$modulo = $rs[0]['name'];
|
||||
$modulo = $rs[0]['title'];
|
||||
$module_dir = $rs[0]['directory'];
|
||||
|
||||
if (count($rs) == 1) {
|
||||
|
@ -41,7 +41,7 @@ switch (post('op')) {
|
|||
$dbo->query('UPDATE `zz_modules` SET `enabled` = 0 WHERE (`id` = '.prepare($id).' OR `parent` = '.prepare($id).') AND `id` != '.prepare(Modules::get('Aggiornamenti')['id']));
|
||||
|
||||
$_SESSION['infos'][] = tr('Modulo _MODULE_ disabilitato!', [
|
||||
'_MODULE_' => '"'.Modules::get($id)['name'].'"',
|
||||
'_MODULE_' => '"'.Modules::get($id)['title'].'"',
|
||||
]);
|
||||
|
||||
break;
|
||||
|
@ -50,7 +50,7 @@ switch (post('op')) {
|
|||
$dbo->query('UPDATE `zz_modules` SET `enabled` = 1 WHERE `id` = '.prepare($id).' OR `parent` = '.prepare($id));
|
||||
|
||||
$_SESSION['infos'][] = tr('Modulo _MODULE_ abilitato!', [
|
||||
'_MODULE_' => '"'.Modules::get($id)['name'].'"',
|
||||
'_MODULE_' => '"'.Modules::get($id)['title'].'"',
|
||||
]);
|
||||
|
||||
break;
|
||||
|
|
|
@ -142,7 +142,7 @@ foreach ($modules as $module) {
|
|||
|
||||
echo '
|
||||
<tr class="'.$class.'">
|
||||
<td>'.$module['name'].'</td>
|
||||
<td>'.$module['title'].'</td>
|
||||
<td align="right">'.$module['version'].'</td>
|
||||
<td align="center">'.$stato.'</td>
|
||||
<td align="center">'.$compatible.'</td>';
|
||||
|
|
|
@ -45,7 +45,7 @@ function submodules($list, $depth = 1)
|
|||
|
||||
$result .= '
|
||||
<tr class="'.$class.'">
|
||||
<td><small>'.str_repeat(' ', $depth * 4).'- '.$sub['name'].'</small></td>
|
||||
<td><small>'.str_repeat(' ', $depth * 4).'- '.$sub['title'].'</small></td>
|
||||
<td align="right">'.$sub['version'].'</td>
|
||||
<td align="center">'.$stato.'</td>
|
||||
<td align="center">'.$compatible.'</td>';
|
||||
|
|
|
@ -268,3 +268,22 @@ switch (post('op')) {
|
|||
|
||||
break;
|
||||
}
|
||||
|
||||
// Operazioni aggiuntive per il logo
|
||||
if (filter('op') == 'link_file'){
|
||||
$nome = 'Logo stampe';
|
||||
|
||||
if (Settings::get('Azienda predefinita') == $id_record && filter('nome_allegato') == $nome) {
|
||||
$file = $dbo->selectOne('zz_files', ['filename'], [
|
||||
'nome' => $nome,
|
||||
'id_module' => $id_module,
|
||||
'id_record' => $id_record,
|
||||
]);
|
||||
|
||||
$dbo->update('zz_settings', [
|
||||
'valore' => $file['filename'],
|
||||
], [
|
||||
'nome' => $nome,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -428,6 +428,11 @@ if (!empty($google)) {
|
|||
|
||||
<?php
|
||||
|
||||
if (Settings::get('Azienda predefinita') == $id_record) {
|
||||
echo '
|
||||
<div class="alert alert-info text-center">'.tr('Per impostare il logo delle stampe, caricare un file con nome "Logo stampe"').'.</div>';
|
||||
}
|
||||
|
||||
if (!$records[0]['deleted']) {
|
||||
//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`.`descrizione` AS tipo_documento, `co_tipidocumento`.`dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idanagrafica` = '.prepare($id_record).')
|
||||
|
@ -507,14 +512,11 @@ if (!$records[0]['deleted']) {
|
|||
}
|
||||
} else {
|
||||
echo '
|
||||
<div class=\'alert alert-danger\' >'.tr('Questa anagrafica è stata eliminata').'.</div>';
|
||||
<div class=\'alert alert-danger\'>'.tr('Questa anagrafica è stata eliminata').'.</div>';
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
$(document).ready( function(){
|
||||
$(".colorpicker").colorpicker().on("changeColor", function(){
|
||||
|
|
|
@ -19,7 +19,7 @@ switch (post('op')) {
|
|||
//$idarticolo_originale = post('idarticolo_originale');
|
||||
|
||||
// Leggo la quantità attuale nell'intervento
|
||||
$q = 'SELECT qta, idautomezzo, idimpianto FROM co_contratti_promemoria_articoli WHERE id='.prepare($idriga);
|
||||
$q = 'SELECT qta, idautomezzo, idimpianto FROM co_righe_contratti_articoli WHERE id='.prepare($idriga);
|
||||
$rs = $dbo->fetchArray($q);
|
||||
$old_qta = $rs[0]['qta'];
|
||||
$idimpianto = $rs[0]['idimpianto'];
|
||||
|
@ -30,7 +30,7 @@ switch (post('op')) {
|
|||
//add_movimento_magazzino($idarticolo_originale, $old_qta, ['idautomezzo' => $idautomezzo, 'idintervento' => $id_record]);
|
||||
|
||||
// Elimino questo articolo dall'intervento
|
||||
$dbo->query('DELETE FROM co_contratti_promemoria_articoli WHERE id='.prepare($idriga));
|
||||
$dbo->query('DELETE FROM co_righe_contratti_articoli WHERE id='.prepare($idriga));
|
||||
|
||||
// Elimino il collegamento al componente
|
||||
//$dbo->query('DELETE FROM my_impianto_componenti WHERE idimpianto='.prepare($idimpianto).' AND idintervento='.prepare($id_record));
|
||||
|
@ -74,7 +74,7 @@ switch (post('op')) {
|
|||
$iva = (($prezzo_vendita * $qta) - $sconto) * $rs_iva[0]['percentuale'] / 100;
|
||||
|
||||
// Aggiunto il collegamento fra l'articolo e l'intervento
|
||||
$idriga = $dbo->query('INSERT INTO co_contratti_promemoria_articoli(idarticolo, id_riga_contratto, idimpianto, idautomezzo, descrizione, prezzo_vendita, prezzo_acquisto, sconto, sconto_unitario, tipo_sconto, idiva, desc_iva, iva, qta, um, abilita_serial) VALUES ('.prepare($idarticolo).', '.prepare($idcontratto_riga).', '.(empty($idimpianto) ? 'NULL' : prepare($idimpianto)).', '.prepare($idautomezzo).', '.prepare($descrizione).', '.prepare($prezzo_vendita).', '.prepare($prezzo_acquisto).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($qta).', '.prepare($um).', '.prepare($rsart[0]['abilita_serial']).')');
|
||||
$idriga = $dbo->query('INSERT INTO co_righe_contratti_articoli(idarticolo, id_riga_contratto, idimpianto, idautomezzo, descrizione, prezzo_vendita, prezzo_acquisto, sconto, sconto_unitario, tipo_sconto, idiva, desc_iva, iva, qta, um, abilita_serial) VALUES ('.prepare($idarticolo).', '.prepare($idcontratto_riga).', '.(empty($idimpianto) ? 'NULL' : prepare($idimpianto)).', '.prepare($idautomezzo).', '.prepare($descrizione).', '.prepare($prezzo_vendita).', '.prepare($prezzo_acquisto).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($qta).', '.prepare($um).', '.prepare($rsart[0]['abilita_serial']).')');
|
||||
|
||||
/*if (!empty($serials)) {
|
||||
if ($old_qta > $qta) {
|
||||
|
@ -93,12 +93,12 @@ switch (post('op')) {
|
|||
$idriga = post('idriga');
|
||||
//$idarticolo = post('idarticolo');
|
||||
|
||||
$dbo->query('DELETE FROM co_contratti_promemoria_articoli WHERE id='.prepare($idriga).' '.Modules::getAdditionalsQuery($id_module));
|
||||
$dbo->query('DELETE FROM co_righe_contratti_articoli WHERE id='.prepare($idriga).' '.Modules::getAdditionalsQuery($id_module));
|
||||
|
||||
// Riporto la merce nel magazzino
|
||||
if (!empty($idriga) && !empty($id_record)) {
|
||||
// Leggo la quantità attuale nell'intervento
|
||||
//$q = 'SELECT qta, idautomezzo, idarticolo, idimpianto FROM co_contratti_promemoria_articoli WHERE id='.prepare($idriga);
|
||||
//$q = 'SELECT qta, idautomezzo, idarticolo, idimpianto FROM co_righe_contratti_articoli WHERE id='.prepare($idriga);
|
||||
//$rs = $dbo->fetchArray($q);
|
||||
//$qta = $rs[0]['qta'];
|
||||
//$idarticolo = $rs[0]['idarticolo'];
|
||||
|
@ -144,7 +144,7 @@ switch (post('op')) {
|
|||
|
||||
$idcontratto_riga = $post['idcontratto_riga'];
|
||||
|
||||
$dbo->query('INSERT INTO co_contratti_promemoria_materiali(descrizione, qta, um, prezzo_vendita, prezzo_acquisto, idiva, desc_iva, iva, sconto, sconto_unitario, tipo_sconto, id_riga_contratto) VALUES ('.prepare($descrizione).', '.prepare($qta).', '.prepare($um).', '.prepare($prezzo_vendita).', '.prepare($prezzo_acquisto).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare($idcontratto_riga).')');
|
||||
$dbo->query('INSERT INTO co_righe_contratti_materiali(descrizione, qta, um, prezzo_vendita, prezzo_acquisto, idiva, desc_iva, iva, sconto, sconto_unitario, tipo_sconto, id_riga_contratto) VALUES ('.prepare($descrizione).', '.prepare($qta).', '.prepare($um).', '.prepare($prezzo_vendita).', '.prepare($prezzo_acquisto).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare($idcontratto_riga).')');
|
||||
|
||||
break;
|
||||
|
||||
|
@ -169,7 +169,7 @@ switch (post('op')) {
|
|||
|
||||
$iva = (($prezzo_vendita * $qta) - $sconto) * $rs_iva[0]['percentuale'] / 100;
|
||||
|
||||
$dbo->query('UPDATE co_contratti_promemoria_materiali SET '.
|
||||
$dbo->query('UPDATE co_righe_contratti_materiali SET '.
|
||||
' descrizione='.prepare($descrizione).','.
|
||||
' qta='.prepare($qta).','.
|
||||
' um='.prepare($um).','.
|
||||
|
@ -188,7 +188,7 @@ switch (post('op')) {
|
|||
case 'delriga':
|
||||
|
||||
$idriga = post('idriga');
|
||||
$dbo->query('DELETE FROM co_contratti_promemoria_materiali WHERE id='.prepare($idriga).' '.Modules::getAdditionalsQuery($id_module));
|
||||
$dbo->query('DELETE FROM co_righe_contratti_materiali WHERE id='.prepare($idriga).' '.Modules::getAdditionalsQuery($id_module));
|
||||
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -45,7 +45,7 @@ if (empty($idriga)) {
|
|||
$button = '<i class="fa fa-edit"></i> '.tr('Modifica');
|
||||
|
||||
// carico record da modificare
|
||||
$q = "SELECT *, (SELECT codice FROM mg_articoli WHERE id=co_contratti_promemoria_articoli.idarticolo) AS codice_articolo, (SELECT CONCAT(codice, ' - ', descrizione) FROM mg_articoli WHERE id=co_contratti_promemoria_articoli.idarticolo) AS descrizione_articolo FROM co_contratti_promemoria_articoli WHERE id=".prepare($idriga);
|
||||
$q = "SELECT *, (SELECT codice FROM mg_articoli WHERE id=co_righe_contratti_articoli.idarticolo) AS codice_articolo, (SELECT CONCAT(codice, ' - ', descrizione) FROM mg_articoli WHERE id=co_righe_contratti_articoli.idarticolo) AS descrizione_articolo FROM co_righe_contratti_articoli WHERE id=".prepare($idriga);
|
||||
$rsr = $dbo->fetchArray($q);
|
||||
|
||||
$idarticolo = $rsr[0]['idarticolo'];
|
||||
|
|
|
@ -31,7 +31,7 @@ if (empty($idriga)) {
|
|||
$button = '<i class="fa fa-edit"></i> '.tr('Modifica');
|
||||
|
||||
// carico record da modificare
|
||||
$q = 'SELECT * FROM co_contratti_promemoria_materiali WHERE id='.prepare($idriga);
|
||||
$q = 'SELECT * FROM co_righe_contratti_materiali WHERE id='.prepare($idriga);
|
||||
$rsr = $dbo->fetchArray($q);
|
||||
|
||||
$descrizione = $rsr[0]['descrizione'];
|
||||
|
|
|
@ -139,7 +139,7 @@ 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_module": "'.$id_module.'", "id_plugin": "'.$id_plugin.'", '.((!empty($readonly)) ? '"readonly": 1' : '"readonly": 0').' )}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -11,7 +11,7 @@ if (!empty($get['idcontratto_riga'])) {
|
|||
$idcontratto_riga = $get['idcontratto_riga'];
|
||||
}
|
||||
|
||||
$query = 'SELECT * FROM co_contratti_promemoria_articoli WHERE id_riga_contratto='.prepare($idcontratto_riga).' '.Modules::getAdditionalsQuery('Magazzino').' ORDER BY id ASC';
|
||||
$query = 'SELECT * FROM co_righe_contratti_articoli WHERE id_riga_contratto='.prepare($idcontratto_riga).' '.Modules::getAdditionalsQuery('Magazzino').' ORDER BY id ASC';
|
||||
$rs = $dbo->fetchArray($query);
|
||||
|
||||
if (!empty($rs)) {
|
||||
|
|
|
@ -6,7 +6,7 @@ if (!empty($get['idcontratto_riga'])) {
|
|||
$idcontratto_riga = $get['idcontratto_riga'];
|
||||
}
|
||||
|
||||
$query = 'SELECT * FROM co_contratti_promemoria_materiali WHERE id_riga_contratto='.prepare($idcontratto_riga).' '.Modules::getAdditionalsQuery('Magazzino').' ORDER BY id ASC';
|
||||
$query = 'SELECT * FROM co_righe_contratti_materiali WHERE id_riga_contratto='.prepare($idcontratto_riga).' '.Modules::getAdditionalsQuery('Magazzino').' ORDER BY id ASC';
|
||||
$rs2 = $dbo->fetchArray($query);
|
||||
|
||||
if (count($rs2) > 0) {
|
||||
|
|
|
@ -15,7 +15,6 @@ switch (filter('op')) {
|
|||
} else {
|
||||
$_SESSION['errors'][] = tr("Errore durante l'aggiunta del promemoria!");
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 'edit-pianifica':
|
||||
|
@ -38,6 +37,9 @@ switch (filter('op')) {
|
|||
$_SESSION['errors'][] = tr('Errore durante la modifica del promemoria!');
|
||||
}
|
||||
}
|
||||
|
||||
redirect($rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'#tab_'.$id_plugin);
|
||||
|
||||
break;
|
||||
|
||||
// Eliminazione pianificazione
|
||||
|
@ -46,8 +48,8 @@ switch (filter('op')) {
|
|||
$id = filter('id');
|
||||
|
||||
$dbo->query('DELETE FROM `co_contratti_promemoria` WHERE id='.prepare($id));
|
||||
$dbo->query('DELETE FROM `co_contratti_promemoria_materiali` WHERE id_riga_contratto='.prepare($id));
|
||||
$dbo->query('DELETE FROM `co_contratti_promemoria_articoli` WHERE id_riga_contratto='.prepare($id));
|
||||
$dbo->query('DELETE FROM `co_righe_contratti_materiali` WHERE id_riga_contratto='.prepare($id));
|
||||
$dbo->query('DELETE FROM `co_righe_contratti_articoli` WHERE id_riga_contratto='.prepare($id));
|
||||
|
||||
$_SESSION['infos'][] = tr('Pianificazione eliminata!');
|
||||
|
||||
|
@ -59,8 +61,8 @@ switch (filter('op')) {
|
|||
case 'delete-promemoria':
|
||||
|
||||
$dbo->query('DELETE FROM `co_contratti_promemoria` WHERE idcontratto = '.$id_record.' AND idintervento IS NULL');
|
||||
$dbo->query('DELETE FROM `co_contratti_promemoria_materiali` WHERE id_riga_contratto IN (SELECT id FROM `co_contratti_promemoria` WHERE idcontratto = '.$id_record.' AND idintervento IS NULL ) ');
|
||||
$dbo->query('DELETE FROM `co_contratti_promemoria_articoli` WHERE id_riga_contratto IN (SELECT id FROM `co_contratti_promemoria` WHERE idcontratto = '.$id_record.' AND idintervento IS NULL ) ');
|
||||
$dbo->query('DELETE FROM `co_righe_contratti_materiali` WHERE id_riga_contratto IN (SELECT id FROM `co_contratti_promemoria` WHERE idcontratto = '.$id_record.' AND idintervento IS NULL ) ');
|
||||
$dbo->query('DELETE FROM `co_righe_contratti_articoli` WHERE id_riga_contratto IN (SELECT id FROM `co_contratti_promemoria` WHERE idcontratto = '.$id_record.' AND idintervento IS NULL ) ');
|
||||
|
||||
$_SESSION['errors'][] = tr('Tutti i promemoria non associati sono stati eliminati!');
|
||||
|
||||
|
@ -120,10 +122,10 @@ switch (filter('op')) {
|
|||
$idriga = $dbo->lastInsertedID();
|
||||
|
||||
//copio anche righe materiali nel nuovo promemoria
|
||||
$dbo->query('INSERT INTO co_contratti_promemoria_materiali (descrizione, qta,um,prezzo_vendita,prezzo_acquisto,idiva, desc_iva,iva,id_riga_contratto,sconto,sconto_unitario,tipo_sconto) SELECT descrizione, qta,um,prezzo_vendita,prezzo_acquisto,idiva, desc_iva,iva,'.$idriga.',sconto,sconto_unitario,tipo_sconto FROM co_contratti_promemoria_materiali WHERE id_riga_contratto = '.$idcontratto_riga.' ');
|
||||
$dbo->query('INSERT INTO co_righe_contratti_materiali (descrizione, qta,um,prezzo_vendita,prezzo_acquisto,idiva, desc_iva,iva,id_riga_contratto,sconto,sconto_unitario,tipo_sconto) SELECT descrizione, qta,um,prezzo_vendita,prezzo_acquisto,idiva, desc_iva,iva,'.$idriga.',sconto,sconto_unitario,tipo_sconto FROM co_righe_contratti_materiali WHERE id_riga_contratto = '.$idcontratto_riga.' ');
|
||||
|
||||
//copio righe articoli nel nuovo promemoria
|
||||
$dbo->query('INSERT INTO co_contratti_promemoria_articoli (idarticolo, id_riga_contratto,descrizione,prezzo_acquisto,prezzo_vendita,sconto, sconto_unitario, tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto) SELECT idarticolo, '.$idriga.',descrizione,prezzo_acquisto,prezzo_vendita,sconto,sconto_unitario,tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto FROM co_contratti_promemoria_articoli WHERE id_riga_contratto = '.$idcontratto_riga.' ');
|
||||
$dbo->query('INSERT INTO co_righe_contratti_articoli (idarticolo, id_riga_contratto,descrizione,prezzo_acquisto,prezzo_vendita,sconto, sconto_unitario, tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto) SELECT idarticolo, '.$idriga.',descrizione,prezzo_acquisto,prezzo_vendita,sconto,sconto_unitario,tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto FROM co_righe_contratti_articoli WHERE id_riga_contratto = '.$idcontratto_riga.' ');
|
||||
|
||||
$_SESSION['infos'][] = tr('Promemoria intervento pianificato!');
|
||||
|
||||
|
@ -177,10 +179,10 @@ switch (filter('op')) {
|
|||
$dbo->query('UPDATE co_contratti_promemoria SET idintervento='.prepare($idintervento).' WHERE id='.prepare($idriga));
|
||||
|
||||
//copio le righe dal promemoria all'intervento
|
||||
$dbo->query('INSERT INTO in_righe_interventi (descrizione, qta,um,prezzo_vendita,prezzo_acquisto,idiva,desc_iva,iva,idintervento,sconto,sconto_unitario,tipo_sconto) SELECT descrizione, qta,um,prezzo_vendita,prezzo_acquisto,idiva,desc_iva,iva,'.$idintervento.',sconto,sconto_unitario,tipo_sconto FROM co_contratti_promemoria_materiali WHERE id_riga_contratto = '.$idcontratto_riga.' ');
|
||||
$dbo->query('INSERT INTO in_righe_interventi (descrizione, qta,um,prezzo_vendita,prezzo_acquisto,idiva,desc_iva,iva,idintervento,sconto,sconto_unitario,tipo_sconto) SELECT descrizione, qta,um,prezzo_vendita,prezzo_acquisto,idiva,desc_iva,iva,'.$idintervento.',sconto,sconto_unitario,tipo_sconto FROM co_righe_contratti_materiali WHERE id_riga_contratto = '.$idcontratto_riga.' ');
|
||||
|
||||
//copio gli articoli dal promemoria all'intervento
|
||||
$dbo->query('INSERT INTO mg_articoli_interventi (idarticolo, idintervento,descrizione,prezzo_acquisto,prezzo_vendita,sconto, sconto_unitario, tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto) SELECT idarticolo, '.$idintervento.',descrizione,prezzo_acquisto,prezzo_vendita,sconto,sconto_unitario,tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto FROM co_contratti_promemoria_articoli WHERE id_riga_contratto = '.$idcontratto_riga.' ');
|
||||
$dbo->query('INSERT INTO mg_articoli_interventi (idarticolo, idintervento,descrizione,prezzo_acquisto,prezzo_vendita,sconto, sconto_unitario, tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto) SELECT idarticolo, '.$idintervento.',descrizione,prezzo_acquisto,prezzo_vendita,sconto,sconto_unitario,tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto FROM co_righe_contratti_articoli WHERE id_riga_contratto = '.$idcontratto_riga.' ');
|
||||
|
||||
// Decremento la quantità per ogni articolo copiato
|
||||
$rs_articoli = $dbo->fetchArray('SELECT * FROM mg_articoli_interventi WHERE idintervento = '.$idintervento.' ');
|
||||
|
@ -302,8 +304,8 @@ if (count($rsp) != 0) {
|
|||
}
|
||||
}
|
||||
|
||||
$rsp4 = $dbo->fetchArray('SELECT id, descrizione,qta,um,prezzo_vendita, \'\' AS idarticolo FROM co_contratti_promemoria_materiali WHERE id_riga_contratto = '.prepare($rsp[$i]['id']).'
|
||||
UNION SELECT id, descrizione,qta,um,prezzo_vendita, idarticolo FROM co_contratti_promemoria_articoli WHERE id_riga_contratto = '.prepare($rsp[$i]['id']));
|
||||
$rsp4 = $dbo->fetchArray('SELECT id, descrizione,qta,um,prezzo_vendita, \'\' AS idarticolo FROM co_righe_contratti_materiali WHERE id_riga_contratto = '.prepare($rsp[$i]['id']).'
|
||||
UNION SELECT id, descrizione,qta,um,prezzo_vendita, idarticolo FROM co_righe_contratti_articoli WHERE id_riga_contratto = '.prepare($rsp[$i]['id']));
|
||||
|
||||
$info_materiali = '';
|
||||
if (!empty($rsp4)) {
|
||||
|
@ -440,9 +442,5 @@ echo '
|
|||
);
|
||||
|
||||
|
||||
});
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
});
|
||||
</script>
|
||||
|
|
|
@ -264,10 +264,10 @@ switch (post('op')) {
|
|||
$dbo->update('co_contratti_promemoria', $array, ['idcontratto' => $idcontratto, 'id' => $idcontratto_riga]);
|
||||
|
||||
//copio le righe dal promemoria all'intervento
|
||||
$dbo->query('INSERT INTO in_righe_interventi (descrizione, qta,um,prezzo_vendita,prezzo_acquisto,idiva,desc_iva,iva,idintervento,sconto,sconto_unitario,tipo_sconto) SELECT descrizione, qta,um,prezzo_vendita,prezzo_acquisto,idiva,desc_iva,iva,'.$id_record.',sconto,sconto_unitario,tipo_sconto FROM co_contratti_promemoria_materiali WHERE id_riga_contratto = '.$idcontratto_riga.' ');
|
||||
$dbo->query('INSERT INTO in_righe_interventi (descrizione, qta,um,prezzo_vendita,prezzo_acquisto,idiva,desc_iva,iva,idintervento,sconto,sconto_unitario,tipo_sconto) SELECT descrizione, qta,um,prezzo_vendita,prezzo_acquisto,idiva,desc_iva,iva,'.$id_record.',sconto,sconto_unitario,tipo_sconto FROM co_righe_contratti_materiali WHERE id_riga_contratto = '.$idcontratto_riga.' ');
|
||||
|
||||
//copio gli articoli dal promemoria all'intervento
|
||||
$dbo->query('INSERT INTO mg_articoli_interventi (idarticolo, idintervento,descrizione,prezzo_acquisto,prezzo_vendita,sconto, sconto_unitario, tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto) SELECT idarticolo, '.$id_record.',descrizione,prezzo_acquisto,prezzo_vendita,sconto,sconto_unitario,tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto FROM co_contratti_promemoria_articoli WHERE id_riga_contratto = '.$idcontratto_riga.' ');
|
||||
$dbo->query('INSERT INTO mg_articoli_interventi (idarticolo, idintervento,descrizione,prezzo_acquisto,prezzo_vendita,sconto, sconto_unitario, tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto) SELECT idarticolo, '.$id_record.',descrizione,prezzo_acquisto,prezzo_vendita,sconto,sconto_unitario,tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto FROM co_righe_contratti_articoli WHERE id_riga_contratto = '.$idcontratto_riga.' ');
|
||||
|
||||
// Decremento la quantità per ogni articolo copiato
|
||||
$rs_articoli = $dbo->fetchArray('SELECT * FROM mg_articoli_interventi WHERE idintervento = '.$id_record.' ');
|
||||
|
|
|
@ -121,7 +121,7 @@ if (empty($new_codice)) {
|
|||
|
||||
?>
|
||||
|
||||
<form action="" method="post" id="add-form" id="add-form" onsubmit="if($(this).parsley().validate()) { return add_intervento(); }">
|
||||
<form action="" method="post" id="add-form" onsubmit="if($(this).parsley().validate()) { return add_intervento(); }">
|
||||
<input type="hidden" name="op" value="add">
|
||||
<input type="hidden" name="ref" value="<?php echo get('ref'); ?>">
|
||||
<input type="hidden" name="backto" value="record-edit">
|
||||
|
|
|
@ -32,7 +32,7 @@ if (get('anteprima') !== null) {
|
|||
|
||||
<div class="clearfix"></div>
|
||||
|
||||
<iframe src="'.Prints::getPreviewLink($id_print, $id_record, $filename).'" allowfullscreen="" webkitallowfullscreen="" width="100%" height="550"></iframe>
|
||||
<iframe src="'.Prints::getPreviewLink($id_print, $id_record, $filename).'" frameborder="0" width="100%" height="550"></iframe>
|
||||
</div>';
|
||||
}
|
||||
|
||||
|
|
|
@ -251,7 +251,7 @@ $_SESSION['superselect']['idanagrafica'] = $records[0]['idanagrafica'];
|
|||
</div>
|
||||
</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": 1' : '"readonly": 0'; ?> )}
|
||||
|
||||
<!-- EVENTUALE FIRMA GIA' EFFETTUATA -->
|
||||
<div class="text-center">
|
||||
|
|
|
@ -500,7 +500,7 @@ class Database extends Util\Singleton
|
|||
if (
|
||||
!is_string($table) ||
|
||||
(!empty($order) && !is_string($order) && !is_array($order)) ||
|
||||
(!empty($limit) && !is_string($limit) && !is_array($limit))
|
||||
(!empty($limit) && !is_string($limit) && !is_integer($limit) && !is_array($limit))
|
||||
) {
|
||||
throw new UnexpectedValueException();
|
||||
}
|
||||
|
@ -567,7 +567,13 @@ class Database extends Util\Singleton
|
|||
{
|
||||
$limit = 1;
|
||||
|
||||
return $this->select($table, $array, $conditions, $order, $limit, $return);
|
||||
$result = $this->select($table, $array, $conditions, $order, $limit, $return);
|
||||
|
||||
if (isset($result[0])) {
|
||||
return $result[0];
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -11,9 +11,9 @@ class Filter
|
|||
protected static $purifier;
|
||||
|
||||
/** @var array Elenco dei contenuti inviati via POST */
|
||||
protected static $post;
|
||||
protected static $post = [];
|
||||
/** @var array Elenco dei contenuti inviati via GET */
|
||||
protected static $get;
|
||||
protected static $get = [];
|
||||
|
||||
/**
|
||||
* Restituisce il valore presente nei dati ottenuti dall'input dell'utente.
|
||||
|
@ -23,16 +23,16 @@ class Filter
|
|||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getValue($property, $method = null)
|
||||
public static function getValue($property, $method = null, $raw = false)
|
||||
{
|
||||
$value = null;
|
||||
|
||||
if (empty($method)) {
|
||||
$value = (self::post($property) !== null) ? self::post($property) : self::get($property);
|
||||
$value = (self::post($property, $raw) !== null) ? self::post($property, $raw) : self::get($property, $raw);
|
||||
} elseif (strtolower($method) == 'post') {
|
||||
$value = self::post($property);
|
||||
$value = self::post($property, $raw);
|
||||
} elseif (strtolower($method) == 'get') {
|
||||
$value = self::get($property);
|
||||
$value = self::get($property, $raw);
|
||||
}
|
||||
|
||||
return $value;
|
||||
|
@ -46,10 +46,11 @@ class Filter
|
|||
public static function getPOST()
|
||||
{
|
||||
if (empty(self::$post)) {
|
||||
self::$post = self::sanitize($_POST);
|
||||
self::$post['raw'] = self::sanitize($_POST);
|
||||
self::$post['data'] = self::parse(self::$post['raw']);
|
||||
}
|
||||
|
||||
return self::$post;
|
||||
return self::$post['data'];
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -59,11 +60,14 @@ class Filter
|
|||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function post($property)
|
||||
public static function post($property, $raw = false)
|
||||
{
|
||||
$post = self::getPOST();
|
||||
if (!empty($post) && isset($post[$property])) {
|
||||
return $post[$property];
|
||||
self::getPOST();
|
||||
|
||||
$category = empty($raw) ? 'data' : 'raw';
|
||||
|
||||
if (isset(self::$post[$category][$property])) {
|
||||
return self::$post[$category][$property];
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -75,10 +79,11 @@ class Filter
|
|||
public static function getGET()
|
||||
{
|
||||
if (empty(self::$get)) {
|
||||
self::$get = self::sanitize($_GET);
|
||||
self::$get['raw'] = self::sanitize($_GET);
|
||||
self::$get['data'] = self::parse(self::$get['raw']);
|
||||
}
|
||||
|
||||
return self::$get;
|
||||
return self::$get['data'];
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -88,11 +93,14 @@ class Filter
|
|||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function get($property)
|
||||
public static function get($property, $raw = false)
|
||||
{
|
||||
$get = self::getGET();
|
||||
if (!empty($get) && isset($get[$property])) {
|
||||
return $get[$property];
|
||||
self::getGET();
|
||||
|
||||
$category = empty($raw) ? 'data' : 'raw';
|
||||
|
||||
if (isset(self::$get[$category][$property])) {
|
||||
return self::$get[$category][$property];
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -103,7 +111,7 @@ class Filter
|
|||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public static function sanitize($input)
|
||||
protected static function sanitize($input)
|
||||
{
|
||||
$output = null;
|
||||
if (is_array($input)) {
|
||||
|
@ -112,18 +120,23 @@ class Filter
|
|||
}
|
||||
} else {
|
||||
$output = trim(self::getPurifier()->purify($input));
|
||||
}
|
||||
|
||||
if (!empty($output)) {
|
||||
if (Translator::getFormatter()->isFormattedDate($output)) {
|
||||
$output = Translator::dateToEnglish($output);
|
||||
} elseif (Translator::getFormatter()->isFormattedTime($output)) {
|
||||
$output = Translator::timeToEnglish($output);
|
||||
} elseif (Translator::getFormatter()->isFormattedTimestamp($output)) {
|
||||
$output = Translator::timestampToEnglish($output);
|
||||
} elseif (Translator::getFormatter()->isFormattedNumber($output)) {
|
||||
$output = Translator::numberToEnglish($output);
|
||||
}
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* Undocumented function.
|
||||
*/
|
||||
public static function parse($input)
|
||||
{
|
||||
$output = null;
|
||||
if (is_array($input)) {
|
||||
foreach ($input as $key => $value) {
|
||||
$output[$key] = self::parse($value);
|
||||
}
|
||||
} elseif (!is_null($input)) {
|
||||
$output = Translator::getFormatter()->parse($input);
|
||||
}
|
||||
|
||||
return $output;
|
||||
|
|
|
@ -11,7 +11,7 @@ class FileManager implements ManagerInterface
|
|||
{
|
||||
/**
|
||||
* 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" )}.
|
||||
*
|
||||
* @param array $options
|
||||
*
|
||||
|
@ -20,21 +20,25 @@ class FileManager implements ManagerInterface
|
|||
public function manage($options)
|
||||
{
|
||||
$options['readonly'] = !empty($options['readonly']) ? true : false;
|
||||
$options['ajax'] = isset($options['ajax']) ? $options['ajax'] : false;
|
||||
$options['showpanel'] = isset($options['showpanel']) ? $options['showpanel'] : true;
|
||||
$options['label'] = isset($options['label']) ? $options['label'] : tr('Nuovo allegato').':';
|
||||
|
||||
// Riferimento ad un plugin
|
||||
$plugin = null;
|
||||
// ID del form
|
||||
$attachment_id = 'attachments_'.$options['id_module'].'-'.$options['id_plugin'];
|
||||
|
||||
// Cartella delle anteprime
|
||||
if (!empty($options['id_plugin'])) {
|
||||
$plugin = '_'.$options['id_plugin'];
|
||||
$directory = '/plugins/'.\Plugins::get($options['id_plugin'])['directory'];
|
||||
} else {
|
||||
$directory = \Modules::get($options['id_module'])['directory'];
|
||||
}
|
||||
$directory = basename($directory);
|
||||
|
||||
$dbo = \Database::getConnection();
|
||||
|
||||
// Codice HTML
|
||||
$result = '
|
||||
<div id="attachments_'.$options['id_record'].$plugin.'" >
|
||||
<a name="attachments_'.rand().'"></a>';
|
||||
<div id="'.$attachment_id.'" >';
|
||||
|
||||
if (!empty($options['showpanel'])) {
|
||||
$result .= '
|
||||
|
@ -45,20 +49,35 @@ class FileManager implements ManagerInterface
|
|||
<div class="panel-body">';
|
||||
}
|
||||
|
||||
// Visualizzo l'elenco di file già caricati
|
||||
$query = 'SELECT * FROM zz_files WHERE id_record = '.prepare($options['id_record']).' AND id_module'.((!empty($options['id_module'])) ? ' = '.prepare($options['id_module']) : ' IS NULL').' AND id_plugin'.((!empty($options['id_plugin'])) ? ' = '.prepare($options['id_plugin']) : ' IS NULL').'';
|
||||
$count = 0;
|
||||
|
||||
$rs = $dbo->fetchArray($query);
|
||||
$where = '`id_record` = '.prepare($options['id_record']).' AND `id_module` '.(!empty($options['id_module']) ? '= '.prepare($options['id_module']) : 'IS NULL').' AND `id_plugin` '.(!empty($options['id_plugin']) ? '= '.prepare($options['id_plugin']) : 'IS NULL').'';
|
||||
|
||||
// Categorie
|
||||
$categories = $dbo->fetchArray('SELECT DISTINCT `category` FROM `zz_files` WHERE '.$where.' ORDER BY `category`');
|
||||
foreach ($categories as $category) {
|
||||
$category = $category['category'];
|
||||
|
||||
if (!empty($rs)) {
|
||||
$result .= '
|
||||
<table class="table table-condensed table-hover table-bordered">
|
||||
<div class="box box-success">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">'.(!empty($category) ? $category : tr('Generale')).'</h3>
|
||||
<div class="box-tools pull-right">
|
||||
<button type="button" class="btn btn-box-tool" data-widget="collapse">
|
||||
<i class="fa fa-minus"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-body no-padding">
|
||||
<table class="table">
|
||||
<tr>
|
||||
<th>'.tr('Nome').'</th>
|
||||
<th>'.tr('Data').'</th>
|
||||
<th width="15%" class="text-center">#</th>
|
||||
<th width="15%" class="text-center">'.tr('Opzioni').'</th>
|
||||
</tr>';
|
||||
|
||||
$rs = $dbo->fetchArray('SELECT * FROM `zz_files` WHERE `category`'.(!empty($category) ? '= '.prepare($category) : 'IS NULL').' AND '.$where);
|
||||
|
||||
foreach ($rs as $r) {
|
||||
$result .= '
|
||||
<tr>
|
||||
|
@ -69,7 +88,6 @@ class FileManager implements ManagerInterface
|
|||
</td>
|
||||
<td>'.\Translator::timestampToLocale($r['created_at']).'</td>
|
||||
<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">
|
||||
<i class="fa fa-download"></i>
|
||||
</a>';
|
||||
|
@ -78,21 +96,29 @@ class FileManager implements ManagerInterface
|
|||
$extension = pathinfo($r['original'])['extension'];
|
||||
$supported_extensions = ['pdf', 'jpg', 'png', 'gif', 'jpeg', 'bmp'];
|
||||
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 .= '
|
||||
<iframe src="'.ROOTDIR.'/files/'.\Modules::get($options['id_module'])['directory'].'/'.$r['filename'].'" frameborder="0" scrolling="no" width="100%" height="550"></iframe>';
|
||||
<iframe src="'.\Prints::getPDFLink('files/'.$directory.'/'.$r['filename']).'" frameborder="0" width="100%" height="550"></iframe>';
|
||||
} else {
|
||||
$result .= '
|
||||
<img src="'.ROOTDIR.'/files/'.\Modules::get($options['id_module'])['directory'].'/'.$r['filename'].'" width="100%" ></img>';
|
||||
<img src="'.ROOTDIR.'/files/'.$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>";
|
||||
$result .= '
|
||||
<button class="btn btn-sm btn-info" data-target="#bs-popup2" type="button" data-title="'.prepareToField($r['nome']).' <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-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";
|
||||
$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>';
|
||||
}
|
||||
|
||||
if (!$options['readonly']) {
|
||||
|
@ -105,104 +131,52 @@ class FileManager implements ManagerInterface
|
|||
$result .= '
|
||||
</td>
|
||||
</tr>';
|
||||
|
||||
++$count;
|
||||
}
|
||||
|
||||
$result .= '
|
||||
</table>
|
||||
<div class="clearfix"></div>
|
||||
<br>';
|
||||
} else {
|
||||
//in caso di readonly, se non è stato caricato nessun allegato mostro almeno box informativo
|
||||
if ($options['readonly']) {
|
||||
$result .= '
|
||||
<div class="alert alert-info" style="margin-bottom:0px;" >
|
||||
<i class="fa fa-info-circle"></i>
|
||||
'.tr('Nessun allegato è stato caricato', []).'.
|
||||
</div>';
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="clearfix"></div>
|
||||
<br>';
|
||||
}
|
||||
|
||||
// Form per l'upload di un nuovo file
|
||||
if (!$options['readonly']) {
|
||||
// Form per l'upload di un nuovo file
|
||||
$result .= '
|
||||
<b>'.$options['label'].'</b>
|
||||
<div class="row">
|
||||
|
||||
<div class="col-lg-4">
|
||||
{[ "type": "text", "placeholder": "'.tr('Nome').'", "name": "nome_allegato", "id": "nome_allegato_'.$options['id_record'].$plugin.'" ]}
|
||||
<div id="upload-form" class="row">
|
||||
<div class="col-md-4">
|
||||
{[ "type": "text", "placeholder": "'.tr('Nome').'", "name": "nome_allegato" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6">
|
||||
{[ "type": "file", "placeholder": "'.tr('File').'", "name": "blob", "id": "blob_'.$options['id_record'].$plugin.'", "required": 0 ]}
|
||||
</div>';
|
||||
<div class="col-md-3">
|
||||
{[ "type": "text", "placeholder": "'.tr('Categoria').'", "name": "categoria" ]}
|
||||
</div>
|
||||
|
||||
$result .= '
|
||||
<div class="col-lg-2 text-right">
|
||||
<button type="button" class="btn btn-success" onclick="saveFile_'.$options['id_record'].$plugin.' ( $(this) );">
|
||||
<div class="col-md-3">
|
||||
{[ "type": "file", "placeholder": "'.tr('File').'", "name": "blob" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-2 text-right">
|
||||
<button type="button" class="btn btn-success" id="upload">
|
||||
<i class="fa fa-upload"></i> '.tr('Carica').'
|
||||
</button>
|
||||
</div>';
|
||||
|
||||
$result .= '
|
||||
</div>
|
||||
</div>';
|
||||
}
|
||||
|
||||
$result .= '
|
||||
<script>
|
||||
function saveFile_'.$options['id_record'].$plugin.' (btn){
|
||||
if(!$("#blob_'.$options['id_record'].$plugin.'").val()){
|
||||
swal("'.addslashes(tr('Attenzione!')).'", "'.addslashes(tr('Devi selezionare un file con il tasto "Sfoglia"')).'...", "warning");
|
||||
return false;
|
||||
}
|
||||
|
||||
var file_data = $("#blob_'.$options['id_record'].$plugin.'").prop("files")[0];
|
||||
|
||||
var form_data = new FormData();
|
||||
|
||||
form_data.append("blob", file_data);
|
||||
form_data.append("nome_allegato", $("input[id=nome_allegato_'.$options['id_record'].$plugin.']").val());
|
||||
form_data.append("op","link_file");
|
||||
form_data.append("id_record","'.$options['id_record'].'");
|
||||
form_data.append("id_module", "'.$options['id_module'].'");';
|
||||
|
||||
if (!empty($options['id_plugin'])) {
|
||||
// In caso di readonly, se non è stato caricato nessun allegato mostro almeno box informativo
|
||||
elseif ($count == 0) {
|
||||
$result .= '
|
||||
form_data.append("id_plugin","'.$options['id_plugin'].'");';
|
||||
<div class="alert alert-info" style="margin-bottom:0px;" >
|
||||
<i class="fa fa-info-circle"></i>
|
||||
'.tr('Nessun allegato è stato caricato').'.
|
||||
</div>';
|
||||
}
|
||||
|
||||
$result .= '
|
||||
|
||||
prev_html = btn.html();
|
||||
btn.html("<i class=\"fa fa-spinner fa-pulse fa-fw\"></i>'.tr('Attendere...').'");
|
||||
btn.prop("disabled", true);
|
||||
|
||||
$.ajax({
|
||||
url: "'.ROOTDIR.'/actions.php",
|
||||
cache: false,
|
||||
type: "post",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
dataType : "html",
|
||||
data: form_data,
|
||||
success: function(data) {
|
||||
|
||||
btn.html(prev_html);
|
||||
btn.prop("disabled", false);';
|
||||
|
||||
if ($options['ajax']) {
|
||||
$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 {
|
||||
$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 .= '},
|
||||
error: function(data) {
|
||||
alert(data);
|
||||
}
|
||||
})
|
||||
}
|
||||
</script>';
|
||||
|
||||
if (!empty($options['showpanel'])) {
|
||||
$result .= '
|
||||
</div>
|
||||
|
@ -210,6 +184,40 @@ class FileManager implements ManagerInterface
|
|||
</div>';
|
||||
}
|
||||
|
||||
$result .= '
|
||||
<script src="'.ROOTDIR.'/lib/init.js"></script>
|
||||
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
data = {
|
||||
op: "link_file",
|
||||
id_module: "'.$options['id_module'].'",
|
||||
id_plugin: "'.$options['id_plugin'].'",
|
||||
id_record: "'.$options['id_record'].'",
|
||||
};
|
||||
|
||||
$("#'.$attachment_id.' #upload").click(function(){
|
||||
$("#'.$attachment_id.' #upload-form").ajaxSubmit({
|
||||
url: globals.rootdir + "/actions.php",
|
||||
beforeSubmit: function(arr, $form, options) {
|
||||
return $form.find("input[name=nome_allegato]").val() && $form.find("input[name=blob]").val();
|
||||
},
|
||||
data: data,
|
||||
type: "post",
|
||||
uploadProgress: function(event, position, total, percentComplete) {
|
||||
$("#'.$attachment_id.' #upload-info").html(percentComplete + "%");
|
||||
},
|
||||
success: function(data){
|
||||
$("#'.$attachment_id.'").load(globals.rootdir + "/ajax.php?op=list_attachments&id_module='.$options['id_module'].'&id_record='.$options['id_record'].'&id_plugin='.$options['id_plugin'].'");
|
||||
},
|
||||
error: function(data) {
|
||||
alert("'.tr('Errore').': " + data);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>';
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -440,7 +440,7 @@ class Prints
|
|||
}
|
||||
|
||||
/**
|
||||
* Restituisce il link per la visualizzazione del PDF.
|
||||
* Restituisce il link per la visualizzazione della stampa.
|
||||
*
|
||||
* @param string|int $print
|
||||
* @param int $id_record
|
||||
|
@ -452,6 +452,20 @@ class Prints
|
|||
{
|
||||
self::render($print, $id_record, $filename);
|
||||
|
||||
return self::getPDFLink($filename);
|
||||
}
|
||||
|
||||
/**
|
||||
* Restituisce il link per la visualizzazione del PDF.
|
||||
*
|
||||
* @param string|int $print
|
||||
* @param int $id_record
|
||||
* @param string $filename
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getPDFLink($filename)
|
||||
{
|
||||
return ROOTDIR.'/assets/dist/pdfjs/web/viewer.html?file=../../../../'.ltrim(str_replace(DOCROOT, '', $filename), '/');
|
||||
}
|
||||
|
||||
|
|
|
@ -85,56 +85,24 @@ foreach ($replace as $prefix => $values) {
|
|||
}
|
||||
|
||||
// Header di default
|
||||
$header_file = DOCROOT.'/templates/base|custom|/header.php';
|
||||
|
||||
$original_file = str_replace('|custom|', '', $header_file);
|
||||
$custom_file = str_replace('|custom|', '/custom', $header_file);
|
||||
|
||||
if (file_exists($custom_file)) {
|
||||
$header_file = $custom_file;
|
||||
} elseif (file_exists($original_file)) {
|
||||
$header_file = $original_file;
|
||||
}
|
||||
|
||||
$header_file = App::filepath('templates/base|custom|/header.php');
|
||||
$default_header = include $header_file;
|
||||
|
||||
// Footer di default
|
||||
$footer_file = DOCROOT.'/templates/base|custom|/footer.php';
|
||||
|
||||
$original_file = str_replace('|custom|', '', $footer_file);
|
||||
$custom_file = str_replace('|custom|', '/custom', $footer_file);
|
||||
|
||||
if (file_exists($custom_file)) {
|
||||
$footer_file = $custom_file;
|
||||
} elseif (file_exists($original_file)) {
|
||||
$footer_file = $original_file;
|
||||
}
|
||||
|
||||
$footer_file = App::filepath('templates/base|custom|/footer.php');
|
||||
$default_footer = include $footer_file;
|
||||
|
||||
// Logo di default
|
||||
$logo_file = DOCROOT.'/templates/base|custom|/logo_azienda.jpg';
|
||||
$default_logo = App::filepath('templates/base|custom|/logo_azienda.jpg');
|
||||
|
||||
$original_file = str_replace('|custom|', '', $logo_file);
|
||||
$custom_file = str_replace('|custom|', '/custom', $logo_file);
|
||||
|
||||
$default_logo = $original_file;
|
||||
if (file_exists($custom_file)) {
|
||||
$default_logo = $custom_file;
|
||||
}
|
||||
// Logo generico
|
||||
$custom_logo = App::filepath('files/anagrafiche/'.Settings::get('Logo stampe'));
|
||||
|
||||
// Logo specifico della stampa
|
||||
$logo_file = DOCROOT.'/templates/'.Prints::get($id_print)['directory'].'|custom|/logo_azienda.jpg';
|
||||
$logo = Prints::filepath($id_print, 'logo_azienda.jpg');
|
||||
|
||||
$original_file = str_replace('|custom|', '', $logo_file);
|
||||
$custom_file = str_replace('|custom|', '/custom', $logo_file);
|
||||
|
||||
if (file_exists($custom_file)) {
|
||||
$logo = $custom_file;
|
||||
} elseif (file_exists($original_file)) {
|
||||
$logo = $original_file;
|
||||
} else {
|
||||
$logo = $default_logo;
|
||||
if (empty($logo)) {
|
||||
$logo = empty($custom_logo) ? $default_logo : $custom_logo;
|
||||
}
|
||||
|
||||
// Valori aggiuntivi per la sostituzione
|
||||
|
|
|
@ -330,7 +330,7 @@ UPDATE `zz_widgets` SET `query` = REPLACE(`query`, 'co_righe_contratti', 'co_con
|
|||
UPDATE `zz_widgets` SET `query` = REPLACE(`query`, 'co_righe2_contratti', 'co_righe_contratti');
|
||||
|
||||
-- Ordine per le Impostazioni
|
||||
ALTER TABLE `zz_settings` ADD `order` int(11) NOT NULL;
|
||||
ALTER TABLE `zz_settings` ADD `order` int(11);
|
||||
UPDATE `zz_settings` SET `order` = 1 WHERE `nome` = 'Azienda predefinita';
|
||||
UPDATE `zz_settings` SET `order` = 2 WHERE `nome` = 'Nascondere la barra sinistra di default';
|
||||
UPDATE `zz_settings` SET `order` = 3 WHERE `nome` = 'Backup automatico';
|
||||
|
@ -349,9 +349,14 @@ UPDATE `zz_settings` SET `order` = 15 WHERE `nome` = 'apilayer API key for Email
|
|||
UPDATE `zz_settings` SET `order` = 16 WHERE `nome` = 'apilayer API key for VAT number';
|
||||
UPDATE `zz_settings` SET `order` = 17 WHERE `nome` = 'CSS Personalizzato';
|
||||
|
||||
|
||||
-- Fix tipo del campo order
|
||||
ALTER TABLE `co_righe_preventivi` CHANGE `order` `order` int(11) NOT NULL;
|
||||
ALTER TABLE `dt_righe_ddt` CHANGE `order` `order` int(11) NOT NULL;
|
||||
ALTER TABLE `or_righe_ordini` CHANGE `order` `order` int(11) NOT NULL;
|
||||
ALTER TABLE `co_righe_contratti` CHANGE `order` `order` int(11) NOT NULL;
|
||||
|
||||
-- Impostazione "Logo stampe"
|
||||
INSERT INTO `zz_settings` (`idimpostazione`, `nome`, `valore`, `tipo`, `editable`, `sezione`) VALUES (NULL, 'Logo stampe', '', 'string', '0', 'Generali');
|
||||
|
||||
-- Categorie zz_files
|
||||
ALTER TABLE `zz_files` ADD `category` varchar(100) AFTER `original`;
|
||||
|
|
Loading…
Reference in New Issue