'Stime', 'dev' => false, 'fields' => $this->field_options(), 'form_title_add' => 'Nuova stima', 'form_title_update' => 'Edit stima', 'form_submit' => 'Add', 'table_title' => 'Pagina per la tabella Stime', 'form_submit_update' => 'Update', 'base' => '', 'UpdatedAt' => '', 'DeletedAt' => '', ]; $this->crud = new Crud($params, service('request')); }// __construct protected function field_options() { $fields = []; $fields['stIDcommessa'] = ['label' => 'ID Commessa', 'helper' => 'Identificativo univoco della commessa a cui si riferisce la stima', 'required' => true]; $fields['stIDTipoWork'] = ['label' => 'ID Tipo Work', 'helper' => 'Identificativo univoco della tipologia di lavoro a cui si riferisce la stima', 'required' => true]; $fields['stStima'] = ['label' => 'Stima', 'helper' => 'Stima oraria', 'required' => true]; $fields['stNota'] = ['label' => 'Nota', 'helper' => 'Eventuale nota associata alla stima', 'required' => true]; return $fields; }// field_options // public function index() { // return $this->CRUD_view(['stIDcommessa', 'stIDTipoWork', 'stStima', 'stNota']); // } //-------------------------------------------------------------------- // Auto CRUD terminato //-------------------------------------------------------------------- //-------------------------------------------------------------------- public function index() { helper(['tools','form']); $data['tab'] = 'admin'; // Verifico sessione e livello: if (!CheckLevel(1)) { return redirect()->to('/dashboard'); } // Ricavo le stime in base al filtro: // Tab: Stime = ['stIDcommessa', 'stIDTipoWork', 'stStima', 'stNota']; // Tab: TipiWork = ['twIDTipoWork', 'twDescrizione', 'twOrdinamento']; // Tab: Commesse = ['coIDcommessa', 'coNome', 'coIDcliente', 'coDescrizione', 'coIDstatoCommessa', 'coCreatedAt', 'coUpdatedAt', 'coDeletedAt']; $model = new Stime_Model(); $model->join('TipiWork', 'stIDTipoWork = twIDTipoWork'); $model->join('Commesse', 'stIDcommessa = coIDcommessa'); // Costruisco la query per selezionare le ore da mostrare: if (session()->filter_commessa!='-1') { $model->where('stIDcommessa', session()->get('filter_commessa')); } // imposto l'ordinamento richiesto: $model->orderBy('twOrdinamento', 'ASC'); // eseguo la query con paginazione: $data['dataset'] = $model->paginate(session()->get('pager_num')); $data['pager'] = $model->pager; // Ricavo i dati per il select delle commesse: $modelCommesse = new Commesse_Model(); $data['select_commesse'] = $modelCommesse->get_select(); //return view('test', $data); return view('pages/stime', $data); }//function index //-------------------------------------------------------------------- public function add(){ helper(['tools','form']); $data['tab'] = 'admin'; $data['add'] = true; $data['title'] = 'Dettagli nuova stima'; // Verifico sessione e livello: if (!CheckLevel(1)) { if (ENVIRONMENT === 'development') { session()->setFlashdata('warning', '/Stime/add -> Error code 001'); } return redirect()->to('/Lavoratori/login'); } // Gestione POST // Tab: Stime = ['stIDcommessa', 'stIDTipoWork', 'stStima', 'stNota']; if ($this->request->getMethod() == 'post') { // Regole per validare i campi introdotti nel form: // $rules = [ 'IDcommessa' => 'trim|required', 'IDTipoWork' => 'trim|required', 'Stima' => 'trim|required', 'Nota' => 'trim|required', ]; // analisi della validazione if (! $this->validate($rules)) { $data['validation'] = $this->validator; session()->setFlashdata('warning', $data['validation']->listErrors()); }else{ // validazione passata // Preparo i dati per l'inserimento $newData = [ 'stIDcommessa' => $this->request->getVar('IDcommessa'), 'stIDTipoWork' => $this->request->getVar('IDTipoWork'), 'stStima' => $this->request->getVar('Stima'), 'stNota' => $this->request->getVar('Nota'), ]; $model = new Stime_Model(); if ($model->save($newData)) { session()->setFlashdata('success', 'Record inserito con successo sul DB'); if(isset($_POST['crea_continua'])) { // è stato premuto il secondo pulsante, quindi inserisco un secondo valore: //return redirect()->to('/dashboard/orari'); } else { return redirect()->to('/Stime'); } } else { session()->setFlashdata('danger', 'Errore durante l\'inserimento del record nel DB.'); } }// analisi validazione }// Gestione POST // Ricavo i dati per il select delle commesse: $modelCommesse = new Commesse_Model(); $data['select_commesse'] = $modelCommesse->get_select(); // Ricavo i dati per il select delle tipologie: $modelTipi = new TipiWork_Model(); $data['select_tipologie'] = $modelTipi->get_select(); // Show profile echo view('pages/form/stime_form_add_edit', $data); } // function add() //-------------------------------------------------------------------- public function edit($IDcm, $IDtw){ helper(['tools','form']); $data['tab'] = 'admin'; $data['add'] = false; $data['title'] = 'Dettagli stima'; // Verifico sessione e livello: if (!CheckLevel(1)) { if (ENVIRONMENT === 'development') { session()->setFlashdata('warning', '/Stime/add -> Error code 001'); } return redirect()->to('/Lavoratori/login'); } // Ricavo il profilo della stima da editare // Tab: Stime = ['stIDcommessa', 'stIDTipoWork', 'stStima', 'stNota']; $model = new Stime_Model(); $data['stima'] = $model->where('stIDcommessa', $IDcm)->where('stIDTipoWork', $IDtw)->first(); // Gestione POST // Tab: Stime = ['stIDcommessa', 'stIDTipoWork', 'stStima', 'stNota']; if ($this->request->getMethod() == 'post') { // Regole per validare i campi introdotti nel form: // $rules = [ 'IDcommessa' => 'trim|required', 'IDTipoWork' => 'trim|required', 'Stima' => 'trim|required', 'Nota' => 'trim|required', ]; // analisi della validazione if (! $this->validate($rules)) { $data['validation'] = $this->validator; session()->setFlashdata('warning', $data['validation']->listErrors()); }else{ // validazione passata // Preparo i dati per l'inserimento $newData = [ 'stIDcommessa' => $this->request->getVar('IDcommessa'), 'stIDTipoWork' => $this->request->getVar('IDTipoWork'), 'stStima' => $this->request->getVar('Stima'), 'stNota' => $this->request->getVar('Nota'), ]; // Cancello i record che devo andare a sostituire o aggiornare: $model->where('stIDcommessa',$IDcm)->where('stIDTipoWork',$IDtw)->delete(); // Record di partenza $model->where('stIDcommessa',$newData['stIDcommessa'])->where('stIDTipoWork',$newData['stIDTipoWork'])->delete(); // Nuovo record if ($model->save($newData)) { session()->setFlashdata('success', 'Record editato con successo sul DB'); if(isset($_POST['crea_continua'])) { // è stato premuto il secondo pulsante, quindi inserisco un secondo valore: //return redirect()->to('/dashboard/orari'); } else { return redirect()->to('/Stime'); } } else { session()->setFlashdata('danger', 'Errore durante l\'inserimento del record nel DB.'); } }// analisi validazione }// Gestione POST // Ricavo i dati per il select delle commesse: $modelCommesse = new Commesse_Model(); $data['select_commesse'] = $modelCommesse->get_select(); // Ricavo i dati per il select delle tipologie: $modelTipi = new TipiWork_Model(); $data['select_tipologie'] = $modelTipi->get_select(); // Show profile echo view('pages/form/stime_form_add_edit', $data); } // function edit($id) //-------------------------------------------------------------------- public function Delete($IDcm = null, $IDtw = null){ helper(['tools','form']); $data = []; // Tab: Stime = ['stIDcommessa', 'stIDTipoWork', 'stStima', 'stNota']; $model = new Stime_Model(); // Verifico sessione e livello: if (!CheckLevel(3)) { session()->setFlashdata('warning', 'Non si hanno i permessi per cancellare una stima.'); return redirect()->to('/Stime'); } // Verifico dato introdotto: if (($IDcm==null) OR ($IDtw==null)) { if (ENVIRONMENT === 'development') { session()->setFlashdata('warning', '/Stime/delete -> Error code 001'); } return redirect()->to('/Stime'); } // Elimino il record: if ($model->where('stIDcommessa',$IDcm)->where('stIDTipoWork',$IDtw)->delete()) { session()->setFlashdata('success', 'Records cancellato correttamente.'); } else { $data['validation'] = $this->validator; session()->setFlashdata('warning', 'Errore durante la cancellazione del record.'); } // Show profile return redirect()->to('/Stime'); } // function edit($id) //-------------------------------------------------------------------- }