From 182ab1113020cb654e485f5c431420211e80374b Mon Sep 17 00:00:00 2001 From: Thomas Zilio Date: Mon, 8 Jul 2019 16:45:00 +0200 Subject: [PATCH] Correzione primary key Interventi --- modules/interventi/src/Stato.php | 1 - modules/stati_intervento/actions.php | 6 ++-- modules/stati_intervento/add.php | 2 +- modules/stati_intervento/edit.php | 2 +- modules/tipi_intervento/actions.php | 22 ++++++++++--- modules/tipi_intervento/add.php | 48 ++++++++++++++++++++++++++-- modules/tipi_intervento/buttons.php | 4 +-- modules/tipi_intervento/edit.php | 12 +++---- modules/tipi_intervento/src/Tipo.php | 8 ++--- update/2_4_10.sql | 34 ++++++++++++++++++++ 10 files changed, 112 insertions(+), 27 deletions(-) diff --git a/modules/interventi/src/Stato.php b/modules/interventi/src/Stato.php index 78f11e27b..2dbc5c394 100644 --- a/modules/interventi/src/Stato.php +++ b/modules/interventi/src/Stato.php @@ -6,7 +6,6 @@ use Common\Model; class Stato extends Model { - public $incrementing = false; protected $primaryKey = 'idstatointervento'; protected $table = 'in_statiintervento'; diff --git a/modules/stati_intervento/actions.php b/modules/stati_intervento/actions.php index b86cb7851..5a8b03a84 100644 --- a/modules/stati_intervento/actions.php +++ b/modules/stati_intervento/actions.php @@ -18,7 +18,7 @@ switch (post('op')) { break; case 'add': - $idstatointervento = post('idstatointervento'); + $idstatointervento = post('codice'); $descrizione = post('descrizione'); $colore = post('colore'); @@ -26,9 +26,9 @@ switch (post('op')) { if (count($dbo->fetchArray('SELECT idstatointervento FROM in_statiintervento WHERE idstatointervento='.prepare($idstatointervento))) > 0) { flash()->error(tr('Stato di intervento già esistente.')); } else { - $query = 'INSERT INTO in_statiintervento(idstatointervento, descrizione, colore) VALUES ('.prepare($idstatointervento).', '.prepare($descrizione).', '.prepare($colore).')'; + $query = 'INSERT INTO in_statiintervento(codice, descrizione, colore) VALUES ('.prepare($idstatointervento).', '.prepare($descrizione).', '.prepare($colore).')'; $dbo->query($query); - $id_record = $idstatointervento; + $id_record = $database->lastInsertedID(); flash()->info(tr('Nuovo stato di intervento aggiunto.')); } diff --git a/modules/stati_intervento/add.php b/modules/stati_intervento/add.php index 0afcd7aa6..7ea0f964f 100644 --- a/modules/stati_intervento/add.php +++ b/modules/stati_intervento/add.php @@ -8,7 +8,7 @@ include_once __DIR__.'/../../core.php';
- {[ "type": "text", "label": "", "name": "idstatointervento", "maxlength": 10, "class": "alphanumeric-mask", "required": 1 ]} + {[ "type": "text", "label": "", "name": "codice", "maxlength": 10, "class": "alphanumeric-mask", "required": 1 ]}
diff --git a/modules/stati_intervento/edit.php b/modules/stati_intervento/edit.php index 416096a92..4ef154330 100644 --- a/modules/stati_intervento/edit.php +++ b/modules/stati_intervento/edit.php @@ -15,7 +15,7 @@ if ($record['can_delete']) {
- {[ "type": "span", "label": "", "name": "idstatointervento", "value": "$idstatointervento$" ]} + {[ "type": "span", "label": "", "name": "codice", "value": "$codice$" ]}
diff --git a/modules/tipi_intervento/actions.php b/modules/tipi_intervento/actions.php index a49799be9..dceff6021 100644 --- a/modules/tipi_intervento/actions.php +++ b/modules/tipi_intervento/actions.php @@ -7,13 +7,14 @@ include_once __DIR__.'/../../core.php'; switch (post('op')) { case 'update': $tipo->descrizione = post('descrizione'); + $tipo->tempo_standard = post('tempo_standard'); + $tipo->costo_orario = post('costo_orario'); $tipo->costo_km = post('costo_km'); $tipo->costo_diritto_chiamata = post('costo_diritto_chiamata'); $tipo->costo_orario_tecnico = post('costo_orario_tecnico'); $tipo->costo_km_tecnico = post('costo_km_tecnico'); $tipo->costo_diritto_chiamata_tecnico = post('costo_diritto_chiamata_tecnico'); - $tipo->tempo_standard = post('tempo_standard'); $tipo->save(); @@ -22,11 +23,24 @@ switch (post('op')) { break; case 'add': - $idtipointervento = post('idtipointervento'); + $codice = post('codice'); $descrizione = post('descrizione'); - $tempo_standard = post('tempo_standard'); - $tipo = Tipo::build($idtipointervento, $descrizione, $tempo_standard); + $tipo = Tipo::build($codice, $descrizione); + + $tipo->tempo_standard = post('tempo_standard'); + + $tipo->costo_orario = post('costo_orario'); + $tipo->costo_km = post('costo_km'); + $tipo->costo_diritto_chiamata = post('costo_diritto_chiamata'); + $tipo->costo_orario_tecnico = post('costo_orario_tecnico'); + $tipo->costo_km_tecnico = post('costo_km_tecnico'); + $tipo->costo_diritto_chiamata_tecnico = post('costo_diritto_chiamata_tecnico'); + + $tipo->save(); + + // Fix per impostare i valori inziali a tutti i tecnici + $tipo->fixTecnici(); $id_record = $tipo->id; diff --git a/modules/tipi_intervento/add.php b/modules/tipi_intervento/add.php index ce1c0b4d6..f960d519c 100644 --- a/modules/tipi_intervento/add.php +++ b/modules/tipi_intervento/add.php @@ -7,9 +7,8 @@ include_once __DIR__.'/../../core.php';
-
- {[ "type": "text", "label": "", "name": "idtipointervento", "maxlength": 10, "class": "alphanumeric-mask", "required": 1 ]} + {[ "type": "text", "label": "", "name": "codice", "maxlength": 10, "class": "alphanumeric-mask", "required": 1 ]}
@@ -19,9 +18,52 @@ include_once __DIR__.'/../../core.php';
{[ "type": "number", "label": "", "name": "tempo_standard", "help": "Esempi:
  • 60 minuti = 1 ora
  • 30 minuti = 0,5 ore
  • 15 minuti = 0,25 ore
'); ?>", "maxlength": 5, "min-value": "0", "max-value": "24", "class": "text-center", "value": "$tempo_standard$", "icon-after": "ore" ]}
-
+
+
+

+
+ +
+
+
+ {[ "type": "number", "label": "", "name": "costo_orario", "required": 1, "value": "$costo_orario$", "icon-after": "" ]} +
+ +
+ {[ "type": "number", "label": "", "name": "costo_km", "required": 1, "value": "$costo_km$", "icon-after": "" ]} +
+ +
+ {[ "type": "number", "label": "", "name": "costo_diritto_chiamata", "required": 1, "value": "$costo_diritto_chiamata$", "icon-after": "" ]} +
+
+
+
+ +
+
+

+
+ +
+
+
+ {[ "type": "number", "label": "", "name": "costo_orario_tecnico", "required": 1, "value": "$costo_orario_tecnico$", "icon-after": "" ]} +
+ +
+ {[ "type": "number", "label": "", "name": "costo_km_tecnico", "required_tecnico": 1, "value": "$costo_km_tecnico$", "icon-after": "" ]} +
+ +
+ {[ "type": "number", "label": "", "name": "costo_diritto_chiamata_tecnico", "required": 1, "value": "$costo_diritto_chiamata_tecnico$", "icon-after": "" ]} +
+
+
+
+
diff --git a/modules/tipi_intervento/buttons.php b/modules/tipi_intervento/buttons.php index e24622eb9..1459f698b 100644 --- a/modules/tipi_intervento/buttons.php +++ b/modules/tipi_intervento/buttons.php @@ -1,6 +1,6 @@ - '.tr('Imposta per tutti i tecnici').' + + '.tr('Applica a tutti i tecnici').' '; diff --git a/modules/tipi_intervento/edit.php b/modules/tipi_intervento/edit.php index 48dda198c..6bd32a50f 100644 --- a/modules/tipi_intervento/edit.php +++ b/modules/tipi_intervento/edit.php @@ -9,7 +9,7 @@ include_once __DIR__.'/../../core.php';
- {[ "type": "span", "label": "", "name": "idtipointervento", "value": "$idtipointervento$" ]} + {[ "type": "span", "label": "", "name": "codice", "value": "$codice$" ]}
@@ -68,10 +68,6 @@ include_once __DIR__.'/../../core.php';
- - - - fetchArray('SELECT COUNT(*) AS tot_interventi FROM in_interventi WHERE idtipointervento='.prepare($id_record)); @@ -83,6 +79,10 @@ if ($tot_interventi > 0) { '.tr('Ci sono _NUM_ interventi collegati', [ '_NUM_' => $tot_interventi, ]).'. - '.tr('Eliminando questo tipo di attività, vengono rimossi anche gli interventi collegati!').'
'; +} else { + echo ' + + '.tr('Elimina').' +'; } diff --git a/modules/tipi_intervento/src/Tipo.php b/modules/tipi_intervento/src/Tipo.php index 6ce9cd5d5..efca528b8 100644 --- a/modules/tipi_intervento/src/Tipo.php +++ b/modules/tipi_intervento/src/Tipo.php @@ -7,7 +7,6 @@ use Modules\Anagrafiche\Anagrafica; class Tipo extends Model { - public $incrementing = false; protected $table = 'in_tipiintervento'; protected $primaryKey = 'idtipointervento'; @@ -20,19 +19,16 @@ class Tipo extends Model * * @return self */ - public static function build($codice, $descrizione, $tempo_standard = null) + public static function build($codice, $descrizione) { $model = parent::build(); - $model->idtipointervento = $codice; + $model->codice = $codice; $model->descrizione = $descrizione; - $model->tempo_standard = $tempo_standard; // Salvataggio delle informazioni $model->save(); - $model->fixTecnici(); - return $model; } diff --git a/update/2_4_10.sql b/update/2_4_10.sql index 1b43e0bc4..eb15f8d54 100644 --- a/update/2_4_10.sql +++ b/update/2_4_10.sql @@ -151,3 +151,37 @@ INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, ((SELECT `id` FROM `zz_modules` WHERE `name` = 'Tecnici e tariffe'), '_bg_', 'colore', 3, 1, 0, 0, 0), ((SELECT `id` FROM `zz_modules` WHERE `name` = 'Tecnici e tariffe'), 'Nome', 'ragione_sociale', 2, 1, 0, 0, 1), ((SELECT `id` FROM `zz_modules` WHERE `name` = 'Tecnici e tariffe'), 'id', 'idanagrafica', 1, 1, 0, 0, 0); + +-- Correzione primary key +ALTER TABLE `in_interventi` DROP FOREIGN KEY `in_interventi_ibfk_2`; +ALTER TABLE `in_tipiintervento` DROP PRIMARY KEY; +ALTER TABLE `in_tipiintervento` CHANGE `idtipointervento` `codice` VARCHAR(25) NOT NULL, ADD `idtipointervento` INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT; + +UPDATE `in_interventi` INNER JOIN `in_tipiintervento` ON `in_interventi`.`idtipointervento` = `in_tipiintervento`.`codice` SET `in_interventi`.`idtipointervento` = `in_tipiintervento`.`idtipointervento`; +ALTER TABLE `in_interventi` CHANGE `idtipointervento` `idtipointervento` INT(11) NOT NULL, ADD FOREIGN KEY (`idtipointervento`) REFERENCES `in_tipiintervento`(`idtipointervento`); + +ALTER TABLE `in_statiintervento` DROP PRIMARY KEY; +ALTER TABLE `in_statiintervento` CHANGE `idstatointervento` `codice` VARCHAR(25) NOT NULL, ADD `idstatointervento` INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT; + +UPDATE `in_interventi` INNER JOIN `in_statiintervento` ON `in_interventi`.`idstatointervento` = `in_statiintervento`.`codice` SET `in_interventi`.`idstatointervento` = `in_statiintervento`.`idstatointervento`; +ALTER TABLE `in_interventi` CHANGE `idstatointervento` `idstatointervento` INT(11) NOT NULL, ADD FOREIGN KEY (`idstatointervento`) REFERENCES `in_statiintervento`(`idstatointervento`); + +UPDATE `an_anagrafiche` INNER JOIN `in_tipiintervento` ON `an_anagrafiche`.`idtipointervento_default` = `in_tipiintervento`.`codice` SET `an_anagrafiche`.`idtipointervento_default` = `in_tipiintervento`.`idtipointervento`; +ALTER TABLE `an_anagrafiche` CHANGE `idtipointervento_default` `idtipointervento_default` varchar(25); +UPDATE `an_anagrafiche` SET `idtipointervento_default` = NULL WHERE `idtipointervento_default` NOT IN (SELECT `idtipointervento` FROM `in_tipiintervento`); +ALTER TABLE `an_anagrafiche` CHANGE `idtipointervento_default` `idtipointervento_default` INT(11), ADD FOREIGN KEY (`idtipointervento_default`) REFERENCES `in_tipiintervento`(`idtipointervento`); + +UPDATE `co_contratti_tipiintervento` INNER JOIN `in_tipiintervento` ON `co_contratti_tipiintervento`.`idtipointervento` = `in_tipiintervento`.`codice` SET `co_contratti_tipiintervento`.`idtipointervento` = `in_tipiintervento`.`idtipointervento`; +ALTER TABLE `co_contratti_tipiintervento` CHANGE `idtipointervento` `idtipointervento` INT(11) NOT NULL, ADD FOREIGN KEY (`idtipointervento`) REFERENCES `in_tipiintervento`(`idtipointervento`); + +UPDATE `co_preventivi` INNER JOIN `in_tipiintervento` ON `co_preventivi`.`idtipointervento` = `in_tipiintervento`.`codice` SET `co_preventivi`.`idtipointervento` = `in_tipiintervento`.`idtipointervento`; +ALTER TABLE `co_preventivi` CHANGE `idtipointervento` `idtipointervento` INT(11) NOT NULL, ADD FOREIGN KEY (`idtipointervento`) REFERENCES `in_tipiintervento`(`idtipointervento`); + +UPDATE `co_promemoria` INNER JOIN `in_tipiintervento` ON `co_promemoria`.`idtipointervento` = `in_tipiintervento`.`codice` SET `co_promemoria`.`idtipointervento` = `in_tipiintervento`.`idtipointervento`; +ALTER TABLE `co_promemoria` CHANGE `idtipointervento` `idtipointervento` INT(11) NOT NULL, ADD FOREIGN KEY (`idtipointervento`) REFERENCES `in_tipiintervento`(`idtipointervento`); + +UPDATE `in_interventi_tecnici` INNER JOIN `in_tipiintervento` ON `in_interventi_tecnici`.`idtipointervento` = `in_tipiintervento`.`codice` SET `in_interventi_tecnici`.`idtipointervento` = `in_tipiintervento`.`idtipointervento`; +ALTER TABLE `in_interventi_tecnici` CHANGE `idtipointervento` `idtipointervento` INT(11) NOT NULL, ADD FOREIGN KEY (`idtipointervento`) REFERENCES `in_tipiintervento`(`idtipointervento`); + +UPDATE `in_tariffe` INNER JOIN `in_tipiintervento` ON `in_tariffe`.`idtipointervento` = `in_tipiintervento`.`codice` SET `in_tariffe`.`idtipointervento` = `in_tipiintervento`.`idtipointervento`; +ALTER TABLE `in_tariffe` CHANGE `idtipointervento` `idtipointervento` INT(11) NOT NULL, ADD FOREIGN KEY (`idtipointervento`) REFERENCES `in_tipiintervento`(`idtipointervento`);