Files
CSiCoDB2/app/Helpers/tools_helper.php
2026-05-06 11:04:41 +02:00

270 lines
8.4 KiB
PHP

<?php
/*
File con utili funzioni generali
*/
use App\Models\Commesse_Model;
//--------------------------------------------------------------------
// Funzione che imposta i dati della sessione in base al alvoratore che si è loggato
function SetUserSession($lavoratore){
try {
$data = [
'lavoratore' => $lavoratore,
'isLoggedIn' => true,
'pager_num' => 20,
'filter_dal' => date("Y-m-d", strtotime("first day of this month")),
'filter_al' => date("Y-m-d", strtotime("last day of this month")),
'filter_tipo_ore' => '-1',
'filter_commessa' => '-1',
'filter_rimborso' => '-1',
'filter_ccStato' => '-1',
'filter_caStato' => '-1',
'filter_smStato' => '-1',
'filter_cc' => '-1',
'filter_car' => '-1',
'filter_sim' => '-1',
'sort' => [
'tab' => 'Lavoratori',
'col'=> 'lvIDLavoratore',
'dir'=> 'ASC',
],
];
if ($lavoratore->Level>=4) {
// root di default non filtra gli utenti
$data['filter_lavoratore'] = '-1';
} else {
if ($lavoratore->Level>=3) {
// Gli amministratori filtrano gli utenti ma possono editare il filtro
$data['filter_lavoratore'] = $lavoratore->lvIDlavoratore;
} else {
// Gli utenti normali filtrano per se stessi
$data['filter_lavoratore'] = $lavoratore->lvIDlavoratore;
}
}
session()->set($data);
return true;
} catch (Exception $e) {
return false;
}
}//function setUserSession
//--------------------------------------------------------------------
// Funzione che verifica se l'utente loggato ha il livello richiesto: 0=Guest; 1=Oper; 2=Inven; 3=Admin; 4=Root
function CheckLevel($level=0, $verbose = true){
// Verifico sessione e livello:
if ( (session()->get('lavoratore') != null) && (session()->get('lavoratore')->lvLevel>=$level) ) {
return true;
}
if ($verbose) {
session()->setFlashdata('warning', 'AMMINISTRAZIONE:<br />&nbsp;&nbsp;L\'utente utilizzato non ha i diritti necessari per la sezione richiesta.');
}
return false;
} // function CheckLevel
//--------------------------------------------------------------------
/**
* Verifico se l'ordinamento atuale riguarda la tabella in uso, se init true, forzo i valori di default
*/
function CheckSort($tab, $init=false){
try {
$data = [];
helper(['tools']);
$sort = session()->get('sort');
if ($sort['tab']==$tab){
return true;
}
if ($init){
$sort['tab'] = $tab;
switch ($tab) {
case 'articoli':
case 'Articoli':
$sort['col'] = 'arIDarticolo';
$sort['dir'] = 'ASC';
break;
case 'articoloevents':
case 'ArticoloEvents':
$sort['col'] = 'earData';
$sort['dir'] = 'DESC';
break;
case 'categorie':
case 'Categorie':
$sort['col'] = 'caNome';
$sort['dir'] = 'ASC';
break;
case 'clienti':
case 'Clienti':
$sort['col'] = 'clNome';
$sort['dir'] = 'ASC';
break;
case 'commesse':
case 'Commesse':
$sort['col'] = 'coNome';
$sort['dir'] = 'ASC';
break;
case 'evncredit':
case 'creditcardevents':
case 'CreditCardEvents':
$sort['col'] = 'eccData';
$sort['dir'] = 'DESC';
break;
case 'credit':
case 'creditcards':
case 'CreditCards':
$sort['col'] = 'ccNumero';
$sort['dir'] = 'ASC';
break;
case 'evncar':
case 'csicocarevents':
case 'CSiCoCarEvents':
$sort['col'] = 'ecaData';
$sort['dir'] = 'DESC';
break;
case 'cars':
case 'csicocars':
case 'CSiCoCars':
$sort['col'] = 'caTarga';
$sort['dir'] = 'ASC';
break;
case 'issues':
case 'Issues':
$sort['col'] = 'isIDissue';
$sort['dir'] = 'DESC';
break;
case 'anagrafica':
case 'lavoratori':
case 'Lavoratori':
$sort['col'] = 'lvNickname';
$sort['dir'] = 'ASC';
break;
case 'orari':
case 'Orari':
$sort['col'] = 'orData';
$sort['dir'] = 'DESC';
break;
case 'posizioni':
case 'Posizioni':
$sort['col'] = 'psCode';
$sort['dir'] = 'ASC';
break;
case 'evnsim':
case 'simevents':
case 'SIMEvents':
$sort['col'] = 'esmData';
$sort['dir'] = 'DESC';
break;
case 'sims':
case 'SIMs':
$sort['col'] = 'smNumero';
$sort['dir'] = 'ASC';
break;
case 'spese':
case 'Spese':
$sort['col'] = 'spData';
$sort['dir'] = 'DESC';
break;
case 'staticommessa':
case 'StatiCommessa':
$sort['col'] = 'stIDstatoCommessa';
$sort['dir'] = 'ASC';
break;
case 'stime':
case 'Stime':
$sort['col'] = 'stIDcommessa';
$sort['dir'] = 'ASC';
break;
case 'tipoore':
case 'TipoOre':
$sort['col'] = 'toOrdinamento';
$sort['dir'] = 'ASC';
break;
case 'tipiwork':
case 'TipiWork':
$sort['col'] = 'twOrdinamento';
$sort['dir'] = 'ASC';
break;
default:
throw new Exception("Not find the sort reference!");
}
session()->set('sort', $sort);
return true;
}
return false;
} catch (Exception $e) {
return false;
}
}//function CheckSort
//--------------------------------------------------------------------
/**
* Imposta l'ìordinamento voluto per la tabella visualizzata:
*/
function SetSort($tab, $col, $dir){
try {
$data = [];
helper(['tools']);
$sort = session()->get('sort');
$sort['tab'] = $tab;
$sort['col'] = $col;
$sort['dir'] = $dir;
session()->set('sort', $sort);
return true;
} catch (Exception $e) {
return false;
}
}//function CheckSort
//--------------------------------------------------------------------
function UpdateCommessa($IDcommessa){
$model = new Commesse_Model();
$newData = [
'coIDcommessa' => $IDcommessa,
];
$model->save($newData);
}
//--------------------------------------------------------------------
function Field_Text(){
}
//--------------------------------------------------------------------