diff --git a/modules/contratti/actions.php b/modules/contratti/actions.php
index 3c19633f0..7621f8fb7 100644
--- a/modules/contratti/actions.php
+++ b/modules/contratti/actions.php
@@ -259,15 +259,26 @@ switch (post('op')) {
// eliminazione contratto
case 'delete':
- try {
- $contratto->delete();
- $dbo->query('DELETE FROM co_promemoria WHERE idcontratto='.prepare($id_record));
- $dbo->query('DELETE FROM co_contratti_tipiintervento WHERE idcontratto='.prepare($id_record));
+ // Fatture o interventi collegati a questo contratto
+ $elementi = $dbo->fetchArray('SELECT 0 AS `codice`, `co_documenti`.`id` AS `id`, `co_documenti`.`numero` AS `numero`, `co_documenti`.`numero_esterno` AS `numero_esterno`, `co_documenti`.`data`, `co_tipidocumento`.`descrizione` AS `tipo_documento`, `co_tipidocumento`.`dir` AS `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 `idcontratto` = '.prepare($id_record).')'.'
+ UNION
+ SELECT `in_interventi`.`codice` AS `codice`, `in_interventi`.`id` AS `id`, 0 AS `numero`, 0 AS `numero_esterno`, `in_interventi`.`data_richiesta` AS `data`, 0 AS `tipo_documento`, 0 AS `dir` FROM `in_interventi` WHERE `in_interventi`.`id_contratto` = '.prepare($id_record).' ORDER BY `data` ');
+
+ if (empty($elementi)) {
+
+ try {
+ $contratto->delete();
+
+ $dbo->query('DELETE FROM co_promemoria WHERE idcontratto='.prepare($id_record));
+ $dbo->query('DELETE FROM co_contratti_tipiintervento WHERE idcontratto='.prepare($id_record));
+ $dbo->query('DELETE FROM my_impianti_contratti WHERE idcontratto='.prepare($id_record));
+
+ flash()->info(tr('Contratto eliminato!'));
+ } catch (InvalidArgumentException $e) {
+ flash()->error(tr('Sono stati utilizzati alcuni serial number nel documento: impossibile procedere!'));
+ }
- flash()->info(tr('Contratto eliminato!'));
- } catch (InvalidArgumentException $e) {
- flash()->error(tr('Sono stati utilizzati alcuni serial number nel documento: impossibile procedere!'));
}
break;
diff --git a/modules/contratti/edit.php b/modules/contratti/edit.php
index 029e9216d..333366065 100644
--- a/modules/contratti/edit.php
+++ b/modules/contratti/edit.php
@@ -114,13 +114,11 @@ $_SESSION['superselect']['idanagrafica'] = $record['idanagrafica'];
-
- {[ "type": "select", "multiple": "1", "label": "", "name": "matricolaimpianto[]", "values": "query=SELECT idanagrafica, id AS id, IF(nome = '', matricola, CONCAT(matricola, ' - ', nome)) AS descrizione FROM my_impianti WHERE idanagrafica='$idanagrafica$' ORDER BY descrizione", "value": "$idimpianti$" ]}
+ {[ "type": "select", "multiple": "1", "label": "", "name": "matricolaimpianto[]", "values": "query=SELECT idanagrafica, id AS id, IF(nome = '', matricola, CONCAT(matricola, ' - ', nome)) AS descrizione FROM my_impianti WHERE idanagrafica='$idanagrafica$' ORDER BY descrizione", "value": "$idimpianti$", "icon-after": "add||||" ]}
-
{[ "type": "textarea", "label": "", "name": "esclusioni", "class": "autosize", "value": "$esclusioni$" ]}
@@ -388,8 +386,11 @@ include $docroot.'/modules/contratti/row-list.php';
fetchArray('SELECT `co_documenti`.*, `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 `idcontratto` = '.prepare($id_record).') ORDER BY `data`');
+// Fatture o interventi collegati a questo contratto
+$elementi = $dbo->fetchArray('SELECT 0 AS `codice`, `co_documenti`.`id` AS `id`, `co_documenti`.`numero` AS `numero`, `co_documenti`.`numero_esterno` AS `numero_esterno`, `co_documenti`.`data`, `co_tipidocumento`.`descrizione` AS `tipo_documento`, `co_tipidocumento`.`dir` AS `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 `idcontratto` = '.prepare($id_record).')'.'
+UNION
+SELECT `in_interventi`.`codice` AS `codice`, `in_interventi`.`id` AS `id`, 0 AS `numero`, 0 AS `numero_esterno`, `in_interventi`.`data_richiesta` AS `data`, 0 AS `tipo_documento`, 0 AS `dir` FROM `in_interventi` WHERE `in_interventi`.`id_contratto` = '.prepare($id_record).' ORDER BY `data` ');
+
if (!empty($elementi)) {
echo '
@@ -404,19 +405,38 @@ if (!empty($elementi)) {
';
+
+ // Elenco attività o contratti collegati
+ foreach ($elementi as $riga) {
+ if (!empty($riga['dir'])){
- foreach ($elementi as $fattura) {
- $descrizione = tr('_DOC_ num. _NUM_ del _DATE_', [
- '_DOC_' => $fattura['tipo_documento'],
- '_NUM_' => !empty($fattura['numero_esterno']) ? $fattura['numero_esterno'] : $fattura['numero'],
- '_DATE_' => Translator::dateToLocale($fattura['data']),
- ]);
+ $descrizione = tr('_DOC_ num. _NUM_ del _DATE_', [
+ '_DOC_' => $riga['tipo_documento'],
+ '_NUM_' => !empty($riga['numero_esterno']) ? $riga['numero_esterno'] : $riga['numero'],
+ '_DATE_' => Translator::dateToLocale($riga['data']),
+ ]);
- $modulo = ($fattura['dir'] == 'entrata') ? 'Fatture di vendita' : 'Fatture di acquisto';
- $id = $fattura['id'];
+ $modulo = ($riga['dir'] == 'entrata') ? 'Fatture di vendita' : 'Fatture di acquisto';
+ $id = $riga['id'];
+
+ echo '
+ - '.Modules::link($modulo, $id, $descrizione).'
';
+
+ }else{
+
+ $descrizione = tr('Intervento num. _NUM_ del _DATE_', [
+ '_NUM_' => $riga['codice'],
+ '_DATE_' => Translator::dateToLocale($riga['data']),
+ ]);
+
+ $modulo = 'Interventi';
+ $id = $riga['id'];
+
+ echo '
+ - '.Modules::link($modulo, $id, $descrizione).'
';
+
+ }
- echo '
- - '.Modules::link($modulo, $id, $descrizione).'
';
}
echo '
@@ -430,10 +450,16 @@ if (!empty($elementi)) {
'.tr('Eliminando questo documento si potrebbero verificare problemi nelle altre sezioni del gestionale').'.
';
-}
+
+}else{
?>
+
+
diff --git a/modules/my_impianti/actions.php b/modules/my_impianti/actions.php
index 517f52b10..d6819f216 100644
--- a/modules/my_impianti/actions.php
+++ b/modules/my_impianti/actions.php
@@ -84,7 +84,8 @@ switch ($op) {
$id_record = $dbo->lastInsertedID();
- if (isAjaxRequest() && post('source') != '') {
+ //&& post('source') != ''
+ if (isAjaxRequest()) {
echo json_encode(['id' => $id_record, 'text' => $matricola.' - '.$nome]);
}