2023-11-30 12:57:03 +01:00
< ? php
include_once __DIR__ . '/../../core.php' ;
use Carbon\Carbon ;
use Modules\Articoli\Articolo ;
switch ( post ( 'op' )) {
case 'update' :
$targa = post ( 'targa' );
$nome = post ( 'nome' );
$descrizione = post ( 'descrizione' );
if ( $dbo -> fetchNum ( 'SELECT targa FROM an_sedi WHERE targa=' . prepare ( $targa ) . ' AND NOT id=' . prepare ( $id_record )) == 0 ) {
$query = 'UPDATE an_sedi SET targa=' . prepare ( $targa ) . ', descrizione=' . prepare ( $descrizione ) . ', nome=' . prepare ( $nome ) . ' WHERE id=' . prepare ( $id_record );
if ( $dbo -> query ( $query )) {
flash () -> info ( tr ( 'Informazioni salvate correttamente!' ));
}
} else {
flash () -> error ( tr ( 'Esiste già un automezzo con questa targa!' ));
}
break ;
2024-01-15 15:30:45 +01:00
// Aggiunta automezzo
2023-11-30 12:57:03 +01:00
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 an_sedi WHERE targa=' . prepare ( $targa )) == 0 ) {
$dbo -> insert ( 'an_sedi' , [
'idanagrafica' => setting ( 'Azienda predefinita' ),
2023-12-01 17:21:47 +01:00
'nomesede' => $nome . ' - ' . $targa ,
2023-11-30 12:57:03 +01:00
'is_automezzo' => 1 ,
'targa' => $targa ,
'nome' => $nome ,
]);
$id_record = $dbo -> lastInsertedID ();
flash () -> info ( tr ( 'Aggiunto un nuovo automezzo!' ));
} else {
flash () -> error ( tr ( 'Esiste già un automezzo con questa targa!' ));
}
break ;
2024-01-15 15:30:45 +01:00
// Aggiunta tecnico
2023-11-30 12:57:03 +01:00
case 'addtech' :
$idtecnico = post ( 'idtecnico' );
$data_inizio = post ( 'data_inizio' );
2024-04-10 16:12:02 +02:00
$data_fine = post ( 'data_fine' );
2023-11-30 12:57:03 +01:00
// Controllo sull'effettivo inserimento di una data di fine successiva a quella di inizio
2024-04-10 16:12:02 +02:00
if ( ! empty ( $data_fine )) {
2023-11-30 12:57:03 +01:00
if ( new DateTime ( post ( 'data_fine' )) >= new DateTime ( $data_inizio )) {
$data_fine = post ( 'data_fine' );
}
}
2024-04-08 15:44:33 +02:00
$data_fine ? ? = '0000-00-00' ;
2023-11-30 12:57:03 +01:00
// Inserisco il tecnico
2023-12-01 17:21:47 +01:00
$dbo -> insert ( 'an_sedi_tecnici' , [
2023-11-30 12:57:03 +01:00
'idtecnico' => $idtecnico ,
'idsede' => $id_record ,
'data_inizio' => $data_inizio ,
'data_fine' => $data_fine ,
]);
flash () -> info ( tr ( 'Collegato un nuovo tecnico!' ));
break ;
2024-01-15 15:30:45 +01:00
// Salvataggio tecnici collegati
2023-11-30 12:57:03 +01:00
case 'savetech' :
$errors = 0 ;
foreach ( post ( 'data_inizio' ) as $idautomezzotecnico => $data ) {
2024-04-10 16:12:02 +02:00
$idtecnico = post ( 'idtecnico' )[ $idautomezzotecnico ];
2023-11-30 12:57:03 +01:00
$data_inizio = post ( 'data_inizio' )[ $idautomezzotecnico ];
2024-04-10 16:12:02 +02:00
$data_fine = post ( 'data_fine' )[ $idautomezzotecnico ];
2023-11-30 12:57:03 +01:00
// Controllo sull'effettivo inserimento di una data di fine successiva a quella di inizio
2024-04-10 16:12:02 +02:00
if ( ! empty ( $data_fine )) {
if ( new DateTime ( $data_fine ) < new DateTime ( $data_inizio )) {
$data_fine = null ;
2023-11-30 12:57:03 +01:00
}
}
2024-04-08 15:44:33 +02:00
$data_fine ? ? = '0000-00-00' ;
2023-11-30 12:57:03 +01:00
2023-12-01 17:21:47 +01:00
$dbo -> update ( 'an_sedi_tecnici' , [
2023-11-30 12:57:03 +01:00
'idtecnico' => $idtecnico ,
'idsede' => $id_record ,
'data_inizio' => $data_inizio ,
'data_fine' => $data_fine ,
2023-12-01 17:21:47 +01:00
], [ 'id' => $idautomezzotecnico ]);
2023-11-30 12:57:03 +01:00
if ( ! $dbo -> query ( $query )) {
++ $errors ;
}
}
if ( $errors == 0 ) {
flash () -> info ( tr ( 'Informazioni salvate correttamente!' ));
} else {
flash () -> error ( tr ( 'Errore durante il salvataggio del tecnico!' ));
}
break ;
2024-01-15 15:30:45 +01:00
// Eliminazione associazione con tecnico
2023-11-30 12:57:03 +01:00
case 'deltech' :
$idautomezzotecnico = post ( 'id' );
$query = 'DELETE FROM an_sedi_tecnici WHERE id=' . prepare ( $idautomezzotecnico );
if ( $dbo -> query ( $query )) {
flash () -> info ( tr ( 'Tecnico rimosso!' ));
}
break ;
2024-01-15 15:30:45 +01:00
// Aggiunta quantità nell'automezzo
2023-11-30 12:57:03 +01:00
case 'addrow' :
$idarticolo = post ( 'idarticolo' );
$qta = post ( 'qta' );
$articolo = Articolo :: find ( $idarticolo );
2023-12-01 17:21:47 +01:00
$automezzo = $dbo -> table ( 'an_sedi' ) -> where ( 'id' , $id_record ) -> first ();
2023-11-30 12:57:03 +01:00
// Registrazione del movimento verso la sede di destinazione
2023-12-01 17:21:47 +01:00
$articolo -> registra ( $qta , tr ( 'Carico dal magazzino sull\'automezzo _SEDE_' , [ '_SEDE_' => $automezzo -> nomesede ]), Carbon :: now (), 1 , [
2023-11-30 12:57:03 +01:00
'idsede' => $id_record ,
]);
// Registrazione del movimento dalla sede di origine
2023-12-01 17:21:47 +01:00
$articolo -> registra ( - $qta , tr ( 'Scarico nel magazzino dall\'automezzo _SEDE_' , [ '_SEDE_' => $automezzo -> nomesede ]), Carbon :: now (), 1 , [
2023-11-30 12:57:03 +01:00
'idsede' => 0 ,
]);
flash () -> info ( tr ( " Caricato il magazzino dell'automezzo! " ));
break ;
case 'editrow' :
$idarticolo = post ( 'idarticolo' );
$articolo = Articolo :: find ( $idarticolo );
2023-12-01 17:21:47 +01:00
$automezzo = $dbo -> table ( 'an_sedi' ) -> where ( 'id' , $id_record ) -> first ();
2023-11-30 12:57:03 +01:00
2023-12-01 17:21:47 +01:00
$qta = post ( 'qta' ) - $dbo -> fetchOne ( 'SELECT SUM(mg_movimenti.qta) AS qta FROM mg_movimenti WHERE mg_movimenti.idarticolo=' . prepare ( $idarticolo ) . ' AND mg_movimenti.idsede=' . prepare ( $id_record ))[ 'qta' ];
2023-11-30 12:57:03 +01:00
// Registrazione del movimento verso la sede di destinazione
2023-12-01 17:21:47 +01:00
$articolo -> registra ( $qta , tr ( 'Carico dal magazzino sull\'automezzo _SEDE_' , [ '_SEDE_' => $automezzo -> nomesede ]), Carbon :: now (), 1 , [
2023-11-30 12:57:03 +01:00
'idsede' => $id_record ,
]);
// Registrazione del movimento dalla sede di origine
2023-12-01 17:21:47 +01:00
$articolo -> registra ( - $qta , tr ( 'Scarico nel magazzino dall\'automezzo _SEDE_' , [ '_SEDE_' => $automezzo -> nomesede ]), Carbon :: now (), 1 , [
2023-11-30 12:57:03 +01:00
'idsede' => 0 ,
]);
flash () -> info ( tr ( " Caricato il magazzino dell'automezzo! " ));
break ;
2024-01-15 15:30:45 +01:00
// Spostamento scorta da automezzo a magazzino generale
2023-11-30 12:57:03 +01:00
case 'moverow' :
$idarticolo = post ( 'idarticolo' );
$idautomezzotecnico = post ( 'idautomezzotecnico' );
$articolo = Articolo :: find ( $idarticolo );
2023-12-01 17:21:47 +01:00
$automezzo = $dbo -> table ( 'an_sedi' ) -> where ( 'id' , $idautomezzotecnico ) -> first ();
$qta = $dbo -> fetchOne ( 'SELECT SUM(qta) AS qta FROM mg_movimenti WHERE idarticolo=' . prepare ( $idarticolo ) . ' AND idsede=' . prepare ( $idautomezzotecnico ))[ 'qta' ];
2023-11-30 12:57:03 +01:00
// Registrazione del movimento verso la sede di destinazione
2023-12-01 17:21:47 +01:00
$articolo -> registra ( $qta , tr ( 'Carico nel magazzino dall\'automezzo _SEDE_' , [ '_SEDE_' => $automezzo -> nomesede ]), Carbon :: now (), 1 , [
2023-11-30 12:57:03 +01:00
'idsede' => 0 ,
]);
// Registrazione del movimento dalla sede di origine
2023-12-01 17:21:47 +01:00
$descrizione = tr ( 'Scarico dall\'automezzo _SEDE_ nel magazzino' , [
'_SEDE_' => $automezzo -> nomesede ,
2023-11-30 12:57:03 +01:00
]);
$articolo -> registra ( - $qta , $descrizione , Carbon :: now (), 1 , [
'idsede' => $idautomezzotecnico ,
]);
break ;
case 'delete' :
$dbo -> query ( 'DELETE FROM `an_sedi` WHERE `id`=' . prepare ( $id_record ));
flash () -> info ( tr ( 'Automezzo eliminato e articoli riportati in magazzino!' ));
break ;
}