KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //var/www/paras.theinteractive.in/app/Imports/ImportTestresult.php
<?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);
    }
}

Anon7 - 2021