ldc-bogt/app/Jobs/CafelMepEggJob.php
2022-06-08 17:10:59 +02:00

49 lines
1.5 KiB
PHP

<?php
namespace App\Jobs;
use App\Lib\CafelApi\Models\CafelMepEgg;
use App\Models\CafelEggMiseEnPlace;
class CafelMepEggJob extends CafelJobs
{
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$dateDebut = now()->subDays(config('cafel.mises_en_places_retain', 370));
$this->syncWithCafelApi(
CafelMepEgg::class,
'cafel.ldc.mepoeufs',
[
'dateDebut' => $dateDebut->format('Y-m-d'),
'dateFin' => now()->format('Y-m-d')
],
function (array $row) {
// * Validate row data
CafelMepEgg::validateDataRow($row);
/** @var array Unique Key columns */
$uniqueColumnsKey = [];
foreach (CafelMepEgg::UNIQUE_COLUMN_KEYS as $uField) {
$uniqueColumnsKey[$uField] = $row[$uField];
}
forward_static_call_array(
[CafelEggMiseEnPlace::class, 'updateOrCreate'],
[$uniqueColumnsKey, $row]
);
}
);
$this->mailInvalidRows(CafelMepEgg::UNIQUE_COLUMN_KEYS, CafelMepEgg::class);
// * DeleteOld MEPs
// * Garder une interstice de X jours entre la suppression et ce qu'on récupère de CAFEL
CafelEggMiseEnPlace::whereDate('transfert_date', '<', $dateDebut->subDays(
config('cafel.mises_en_places_retain', 370)
))->delete();
}
}