mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-02-11 09:00:42 +01:00
Risorse Interventi e Sessioni per applicazione
This commit is contained in:
parent
21bb91ce05
commit
1bb8e6e67a
@ -16,7 +16,7 @@ class Anagrafiche extends AppResource
|
|||||||
|
|
||||||
protected function getData($last_sync_at)
|
protected function getData($last_sync_at)
|
||||||
{
|
{
|
||||||
$statement = Anagrafica::withTrashed()->select('idanagrafica')
|
$statement = Anagrafica::select('idanagrafica')
|
||||||
->whereHas('tipi', function (Builder $query) {
|
->whereHas('tipi', function (Builder $query) {
|
||||||
$query->where('descrizione', '=', 'Cliente');
|
$query->where('descrizione', '=', 'Cliente');
|
||||||
});
|
});
|
||||||
|
@ -19,7 +19,7 @@ class Referenti extends AppResource implements RetrieveInterface
|
|||||||
INNER JOIN an_anagrafiche ON an_anagrafiche.idanagrafica = an_referenti.idanagrafica
|
INNER JOIN an_anagrafiche ON an_anagrafiche.idanagrafica = an_referenti.idanagrafica
|
||||||
INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche_anagrafiche.idanagrafica = an_anagrafiche.idanagrafica
|
INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche_anagrafiche.idanagrafica = an_anagrafiche.idanagrafica
|
||||||
INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica = an_tipianagrafiche.idtipoanagrafica
|
INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica = an_tipianagrafiche.idtipoanagrafica
|
||||||
WHERE an_tipianagrafiche.descrizione = 'Cliente'";
|
WHERE an_tipianagrafiche.descrizione = 'Cliente' AND an_anagrafiche.deleted_at IS NULL";
|
||||||
|
|
||||||
// Filtro per data
|
// Filtro per data
|
||||||
if ($last_sync_at) {
|
if ($last_sync_at) {
|
||||||
@ -35,11 +35,13 @@ class Referenti extends AppResource implements RetrieveInterface
|
|||||||
protected function getDetails($id)
|
protected function getDetails($id)
|
||||||
{
|
{
|
||||||
// Gestione della visualizzazione dei dettagli del record
|
// Gestione della visualizzazione dei dettagli del record
|
||||||
$query = 'SELECT an_referenti.id,
|
$query = 'SELECT id,
|
||||||
an_referenti.nome,
|
idanagrafica AS id_anagrafica,
|
||||||
an_referenti.mansione,
|
IF(idsede = 0, NULL, idsede) AS id_sede,
|
||||||
an_referenti.telefono,
|
nome,
|
||||||
an_referenti.email
|
mansione,
|
||||||
|
telefono,
|
||||||
|
email
|
||||||
FROM an_referenti
|
FROM an_referenti
|
||||||
WHERE an_referenti.id = '.prepare($id);
|
WHERE an_referenti.id = '.prepare($id);
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ class Sedi extends AppResource
|
|||||||
INNER JOIN an_anagrafiche ON an_anagrafiche.idanagrafica = an_sedi.idanagrafica
|
INNER JOIN an_anagrafiche ON an_anagrafiche.idanagrafica = an_sedi.idanagrafica
|
||||||
INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche_anagrafiche.idanagrafica = an_anagrafiche.idanagrafica
|
INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche_anagrafiche.idanagrafica = an_anagrafiche.idanagrafica
|
||||||
INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica = an_tipianagrafiche.idtipoanagrafica
|
INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica = an_tipianagrafiche.idtipoanagrafica
|
||||||
WHERE an_tipianagrafiche.descrizione = 'Cliente'";
|
WHERE an_tipianagrafiche.descrizione = 'Cliente' AND an_anagrafiche.deleted_at IS NULL";
|
||||||
|
|
||||||
// Filtro per data
|
// Filtro per data
|
||||||
if ($last_sync_at) {
|
if ($last_sync_at) {
|
||||||
|
@ -1,64 +1,93 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Modules\Anagrafiche\API\AppV1;
|
namespace Modules\Interventi\API\AppV1;
|
||||||
|
|
||||||
use API\AppResource;
|
use API\AppResource;
|
||||||
|
use Auth;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
use Modules\Anagrafiche\Anagrafica;
|
|
||||||
|
|
||||||
class Anagrafiche extends AppResource
|
class Interventi extends AppResource
|
||||||
{
|
{
|
||||||
protected function getCleanupData()
|
protected function getCleanupData()
|
||||||
{
|
{
|
||||||
return $this->getDeleted('an_anagrafiche', 'idanagrafica');
|
// Periodo per selezionare interventi
|
||||||
|
$today = new Carbon();
|
||||||
|
$start = $today->copy()->subMonths(2);
|
||||||
|
$end = $today->copy()->addMonth(1);
|
||||||
|
|
||||||
|
// Informazioni sull'utente
|
||||||
|
$user = Auth::user();
|
||||||
|
$id_tecnico = $user->id_anagrafica;
|
||||||
|
|
||||||
|
$query = 'SELECT in_interventi.id FROM in_interventi WHERE
|
||||||
|
deleted_at IS NOT NULL
|
||||||
|
OR EXISTS(
|
||||||
|
SELECT orario_fine FROM in_interventi_tecnici WHERE
|
||||||
|
in_interventi_tecnici.idintervento = in_interventi.id
|
||||||
|
AND orario_fine NOT BETWEEN :period_start AND :period_end
|
||||||
|
AND idtecnico = :id_tecnico
|
||||||
|
)';
|
||||||
|
$records = database()->fetchArray($query, [
|
||||||
|
':period_end' => $end,
|
||||||
|
':period_start' => $start,
|
||||||
|
':id_tecnico' => $id_tecnico,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return array_column($records, 'id');
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getData($last_sync_at)
|
protected function getData($last_sync_at)
|
||||||
{
|
{
|
||||||
$statement = Anagrafica::withTrashed()->select('idanagrafica')
|
// Periodo per selezionare interventi
|
||||||
->whereHas('tipi', function (Builder $query) {
|
$today = new Carbon();
|
||||||
$query->where('descrizione', '=', 'Cliente');
|
$start = $today->copy()->subMonths(2);
|
||||||
});
|
$end = $today->copy()->addMonth(1);
|
||||||
|
|
||||||
|
// Informazioni sull'utente
|
||||||
|
$user = Auth::user();
|
||||||
|
$id_tecnico = $user->id_anagrafica;
|
||||||
|
|
||||||
|
$query = 'SELECT in_interventi.id FROM in_interventi WHERE
|
||||||
|
in_interventi.id IN (
|
||||||
|
SELECT idintervento FROM in_interventi_tecnici
|
||||||
|
WHERE in_interventi_tecnici.idintervento = in_interventi.id
|
||||||
|
AND in_interventi_tecnici.orario_fine BETWEEN :period_start AND :period_end
|
||||||
|
AND in_interventi_tecnici.idtecnico = :id_tecnico
|
||||||
|
)
|
||||||
|
AND deleted_at IS NULL';
|
||||||
|
|
||||||
// Filtro per data
|
// Filtro per data
|
||||||
if ($last_sync_at) {
|
if ($last_sync_at) {
|
||||||
$last_sync = new Carbon($last_sync_at);
|
$last_sync = new Carbon($last_sync_at);
|
||||||
$statement = $statement->where('updated_at', '>', $last_sync);
|
$query .= ' AND in_interventi.updated_at > '.prepare($last_sync);
|
||||||
}
|
}
|
||||||
|
$records = database()->fetchArray($query, [
|
||||||
|
':period_start' => $start,
|
||||||
|
':period_end' => $end,
|
||||||
|
':id_tecnico' => $id_tecnico,
|
||||||
|
]);
|
||||||
|
|
||||||
$results = $statement->get()
|
return array_column($records, 'id');
|
||||||
->pluck('idanagrafica');
|
|
||||||
|
|
||||||
return $results;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getDetails($id)
|
protected function getDetails($id)
|
||||||
{
|
{
|
||||||
// Gestione della visualizzazione dei dettagli del record
|
// Gestione della visualizzazione dei dettagli del record
|
||||||
$query = 'SELECT an_anagrafiche.idanagrafica AS id,
|
$query = "SELECT id,
|
||||||
an_anagrafiche.ragione_sociale,
|
codice,
|
||||||
an_anagrafiche.piva AS partita_iva,
|
richiesta,
|
||||||
an_anagrafiche.codice_fiscale,
|
data_richiesta,
|
||||||
an_anagrafiche.indirizzo,
|
descrizione,
|
||||||
an_anagrafiche.indirizzo2,
|
idanagrafica AS id_anagrafica,
|
||||||
an_anagrafiche.citta,
|
idtipointervento AS id_tipo_intervento,
|
||||||
an_anagrafiche.cap,
|
idstatointervento AS id_stato_intervento,
|
||||||
an_anagrafiche.provincia,
|
informazioniaggiuntive AS informazioni_aggiuntive,
|
||||||
an_anagrafiche.km,
|
IF(idsede_destinazione = 0, NULL, idsede_destinazione) AS id_sede,
|
||||||
IFNULL(an_anagrafiche.lat, 0.00) AS latitudine,
|
firma_file,
|
||||||
IFNULL(an_anagrafiche.lng, 0.00) AS longitudine,
|
IF(firma_data = '0000-00-00 00:00:00', '', firma_data) AS firma_data,
|
||||||
an_nazioni.nome AS nazione,
|
firma_nome
|
||||||
an_anagrafiche.fax,
|
FROM in_interventi
|
||||||
an_anagrafiche.telefono,
|
WHERE in_interventi.id = ".prepare($id);
|
||||||
an_anagrafiche.cellulare,
|
|
||||||
an_anagrafiche.email,
|
|
||||||
an_anagrafiche.sitoweb AS sito_web,
|
|
||||||
an_anagrafiche.note,
|
|
||||||
an_anagrafiche.deleted_at
|
|
||||||
FROM an_anagrafiche
|
|
||||||
LEFT OUTER JOIN an_nazioni ON an_anagrafiche.id_nazione = an_nazioni.id
|
|
||||||
WHERE an_anagrafiche.idanagrafica = '.prepare($id);
|
|
||||||
|
|
||||||
$record = database()->fetchOne($query);
|
$record = database()->fetchOne($query);
|
||||||
|
|
||||||
|
81
modules/interventi/src/API/AppV1/Sessioni.php
Normal file
81
modules/interventi/src/API/AppV1/Sessioni.php
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Interventi\API\AppV1;
|
||||||
|
|
||||||
|
use API\AppResource;
|
||||||
|
use Auth;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
|
||||||
|
class Sessioni extends AppResource
|
||||||
|
{
|
||||||
|
protected function getCleanupData()
|
||||||
|
{
|
||||||
|
// Periodo per selezionare interventi
|
||||||
|
$today = new Carbon();
|
||||||
|
$start = $today->copy()->subMonths(2);
|
||||||
|
$end = $today->copy()->addMonth(1);
|
||||||
|
|
||||||
|
// Informazioni sull'utente
|
||||||
|
$user = Auth::user();
|
||||||
|
$id_tecnico = $user->id_anagrafica;
|
||||||
|
|
||||||
|
$query = 'SELECT in_interventi_tecnici.id FROM in_interventi_tecnici
|
||||||
|
INNER JOIN in_interventi ON in_interventi_tecnici.idintervento = in_interventi.id
|
||||||
|
WHERE
|
||||||
|
in_interventi.deleted_at IS NOT NULL
|
||||||
|
OR (orario_fine NOT BETWEEN :period_start AND :period_end AND idtecnico = :id_tecnico)';
|
||||||
|
$records = database()->fetchArray($query, [
|
||||||
|
':period_end' => $end,
|
||||||
|
':period_start' => $start,
|
||||||
|
':id_tecnico' => $id_tecnico,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return array_column($records, 'id');
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function getData($last_sync_at)
|
||||||
|
{
|
||||||
|
// Periodo per selezionare interventi
|
||||||
|
$today = new Carbon();
|
||||||
|
$start = $today->copy()->subMonths(2);
|
||||||
|
$end = $today->copy()->addMonth(1);
|
||||||
|
|
||||||
|
// Informazioni sull'utente
|
||||||
|
$user = Auth::user();
|
||||||
|
$id_tecnico = $user->id_anagrafica;
|
||||||
|
|
||||||
|
$query = 'SELECT in_interventi_tecnici.id FROM in_interventi_tecnici
|
||||||
|
INNER JOIN in_interventi ON in_interventi_tecnici.idintervento = in_interventi.id
|
||||||
|
WHERE
|
||||||
|
in_interventi.deleted_at IS NULL
|
||||||
|
AND (orario_fine BETWEEN :period_start AND :period_end AND idtecnico = :id_tecnico)';
|
||||||
|
|
||||||
|
// Filtro per data
|
||||||
|
if ($last_sync_at) {
|
||||||
|
$last_sync = new Carbon($last_sync_at);
|
||||||
|
$query .= ' AND in_interventi_tecnici.updated_at > '.prepare($last_sync);
|
||||||
|
}
|
||||||
|
$records = database()->fetchArray($query, [
|
||||||
|
':period_start' => $start,
|
||||||
|
':period_end' => $end,
|
||||||
|
':id_tecnico' => $id_tecnico,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return array_column($records, 'id');
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function getDetails($id)
|
||||||
|
{
|
||||||
|
// Gestione della visualizzazione dei dettagli del record
|
||||||
|
$query = 'SELECT id,
|
||||||
|
idintervento AS id_intervento,
|
||||||
|
orario_inizio,
|
||||||
|
orario_fine
|
||||||
|
FROM in_interventi_tecnici
|
||||||
|
WHERE in_interventi_tecnici.id = '.prepare($id);
|
||||||
|
|
||||||
|
$record = database()->fetchOne($query);
|
||||||
|
|
||||||
|
return $record;
|
||||||
|
}
|
||||||
|
}
|
@ -146,4 +146,10 @@ INSERT INTO `zz_api_resources` (`id`, `version`, `type`, `resource`, `class`, `e
|
|||||||
(NULL, 'app-v1', 'retrieve', 'tipo-intervento', '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', 'Modules\\Articoli\\API\\AppV1\\Articoli', '1'),
|
||||||
(NULL, 'app-v1', 'retrieve', 'articoli-cleanup', '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', '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');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user