Filtro tariffe contratti per api APP

This commit is contained in:
Matteo 2024-03-13 11:17:37 +01:00
parent 8aaecb8218
commit 47e1a4a1d0
2 changed files with 31 additions and 2 deletions

View File

@ -44,6 +44,15 @@ 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`
@ -55,7 +64,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(setting('Lingua')).") LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche_lang`.`id_record` = `an_tipianagrafiche`.`id` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(setting('Lingua')).")
WHERE 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 // Filtro per data
if ($last_sync_at) { if ($last_sync_at) {
@ -86,4 +95,9 @@ class Contratti extends AppResource implements RetrieveInterface
return $record; return $record;
} }
protected function getRisorsaInterventi()
{
return new Interventi();
}
} }

View File

@ -44,13 +44,23 @@ class TariffeContratti extends AppResource
public function getModifiedRecords($last_sync_at) 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 $query = 'SELECT
CONCAT(`idtipointervento`, "-", `idcontratto`) AS id, CONCAT(`idtipointervento`, "-", `idcontratto`) AS id,
`co_contratti_tipiintervento`.`updated_at` `co_contratti_tipiintervento`.`updated_at`
FROM `co_contratti_tipiintervento` FROM `co_contratti_tipiintervento`
INNER JOIN `co_contratti` ON `co_contratti`.`id` = `co_contratti_tipiintervento`.`idcontratto` INNER JOIN `co_contratti` ON `co_contratti`.`id` = `co_contratti_tipiintervento`.`idcontratto`
INNER JOIN `co_staticontratti` ON `co_staticontratti`.`id` = `co_contratti`.`idstato` 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 // Filtro per data
if ($last_sync_at) { if ($last_sync_at) {
@ -83,4 +93,9 @@ class TariffeContratti extends AppResource
return $record; return $record;
} }
protected function getRisorsaContratti()
{
return new Contratti();
}
} }