Fix di alcuni bug nel sistema di aggiornamento.
This commit is contained in:
Thomas Zilio 2017-08-30 14:43:38 +02:00
parent 22cedab248
commit 0a6b708960
11 changed files with 65 additions and 66 deletions

View File

@ -522,12 +522,6 @@ span.form-control {
}
}
.push {
position: fixed;
z-index: 3;
right: 10;
}
@media screen and (max-width:1023px) {
.push {
position: static;

View File

@ -186,7 +186,8 @@ class Auth extends \Util\Singleton
$database = Database::getConnection();
try {
$results = $database->fetchArray('SELECT idutente, idanagrafica, username, (SELECT nome FROM zz_groups WHERE id=idgruppo) AS gruppo FROM zz_users WHERE idutente = '.prepare($user_id).' AND enabled = 1 LIMIT 1');
$results = $database->fetchArray('SELECT idutente, idanagrafica, username, (SELECT nome FROM zz_groups WHERE id=idgruppo) AS gruppo FROM zz_users WHERE idutente = '.prepare($user_id).' AND enabled = 1 LIMIT 1', false, ['session' => false]);
if (!empty($results)) {
$results[0]['is_admin'] = ($results[0]['gruppo'] == 'Amministratori');

View File

@ -215,7 +215,7 @@ class Database extends Util\Singleton
*
* @return array
*/
public function fetchArray($query, $numeric = false)
public function fetchArray($query, $numeric = false, $options = [])
{
try {
$mode = empty($numeric) ? PDO::FETCH_ASSOC : PDO::FETCH_NUM;
@ -224,7 +224,7 @@ class Database extends Util\Singleton
return $result;
} catch (PDOException $e) {
$this->signal($e, $query);
$this->signal($e, $query, $options);
}
}

View File

@ -166,10 +166,6 @@ $(document).ready(function () {
var hash = window.location.hash ? window.location.hash : getUrlVars().hash;
if (hash && hash != '#tab_0') {
$('ul.nav a[href="' + hash + '"]').tab('show');
$($.fn.dataTable.tables(true)).DataTable().columns.adjust();
$($.fn.dataTable.tables(true)).DataTable().scroller.measure();
}
$('.nav-tabs a').click(function (e) {
@ -189,23 +185,6 @@ $(document).ready(function () {
$($.fn.dataTable.tables(true)).DataTable().scroller.measure();
});
// Aggiunta nell'URL del nome tab su cui tornare dopo il submit
$(document).on('submit', 'form', function () {
$(this).find('input:disabled, select:disabled').prop('disabled', false);
var hash = window.location.hash;
if (hash) {
var input = $('<input/>', {
type: 'hidden',
name: 'hash',
value: hash,
});
$(this).append(input);
}
});
// Messaggio di avviso salvataggio a comparsa sulla destra solo nella versione a desktop intero
if ($(window).width() > 1023) {
var i = 0;
@ -214,7 +193,12 @@ $(document).ready(function () {
i++;
tops = 60 * i + 95;
$(this).delay(1000).animate({
$(this).css({
'position': 'fixed',
'z-index': 3,
'right': '10px',
'top': -100,
}).delay(1000).animate({
'top': tops,
}).delay(3000).animate({
'top': -100,

View File

@ -75,6 +75,8 @@ $(document).ready(function () {
});
});
// Aggiunta nell'URL del nome tab su cui tornare dopo il submit
// Blocco del pulsante di submit dopo il primo submit
$("form").submit(function() {
if ($(this).parsley().validate()) {
$(this).submit(function() {
@ -83,6 +85,19 @@ $(document).ready(function () {
$(this).find('[type=submit]').prop("disabled", true).addClass("disabled");
$(this).find('input:disabled, select:disabled').prop('disabled', false);
var hash = window.location.hash;
if (hash) {
var input = $('<input/>', {
type: 'hidden',
name: 'hash',
value: hash,
});
$(this).append(input);
}
return true;
}

View File

@ -7,7 +7,6 @@ $_SESSION['superselect']['id_categoria'] = $records[0]['id_categoria'];
?><form action="" method="post" role="form" enctype="multipart/form-data">
<input type="hidden" name="backto" value="record-edit">
<input type="hidden" name="op" value="update">
<input type="hidden" name="id_record" value="<?php echo $id_record ?>">
<!-- DATI ANAGRAFICI -->
<div class="panel panel-primary">

View File

@ -54,7 +54,7 @@ if (!empty($rs2)) {
// Data
echo '
<td>'.Translator::timestampToLocale($r['data']).'</td>
<td>'.Translator::timestampToLocale($r['created_at']).'</td>
</tr>';
}
echo '

View File

@ -4,7 +4,7 @@ if (file_exists($docroot.'/lib/jscripts/fullcalendar.min.js')) {
@unlink($docroot.'/lib/jscripts/fullcalendar.min.js');
}
//Riporto su ogni riga della fattura la relativa rivalsa inps e ritenuta d'acconto se impostate
// Riporto su ogni riga della fattura la relativa rivalsa inps e ritenuta d'acconto se impostate
$rivalsainps = get_var('Percentuale rivalsa inps');
$ritenuta = get_var("Percentuale ritenuta d'acconto");

View File

@ -1,40 +1,41 @@
<?php
/**
* Verifico se serve creare un conto per eventuali nuovi clienti o fornitori.
*/
* Verifico se serve creare un conto per eventuali nuovi clienti o fornitori.
*/
$rs = $dbo->fetchArray('SELECT idanagrafica, ragione_sociale, (SELECT GROUP_CONCAT(an_tipianagrafiche.descrizione) FROM an_tipianagrafiche INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche.idtipoanagrafica=an_tipianagrafiche_anagrafiche.idtipoanagrafica WHERE idanagrafica=an_anagrafiche.idanagrafica) AS idtipianagrafica FROM an_anagrafiche WHERE idconto_cliente=0 OR idconto_fornitore=0');
for ($i = 0; $i < sizeof($rs); ++$i) {
if (in_array('Cliente', explode(',', $rs[$i]['idtipianagrafica']))) {
//Calcolo il codice conto più alto
// Calcolo il codice conto più alto
$rs2 = $dbo->fetchArray("SELECT MAX( CAST(numero AS UNSIGNED) ) AS max_numero, idpianodeiconti2 FROM co_pianodeiconti3 WHERE numero=CAST(numero AS UNSIGNED) AND idpianodeiconti2=(SELECT id FROM co_pianodeiconti2 WHERE descrizione='Crediti clienti e crediti diversi')");
$numero = str_pad($rs2[0]['max_numero'] + 1, 6, '0', STR_PAD_LEFT);
$idpianodeiconti2 = $rs2[0]['idpianodeiconti2'];
//Creo il nuovo conto
// Creo il nuovo conto
$dbo->query('INSERT INTO co_pianodeiconti3( numero, descrizione, idpianodeiconti2, can_delete, can_edit ) VALUES( "'.$numero.'", "'.$rs[$i]['ragione_sociale'].'", "'.$idpianodeiconti2.'", 1, 1 )');
$idconto = $dbo->lastInsertedID();
//Collego questo conto al cliente
// Collego questo conto al cliente
$dbo->query('UPDATE an_anagrafiche SET idconto_cliente="'.$idconto.'" WHERE idanagrafica="'.$rs[$i]['idanagrafica'].'"');
}
if (in_array('Fornitore', explode(',', $rs[$i]['idtipianagrafica']))) {
//Calcolo il codice conto più alto
// Calcolo il codice conto più alto
$rs2 = $dbo->fetchArray("SELECT MAX( CAST(numero AS UNSIGNED) ) AS max_numero, idpianodeiconti2 FROM co_pianodeiconti3 WHERE numero=CAST(numero AS UNSIGNED) AND idpianodeiconti2=(SELECT id FROM co_pianodeiconti2 WHERE descrizione='Debiti fornitori e debiti diversi')");
$numero = str_pad($rs2[0]['max_numero'] + 1, 6, '0', STR_PAD_LEFT);
$idpianodeiconti2 = $rs2[0]['idpianodeiconti2'];
//Creo il nuovo conto
// Creo il nuovo conto
$dbo->query('INSERT INTO co_pianodeiconti3( numero, descrizione, idpianodeiconti2, can_delete, can_edit ) VALUES( "'.$numero.'", "'.$rs[$i]['ragione_sociale'].'", "'.$idpianodeiconti2.'", 1, 1 )');
$idconto = $dbo->lastInsertedID();
//Collego questo conto al cliente
// Collego questo conto al cliente
$dbo->query('UPDATE an_anagrafiche SET idconto_fornitore="'.$idconto.'" WHERE idanagrafica="'.$rs[$i]['idanagrafica'].'"');
}
}
//Sposto tutti i movimenti delle fatture dal riepilogativo (clienti o fornitori) al relativo conto di ogni anagrafica
// Sposto tutti i movimenti delle fatture dal riepilogativo (clienti o fornitori) al relativo conto di ogni anagrafica
$rs = $dbo->fetchArray('SELECT co_movimenti.id, co_documenti.idanagrafica, dir FROM (co_movimenti INNER JOIN co_documenti ON co_movimenti.iddocumento=co_documenti.id) INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento WHERE NOT iddocumento=0');
for ($i = 0; $i < sizeof($rs); ++$i) {
@ -47,14 +48,14 @@ for ($i = 0; $i < sizeof($rs); ++$i) {
$dbo->query($query);
}
//Aggiungo il flag "Attiva aggiornamenti" se manca (nella migrazione della 2.0 non c'è)
// Aggiungo il flag "Attiva aggiornamenti" se manca (nella migrazione della 2.0 non c'è)
$rs = $dbo->fetchArray("SELECT idimpostazione FROM zz_impostazioni WHERE nome='Attiva aggiornamenti'");
if (sizeof($rs) == 0) {
$dbo->query("INSERT INTO `zz_impostazioni` (`nome`, `valore`, `tipo`, `editable`, `sezione`) VALUES ( 'Attiva aggiornamenti', '1', 'boolean', '0', 'Generali')");
}
//Spostamento ore di lavoro e diritto di chiamata dei preventivi nella tabella
// Spostamento ore di lavoro e diritto di chiamata dei preventivi nella tabella
$idiva = get_var('Iva predefinita');
$rs = $dbo->fetchArray('SELECT percentuale, indetraibile FROM co_iva WHERE id="'.$idiva.'"');
@ -64,7 +65,7 @@ $indetraibile = $rs[0]['indetraibile'];
$rs = $dbo->fetchArray('SELECT * FROM co_preventivi WHERE ore_lavoro > 0 OR costo_diritto_chiamata > 0');
for ($i = 0; $i < sizeof($rs); ++$i) {
//Ore lavoro
// Ore lavoro
if ($rs[$i]['ore_lavoro'] > 0) {
$imponibile = $rs[$i]['costo_orario'] * $rs[$i]['ore_lavoro'];
@ -74,7 +75,7 @@ for ($i = 0; $i < sizeof($rs); ++$i) {
$dbo->query('INSERT INTO co_righe_preventivi( idpreventivo, idiva, iva, iva_indetraibile, descrizione, subtotale, sconto, um, qta ) VALUES( "'.$rs[$i]['id'].'", "'.$idiva.'", "'.$iva.'", "'.$iva_indetraibile.'", "Ore lavoro", "'.$imponibile.'", "0.00", "ore", "'.$rs[$i]['ore_lavoro'].'" )');
}
//Ore diritto chiamata
// Ore diritto chiamata
if ($rs[$i]['costo_diritto_chiamata'] > 0) {
$imponibile = $rs[$i]['costo_diritto_chiamata'];
@ -85,12 +86,12 @@ for ($i = 0; $i < sizeof($rs); ++$i) {
}
}
//Eliminazione vecchi file
// Eliminazione vecchi file
@unlink($docroot.'/share/themes/default/css/font-awesome.css');
@deltree($docroot.'/modules/preventivi/js/');
/*
Spostamento agente di riferimento su nuova tabella an_anagrafiche_agenti
* Spostamento agente di riferimento su nuova tabella an_anagrafiche_agenti
*/
$rs = $dbo->fetchArray('SELECT idanagrafica, idagente FROM an_anagrafiche WHERE NOT idagente=0');
@ -99,9 +100,9 @@ for ($i = 0; $i < sizeof($rs); ++$i) {
}
/**
* 2016-11-09 (r1509)
* Creo le associazioni fra i tipi di intervento e i contratti.
*/
* 2016-11-09 (r1509)
* Creo le associazioni fra i tipi di intervento e i contratti.
*/
$rsc = $dbo->fetchArray('SELECT id FROM co_contratti');
for ($c = 0; $c < sizeof($rsc); ++$c) {

View File

@ -147,6 +147,14 @@ if (!empty($array)) {
$database->query("UPDATE mg_articoli SET contenuto = REPLACE(REPLACE(REPLACE(contenuto, '&quot;', '\"'), '\n', ".prepare(PHP_EOL)."), '`', '\"')");
$database->query("UPDATE my_impianto_componenti SET contenuto = REPLACE(REPLACE(REPLACE(contenuto, '&quot;', '\"'), '\n', ".prepare(PHP_EOL)."), '`', '\"')");
// Fix per la presenza della Foreign Key in in_interventi_tecnici
$fk = $database->fetchArray('SELECT TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_SCHEMA = '.prepare($database->getDatabaseName())." AND REFERENCED_TABLE_NAME = 'in_interventi' AND CONSTRAINT_NAME = 'in_interventi_tecnici_ibfk_1'");
if(!empty($fk)){
$database->query("ALTER TABLE `in_interventi_tecnici` DROP FOREIGN KEY `in_interventi_tecnici_ibfk_1`");
}
$database->query("ALTER TABLE `in_interventi` CHANGE `idintervento` `codice` varchar(25) NOT NULL UNIQUE");
// Fix dei timestamp delle tabelle mg_prodotti, mg_movimenti, zz_logs e zz_files
$database->query('UPDATE `mg_prodotti` SET `created_at` = `data`, `updated_at` = `data`');
$database->query('ALTER TABLE `mg_prodotti` DROP `data`');

View File

@ -15,23 +15,20 @@ ALTER TABLE `zz_modules` CHANGE `module_dir` `directory` varchar(50) NOT NULL, C
UPDATE `zz_modules` SET `name` = REPLACE(`name`, '&agrave;', 'à'), `title` = REPLACE(`title`, '&agrave;', 'à');
-- Adattamento della tabella in_interventi
ALTER TABLE `in_interventi_tecnici`
ADD CONSTRAINT `in_interventi_tecnici_ibfk_1` FOREIGN KEY (`idintervento`) REFERENCES `in_interventi` (`idintervento`) ON DELETE CASCADE;
ALTER TABLE `in_interventi_tecnici` DROP FOREIGN KEY `in_interventi_tecnici_ibfk_1`;
ALTER TABLE `in_interventi` DROP PRIMARY KEY, CHANGE `idintervento` `codice` varchar(25) NOT NULL UNIQUE, ADD `id` int(11) NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (`id`);
ALTER TABLE `in_interventi` DROP PRIMARY KEY, ADD `id` int(11) NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (`id`);
ALTER TABLE `my_impianti_interventi` DROP PRIMARY KEY;
UPDATE `co_ordiniservizio` SET `idintervento` = (SELECT `id` FROM `in_interventi` WHERE `in_interventi`.`codice` = `co_ordiniservizio`.`idintervento`);
UPDATE `co_preventivi_interventi` SET `idintervento` = (SELECT `id` FROM `in_interventi` WHERE `in_interventi`.`codice` = `co_preventivi_interventi`.`idintervento`);
UPDATE `co_righe_contratti` SET `idintervento` = (SELECT `id` FROM `in_interventi` WHERE `in_interventi`.`codice` = `co_righe_contratti`.`idintervento`);
UPDATE `co_righe_documenti` SET `idintervento` = (SELECT `id` FROM `in_interventi` WHERE `in_interventi`.`codice` = `co_righe_documenti`.`idintervento`);
UPDATE `in_interventi_tecnici` SET `idintervento` = (SELECT `id` FROM `in_interventi` WHERE `in_interventi`.`codice` = `in_interventi_tecnici`.`idintervento`);
UPDATE `in_righe_interventi` SET `idintervento` = (SELECT `id` FROM `in_interventi` WHERE `in_interventi`.`codice` = `in_righe_interventi`.`idintervento`);
UPDATE `mg_movimenti` SET `idintervento` = (SELECT `id` FROM `in_interventi` WHERE `in_interventi`.`codice` = `mg_movimenti`.`idintervento`);
UPDATE `my_impianti_interventi` SET `idintervento` = (SELECT `id` FROM `in_interventi` WHERE `in_interventi`.`codice` = `my_impianti_interventi`.`idintervento`);
UPDATE `my_impianto_componenti` SET `idintervento` = (SELECT `id` FROM `in_interventi` WHERE `in_interventi`.`codice` = `my_impianto_componenti`.`idintervento`);
UPDATE `my_componenti_interventi` SET `id_intervento` = (SELECT `id` FROM `in_interventi` WHERE `in_interventi`.`codice` = `my_componenti_interventi`.`id_intervento`);
UPDATE `co_ordiniservizio` SET `idintervento` = (SELECT `id` FROM `in_interventi` WHERE `in_interventi`.`idintervento` = `co_ordiniservizio`.`idintervento`);
UPDATE `co_preventivi_interventi` SET `idintervento` = (SELECT `id` FROM `in_interventi` WHERE `in_interventi`.`idintervento` = `co_preventivi_interventi`.`idintervento`);
UPDATE `co_righe_contratti` SET `idintervento` = (SELECT `id` FROM `in_interventi` WHERE `in_interventi`.`idintervento` = `co_righe_contratti`.`idintervento`);
UPDATE `co_righe_documenti` SET `idintervento` = (SELECT `id` FROM `in_interventi` WHERE `in_interventi`.`idintervento` = `co_righe_documenti`.`idintervento`);
UPDATE `in_interventi_tecnici` SET `idintervento` = (SELECT `id` FROM `in_interventi` WHERE `in_interventi`.`idintervento` = `in_interventi_tecnici`.`idintervento`);
UPDATE `in_righe_interventi` SET `idintervento` = (SELECT `id` FROM `in_interventi` WHERE `in_interventi`.`idintervento` = `in_righe_interventi`.`idintervento`);
UPDATE `mg_movimenti` SET `idintervento` = (SELECT `id` FROM `in_interventi` WHERE `in_interventi`.`idintervento` = `mg_movimenti`.`idintervento`);
UPDATE `my_impianti_interventi` SET `idintervento` = (SELECT `id` FROM `in_interventi` WHERE `in_interventi`.`idintervento` = `my_impianti_interventi`.`idintervento`);
UPDATE `my_impianto_componenti` SET `idintervento` = (SELECT `id` FROM `in_interventi` WHERE `in_interventi`.`idintervento` = `my_impianto_componenti`.`idintervento`);
UPDATE `my_componenti_interventi` SET `id_intervento` = (SELECT `id` FROM `in_interventi` WHERE `in_interventi`.`idintervento` = `my_componenti_interventi`.`id_intervento`);
ALTER TABLE `co_ordiniservizio` CHANGE `idintervento` `idintervento` varchar(25);
ALTER TABLE `co_preventivi_interventi` CHANGE `idintervento` `idintervento` varchar(25);