2019-05-29 19:17:57 +02:00
< ? php
2019-06-04 20:45:40 +02:00
2020-10-17 10:41:10 +02:00
$database = database ();
2019-07-08 12:24:59 +02:00
2020-09-23 11:47:59 +02:00
error_reporting ( E_ALL & ~ E_WARNING & ~ E_CORE_WARNING & ~ E_NOTICE & ~ E_USER_DEPRECATED & ~ E_STRICT );
2019-07-09 12:29:39 +02:00
// Fix del calcolo del bollo
2020-10-17 11:05:09 +02:00
$fatture = $database -> fetchArray ( 'SELECT id, bollo, split_payment FROM co_documenti' );
2019-05-18 21:14:18 +02:00
foreach ( $fatture as $fattura ) {
2020-10-17 11:05:09 +02:00
$bollo = $fattura [ 'bollo' ];
2020-10-17 10:41:10 +02:00
2020-10-17 11:05:09 +02:00
if ( empty ( $bollo )) {
if ( empty ( $fattura [ 'split_payment' ])) {
$totale = 'subtotale - sconto + iva + rivalsainps' ;
} else {
$totale = 'subtotale - sconto + rivalsainps' ;
}
$righe = $database -> fetchArray ( 'SELECT (' . $totale . ') AS netto FROM co_righe_documenti INNER JOIN co_iva ON co_iva.id = co_righe_documenti.idiva WHERE iddocumento = ' . prepare ( $fattura [ 'id' ]) . " AND codice_natura_fe IN ('N1', 'N2', 'N3', 'N4') " );
$totale = sum ( array_column ( $righe , 'netto' ));
$importo_bollo = setting ( 'Importo marca da bollo' );
if ( abs ( $importo_bollo ) > 0 && abs ( $totale ) > setting ( " Soglia minima per l'applicazione della marca da bollo " )) {
$bollo = $importo_bollo ;
}
}
$bollo = floatval ( $bollo );
2020-10-17 10:41:10 +02:00
if ( $bollo > 0 ) {
$fatture = $database -> query (
'insert into `co_righe_documenti` (`iddocumento`, `order`, `descrizione`, `um`, `idiva`, `idconto`, `calcolo_ritenuta_acconto`, `idritenutaacconto`, `ritenuta_contributi`, `idrivalsainps`, `prezzo_unitario_acquisto`, `sconto_unitario`, `tipo_sconto`, `qta`, `data_inizio_periodo`, `data_fine_periodo`, `riferimento_amministrazione`, `tipo_cessione_prestazione`, `ritenutaacconto`, `rivalsainps`, `subtotale`, `sconto`, `iva`, `desc_iva`, `iva_indetraibile`, `created_at`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' , [
2020-10-17 11:05:09 +02:00
0 => $fattura [ 'id' ],
2020-10-17 10:41:10 +02:00
1 => 0 ,
2 => 'Marca da bollo' ,
3 => null ,
4 => '110' ,
5 => '99' ,
6 => null ,
7 => null ,
8 => false ,
9 => null ,
10 => 0 ,
11 => 0.0 ,
12 => 'PRC' ,
13 => 1.0 ,
14 => null ,
15 => null ,
16 => '' ,
17 => '' ,
18 => 0.0 ,
19 => 0.0 ,
20 => $bollo ,
21 => 0.0 ,
22 => 0.0 ,
23 => 'Escluso art. 15' ,
24 => 0.0 ,
25 => '2020-10-17 10:00:00' ,
]);
$id_riga_bollo = $database -> lastInsertedId ();
2020-10-17 11:05:09 +02:00
$database -> query ( 'UPDATE co_documenti SET id_riga_bollo = ' . prepare ( $id_riga_bollo ) . ' WHERE id = ' . prepare ( $fattura [ 'id' ]));
2020-10-17 10:41:10 +02:00
}
2019-05-18 21:14:18 +02:00
}
2019-05-29 19:17:57 +02:00
2019-07-08 12:24:59 +02:00
// Fix per le relazioni tariffe-tecnici
2020-10-17 10:41:10 +02:00
$tecnici = $database -> fetchArray ( " SELECT DISTINCT(an_anagrafiche.idanagrafica) AS id FROM an_anagrafiche
INNER JOIN an_tipianagrafiche ON an_anagrafiche . idanagrafica = an_anagrafiche . idanagrafica
INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche . idtipoanagrafica = an_tipianagrafiche_anagrafiche . idtipoanagrafica
WHERE an_tipianagrafiche . descrizione = 'Tecnico' " );
2019-07-08 12:25:51 +02:00
foreach ( $tecnici as $tecnico ) {
2020-10-17 10:41:10 +02:00
$presenti = $database -> fetchArray ( 'SELECT idtipointervento AS id FROM in_tariffe WHERE idtecnico = ' . prepare ( $tecnico [ 'id' ]));
// Aggiunta associazioni costi unitari al contratto
$query = 'SELECT * FROM in_tipiintervento' ;
$elenco_presenti = array_column ( $presenti , 'id' );
if ( ! empty ( $elenco_presenti )) {
$query .= ' WHERE idtipointervento NOT IN (' . implode ( ', ' , $elenco_presenti ) . ')' ;
}
$tipi = $database -> fetchArray ( $query );
foreach ( $tipi as $tipo ) {
$database -> insert ( 'in_tariffe' , [
'idtecnico' => $tecnico [ 'id' ],
'idtipointervento' => $tipo [ 'id' ],
'costo_ore' => $tipo [ 'costo_orario' ],
'costo_km' => $tipo [ 'costo_km' ],
'costo_dirittochiamata' => $tipo [ 'costo_diritto_chiamata' ],
'costo_ore_tecnico' => $tipo [ 'costo_orario_tecnico' ],
'costo_km_tecnico' => $tipo [ 'costo_km_tecnico' ],
'costo_dirittochiamata_tecnico' => $tipo [ 'costo_diritto_chiamata_tecnico' ],
]);
}
2019-07-08 12:24:59 +02:00
}
2019-05-29 19:17:57 +02:00
// Spostamento automezzi su sedi
2020-10-17 10:41:10 +02:00
$automezzi = $database -> fetchArray ( 'SELECT * FROM dt_automezzi' );
2019-06-04 20:45:40 +02:00
foreach ( $automezzi as $automezzo ) {
2019-05-29 19:17:57 +02:00
$nomesede = [];
2019-06-04 20:45:40 +02:00
( ! empty ( $automezzo [ 'nome' ])) ? $nomesede [] = $automezzo [ 'nome' ] : null ;
( ! empty ( $automezzo [ 'descrizione' ])) ? $nomesede [] = $automezzo [ 'descrizione' ] : null ;
( ! empty ( $automezzo [ 'targa' ])) ? $nomesede [] = $automezzo [ 'targa' ] : null ;
2019-05-29 19:17:57 +02:00
2020-10-17 10:41:10 +02:00
$database -> insert (
2019-05-29 19:17:57 +02:00
'an_sedi' ,
[
2019-06-04 20:45:40 +02:00
'nomesede' => implode ( ' - ' , $nomesede ),
'idanagrafica' => setting ( 'Azienda predefinita' ),
2019-05-29 19:17:57 +02:00
]
);
2020-10-17 10:41:10 +02:00
$idsede = $database -> lastInsertedId ();
2019-06-04 20:45:40 +02:00
// Aggiornamento sede di partenza su
2020-10-17 10:41:10 +02:00
$database -> update (
2019-05-29 19:17:57 +02:00
'in_interventi' ,
[
'idsede_partenza' => $idsede ,
2019-06-04 20:45:40 +02:00
], [
'idautomezzo' => $automezzo [ 'id' ],
2019-05-29 19:17:57 +02:00
]
);
2019-06-04 20:45:40 +02:00
}
2019-05-29 19:17:57 +02:00
// Aggiornamento della sede azienda nei movimenti degli interventi
2020-10-17 10:41:10 +02:00
$database -> query ( 'UPDATE mg_movimenti SET idsede_azienda=(SELECT idsede_partenza FROM in_interventi WHERE in_interventi.id=mg_movimenti.idintervento) WHERE idintervento IS NOT NULL' );
2019-05-29 19:17:57 +02:00
// Cancellazione idautomezzo da mg_movimenti e in_interventi
2020-10-17 10:41:10 +02:00
$database -> query ( 'ALTER TABLE in_interventi DROP idautomezzo' );
$database -> query ( 'ALTER TABLE mg_movimenti DROP idautomezzo' );
$database -> query ( 'ALTER TABLE co_promemoria_articoli DROP idautomezzo' );
$database -> query ( 'ALTER TABLE co_righe_documenti DROP idautomezzo' );
$database -> query ( 'ALTER TABLE mg_articoli_interventi DROP idautomezzo' );
2019-05-29 19:17:57 +02:00
// Eliminazione tabelle degli automezzi non più usate
2020-10-17 10:41:10 +02:00
$database -> query ( 'DROP TABLE mg_articoli_automezzi' );
$database -> query ( 'DROP TABLE dt_automezzi' );
$database -> query ( 'DROP TABLE dt_automezzi_tecnici' );
$database -> query ( 'DELETE FROM zz_modules WHERE name="Automezzi"' );
2019-05-29 19:17:57 +02:00
2019-06-20 18:14:41 +02:00
//Rimuovo il codice come indice per in_interventi
2020-10-17 10:41:10 +02:00
$database -> query ( 'ALTER TABLE `in_interventi` DROP INDEX `codice`' );
2019-06-20 18:14:41 +02:00
2019-05-29 19:17:57 +02:00
// File e cartelle deprecate
$files = [
2019-07-10 17:22:39 +02:00
'modules\automezzi' ,
'modules\anagrafiche\plugins\statistiche.php' ,
'modules\interventi\src\TipoSessione.php' ,
'templates\registro_iva\body.php' ,
'templates\registro_iva\header.php' ,
'templates\scadenzario\scadenzario.html' ,
'templates\scadenzario\scadenzario_body.html' ,
'templates\scadenzario\pdfgen.scadenzario.php' ,
2019-05-29 19:17:57 +02:00
];
foreach ( $files as $key => $value ) {
2020-09-23 13:36:37 +02:00
$files [ $key ] = realpath ( base_dir () . '/' . $value );
2019-05-29 19:17:57 +02:00
}
2019-05-29 19:22:47 +02:00
delete ( $files );