Fix rimozione Interventi via API

This commit is contained in:
Thomas Zilio 2020-08-06 16:22:32 +02:00
parent 874a9d528f
commit 97a3e9f9de
3 changed files with 20 additions and 1 deletions

View File

@ -3,6 +3,7 @@
namespace Modules\Interventi;
use Common\Document;
use Illuminate\Database\Eloquent\SoftDeletes;
use Modules\Anagrafiche\Anagrafica;
use Modules\Contratti\Contratto;
use Modules\Preventivi\Preventivo;
@ -14,6 +15,7 @@ use Util\Generator;
class Intervento extends Document
{
use ReferenceTrait;
//use SoftDeletes;
use RecordTrait;

View File

@ -216,21 +216,35 @@ abstract class AppResource extends Resource implements RetrieveInterface, Create
// Ottiene il valore successivo della colonna di tipo AUTO_INCREMENT
$next_autoincrement = $database->fetchOne('SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '.prepare($table_name).' AND TABLE_SCHEMA = '.prepare($db_name))['AUTO_INCREMENT'];
/*
// Ottiene l'ultimo record con data precedente a quella impostata
$last_id = null;
if ($last_sync_at) {
$last_record = $database->fetchOne('SELECT '.$column.' AS id FROM '.$table_name.' WHERE created_at <= '.prepare($last_sync_at).' ORDER BY '.$column.' DESC');
$last_id = $last_record['id'];
}
*/
// Ottiene i vuoti all'interno della sequenza AUTO_INCREMENT
$query = 'SELECT (t1.'.$column.' + 1) AS start, (SELECT MIN(t3.'.$column.') - 1 FROM '.$table_name.' t3 WHERE t3.'.$column.' > t1.'.$column.') AS end FROM '.$table_name.' t1 WHERE NOT EXISTS (SELECT t2.'.$column.' FROM '.$table_name.' t2 WHERE t2.'.$column.' = t1.'.$column.' + 1)';
/*
if ($last_id) {
$query .= ' AND t1.'.$column.' >= '.prepare($last_id);
}
*/
$query .= ' ORDER BY start';
$steps = $database->fetchArray($query);
// Gestione dell'eliminazione dei primi record della tabella
$exists_first = $database->fetchNum('SELECT * FROM '.$table_name.' WHERE '.$column.' = 1');
if (!$exists_first) {
$first = $database->fetchOne('SELECT MIN('.$column.') AS min FROM '.$table_name);
$steps[] = [
'start' => 1,
'end' => $first['min'] - 1,
];
}
$total = [];
foreach ($steps as $step) {
if ($step['end'] == null) {

View File

@ -66,7 +66,10 @@ class Interventi extends AppResource
':id_tecnico_q2' => $id_tecnico,
]);
return array_column($records, 'id');
$interventi = array_column($records, 'id');
$mancanti = $this->getMissingIDs('in_interventi', 'id', $last_sync_at);
return array_merge($mancanti, $interventi);
}
public function getModifiedRecords($last_sync_at)