From 5aa795553bbbfc36cb533d4590f5c4d0a394de3e Mon Sep 17 00:00:00 2001 From: Thomas Zilio Date: Thu, 4 Jul 2019 21:03:33 +0200 Subject: [PATCH] Fix codice anagrafica --- modules/anagrafiche/src/Anagrafica.php | 31 +++++++++++++++++++++----- 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/modules/anagrafiche/src/Anagrafica.php b/modules/anagrafiche/src/Anagrafica.php index d13bc705a..19c1c12ee 100644 --- a/modules/anagrafiche/src/Anagrafica.php +++ b/modules/anagrafiche/src/Anagrafica.php @@ -45,11 +45,7 @@ class Anagrafica extends Model $model->nome = $nome; $model->cognome = $cognome; - $ultimo = database()->fetchOne('SELECT codice FROM an_anagrafiche WHERE codice != \'\' AND codice LIKE '.prepare(str_replace('#', '_', setting('Formato codice anagrafica'))).' AND deleted_at IS NULL ORDER BY codice DESC LIMIT 1'); - - $codice = Generator::generate(setting('Formato codice anagrafica'), $ultimo['codice']); - - $model->codice = $codice; + $model->codice = static::getNextCodice(); $model->id_ritenuta_acconto_vendite = setting("Percentuale ritenuta d'acconto"); $model->save(); @@ -107,7 +103,7 @@ class Anagrafica extends Model public static function fixTecnico(Anagrafica $anagrafica) { // Copio già le tariffe per le varie attività - $result = database()->query('INSERT INTO in_tariffe(idtecnico, idtipointervento, costo_ore, costo_km, costo_dirittochiamata, costo_ore_tecnico, costo_km_tecnico, costo_dirittochiamata_tecnico) SELECT '.prepare($model->id).', idtipointervento, costo_orario, costo_km, costo_diritto_chiamata, costo_orario_tecnico, costo_km_tecnico, costo_diritto_chiamata_tecnico FROM in_tipiintervento'); + $result = database()->query('INSERT INTO in_tariffe(idtecnico, idtipointervento, costo_ore, costo_km, costo_dirittochiamata, costo_ore_tecnico, costo_km_tecnico, costo_dirittochiamata_tecnico) SELECT '.prepare($anagrafica->id).', idtipointervento, costo_orario, costo_km, costo_diritto_chiamata, costo_orario_tecnico, costo_km_tecnico, costo_diritto_chiamata_tecnico FROM in_tipiintervento'); if (!$result) { flash()->error(tr("Errore durante l'importazione tariffe!")); @@ -244,4 +240,27 @@ class Anagrafica extends Model $this->ragione_sociale = $this->cognome.' '.$this->nome; } } + + // Metodi statici + + /** + * Calcola il nuovo codice di anagrafica. + * + * @return string + */ + public static function getNextCodice() + { + // Recupero maschera per le anagrafiche + $maschera = setting('Formato codice anagrafica'); + + $ultimo = Generator::getPreviousFrom($maschera, 'an_anagrafiche', 'codice', [ + "codice != ''", + //'deleted_at IS NULL', // Rimozione per unicità del codice + ]); + $codice = Generator::generate($maschera, $ultimo); + + return $codice; + } + + }