1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-02-02 00:46:44 +01:00

Bloccata modifica intervento se con stato avente il flag "completato"

This commit is contained in:
Fabio Lovato 2018-02-16 15:45:15 +01:00
parent b0971e1bf2
commit 33d023d646
9 changed files with 108 additions and 56 deletions

View File

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

View File

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

View File

@ -25,7 +25,7 @@ if (!empty($rs)) {
<th width="15%">'.tr('Subtotale').'</th>';
}
if ($rs[0]['stato'] != 'Fatturato' && $rs[0]['stato'] != 'Completato') {
if ( !$records[0]['flg_completato'] ) {
echo '
<th width="80"></th>';
}
@ -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 '
<td>';

View File

@ -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 '
<!-- Riepilogo dei costi -->
@ -97,7 +106,7 @@ echo '
<!-- SCONTO -->
<div class="row">
<div class="col-md-4 pull-right">
{[ "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.'" ]}
</div>
</div>';

View File

@ -19,7 +19,7 @@ if (count($rs2) > 0) {
<th width="15%">'.tr('Subtotale').'</th>';
}
if ($records[0]['stato'] != 'Fatturato' && $records[0]['stato'] != 'Completato') {
if ( !$records[0]['flg_completato'] ) {
echo '
<th width="80"></th>';
}
@ -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 '
<td>
<button type="button" class="btn btn-warning btn-xs" data-toggle="tooltip" onclick="launch_modal(\''.tr('Modifica spesa').'\', \''.$rootdir.'/modules/interventi/add_righe.php?id_module='.$id_module.'&id_record='.$id_record.'&idriga='.$r['id'].'\', 1);"><i class="fa fa-edit"></i></button>

View File

@ -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)) {
<input type="hidden" name="orario_inizio['.$id.']" value="'.$orario_inizio.'">';
} 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 '
</td>';
@ -145,7 +159,7 @@ if (!empty($rs2)) {
<input type="hidden" name="orario_fine['.$id.']" value="'.$orario_fine.'">';
} 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 '
</td>';
@ -167,7 +181,7 @@ if (!empty($rs2)) {
// KM
echo '
<td style="border-right:1px solid #aaa;">
{[ "type": "number", "name": "km['.$id.']", "value": "'.$km.'", "class": "small-width" ]}
{[ "type": "number", "name": "km['.$id.']", "value": "'.$km.'", "class": "small-width", "extra": "'.$readonly.'" ]}
<div class="extra hide">
<table class="table table-condensed table-bordered">
@ -202,7 +216,7 @@ if (!empty($rs2)) {
<td style="border-right:1px solid #aaa;">';
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 '
<input type="hidden" name="sconto['.$id.']" value="'.Translator::numberToLocale($sconto_unitario).'" />
@ -217,7 +231,7 @@ if (!empty($rs2)) {
<td style="border-right:1px solid #aaa;">';
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 '
<input type="hidden" name="scontokm['.$id.']" value="'.Translator::numberToLocale($scontokm_unitario).'" />
@ -231,10 +245,16 @@ if (!empty($rs2)) {
<input type="hidden" name="prezzo_km_consuntivotecnico['.$id.']" value="'.Translator::numberToLocale($costo_km_consuntivo_tecnico).'" />
</td>';
// Pulsante aggiunta nuova sessione
// Pulsante eliminazione sessione
echo '
<td>';
if( !$flg_completato ){
echo '
<a class="btn btn-danger" id="delbtn_'.$id.'" onclick="elimina_sessione(\''.$id.'\', \''.$id_record.'\', \''.$idzona.'\');" title="Elimina riga" class="only_rw"><i class="fa fa-trash"></i></a>';
}
echo '
<td>
<a class="btn btn-danger" id="delbtn_'.$id.'" onclick="elimina_sessione(\''.$id.'\', \''.$id_record.'\', \''.$idzona.'\');" title="Elimina riga" class="only_rw"><i class="fa fa-trash"></i></a>
</td>
</tr>';
@ -250,21 +270,22 @@ if (!empty($rs2)) {
'<p>'.tr('Nessun tecnico presente').'.</p>';
}
echo '
<!-- AGGIUNTA TECNICO -->
<div class="row">
<div class="col-md-offset-6 col-md-3">
{[ "type": "select", "label": "'.tr('Aggiungi tecnico').'", "name": "nuovotecnico", "ajax-source": "tecnici" ]}
</div>
<div class="col-md-3">
<br>
<button type="button" class="btn btn-primary btn-block" onclick="if($(\'#nuovotecnico\').val()){ add_tecnici( \''.$id_record.'\', $(\'#nuovotecnico\').val()); }else{ alert(\'Seleziona un tecnico!\'); }">
<i class="fa fa-plus"></i> '.tr('Aggiungi tecnico').'
</button>
</div>
</div>';
if ( !$flg_completato ) {
echo '
<!-- AGGIUNTA TECNICO -->
<div class="row">
<div class="col-md-offset-6 col-md-3">
{[ "type": "select", "label": "'.tr('Aggiungi tecnico').'", "name": "nuovotecnico", "ajax-source": "tecnici" ]}
</div>
<div class="col-md-3">
<br>
<button type="button" class="btn btn-primary btn-block" onclick="if($(\'#nuovotecnico\').val()){ add_tecnici( \''.$id_record.'\', $(\'#nuovotecnico\').val()); }else{ alert(\'Seleziona un tecnico!\'); }">
<i class="fa fa-plus"></i> '.tr('Aggiungi tecnico').'
</button>
</div>
</div>';
}
?>
<script src="<?php echo $rootdir ?>/lib/init.js"></script>

View File

@ -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'])) {
<!-- EVENTUALE FIRMA GIA' EFFETTUATA -->
<?php echo $info_firma ?>
<div class="pull-right">
<button type="button" class="btn btn-primary " onclick="launch_modal( '<?php echo tr('Anteprima e firma') ?>', '<?php echo $rootdir ?>/modules/interventi/add_firma.php?id_module=<?php echo $id_module ?>&id_record=<?php echo $id_record ?>&anteprima=1', 1 );"><i class="fa fa-desktop"></i> <?php echo $frase ?>...</button>
<button type="button" class="btn btn-primary " onclick="launch_modal( '<?php echo tr('Anteprima e firma') ?>', '<?php echo $rootdir ?>/modules/interventi/add_firma.php?id_module=<?php echo $id_module ?>&id_record=<?php echo $id_record ?>&anteprima=1', 1 );" <?= $disabled ?>><i class="fa fa-desktop"></i> <?php echo $frase ?>...</button>
<a class="btn btn-info" target="_blank" href="<?php echo $rootdir ?>/pdfgen.php?ptype=interventi&idintervento=<?php echo $id_record ?>"><i class="fa fa-print"></i> <?php echo tr('Stampa intervento') ?></a>
<button type="submit" class="btn btn-success"><i class="fa fa-check"></i> <?php echo tr('Salva modifiche'); ?></button>
@ -46,22 +56,22 @@ if (empty($records[0]['firma_file'])) {
<?php
echo Modules::link('Anagrafiche', $records[0]['idanagrafica'], null, null, 'class="pull-right"');
?>
{[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "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": "<?php echo tr('Cliente'); ?>", "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": "<?= $readonly ?>" ]}
</div>
<div class="col-md-3">
{[ "type": "select", "label": "<?php echo tr('Sede'); ?>", "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": "<?php echo tr('Sede'); ?>", "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": "<?= $readonly ?>" ]}
</div>
<div class="col-md-3">
<?php
echo Modules::link('Anagrafiche', $records[0]['idclientefinale'], null, null, 'class="pull-right"');
?>
{[ "type": "select", "label": "<?php echo tr('Per conto di'); ?>", "name": "idclientefinale", "value": "$idclientefinale$", "ajax-source": "clienti" ]}
{[ "type": "select", "label": "<?php echo tr('Per conto di'); ?>", "name": "idclientefinale", "value": "$idclientefinale$", "ajax-source": "clienti", "extra": "<?= $readonly ?>" ]}
</div>
<div class="col-md-3">
{[ "type": "select", "label": "<?php echo tr('Referente'); ?>", "name": "idreferente", "value": "$idreferente$", "ajax-source": "referenti" ]}
{[ "type": "select", "label": "<?php echo tr('Referente'); ?>", "name": "idreferente", "value": "$idreferente$", "ajax-source": "referenti", "extra": "<?= $readonly ?>" ]}
</div>
</div>
@ -77,7 +87,7 @@ if (empty($records[0]['firma_file'])) {
}
?>
{[ "type": "select", "label": "<?php echo tr('Preventivo'); ?>", "name": "idpreventivo", "value": "$idpreventivo$", "ajax-source": "preventivi" ]}
{[ "type": "select", "label": "<?php echo tr('Preventivo'); ?>", "name": "idpreventivo", "value": "$idpreventivo$", "ajax-source": "preventivi", "extra": "<?= $readonly ?>" ]}
</div>
<div class="col-md-3">
@ -97,7 +107,7 @@ if (empty($records[0]['firma_file'])) {
}
?>
{[ "type": "select", "label": "<?php echo tr('Contratto'); ?>", "name": "idcontratto", "value": "<?php echo $idcontratto; ?>", "ajax-source": "contratti" ]}
{[ "type": "select", "label": "<?php echo tr('Contratto'); ?>", "name": "idcontratto", "value": "<?php echo $idcontratto; ?>", "ajax-source": "contratti", "extra": "<?= $readonly ?>" ]}
<input type='hidden' name='idcontratto_riga' value='<?php echo $idcontratto_riga ?>'>
</div>
</div>
@ -122,11 +132,11 @@ if (empty($records[0]['firma_file'])) {
<!-- RIGA 3 -->
<div class="row">
<div class="col-md-3">
{[ "type": "span", "label": "<?php echo tr('Codice'); ?>", "name": "codice", "value": "$codice$" ]}
{[ "type": "span", "label": "<?php echo tr('Codice'); ?>", "name": "codice", "value": "$codice$", "extra": "<?= $readonly ?>" ]}
</div>
<div class="col-md-3">
{[ "type": "date", "label": "<?php echo tr('Data richiesta'); ?>", "name": "data_richiesta", "required": 1, "value": "$data_richiesta$" ]}
{[ "type": "date", "label": "<?php echo tr('Data richiesta'); ?>", "name": "data_richiesta", "required": 1, "value": "$data_richiesta$", "extra": "<?= $readonly ?>" ]}
</div>
<div class="col-md-3">
@ -141,7 +151,7 @@ if (empty($records[0]['firma_file'])) {
<!-- RIGA 4 -->
<div class="row">
<div class="col-md-4">
{[ "type": "select", "label": "<?php echo tr('Tipo attività'); ?>", "name": "idtipointervento", "required": 1, "values": "query=SELECT idtipointervento AS id, descrizione FROM in_tipiintervento", "value": "$idtipointervento$" ]}
{[ "type": "select", "label": "<?php echo tr('Tipo attività'); ?>", "name": "idtipointervento", "required": 1, "values": "query=SELECT idtipointervento AS id, descrizione FROM in_tipiintervento", "value": "$idtipointervento$", "extra": "<?= $readonly ?>" ]}
</div>
<div class="col-md-4">
@ -149,7 +159,7 @@ if (empty($records[0]['firma_file'])) {
</div>
<div class="col-md-4">
{[ "type": "select", "label": "<?php echo tr('Automezzo'); ?>", "name": "idautomezzo", "values": "query=SELECT id, CONCAT_WS( ')', CONCAT_WS( ' (', CONCAT_WS( ', ', nome, descrizione), targa ), '' ) AS descrizione FROM dt_automezzi", "help": "<?php echo tr('Se selezionato i materiali verranno presi prima dall&rsquo;automezzo e poi dal magazzino centrale.'); ?>", "value": "$idautomezzo$" ]}
{[ "type": "select", "label": "<?php echo tr('Automezzo'); ?>", "name": "idautomezzo", "values": "query=SELECT id, CONCAT_WS( ')', CONCAT_WS( ' (', CONCAT_WS( ', ', nome, descrizione), targa ), '' ) AS descrizione FROM dt_automezzi", "help": "<?php echo tr('Se selezionato i materiali verranno presi prima dall&rsquo;automezzo e poi dal magazzino centrale.'); ?>", "value": "$idautomezzo$", "extra": "<?= $readonly ?>" ]}
</div>
</div>
@ -157,11 +167,11 @@ if (empty($records[0]['firma_file'])) {
<!-- RIGA 5 -->
<div class="row">
<div class="col-md-12">
{[ "type": "textarea", "label": "<?php echo tr('Richiesta'); ?>", "name": "richiesta", "required": 1, "class": "autosize", "value": "$richiesta$", "extra": "rows='5'" ]}
{[ "type": "textarea", "label": "<?php echo tr('Richiesta'); ?>", "name": "richiesta", "required": 1, "class": "autosize", "value": "$richiesta$", "extra": "rows='5' <?= $readonly ?>" ]}
</div>
<div class="col-md-12">
{[ "type": "textarea", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "class": "autosize", "value": "$descrizione$", "extra": "rows='10'" ]}
{[ "type": "textarea", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "class": "autosize", "value": "$descrizione$", "extra": "rows='10' <?= $readonly ?>" ]}
</div>
<div class="col-md-12">
@ -206,7 +216,7 @@ if (empty($records[0]['firma_file'])) {
<?php include $docroot.'/modules/interventi/ajax_articoli.php'; ?>
</div>
<?php if ($records[0]['stato'] != 'Fatturato' && $records[0]['stato'] != 'Completato') {
<?php if ( !$records[0]['flg_completato'] ) {
?>
<button type="button" class="btn btn-primary" onclick="launch_modal( '<?php echo tr('Aggiungi articolo') ?>', '<?php echo $rootdir ?>/modules/interventi/add_articolo.php?id_module=<?php echo $id_module ?>&id_record=<?php echo $id_record ?>&idriga=0&idautomezzo='+$('#idautomezzo').find(':selected').val(), 1);"><i class="fa fa-plus"></i> <?php echo tr('Aggiungi articolo') ?>...</button>
<?php
@ -225,7 +235,7 @@ if (empty($records[0]['firma_file'])) {
<?php include $docroot.'/modules/interventi/ajax_righe.php'; ?>
</div>
<?php if ($records[0]['stato'] != 'Fatturato' && $records[0]['stato'] != 'Completato') {
<?php if ( !$records[0]['flg_completato'] ) {
?>
<button type="button" class="btn btn-primary" onclick="launch_modal( '<?php echo tr('Aggiungi altre spese') ?>', '<?php echo $rootdir ?>/modules/interventi/add_righe.php?id_module=<?php echo $id_module ?>&id_record=<?php echo $id_record ?>', 1 );"><i class="fa fa-plus"></i> <?php echo tr('Aggiungi altre spese') ?>...</button>
<?php

View File

@ -3,7 +3,7 @@
include_once __DIR__.'/../../core.php';
if (isset($id_record)) {
$records = $dbo->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';

View File

@ -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 '
<div class="box">
@ -106,7 +118,7 @@ foreach ($rs as $r) {
<form action="'.$rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'&op=link_componenti&matricola='.$r['id'].'" method="post">
<input type="hidden" name="backto" value="record-edit">
<select class="superselect" name="componenti[]" multiple>';
<select class="superselect" name="componenti[]" multiple '.$readonly.' '.$disabled.'>';
$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) {
</select><br><br>
<input type="hidden" name="list" value="'.implode(',', $list).'">
<button type="submit" class="btn btn-success"><i class="fa fa-check"></i> '.tr('Salva componenti').'</button>
<button type="submit" class="btn btn-success" '.$disabled.'><i class="fa fa-check"></i> '.tr('Salva componenti').'</button>
</form>
</td>
</tr>
@ -164,12 +176,12 @@ echo '
<input type="hidden" name="backto" value="record-edit">
<div class="row">
<div class="col-xs-12 col-md-6">
{[ "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.'" ]}
</div>
</div>
<br><br>
<button type="submit" class="btn btn-success"><i class="fa fa-check"></i> '.tr('Salva impianti').'</button></a>
<button type="submit" class="btn btn-success" '.$disabled.'><i class="fa fa-check"></i> '.tr('Salva impianti').'</button></a>
</form>';
echo '