diff --git a/app/Http/Controllers/Imports/ImportPermitsReminderController.php b/app/Http/Controllers/Imports/ImportPermitsReminderController.php index 2f82b628..6ccc7641 100644 --- a/app/Http/Controllers/Imports/ImportPermitsReminderController.php +++ b/app/Http/Controllers/Imports/ImportPermitsReminderController.php @@ -40,7 +40,7 @@ class ImportPermitsReminderController $row['reminder_date'] = $this->changeExcelDate($row['reminder_date']); $validator = Validator::make($row, [ - 'model' => 'required|unique:permits_reminders,model', + 'model' => 'required', 'expiry_date' => 'required|date|after_or_equal:today', 'reminder_date' => 'required|date|after_or_equal:today', ]); @@ -48,17 +48,31 @@ class ImportPermitsReminderController if ($validator->fails()) { $row['status'] = 'failed'; $row['message'] = $validator->errors()->all(); - $returnArray[] = $row; } else { - $row['created_at'] = Carbon::now(); - $row['updated_at'] = Carbon::now(); - $successRows[] = $row; + $existingRecord = PermitsReminder::where('model', $row['model'])->first(); + + if ($existingRecord) { + $existingRecord->update([ + 'expiry_date' => $row['expiry_date'], + 'reminder_date' => $row['reminder_date'], + ]); + + $row['status'] = 'Updated'; + $row['message'] = 'Record has been updated'; + $returnArray[] = $row; + } else { + // Add to successful rows for batch insertion + $row['created_at'] = Carbon::now(); + $row['updated_at'] = Carbon::now(); + $successRows[] = $row; + } } } + // Insert only if there are new successful rows if (!empty($successRows)) { - PermitsReminder::insert($successRows); // Insert only if there are successful rows + PermitsReminder::insert($successRows); } $successCount = count($successRows); diff --git a/routes/api.php b/routes/api.php index 9c8227f1..5b419754 100644 --- a/routes/api.php +++ b/routes/api.php @@ -34,8 +34,6 @@ Route::group(['middleware' => 'api', 'prefix' => 'v1', 'as' => 'api.'], function Route::post('/import/update-debtor/f614e339d7058904a831aad742e24d55', 'Imports\ImportUpdateDebtorController@import')->name('debtor.import'); - Route::post('/import/upload-permits-reminder', 'Imports\ImportPermitsReminderController@import')->name('permits_reminder.upload'); - require __DIR__ . '/company.php'; require __DIR__ . '/document.php'; diff --git a/routes/permits_reminder.php b/routes/permits_reminder.php index ee254349..efad81ce 100644 --- a/routes/permits_reminder.php +++ b/routes/permits_reminder.php @@ -9,3 +9,5 @@ Route::group(['prefix' => 'permits-reminder', 'as' => 'permits_reminder.', 'name Route::post('/{id}/update', 'UpdatePermitsReminderController@update')->name('update'); }); +Route::post('/import/upload-permits-reminder', 'Imports\ImportPermitsReminderController@import')->name('permits_reminder.upload'); +