İlk temizlik tamamlandı bir önceki projeden
This commit is contained in:
@@ -0,0 +1,135 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services\LineListTriggers\Triggers;
|
||||
|
||||
use App\Services\LineListTriggers\Base\BaseLineListTrigger;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use App\Jobs\ExecuteSaveTriggerJob;
|
||||
|
||||
/**
|
||||
* Paint System Sync Trigger
|
||||
*
|
||||
* Syncs data to paint_systems and color_systems tables
|
||||
*/
|
||||
class PaintSystemSyncTrigger extends BaseLineListTrigger
|
||||
{
|
||||
public function getName(): string
|
||||
{
|
||||
return 'Paint System Sync';
|
||||
}
|
||||
|
||||
public function getDependentFields(): array
|
||||
{
|
||||
return [
|
||||
'painting_cycle',
|
||||
'rev',
|
||||
'fluid_code',
|
||||
'fluid_ru',
|
||||
'design_temperature',
|
||||
'working_temperature',
|
||||
'unit'
|
||||
];
|
||||
}
|
||||
|
||||
protected function process($lineListData, $beforeData, array $context): array
|
||||
{
|
||||
$count = 0;
|
||||
|
||||
if (!empty($lineListData->painting_cycle)) {
|
||||
// Update or insert into paint_systems
|
||||
$existingRecord = DB::table('paint_systems')
|
||||
->where('paint_cycle', $lineListData->painting_cycle)
|
||||
->first();
|
||||
|
||||
if ($existingRecord) {
|
||||
DB::table('paint_systems')
|
||||
->where('paint_cycle', $lineListData->painting_cycle)
|
||||
->update([
|
||||
'paint_cycle' => $lineListData->painting_cycle,
|
||||
'revision' => $lineListData->rev ?? '',
|
||||
]);
|
||||
|
||||
ExecuteSaveTriggerJob::dispatch(
|
||||
'paint_systems',
|
||||
['key' => ['id' => $existingRecord->id]],
|
||||
['id' => $existingRecord->id],
|
||||
['paint_cycle' => $lineListData->painting_cycle, 'revision' => $lineListData->rev ?? ''],
|
||||
$existingRecord,
|
||||
'update'
|
||||
);
|
||||
} else {
|
||||
$insertedId = DB::table('paint_systems')->insertGetId([
|
||||
'paint_cycle' => $lineListData->painting_cycle,
|
||||
'revision' => $lineListData->rev ?? '',
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
]);
|
||||
|
||||
$newRecord = DB::table('paint_systems')->find($insertedId);
|
||||
|
||||
ExecuteSaveTriggerJob::dispatch(
|
||||
'paint_systems',
|
||||
['key' => ['id' => $insertedId]],
|
||||
['id' => $insertedId],
|
||||
['paint_cycle' => $lineListData->painting_cycle, 'revision' => $lineListData->rev ?? ''],
|
||||
$newRecord,
|
||||
'insert'
|
||||
);
|
||||
}
|
||||
|
||||
// Update or insert into color_systems
|
||||
$colorSystemRecord = DB::table('color_systems')
|
||||
->where('fluid_code', $lineListData->fluid_code)
|
||||
->first();
|
||||
|
||||
$colorSystemData = [
|
||||
'fluid_code_description' => $lineListData->fluid_ru ?? "",
|
||||
'fluid_code' => $lineListData->fluid_code,
|
||||
'design_temperature' => $lineListData->design_temperature ?? "",
|
||||
'working_temperature' => $lineListData->working_temperature ?? "",
|
||||
'unit' => $lineListData->unit ?? "",
|
||||
'updated_at' => now(),
|
||||
];
|
||||
|
||||
if ($colorSystemRecord) {
|
||||
DB::table('color_systems')
|
||||
->where('id', $colorSystemRecord->id)
|
||||
->update($colorSystemData);
|
||||
|
||||
ExecuteSaveTriggerJob::dispatch(
|
||||
'color_systems',
|
||||
['key' => ['id' => $colorSystemRecord->id]],
|
||||
['id' => $colorSystemRecord->id],
|
||||
$colorSystemData,
|
||||
$colorSystemRecord,
|
||||
'update'
|
||||
);
|
||||
} else {
|
||||
$colorSystemData['created_at'] = now();
|
||||
$insertedId = DB::table('color_systems')->insertGetId($colorSystemData);
|
||||
$newColorRecord = DB::table('color_systems')->find($insertedId);
|
||||
|
||||
ExecuteSaveTriggerJob::dispatch(
|
||||
'color_systems',
|
||||
['key' => ['id' => $insertedId]],
|
||||
['id' => $insertedId],
|
||||
$colorSystemData,
|
||||
$newColorRecord,
|
||||
'insert'
|
||||
);
|
||||
}
|
||||
|
||||
$count++;
|
||||
}
|
||||
|
||||
Log::debug("Sync Paint System $count row update or create");
|
||||
|
||||
return [
|
||||
'success' => true,
|
||||
'processed_records' => $count
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user