1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2024-12-25 15:22:24 +01:00

Filtri del modulo sulle stampe

This commit is contained in:
Thomas Zilio 2019-07-15 12:39:24 +02:00
parent 0fba9f7c07
commit a850fa2f3e
2 changed files with 36 additions and 19 deletions

View File

@ -74,31 +74,35 @@ class Sessione extends Model
public function setTipo($id_tipo, $reset = false)
{
$previous = $this->idtipointervento;
$tipo_sessione = TipoSessione::find($id_tipo);
$this->tipo()->associate($tipo_sessione);
$tariffa = $this->getTariffa($id_tipo);
if ($previous != $id_tipo || $reset) {
$tariffa = $this->getTariffa($id_tipo);
// Azzeramento forzato del diritto di chiamata nel caso la sessione non sia la prima dell'intervento nel giorno di inizio o fine
$sessioni = database()->fetchArray('SELECT id FROM in_interventi_tecnici WHERE (DATE(orario_inizio) = DATE('.prepare($this->orario_inizio).') OR DATE(orario_fine) = DATE('.prepare($this->orario_fine).')) AND (prezzo_dirittochiamata != 0 OR prezzo_dirittochiamata_tecnico != 0) AND id != '.prepare($this->id).' AND idintervento = '.prepare($this->intervento->id));
if (!empty($sessioni)) {
$tariffa['costo_dirittochiamata_tecnico'] = 0;
$tariffa['costo_dirittochiamata'] = 0;
// Azzeramento forzato del diritto di chiamata nel caso la sessione non sia la prima dell'intervento nel giorno di inizio o fine
$sessioni = database()->fetchArray('SELECT id FROM in_interventi_tecnici WHERE (DATE(orario_inizio) = DATE('.prepare($this->orario_inizio).') OR DATE(orario_fine) = DATE('.prepare($this->orario_fine).')) AND (prezzo_dirittochiamata != 0 OR prezzo_dirittochiamata_tecnico != 0) AND id != '.prepare($this->id).' AND idintervento = '.prepare($this->intervento->id));
if (!empty($sessioni)) {
$tariffa['costo_dirittochiamata_tecnico'] = 0;
$tariffa['costo_dirittochiamata'] = 0;
// Fix se reset non attivo
$this->prezzo_dirittochiamata = $tariffa['costo_dirittochiamata'];
}
// Fix se reset non attivo
$this->prezzo_dirittochiamata = $tariffa['costo_dirittochiamata'];
}
// Modifica dei costi
$this->prezzo_ore_unitario_tecnico = $tariffa['costo_ore_tecnico'];
$this->prezzo_km_unitario_tecnico = $tariffa['costo_km_tecnico'];
$this->prezzo_dirittochiamata_tecnico = $tariffa['costo_dirittochiamata_tecnico'];
// Modifica dei costi
$this->prezzo_ore_unitario_tecnico = $tariffa['costo_ore_tecnico'];
$this->prezzo_km_unitario_tecnico = $tariffa['costo_km_tecnico'];
$this->prezzo_dirittochiamata_tecnico = $tariffa['costo_dirittochiamata_tecnico'];
// Modifica dei prezzi
if ($reset) {
$this->prezzo_ore_unitario = $tariffa['costo_ore'];
$this->prezzo_km_unitario = $tariffa['costo_km'];
$this->prezzo_dirittochiamata = $tariffa['costo_dirittochiamata'];
// Modifica dei prezzi
if ($reset) {
$this->prezzo_ore_unitario = $tariffa['costo_ore'];
$this->prezzo_km_unitario = $tariffa['costo_km'];
$this->prezzo_dirittochiamata = $tariffa['costo_dirittochiamata'];
}
}
}

View File

@ -126,7 +126,20 @@ class Prints
Permissions::addModule($infos['id_module']);
if (empty($infos) || empty($infos['enabled']) || !Permissions::check([], false)) {
$has_access = true;
if (!empty($infos['is_record'])) {
$module = Modules::get($infos['id_module']);
Util\Query::setSegments(false);
$query = Util\Query::getQuery($module, [
'id' => $id_record,
]);
Util\Query::setSegments(true);
$has_access = database()->fetchNum($query) !== 0;
}
if (empty($infos) || empty($infos['enabled']) || !Permissions::check([], false) || !$has_access) {
return false;
}