2017-08-04 16:28:16 +02:00
< ? php
include_once __DIR__ . '/../../core.php' ;
// Necessaria per la funzione add_movimento_magazzino
2018-06-26 09:41:43 +02:00
include_once Modules :: filepath ( 'Articoli' , 'modutil.php' );
2017-08-04 16:28:16 +02:00
switch ( post ( 'op' )) {
case 'update' :
$targa = post ( 'targa' );
$nome = post ( 'nome' );
$descrizione = post ( 'descrizione' );
if ( $dbo -> fetchNum ( 'SELECT targa FROM dt_automezzi WHERE targa=' . prepare ( $targa ) . ' AND NOT id=' . prepare ( $id_record )) == 0 ) {
$query = 'UPDATE dt_automezzi SET targa=' . prepare ( $targa ) . ', descrizione=' . prepare ( $descrizione ) . ', nome=' . prepare ( $nome ) . ' WHERE id=' . prepare ( $id_record );
if ( $dbo -> query ( $query )) {
2018-07-07 13:56:22 +02:00
App :: flash () -> info ( tr ( 'Informazioni salvate correttamente!' ));
2017-08-04 16:28:16 +02:00
}
} else {
2018-07-07 13:56:22 +02:00
App :: flash () -> error ( tr ( 'Esiste già un automezzo con questa targa!' ));
2017-08-04 16:28:16 +02:00
}
break ;
// Aggiunta automezzo
case 'add' :
$targa = post ( 'targa' );
$nome = post ( 'nome' );
// Inserisco l'automezzo solo se non esiste un altro articolo con stesso targa
if ( $dbo -> fetchNum ( 'SELECT targa FROM dt_automezzi WHERE targa=' . prepare ( $targa )) == 0 ) {
$query = 'INSERT INTO dt_automezzi(targa, nome) VALUES (' . prepare ( $targa ) . ', ' . prepare ( $nome ) . ')' ;
$dbo -> query ( $query );
$id_record = $dbo -> lastInsertedID ();
2018-07-07 13:56:22 +02:00
App :: flash () -> info ( tr ( 'Aggiunto un nuovo automezzo!' ));
2017-08-04 16:28:16 +02:00
} else {
2018-07-07 13:56:22 +02:00
App :: flash () -> error ( tr ( 'Esiste già un automezzo con questa targa!' ));
2017-08-04 16:28:16 +02:00
}
break ;
// Aggiunta tecnico
case 'addtech' :
$idtecnico = post ( 'idtecnico' );
$data_inizio = post ( 'data_inizio' );
$data_fine = null ;
// Controllo sull'effettivo inserimento di una data di fine successiva a quella di inizio
if ( ! empty ( $post [ 'data_fine' ])) {
2017-09-19 16:20:44 +02:00
if ( new DateTime ( post ( 'data_fine' )) >= new DateTime ( $data_inizio )) {
2017-08-04 16:28:16 +02:00
$data_fine = post ( 'data_fine' );
}
}
$data_fine = isset ( $data_fine ) ? $data_fine : '0000-00-00' ;
// Inserisco il tecnico
$query = 'INSERT INTO dt_automezzi_tecnici(idtecnico, idautomezzo, data_inizio, data_fine) VALUES (' . prepare ( $idtecnico ) . ', ' . prepare ( $id_record ) . ', ' . prepare ( $data_inizio ) . ', ' . prepare ( $data_fine ) . ')' ;
$dbo -> query ( $query );
2018-07-07 13:56:22 +02:00
App :: flash () -> info ( tr ( 'Collegato un nuovo tecnico!' ));
2017-08-04 16:28:16 +02:00
break ;
// Salvataggio tecnici collegati
case 'savetech' :
$errors = 0 ;
foreach ( post ( 'data_inizio' ) as $idautomezzotecnico => $data ) {
$idautomezzotecnico = $idautomezzotecnico ;
$data_inizio = post ( 'data_inizio' )[ $idautomezzotecnico ];
$data_fine = null ;
// Controllo sull'effettivo inserimento di una data di fine successiva a quella di inizio
if ( ! empty ( $post [ 'data_fine' ][ $idautomezzotecnico ])) {
2017-09-19 16:20:44 +02:00
if ( new DateTime ( post ( 'data_fine' )[ $idautomezzotecnico ]) >= new DateTime ( $data_inizio )) {
2017-08-04 16:28:16 +02:00
$data_fine = post ( 'data_fine' )[ $idautomezzotecnico ];
}
}
$data_fine = isset ( $data_fine ) ? $data_fine : '0000-00-00' ;
$query = 'UPDATE dt_automezzi_tecnici SET data_inizio=' . prepare ( $data_inizio ) . ', data_fine=' . prepare ( $data_fine ) . ' WHERE id=' . prepare ( $idautomezzotecnico );
if ( ! $dbo -> query ( $query )) {
++ $errors ;
}
}
if ( $errors == 0 ) {
2018-07-07 13:56:22 +02:00
App :: flash () -> info ( tr ( 'Informazioni salvate correttamente!' ));
2017-08-04 16:28:16 +02:00
} else {
2018-07-07 13:56:22 +02:00
App :: flash () -> error ( tr ( 'Errore durante il salvataggio del tecnico!' ));
2017-08-04 16:28:16 +02:00
}
break ;
// Eliminazione associazione con tecnico
case 'deltech' :
$idautomezzotecnico = post ( 'id' );
$query = 'DELETE FROM dt_automezzi_tecnici WHERE id=' . prepare ( $idautomezzotecnico );
if ( $dbo -> query ( $query )) {
2018-07-07 13:56:22 +02:00
App :: flash () -> info ( tr ( 'Tecnico rimosso!' ));
2017-08-04 16:28:16 +02:00
}
break ;
// Aggiunta quantità nell'automezzo
case 'addrow' :
$idarticolo = post ( 'idarticolo' );
$qta = post ( 'qta' );
2018-02-18 19:53:23 +01:00
$rs = $dbo -> fetchArray ( 'SELECT id, qta FROM mg_articoli_automezzi WHERE idarticolo=' . prepare ( $idarticolo ) . ' AND idautomezzo=' . prepare ( $id_record ));
2017-08-04 16:28:16 +02:00
2017-09-18 18:50:37 +02:00
// Se nell'automezzo non c'è già questo articolo inserisco la scorta nell'automezzo da zero
if ( empty ( $rs )) {
$dbo -> query ( 'INSERT INTO mg_articoli_automezzi(idarticolo, idautomezzo, qta) VALUES (' . prepare ( $idarticolo ) . ', ' . prepare ( $id_record ) . ', 0)' );
2017-08-04 16:28:16 +02:00
}
2017-09-18 18:50:37 +02:00
// Decremento la quantità dal magazzino centrale
add_movimento_magazzino ( $idarticolo , - $qta , [ 'idautomezzo' => $id_record ]);
2018-07-07 13:56:22 +02:00
App :: flash () -> info ( tr ( " Caricato il magazzino dell'automezzo! " ));
2017-08-04 16:28:16 +02:00
break ;
// Spostamento scorta da automezzo a magazzino generale
case 'moverow' :
$idautomezzotecnico = post ( 'idautomezzotecnico' );
// Leggo la quantità del lotto
$rs = $dbo -> fetchArray ( 'SELECT qta, idarticolo FROM mg_articoli_automezzi WHERE id=' . prepare ( $idautomezzotecnico ));
if ( ! empty ( $rs )) {
// Elimino l'articolo dall'automezzo
$dbo -> query ( 'DELETE FROM mg_articoli_automezzi WHERE id=' . prepare ( $idautomezzotecnico ));
// Aggiungo la quantità al magazzino
add_movimento_magazzino ( $rs [ 0 ][ 'idarticolo' ], $rs [ 0 ][ 'qta' ], [ 'idautomezzo' => $id_record ]);
2018-07-07 13:56:22 +02:00
App :: flash () -> info ( tr ( 'Articoli riportati nel magazzino centrale!' ));
2017-08-04 16:28:16 +02:00
}
break ;
case 'delete' :
// per ogni articolo caricato in questo automezzo
$rs = $dbo -> fetchArray ( 'SELECT qta, idarticolo FROM mg_articoli_automezzi WHERE idautomezzo=' . prepare ( $id_record ));
for ( $i = 0 ; $i < sizeof ( $rs ); ++ $i ) {
// Ripristino la quantità nel magazzino centrale
add_movimento_magazzino ( $rs [ $i ][ 'idarticolo' ], + $rs [ $i ][ 'qta' ], [ 'idautomezzo' => $id_record ]);
}
// Elimino tutti gli articoli dall'automezzo
$dbo -> query ( 'DELETE FROM mg_articoli_automezzi WHERE idautomezzo=' . prepare ( $id_record ));
// Elimino definitivamente l'automezzo
$dbo -> query ( 'DELETE FROM dt_automezzi WHERE id=' . prepare ( $id_record ));
2018-07-07 13:56:22 +02:00
App :: flash () -> info ( tr ( 'Automezzo eliminato e articoli riportati in magazzino!' ));
2017-08-04 16:28:16 +02:00
break ;
}