From 33d023d64660edfe183b14cf5576b915b7ace471 Mon Sep 17 00:00:00 2001 From: Fabio Lovato Date: Fri, 16 Feb 2018 15:45:15 +0100 Subject: [PATCH] Bloccata modifica intervento se con stato avente il flag "completato" --- modules/fatture/actions.php | 8 +- modules/interventi/actions.php | 2 +- modules/interventi/ajax_articoli.php | 4 +- modules/interventi/ajax_costi.php | 11 ++- modules/interventi/ajax_righe.php | 4 +- modules/interventi/ajax_tecnici.php | 73 ++++++++++++------- modules/interventi/edit.php | 40 ++++++---- modules/interventi/init.php | 2 +- .../plugins/my_impianti.interventi.php | 20 ++++- 9 files changed, 108 insertions(+), 56 deletions(-) diff --git a/modules/fatture/actions.php b/modules/fatture/actions.php index 5b191eb26..3c0f72df0 100755 --- a/modules/fatture/actions.php +++ b/modules/fatture/actions.php @@ -195,7 +195,7 @@ switch (post('op')) { $rs = $dbo->fetchArray($query); for ($i = 0; $i < sizeof($rs); ++$i) { - $dbo->query("UPDATE in_interventi SET idstatointervento=(SELECT idstatointervento FROM in_statiintervento WHERE descrizione='Completato') WHERE id=".prepare($rs[$i]['idintervento'])); + $dbo->query("UPDATE in_interventi SET idstatointervento='OK' WHERE id=".prepare($rs[$i]['idintervento'])); } // Se delle righe sono state create da un ordine, devo riportare la quantità evasa nella tabella degli ordini al valore di prima, riaggiungendo la quantità che sto togliendo @@ -1131,7 +1131,7 @@ switch (post('op')) { // Se ci sono degli interventi collegati li rimetto nello stato "Completato" for ($i = 0; $i < sizeof($rs); ++$i) { - $dbo->query("UPDATE in_interventi SET idstatointervento=(SELECT idstatointervento FROM in_statiintervento WHERE descrizione='Completato') WHERE id=".prepare($rs[$i]['idintervento'])); + $dbo->query("UPDATE in_interventi SET idstatointervento='OK' WHERE id=".prepare($rs[$i]['idintervento'])); // Rimuovo dalla fattura gli articoli collegati all'intervento $rs2 = $dbo->fetchArray('SELECT idarticolo FROM mg_articoli_interventi WHERE idintervento='.prepare($idintervento)); @@ -1190,7 +1190,7 @@ switch (post('op')) { $dbo->query("UPDATE co_preventivi SET idstato=(SELECT id FROM co_statipreventivi WHERE descrizione='In lavorazione') WHERE id=".prepare($rsp[$i]['idpreventivo'])); // Aggiorno anche lo stato degli interventi collegati ai preventivi - $dbo->query("UPDATE in_interventi SET idstatointervento=(SELECT idstatointervento FROM in_statiintervento WHERE descrizione='Completato') WHERE id IN (SELECT idintervento FROM co_preventivi_interventi WHERE idpreventivo=".prepare($rsp[$i]['idpreventivo']).')'); + $dbo->query("UPDATE in_interventi SET idstatointervento='OK' WHERE id IN (SELECT idintervento FROM co_preventivi_interventi WHERE idpreventivo=".prepare($rsp[$i]['idpreventivo']).')'); } /* @@ -1240,7 +1240,7 @@ switch (post('op')) { $dbo->query("UPDATE co_contratti SET idstato=(SELECT id FROM co_staticontratti WHERE descrizione='In lavorazione') WHERE id=".prepare($rsp[$i]['idcontratto'])); // Aggiorno anche lo stato degli interventi collegati ai contratti - $dbo->query("UPDATE in_interventi SET idstatointervento=(SELECT idstatointervento FROM in_statiintervento WHERE descrizione='Completato') WHERE id IN (SELECT idintervento FROM co_righe_contratti WHERE idcontratto=".prepare($rsp[$i]['idcontratto']).')'); + $dbo->query("UPDATE in_interventi SET idstatointervento='OK' WHERE id IN (SELECT idintervento FROM co_righe_contratti WHERE idcontratto=".prepare($rsp[$i]['idcontratto']).')'); } /* diff --git a/modules/interventi/actions.php b/modules/interventi/actions.php index 0b0a994d2..2b71dfed6 100644 --- a/modules/interventi/actions.php +++ b/modules/interventi/actions.php @@ -576,7 +576,7 @@ switch (post('op')) { if (!$img->save($docroot.'/files/interventi/'.$firma_file)) { $_SESSION['errors'][] = tr('Impossibile creare il file!'); - } elseif ($dbo->query('UPDATE in_interventi SET firma_file='.prepare($firma_file).', firma_data=NOW(), firma_nome = '.prepare($firma_nome).', idstatointervento = (SELECT idstatointervento FROM in_statiintervento WHERE completato = 1 LIMIT 0, 1) WHERE id='.prepare($id_record))) { + } elseif ($dbo->query('UPDATE in_interventi SET firma_file='.prepare($firma_file).', firma_data=NOW(), firma_nome = '.prepare($firma_nome).', idstatointervento = "OK" WHERE id='.prepare($id_record))) { $_SESSION['infos'][] = tr('Firma salvata correttamente!'); $_SESSION['infos'][] = tr('Attività completata!'); } else { diff --git a/modules/interventi/ajax_articoli.php b/modules/interventi/ajax_articoli.php index d0d301ee0..a47bcea38 100644 --- a/modules/interventi/ajax_articoli.php +++ b/modules/interventi/ajax_articoli.php @@ -25,7 +25,7 @@ if (!empty($rs)) { '.tr('Subtotale').''; } - if ($rs[0]['stato'] != 'Fatturato' && $rs[0]['stato'] != 'Completato') { + if ( !$records[0]['flg_completato'] ) { echo ' '; } @@ -109,7 +109,7 @@ if (!empty($rs)) { // Pulsante per riportare nel magazzino centrale. // Visibile solo se l'intervento non è stato nè fatturato nè completato. - if ($rs[0]['stato'] != 'Fatturato' && $rs[0]['stato'] != 'Completato') { + if ( !$records[0]['flg_completato'] ) { echo ' '; diff --git a/modules/interventi/ajax_costi.php b/modules/interventi/ajax_costi.php index 3db4dc9ed..c0294277c 100755 --- a/modules/interventi/ajax_costi.php +++ b/modules/interventi/ajax_costi.php @@ -9,6 +9,15 @@ $rs_iva = $dbo->fetchArray('SELECT descrizione, percentuale, indetraibile FROM c if (Auth::admin() || $_SESSION['gruppo'] != 'Tecnici') { $costi = get_costi_intervento($id_record); + + $rss = $dbo->fetchArray('SELECT in_statiintervento.completato FROM in_statiintervento INNER JOIN in_interventi ON in_statiintervento.idstatointervento=in_interventi.idstatointervento WHERE in_interventi.id='.prepare($id_record)); + $flg_completato = $rss[0]['completato']; + + if( $flg_completato ){ + $readonly = 'readonly'; + } else { + $readonly = ''; + } echo ' @@ -97,7 +106,7 @@ echo '
- {[ "type": "number", "label": "'.tr('Sconto incondizionato').'", "name": "sconto_globale", "value": "'.$sconto.'", "icon-after": "choice|untprc|'.$tipo_sconto.'" ]} + {[ "type": "number", "label": "'.tr('Sconto incondizionato').'", "name": "sconto_globale", "value": "'.$sconto.'", "icon-after": "choice|untprc|'.$tipo_sconto.'", "extra": "'.$readonly.'" ]}
'; diff --git a/modules/interventi/ajax_righe.php b/modules/interventi/ajax_righe.php index e9a51d2ab..510886b83 100644 --- a/modules/interventi/ajax_righe.php +++ b/modules/interventi/ajax_righe.php @@ -19,7 +19,7 @@ if (count($rs2) > 0) { '.tr('Subtotale').''; } - if ($records[0]['stato'] != 'Fatturato' && $records[0]['stato'] != 'Completato') { + if ( !$records[0]['flg_completato'] ) { echo ' '; } @@ -76,7 +76,7 @@ if (count($rs2) > 0) { // Pulsante per riportare nel magazzino centrale. // Visibile solo se l'intervento non è stato nè fatturato nè completato. - if ($records[0]['stato'] != 'Fatturato' && $records[0]['stato'] != 'Completato') { + if ( !$records[0]['flg_completato'] ) { echo ' diff --git a/modules/interventi/ajax_tecnici.php b/modules/interventi/ajax_tecnici.php index 98d0efe88..80d7a4df9 100644 --- a/modules/interventi/ajax_tecnici.php +++ b/modules/interventi/ajax_tecnici.php @@ -2,7 +2,11 @@ include_once __DIR__.'/../../core.php'; -include_once $docroot.'/modules/interventi/modutil.php'; +if (file_exists($docroot.'/modules/interventi/custom/modutil.php')){ + include_once $docroot.'/modules/interventi/custom/modutil.php'; +} else { + include_once $docroot.'/modules/interventi/modutil.php'; +} switch (get('op')) { // OPERAZIONI PER AGGIUNTA NUOVA SESSIONE DI LAVORO @@ -36,13 +40,23 @@ if ($user['gruppo'] == 'Tecnici') { } // RECUPERO IL TIPO DI INTERVENTO -$rss = $dbo->fetchArray('SELECT idtipointervento FROM in_interventi WHERE id='.prepare($id_record)); -$idtipointervento = $rs[0]['idtipointervento']; +$rss = $dbo->fetchArray('SELECT idtipointervento, idstatointervento FROM in_interventi WHERE id='.prepare($id_record)); +$idtipointervento = $rss[0]['idtipointervento']; +$idstatointervento = $rss[0]['idstatointervento']; + +$rss = $dbo->fetchArray('SELECT completato FROM in_statiintervento WHERE idstatointervento='.prepare($idstatointervento)); +$flg_completato = $rss[0]['completato']; $query = 'SELECT * FROM an_anagrafiche JOIN in_interventi_tecnici ON in_interventi_tecnici.idtecnico = an_anagrafiche.idanagrafica WHERE deleted=0 AND idintervento='.prepare($id_record)." AND idanagrafica IN (SELECT idanagrafica FROM an_tipianagrafiche_anagrafiche WHERE idtipoanagrafica = (SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione = 'Tecnico')) ORDER BY ragione_sociale ASC, in_interventi_tecnici.orario_inizio ASC, in_interventi_tecnici.id ASC"; $rs2 = $dbo->fetchArray($query); $prev_tecnico = ''; +if( $flg_completato ){ + $readonly = 'readonly'; +} else { + $readonly = ''; +} + if (!empty($rs2)) { foreach ($rs2 as $key => $r) { $idtecnico = $r['idanagrafica']; @@ -116,7 +130,7 @@ if (!empty($rs2)) { if ($rs[0]['stato'] != 'Fatturato') { // Elenco tipologie di interventi echo ' - {[ "type": "select", "name": "idtipointerventot['.$id.']", "value": "'.$r['idtipointervento'].'", "values": "query=SELECT idtipointervento AS id, descrizione, IFNULL((SELECT costo_ore FROM in_tariffe WHERE idtipointervento=in_tipiintervento.idtipointervento AND idtecnico='.prepare($r['idtecnico']).'), 0) AS costo_orario FROM in_tipiintervento ORDER BY descrizione", "class": "", "extra": "" ]}'; + {[ "type": "select", "name": "idtipointerventot['.$id.']", "value": "'.$r['idtipointervento'].'", "values": "query=SELECT idtipointervento AS id, descrizione, IFNULL((SELECT costo_ore FROM in_tariffe WHERE idtipointervento=in_tipiintervento.idtipointervento AND idtecnico='.prepare($r['idtecnico']).'), 0) AS costo_orario FROM in_tipiintervento ORDER BY descrizione", "class": "", "extra": "'.$readonly.'" ]}'; } echo ' @@ -131,7 +145,7 @@ if (!empty($rs2)) { '; } else { echo ' - {[ "type": "timestamp", "name": "orario_inizio['.$id.']", "id": "inizio_'.$id.'", "value": "'.$orario_inizio.'", "class": "orari min-width" ]}'; + {[ "type": "timestamp", "name": "orario_inizio['.$id.']", "id": "inizio_'.$id.'", "value": "'.$orario_inizio.'", "class": "orari min-width", "extra": "'.$readonly.'" ]}'; } echo ' '; @@ -145,7 +159,7 @@ if (!empty($rs2)) { '; } else { echo ' - {[ "type": "timestamp", "name": "orario_fine['.$id.']", "id": "fine_'.$id.'", "value": "'.$orario_fine.'", "class": "orari min-width", "min-date": "'.$orario_inizio.'" ]}'; + {[ "type": "timestamp", "name": "orario_fine['.$id.']", "id": "fine_'.$id.'", "value": "'.$orario_fine.'", "class": "orari min-width", "min-date": "'.$orario_inizio.'", "extra": "'.$readonly.'" ]}'; } echo ' '; @@ -167,7 +181,7 @@ if (!empty($rs2)) { // KM echo ' - {[ "type": "number", "name": "km['.$id.']", "value": "'.$km.'", "class": "small-width" ]} + {[ "type": "number", "name": "km['.$id.']", "value": "'.$km.'", "class": "small-width", "extra": "'.$readonly.'" ]}
@@ -202,7 +216,7 @@ if (!empty($rs2)) { '; - // Pulsante aggiunta nuova sessione + // Pulsante eliminazione sessione + echo ' + '; @@ -250,21 +270,22 @@ if (!empty($rs2)) { '

'.tr('Nessun tecnico presente').'.

'; } -echo ' - -
-
- {[ "type": "select", "label": "'.tr('Aggiungi tecnico').'", "name": "nuovotecnico", "ajax-source": "tecnici" ]} -
- -
-
- -
-
'; +if ( !$flg_completato ) { + echo ' + +
+
+ {[ "type": "select", "label": "'.tr('Aggiungi tecnico').'", "name": "nuovotecnico", "ajax-source": "tecnici" ]} +
+
+
+ +
+
'; +} ?> diff --git a/modules/interventi/edit.php b/modules/interventi/edit.php index d06fe55b1..841ae7b1c 100644 --- a/modules/interventi/edit.php +++ b/modules/interventi/edit.php @@ -5,6 +5,16 @@ include_once __DIR__.'/../../core.php'; unset($_SESSION['superselect']['idanagrafica']); $_SESSION['superselect']['idanagrafica'] = $records[0]['idanagrafica']; +//Disabilito il tasto di firma per gli interventi completati +if( $records[0]['flg_completato'] ){ + $disabled = 'disabled'; + $readonly = 'readonly'; +} else { + $disabled = ''; + $readonly = ''; +} + + if (empty($records[0]['firma_file'])) { $frase = tr('Anteprima e firma'); $info_firma = ''; @@ -32,7 +42,7 @@ if (empty($records[0]['firma_file'])) {
- + @@ -46,22 +56,22 @@ if (empty($records[0]['firma_file'])) { - {[ "type": "select", "label": "", "name": "idanagrafica", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Cliente' AND deleted=0 ORDER BY ragione_sociale", "value": "$idanagrafica$", "ajax-source": "clienti" ]} + {[ "type": "select", "label": "", "name": "idanagrafica", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Cliente' AND deleted=0 ORDER BY ragione_sociale", "value": "$idanagrafica$", "ajax-source": "clienti", "extra": "" ]}
- {[ "type": "select", "label": "", "name": "idsede", "values": "query=SELECT 0 AS id, 'Sede legale' AS descrizione UNION SELECT id, CONCAT_WS( ' - ', nomesede, citta ) AS descrizione FROM an_sedi WHERE idanagrafica='$idanagrafica$'", "value": "$idsede$", "ajax-source": "sedi" ]} + {[ "type": "select", "label": "", "name": "idsede", "values": "query=SELECT 0 AS id, 'Sede legale' AS descrizione UNION SELECT id, CONCAT_WS( ' - ', nomesede, citta ) AS descrizione FROM an_sedi WHERE idanagrafica='$idanagrafica$'", "value": "$idsede$", "ajax-source": "sedi", "extra": "" ]}
- {[ "type": "select", "label": "", "name": "idclientefinale", "value": "$idclientefinale$", "ajax-source": "clienti" ]} + {[ "type": "select", "label": "", "name": "idclientefinale", "value": "$idclientefinale$", "ajax-source": "clienti", "extra": "" ]}
- {[ "type": "select", "label": "", "name": "idreferente", "value": "$idreferente$", "ajax-source": "referenti" ]} + {[ "type": "select", "label": "", "name": "idreferente", "value": "$idreferente$", "ajax-source": "referenti", "extra": "" ]}
@@ -77,7 +87,7 @@ if (empty($records[0]['firma_file'])) { } ?> - {[ "type": "select", "label": "", "name": "idpreventivo", "value": "$idpreventivo$", "ajax-source": "preventivi" ]} + {[ "type": "select", "label": "", "name": "idpreventivo", "value": "$idpreventivo$", "ajax-source": "preventivi", "extra": "" ]}
@@ -97,7 +107,7 @@ if (empty($records[0]['firma_file'])) { } ?> - {[ "type": "select", "label": "", "name": "idcontratto", "value": "", "ajax-source": "contratti" ]} + {[ "type": "select", "label": "", "name": "idcontratto", "value": "", "ajax-source": "contratti", "extra": "" ]}
@@ -122,11 +132,11 @@ if (empty($records[0]['firma_file'])) {
- {[ "type": "span", "label": "", "name": "codice", "value": "$codice$" ]} + {[ "type": "span", "label": "", "name": "codice", "value": "$codice$", "extra": "" ]}
- {[ "type": "date", "label": "", "name": "data_richiesta", "required": 1, "value": "$data_richiesta$" ]} + {[ "type": "date", "label": "", "name": "data_richiesta", "required": 1, "value": "$data_richiesta$", "extra": "" ]}
@@ -141,7 +151,7 @@ if (empty($records[0]['firma_file'])) {
- {[ "type": "select", "label": "", "name": "idtipointervento", "required": 1, "values": "query=SELECT idtipointervento AS id, descrizione FROM in_tipiintervento", "value": "$idtipointervento$" ]} + {[ "type": "select", "label": "", "name": "idtipointervento", "required": 1, "values": "query=SELECT idtipointervento AS id, descrizione FROM in_tipiintervento", "value": "$idtipointervento$", "extra": "" ]}
@@ -149,7 +159,7 @@ if (empty($records[0]['firma_file'])) {
- {[ "type": "select", "label": "", "name": "idautomezzo", "values": "query=SELECT id, CONCAT_WS( ')', CONCAT_WS( ' (', CONCAT_WS( ', ', nome, descrizione), targa ), '' ) AS descrizione FROM dt_automezzi", "help": "", "value": "$idautomezzo$" ]} + {[ "type": "select", "label": "", "name": "idautomezzo", "values": "query=SELECT id, CONCAT_WS( ')', CONCAT_WS( ' (', CONCAT_WS( ', ', nome, descrizione), targa ), '' ) AS descrizione FROM dt_automezzi", "help": "", "value": "$idautomezzo$", "extra": "" ]}
@@ -157,11 +167,11 @@ if (empty($records[0]['firma_file'])) {
- {[ "type": "textarea", "label": "", "name": "richiesta", "required": 1, "class": "autosize", "value": "$richiesta$", "extra": "rows='5'" ]} + {[ "type": "textarea", "label": "", "name": "richiesta", "required": 1, "class": "autosize", "value": "$richiesta$", "extra": "rows='5' " ]}
- {[ "type": "textarea", "label": "", "name": "descrizione", "class": "autosize", "value": "$descrizione$", "extra": "rows='10'" ]} + {[ "type": "textarea", "label": "", "name": "descrizione", "class": "autosize", "value": "$descrizione$", "extra": "rows='10' " ]}
@@ -206,7 +216,7 @@ if (empty($records[0]['firma_file'])) {
-
- fetchArray('SELECT *, IF((in_interventi.idsede = 0), (SELECT idzona FROM an_anagrafiche WHERE idanagrafica = in_interventi.idanagrafica), (SELECT idzona FROM an_sedi WHERE id = in_interventi.idsede)) AS idzona, (SELECT colore FROM in_statiintervento WHERE idstatointervento=in_interventi.idstatointervento) AS colore, (SELECT idpreventivo FROM co_preventivi_interventi WHERE idintervento=in_interventi.id LIMIT 0,1) AS idpreventivo FROM in_interventi WHERE id='.prepare($id_record).Modules::getAdditionalsQuery($id_module)); + $records = $dbo->fetchArray('SELECT *, (SELECT completato FROM in_statiintervento WHERE idstatointervento=in_interventi.idstatointervento) AS flg_completato, IF((in_interventi.idsede = 0), (SELECT idzona FROM an_anagrafiche WHERE idanagrafica = in_interventi.idanagrafica), (SELECT idzona FROM an_sedi WHERE id = in_interventi.idsede)) AS idzona, (SELECT colore FROM in_statiintervento WHERE idstatointervento=in_interventi.idstatointervento) AS colore, (SELECT idpreventivo FROM co_preventivi_interventi WHERE idintervento=in_interventi.id LIMIT 0,1) AS idpreventivo FROM in_interventi WHERE id='.prepare($id_record).Modules::getAdditionalsQuery($id_module)); } $jscript_modules[] = $rootdir.'/modules/interventi/js/interventi_helperjs.js'; diff --git a/modules/my_impianti/plugins/my_impianti.interventi.php b/modules/my_impianti/plugins/my_impianti.interventi.php index 0c85d776c..6831e1f43 100644 --- a/modules/my_impianti/plugins/my_impianti.interventi.php +++ b/modules/my_impianti/plugins/my_impianti.interventi.php @@ -49,6 +49,18 @@ if (filter('op') == 'link_myimpianti') { $_SESSION['infos'][] = tr('Informazioni componenti salvate!'); } +//Blocco della modifica impianti se l'intervento è completato +$rss = $dbo->fetchArray('SELECT in_statiintervento.completato FROM in_statiintervento INNER JOIN in_interventi ON in_statiintervento.idstatointervento=in_interventi.idstatointervento WHERE in_interventi.id='.prepare($id_record)); +$flg_completato = $rss[0]['completato']; + +if( $flg_completato ){ + $readonly = 'readonly'; + $disabled = 'disabled'; +} else { + $readonly = ''; + $disabled = ''; +} + // IMPIANTI echo '
@@ -106,7 +118,7 @@ foreach ($rs as $r) {
- '; $inseriti = $dbo->fetchArray('SELECT * FROM my_componenti_interventi WHERE id_intervento='.prepare($id_record)); $inseriti = !empty($inseriti) ? array_column($inseriti, 'id_componente') : []; $list = []; @@ -137,7 +149,7 @@ foreach ($rs as $r) {

- + @@ -164,12 +176,12 @@ echo '
- {[ "type": "select", "name": "matricole[]", "multiple": 1, "value": "'.implode(',', $impianti).'", "values": "query=SELECT my_impianti.id, CONCAT(matricola, \' - \', nome) AS descrizione, CONCAT(nomesede, IF(citta IS NULL OR citta = \'\', \'\', CONCAT(\' (\', citta, \')\'))) AS optgroup FROM my_impianti JOIN (SELECT id, nomesede, citta FROM an_sedi UNION SELECT 0, \'Sede legale\', \'\') AS t ON t.id = my_impianti.idsede WHERE idanagrafica='.prepare($records[0]['idanagrafica']).' ORDER BY idsede ASC, matricola ASC" ]} + {[ "type": "select", "name": "matricole[]", "multiple": 1, "value": "'.implode(',', $impianti).'", "values": "query=SELECT my_impianti.id, CONCAT(matricola, \' - \', nome) AS descrizione, CONCAT(nomesede, IF(citta IS NULL OR citta = \'\', \'\', CONCAT(\' (\', citta, \')\'))) AS optgroup FROM my_impianti JOIN (SELECT id, nomesede, citta FROM an_sedi UNION SELECT 0, \'Sede legale\', \'\') AS t ON t.id = my_impianti.idsede WHERE idanagrafica='.prepare($records[0]['idanagrafica']).' ORDER BY idsede ASC, matricola ASC", "extra": "'.$readonly.'" ]}


- + '; echo '
'; if ($user['idanagrafica'] == 0 || $show_costi) { echo ' - {[ "type": "number", "name": "sconto['.$id.']", "value": "'.$sconto_unitario.'", "icon-after": "choice|untprc|'.$tipo_sconto.'", "class": "small-width" ]}'; + {[ "type": "number", "name": "sconto['.$id.']", "value": "'.$sconto_unitario.'", "icon-after": "choice|untprc|'.$tipo_sconto.'", "class": "small-width", "extra": "'.$readonly.'" ]}'; } else { echo ' @@ -217,7 +231,7 @@ if (!empty($rs2)) { '; if ($user['idanagrafica'] == 0 || $show_costi) { echo ' - {[ "type": "number", "name": "scontokm['.$id.']", "value": "'.$scontokm_unitario.'", "icon-after": "choice|untprc|'.$tipo_scontokm.'", "class": "small-width" ]}'; + {[ "type": "number", "name": "scontokm['.$id.']", "value": "'.$scontokm_unitario.'", "icon-after": "choice|untprc|'.$tipo_scontokm.'", "class": "small-width", "extra": "'.$readonly.'" ]}'; } else { echo ' @@ -231,10 +245,16 @@ if (!empty($rs2)) { '; + + if( !$flg_completato ){ + echo ' + '; + } + echo ' - -