!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/main_file/app/Http/Controllers/   drwxrwxr-x
Free 13.05 GB of 57.97 GB (22.52%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     ReportController.php (84.21 KB)      -rw-rw-r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace App\Http\Controllers;

use 
App\Exports\AccountStatementExport;
use 
App\Exports\LeaveReportExport;
use 
App\Exports\PayrollExport;
use 
App\Exports\ProductStockExport;
use 
App\Models\BankAccount;
use 
App\Models\Bill;
use 
App\Models\Branch;
use 
App\Models\Department;
use 
App\Models\Employee;
use 
App\Models\Leave;
use 
App\Models\PaySlip;
use 
App\Models\AttendanceEmployee;
use 
App\Models\BillProduct;
use 
App\Models\ChartOfAccount;
use 
App\Models\ChartOfAccountSubType;
use 
App\Models\ChartOfAccountType;
use 
App\Models\Customer;
use 
App\Models\Invoice;
use 
App\Models\InvoiceProduct;
use 
App\Models\JournalItem;
use 
App\Models\Payment;
use 
App\Models\ProductServiceCategory;
use 
App\Models\Revenue;
use 
App\Models\StockReport;
use 
App\Models\Utility;
use 
App\Models\Tax;
use 
App\Models\LeaveType;
use 
App\Models\BankTransfer;
use 
App\Models\Vender;
use 
Illuminate\Http\Request;
use 
Maatwebsite\Excel\Facades\Excel;

class 
ReportController extends Controller
{
    public function 
incomeSummary(Request $request)
    {
        if(
\Auth::user()->can('income report'))
        {
            
$account BankAccount::where('created_by''='\Auth::user()->creatorId())->get()->pluck('holder_name''id');
            
$account->prepend('select Account''');
            
$customer Customer::where('created_by''='\Auth::user()->creatorId())->get()->pluck('name''id');
            
$customer->prepend('Select Customer''');
            
$category ProductServiceCategory::where('created_by''='\Auth::user()->creatorId())->where('type''='1)->get()->pluck('name''id');
            
$category->prepend('Select Category''');

            
$data['monthList']  = $month $this->yearMonth();
            
$data['yearList']   = $this->yearList();
            
$filter['category'] = __('All');
            
$filter['customer'] = __('All');


            if(isset(
$request->year))
            {
                
$year $request->year;
            }
            else
            {
                
$year date('Y');
            }
            
$data['currentYear'] = $year;

            
// ------------------------------REVENUE INCOME-----------------------------------
            
$incomes Revenue::selectRaw('sum(revenues.amount) as amount,MONTH(date) as month,YEAR(date) as year,category_id')->leftjoin('product_service_categories''revenues.category_id''=''product_service_categories.id')->where('product_service_categories.type''='1);
            
$incomes->where('revenues.created_by''='\Auth::user()->creatorId());
            
$incomes->whereRAW('YEAR(date) =?', [$year]);

            if(!empty(
$request->category))
            {
                
$incomes->where('category_id''='$request->category);
                
$cat                ProductServiceCategory::find($request->category);
                
$filter['category'] = !empty($cat) ? $cat->name '';
            }

            if(!empty(
$request->customer))
            {
                
$incomes->where('customer_id''='$request->customer);
                
$cust               Customer::find($request->customer);
                
$filter['customer'] = !empty($cust) ? $cust->name '';
            }
            
$incomes->groupBy('month''year''category_id');
            
$incomes $incomes->get();

            
$tmpArray = [];
            foreach(
$incomes as $income)
            {
                
$tmpArray[$income->category_id][$income->month] = $income->amount;
            }
            
$array = [];
            foreach(
$tmpArray as $cat_id => $record)
            {
                
$tmp             = [];
                
$tmp['category'] = !empty(ProductServiceCategory::where('id''='$cat_id)->first()) ? ProductServiceCategory::where('id''='$cat_id)->first()->name '';
                
$tmp['data']     = [];
                for(
$i 1$i <= 12$i++)
                {
                    
$tmp['data'][$i] = array_key_exists($i$record) ? $record[$i] : 0;
                }
                
$array[] = $tmp;
            }


            
$incomesData Revenue::selectRaw('sum(revenues.amount) as amount,MONTH(date) as month,YEAR(date) as year');
            
$incomesData->where('revenues.created_by''='\Auth::user()->creatorId());
            
$incomesData->whereRAW('YEAR(date) =?', [$year]);

            if(!empty(
$request->category))
            {
                
$incomesData->where('category_id''='$request->category);
            }
            if(!empty(
$request->customer))
            {
                
$incomesData->where('customer_id''='$request->customer);
            }
            
$incomesData->groupBy('month''year');
            
$incomesData $incomesData->get();
            
$incomeArr   = [];
            foreach(
$incomesData as $k => $incomeData)
            {
                
$incomeArr[$incomeData->month] = $incomeData->amount;
            }
            for(
$i 1$i <= 12$i++)
            {
                
$incomeTotal[] = array_key_exists($i$incomeArr) ? $incomeArr[$i] : 0;
            }

            
//---------------------------INVOICE INCOME-----------------------------------------------

            
$invoices Invoice:: selectRaw('MONTH(send_date) as month,YEAR(send_date) as year,category_id,invoice_id,id')->where('created_by'\Auth::user()->creatorId())->where('status''!='0);

            
$invoices->whereRAW('YEAR(send_date) =?', [$year]);

            if(!empty(
$request->customer))
            {
                
$invoices->where('customer_id''='$request->customer);
            }

            if(!empty(
$request->category))
            {
                
$invoices->where('category_id''='$request->category);
            }

            
$invoices        $invoices->get();
            
$invoiceTmpArray = [];
            foreach(
$invoices as $invoice)
            {
                
$invoiceTmpArray[$invoice->category_id][$invoice->month][] = $invoice->getTotal();
            }

            
$invoiceArray = [];
            foreach(
$invoiceTmpArray as $cat_id => $record)
            {

                
$invoice             = [];
                
$invoice['category'] = !empty(ProductServiceCategory::where('id''='$cat_id)->first()) ? ProductServiceCategory::where('id''='$cat_id)->first()->name '';
                
$invoice['data']     = [];
                for(
$i 1$i <= 12$i++)
                {

                    
$invoice['data'][$i] = array_key_exists($i$record) ? array_sum($record[$i]) : 0;
                }
                
$invoiceArray[] = $invoice;
            }

            
$invoiceTotalArray = [];
            foreach(
$invoices as $invoice)
            {
                
$invoiceTotalArray[$invoice->month][] = $invoice->getTotal();
            }
            for(
$i 1$i <= 12$i++)
            {
                
$invoiceTotal[] = array_key_exists($i$invoiceTotalArray) ? array_sum($invoiceTotalArray[$i]) : 0;
            }

            
$chartIncomeArr array_map(
                function (){
                    return 
array_sum(func_get_args());
                }, 
$incomeTotal$invoiceTotal
            
);

            
$data['chartIncomeArr'] = $chartIncomeArr;
            
$data['incomeArr']      = $array;
            
$data['invoiceArray']   = $invoiceArray;
            
$data['account']        = $account;
            
$data['customer']       = $customer;
            
$data['category']       = $category;

            
$filter['startDateRange'] = 'Jan-' $year;
            
$filter['endDateRange']   = 'Dec-' $year;


            return 
view('report.income_summary'compact('filter'), $data);
        }
        else
        {
            return 
redirect()->back()->with('error'__('Permission denied.'));
        }


    }

    public function 
expenseSummary(Request $request)
    {
        if(
\Auth::user()->can('expense report'))
        {
            
$account BankAccount::where('created_by''='\Auth::user()->creatorId())->get()->pluck('holder_name''id');
            
$account->prepend('Select Account''');
            
$vender Vender::where('created_by''='\Auth::user()->creatorId())->get()->pluck('name''id');
            
$vender->prepend('Select Vendor''');
            
$category ProductServiceCategory::where('created_by''='\Auth::user()->creatorId())->where('type''='2)->get()->pluck('name''id');
            
$category->prepend('Select Category''');

            
$data['monthList']  = $month $this->yearMonth();
            
$data['yearList']   = $this->yearList();
            
$filter['category'] = __('All');
            
$filter['vender']   = __('All');

            if(isset(
$request->year))
            {
                
$year $request->year;
            }
            else
            {
                
$year date('Y');
            }
            
$data['currentYear'] = $year;

            
//   -----------------------------------------PAYMENT EXPENSE ------------------------------------------------------------
            
$expenses Payment::selectRaw('sum(payments.amount) as amount,MONTH(date) as month,YEAR(date) as year,category_id')->leftjoin('product_service_categories''payments.category_id''=''product_service_categories.id')->where('product_service_categories.type''='2);
            
$expenses->where('payments.created_by''='\Auth::user()->creatorId());
            
$expenses->whereRAW('YEAR(date) =?', [$year]);

            if(!empty(
$request->category))
            {
                
$expenses->where('category_id''='$request->category);
                
$cat                ProductServiceCategory::find($request->category);
                
$filter['category'] = !empty($cat) ? $cat->name '';
            }
            if(!empty(
$request->vender))
            {
                
$expenses->where('vender_id''='$request->vender);

                
$vend             Vender::find($request->vender);
                
$filter['vender'] = !empty($vend) ? $vend->name '';
            }

            
$expenses->groupBy('month''year''category_id');
            
$expenses $expenses->get();
            
$tmpArray = [];
            foreach(
$expenses as $expense)
            {
                
$tmpArray[$expense->category_id][$expense->month] = $expense->amount;
            }
            
$array = [];
            foreach(
$tmpArray as $cat_id => $record)
            {
                
$tmp             = [];
                
$tmp['category'] = !empty(ProductServiceCategory::where('id''='$cat_id)->first()) ? ProductServiceCategory::where('id''='$cat_id)->first()->name '';
                
$tmp['data']     = [];
                for(
$i 1$i <= 12$i++)
                {
                    
$tmp['data'][$i] = array_key_exists($i$record) ? $record[$i] : 0;
                }
                
$array[] = $tmp;
            }
            
$expensesData Payment::selectRaw('sum(payments.amount) as amount,MONTH(date) as month,YEAR(date) as year');
            
$expensesData->where('payments.created_by''='\Auth::user()->creatorId());
            
$expensesData->whereRAW('YEAR(date) =?', [$year]);

            if(!empty(
$request->category))
            {
                
$expensesData->where('category_id''='$request->category);
            }
            if(!empty(
$request->vender))
            {
                
$expensesData->where('vender_id''='$request->vender);
            }
            
$expensesData->groupBy('month''year');
            
$expensesData $expensesData->get();

            
$expenseArr = [];
            foreach(
$expensesData as $k => $expenseData)
            {
                
$expenseArr[$expenseData->month] = $expenseData->amount;
            }
            for(
$i 1$i <= 12$i++)
            {
                
$expenseTotal[] = array_key_exists($i$expenseArr) ? $expenseArr[$i] : 0;
            }

            
//     ------------------------------------BILL EXPENSE----------------------------------------------------

            
$bills Bill:: selectRaw('MONTH(send_date) as month,YEAR(send_date) as year,category_id,bill_id,id')->where('created_by'\Auth::user()->creatorId())->where('status''!='0);
            
$bills->whereRAW('YEAR(send_date) =?', [$year]);

            if(!empty(
$request->vender))
            {
                
$bills->where('vender_id''='$request->vender);
            }

            if(!empty(
$request->category))
            {
                
$bills->where('category_id''='$request->category);
            }
            
$bills        $bills->get();
            
$billTmpArray = [];
            foreach(
$bills as $bill)
            {
                
$billTmpArray[$bill->category_id][$bill->month][] = $bill->getTotal();
            }

            
$billArray = [];
            foreach(
$billTmpArray as $cat_id => $record)
            {

                
$bill             = [];
                
$bill['category'] = !empty(ProductServiceCategory::where('id''='$cat_id)->first()) ? ProductServiceCategory::where('id''='$cat_id)->first()->name '';
                
$bill['data']     = [];
                for(
$i 1$i <= 12$i++)
                {

                    
$bill['data'][$i] = array_key_exists($i$record) ? array_sum($record[$i]) : 0;
                }
                
$billArray[] = $bill;
            }

            
$billTotalArray = [];
            foreach(
$bills as $bill)
            {
                
$billTotalArray[$bill->month][] = $bill->getTotal();
            }
            for(
$i 1$i <= 12$i++)
            {
                
$billTotal[] = array_key_exists($i$billTotalArray) ? array_sum($billTotalArray[$i]) : 0;
            }

            
$chartExpenseArr array_map(
                function (){
                    return 
array_sum(func_get_args());
                }, 
$expenseTotal$billTotal
            
);


            
$data['chartExpenseArr'] = $chartExpenseArr;
            
$data['expenseArr']      = $array;
            
$data['billArray']       = $billArray;
            
$data['account']         = $account;
            
$data['vender']          = $vender;
            
$data['category']        = $category;

            
$filter['startDateRange'] = 'Jan-' $year;
            
$filter['endDateRange']   = 'Dec-' $year;

            return 
view('report.expense_summary'compact('filter'), $data);
        }
        else
        {
            return 
redirect()->back()->with('error'__('Permission denied.'));
        }


    }

    public function 
incomeVsExpenseSummary(Request $request)
    {
        if(
\Auth::user()->can('income vs expense report'))
        {
            
$account BankAccount::where('created_by''='\Auth::user()->creatorId())->get()->pluck('holder_name''id');
            
$account->prepend('Select Account''');
            
$vender Vender::where('created_by''='\Auth::user()->creatorId())->get()->pluck('name''id');
            
$vender->prepend('Select Vendor''');
            
$customer Customer::where('created_by''='\Auth::user()->creatorId())->get()->pluck('name''id');
            
$customer->prepend('Select Customer''');

            
$category ProductServiceCategory::where('created_by''='\Auth::user()->creatorId())->whereIn(
                
'type', [
                          
1,
                          
2,
                      ]
            )->
get()->pluck('name''id');
            
$category->prepend('Select Category''');

            
$data['monthList'] = $month $this->yearMonth();
            
$data['yearList']  = $this->yearList();

            
$filter['category'] = __('All');
            
$filter['customer'] = __('All');
            
$filter['vender']   = __('All');

            if(isset(
$request->year))
            {
                
$year $request->year;
            }
            else
            {
                
$year date('Y');
            }
            
$data['currentYear'] = $year;

            
// ------------------------------TOTAL PAYMENT EXPENSE-----------------------------------------------------------
            
$expensesData Payment::selectRaw('sum(payments.amount) as amount,MONTH(date) as month,YEAR(date) as year');
            
$expensesData->where('payments.created_by''='\Auth::user()->creatorId());
            
$expensesData->whereRAW('YEAR(date) =?', [$year]);

            if(!empty(
$request->category))
            {
                
$expensesData->where('category_id''='$request->category);
                
$cat                ProductServiceCategory::find($request->category);
                
$filter['category'] = !empty($cat) ? $cat->name '';

            }
            if(!empty(
$request->vender))
            {
                
$expensesData->where('vender_id''='$request->vender);

                
$vend             Vender::find($request->vender);
                
$filter['vender'] = !empty($vend) ? $vend->name '';
            }
            
$expensesData->groupBy('month''year');
            
$expensesData $expensesData->get();

            
$expenseArr = [];
            foreach(
$expensesData as $k => $expenseData)
            {
                
$expenseArr[$expenseData->month] = $expenseData->amount;
            }

            
// ------------------------------TOTAL BILL EXPENSE-----------------------------------------------------------

            
$bills Bill:: selectRaw('MONTH(send_date) as month,YEAR(send_date) as year,category_id,bill_id,id')->where('created_by'\Auth::user()->creatorId())->where('status''!='0);
            
$bills->whereRAW('YEAR(send_date) =?', [$year]);

            if(!empty(
$request->vender))
            {
                
$bills->where('vender_id''='$request->vender);

            }

            if(!empty(
$request->category))
            {
                
$bills->where('category_id''='$request->category);
            }

            
$bills        $bills->get();
            
$billTmpArray = [];
            foreach(
$bills as $bill)
            {
                
$billTmpArray[$bill->category_id][$bill->month][] = $bill->getTotal();
            }
            
$billArray = [];
            foreach(
$billTmpArray as $cat_id => $record)
            {
                
$bill             = [];
                
$bill['category'] = !empty(ProductServiceCategory::where('id''='$cat_id)->first()) ? ProductServiceCategory::where('id''='$cat_id)->first()->name '';
                
$bill['data']     = [];
                for(
$i 1$i <= 12$i++)
                {

                    
$bill['data'][$i] = array_key_exists($i$record) ? array_sum($record[$i]) : 0;
                }
                
$billArray[] = $bill;
            }

            
$billTotalArray = [];
            foreach(
$bills as $bill)
            {
                
$billTotalArray[$bill->month][] = $bill->getTotal();
            }


            
// ------------------------------TOTAL REVENUE INCOME-----------------------------------------------------------

            
$incomesData Revenue::selectRaw('sum(revenues.amount) as amount,MONTH(date) as month,YEAR(date) as year');
            
$incomesData->where('revenues.created_by''='\Auth::user()->creatorId());
            
$incomesData->whereRAW('YEAR(date) =?', [$year]);

            if(!empty(
$request->category))
            {
                
$incomesData->where('category_id''='$request->category);
            }
            if(!empty(
$request->customer))
            {
                
$incomesData->where('customer_id''='$request->customer);
                
$cust               Customer::find($request->customer);
                
$filter['customer'] = !empty($cust) ? $cust->name '';
            }
            
$incomesData->groupBy('month''year');
            
$incomesData $incomesData->get();
            
$incomeArr   = [];
            foreach(
$incomesData as $k => $incomeData)
            {
                
$incomeArr[$incomeData->month] = $incomeData->amount;
            }

            
// ------------------------------TOTAL INVOICE INCOME-----------------------------------------------------------
            
$invoices Invoice:: selectRaw('MONTH(send_date) as month,YEAR(send_date) as year,category_id,invoice_id,id')->where('created_by'\Auth::user()->creatorId())->where('status''!='0);
            
$invoices->whereRAW('YEAR(send_date) =?', [$year]);
            if(!empty(
$request->customer))
            {
                
$invoices->where('customer_id''='$request->customer);
            }
            if(!empty(
$request->category))
            {
                
$invoices->where('category_id''='$request->category);
            }
            
$invoices        $invoices->get();
            
$invoiceTmpArray = [];
            foreach(
$invoices as $invoice)
            {
                
$invoiceTmpArray[$invoice->category_id][$invoice->month][] = $invoice->getTotal();
            }

            
$invoiceArray = [];
            foreach(
$invoiceTmpArray as $cat_id => $record)
            {

                
$invoice             = [];
                
$invoice['category'] = !empty(ProductServiceCategory::where('id''='$cat_id)->first()) ? ProductServiceCategory::where('id''='$cat_id)->first()->name '';
                
$invoice['data']     = [];
                for(
$i 1$i <= 12$i++)
                {

                    
$invoice['data'][$i] = array_key_exists($i$record) ? array_sum($record[$i]) : 0;
                }
                
$invoiceArray[] = $invoice;
            }

            
$invoiceTotalArray = [];
            foreach(
$invoices as $invoice)
            {
                
$invoiceTotalArray[$invoice->month][] = $invoice->getTotal();
            }
            
//        ----------------------------------------------------------------------------------------------------

            
for($i 1$i <= 12$i++)
            {
                
$paymentExpenseTotal[] = array_key_exists($i$expenseArr) ? $expenseArr[$i] : 0;
                
$billExpenseTotal[]    = array_key_exists($i$billTotalArray) ? array_sum($billTotalArray[$i]) : 0;

                
$RevenueIncomeTotal[] = array_key_exists($i$incomeArr) ? $incomeArr[$i] : 0;
                
$invoiceIncomeTotal[] = array_key_exists($i$invoiceTotalArray) ? array_sum($invoiceTotalArray[$i]) : 0;

            }

            
$totalIncome array_map(
                function (){
                    return 
array_sum(func_get_args());
                }, 
$RevenueIncomeTotal$invoiceIncomeTotal
            
);

            
$totalExpense array_map(
                function (){
                    return 
array_sum(func_get_args());
                }, 
$paymentExpenseTotal$billExpenseTotal
            
);

            
$profit = [];
            
$keys   array_keys($totalIncome $totalExpense);
            foreach(
$keys as $v)
            {
                
$profit[$v] = (empty($totalIncome[$v]) ? $totalIncome[$v]) - (empty($totalExpense[$v]) ? $totalExpense[$v]);
            }


            
$data['paymentExpenseTotal'] = $paymentExpenseTotal;
            
$data['billExpenseTotal']    = $billExpenseTotal;
            
$data['revenueIncomeTotal']  = $RevenueIncomeTotal;
            
$data['invoiceIncomeTotal']  = $invoiceIncomeTotal;
            
$data['profit']              = $profit;
            
$data['account']             = $account;
            
$data['vender']              = $vender;
            
$data['customer']            = $customer;
            
$data['category']            = $category;

            
$filter['startDateRange'] = 'Jan-' $year;
            
$filter['endDateRange']   = 'Dec-' $year;

            return 
view('report.income_vs_expense_summary'compact('filter'), $data);
        }
        else
        {
            return 
redirect()->back()->with('error'__('Permission denied.'));
        }
    }

    public function 
taxSummary(Request $request)
    {

        if(
\Auth::user()->can('tax report'))
        {
            
$data['monthList'] = $month $this->yearMonth();
            
$data['yearList']  = $this->yearList();
            
$data['taxList']   = $taxList Tax::where('created_by'\Auth::user()->creatorId())->get();

            if(isset(
$request->year))
            {
                
$year $request->year;
            }
            else
            {
                
$year date('Y');
            }

            
$data['currentYear'] = $year;

            
$invoiceProducts InvoiceProduct::selectRaw('invoice_products.* ,MONTH(invoice_products.created_at) as month,YEAR(invoice_products.created_at) as year')->leftjoin('product_services''invoice_products.product_id''=''product_services.id')->whereRaw('YEAR(invoice_products.created_at) =?', [$year])->where('product_services.created_by''='\Auth::user()->creatorId())->get();

            
$incomeTaxesData = [];
            foreach(
$invoiceProducts as $invoiceProduct)
            {
                
$incomeTax   = [];
                
$incomeTaxes Utility::tax($invoiceProduct->tax);
                foreach(
$incomeTaxes as $taxe)
                {
                    
$taxDataPrice           Utility::taxRate(!empty($taxe)?$taxe->rate0$invoiceProduct->price$invoiceProduct->quantity);
                    
$incomeTax[!empty($taxe)?$taxe->name:''] = $taxDataPrice;
                }
                
$incomeTaxesData[$invoiceProduct->month][] = $incomeTax;
            }

            
$income = [];
            foreach(
$incomeTaxesData as $month => $incomeTaxx)
            {
                
$incomeTaxRecord = [];
                foreach(
$incomeTaxx as $k => $record)
                {
                    foreach(
$record as $incomeTaxName => $incomeTaxAmount)
                    {
                        if(
array_key_exists($incomeTaxName$incomeTaxRecord))
                        {
                            
$incomeTaxRecord[$incomeTaxName] += $incomeTaxAmount;
                        }
                        else
                        {
                            
$incomeTaxRecord[$incomeTaxName] = $incomeTaxAmount;
                        }
                    }
                    
$income['data'][$month] = $incomeTaxRecord;
                }

            }

            foreach(
$income as $incomeMonth => $incomeTaxData)
            {
                
$incomeData = [];
                for(
$i 1$i <= 12$i++)
                {
                    
$incomeData[$i] = array_key_exists($i$incomeTaxData) ? $incomeTaxData[$i] : 0;
                }

            }

            
$incomes = [];
            if(isset(
$incomeData) && !empty($incomeData))
            {
                foreach(
$taxList as $taxArr)
                {
                    foreach(
$incomeData as $month => $tax)
                    {
                        if(
$tax != 0)
                        {
                            if(isset(
$tax[$taxArr->name]))
                            {
                                
$incomes[$taxArr->name][$month] = $tax[$taxArr->name];
                            }
                            else
                            {
                                
$incomes[$taxArr->name][$month] = 0;
                            }
                        }
                        else
                        {
                            
$incomes[$taxArr->name][$month] = 0;
                        }
                    }
                }
            }


            
$billProducts BillProduct::selectRaw('bill_products.* ,MONTH(bill_products.created_at) as month,YEAR(bill_products.created_at) as year')->leftjoin('product_services''bill_products.product_id''=''product_services.id')->whereRaw('YEAR(bill_products.created_at) =?', [$year])->where('product_services.created_by''='\Auth::user()->creatorId())->get();

            
$expenseTaxesData = [];
            foreach(
$billProducts as $billProduct)
            {
                
$billTax   = [];
                
$billTaxes Utility::tax($billProduct->tax);
                foreach(
$billTaxes as $taxe)
                {

                    
$taxDataPrice         Utility::taxRate(!empty($taxe)?$taxe->rate0$billProduct->price$billProduct->quantity);
                    
$billTax[!empty($taxe)?$taxe->name:''] = $taxDataPrice;
                }
                
$expenseTaxesData[$billProduct->month][] = $billTax;
            }

            
$bill = [];
            foreach(
$expenseTaxesData as $month => $billTaxx)
            {
                
$billTaxRecord = [];
                foreach(
$billTaxx as $k => $record)
                {
                    foreach(
$record as $billTaxName => $billTaxAmount)
                    {
                        if(
array_key_exists($billTaxName$billTaxRecord))
                        {
                            
$billTaxRecord[$billTaxName] += $billTaxAmount;
                        }
                        else
                        {
                            
$billTaxRecord[$billTaxName] = $billTaxAmount;
                        }
                    }
                    
$bill['data'][$month] = $billTaxRecord;
                }

            }

            foreach(
$bill as $billMonth => $billTaxData)
            {
                
$billData = [];
                for(
$i 1$i <= 12$i++)
                {
                    
$billData[$i] = array_key_exists($i$billTaxData) ? $billTaxData[$i] : 0;
                }

            }
            
$expenses = [];
            if(isset(
$billData) && !empty($billData))
            {

                foreach(
$taxList as $taxArr)
                {
                    foreach(
$billData as $month => $tax)
                    {
                        if(
$tax != 0)
                        {
                            if(isset(
$tax[$taxArr->name]))
                            {
                                
$expenses[$taxArr->name][$month] = $tax[$taxArr->name];
                            }
                            else
                            {
                                
$expenses[$taxArr->name][$month] = 0;
                            }
                        }
                        else
                        {
                            
$expenses[$taxArr->name][$month] = 0;
                        }
                    }

                }
            }

            
$data['expenses'] = $expenses;
            
$data['incomes']  = $incomes;

            
$filter['startDateRange'] = 'Jan-' $year;
            
$filter['endDateRange']   = 'Dec-' $year;

            return 
view('report.tax_summary'compact('filter'), $data);
        }
        else
        {
            return 
redirect()->back()->with('error'__('Permission denied.'));
        }

    }

    public function 
profitLossSummary(Request $request)
    {

        if(
\Auth::user()->can('loss & profit report'))
        {
            
$data['month']     = [
                
'Jan-Mar',
                
'Apr-Jun',
                
'Jul-Sep',
                
'Oct-Dec',
                
'Total',
            ];
            
$data['monthList'] = $month $this->yearMonth();
            
$data['yearList']  = $this->yearList();

            if(isset(
$request->year))
            {
                
$year $request->year;
            }
            else
            {
                
$year date('Y');
            }
            
$data['currentYear'] = $year;

            
// -------------------------------REVENUE INCOME-------------------------------------------------

            
$incomes Revenue::selectRaw('sum(revenues.amount) as amount,MONTH(date) as month,YEAR(date) as year,category_id');
            
$incomes->where('created_by''='\Auth::user()->creatorId());
            
$incomes->whereRAW('YEAR(date) =?', [$year]);
            
$incomes->groupBy('month''year''category_id');
            
$incomes        $incomes->get();
            
$tmpIncomeArray = [];
            foreach(
$incomes as $income)
            {
                
$tmpIncomeArray[$income->category_id][$income->month] = $income->amount;
            }

            
$incomeCatAmount_1  $incomeCatAmount_2 $incomeCatAmount_3 $incomeCatAmount_4 0;
            
$revenueIncomeArray = array();
            foreach(
$tmpIncomeArray as $cat_id => $record)
            {

                
$tmp             = [];
                
$tmp['category'] = !empty(ProductServiceCategory::where('id''='$cat_id)->first()) ? ProductServiceCategory::where('id''='$cat_id)->first()->name '';
                
$sumData         = [];
                for(
$i 1$i <= 12$i++)
                {
                    
$sumData[] = array_key_exists($i$record) ? $record[$i] : 0;
                }

                
$month_1 array_slice($sumData03);
                
$month_2 array_slice($sumData33);
                
$month_3 array_slice($sumData63);
                
$month_4 array_slice($sumData93);


                
$incomeData[__('Jan-Mar')] = $sum_1 array_sum($month_1);
                
$incomeData[__('Apr-Jun')] = $sum_2 array_sum($month_2);
                
$incomeData[__('Jul-Sep')] = $sum_3 array_sum($month_3);
                
$incomeData[__('Oct-Dec')] = $sum_4 array_sum($month_4);
                
$incomeData[__('Total')]   = array_sum(
                    array(
                        
$sum_1,
                        
$sum_2,
                        
$sum_3,
                        
$sum_4,
                    )
                );

                
$incomeCatAmount_1 += $sum_1;
                
$incomeCatAmount_2 += $sum_2;
                
$incomeCatAmount_3 += $sum_3;
                
$incomeCatAmount_4 += $sum_4;

                
$data['month'] = array_keys($incomeData);
                
$tmp['amount'] = array_values($incomeData);

                
$revenueIncomeArray[] = $tmp;

            }

            
$data['incomeCatAmount'] = $incomeCatAmount = [
                
$incomeCatAmount_1,
                
$incomeCatAmount_2,
                
$incomeCatAmount_3,
                
$incomeCatAmount_4,
                
array_sum(
                    array(
                        
$incomeCatAmount_1,
                        
$incomeCatAmount_2,
                        
$incomeCatAmount_3,
                        
$incomeCatAmount_4,
                    )
                ),
            ];

            
$data['revenueIncomeArray'] = $revenueIncomeArray;

            
//-----------------------INVOICE INCOME---------------------------------------------

            
$invoices Invoice:: selectRaw('MONTH(send_date) as month,YEAR(send_date) as year,category_id,invoice_id,id')->where('created_by'\Auth::user()->creatorId())->where('status''!='0);
            
$invoices->whereRAW('YEAR(send_date) =?', [$year]);
            if(!empty(
$request->customer))
            {
                
$invoices->where('customer_id''='$request->customer);
            }
            
$invoices        $invoices->get();
            
$invoiceTmpArray = [];
            foreach(
$invoices as $invoice)
            {
                
$invoiceTmpArray[$invoice->category_id][$invoice->month][] = $invoice->getTotal();
            }

            
$invoiceCatAmount_1 $invoiceCatAmount_2 $invoiceCatAmount_3 $invoiceCatAmount_4 0;
            
$invoiceIncomeArray = array();
            foreach(
$invoiceTmpArray as $cat_id => $record)
            {

                
$invoiceTmp             = [];
                
$invoiceTmp['category'] = !empty(ProductServiceCategory::where('id''='$cat_id)->first()) ? ProductServiceCategory::where('id''='$cat_id)->first()->name '';
                
$invoiceSumData         = [];
                for(
$i 1$i <= 12$i++)
                {
                    
$invoiceSumData[] = array_key_exists($i$record) ? array_sum($record[$i]) : 0;

                }

                
$month_1                          array_slice($invoiceSumData03);
                
$month_2                          array_slice($invoiceSumData33);
                
$month_3                          array_slice($invoiceSumData63);
                
$month_4                          array_slice($invoiceSumData93);
                
$invoiceIncomeData[__('Jan-Mar')] = $sum_1 array_sum($month_1);
                
$invoiceIncomeData[__('Apr-Jun')] = $sum_2 array_sum($month_2);
                
$invoiceIncomeData[__('Jul-Sep')] = $sum_3 array_sum($month_3);
                
$invoiceIncomeData[__('Oct-Dec')] = $sum_4 array_sum($month_4);
                
$invoiceIncomeData[__('Total')]   = array_sum(
                    array(
                        
$sum_1,
                        
$sum_2,
                        
$sum_3,
                        
$sum_4,
                    )
                );
                
$invoiceCatAmount_1               += $sum_1;
                
$invoiceCatAmount_2               += $sum_2;
                
$invoiceCatAmount_3               += $sum_3;
                
$invoiceCatAmount_4               += $sum_4;

                
$invoiceTmp['amount'] = array_values($invoiceIncomeData);

                
$invoiceIncomeArray[] = $invoiceTmp;

            }

            
$data['invoiceIncomeCatAmount'] = $invoiceIncomeCatAmount = [
                
$invoiceCatAmount_1,
                
$invoiceCatAmount_2,
                
$invoiceCatAmount_3,
                
$invoiceCatAmount_4,
                
array_sum(
                    array(
                        
$invoiceCatAmount_1,
                        
$invoiceCatAmount_2,
                        
$invoiceCatAmount_3,
                        
$invoiceCatAmount_4,
                    )
                ),
            ];


            
$data['invoiceIncomeArray'] = $invoiceIncomeArray;

            
$data['totalIncome'] = $totalIncome array_map(
                function (){
                    return 
array_sum(func_get_args());
                }, 
$invoiceIncomeCatAmount$incomeCatAmount
            
);

            
//---------------------------------PAYMENT EXPENSE-----------------------------------

            
$expenses Payment::selectRaw('sum(payments.amount) as amount,MONTH(date) as month,YEAR(date) as year,category_id');
            
$expenses->where('created_by''='\Auth::user()->creatorId());
            
$expenses->whereRAW('YEAR(date) =?', [$year]);
            
$expenses->groupBy('month''year''category_id');
            
$expenses $expenses->get();

            
$tmpExpenseArray = [];
            foreach(
$expenses as $expense)
            {
                
$tmpExpenseArray[$expense->category_id][$expense->month] = $expense->amount;
            }

            
$expenseArray       = [];
            
$expenseCatAmount_1 $expenseCatAmount_2 $expenseCatAmount_3 $expenseCatAmount_4 0;
            foreach(
$tmpExpenseArray as $cat_id => $record)
            {
                
$tmp             = [];
                
$tmp['category'] = !empty(ProductServiceCategory::where('id''='$cat_id)->first()) ? ProductServiceCategory::where('id''='$cat_id)->first()->name '';
                
$expenseSumData  = [];
                for(
$i 1$i <= 12$i++)
                {
                    
$expenseSumData[] = array_key_exists($i$record) ? $record[$i] : 0;

                }

                
$month_1 array_slice($expenseSumData03);
                
$month_2 array_slice($expenseSumData33);
                
$month_3 array_slice($expenseSumData63);
                
$month_4 array_slice($expenseSumData93);

                
$expenseData[__('Jan-Mar')] = $sum_1 array_sum($month_1);
                
$expenseData[__('Apr-Jun')] = $sum_2 array_sum($month_2);
                
$expenseData[__('Jul-Sep')] = $sum_3 array_sum($month_3);
                
$expenseData[__('Oct-Dec')] = $sum_4 array_sum($month_4);
                
$expenseData[__('Total')]   = array_sum(
                    array(
                        
$sum_1,
                        
$sum_2,
                        
$sum_3,
                        
$sum_4,
                    )
                );

                
$expenseCatAmount_1 += $sum_1;
                
$expenseCatAmount_2 += $sum_2;
                
$expenseCatAmount_3 += $sum_3;
                
$expenseCatAmount_4 += $sum_4;

                
$data['month'] = array_keys($expenseData);
                
$tmp['amount'] = array_values($expenseData);

                
$expenseArray[] = $tmp;

            }

            
$data['expenseCatAmount'] = $expenseCatAmount = [
                
$expenseCatAmount_1,
                
$expenseCatAmount_2,
                
$expenseCatAmount_3,
                
$expenseCatAmount_4,
                
array_sum(
                    array(
                        
$expenseCatAmount_1,
                        
$expenseCatAmount_2,
                        
$expenseCatAmount_3,
                        
$expenseCatAmount_4,
                    )
                ),
            ];
            
$data['expenseArray']     = $expenseArray;

            
//    ----------------------------EXPENSE BILL-----------------------------------------------------------------------

            
$bills Bill:: selectRaw('MONTH(send_date) as month,YEAR(send_date) as year,category_id,bill_id,id')->where('created_by'\Auth::user()->creatorId())->where('status''!='0);
            
$bills->whereRAW('YEAR(send_date) =?', [$year]);
            if(!empty(
$request->customer))
            {
                
$bills->where('vender_id''='$request->vender);
            }
            
$bills        $bills->get();
            
$billTmpArray = [];
            foreach(
$bills as $bill)
            {
                
$billTmpArray[$bill->category_id][$bill->month][] = $bill->getTotal();
            }

            
$billExpenseArray       = [];
            
$billExpenseCatAmount_1 $billExpenseCatAmount_2 $billExpenseCatAmount_3 $billExpenseCatAmount_4 0;
            foreach(
$billTmpArray as $cat_id => $record)
            {
                
$billTmp             = [];
                
$billTmp['category'] = !empty(ProductServiceCategory::where('id''='$cat_id)->first()) ? ProductServiceCategory::where('id''='$cat_id)->first()->name '';
                
$billExpensSumData   = [];
                for(
$i 1$i <= 12$i++)
                {
                    
$billExpensSumData[] = array_key_exists($i$record) ? array_sum($record[$i]) : 0;
                }

                
$month_1 array_slice($billExpensSumData03);
                
$month_2 array_slice($billExpensSumData33);
                
$month_3 array_slice($billExpensSumData63);
                
$month_4 array_slice($billExpensSumData93);

                
$billExpenseData[__('Jan-Mar')] = $sum_1 array_sum($month_1);
                
$billExpenseData[__('Apr-Jun')] = $sum_2 array_sum($month_2);
                
$billExpenseData[__('Jul-Sep')] = $sum_3 array_sum($month_3);
                
$billExpenseData[__('Oct-Dec')] = $sum_4 array_sum($month_4);
                
$billExpenseData[__('Total')]   = array_sum(
                    array(
                        
$sum_1,
                        
$sum_2,
                        
$sum_3,
                        
$sum_4,
                    )
                );

                
$billExpenseCatAmount_1 += $sum_1;
                
$billExpenseCatAmount_2 += $sum_2;
                
$billExpenseCatAmount_3 += $sum_3;
                
$billExpenseCatAmount_4 += $sum_4;

                
$data['month']     = array_keys($billExpenseData);
                
$billTmp['amount'] = array_values($billExpenseData);

                
$billExpenseArray[] = $billTmp;

            }

            
$data['billExpenseCatAmount'] = $billExpenseCatAmount = [
                
$billExpenseCatAmount_1,
                
$billExpenseCatAmount_2,
                
$billExpenseCatAmount_3,
                
$billExpenseCatAmount_4,
                
array_sum(
                    array(
                        
$billExpenseCatAmount_1,
                        
$billExpenseCatAmount_2,
                        
$billExpenseCatAmount_3,
                        
$billExpenseCatAmount_4,
                    )
                ),
            ];

            
$data['billExpenseArray'] = $billExpenseArray;


            
$data['totalExpense'] = $totalExpense array_map(
                function (){
                    return 
array_sum(func_get_args());
                }, 
$billExpenseCatAmount$expenseCatAmount
            
);


            foreach(
$totalIncome as $k => $income)
            {
                
$netProfit[] = $income $totalExpense[$k];
            }
            
$data['netProfitArray'] = $netProfit;

            
$filter['startDateRange'] = 'Jan-' $year;
            
$filter['endDateRange']   = 'Dec-' $year;

            return 
view('report.profit_loss_summary'compact('filter'), $data);
        }
        else
        {
            return 
redirect()->back()->with('error'__('Permission denied.'));
        }


    }

    public function 
yearMonth()
    {

        
$month[] = __('January');
        
$month[] = __('February');
        
$month[] = __('March');
        
$month[] = __('April');
        
$month[] = __('May');
        
$month[] = __('June');
        
$month[] = __('July');
        
$month[] = __('August');
        
$month[] = __('September');
        
$month[] = __('October');
        
$month[] = __('November');
        
$month[] = __('December');

        return 
$month;
    }

    public function 
yearList()
    {
        
$starting_year date('Y'strtotime('-5 year'));
        
$ending_year   date('Y');

        foreach(
range($ending_year$starting_year) as $year)
        {
            
$years[$year] = $year;
        }

        return 
$years;
    }

    public function 
invoiceSummary(Request $request)
    {

        if(
\Auth::user()->can('invoice report'))
        {
            
$filter['customer'] = __('All');
            
$filter['status']   = __('All');


            
$customer Customer::where('created_by''='\Auth::user()->creatorId())->get()->pluck('name''customer_id');
            
$customer->prepend('Select Customer''');
            
$status Invoice::$statues;

            
$invoices Invoice::selectRaw('invoices.*,MONTH(send_date) as month,YEAR(send_date) as year');

            if(
$request->status != '')
            {
                
$invoices->where('status'$request->status);

                
$filter['status'] = Invoice::$statues[$request->status];
            }
            else
            {
                
$invoices->where('status''!='0);
            }

            
$invoices->where('created_by''='\Auth::user()->creatorId());

            if(!empty(
$request->start_month) && !empty($request->end_month))
            {
                
$start strtotime($request->start_month);
                
$end   strtotime($request->end_month);
            }
            else
            {
                
$start strtotime(date('Y-01'));
                
$end   strtotime(date('Y-12'));
            }

            
$invoices->where('send_date''>='date('Y-m-01'$start))->where('send_date''<='date('Y-m-t'$end));


            
$filter['startDateRange'] = date('M-Y'$start);
            
$filter['endDateRange']   = date('M-Y'$end);


            if(!empty(
$request->customer))
            {
                
$invoices->where('customer_id'$request->customer);
                
$cust Customer::find($request->customer);

                
$filter['customer'] = !empty($cust) ? $cust->name '';
            }


            
$invoices $invoices->get();


            
$totalInvoice      0;
            
$totalDueInvoice   0;
            
$invoiceTotalArray = [];
            foreach(
$invoices as $invoice)
            {
                
$totalInvoice    += $invoice->getTotal();
                
$totalDueInvoice += $invoice->getDue();

                
$invoiceTotalArray[$invoice->month][] = $invoice->getTotal();
            }
            
$totalPaidInvoice $totalInvoice $totalDueInvoice;

            for(
$i 1$i <= 12$i++)
            {
                
$invoiceTotal[] = array_key_exists($i$invoiceTotalArray) ? array_sum($invoiceTotalArray[$i]) : 0;
            }

            
$monthList $month $this->yearMonth();

            return 
view('report.invoice_report'compact('invoices''customer''status''totalInvoice''totalDueInvoice''totalPaidInvoice''invoiceTotal''monthList''filter'));
        }
        else
        {
            return 
redirect()->back()->with('error'__('Permission Denied.'));
        }
    }


    public function 
billSummary(Request $request)
    {
        if(
\Auth::user()->can('bill report'))
        {

            
$filter['vender'] = __('All');
            
$filter['status'] = __('All');


            
$vender Vender::where('created_by''='\Auth::user()->creatorId())->get()->pluck('name''vender_id');
            
$vender->prepend('Select Vendor''');
            
$status Bill::$statues;

            
$bills Bill::selectRaw('bills.*,MONTH(send_date) as month,YEAR(send_date) as year');

            if(!empty(
$request->start_month) && !empty($request->end_month))
            {
                
$start strtotime($request->start_month);
                
$end   strtotime($request->end_month);
            }
            else
            {
                
$start strtotime(date('Y-01'));
                
$end   strtotime(date('Y-12'));
            }

            
$bills->where('send_date''>='date('Y-m-01'$start))->where('send_date''<='date('Y-m-t'$end));

            
$filter['startDateRange'] = date('M-Y'$start);
            
$filter['endDateRange']   = date('M-Y'$end);


            if(!empty(
$request->vender))
            {
                
$bills->where('vender_id'$request->vender);
                
$vend Vender::find($request->vender);

                
$filter['vender'] = !empty($vend) ? $vend->name '';
            }

            if(
$request->status != '')
            {
                
$bills->where('status''='$request->status);

                
$filter['status'] = Bill::$statues[$request->status];
            }
            else
            {
                
$bills->where('status''!='0);
            }

            
$bills->where('created_by''='\Auth::user()->creatorId());
            
$bills $bills->get();


            
$totalBill      0;
            
$totalDueBill   0;
            
$billTotalArray = [];
            foreach(
$bills as $bill)
            {
                
$totalBill    += $bill->getTotal();
                
$totalDueBill += $bill->getDue();

                
$billTotalArray[$bill->month][] = $bill->getTotal();
            }
            
$totalPaidBill $totalBill $totalDueBill;

            for(
$i 1$i <= 12$i++)
            {
                
$billTotal[] = array_key_exists($i$billTotalArray) ? array_sum($billTotalArray[$i]) : 0;
            }

            
$monthList $month $this->yearMonth();

            return 
view('report.bill_report'compact('bills''vender''status''totalBill''totalDueBill''totalPaidBill''billTotal''monthList''filter'));
        }
        else
        {
            return 
redirect()->back()->with('error'__('Permission Denied.'));
        }
    }


    public function 
accountStatement(Request $request)
    {
        if(
\Auth::user()->can('statement report'))
        {

            
$filter['account']             = __('All');
            
$filter['type']                = __('Revenue');
            
$reportData['revenues']        = '';
            
$reportData['payments']        = '';
            
$reportData['revenueAccounts'] = '';
            
$reportData['paymentAccounts'] = '';

            
$account BankAccount::where('created_by''='\Auth::user()->creatorId())->get()->pluck('holder_name''id');
            
$account->prepend('Select Account''');

            
$types = [
                
'revenue' => __('Revenue'),
                
'payment' => __('Payment'),
            ];

            if(
$request->type == 'revenue' || !isset($request->type))
            {

                
$revenueAccounts Revenue::select('bank_accounts.id''bank_accounts.holder_name''bank_accounts.bank_name')->leftjoin('bank_accounts''revenues.account_id''=''bank_accounts.id')->groupBy('revenues.account_id')->selectRaw('sum(amount) as total')->where('revenues.created_by''='\Auth::user()->creatorId());

                
$revenues Revenue::where('revenues.created_by''='\Auth::user()->creatorId())->orderBy('id''desc');
            }

            if(
$request->type == 'payment')
            {
                
$paymentAccounts Payment::select('bank_accounts.id''bank_accounts.holder_name''bank_accounts.bank_name')->leftjoin('bank_accounts''payments.account_id''=''bank_accounts.id')->groupBy('payments.account_id')->selectRaw('sum(amount) as total')->where('payments.created_by''='\Auth::user()->creatorId());

                
$payments Payment::where('payments.created_by''='\Auth::user()->creatorId())->orderBy('id''desc');
            }


            if(!empty(
$request->start_month) && !empty($request->end_month))
            {
                
$start strtotime($request->start_month);
                
$end   strtotime($request->end_month);
            }
            else
            {
                
$start strtotime(date('Y-m'));
                
$end   strtotime(date('Y-m'strtotime("-5 month")));
            }


            
$currentdate $start;
            while(
$currentdate <= $end)
            {
                
$data['month'] = date('m'$currentdate);
                
$data['year']  = date('Y'$currentdate);

                if(
$request->type == 'revenue' || !isset($request->type))
                {
                    
$revenues->Orwhere(
                        function (
$query) use ($data){
                            
$query->whereMonth('date'$data['month'])->whereYear('date'$data['year']);
                            
$query->where('revenues.created_by''='\Auth::user()->creatorId());
                        }
                    );

                    
$revenueAccounts->Orwhere(
                        function (
$query) use ($data){
                            
$query->whereMonth('date'$data['month'])->whereYear('date'$data['year']);
                            
$query->where('revenues.created_by''='\Auth::user()->creatorId());
                        }
                    );
                }

                if(
$request->type == 'payment')
                {
                    
$paymentAccounts->Orwhere(
                        function (
$query) use ($data){
                            
$query->whereMonth('date'$data['month'])->whereYear('date'$data['year']);
                            
$query->where('payments.created_by''='\Auth::user()->creatorId());
                        }
                    );
                }


                
$currentdate strtotime('+1 month'$currentdate);
            }

            if(!empty(
$request->account))
            {
                if(
$request->type == 'revenue' || !isset($request->type))
                {
                    
$revenues->where('account_id'$request->account);
                    
$revenues->where('revenues.created_by''='\Auth::user()->creatorId());
                    
$revenueAccounts->where('account_id'$request->account);
                    
$revenueAccounts->where('revenues.created_by''='\Auth::user()->creatorId());
                }

                if(
$request->type == 'payment')
                {
                    
$payments->where('account_id'$request->account);
                    
$payments->where('payments.created_by''='\Auth::user()->creatorId());

                    
$paymentAccounts->where('account_id'$request->account);
                    
$paymentAccounts->where('payments.created_by''='\Auth::user()->creatorId());
                }


                
$bankAccount       BankAccount::find($request->account);
                
$filter['account'] = !empty($bankAccount) ? $bankAccount->holder_name ' - ' $bankAccount->bank_name '';
                if(
$bankAccount->holder_name == 'Cash')
                {
                    
$filter['account'] = 'Cash';
                }

            }

            if(
$request->type == 'revenue' || !isset($request->type))
            {
                
$reportData['revenues'] = $revenues->get();

                
$revenueAccounts->where('revenues.created_by''='\Auth::user()->creatorId());
                
$reportData['revenueAccounts'] = $revenueAccounts->get();

            }

            if(
$request->type == 'payment')
            {
                
$reportData['payments'] = $payments->get();

                
$paymentAccounts->where('payments.created_by''='\Auth::user()->creatorId());
                
$reportData['paymentAccounts'] = $paymentAccounts->get();
                
$filter['type']                = __('Payment');
            }


            
$filter['startDateRange'] = date('M-Y'$start);
            
$filter['endDateRange']   = date('M-Y'$end);


            return 
view('report.statement_report'compact('reportData''account''types''filter'));
        }
        else
        {
            return 
redirect()->back()->with('error'__('Permission Denied.'));
        }
    }
    public function 
balanceSheet(Request $request)
    {
        if(
\Auth::user()->can('bill report'))
        {

            if(!empty(
$request->start_date) && !empty($request->end_date))
            {
                
$start $request->start_date;
                
$end   $request->end_date;
            }
            else
            {
                
$start date('Y-m-01');
                
$end   date('Y-m-t');
            }

            
$types         ChartOfAccountType::where('created_by',\Auth::user()->creatorId())->get();
            
$chartAccounts = [];
            foreach(
$types as $type)
            {
                
$subTypes     ChartOfAccountSubType::where('type'$type->id)->get();
                
$subTypeArray = [];
                foreach(
$subTypes as $subType)
                {
                    
$accounts     ChartOfAccount::where('type'$type->id)->where('sub_type'$subType->id)->get();
                    
$accountArray = [];
                    foreach(
$accounts as $account)
                    {

                        
$journalItem JournalItem::select(\DB::raw('sum(credit) as totalCredit'), \DB::raw('sum(debit) as totalDebit'), \DB::raw('sum(credit) - sum(debit) as netAmount'))->where('account'$account->id);
                        
$journalItem->where('created_at''>='$start);
                        
$journalItem->where('created_at''<='$end);
                        
$journalItem          $journalItem->first();
                        
$data['account_name'] = $account->name;
                        
$data['totalCredit']  = $journalItem->totalCredit;
                        
$data['totalDebit']   = $journalItem->totalDebit;
                        
$data['netAmount']    = $journalItem->netAmount;
                        
$accountArray[]       = $data;
                    }
                    
$subTypeData['subType'] = $subType->name;
                    
$subTypeData['account'] = $accountArray;
                    
$subTypeArray[]         = $subTypeData;
                }

                
$chartAccounts[$type->name]=$subTypeArray;
            }

            
$filter['startDateRange'] = $start;
            
$filter['endDateRange']   = $end;


            return 
view('report.balance_sheet'compact('filter''chartAccounts'));
        }
        else
        {
            return 
redirect()->back()->with('error'__('Permission Denied.'));
        }
    }

    public function 
ledgerSummary(Request $request)
    {
        if(
\Auth::user()->can('ledger report'))
        {
            
$accounts ChartOfAccount::where('created_by'\Auth::user()->creatorId())->get()->pluck('name''id');
            
$accounts->prepend('Select Account''');


            if(!empty(
$request->start_date) && !empty($request->end_date))
            {
                
$start $request->start_date;
                
$end   $request->end_date;
            }
            else
            {
                
$start date('Y-m-01');
                
$end   date('Y-m-t');
            }

            if(!empty(
$request->account))
            {
                
$account ChartOfAccount::find($request->account);
            }
            else
            {
                
$account ChartOfAccount::where('created_by'\Auth::user()->creatorId())->first();
            }


            
$journalItems JournalItem::select('journal_entries.journal_id''journal_entries.date as transaction_date''journal_items.*')->leftjoin('journal_entries''journal_entries.id''journal_items.journal')->where('journal_entries.created_by''='\Auth::user()->creatorId())->where('account', !empty($account) ? $account->id 0);
            
$journalItems->where('date''>='$start);
            
$journalItems->where('date''<='$end);
            
$journalItems $journalItems->get();

            
$balance 0;
            
$debit   0;
            
$credit  0;
            foreach(
$journalItems as $item)
            {
                if(
$item->debit 0)
                {
                    
$debit += $item->debit;
                }

                else
                {
                    
$credit += $item->credit;
                }

                
$balance $credit $debit;
            }

            
$filter['balance']        = $balance;
            
$filter['credit']         = $credit;
            
$filter['debit']          = $debit;
            
$filter['startDateRange'] = $start;
            
$filter['endDateRange']   = $end;


            return 
view('report.ledger_summary'compact('filter''journalItems''account''accounts'));
        }
        else
        {
            return 
redirect()->back()->with('error'__('Permission Denied.'));
        }
    }

    public function 
trialBalanceSummary(Request $request)
    {
        if(
\Auth::user()->can('trial balance report'))
        {


            if(!empty(
$request->start_date) && !empty($request->end_date))
            {
                
$start $request->start_date;
                
$end   $request->end_date;
            }
            else
            {
                
$start date('Y-m-01');
                
$end   date('Y-m-t');
            }

            
$journalItem JournalItem::select('chart_of_accounts.name'\DB::raw('sum(credit) as totalCredit'), \DB::raw('sum(debit) as totalDebit'), \DB::raw('sum(credit) - sum(debit) as netAmount'));
            
$journalItem->leftjoin('journal_entries''journal_entries.id''journal_items.journal');
            
$journalItem->leftjoin('chart_of_accounts''journal_items.account''chart_of_accounts.id');
            
$journalItem->where('chart_of_accounts.created_by',\Auth::user()->creatorId());
            
$journalItem->where('journal_items.created_at''>='$start);
            
$journalItem->where('journal_items.created_at''<='$end);
            
$journalItem->groupBy('account');
            
$journalItem $journalItem->get()->toArray();

            
$filter['startDateRange'] = $start;
            
$filter['endDateRange']   = $end;

            return 
view('report.trial_balance'compact('filter''journalItem'));
        }
        else
        {
            return 
redirect()->back()->with('error'__('Permission Denied.'));
        }
    }
    public function 
leave(Request $request)
    {

        if(
\Auth::user()->can('manage report'))
        {

            
$branch Branch::where('created_by'\Auth::user()->creatorId())->get()->pluck('name''id');
            
$branch->prepend('Select Branch''');

            
$department Department::where('created_by'\Auth::user()->creatorId())->get()->pluck('name''id');
            
$department->prepend('Select Department''');

            
$filterYear['branch']        = __('All');
            
$filterYear['department']    = __('All');
            
$filterYear['type']          = __('Monthly');
            
$filterYear['dateYearRange'] = date('M-Y');
            
$employees                   Employee::where('created_by'\Auth::user()->creatorId());
            if(!empty(
$request->branch))
            {
                
$employees->where('branch_id'$request->branch);
                
$filterYear['branch'] = !empty(Branch::find($request->branch)) ? Branch::find($request->branch)->name '';
            }
            if(!empty(
$request->department))
            {
                
$employees->where('department_id'$request->department);
                
$filterYear['department'] = !empty(Department::find($request->department)) ? Department::find($request->department)->name '';
            }


            
$employees $employees->get();

            
$leaves        = [];
            
$totalApproved $totalReject $totalPending 0;
            foreach(
$employees as $employee)
            {

                
$employeeLeave['id']          = $employee->id;
                
$employeeLeave['employee_id'] = $employee->employee_id;
                
$employeeLeave['employee']    = $employee->name;

                
$approved Leave::where('employee_id'$employee->id)->where('status''Approved');
                
$reject   Leave::where('employee_id'$employee->id)->where('status''Reject');
                
$pending  Leave::where('employee_id'$employee->id)->where('status''Pending');

                if(
$request->type == 'monthly' && !empty($request->month))
                {
                    
$month date('m'strtotime($request->month));
                    
$year  date('Y'strtotime($request->month));

                    
$approved->whereMonth('applied_on'$month)->whereYear('applied_on'$year);
                    
$reject->whereMonth('applied_on'$month)->whereYear('applied_on'$year);
                    
$pending->whereMonth('applied_on'$month)->whereYear('applied_on'$year);

                    
$filterYear['dateYearRange'] = date('M-Y'strtotime($request->month));
                    
$filterYear['type']          = __('Monthly');

                }
                elseif(!isset(
$request->type))
                {
                    
$month     date('m');
                    
$year      date('Y');
                    
$monthYear date('Y-m');

                    
$approved->whereMonth('applied_on'$month)->whereYear('applied_on'$year);
                    
$reject->whereMonth('applied_on'$month)->whereYear('applied_on'$year);
                    
$pending->whereMonth('applied_on'$month)->whereYear('applied_on'$year);

                    
$filterYear['dateYearRange'] = date('M-Y'strtotime($monthYear));
                    
$filterYear['type']          = __('Monthly');
                }


                if(
$request->type == 'yearly' && !empty($request->year))
                {
                    
$approved->whereYear('applied_on'$request->year);
                    
$reject->whereYear('applied_on'$request->year);
                    
$pending->whereYear('applied_on'$request->year);


                    
$filterYear['dateYearRange'] = $request->year;
                    
$filterYear['type']          = __('Yearly');
                }

                
$approved $approved->count();
                
$reject   $reject->count();
                
$pending  $pending->count();

                
$totalApproved += $approved;
                
$totalReject   += $reject;
                
$totalPending  += $pending;

                
$employeeLeave['approved'] = $approved;
                
$employeeLeave['reject']   = $reject;
                
$employeeLeave['pending']  = $pending;


                
$leaves[] = $employeeLeave;
            }

            
$starting_year date('Y'strtotime('-5 year'));
            
$ending_year   date('Y'strtotime('+5 year'));

            
$filterYear['starting_year'] = $starting_year;
            
$filterYear['ending_year']   = $ending_year;

            
$filter['totalApproved'] = $totalApproved;
            
$filter['totalReject']   = $totalReject;
            
$filter['totalPending']  = $totalPending;


            return 
view('report.leave'compact('department''branch''leaves''filterYear''filter'));
        }
        else
        {
            return 
redirect()->back()->with('error'__('Permission denied.'));
        }
    }

    public function 
employeeLeave(Request $request$employee_id$status$type$month$year)
    {
        if(
\Auth::user()->can('manage report'))
        {
            
$leaveTypes LeaveType::where('created_by'\Auth::user()->creatorId())->get();
            
$leaves     = [];
            foreach(
$leaveTypes as $leaveType)
            {
                
$leave        = new Leave();
                
$leave->title $leaveType->title;
                
$totalLeave   Leave::where('employee_id'$employee_id)->where('status'$status)->where('leave_type_id'$leaveType->id);
                if(
$type == 'yearly')
                {
                    
$totalLeave->whereYear('applied_on'$year);
                }
                else
                {
                    
$m date('m'strtotime($month));
                    
$y date('Y'strtotime($month));

                    
$totalLeave->whereMonth('applied_on'$m)->whereYear('applied_on'$y);
                }
                
$totalLeave $totalLeave->count();

                
$leave->total $totalLeave;
                
$leaves[]     = $leave;
            }

            
$leaveData Leave::where('employee_id'$employee_id)->where('status'$status);
            if(
$type == 'yearly')
            {
                
$leaveData->whereYear('applied_on'$year);
            }
            else
            {
                
$m date('m'strtotime($month));
                
$y date('Y'strtotime($month));

                
$leaveData->whereMonth('applied_on'$m)->whereYear('applied_on'$y);
            }


            
$leaveData $leaveData->get();


            return 
view('report.leaveShow'compact('leaves''leaveData'));
        }
        else
        {
            return 
redirect()->back()->with('error'__('Permission denied.'));
        }


    }
    public function 
monthlyAttendance(Request $request)
    {
        if(
\Auth::user()->can('manage report'))
        {


            
$branch Branch::where('created_by'\Auth::user()->creatorId())->get()->pluck('name''id');
            
$branch->prepend('Select Branch''');

            
$department Department::where('created_by'\Auth::user()->creatorId())->get()->pluck('name''id');
            
$department->prepend('Select Department''');

            
$data['branch']     = __('All');
            
$data['department'] = __('All');

            
$employees Employee::select('id''name')->where('created_by'\Auth::user()->creatorId());
            if(!empty(
$request->branch))
            {
                
$employees->where('branch_id'$request->branch);
                
$data['branch'] = !empty(Branch::find($request->branch)) ? Branch::find($request->branch)->name '';
            }

            if(!empty(
$request->department))
            {
                
$employees->where('department_id'$request->department);
                
$data['department'] = !empty(Department::find($request->department)) ? Department::find($request->department)->name '';
            }

            
$employees $employees->get()->pluck('name''id');


            if(!empty(
$request->month))
            {
                
$currentdate strtotime($request->month);
                
$month       date('m'$currentdate);
                
$year        date('Y'$currentdate);
                
$curMonth    date('M-Y'strtotime($request->month));

            }
            else
            {
                
$month    date('m');
                
$year     date('Y');
                
$curMonth date('M-Y'strtotime($year '-' $month));
            }


            
$num_of_days date('t'mktime(000$month1$year));
            for(
$i 1$i <= $num_of_days$i++)
            {
                
$dates[] = str_pad($i2'0'STR_PAD_LEFT);
            }

            
$employeesAttendance = [];
            
$totalPresent        $totalLeave $totalEarlyLeave 0;
            
$ovetimeHours        $overtimeMins $earlyleaveHours $earlyleaveMins $lateHours $lateMins 0;
            foreach(
$employees as $id => $employee)
            {
                
$attendances['name'] = $employee;

                foreach(
$dates as $date)
                {
                    
$dateFormat $year '-' $month '-' $date;

                    if(
$dateFormat <= date('Y-m-d'))
                    {
                        
$employeeAttendance AttendanceEmployee::where('employee_id'$id)->where('date'$dateFormat)->first();

                        if(!empty(
$employeeAttendance) && $employeeAttendance->status == 'Present')
                        {
                            
$attendanceStatus[$date] = 'P';
                            
$totalPresent            += 1;

                            if(
$employeeAttendance->overtime 0)
                            {
                                
$ovetimeHours += date('h'strtotime($employeeAttendance->overtime));
                                
$overtimeMins += date('i'strtotime($employeeAttendance->overtime));
                            }

                            if(
$employeeAttendance->early_leaving 0)
                            {
                                
$earlyleaveHours += date('h'strtotime($employeeAttendance->early_leaving));
                                
$earlyleaveMins  += date('i'strtotime($employeeAttendance->early_leaving));
                            }

                            if(
$employeeAttendance->late 0)
                            {
                                
$lateHours += date('h'strtotime($employeeAttendance->late));
                                
$lateMins  += date('i'strtotime($employeeAttendance->late));
                            }


                        }
                        elseif(!empty(
$employeeAttendance) && $employeeAttendance->status == 'Leave')
                        {
                            
$attendanceStatus[$date] = 'A';
                            
$totalLeave              += 1;
                        }
                        else
                        {
                            
$attendanceStatus[$date] = '';
                        }
                    }
                    else
                    {
                        
$attendanceStatus[$date] = '';
                    }

                }
                
$attendances['status'] = $attendanceStatus;
                
$employeesAttendance[] = $attendances;
            }

            
$totalOverTime   $ovetimeHours + ($overtimeMins 60);
            
$totalEarlyleave $earlyleaveHours + ($earlyleaveMins 60);
            
$totalLate       $lateHours + ($lateMins 60);

            
$data['totalOvertime']   = $totalOverTime;
            
$data['totalEarlyLeave'] = $totalEarlyleave;
            
$data['totalLate']       = $totalLate;
            
$data['totalPresent']    = $totalPresent;
            
$data['totalLeave']      = $totalLeave;
            
$data['curMonth']        = $curMonth;

            return 
view('report.monthlyAttendance'compact('employeesAttendance''branch''department''dates''data'));
        }
        else
        {
            return 
redirect()->back()->with('error'__('Permission denied.'));
        }

    }
    public function 
payroll(Request $request)
    {

        if(
\Auth::user()->can('manage report'))
        {
            
$branch Branch::where('created_by'\Auth::user()->creatorId())->get()->pluck('name''id');
            
$branch->prepend('Select Branch''');

            
$department Department::where('created_by'\Auth::user()->creatorId())->get()->pluck('name''id');
            
$department->prepend('Select Department''');

            
$filterYear['branch']     = __('All');
            
$filterYear['department'] = __('All');
            
$filterYear['type']       = __('Monthly');
            
$filterYear['dateYearRange']='';

            
$payslips PaySlip::select('pay_slips.*''employees.name')->leftjoin('employees''pay_slips.employee_id''=''employees.id')->where('pay_slips.created_by'\Auth::user()->creatorId());


            if(
$request->type == 'monthly' && !empty($request->month))
            {

                
$payslips->where('salary_month'$request->month);

                
$filterYear['dateYearRange'] = date('M-Y'strtotime($request->month));
                
$filterYear['type']          = __('Monthly');
            }
            elseif(!isset(
$request->type))
            {
                
$month date('Y-m');

                
$payslips->where('salary_month'$month);

                
$filterYear['dateYearRange'] = date('M-Y'strtotime($month));
                
$filterYear['type']          = __('Monthly');
            }


            if(
$request->type == 'yearly' && !empty($request->year))
            {
                
$startMonth $request->year '-01';
                
$endMonth   $request->year '-12';
                
$payslips->where('salary_month''>='$startMonth)->where('salary_month''<='$endMonth);

                
$filterYear['dateYearRange'] = $request->year;
                
$filterYear['type']          = __('Yearly');
            }


            if(!empty(
$request->branch))
            {
                
$payslips->where('employees.branch_id'$request->branch);

                
$filterYear['branch'] = !empty(Branch::find($request->branch)) ? Branch::find($request->branch)->name '';
            }

            if(!empty(
$request->department))
            {
                
$payslips->where('employees.department_id'$request->department);

                
$filterYear['department'] = !empty(Department::find($request->department)) ? Department::find($request->department)->name '';
            }

            
$payslips $payslips->get();

            
$totalBasicSalary $totalNetSalary $totalAllowance $totalCommision $totalLoan $totalSaturationDeduction $totalOtherPayment $totalOverTime 0;

            foreach(
$payslips as $payslip)
            {
                
$totalBasicSalary += $payslip->basic_salary;
                
$totalNetSalary   += $payslip->net_payble;

                
$allowances json_decode($payslip->allowance);
                foreach(
$allowances as $allowance)
                {
                    
$totalAllowance += $allowance->amount;

                }

                
$commisions json_decode($payslip->commission);
                foreach(
$commisions as $commision)
                {
                    
$totalCommision += $commision->amount;

                }

                
$loans json_decode($payslip->loan);
                foreach(
$loans as $loan)
                {
                    
$totalLoan += $loan->amount;
                }

                
$saturationDeductions json_decode($payslip->saturation_deduction);
                foreach(
$saturationDeductions as $saturationDeduction)
                {
                    
$totalSaturationDeduction += $saturationDeduction->amount;
                }

                
$otherPayments json_decode($payslip->other_payment);
                foreach(
$otherPayments as $otherPayment)
                {
                    
$totalOtherPayment += $otherPayment->amount;
                }

                
$overtimes json_decode($payslip->overtime);
                foreach(
$overtimes as $overtime)
                {
                    
$days  $overtime->number_of_days;
                    
$hours $overtime->hours;
                    
$rate  $overtime->rate;

                    
$totalOverTime += ($rate $hours) * $days;
                }


            }

            
$filterData['totalBasicSalary']         = $totalBasicSalary;
            
$filterData['totalNetSalary']           = $totalNetSalary;
            
$filterData['totalAllowance']           = $totalAllowance;
            
$filterData['totalCommision']           = $totalCommision;
            
$filterData['totalLoan']                = $totalLoan;
            
$filterData['totalSaturationDeduction'] = $totalSaturationDeduction;
            
$filterData['totalOtherPayment']        = $totalOtherPayment;
            
$filterData['totalOverTime']            = $totalOverTime;


            
$starting_year date('Y'strtotime('-5 year'));
            
$ending_year   date('Y'strtotime('+5 year'));

            
$filterYear['starting_year'] = $starting_year;
            
$filterYear['ending_year']   = $ending_year;

            return 
view('report.payroll'compact('payslips''filterData''branch''department''filterYear'));
        }
        else
        {
            return 
redirect()->back()->with('error'__('Permission denied.'));
        }

    }
    public function 
exportCsv($filter_month$branch$department)
    {

        
$data['branch']=__('All');
        
$data['department']=__('All');
        
$employees Employee::select('id''name')->where('created_by'\Auth::user()->creatorId());
        if(
$branch != 0)
        {
            
$employees->where('branch_id'$branch);
            
$data['branch'] = !empty(Branch::find($branch)) ? Branch::find($branch)->name '';
        }

        if(
$department != 0)
        {
            
$employees->where('department_id'$department);
            
$data['department'] = !empty(Department::find($department)) ? Department::find($department)->name '';
        }

        
$employees $employees->get()->pluck('name''id');


        
$currentdate strtotime($filter_month);
        
$month       date('m'$currentdate);
        
$year        date('Y'$currentdate);
        
$data['curMonth']    = date('M-Y'strtotime($filter_month));


        
$fileName $data['branch'] . ' ' __('Branch') . ' ' $data['curMonth'] . ' ' __('Attendance Report of') . ' ' $data['department'] . ' ' __('Department') . ' ' '.csv';


        
$num_of_days date('t'mktime(000$month1$year));
        for(
$i 1$i <= $num_of_days$i++)
        {
            
$dates[] = str_pad($i2'0'STR_PAD_LEFT);
        }

        foreach(
$employees as $id => $employee)
        {
            
$attendances['name'] = $employee;

            foreach(
$dates as $date)
            {

                
$dateFormat $year '-' $month '-' $date;

                if(
$dateFormat <= date('Y-m-d'))
                {
                    
$employeeAttendance AttendanceEmployee::where('employee_id'$id)->where('date'$dateFormat)->first();

                    if(!empty(
$employeeAttendance) && $employeeAttendance->status == 'Present')
                    {
                        
$attendanceStatus[$date] = 'P';
                    }
                    elseif(!empty(
$employeeAttendance) && $employeeAttendance->status == 'Leave')
                    {
                        
$attendanceStatus[$date] = 'A';
                    }
                    else
                    {
                        
$attendanceStatus[$date] = '-';
                    }

                }
                else
                {
                    
$attendanceStatus[$date] = '-';
                }
                
$attendances[$date] = $attendanceStatus[$date];
            }

            
$employeesAttendance[] = $attendances;
        }

        
$headers = array(
            
"Content-type" => "text/csv",
            
"Content-Disposition" => "attachment; filename=$fileName",
            
"Pragma" => "no-cache",
            
"Cache-Control" => "must-revalidate, post-check=0, pre-check=0",
            
"Expires" => "0",
        );

        
$emp = array(
            
'employee',
        );

        
$columns array_merge($emp$dates);

        
$callback = function () use ($employeesAttendance$columns){
            
$file fopen('php://output''w');
            
fputcsv($file$columns);

            foreach(
$employeesAttendance as $attendance)
            {
                
fputcsv($filestr_replace('"'''array_values($attendance)));
            }


            
fclose($file);
        };

        return 
response()->stream($callback200$headers);
    }

    public function 
productStock(Request $request)
    {
        if(
\Auth::user()->can('stock report'))
        {
            
$stocks StockReport::where('created_by''='\Auth::user()->creatorId())->get();
            return 
view('report.product_stock_report',compact('stocks'));
        }
        else
        {
            return 
redirect()->back()->with('error'__('Permission Denied.'));
        }

    }

    
//for export in account statement report
    
public function export()
    {
        
$name 'account_statement' date('Y-m-d i:h:s');
        
$data Excel::download(new AccountStatementExport(), $name '.xlsx');

        return 
$data;
    }
    
// for export in product stock report
    
public function stock_export()
    {
        
$name 'Product_Stock' date('Y-m-d i:h:s');
        
$data Excel::download(new ProductStockExport(), $name '.xlsx');

        return 
$data;
    }

    
// for export in payroll report
    
public function PayrollReportExport(Request $request)
    {
        
$name 'Payroll_' date('Y-m-d i:h:s');
        
$data \Excel::download(new PayrollExport(), $name '.xlsx');

        return 
$data;
    }

    
// for export in leave report
    
public function LeaveReportExport()
    {
        
$name 'leave_' date('Y-m-d i:h:s');
        
$data \Excel::download(new LeaveReportExport(), $name '.xlsx');

        return 
$data;
    }


}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0286 ]--