mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-02-10 00:20:51 +01:00
Aggiunta log rimozione sessioni per velocizzare sincronizzazione app
This commit is contained in:
parent
e13ad96b65
commit
4e573c53df
@ -38,6 +38,7 @@ use Modules\TipiIntervento\Tipo as TipoSessione;
|
|||||||
use Plugins\ComponentiImpianti\Componente;
|
use Plugins\ComponentiImpianti\Componente;
|
||||||
use Plugins\ListinoClienti\DettaglioPrezzo;
|
use Plugins\ListinoClienti\DettaglioPrezzo;
|
||||||
use Plugins\PianificazioneInterventi\Promemoria;
|
use Plugins\PianificazioneInterventi\Promemoria;
|
||||||
|
use Models\OperationLog;
|
||||||
|
|
||||||
$modulo_impianti = Modules::get('Impianti');
|
$modulo_impianti = Modules::get('Impianti');
|
||||||
$plugin_impianti = Plugin::pool('Impianti');
|
$plugin_impianti = Plugin::pool('Impianti');
|
||||||
@ -906,6 +907,13 @@ switch (post('op')) {
|
|||||||
|
|
||||||
$dbo->query('DELETE FROM in_interventi_tecnici WHERE id='.prepare($id_sessione));
|
$dbo->query('DELETE FROM in_interventi_tecnici WHERE id='.prepare($id_sessione));
|
||||||
|
|
||||||
|
// Log specifico per la rimozione sessione
|
||||||
|
OperationLog::setInfo('id_module', $id_module);
|
||||||
|
OperationLog::setInfo('id_plugin', $id_plugin);
|
||||||
|
OperationLog::setInfo('id_record', $id_record);
|
||||||
|
OperationLog::setInfo('options', $id_sessione);
|
||||||
|
OperationLog::build(post('op'));
|
||||||
|
|
||||||
// Notifica rimozione dell' intervento al tecnico
|
// Notifica rimozione dell' intervento al tecnico
|
||||||
if (setting('Notifica al tecnico la rimozione della sessione dall\'attività')) {
|
if (setting('Notifica al tecnico la rimozione della sessione dall\'attività')) {
|
||||||
if (!empty($tecnico['email'])) {
|
if (!empty($tecnico['email'])) {
|
||||||
|
@ -29,41 +29,18 @@ class SessioniInterventi extends AppResource
|
|||||||
{
|
{
|
||||||
public function getCleanupData($last_sync_at)
|
public function getCleanupData($last_sync_at)
|
||||||
{
|
{
|
||||||
// Periodo per selezionare interventi
|
// TODO: modificare introducendo deleted_at su sessioni
|
||||||
$mesi_precedenti = intval(setting('Mesi per lo storico delle Attività'));
|
return database()
|
||||||
$today = new Carbon();
|
->table('zz_operations')
|
||||||
$start = $today->copy()->subMonths($mesi_precedenti);
|
->select('zz_operations.options')
|
||||||
$end = $today->copy()->addMonth();
|
->distinct()
|
||||||
|
->join('zz_modules', 'zz_modules.id', '=', 'zz_operations.id_module')
|
||||||
// Informazioni sull'utente
|
->where('zz_modules.name', '=', 'Interventi')
|
||||||
$user = \Auth::user();
|
->where('zz_operations.op', '=', 'delete_sessione')
|
||||||
$id_tecnico = $user->id_anagrafica;
|
->whereNotNull('zz_operations.options')
|
||||||
|
->where('zz_operations.created_at', '>', $last_sync_at)
|
||||||
// Elenco di interventi di interesse
|
->pluck('zz_operations.options')
|
||||||
$risorsa_interventi = $this->getRisorsaInterventi();
|
->toArray();
|
||||||
$interventi = $risorsa_interventi->getCleanupData($last_sync_at);
|
|
||||||
|
|
||||||
// Elenco sessioni degli interventi da rimuovere
|
|
||||||
$da_interventi = [];
|
|
||||||
if (!empty($interventi)) {
|
|
||||||
$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.id IN ('.implode(',', $interventi).')
|
|
||||||
OR (orario_fine NOT BETWEEN :period_start AND :period_end)';
|
|
||||||
$records = database()->fetchArray($query, [
|
|
||||||
':period_end' => $end,
|
|
||||||
':period_start' => $start,
|
|
||||||
]);
|
|
||||||
$da_interventi = array_column($records, 'id');
|
|
||||||
}
|
|
||||||
|
|
||||||
$mancanti = $this->getMissingIDs('in_interventi_tecnici', 'id', $last_sync_at);
|
|
||||||
|
|
||||||
$results = array_unique(array_merge($da_interventi, $mancanti));
|
|
||||||
|
|
||||||
return $results;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getModifiedRecords($last_sync_at)
|
public function getModifiedRecords($last_sync_at)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user