Fix filtro per attività in api contratti e impianti
This commit is contained in:
parent
f3fa95033b
commit
2e915b70ce
|
@ -44,14 +44,6 @@ class Contratti extends AppResource implements RetrieveInterface
|
||||||
|
|
||||||
public function getModifiedRecords($last_sync_at)
|
public function getModifiedRecords($last_sync_at)
|
||||||
{
|
{
|
||||||
$risorsa_interventi = $this->getRisorsaInterventi();
|
|
||||||
$interventi = $risorsa_interventi->getModifiedRecords(null);
|
|
||||||
if (empty($interventi)) {
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
|
|
||||||
$id_interventi = array_keys($interventi);
|
|
||||||
|
|
||||||
$query = 'SELECT
|
$query = 'SELECT
|
||||||
DISTINCT(`co_contratti`.`id`) AS id,
|
DISTINCT(`co_contratti`.`id`) AS id,
|
||||||
`co_contratti`.`updated_at`
|
`co_contratti`.`updated_at`
|
||||||
|
@ -63,7 +55,7 @@ class Contratti extends AppResource implements RetrieveInterface
|
||||||
INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` = `an_tipianagrafiche`.`id`
|
INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` = `an_tipianagrafiche`.`id`
|
||||||
LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche_lang`.`id_record` = `an_tipianagrafiche`.`id` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).")
|
LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche_lang`.`id_record` = `an_tipianagrafiche`.`id` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).")
|
||||||
WHERE
|
WHERE
|
||||||
`an_tipianagrafiche_lang`.`title` = 'Cliente' AND `co_staticontratti`.`is_pianificabile` = 1 AND `an_anagrafiche`.`deleted_at` IS NULL AND (SELECT COUNT(id) FROM in_interventi WHERE id_contratto=co_contratti.id AND id IN (".implode(',', $id_interventi).')) > 0';
|
`an_tipianagrafiche_lang`.`title` = 'Cliente' AND `co_staticontratti`.`is_pianificabile` = 1 AND `an_anagrafiche`.`deleted_at` IS NULL";
|
||||||
|
|
||||||
// Filtro per data
|
// Filtro per data
|
||||||
if ($last_sync_at) {
|
if ($last_sync_at) {
|
||||||
|
|
|
@ -65,16 +65,7 @@ class Impianti extends AppResource
|
||||||
if ($limite_impianti == 1 && !\Auth::user()->is_admin) {
|
if ($limite_impianti == 1 && !\Auth::user()->is_admin) {
|
||||||
$id_tecnico = \Auth::user()->id_anagrafica;
|
$id_tecnico = \Auth::user()->id_anagrafica;
|
||||||
|
|
||||||
// Elenco di interventi di interesse
|
$statement->where('idtecnico', $id_tecnico);
|
||||||
$risorsa_interventi = $this->getRisorsaInterventi();
|
|
||||||
// Da applicazione, i Clienti sono sincronizzati prima degli Interventi: last_sync_at permette di identificare le stesse modifiche
|
|
||||||
$interventi = $risorsa_interventi->getModifiedRecords(null);
|
|
||||||
$id_interventi = array_keys($interventi);
|
|
||||||
|
|
||||||
$rs_impianti = database()->fetchArray('SELECT idimpianto FROM my_impianti_interventi WHERE idintervento IN ('.implode(',', $id_interventi).')');
|
|
||||||
$id_impianti = array_column($rs_impianti, 'idimpianto');
|
|
||||||
|
|
||||||
$statement->where('idtecnico', $id_tecnico)->orWhereIn('id', $id_impianti);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$records = $statement->get();
|
$records = $statement->get();
|
||||||
|
|
Loading…
Reference in New Issue