Bugfix in preparazione della release

Risoluzione di alcuni bug presenti in preparazione della release.
This commit is contained in:
Thomas Zilio 2017-08-30 11:50:46 +02:00
parent af55c235f2
commit 22cedab248
17 changed files with 162 additions and 152 deletions

View File

@ -175,7 +175,7 @@ div.DTS {
div.DTS tbody th,
div.DTS tbody td {
white-space: nowrap;
white-space: normal;
}
div.DTS div.DTS_Loading {

View File

@ -337,54 +337,6 @@ span.form-control {
}
}
#back-to-top {
display: inline-block;
height: 60px;
width: 60px;
position: fixed;
bottom: 60px;
right: 10px;
z-index: 10;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.05);
/* image replacement properties */
color: #fff;
overflow: hidden;
white-space: nowrap;
background: rgba(255, 78, 0, 0.8);
visibility: hidden;
opacity: 0;
-webkit-transition: opacity .3s 0s, visibility 0s .3s;
-moz-transition: opacity .3s 0s, visibility 0s .3s;
transition: opacity .3s 0s, visibility 0s .3s;
}
#back-to-top>span {
position: absolute;
top: 50%;
left: 50%;
width: 30px;
height: 30px;
text-align: center;
margin-left: -15px;
margin-top: -15px;
}
#back-to-top.cd-is-visible {
visibility: visible;
opacity: 0.8;
z-index: 900;
}
#back-to-top.cd-is-visible:hover {
visibility: visible;
opacity: 1;
z-index: 900;
}
#back-to-top.cd-fade-out {
opacity: 0.5;
}
.input-searching {
background: #FFBF91;
}
@ -559,3 +511,25 @@ span.form-control {
.input-group-addon.no-padding>* {
border-radius: 0px;
}
@media screen and (max-width:767px) {
.main-header .logo {
display: none;
}
.fixed .content-wrapper,
.fixed .right-side {
padding-top: 50px;
}
}
.push {
position: fixed;
z-index: 3;
right: 10;
}
@media screen and (max-width:1023px) {
.push {
position: static;
}
}

View File

@ -38,4 +38,55 @@ $(document).ready(function () {
e.preventDefault();
}
});
// Pulsante per il ritorno a inizio pagina
var slideToTop = $("<div />");
slideToTop.html('<i class="fa fa-chevron-up"></i>');
slideToTop.css({
position: 'fixed',
bottom: '20px',
right: '25px',
width: '40px',
height: '40px',
color: '#eee',
'font-size': '',
'line-height': '40px',
'text-align': 'center',
'background-color': 'rgba(255, 78, 0)',
'box-shadow': '0 0 10px rgba(0, 0, 0, 0.05)',
cursor: 'pointer',
'z-index': '99999',
opacity: '.7',
'display': 'none'
});
slideToTop.on('mouseenter', function () {
$(this).css('opacity', '1');
});
slideToTop.on('mouseout', function () {
$(this).css('opacity', '.7');
});
$('.wrapper').append(slideToTop);
$(window).scroll(function () {
if ($(window).scrollTop() >= 150) {
if (!$(slideToTop).is(':visible')) {
$(slideToTop).fadeIn(500);
}
} else {
$(slideToTop).fadeOut(500);
}
});
$(slideToTop).click(function () {
$("body").animate({
scrollTop: 0
}, 500);
});
$(".sidebar-menu li:not(.treeview) a").click(function () {
var $this = $(this);
var target = $this.attr("href");
if (typeof target === 'string') {
$("body").animate({
scrollTop: ($(target).offset().top) + "px"
}, 500);
}
});
});

View File

@ -6,7 +6,7 @@
"sInfoPostFix": "",
"sInfoThousands": ".",
"sLengthMenu": "Visualizza _MENU_ elementi",
"sLoadingRecords": "Caricamento...",
"sLoadingRecords": " ",
"sProcessing": "Elaborazione...",
"sSearch": "Cerca:",
"sZeroRecords": "La ricerca non ha portato alcun risultato.",

View File

