Aggiornamento delle risorse API per l'applicazione

This commit is contained in:
Thomas Zilio 2020-07-24 10:20:42 +02:00
parent bab4673724
commit ef5ad8a38d
15 changed files with 350 additions and 96 deletions

View File

@ -1,13 +1,17 @@
<?php
namespace API;
namespace API\App;
use API\Interfaces\CreateInterface;
use API\Interfaces\DeleteInterface;
use API\Interfaces\RetrieveInterface;
use API\Interfaces\UpdateInterface;
use API\Resource;
/**
* Risorsa di base per la gestione delle operazioni standard di comunicazione con l'applicazione.
*/
abstract class AppResource extends Resource implements RetrieveInterface
abstract class AppResource extends Resource implements RetrieveInterface, CreateInterface, UpdateInterface, DeleteInterface
{
public function retrieve($request)
{
@ -33,7 +37,7 @@ abstract class AppResource extends Resource implements RetrieveInterface
}
// Gestione della visualizzazione dei dettagli del record
$details = $this->getDetails($id);
$details = $this->retrieveRecord($id);
// Fix per la gestione dei contenuti numerici
foreach ($details as $key => $value) {
@ -47,6 +51,33 @@ abstract class AppResource extends Resource implements RetrieveInterface
];
}
public function create($request)
{
$data = $request['data'];
$response_data = $this->createRecord($data);
return [
'id' => $response_data['id'],
'data' => $response_data,
];
}
public function update($request)
{
$data = $request['data'];
$response_data = $this->updateRecord($data);
return [
'data' => $response_data,
];
}
public function delete($request)
{
$id = $request['id'];
$this->deleteRecord($id);
}
/**
* @param string $table_name Tabella da analizzare
* @param string $column Colonna di tipo AUTO_INCREMENT della tabella
@ -121,5 +152,40 @@ abstract class AppResource extends Resource implements RetrieveInterface
*
* @return array
*/
abstract protected function getDetails($id);
abstract protected function retrieveRecord($id);
/**
* Crea un nuovo record relativo alla risorsa, restituendo l'ID relativo ed eventuali campi da aggiornare in remoto.
*
* @param array $data
*
* @return array
*/
protected function createRecord($data)
{
return [];
}
/**
* Aggiorna un record relativo alla risorsa, restituendo eventuali campi da aggiornare in remoto.
*
* @param array $data
*
* @return array
*/
protected function updateRecord($data)
{
return [];
}
/**
* Elimina un record relativo alla risorsa.
*
* @param string $id
*
* @return void
*/
protected function deleteRecord($id)
{
}
}

View File

