2022-09-30 17:59:29 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace App\Jobs;
|
|
|
|
|
|
|
|
|
|
use App\Lib\CafelApi\Models\CafelMepPoultry;
|
|
|
|
|
use App\Models\CafelPoultryMiseEnPlace;
|
|
|
|
|
|
|
|
|
|
class CafelMepPoultryJob extends CafelJobs
|
|
|
|
|
{
|
|
|
|
|
/**
|
|
|
|
|
* Execute the job.
|
|
|
|
|
*
|
|
|
|
|
* @return void
|
|
|
|
|
*/
|
|
|
|
|
public function handle()
|
|
|
|
|
{
|
|
|
|
|
$dateDebut = now()->subDays(config('cafel.mises_en_places_retain', 370));
|
|
|
|
|
$this->syncWithCafelApi(
|
|
|
|
|
CafelMepPoultry::class,
|
2022-10-21 10:10:38 +02:00
|
|
|
'cafel.ldc.mepvolailles',
|
2022-09-30 17:59:29 +02:00
|
|
|
[
|
|
|
|
|
'dateDebut' => $dateDebut->format('Y-m-d'),
|
|
|
|
|
'dateFin' => now()->format('Y-m-d')
|
|
|
|
|
],
|
|
|
|
|
function (array $row) {
|
2022-10-27 17:36:46 +02:00
|
|
|
// * Explode inuav
|
|
|
|
|
if (\array_key_exists('inuav_codes', $row)) {
|
|
|
|
|
$row['inuav_codes'] = explode(',', $row['inuav_codes']);
|
|
|
|
|
}
|
|
|
|
|
|
2022-09-30 17:59:29 +02:00
|
|
|
// * Validate row data
|
|
|
|
|
CafelMepPoultry::validateDataRow($row);
|
|
|
|
|
|
|
|
|
|
/** @var array Unique Key columns */
|
|
|
|
|
$uniqueColumnsKey = [];
|
|
|
|
|
foreach (CafelMepPoultry::UNIQUE_COLUMN_KEYS as $uField) {
|
|
|
|
|
$uniqueColumnsKey[$uField] = $row[$uField];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
forward_static_call_array(
|
|
|
|
|
[CafelPoultryMiseEnPlace::class, 'updateOrCreate'],
|
|
|
|
|
[$uniqueColumnsKey, $row]
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
$this->mailInvalidRows(CafelMepPoultry::UNIQUE_COLUMN_KEYS, CafelMepPoultry::class);
|
|
|
|
|
|
|
|
|
|
// * DeleteOld MEPs
|
|
|
|
|
// * Garder une interstice de X jours entre la suppression et ce qu'on récupère de CAFEL
|
|
|
|
|
CafelPoultryMiseEnPlace::whereDate('transfert_date', '<', $dateDebut->subDays(
|
|
|
|
|
config('cafel.mises_en_places_retain', 370)
|
|
|
|
|
))->delete();
|
|
|
|
|
}
|
|
|
|
|
}
|