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:
Thomas Zilio 2018-07-02 15:41:38 +02:00
parent aebb5086c5
commit 459f75cab8
26 changed files with 300 additions and 263 deletions

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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');

View File

@ -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);
}
/**

View File

@ -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;

View File

@ -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>';

View File

@ -45,7 +45,7 @@ function submodules($list, $depth = 1)
$result .= '
<tr class="'.$class.'">
<td><small>'.str_repeat('&nbsp;', $depth * 4).'- '.$sub['name'].'</small></td>
<td><small>'.str_repeat('&nbsp;', $depth * 4).'- '.$sub['title'].'</small></td>
<td align="right">'.$sub['version'].'</td>
<td align="center">'.$stato.'</td>
<td align="center">'.$compatible.'</td>';

View File

@ -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,
]);
}
}

View File

@ -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(){

View File

@ -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;
}

View File

@ -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'];

View File

@ -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'];

View File

@ -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>

View File

@ -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)) {

View File

@ -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) {

View File

@ -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>

View File

@ -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.' ');

View File

@ -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">

View File

@ -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>';
}

View File

@ -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">

View File

@ -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;
}
/**

View File

@ -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;

View File

@ -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;
}
}

View File

@ -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), '/');
}

View File

@ -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

View File

@ -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`;