diff --git a/src/API/App/v1/Contratti.php b/src/API/App/v1/Contratti.php index 6ddc65e5e..ef6ff5f06 100644 --- a/src/API/App/v1/Contratti.php +++ b/src/API/App/v1/Contratti.php @@ -44,6 +44,15 @@ class Contratti extends AppResource implements RetrieveInterface 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 DISTINCT(`co_contratti`.`id`) AS id, `co_contratti`.`updated_at` @@ -55,7 +64,7 @@ class Contratti extends AppResource implements RetrieveInterface 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(setting('Lingua')).") WHERE - `an_tipianagrafiche_lang`.`name` = 'Cliente' AND `co_staticontratti`.`is_pianificabile` = 1 AND `an_anagrafiche`.`deleted_at` IS NULL"; + `an_tipianagrafiche_lang`.`name` = '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"; // Filtro per data if ($last_sync_at) { @@ -86,4 +95,9 @@ class Contratti extends AppResource implements RetrieveInterface return $record; } + + protected function getRisorsaInterventi() + { + return new Interventi(); + } } diff --git a/src/API/App/v1/TariffeContratti.php b/src/API/App/v1/TariffeContratti.php index 252706aca..22ab3fb56 100644 --- a/src/API/App/v1/TariffeContratti.php +++ b/src/API/App/v1/TariffeContratti.php @@ -44,13 +44,23 @@ class TariffeContratti extends AppResource public function getModifiedRecords($last_sync_at) { + + $risorsa_contratti = $this->getRisorsaContratti(); + $contratti = $risorsa_contratti->getModifiedRecords(null); + + if (empty($contratti)) { + return []; + } + + $id_contratti = array_keys($contratti); + $query = 'SELECT CONCAT(`idtipointervento`, "-", `idcontratto`) AS id, `co_contratti_tipiintervento`.`updated_at` FROM `co_contratti_tipiintervento` INNER JOIN `co_contratti` ON `co_contratti`.`id` = `co_contratti_tipiintervento`.`idcontratto` INNER JOIN `co_staticontratti` ON `co_staticontratti`.`id` = `co_contratti`.`idstato` - WHERE `co_staticontratti`.`is_pianificabile` = 1'; + WHERE `co_staticontratti`.`is_pianificabile` = 1 AND `co_contratti`.`id` IN ('.implode(',', $id_contratti).')'; // Filtro per data if ($last_sync_at) { @@ -83,4 +93,9 @@ class TariffeContratti extends AppResource return $record; } + + protected function getRisorsaContratti() + { + return new Contratti(); + } }