HEX
Server: nginx/1.28.1
System: Linux 10-41-63-61 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64
User: www (1001)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot//www.shooperm.com/Modules/Account/Http/Controllers/ReportController.php
<?php

namespace Modules\Account\Http\Controllers;

use Illuminate\Contracts\Support\Renderable;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Modules\Account\Repositories\ChartOfAccountRepository;
use Modules\Account\Services\ReportService;
use Yajra\DataTables\Facades\DataTables;

class ReportController extends Controller
{
    /**
     * @var ReportService
     */
    private $reportService;
    /**
     * @var Request
     */
    private $request;


    public function __construct(ReportService $reportService, Request $request)
    {
        $this->reportService = $reportService;
        $this->request = $request;
        $this->middleware('maintenance_mode');
    }

    public function profit()
    {
        $data = $this->reportService->profit($this->request->all());

        if ($this->request->ajax()) {
            return view('account::report.profit.data', compact('data'));
        }
        return view('account::report.profit.index', compact('data'));
    }

    public function transaction()
    {
        $data = $this->reportService->transaction($this->request->all());
        if ($this->request->ajax()) {
            return view('account::report.transaction.data')->with($data);
        }

        return view('account::report.transaction.index');
    }

    public function transaction_dtbl(Request $request)
    {
        return DataTables::of($this->reportService->transactionQuery($request->all())['transactions'])
                ->addIndexColumn()
                ->addColumn('date',function($transactions){
                    return dateFormat($transactions->transaction_date);
                })
                ->addColumn('chart_of_account',function($transactions){
                    return $transactions->account ? $transactions->account->name : '';
                })
                ->addColumn('bank_account', function($transactions){
                    return $transactions->bank ? $transactions->bank->bank_name : '';
                })
                ->addColumn('title', function($transactions){
                    return $transactions->title;
                })
                ->addColumn('credit', function($transactions){
                    return ($transactions->type == 'in') ? amountFormat($transactions->amount) : '';
                })
                ->addColumn('debit', function($transactions){
                    return ($transactions->type == 'out') ? amountFormat($transactions->amount) : '';
                })
                ->make(true);
    }

    public function statement()
    {
        $data = $this->reportService->statement($this->request->all());
        return view('account::report.statement.index')->with($data);
    }

    public function statement_dtbl(Request $request)
    {
        return DataTables::of($this->reportService->statementQuery($request->all())['transactions'])
                ->addIndexColumn()
                ->addColumn('date',function($transactions){
                    return dateFormat($transactions->transaction_date);
                })
                ->addColumn('title', function($transactions){
                    return $transactions->title;
                })
                ->addColumn('credit', function($transactions){
                    return ($transactions->type == 'in') ? amountFormat($transactions->amount) : '';
                })
                ->addColumn('debit', function($transactions){
                    return ($transactions->type == 'out') ? amountFormat($transactions->amount) : '';
                })
                ->make(true);
    }

    public function bankStatement($id)
    {
        $data = $this->reportService->bankReport($id);

        return view('account::report.bank.index')->with($data);
    }
}