|
Server : Apache/2.4.41 (Ubuntu) System : Linux vmi1525618.contaboserver.net 5.4.0-105-generic #119-Ubuntu SMP Mon Mar 7 18:49:24 UTC 2022 x86_64 User : www-data ( 33) PHP Version : 8.2.12 Disable Function : NONE Directory : /var/www/paras.theinteractive.in/app/Imports/ |
Upload File : |
<?php
namespace App\Imports;
use App\Models\Classes;
use App\Models\Testresult;
use Maatwebsite\Excel\Concerns\Importable;
use Maatwebsite\Excel\Concerns\SkipsEmptyRows;
use Maatwebsite\Excel\Concerns\SkipsOnFailure;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithStartRow;
use Maatwebsite\Excel\Concerns\WithUpserts;
use Maatwebsite\Excel\Concerns\WithValidation;
use PhpOffice\PhpSpreadsheet\Shared\Date;
class ImportTestresult implements ToModel, WithStartRow, WithValidation, WithHeadingRow, SkipsEmptyRows, WithUpserts, SkipsOnFailure
{
use Importable;
public function startRow(): int
{
return 2;
}
public function rules(): array
{
return [
"attempt_code" => "required|exists:classes,code",
"users_admission_id" => "required|exists:users_admissions,id",
"testcode" => "required",
"subject" => "required",
"max_marks" => "required",
"obtained_marks" => "nullable",
"date" => "required",
];
}
public function uniqueBy()
{
return 'users_admission_id';
}
public function model(array $row)
{
$attempt_code = Classes::where('code', $row['attempt_code'])->first();
$checkQ = Testresult::where(['users_admission_id' => $row['users_admission_id'], 'testcode' => $row['testcode']]);
$resultT = $checkQ->first();
// dd($class_code);
if ($resultT) {
$updateTest = array(
'class_code' => $attempt_code->id,
'subject' => $row['subject'],
'max_marks' => $row['max_marks'],
'obtained_marks' => $row['obtained_marks'],
'date' => Date::excelToDateTimeObject($row['date'])->format('Y-m-d'),
);
$up = Testresult::where(['users_admission_id' => $row['users_admission_id'], 'testcode' => $row['testcode']]);
$up->update($updateTest);
return null;
}
return new Testresult([
'class_code' => $attempt_code->id,
'users_admission_id' => $row['users_admission_id'],
'testcode' => $row['testcode'],
'subject' => $row['subject'],
'smsflag' => '0',
'max_marks' => $row['max_marks'],
'obtained_marks' => $row['obtained_marks'],
'date' => Date::excelToDateTimeObject($row['date'])->format('Y-m-d'),
]);
}
public function onFailure(\Maatwebsite\Excel\Validators\Failure ...$failures)
{
dd($failures);
}
}