site = $site; } public function collection(Collection $rows) { /** @var \App\Models\User */ $user = auth()->user(); /** @var \App\Models\Site */ $site = Site::where('id', $user->selected_site_id)->firstOrFail(); foreach ($rows as $row) { $employee = Employee::where('matricule', $row->get('matricule_sirh'))->first(); if (!$employee) { $this->importedFailed[] = $row; Log::debug(sprintf('Employee Import Remove, skipped (Employee not found) %s', $row->implode(' | '))); continue; } if (!$row->get('date_fin_sirh')) { $this->importedFailed[] = $row; continue; } if (Carbon::createFromFormat('d/m/Y', $row->get('date_fin_sirh')) < Carbon::now()) { $employee->delete(); $this->removedCount += 1; } } } public function rules(): array { return [ 'matricule_sirh' => 'required|digits_between:7,8', 'nom_sirh' => 'required|string', 'prenom_sirh' => 'required|string', 'date_fin_sirh' => 'required|string|date_format:d/m/Y', 'societe_groupe' => 'required|integer', 'libelle_societe_groupe' => 'required|string', 'site_groupe' => 'required|integer', 'libelle_site_groupe' => 'required|string' ]; } public function getCsvSettings(): array { return [ 'input_encoding' => 'UTF-8', 'delimiter' => ';' ]; } /** * @param Failure[] $failures */ public function onFailure(Failure ...$failures) { foreach ($failures as $failure) { $this->errorMessages[] = sprintf( "\nLigne %d :\n%s\nDonnée:\n%s\n", $failure->row(), \implode("\n", $failure->errors()), \implode(", ", $failure->values()) ); } } }