|
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/Exports/ |
Upload File : |
<?php
namespace App\Exports;
use App\Models\User;
use App\Helpers\Frontend;
use App\Models\Feescollection;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
use Maatwebsite\Excel\Concerns\Exportable;
use Maatwebsite\Excel\Concerns\FromArray;
use Maatwebsite\Excel\Concerns\WithHeadings;
class DaybookExport implements FromArray, WithHeadings
{
use Exportable;
/**
* @return \Illuminate\Support\Collection
*/
protected $request;
public function __construct($request)
{
$this->request = $request;
}
public function array(): array
{
$query = Feescollection::with('user', 'feesallot');
$query->Join('users', 'users.id', '=', 'feescollections.user_id');
$query->Join('users_admissions', 'users_admissions.user_unique_id', '=', 'users.user_unique_id');
$query->Join('users_schools', 'users_schools.user_id', '=', 'users.id');
$query->Join('schools', 'schools.id', '=', 'users_schools.school_id');
$query->Join('feesallotments', 'feesallotments.id', '=', 'feescollections.feesallotment_id');
$query->Join('classes', 'classes.id', '=', 'feesallotments.class_id');
$query->Join('sections', 'sections.id', '=', 'feesallotments.section_id');
// Receipt Number
if (!empty($this->request->search)) {
$query->where('invoice_no', $this->request->search);
}
// Date between
if (!empty($this->request->start_date) && !empty($this->request->end_date)) {
$query->whereBetween('payment_date', [$this->request->start_date, $this->request->end_date]);
}
// Receipt Number
if (!empty($this->request->invoice_no)) {
$query->where('invoice_no', $this->request->invoice_no);
}
// Class
if (!empty($this->request->class)) {
$query->where('classes.id', $this->request->class);
}
// Section
if (!empty($this->request->section)) {
$query->where('sections.id', $this->request->section);
}
// School
if (!empty($this->request->school)) {
$query->where('schools.id', $this->request->school);
}
// Roll No.
if (!empty($this->request->roll_no)) {
$query->where('users_admissions.enrollment_no', 'LIKE', '%' . $this->request->roll_no . '%');
}
$items = $query->get(['feescollections.payment_date','feescollections.payment_status', 'feescollections.mode', 'users_admissions.id as roll_no', 'users_admissions.enrollment_no', 'feescollections.invoice_no', 'users_admissions.first_name', 'users_admissions.last_name', 'users_admissions.previous_admission_no', 'schools.school', 'classes.class', 'sections.section', 'feescollections.amount','feescollections.note', DB::raw('gstfromamount(feescollections.amount,feesallotments.tax_value) as gst')])->toArray();
$itemsFinal = array();
foreach ($items as $item) {
$itm = array(
'payment_date' => $item['payment_date'],
'payment_status' => $item['payment_status'],
'roll_no' => $item['roll_no'],
'enrollment_no' => $item['enrollment_no'],
'invoice_no' => $item['invoice_no'],
'first_name' => $item['first_name'],
'last_name' => $item['last_name'],
'old_code' => $item['previous_admission_no'],
'school' => $item['school'],
'class' => $item['class'],
'section' => $item['section'],
'mode' => $item['mode'],
'net_amount' => $item['amount'] - round($item['gst']),
'cgst' => round(round($item['gst']) / 2, 2),
'sgst' => round(round($item['gst']) / 2, 2),
'amount' => $item['amount'],
'note' => $item['note']
);
array_push($itemsFinal, $itm);
}
return $itemsFinal;
}
public function headings(): array
{
return [
'payment_date',
'payment_status',
'roll_no',
'enrollment_no',
'invoice_no',
'first_name',
'last_name',
'old_code',
'center',
'attempt',
'batch',
'mode',
'net_amount',
'cgst',
'sgst',
'amount',
'Note'
];
}
}