@ -1,9 +1,8 @@
<?php
namespace Modules\Iva\API\AppV1;
namespace API\App\v1;
use API\AppResource;
use Auth;
use API\App\AppResource;
use Carbon\Carbon;
class AliquoteIva extends AppResource
@ -28,7 +27,7 @@ class AliquoteIva extends AppResource
return array_column($records, 'id');
}
protected function getDetails($id)
protected function retrieveRecord($id)
{
// Gestione della visualizzazione dei dettagli del record
$query = 'SELECT co_iva.id,

View File

@ -1,8 +1,8 @@
<?php
namespace Modules\Anagrafiche\API\AppV1;
namespace API\App\v1;
use API\AppResource;
use API\App\AppResource;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Builder;
use Modules\Anagrafiche\Anagrafica;
@ -33,7 +33,7 @@ class Anagrafiche extends AppResource
return $results;
}
protected function getDetails($id)
protected function retrieveRecord($id)
{
// Gestione della visualizzazione dei dettagli del record
$query = 'SELECT an_anagrafiche.idanagrafica AS id,

View File

@ -1,8 +1,8 @@
<?php
namespace Modules\Articoli\API\AppV1;
namespace API\App\v1;
use API\AppResource;
use API\App\AppResource;
use Carbon\Carbon;
class Articoli extends AppResource
@ -27,7 +27,7 @@ class Articoli extends AppResource
return array_column($records, 'id');
}
protected function getDetails($id)
protected function retrieveRecord($id)
{
// Gestione della visualizzazione dei dettagli del record
$query = 'SELECT mg_articoli.id AS id,

View File

@ -1,8 +1,8 @@
<?php
namespace Modules\Impianti\API\AppV1;
namespace API\App\v1;
use API\AppResource;
use API\App\AppResource;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Builder;
use Modules\Impianti\Impianto;
@ -33,7 +33,7 @@ class Impianti extends AppResource
return $results;
}
protected function getDetails($id)
protected function retrieveRecord($id)
{
// Gestione della visualizzazione dei dettagli del record
$query = 'SELECT my_impianti.id,

View File

@ -1,8 +1,8 @@
<?php
namespace Modules\Impostazioni\API\AppV1;
namespace API\App\v1;
use API\AppResource;
use API\App\AppResource;
use Carbon\Carbon;
class Impostazioni extends AppResource
@ -27,7 +27,7 @@ class Impostazioni extends AppResource
return array_column($records, 'id');
}
protected function getDetails($id)
protected function retrieveRecord($id)
{
// Gestione della visualizzazione dei dettagli del record
$query = 'SELECT id AS id,

View File

@ -1,12 +1,18 @@
<?php
namespace Modules\Interventi\API\AppV1;
namespace API\App\v1;
use API\AppResource;
use API\App\AppResource;
use API\Interfaces\CreateInterface;
use API\Interfaces\UpdateInterface;
use Auth;
use Carbon\Carbon;
use Modules\Anagrafiche\Anagrafica;
use Modules\Interventi\Intervento;
use Modules\Interventi\Stato;
use Modules\TipiIntervento\Tipo as TipoSessione;
class Interventi extends AppResource
class Interventi extends AppResource implements CreateInterface, UpdateInterface
{
protected function getCleanupData()
{
@ -70,7 +76,7 @@ class Interventi extends AppResource
return array_column($records, 'id');
}
protected function getDetails($id)
protected function retrieveRecord($id)
{
// Gestione della visualizzazione dei dettagli del record
$query = "SELECT id,
@ -93,4 +99,36 @@ class Interventi extends AppResource
return $record;
}
protected function createRecord($data)
{
$anagrafica = Anagrafica::find($data['id_anagrafica']);
$tipo = TipoSessione::find($data['id_tipo_intervento']);
$stato = Stato::find($data['id_stato_intervento']);
$data_richiesta = new Carbon($data['data_richiesta']);
$intervento = Intervento::build($anagrafica, $tipo, $stato, $data_richiesta);
$intervento->richiesta = $data['richiesta'];
$intervento->descrizione = $data['descrizione'];
$intervento->informazioniaggiuntive = $data['informazioni_aggiuntive'];
$intervento->save();
return [
'id' => $intervento->id,
'codice' => $intervento->codice,
];
}
protected function updateRecord($data)
{
$intervento = Intervento::find($data['id']);
$intervento->idstatointervento = $data['id_stato_intervento'];
$intervento->descrizione = $data['descrizione'];
$intervento->informazioniaggiuntive = $data['informazioni_aggiuntive'];
$intervento->save();
return [];
}
}

View File

@ -1,6 +1,6 @@
<?php
namespace Modules\Utenti\API\AppV1;
namespace API\App\v1;
use API\Interfaces\CreateInterface;
use API\Resource;

View File

@ -1,8 +1,8 @@
<?php
namespace Modules\Anagrafiche\API\AppV1;
namespace API\App\v1;
use API\AppResource;
use API\App\AppResource;
use API\Interfaces\RetrieveInterface;
use Carbon\Carbon;
@ -32,7 +32,7 @@ class Referenti extends AppResource implements RetrieveInterface
return array_column($records, 'id');
}
protected function getDetails($id)
protected function retrieveRecord($id)
{
// Gestione della visualizzazione dei dettagli del record
$query = 'SELECT id,

View File

@ -1,14 +1,17 @@
<?php
namespace Modules\Interventi\API\AppV1;
namespace API\App\v1;
use API\AppResource;
use API\App\AppResource;
use API\Exceptions\InternalError;
use Auth;
use Carbon\Carbon;
use Modules\Articoli\Articolo as ArticoloOriginale;
use Modules\Interventi\Components\Articolo;
use Modules\Interventi\Components\Riga;
use Modules\Interventi\Components\Sconto;
use Modules\Interventi\Intervento;
use UnexpectedValueException;
class Righe extends AppResource
{
@ -83,25 +86,10 @@ class Righe extends AppResource
return array_column($records, 'id');
}
protected function getDetails($id)
protected function retrieveRecord($id)
{
// Gestione della visualizzazione dei dettagli del record
$dati = database()->fetchOne('SELECT idintervento AS id_intervento,
idarticolo AS id_articolo,
is_descrizione,
is_sconto
FROM in_righe_interventi WHERE in_righe_interventi.id = '.prepare($id));
// Individuazione riga tramite classi
if (!empty($dati['is_sconto'])) {
$type = Sconto::class;
} elseif (!empty($dati['id_articolo'])) {
$type = Articolo::class;
} else {
$type = Riga::class;
}
$intervento = Intervento::find($dati['id_intervento']);
$riga = $intervento->getRiga($type, $id);
$riga = $this->getRecord($id);
// Generazione del record ristretto ai campi di interesse
$record = [
@ -141,4 +129,85 @@ class Righe extends AppResource
return $record;
}
protected function getRecord($id)
{
// Individuazione delle caratteristiche del record
$data = database()->fetchOne('SELECT idintervento AS id_intervento,
IF(idarticolo IS NULL OR idarticolo = 0, 0, 1) AS is_articolo,
is_descrizione,
is_sconto
FROM in_righe_interventi WHERE in_righe_interventi.id = '.prepare($id));
// Individuazione riga tramite classi
$type = $this->getType($data);
$intervento = Intervento::find($data['id_intervento']);
return $intervento->getRiga($type, $id);
}
protected function getType($data)
{
if (!empty($data['is_sconto'])) {
$type = Sconto::class;
} elseif (!empty($data['is_articolo'])) {
$type = Articolo::class;
} else {
$type = Riga::class;
}
return $type;
}
protected function createRecord($data)
{
$intervento = Intervento::find($data['id_intervento']);
if ($data['is_articolo']) {
$originale = ArticoloOriginale::find($data['id_articolo']);
$riga = Articolo::build($intervento, $originale);
} elseif ($data['is_sconto']) {
// TODO: sconti
} else {
$riga = Riga::build($intervento);
}
$this->aggiornaRecord($riga, $data);
$riga->save();
return [
'id' => $riga->id,
];
}
protected function updateRecord($data)
{
$riga = $this->getRecord($data['id']);
$this->aggiornaRecord($riga, $data);
$riga->save();
return [];
}
protected function deleteRecord($id)
{
$riga = $this->getRecord($id);
$riga->delete();
}
protected function aggiornaRecord($record, $data)
{
$record->descrizione = $data['descrizione'];
$record->um = $data['um'] ?: null;
//$record->costo_unitario = $data['costo_unitario'] ?: 0;
$record->setPrezzoUnitario($data['prezzo_unitario'], $data['id_iva']);
$record->setSconto($data['sconto_percentuale'] ?: $data['sconto_unitario'], $data['tipo_sconto']);
try {
$record->qta = $data['qta'];
} catch (UnexpectedValueException $e) {
throw new InternalError();
}
}
}

View File

@ -1,8 +1,8 @@
<?php
namespace Modules\Anagrafiche\API\AppV1;
namespace API\App\v1;
use API\AppResource;
use API\App\AppResource;
use Carbon\Carbon;
class Sedi extends AppResource
@ -31,7 +31,7 @@ class Sedi extends AppResource
return array_column($records, 'id');
}
protected function getDetails($id)
protected function retrieveRecord($id)
{
// Gestione della visualizzazione dei dettagli del record
$query = 'SELECT an_sedi.id,

View File

@ -1,10 +1,13 @@
<?php
namespace Modules\Interventi\API\AppV1;
namespace API\App\v1;
use API\AppResource;
use API\App\AppResource;
use Auth;
use Carbon\Carbon;
use Modules\Anagrafiche\Anagrafica;
use Modules\Interventi\Components\Sessione;
use Modules\Interventi\Intervento;
class Sessioni extends AppResource
{
@ -68,7 +71,7 @@ class Sessioni extends AppResource
return array_column($records, 'id');
}
protected function getDetails($id)
protected function retrieveRecord($id)
{
// Gestione della visualizzazione dei dettagli del record
$query = 'SELECT id,
@ -95,4 +98,72 @@ class Sessioni extends AppResource
return $record;
}
protected function createRecord($data)
{
// Informazioni sull'utente
$user = Auth::user();
$id_tecnico = $user->id_anagrafica;
// Informazioni di base
$intervento = Intervento::find($data['id_intervento']);
$anagrafica = Anagrafica::find($id_tecnico);
// Creazione della sessione
$sessione = Sessione::build($intervento, $anagrafica, $data['orario_inizio'], $data['orario_fine']);
$this->aggiornaSessione($sessione, $data);
$sessione->save();
return [
'id' => $sessione->id,
];
}
protected function updateRecord($data)
{
$sessione = Sessione::find($data['id']);
$sessione->orario_inizio = $data['orario_inizio'];
$sessione->orario_fine = $data['orario_fine'];
$sessione->km = $data['km'];
$id_tipo = $data['id_tipo_intervento'];
$sessione->setTipo($id_tipo);
$this->aggiornaSessione($sessione, $data);
$sessione->save();
return [];
}
/**
* Aggiorna i dati della sessione sulla base dei dati caricati dall'applicazione.
*
* @param $sessione
* @param $data
*/
protected function aggiornaSessione($sessione, $data)
{
// Prezzi
$sessione->prezzo_ore_unitario = $data['prezzo_orario'];
$sessione->prezzo_km_unitario = $data['prezzo_chilometrico'];
$sessione->prezzo_dirittochiamata = $data['prezzo_diritto_chiamata'];
// Sconto orario
$sessione->sconto_unitario = $data['sconto_orario_percentuale'] ?: $data['sconto_orario'];
$sessione->tipo_sconto = $data['tipo_sconto_orario'];
// Sconto chilometrico
$sessione->scontokm_unitario = $data['sconto_chilometrico_percentuale'] ?: $data['sconto_chilometrico'];
$sessione->tipo_scontokm = $data['tipo_sconto_chilometrico'];
return [];
}
protected function deleteRecord($id)
{
$sessione = Sessione::find($id);
$sessione->delete();
}
}

View File

@ -1,8 +1,8 @@
<?php
namespace Modules\StatiIntervento\API\AppV1;
namespace API\App\v1;
use API\AppResource;
use API\App\AppResource;
use Carbon\Carbon;
class StatiIntervento extends AppResource
@ -27,7 +27,7 @@ class StatiIntervento extends AppResource
return array_column($records, 'id');
}
protected function getDetails($id)
protected function retrieveRecord($id)
{
// Gestione della visualizzazione dei dettagli del record
$query = 'SELECT in_statiintervento.idstatointervento AS id,

View File

@ -1,8 +1,8 @@
<?php
namespace Modules\TipiIntervento\API\AppV1;
namespace API\App\v1;
use API\AppResource;
use API\App\AppResource;
use Carbon\Carbon;
class TipiIntervento extends AppResource
@ -27,7 +27,7 @@ class TipiIntervento extends AppResource
return array_column($records, 'id');
}
protected function getDetails($id)
protected function retrieveRecord($id)
{
// Gestione della visualizzazione dei dettagli del record
$query = 'SELECT in_tipiintervento.idtipointervento AS id,

View File

@ -124,44 +124,55 @@ UPDATE `em_accounts` SET `connected_at` = NOW();
ALTER TABLE `dt_causalet` ADD `is_importabile` BOOLEAN DEFAULT TRUE AFTER `descrizione`;
-- Aggiunta risorse dedicate all'applicazione
DELETE FROM `zz_api_resources` WHERE `version` = 'app-v1';
INSERT INTO `zz_api_resources` (`id`, `version`, `type`, `resource`, `class`, `enabled`) VALUES
(NULL, 'app-v1', 'create', 'login', 'Modules\\Utenti\\API\\AppV1\\Login', '1'),
(NULL, 'app-v1', 'retrieve', 'anagrafiche', 'Modules\\Anagrafiche\\API\\AppV1\\Anagrafiche', '1'),
(NULL, 'app-v1', 'retrieve', 'anagrafiche-cleanup', 'Modules\\Anagrafiche\\API\\AppV1\\Anagrafiche', '1'),
(NULL, 'app-v1', 'retrieve', 'anagrafica', 'Modules\\Anagrafiche\\API\\AppV1\\Anagrafiche', '1'),
(NULL, 'app-v1', 'retrieve', 'sedi', 'Modules\\Anagrafiche\\API\\AppV1\\Sedi', '1'),
(NULL, 'app-v1', 'retrieve', 'sedi-cleanup', 'Modules\\Anagrafiche\\API\\AppV1\\Sedi', '1'),
(NULL, 'app-v1', 'retrieve', 'sede', 'Modules\\Anagrafiche\\API\\AppV1\\Sedi', '1'),
(NULL, 'app-v1', 'retrieve', 'referenti', 'Modules\\Anagrafiche\\API\\AppV1\\Referenti', '1'),
(NULL, 'app-v1', 'retrieve', 'referenti-cleanup', 'Modules\\Anagrafiche\\API\\AppV1\\Referenti', '1'),
(NULL, 'app-v1', 'retrieve', 'referente', 'Modules\\Anagrafiche\\API\\AppV1\\Referenti', '1'),
(NULL, 'app-v1', 'retrieve', 'impianti', 'Modules\\Impianti\\API\\AppV1\\Impianti', '1'),
(NULL, 'app-v1', 'retrieve', 'impianti-cleanup', 'Modules\\Impianti\\API\\AppV1\\Impianti', '1'),
(NULL, 'app-v1', 'retrieve', 'impianto', 'Modules\\Impianti\\API\\AppV1\\Impianti', '1'),
(NULL, 'app-v1', 'retrieve', 'stati-intervento', 'Modules\\StatiIntervento\\API\\AppV1\\StatiIntervento', '1'),
(NULL, 'app-v1', 'retrieve', 'stati-intervento-cleanup', 'Modules\\StatiIntervento\\API\\AppV1\\StatiIntervento', '1'),
(NULL, 'app-v1', 'retrieve', 'stato-intervento', 'Modules\\StatiIntervento\\API\\AppV1\\StatiIntervento', '1'),
(NULL, 'app-v1', 'retrieve', 'tipi-intervento', 'Modules\\TipiIntervento\\API\\AppV1\\TipiIntervento', '1'),
(NULL, 'app-v1', 'retrieve', 'tipi-intervento-cleanup', 'Modules\\TipiIntervento\\API\\AppV1\\TipiIntervento', '1'),
(NULL, 'app-v1', 'retrieve', 'tipo-intervento', 'Modules\\TipiIntervento\\API\\AppV1\\TipiIntervento', '1'),
(NULL, 'app-v1', 'retrieve', 'articoli', 'Modules\\Articoli\\API\\AppV1\\Articoli', '1'),
(NULL, 'app-v1', 'retrieve', 'articoli-cleanup', 'Modules\\Articoli\\API\\AppV1\\Articoli', '1'),
(NULL, 'app-v1', 'retrieve', 'articolo', 'Modules\\Articoli\\API\\AppV1\\Articoli', '1'),
(NULL, 'app-v1', 'retrieve', 'interventi', 'Modules\\Interventi\\API\\AppV1\\Interventi', '1'),
(NULL, 'app-v1', 'retrieve', 'interventi-cleanup', 'Modules\\Interventi\\API\\AppV1\\Interventi', '1'),
(NULL, 'app-v1', 'retrieve', 'intervento', 'Modules\\Interventi\\API\\AppV1\\Interventi', '1'),
(NULL, 'app-v1', 'retrieve', 'sessioni', 'Modules\\Interventi\\API\\AppV1\\Sessioni', '1'),
(NULL, 'app-v1', 'retrieve', 'sessioni-cleanup', 'Modules\\Interventi\\API\\AppV1\\Sessioni', '1'),
(NULL, 'app-v1', 'retrieve', 'sessione', 'Modules\\Interventi\\API\\AppV1\\Sessioni', '1'),
(NULL, 'app-v1', 'retrieve', 'righe-intervento', 'Modules\\Interventi\\API\\AppV1\\Righe', '1'),
(NULL, 'app-v1', 'retrieve', 'righe-intervento-cleanup', 'Modules\\Interventi\\API\\AppV1\\Righe', '1'),
(NULL, 'app-v1', 'retrieve', 'riga-intervento', 'Modules\\Interventi\\API\\AppV1\\Righe', '1'),
(NULL, 'app-v1', 'retrieve', 'aliquote-iva', 'Modules\\Iva\\API\\AppV1\\AliquoteIva', '1'),
(NULL, 'app-v1', 'retrieve', 'aliquote-iva-cleanup', 'Modules\\Iva\\API\\AppV1\\AliquoteIva', '1'),
(NULL, 'app-v1', 'retrieve', 'aliquota-iva', 'Modules\\Iva\\API\\AppV1\\AliquoteIva', '1'),
(NULL, 'app-v1', 'retrieve', 'impostazioni', 'Modules\\Impostazioni\\API\\AppV1\\Impostazioni', '1'),
(NULL, 'app-v1', 'retrieve', 'impostazioni-cleanup', 'Modules\\Impostazioni\\API\\AppV1\\Impostazioni', '1'),
(NULL, 'app-v1', 'retrieve', 'impostazione', 'Modules\\Impostazioni\\API\\AppV1\\Impostazioni', '1');
(NULL, 'app-v1', 'create', 'login', 'API\\App\\v1\\Login', '1'),
(NULL, 'app-v1', 'retrieve', 'anagrafiche', 'API\\App\\v1\\Anagrafiche', '1'),
(NULL, 'app-v1', 'retrieve', 'anagrafiche-cleanup', 'API\\App\\v1\\Anagrafiche', '1'),
(NULL, 'app-v1', 'retrieve', 'anagrafica', 'API\\App\\v1\\Anagrafiche', '1'),
(NULL, 'app-v1', 'retrieve', 'sedi', 'API\\App\\v1\\Sedi', '1'),
(NULL, 'app-v1', 'retrieve', 'sedi-cleanup', 'API\\App\\v1\\Sedi', '1'),
(NULL, 'app-v1', 'retrieve', 'sede', 'API\\App\\v1\\Sedi', '1'),
(NULL, 'app-v1', 'retrieve', 'referenti', 'API\\App\\v1\\Referenti', '1'),
(NULL, 'app-v1', 'retrieve', 'referenti-cleanup', 'API\\App\\v1\\Referenti', '1'),
(NULL, 'app-v1', 'retrieve', 'referente', 'API\\App\\v1\\Referenti', '1'),
(NULL, 'app-v1', 'retrieve', 'impianti', 'API\\App\\v1\\Impianti', '1'),
(NULL, 'app-v1', 'retrieve', 'impianti-cleanup', 'API\\App\\v1\\Impianti', '1'),
(NULL, 'app-v1', 'retrieve', 'impianto', 'API\\App\\v1\\Impianti', '1'),
(NULL, 'app-v1', 'retrieve', 'stati-intervento', 'API\\App\\v1\\StatiIntervento', '1'),
(NULL, 'app-v1', 'retrieve', 'stati-intervento-cleanup', 'API\\App\\v1\\StatiIntervento', '1'),
(NULL, 'app-v1', 'retrieve', 'stato-intervento', 'API\\App\\v1\\StatiIntervento', '1'),
(NULL, 'app-v1', 'retrieve', 'tipi-intervento', 'API\\App\\v1\\TipiIntervento', '1'),
(NULL, 'app-v1', 'retrieve', 'tipi-intervento-cleanup', 'API\\App\\v1\\TipiIntervento', '1'),
(NULL, 'app-v1', 'retrieve', 'tipo-intervento', 'API\\App\\v1\\TipiIntervento', '1'),
(NULL, 'app-v1', 'retrieve', 'articoli', 'API\\App\\v1\\Articoli', '1'),
(NULL, 'app-v1', 'retrieve', 'articoli-cleanup', 'API\\App\\v1\\Articoli', '1'),
(NULL, 'app-v1', 'retrieve', 'articolo', 'API\\App\\v1\\Articoli', '1'),
(NULL, 'app-v1', 'retrieve', 'interventi', 'API\\App\\v1\\Interventi', '1'),
(NULL, 'app-v1', 'retrieve', 'interventi-cleanup', 'API\\App\\v1\\Interventi', '1'),
(NULL, 'app-v1', 'retrieve', 'intervento', 'API\\App\\v1\\Interventi', '1'),
(NULL, 'app-v1', 'retrieve', 'sessioni', 'API\\App\\v1\\Sessioni', '1'),
(NULL, 'app-v1', 'retrieve', 'sessioni-cleanup', 'API\\App\\v1\\Sessioni', '1'),
(NULL, 'app-v1', 'retrieve', 'sessione', 'API\\App\\v1\\Sessioni', '1'),
(NULL, 'app-v1', 'retrieve', 'righe-intervento', 'API\\App\\v1\\Righe', '1'),
(NULL, 'app-v1', 'retrieve', 'righe-intervento-cleanup', 'API\\App\\v1\\Righe', '1'),
(NULL, 'app-v1', 'retrieve', 'riga-intervento', 'API\\App\\v1\\Righe', '1'),
(NULL, 'app-v1', 'retrieve', 'aliquote-iva', 'API\\App\\v1\\AliquoteIva', '1'),
(NULL, 'app-v1', 'retrieve', 'aliquote-iva-cleanup', 'API\\App\\v1\\AliquoteIva', '1'),
(NULL, 'app-v1', 'retrieve', 'aliquota-iva', 'API\\App\\v1\\AliquoteIva', '1'),
(NULL, 'app-v1', 'retrieve', 'impostazioni', 'API\\App\\v1\\Impostazioni', '1'),
(NULL, 'app-v1', 'retrieve', 'impostazioni-cleanup', 'API\\App\\v1\\Impostazioni', '1'),
(NULL, 'app-v1', 'retrieve', 'impostazione', 'API\\App\\v1\\Impostazioni', '1'),
(NULL, 'app-v1', 'create', 'intervento', 'API\\App\\v1\\Interventi', '1'),
(NULL, 'app-v1', 'update', 'intervento', 'API\\App\\v1\\Interventi', '1'),
(NULL, 'app-v1', 'delete', 'intervento', 'API\\App\\v1\\Interventi', '1'),
(NULL, 'app-v1', 'delete', 'sessione', 'API\\App\\v1\\Sessioni', '1'),
(NULL, 'app-v1', 'create', 'sessione', 'API\\App\\v1\\Sessioni', '1'),
(NULL, 'app-v1', 'update', 'sessione', 'API\\App\\v1\\Sessioni', '1'),
(NULL, 'app-v1', 'create', 'riga-intervento', 'API\\App\\v1\\Righe', '1'),
(NULL, 'app-v1', 'update', 'riga-intervento', 'API\\App\\v1\\Righe', '1'),
(NULL, 'app-v1', 'delete', 'riga-intervento', 'API\\App\\v1\\Righe', '1');
-- Impostazioni relative all'applicazione
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`) VALUES