HI i have this code :
Code:
public function macchineSulCamionDocumentoPartenza($id_documento_partenza)
{
$uscita_temp_model = new Uscita_tempModel();
$movimenti_magazzino_model = new Movimenti_magazzinoModel();
$macchina_model = new MacchinaModel();
$lista_macchine_documento = $macchina_model->where('id_documento_partenza',$id_documento_partenza)
->findAll();
//creo un array per mettere gli id delle macchine
$array_id_macchine = [];
//PRIMA CONTROLLO CHE TUTTE LE MACCHINE SIANO STATE INSERITE NEL MAGAZZINO USCITA
foreach($lista_macchine_documento as $row){
$macchina_uscita = $uscita_temp_model->where('id_macchina',$row->id)
->first();
if(!$macchina_uscita){
$data['messaggi_errore'] = 'Non tutte le macchine sono nel magazzino di uscita ';
$data ['redirect'] =base_url()."user_Documento_partenza/visualizzaMacchineDocumento/".$id_documento_partenza;
echo view('common/messaggi_errore',$data );
}
$array_id_macchine [] = $row->id;
}
//debug
//echo 'Macchine tutte in uscita';
//die();
$db = \Config\Database::connect();
$db->transStart();
//Inserisco i movimenti nel magazzino
//ogni macchina la metto sul camion
$lista_macchine_in_uscita = $uscita_temp_model->whereIn('id_macchina',$array_id_macchine)
->findAll();
//dd($array_id_macchine);
foreach($lista_macchine_in_uscita as $row){
$id_macchina = $row->id_macchina;
$data_insert_movimenti = [
'id_tipo_movimentazione'=>14,
'id_macchina' => $id_macchina,
];
// Inserts data and returns inserted row's primary key
$movimenti_magazzino_model->insert($data_insert_movimenti);
log_message('debug',$movimenti_magazzino_model ->getLastQuery());
}
//end movimenti nel magazzino
//modifico il magazzino uscita temp
$data_update_uscita_temp = [
'macchina_presente' => 0,
'data_partenza' => date('Y-m-d'),
];
$uscita_temp_model->where('id_documento_partenza',$id_documento_partenza)
->set($data_update_uscita_temp)
->update();
//end modifica magazzino uscita temp
//echo $uscita_temp_model ->getLastQuery();
//die();
if($db->transStatus()!==false) {
log_message('debug',$uscita_temp_model ->getLastQuery());
session()->setFlashdata('gestisciRecordOK', 'Macchine spostate correttamente da magazzino uscita a SPEDITE |'.$uscita_temp_model ->getLastQuery().'|'.$movimenti_magazzino_model ->getLastQuery());
return redirect()->to('user_Documento_partenza/visualizzaMacchineDocumento/'.$id_documento_partenza);
}else{
session()->setFlashdata('gestisciRecordBad', 'Errore!!!Macchina non settate come Spedite!!!');
return redirect()->to('user_Documento_partenza/visualizzaMacchineDocumento/'.$id_documento_partenza);
}
}
This is the debug message
Code:
DEBUG - 2023-04-11 12:55:03 --> INSERT INTO `movimenti_magazzino` (`id_tipo_movimentazione`, `id_macchina`, `created_at`, `updated_at`) VALUES (14, '15', '2023-04-11 12:55:03', '2023-04-11 12:55:03')
DEBUG - 2023-04-11 12:55:03 --> INSERT INTO `movimenti_magazzino` (`id_tipo_movimentazione`, `id_macchina`, `created_at`, `updated_at`) VALUES (14, '16', '2023-04-11 12:55:03', '2023-04-11 12:55:03')
DEBUG - 2023-04-11 12:55:03 --> INSERT INTO `movimenti_magazzino` (`id_tipo_movimentazione`, `id_macchina`, `created_at`, `updated_at`) VALUES (14, '17', '2023-04-11 12:55:03', '2023-04-11 12:55:03')
DEBUG - 2023-04-11 12:55:03 --> UPDATE `uscita_temp` SET `macchina_presente` = 0, `data_partenza` = '2023-04-11', `updated_at` = '2023-04-11 12:55:03'
WHERE `id_documento_partenza` = '2'
Individually the code is ok on phpmyadmin , the metod goes into the if($db->transStatus()!==false) but no changing on db . If i remove transaction it work fine. Why ?