home(); }//function index //-------------------------------------------------------------------- public function home() { helper(['tools','form']); $data['tab'] = 'home'; // Verifico sessione e livello: if (!CheckLevel(0)) { return redirect()->to('/Lavoratori/login'); } $lav = session()->get('lavoratore'); // // Gli utenti Guest non possono inserire valori e per sicurezza visualizzo una pagina apposta. // if ($lav->lvLevel==1){ return redirect()->to('/dashboard/home'); } // Gli utenti guest non possono inserire ore, quindi per loro non gestisco le // Gestione POST if ($this->request->getMethod() == 'post') { // verifico chi ha fatto il POST (ore o spese): if(isset($_POST['PBinsetrOraPOST'])) { // POST di aggiunta dell'orario e quindi verifico i dati dell'orario e se validi lo inserisco. // Regole per validare i campi introdotti nel form: $rules = [ 'o_IDcommessa' => 'trim|required', 'o_Data' => 'trim|required', 'o_Ore' => 'trim|required', 'o_IDTipoOre' => 'trim|required', 'o_Descrizione' => 'trim|required|min_length[8]', ]; // 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 = [ 'orIDcommessa' => $this->request->getVar('o_IDcommessa'), 'orIDlavoratore' => $lav->lvIDlavoratore, 'orData' => $this->request->getVar('o_Data'), 'orOre' => $this->request->getVar('o_Ore'), 'orIDTipoOre' => $this->request->getVar('o_IDTipoOre'), 'orDescrizione' => $this->request->getVar('o_Descrizione'), ]; $modelOrari = new Orari_Model(); if ($modelOrari->save($newData)) { session()->setFlashdata('success', 'Record inserito con successo sul DB'); UpdateCommessa($newData['orIDcommessa']); //return redirect()->to('/dashboard/home'); } else { session()->setFlashdata('danger', 'Errore durante l\'inserimento del record nel DB.'); } }// analisi validazione } // if PBinsetrOraPOST if(isset($_POST['PBinsetrSpesaPOST'])) { // POST di aggiunta della spesa e quindi verifico i dati della spesa e se validi lo inserisco. // Regole per validare i campi introdotti nel form: $rules = [ 's_IDcommessa' => 'trim|required', 's_Data' => 'trim|required', 's_Importo' => 'trim|required', 's_DaRimborsare' => 'trim|required', 's_Descrizione' => 'trim|required|min_length[8]', ]; // 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 = [ 'spIDcommessa' => $this->request->getVar('s_IDcommessa'), 'spIDlavoratore' => $lav->lvIDlavoratore, 'spData' => $this->request->getVar('s_Data'), 'spImporto' => $this->request->getVar('s_Importo'), 'spDaRimborsare' => $this->request->getVar('s_DaRimborsare'), 'spDescrizione' => $this->request->getVar('s_Descrizione'), ]; $modelOrari = new Spese_Model(); if ($modelOrari->save($newData)) { session()->setFlashdata('success', 'Record inserito con successo sul DB'); UpdateCommessa($newData['spIDcommessa']); //return redirect()->to('/dashboard/home'); } else { session()->setFlashdata('danger', 'Errore durante l\'inserimento del record nel DB.'); } }// analisi validazione } // if PBinsetrSpesaPOST }// Gestione POST // Ricavo riepilogo ultimi orari inseriti $modelCommesse = new Commesse_Model(); $data['orari'] = $modelCommesse->join('Orari', 'Commesse.coIDcommessa = Orari.orIDcommessa') ->where('orIDlavoratore', $lav->lvIDlavoratore) ->orderBy('orIDorario', 'DESC') ->findAll(3); // Ricavo ultime spese inserite $data['spese'] = $modelCommesse->join('Spese', 'Commesse.coIDcommessa = Spese.spIDcommessa') ->where('spIDlavoratore', $lav->lvIDlavoratore) ->orderBy('spIDspesa', 'DESC') ->findAll(3); // Ricavo i dati per il select delle tipologie di orario: $modelTipoOre = new TipoOre_Model(); $data['select_tipo_ore'] = $modelTipoOre->get_select(); // Ricavo i dati per il select delle commesse: $data['select_commesse'] = $modelCommesse->get_select(); // Ricavo i dati per il select dei lavoratori: $modelLavoratori = new Lavoratori_Model(); $data['select_lavoratori'] = $modelLavoratori->get_select(); return view('pages/home', $data); }//function home //-------------------------------------------------------------------- public function orari() { helper(['tools','form']); $data['tab'] = 'orari'; // Verifico sessione e livello: if (!CheckLevel(1)) { return redirect()->to('/dashboard'); } // Ricavo le ore dell'utente: // Tab: Orari = ['orIDorario', 'orIDcommessa', 'orIDlavoratore', 'orData', 'orOre', 'orIDTipoOre', 'orIDTipoWork', 'orDescrizione']; // Tab: Lavoratori = ['lvIDlavoratore', 'lvNome', 'lvCognome', 'lvMail', 'lvLevel', 'lvRimborsoKm', 'lvNickname', 'lvPassword', 'lvCreatedAt', 'lvUpdatedAt', 'lvDeletedAt']; // Tab: Commesse = ['coIDcommessa', 'coNome', 'coIDcliente', 'coDescrizione', 'coIDstatoCommessa', 'coModificatoIl', 'coCreatedAt', 'coUpdatedAt', 'coDeletedAt']; $model = new Orari_Model(); $model->join('Lavoratori', 'Lavoratori.lvIDlavoratore = Orari.orIDlavoratore'); $model->join('Commesse', 'Commesse.coIDcommessa = Orari.orIDcommessa'); // Costruisco la query per selezionare le ore da mostrare: // - applico il filtro sull'intervallo temporale: $model->where('orData >=', session()->get('filter_dal')) ->where('orData <=', session()->get('filter_al') . " 23:59:59"); // - applico eventuale filtro per lavoratore if (session()->filter_lavoratore!='-1') { $model->where('orIDlavoratore', session()->get('filter_lavoratore')); } // - applico eventuale filtro per commessa if (session()->filter_commessa!='-1') { $model->where('orIDcommessa', session()->get('filter_commessa')); } // - applico eventuale filtro per tipologia di ora: if (session()->filter_tipo_ore!='-1') { $model->where('orIDTipoOre', session()->get('filter_tipo_ore')); } // imposto l'ordinamento richiesto: CheckSort('orari',true); $data['sortCol'] = session()->get('sort')['col']; $data['sortDir'] = session()->get('sort')['dir']; $model->orderBy($data['sortCol'], $data['sortDir']); // 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_on_orari(); // Ricavo i dati per il select delle tipologie di orario: $modelTipoOre = new TipoOre_Model(); $data['select_tipo_ore'] = $modelTipoOre->get_select_on_orari(); // Ricavo i dati per il select dei lavoratori: $modelLavoratori = new Lavoratori_Model(); $data['select_lavoratori'] = $modelLavoratori->get_select_on_orari(); // Ricavo i dati per il select delle tipologie di lavoro: $modelTipoWork = new TipiWork_Model(); $data['select_tipo_work'] = $modelTipoWork->get_select_on_orari(); return view('pages/orari', $data); }//function orari //-------------------------------------------------------------------- public function spese() { helper(['tools','form']); $data['tab'] = 'spese'; // Verifico sessione e livello: if (!CheckLevel(1)) { return redirect()->to('/dashboard'); } // Ricavo le ore dell'utente: // Tab: Spese = ['spIDspesa', 'spIDcommessa', 'spIDlavoratore', 'spImporto', 'spDaRimborsare', 'spDescrizione', 'spData']; // Tab: Lavoratori = ['lvIDlavoratore', 'lvNome', 'lvCognome', 'lvMail', 'lvLevel', 'lvRimborsoKm', 'lvNickname', 'lvPassword', 'lvCreatedAt', 'lvUpdatedAt', 'lvDeletedAt']; // Tab: Commesse = ['coIDcommessa', 'coNome', 'coIDcliente', 'coDescrizione', 'coIDstatoCommessa', 'coModificatoIl', 'coCreatedAt', 'coUpdatedAt', 'coDeletedAt']; $model = new Spese_Model(); $model->join('Lavoratori', 'Lavoratori.lvIDlavoratore = Spese.spIDlavoratore'); $model->join('Commesse', 'Commesse.coIDcommessa = Spese.spIDcommessa'); // Costruisco la query per selezionare le ore da mostrare: // - applico il filtro sull'intervallo temporale: $model->where('spData >=', session()->get('filter_dal')) ->where('spData <=', session()->get('filter_al') . " 23:59:59"); // - applico eventuale filtro per lavoratore if (session()->filter_lavoratore!='-1') { $model->where('spIDlavoratore', session()->get('filter_lavoratore')); } // - applico eventuale filtro per commessa if (session()->filter_commessa!='-1') { $model->where('coIDcommessa', session()->get('filter_commessa')); } // - applico eventuale filtro per rimborso: if (session()->filter_rimborso!='-1') { $model->where('spDaRimborsare', session()->get('filter_rimborso')); } // imposto l'ordinamento richiesto: CheckSort('spese',true); $data['sortCol'] = session()->get('sort')['col']; $data['sortDir'] = session()->get('sort')['dir']; $model->orderBy($data['sortCol'], $data['sortDir']); // 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_on_spese(); // Ricavo i dati per il select dei lavoratori: $modelLavoratori = new Lavoratori_Model(); $data['select_lavoratori'] = $modelLavoratori->get_select_on_spese(); return view('pages/spese', $data); }//function spese //-------------------------------------------------------------------- public function archivio() { helper(['tools','form']); $data['tab'] = 'archivio'; // Verifico sessione e livello: if (!CheckLevel(1)) { return redirect()->to('/dashboard'); } return view('pages/archivio', $data); }//function archivio //-------------------------------------------------------------------- public function cars() { helper(['tools','form']); $data['tab'] = 'cars'; // Verifico sessione e livello: if (!CheckLevel(1)) { return redirect()->to('/dashboard'); } // Ricavo le car: // Tab: CSiCoCars = ['caIDcar', 'caTarga', 'caDescrizione', 'caDataAssicurazione', 'caTipoGomme', 'caCreatedAt', 'caUpdatedAt', 'caStato', 'caDeletedAt']; $model = new CSiCoCars_Model(); // Costruisco la query per selezionare le macchine da mostrare: // - applico il filtro sullo stato: if (session()->filter_caStato!='-1') { $model->where('caStato', session()->get('filter_caStato')); } // imposto l'ordinamento richiesto: CheckSort('cars',true); $data['sortCol'] = session()->get('sort')['col']; $data['sortDir'] = session()->get('sort')['dir']; $model->orderBy($data['sortCol'], $data['sortDir']); // eseguo la query con paginazione: $data['dataset'] = $model->paginate(session()->get('pager_num')); $data['pager'] = $model->pager; return view('pages/cars', $data); }//function cars //-------------------------------------------------------------------- public function credit() { helper(['tools','form']); $data['tab'] = 'credit'; // Verifico sessione e livello: if (!CheckLevel(1)) { return redirect()->to('/dashboard'); } // Ricavo le carte: // Tab: CreditCards = ['ccIDcard', 'ccNumero', 'ccDescrizione', 'ccScadeIl', 'ccPIN', 'ccCreatedAt', 'ccUpdatedAt', ', 'ccStato', 'ccDeletedAt']; $model = new CreditCards_Model(); // Costruisco la query per selezionare le ore da mostrare: // - applico il filtro sullo stato: if (session()->filter_ccStato!='-1') { $model->where('ccStato', session()->get('filter_ccStato')); } // imposto l'ordinamento richiesto: CheckSort('credit',true); $data['sortCol'] = session()->get('sort')['col']; $data['sortDir'] = session()->get('sort')['dir']; $model->orderBy($data['sortCol'], $data['sortDir']); // eseguo la query con paginazione: $data['dataset'] = $model->paginate(session()->get('pager_num')); $data['pager'] = $model->pager; return view('pages/credit', $data); }//function credit //-------------------------------------------------------------------- public function sims() { helper(['tools','form']); $data['tab'] = 'sims'; // Verifico sessione e livello: if (!CheckLevel(1)) { return redirect()->to('/dashboard'); } // Ricavo le sim: // SIMs = ['smIDsim', 'smNumero', 'smPIN', 'smPUK', 'smDescrizione', 'smCredito', 'smCreatedAt', 'smUpdatedAt', 'smStato', 'smDeletedAt']; $model = new SIMs_Model(); // Costruisco la query per selezionare le macchine da mostrare: // - applico il filtro sullo stato: if (session()->filter_smStato!='-1') { $model->where('smStato', session()->get('filter_smStato')); } // imposto l'ordinamento richiesto: CheckSort('sims',true); $data['sortCol'] = session()->get('sort')['col']; $data['sortDir'] = session()->get('sort')['dir']; $model->orderBy($data['sortCol'], $data['sortDir']); // eseguo la query con paginazione: $data['dataset'] = $model->paginate(session()->get('pager_num')); $data['pager'] = $model->pager; return view('pages/sims', $data); }//function sims //-------------------------------------------------------------------- public function admin() { helper(['tools','form']); $data['tab'] = 'admin'; // Verifico sessione e livello: if (!CheckLevel(1)) { return redirect()->to('/dashboard'); } return view('pages/admin', $data); }//function admin //-------------------------------------------------------------------- public function set_order($tab, $col, $dir){ helper(['tools','form']); // Verifico sessione e livello: if (!CheckLevel(0)) { return redirect()->to('/dashboard'); } if (SetSort($tab, $col, $dir)) { if ($tab=='anagrafica') return redirect()->to('/Lavoratori/anagrafica'); if ($tab=='evncredit') return redirect()->to('/CreditCardEvents/show'); if ($tab=='evncar') return redirect()->to('/CSiCoCarEvents/show'); if ($tab=='Issues') return redirect()->to('/Issues/View'); return redirect()->to('/dashboard/' . $tab); } else { // ordinamento non riuscito, avviso l'utente e torno alla home session()->setFlashdata('warning', 'Errore durante il riordino dei records'); return redirect()->to('/dashboard'); } } //-------------------------------------------------------------------- public function set_filter($page, $new_filter_dal, $new_filter_al, $new_option, $new_filter_commessa, $new_filter_lavoratore) { helper(['tools','form']); // Verifico sessione e livello: if (!CheckLevel(0)) { return redirect()->to('/dashboard'); } // Questi filtri sono indipendenti dalla tabella session()->set('filter_dal', $new_filter_dal); session()->set('filter_al', $new_filter_al); session()->set('filter_commessa', $new_filter_commessa); // Questo filtro dipende dal tipo di tabella: if ($page=='orari'){ session()->set('filter_tipo_ore', $new_option); } if ($page=='spese'){ session()->set('filter_rimborso', $new_option); } // solo gli amministratori possono vedere tutto e quindi cambiare il filtro del lavoratore: if (CheckLevel(3, false)) { session()->set('filter_lavoratore', $new_filter_lavoratore); } else { session()->set('filter_lavoratore', session()->get('lavoratore')->lvIDlavoratore); } return redirect()->to("/dashboard/$page"); } //-------------------------------------------------------------------- public function set_filter1($page, $new_option) { helper(['tools','form']); // Verifico sessione e livello: if (!CheckLevel(0)) { return redirect()->to('/dashboard'); } // Questo filtro dipende dal tipo di tabella: if ($page=='cars'){ session()->set('filter_caStato', $new_option); return redirect()->to("/dashboard/$page"); } if ($page=='credit'){ session()->set('filter_ccStato', $new_option); return redirect()->to("/dashboard/$page"); } if ($page=='sims'){ session()->set('filter_smStato', $new_option); return redirect()->to("/dashboard/$page"); } if ($page=='Stime'){ session()->set('filter_commessa', $new_option); return redirect()->to("/Stime"); } } //-------------------------------------------------------------------- public function reset_filter($page) { helper(['tools','form']); // Verifico sessione e livello: if (!CheckLevel(0)) { return redirect()->to('/dashboard'); } // Questi filtri sono indipendenti dalla tabella session()->set('filter_dal', date("Y-m-d", strtotime("first day of this month"))); session()->set('filter_al', date("Y-m-d", strtotime("last day of this month"))); session()->set('filter_commessa', '-1'); // Questo filtro dipende dal tipo di tabella: if ($page=='orari'){ session()->set('filter_tipo_ore', '-1'); } if ($page=='spese'){ session()->set('filter_rimborso', '-1'); } if ($page=='cars'){ session()->set('filter_caStato', '-1'); } if ($page=='credit'){ session()->set('filter_ccStato', '-1'); } if ($page=='sims'){ session()->set('filter_smStato', '-1'); } // solo gli amministratori possono vedere tutto e quindi cambiare il filtro del lavoratore: if (CheckLevel(3, false)) { session()->set('filter_lavoratore', '-1'); } else { session()->set('filter_lavoratore', session()->get('lavoratore')->lvIDlavoratore); } if ($page=='Stime'){ return redirect()->to("/Stime"); } return redirect()->to("/dashboard/$page"); } }//class Dashboard