Welcome Guest, Not a member yet? Register   Sign In
transaction problem
#1

(This post was last modified: 04-11-2023, 06:34 AM by pippuccio76.)

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 ?
Reply
#2

See https://codeigniter4.github.io/CodeIgnit...ansactions
Reply
#3

(04-11-2023, 05:20 PM)kenjis Wrote: See https://codeigniter4.github.io/CodeIgnit...ansactions



i forgot trans->complete
Reply




Theme © iAndrew 2016 - Forum software by © MyBB