@ -56,7 +56,7 @@ use Monolog\Handler\StreamHandler;
use Monolog\Handler\RotatingFileHandler;
$handlers = [];
// File di log di base (logs/all.log)
// File di log di base (logs/error.log)
$handlers[] = new StreamHandler(__DIR__.'/logs/error.log', Monolog\Logger::ERROR);
$handlers[] = new StreamHandler(__DIR__.'/logs/setup.log', Monolog\Logger::EMERGENCY);
@ -124,9 +124,9 @@ if (!API::isAPIRequest()) {
$dbo = Database::getConnection();
$continue = $dbo->isInstalled() && (Auth::check() || API::isAPIRequest()) && !Update::isUpdateAvailable();
// Controllo sulla presenza dei permessi di accesso basilari
$continue = $dbo->isInstalled() && !Update::isUpdateAvailable() && (Auth::check() || API::isAPIRequest());
if (!$continue && slashes($_SERVER['SCRIPT_FILENAME']) != slashes(DOCROOT.'/index.php')) {
redirect(ROOTDIR.'/index.php?op=logout');
exit();

View File

@ -17,10 +17,7 @@ if (Auth::check()) {
</footer>
<div class="modal fade" id="bs-popup" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static" data-keyboard="false"></div>
<div class="modal fade" id="bs-popup2" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static" data-keyboard="false"></div>
<a href="#" id="back-to-top">
<span><i class="fa fa-2x fa-chevron-up"></i></span>
</a>';
<div class="modal fade" id="bs-popup2" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static" data-keyboard="false"></div>';
}
echo '
</div><!-- ./wrapper -->';

View File

@ -49,16 +49,13 @@ if (post('db_host') !== null) {
$db_name = str_replace('_', '\_', $db_name);
$db_username = str_replace('_', '\_', $db_name);
$user = " TO '".$db_username."'";
$db = ' ON `'.$db_name.'`.*';
$results = $dbo->fetchArray('SHOW GRANTS FOR CURRENT_USER');
foreach ($results as $result) {
if (
str_contains($result, $find) &&
(
str_contains($result, $db) ||
str_contains($result, str_replace('`'.$db_name.'`', '*', $db))
str_contains($result, ' ON `'.$db_name.'`.*') ||
str_contains($result, ' ON *.*')
)
) {
$pieces = explode(', ', explode(' ON ', str_replace('GRANT ', '', current($result)))[0]);

View File

@ -123,7 +123,7 @@ echo '
</head>
<body class="skin-'.$theme.' fixed'.(!empty(get_var('Nascondere la barra sinistra di default')) ? ' sidebar-collapse' : '').(!Auth::check() ? ' hold-transition login-page' : '').'">
<body class="skin-'.$theme.(!empty(get_var('Nascondere la barra sinistra di default')) ? ' sidebar-collapse' : '').(!Auth::check() ? ' hold-transition login-page' : '').'">
<div class="wrapper">';
if (Auth::check()) {

View File

@ -185,11 +185,15 @@ class Auth extends \Util\Singleton
{
$database = Database::getConnection();
$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');
if (!empty($results)) {
$results[0]['is_admin'] = ($results[0]['gruppo'] == 'Amministratori');
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');
if (!empty($results)) {
$results[0]['is_admin'] = ($results[0]['gruppo'] == 'Amministratori');
$this->infos = $results[0];
$this->infos = $results[0];
}
} catch (PDOException $e) {
$this->destory();
}
}

View File

@ -290,6 +290,12 @@ class Update
$database->query('SET foreign_key_checks = 1');
}
// Normalizzazione dell'engine MySQL
$engines = $database->fetchArray('SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '.prepare($database_name)." AND ENGINE != 'InnoDB'");
foreach ($engines as $engine) {
$database->query('ALTER TABLE `'.$engine['TABLE_NAME'].'` ENGINE=InnoDB');
}
}
protected static function executeScript($script)

View File

@ -37,9 +37,6 @@ $(document).ready(function () {
// Orologio
clock();
// Pulsante per il ritorno a inizio pagina
backToTop();
// Richiamo alla generazione di Datatables
start_datatables();
@ -217,18 +214,10 @@ $(document).ready(function () {
i++;
tops = 60 * i + 95;
$(this).css({
'position': 'fixed',
'z-index': 3,
'top': -100,
'right': 10,
'opacity': 1
}).delay(1000).animate({
$(this).delay(1000).animate({
'top': tops,
'opacity': 1
}).delay(3000).animate({
'top': -100,
'opacity': 0
});
});
}
@ -514,6 +503,9 @@ function start_datatables() {
width: '1%',
className: 'select-checkbox',
targets: 0
}, {
'max-width': '20%',
targets: '_all'
}],
select: {
style: 'multi',
@ -593,7 +585,6 @@ function start_datatables() {
});
$('.deleteicon').on("click", function (e) {
console.log("afsfasfsa");
reset($(this).parent().attr("id").replace("th_", ""));
api.page.len(200).draw();
});
@ -1062,40 +1053,6 @@ function update_counter(id, new_value) {
}
}
function backToTop() {
// browser window scroll (in pixels) after which the "back to top" link is shown
var offset = 10,
// browser window scroll (in pixels) after which the "back to top" link opacity is reduced
offset_opacity = 100,
// duration of the top scrolling animation (in ms)
scroll_top_duration = 700,
// grab the "back to top" link
back_to_top = $('#back-to-top');
// hide or show the "back to top" link
$('.wrapper').scroll(function () {
if ($(this).scrollTop() > offset) {
back_to_top.addClass('cd-is-visible');
if ($(this).scrollTop() > offset_opacity) {
back_to_top.addClass('cd-fade-out');
}
} else {
back_to_top.removeClass('cd-is-visible cd-fade-out');
}
});
// smooth scroll to top
back_to_top.on('click', function (event) {
event.preventDefault();
$('.wrapper').animate({
scrollTop: 0,
}, scroll_top_duration);
});
}
Number.prototype.formatMoney = function (c, d, t) {
var n = this,
c = isNaN(c = Math.abs(c)) ? 2 : c,
@ -1108,12 +1065,6 @@ Number.prototype.formatMoney = function (c, d, t) {
return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
}
function force_decimal(n) {
n = n.replace(":", ".");
n = n.replace(",", ".");
return parseFloat(n);
}
function equalHeight(selector) {
$(selector).css("min-height", 0);

View File

@ -39,7 +39,6 @@ switch (get('op')) {
"borderColor":"'.$color.'",
"allDay": false
}';
//echo "\"tip\":\"".html_entity_decode($tooltip_text)."\",";
}
echo '['.implode(',', $results).']';

View File

@ -445,12 +445,20 @@ if (get_var('Abilitare orario lavorativo') == '1') {
maxTime: '20:00:00',";
}
?>
selectable: true,
selectable: true,
lazyFetching: true,
selectHelper: true,
editable: true,
eventLimit: false, // allow "more" link when too many events
allDaySlot: false,
droppable: true,
loading: function(isLoading, view) {
if(isLoading) {
setTimeout("$('#mini-loader').show()", 1000);
} else {
setTimeout("$('#mini-loader').hide()", 1000);
}
},
drop: function(date, jsEvent, ui, resourceId) {
data = moment(date).format("YYYY-MM-DD");
ora_dal = moment(date).format("HH:mm");
@ -487,7 +495,7 @@ if (get_var('Abilitare orario lavorativo') == '1') {
},
events: {
url: globals.rootdir + "/modules/dashboard/ajaxreq.php?op=get_current_month",
type: 'GET',
type: 'GET',
error: function() {
alert('<?php echo _('Errore durante la creazione degli eventi'); ?>');
}
@ -522,7 +530,7 @@ if (get_var('Abilitare orario lavorativo') == '1') {
}
});
},
eventAfterRender : function(event, element) {
eventAfterRender: function(event, element) {
//alert(element.find('.fc-event-title').html();
element.find('.fc-title').html(event.title);
<?php if (get_var('Utilizzare i tooltip sul calendario') == '1') {

View File

@ -224,6 +224,9 @@ switch (post('op')) {
$numero_esterno = '';
}
// Duplicazione righe
$righe = $dbo->fetchArray('SELECT * FROM co_righe_documenti WHERE iddocumento='.prepare($id_record));
// Lettura dati fattura attuale
$rs = $dbo->fetchArray('SELECT * FROM co_documenti WHERE id='.prepare($id_record));
@ -231,17 +234,17 @@ switch (post('op')) {
$dbo->query('INSERT INTO co_documenti(numero, numero_esterno, data, idanagrafica, idcausalet, idspedizione, idporto, idaspettobeni, idvettore, n_colli, idsede, idtipodocumento, idstatodocumento, idpagamento, idconto, idrivalsainps, idritenutaacconto, rivalsainps, iva_rivalsainps, ritenutaacconto, bollo, note, note_aggiuntive, buono_ordine) VALUES('.prepare($numero).', '.prepare($numero_esterno).', '.prepare($rs[0]['data']).', '.prepare($rs[0]['idanagrafica']).', '.prepare($rs[0]['idcausalet']).', '.prepare($rs[0]['idspedizione']).', '.prepare($rs[0]['idporto']).', '.prepare($rs[0]['idaspettobeni']).', '.prepare($rs[0]['idvettore']).', '.prepare($rs[0]['n_colli']).', '.prepare($rs[0]['idsede']).', '.prepare($rs[0]['idtipodocumento']).', (SELECT id FROM co_statidocumento WHERE descrizione=\'Bozza\'), '.prepare($rs[0]['idpagamento']).', '.prepare($rs[0]['idconto']).', '.prepare($rs[0]['idrivalsainps']).', '.prepare($rs[0]['idritenutaacconto']).', '.prepare($rs[0]['rivalsainps']).', '.prepare($rs[0]['iva_rivalsainps']).', '.prepare($rs[0]['ritenutaacconto']).', '.prepare($rs[0]['bollo']).', '.prepare($rs[0]['note']).', '.prepare($rs[0]['note_aggiuntive']).', '.prepare($rs[0]['buono_ordine']).')');
$id_record = $dbo->lastInsertedID();
// Duplicazione righe
$rs = $dbo->fetchArray('SELECT * FROM co_righe_documenti WHERE iddocumento='.prepare($id_record));
for ($i = 0; $i < sizeof($rs); ++$i) {
$dbo->query('INSERT INTO co_righe_documenti(iddocumento, idordine, idddt, idintervento, idarticolo, idpreventivo, idcontratto, idtecnico, idagente, idautomezzo, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, idritenutaacconto, ritenutaacconto, idrivalsainps, rivalsainps, um, qta, lotto, serial, altro, idgruppo, `order`) VALUES('.prepare($id_record).', 0, 0, 0, '.prepare($rs[$i]['idarticolo']).', '.prepare($rs[$i]['idpreventivo']).', '.prepare($rs[$i]['idcontratto']).', '.prepare($rs[$i]['idtecnico']).', '.prepare($rs[$i]['idagente']).', '.prepare($rs[$i]['idautomezzo']).', '.prepare($rs[$i]['idiva']).', '.prepare($rs[$i]['desc_iva']).', '.prepare($rs[$i]['iva']).', '.prepare($rs[$i]['iva_indetraibile']).', '.prepare($rs[$i]['descrizione']).', '.prepare($rs[$i]['subtotale']).', '.prepare($rs[$i]['sconto']).', '.prepare($rs[$i]['idritenutaacconto']).', '.prepare($rs[$i]['ritenutaacconto']).', '.prepare($rs[$i]['idrivalsainps']).', '.prepare($rs[$i]['rivalsainps']).', '.prepare($rs[$i]['um']).', '.prepare($rs[$i]['qta']).', '.prepare($rs[$i]['lotto']).', '.prepare($rs[$i]['serial']).', '.prepare($rs[$i]['altro']).', (SELECT IFNULL(MAX(`idgruppo`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'), (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))');
// TODO: sistemare la duplicazione delle righe generiche e degli articoli, ingorando interventi, ddt, ordini, preventivi
/*
foreach ($righe as $riga) {
$dbo->query('INSERT INTO co_righe_documenti(iddocumento, idordine, idddt, idintervento, idarticolo, idpreventivo, idcontratto, idtecnico, idagente, idautomezzo, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, idritenutaacconto, ritenutaacconto, idrivalsainps, rivalsainps, um, qta, lotto, serial, altro, idgruppo, `order`) VALUES('.prepare($id_record).', 0, 0, 0, '.prepare($riga['idarticolo']).', '.prepare($riga['idpreventivo']).', '.prepare($riga['idcontratto']).', '.prepare($riga['idtecnico']).', '.prepare($riga['idagente']).', '.prepare($riga['idautomezzo']).', '.prepare($riga['idiva']).', '.prepare($riga['desc_iva']).', '.prepare($riga['iva']).', '.prepare($riga['iva_indetraibile']).', '.prepare($riga['descrizione']).', '.prepare($riga['subtotale']).', '.prepare($riga['sconto']).', '.prepare($riga['idritenutaacconto']).', '.prepare($riga['ritenutaacconto']).', '.prepare($riga['idrivalsainps']).', '.prepare($riga['rivalsainps']).', '.prepare($riga['um']).', '.prepare($riga['qta']).', '.prepare($riga['lotto']).', '.prepare($riga['serial']).', '.prepare($riga['altro']).', (SELECT IFNULL(MAX(`idgruppo`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'), (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))');
// Scarico/carico nuovamente l'articolo da magazzino
if (!empty($rs[$i]['idarticolo'])) {
add_articolo_infattura($id_record, $rs[$i]['idarticolo'], $rs[$i]['descrizione'], $rs[$i]['idiva'], $rs[$i]['qta'], $rs[$i]['subtotale'], 0, 0, 0);
if (!empty($riga['idarticolo'])) {
add_articolo_infattura($id_record, $riga['idarticolo'], $riga['descrizione'], $riga['idiva'], $riga['qta'], $riga['subtotale'], 0, 0, 0);
}
}
*/
// Ricalcolo inps, ritenuta e bollo (se la fattura non è stata pagata)
if ($dir == 'entrata') {
@ -251,8 +254,6 @@ switch (post('op')) {
}
$_SESSION['infos'][] = _('Fattura duplicata correttamente!');
redirect($rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record);
}
break;

View File

@ -8,7 +8,7 @@ $tipodoc = $rs[0]['descrizione'];
?>
<form action="" class="text-right" method="post" id="form-copy">
<input type="hidden" name="backto" value="record-list">
<input type="hidden" name="backto" value="record-edit">
<input type="hidden" name="op" value="copy">
</form>

View File

@ -87,11 +87,15 @@ if (get('anteprima') !== null) {
var signaturePad = new SignaturePad(canvas);
function resizeCanvas() {
image_data = signaturePad.toDataURL();
var ratio = Math.max(window.devicePixelRatio || 1, 1);
canvas.width = canvas.offsetWidth * ratio;
canvas.height = canvas.offsetHeight * ratio;
canvas.getContext("2d").scale(ratio, ratio);
signaturePad.clear(); // otherwise isEmpty() might return incorrect value
signaturePad.clear();
signaturePad.fromDataURL(image_data);
}
window.addEventListener("resize", resizeCanvas);

View File

@ -15,9 +15,13 @@ 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 `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`);
@ -29,16 +33,27 @@ UPDATE `my_impianti_interventi` SET `idintervento` = (SELECT `id` FROM `in_inter
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` = NULL WHERE `idintervento` = 0;
UPDATE `co_preventivi_interventi` SET `idintervento` = NULL WHERE `idintervento` = 0;
UPDATE `co_righe_contratti` SET `idintervento` = NULL WHERE `idintervento` = 0;
UPDATE `co_righe_documenti` SET `idintervento` = NULL WHERE `idintervento` = 0;
UPDATE `in_interventi_tecnici` SET `idintervento` = NULL WHERE `idintervento` = 0;
UPDATE `in_righe_interventi` SET `idintervento` = NULL WHERE `idintervento` = 0;
UPDATE `mg_movimenti` SET `idintervento` = NULL WHERE `idintervento` = 0;
UPDATE `my_impianti_interventi` SET `idintervento` = NULL WHERE `idintervento` = 0;
UPDATE `my_impianto_componenti` SET `idintervento` = NULL WHERE `idintervento` = 0;
UPDATE `my_componenti_interventi` SET `id_intervento` = NULL WHERE `id_intervento` = 0;
ALTER TABLE `co_ordiniservizio` CHANGE `idintervento` `idintervento` varchar(25);
ALTER TABLE `co_preventivi_interventi` CHANGE `idintervento` `idintervento` varchar(25);
ALTER TABLE `co_righe_contratti` CHANGE `idintervento` `idintervento` varchar(25);
ALTER TABLE `co_righe_documenti` CHANGE `idintervento` `idintervento` varchar(25);
ALTER TABLE `in_interventi_tecnici` CHANGE `idintervento` `idintervento` varchar(25);
ALTER TABLE `in_righe_interventi` CHANGE `idintervento` `idintervento` varchar(25);
ALTER TABLE `mg_movimenti` CHANGE `idintervento` `idintervento` varchar(25);
ALTER TABLE `my_impianti_interventi` CHANGE `idintervento` `idintervento` varchar(25);
ALTER TABLE `my_impianto_componenti` CHANGE `idintervento` `idintervento` varchar(25);
ALTER TABLE `my_componenti_interventi` CHANGE `id_intervento` `id_intervento` varchar(25);
UPDATE `co_ordiniservizio` SET `idintervento` = NULL WHERE `idintervento` = 0 OR `idintervento` = '';
UPDATE `co_preventivi_interventi` SET `idintervento` = NULL WHERE `idintervento` = 0 OR `idintervento` = '';
UPDATE `co_righe_contratti` SET `idintervento` = NULL WHERE `idintervento` = 0 OR `idintervento` = '';
UPDATE `co_righe_documenti` SET `idintervento` = NULL WHERE `idintervento` = 0 OR `idintervento` = '';
UPDATE `in_interventi_tecnici` SET `idintervento` = NULL WHERE `idintervento` = 0 OR `idintervento` = '';
UPDATE `in_righe_interventi` SET `idintervento` = NULL WHERE `idintervento` = 0 OR `idintervento` = '';
UPDATE `mg_movimenti` SET `idintervento` = NULL WHERE `idintervento` = 0 OR `idintervento` = '';
UPDATE `my_impianti_interventi` SET `idintervento` = NULL WHERE `idintervento` = 0 OR `idintervento` = '';
UPDATE `my_impianto_componenti` SET `idintervento` = NULL WHERE `idintervento` = 0 OR `idintervento` = '';
UPDATE `my_componenti_interventi` SET `id_intervento` = NULL WHERE `id_intervento` = 0 OR `id_intervento` = '';
ALTER TABLE `co_ordiniservizio` CHANGE `idintervento` `idintervento` int(11), ADD FOREIGN KEY (`idintervento`) REFERENCES `in_interventi`(`id`) ON DELETE CASCADE;
ALTER TABLE `co_preventivi_interventi` CHANGE `idintervento` `idintervento` int(11), ADD FOREIGN KEY (`idintervento`) REFERENCES `in_interventi`(`id`) ON DELETE CASCADE;
@ -47,13 +62,12 @@ ALTER TABLE `co_righe_documenti` CHANGE `idintervento` `idintervento` int(11), A
ALTER TABLE `in_interventi_tecnici` CHANGE `idintervento` `idintervento` int(11), ADD FOREIGN KEY (`idintervento`) REFERENCES `in_interventi`(`id`) ON DELETE CASCADE;
ALTER TABLE `in_righe_interventi` CHANGE `idintervento` `idintervento` int(11), ADD FOREIGN KEY (`idintervento`) REFERENCES `in_interventi`(`id`) ON DELETE CASCADE;
ALTER TABLE `mg_movimenti` CHANGE `idintervento` `idintervento` int(11), ADD FOREIGN KEY (`idintervento`) REFERENCES `in_interventi`(`id`) ON DELETE CASCADE;
ALTER TABLE `my_impianti_interventi` CHANGE `idintervento` `idintervento` int(11);
ALTER TABLE `my_impianti_interventi` CHANGE `idintervento` `idintervento` int(11), ADD FOREIGN KEY (`idintervento`) REFERENCES `in_interventi`(`id`) ON DELETE CASCADE;
ALTER TABLE `my_impianto_componenti` CHANGE `idintervento` `idintervento` int(11), ADD FOREIGN KEY (`idintervento`) REFERENCES `in_interventi`(`id`) ON DELETE CASCADE;
ALTER TABLE `my_componenti_interventi` CHANGE `id_intervento` `id_intervento` int(11);
ALTER TABLE `my_componenti_interventi` CHANGE `id_intervento` `id_intervento` int(11), ADD FOREIGN KEY (`id_intervento`) REFERENCES `in_interventi`(`id`) ON DELETE CASCADE;
-- Aggiunta di chiavi esterne in my_componenti_interventi
ALTER TABLE `my_componenti_interventi` ENGINE = InnoDB;
ALTER TABLE `my_componenti_interventi` ADD FOREIGN KEY (`id_intervento`) REFERENCES `in_interventi`(`id`) ON DELETE CASCADE, CHANGE `id_componente` `id_componente` int(11) NOT NULL, ADD FOREIGN KEY (`id_componente`) REFERENCES `my_impianto_componenti`(`id`) ON DELETE CASCADE, ADD PRIMARY KEY (`id_intervento`, `id_componente`);
ALTER TABLE `my_componenti_interventi` CHANGE `id_componente` `id_componente` int(11) NOT NULL, ADD FOREIGN KEY (`id_componente`) REFERENCES `my_impianto_componenti`(`id`) ON DELETE CASCADE;
-- Aggiornamento dei filtri per i gruppo di utenti
UPDATE `zz_group_module` SET `clause` = ' AND in_interventi.id IN (SELECT idintervento FROM in_interventi_tecnici WHERE idintervento=in_interventi.id AND idtecnico=|idtecnico|)' WHERE `id` = 1;
@ -470,9 +484,10 @@ ALTER TABLE `my_impianto_componenti` ADD `idimpianto` int(11);
UPDATE `my_impianto_componenti` SET `idimpianto` = (SELECT `id` FROM `my_impianti` WHERE `my_impianti`.`matricola` = `my_impianto_componenti`.`matricola`);
ALTER TABLE `my_impianto_componenti` DROP COLUMN `matricola`, ADD FOREIGN KEY (`idimpianto`) REFERENCES `my_impianti`(`id`) ON DELETE CASCADE;
ALTER TABLE `my_impianti_interventi` DROP PRIMARY KEY, ADD `idimpianto` int(11);
ALTER TABLE `my_impianti_interventi` ADD `idimpianto` int(11);
UPDATE `my_impianti_interventi` SET `idimpianto` = (SELECT `id` FROM `my_impianti` WHERE `my_impianti`.`matricola` = `my_impianti_interventi`.`matricola`);
ALTER TABLE `my_impianti_interventi` DROP COLUMN `matricola`, ADD FOREIGN KEY (`idimpianto`) REFERENCES `my_impianti`(`id`) ON DELETE CASCADE, ADD FOREIGN KEY (`idintervento`) REFERENCES `in_interventi`(`id`) ON DELETE CASCADE, ADD PRIMARY KEY (`idintervento`, `idimpianto`);
DELETE FROM `my_impianti_interventi` WHERE `idimpianto` IS NULL;
ALTER TABLE `my_impianti_interventi` DROP COLUMN `matricola`, ADD FOREIGN KEY (`idimpianto`) REFERENCES `my_impianti`(`id`) ON DELETE CASCADE;
ALTER TABLE `my_impianti_contratti` ADD `idimpianto` int(11), ADD FOREIGN KEY (`idimpianto`) REFERENCES `my_impianti`(`id`) ON DELETE CASCADE;
UPDATE `my_impianti_contratti` SET `idimpianto` = (SELECT `id` FROM `my_impianti` WHERE `my_impianti`.`matricola` = `my_impianti_contratti`.`matricola`);
@ -751,7 +766,7 @@ UPDATE `zz_modules` `t1` INNER JOIN `zz_modules` `t2` ON (`t1`.`name` = 'Movimen
INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `enabled`, `default`) VALUES
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Movimenti'), 'Articolo', 'IF(mg_articoli.descrizione != \'\', CONCAT(mg_articoli.codice, \'-\', mg_articoli.descrizione), mg_articoli.codice)', 2, 1, 0, 1, 1),
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Movimenti'), 'Data', 'data', 5, 1, 0, 1, 1),
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Movimenti'), 'Data', 'mg_movimenti.created_at', 5, 1, 0, 1, 1),
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Movimenti'), 'Quantità', 'mg_movimenti.qta', 4, 1, 0, 1, 1),
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Movimenti'), 'Descrizione', 'movimento', 3, 1, 0, 1, 1),
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Movimenti'), 'id', 'mg_movimenti.id', 1, 1, 0, 0, 1),
@ -937,3 +952,6 @@ ALTER TABLE `co_scadenziario` CHANGE `data_emissione` `data_emissione` date, CHA
ALTER TABLE `dt_automezzi_tecnici` CHANGE `data_inizio` `data_inizio` date, CHANGE `data_fine` `data_fine` date;
ALTER TABLE `my_impianto_componenti` CHANGE `data` `data` date, CHANGE `data_sostituzione` `data_sostituzione` date;
ALTER TABLE `or_righe_ordini` CHANGE `data_evasione` `data_evasione` date;
-- ALTER TABLE `my_componenti_interventi` ADD PRIMARY KEY (`id_intervento`, `id_componente`);
-- ALTER TABLE `my_impianti_interventi` ADD PRIMARY KEY (`idintervento`, `idimpianto`);