diff --git a/modules/fatture/add_intervento.php b/modules/fatture/add_intervento.php index faef22955..1720508ed 100755 --- a/modules/fatture/add_intervento.php +++ b/modules/fatture/add_intervento.php @@ -41,7 +41,7 @@ $rs = $dbo->fetchArray('SELECT in_interventi INNER JOIN in_statiintervento ON in_interventi.idstatointervento=in_statiintervento.idstatointervento WHERE (in_interventi.idanagrafica='.prepare($idanagrafica).' OR in_interventi.idclientefinale='.prepare($idanagrafica).') - AND in_statiintervento.completato=1 + AND in_statiintervento.is_completato=1 AND in_statiintervento.is_fatturabile=1 AND in_interventi.id NOT IN (SELECT idintervento FROM co_righe_documenti WHERE idintervento IS NOT NULL) AND in_interventi.id_preventivo IS NULL AND in_interventi.id_contratto IS NULL diff --git a/modules/fatture/edit.php b/modules/fatture/edit.php index 4f77a8731..2ab871bad 100755 --- a/modules/fatture/edit.php +++ b/modules/fatture/edit.php @@ -556,13 +556,13 @@ if (!$block_edit) { if (empty($record['ref_documento'])) { if ($dir == 'entrata') { // Lettura interventi non rifiutati, non fatturati e non collegati a preventivi o contratti - $int_query = 'SELECT COUNT(*) AS tot FROM in_interventi INNER JOIN in_statiintervento ON in_interventi.idstatointervento=in_statiintervento.idstatointervento WHERE idanagrafica='.prepare($record['idanagrafica']).' AND in_statiintervento.completato=1 AND in_interventi.id NOT IN (SELECT idintervento FROM co_righe_documenti WHERE idintervento IS NOT NULL) AND in_interventi.id_preventivo IS NULL AND in_interventi.id NOT IN (SELECT idintervento FROM co_promemoria WHERE idintervento IS NOT NULL)'; + $int_query = 'SELECT COUNT(*) AS tot FROM in_interventi INNER JOIN in_statiintervento ON in_interventi.idstatointervento=in_statiintervento.idstatointervento WHERE idanagrafica='.prepare($record['idanagrafica']).' AND in_statiintervento.is_completato=1 AND in_interventi.id NOT IN (SELECT idintervento FROM co_righe_documenti WHERE idintervento IS NOT NULL) AND in_interventi.id_preventivo IS NULL AND in_interventi.id NOT IN (SELECT idintervento FROM co_promemoria WHERE idintervento IS NOT NULL)'; $interventi = $dbo->fetchArray($int_query)[0]['tot']; // Se non trovo niente provo a vedere se ce ne sono per clienti terzi if (empty($interventi)) { // Lettura interventi non rifiutati, non fatturati e non collegati a preventivi o contratti (clienti terzi) - $int_query = 'SELECT COUNT(*) AS tot FROM in_interventi INNER JOIN in_statiintervento ON in_interventi.idstatointervento=in_statiintervento.idstatointervento WHERE idclientefinale='.prepare($record['idanagrafica']).' AND in_statiintervento.completato=1 AND in_interventi.id NOT IN (SELECT idintervento FROM co_righe_documenti WHERE idintervento IS NOT NULL) AND in_interventi.id_preventivo IS NULL AND in_interventi.id NOT IN (SELECT idintervento FROM co_promemoria WHERE idintervento IS NOT NULL)'; + $int_query = 'SELECT COUNT(*) AS tot FROM in_interventi INNER JOIN in_statiintervento ON in_interventi.idstatointervento=in_statiintervento.idstatointervento WHERE idclientefinale='.prepare($record['idanagrafica']).' AND in_statiintervento.is_completato=1 AND in_interventi.id NOT IN (SELECT idintervento FROM co_righe_documenti WHERE idintervento IS NOT NULL) AND in_interventi.id_preventivo IS NULL AND in_interventi.id NOT IN (SELECT idintervento FROM co_promemoria WHERE idintervento IS NOT NULL)'; $interventi = $dbo->fetchArray($int_query)[0]['tot']; } diff --git a/modules/interventi/bulk.php b/modules/interventi/bulk.php index 3dbca8d65..5cece8bca 100755 --- a/modules/interventi/bulk.php +++ b/modules/interventi/bulk.php @@ -69,7 +69,7 @@ switch (post('op')) { $accodare = post('accodare'); $id_segment = post('id_segment'); - $interventi = $dbo->fetchArray('SELECT *, IFNULL((SELECT MIN(orario_inizio) FROM in_interventi_tecnici WHERE in_interventi_tecnici.idintervento = in_interventi.id), in_interventi.data_richiesta) AS data, in_statiintervento.descrizione AS stato, in_interventi.codice AS codice_intervento FROM in_interventi INNER JOIN in_statiintervento ON in_interventi.idstatointervento=in_statiintervento.idstatointervento WHERE in_statiintervento.completato=1 AND in_interventi.id NOT IN (SELECT idintervento FROM co_righe_documenti WHERE idintervento IS NOT NULL) AND in_interventi.id_preventivo IS NULL AND in_interventi.id NOT IN (SELECT idintervento FROM co_promemoria WHERE idintervento IS NOT NULL) AND in_interventi.id IN ('.implode(',', $id_records).')'); + $interventi = $dbo->fetchArray('SELECT *, IFNULL((SELECT MIN(orario_inizio) FROM in_interventi_tecnici WHERE in_interventi_tecnici.idintervento = in_interventi.id), in_interventi.data_richiesta) AS data, in_statiintervento.descrizione AS stato, in_interventi.codice AS codice_intervento FROM in_interventi INNER JOIN in_statiintervento ON in_interventi.idstatointervento=in_statiintervento.idstatointervento WHERE in_statiintervento.is_completato=1 AND in_interventi.id NOT IN (SELECT idintervento FROM co_righe_documenti WHERE idintervento IS NOT NULL) AND in_interventi.id_preventivo IS NULL AND in_interventi.id NOT IN (SELECT idintervento FROM co_promemoria WHERE idintervento IS NOT NULL) AND in_interventi.id IN ('.implode(',', $id_records).')'); // Lettura righe selezionate foreach ($interventi as $intervento) { diff --git a/modules/stati_intervento/actions.php b/modules/stati_intervento/actions.php index 98a92af73..96b817cb0 100755 --- a/modules/stati_intervento/actions.php +++ b/modules/stati_intervento/actions.php @@ -8,7 +8,8 @@ switch (post('op')) { 'codice' => post('codice'), 'descrizione' => post('descrizione'), 'colore' => post('colore'), - 'completato' => post('completato'), + 'is_completato' => post('is_completato'), + 'is_fatturabile' => post('is_fatturabile'), 'notifica' => post('notifica'), 'id_email' => post('email') ?: null, 'destinatari' => post('destinatari'), diff --git a/modules/stati_intervento/edit.php b/modules/stati_intervento/edit.php index 6e7d21e84..b5afdecd9 100755 --- a/modules/stati_intervento/edit.php +++ b/modules/stati_intervento/edit.php @@ -18,15 +18,19 @@ if ($record['can_delete']) { {[ "type": "text", "label": "", "name": "codice", "value": "$codice$", "extra": "" ]} -
+
{[ "type": "text", "label": "", "name": "descrizione", "required": 1, "value": "$descrizione$" ]}
- {[ "type": "checkbox", "label": "", "name": "completato", "value": "$completato$", "help": "", "placeholder": "", "extra": "" ]} + {[ "type": "checkbox", "label": "", "name": "is_completato", "value": "$is_completato$", "help": "", "placeholder": "", "extra": "" ]}
-
+
+ {[ "type": "checkbox", "label": "", "name": "is_fatturabile", "value": "$is_fatturabile$", "help": "", "placeholder": "", "extra": "" ]} +
+ +
{[ "type": "text", "label": "", "name": "colore", "required": 1, "class": "colorpicker text-center", "value": "$colore$", "extra": "maxlength='7'", "icon-after": "
" ]}
diff --git a/update/2_4_14.sql b/update/2_4_14.sql index 27f94b5dc..6abb0999d 100755 --- a/update/2_4_14.sql +++ b/update/2_4_14.sql @@ -450,5 +450,12 @@ UPDATE `zz_hooks` SET `name` = 'Aggiornamenti' WHERE `class` = 'Modules\\Aggiorn INSERT INTO `zz_prints` (`id_module`, `name`, `title`, `filename`, `directory`, `icon`, `options`, `predefined`, `previous`, `enabled`, `default`) VALUES ((SELECT `id` FROM `zz_modules` WHERE `name` = 'Articoli'), 'Barcode', 'Barcode', 'Barcode', 'barcode', 'fa fa-print', '{"width": 54, "height": 20, "format": [64, 55]}', 1, '', 1, 1); --- Disabilito modulo voci di servizio NON UTILIZZATO -UPDATE `zz_modules` SET `enabled` = '0' WHERE `zz_modules`.`name` = 'Voci di servizio'; \ No newline at end of file +-- Disabilito modulo voci di servizio INUTILIZZATO +UPDATE `zz_modules` SET `enabled` = '0' WHERE `zz_modules`.`name` = 'Voci di servizio'; + +ALTER TABLE `in_statiintervento` CHANGE `completato` `is_completato` TINYINT(1) NOT NULL; + +-- Aggiunto flag per stabilire se un intervento è fatturabile +ALTER TABLE `in_statiintervento` ADD `is_fatturabile` TINYINT(1) NOT NULL AFTER `is_completato` + +UPDATE `in_statiintervento` SET `is_fatturabile` = '1' WHERE `in_statiintervento`.`codice` = 'OK'; \ No newline at end of file