MOON
Server: Apache
System: Linux 54-179-220-51.cprapid.com 3.10.0-1160.144.1.el7.tuxcare.els4.x86_64 #1 SMP Tue Apr 7 08:40:40 UTC 2026 x86_64
User: thehunarfound (1001)
PHP: 7.4.29
Disabled: NONE
Upload Files
File: /home/thehunarfound/public_html/DMS/app/Http/Controllers/ReportsController.php_18-feb-19
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Khill\Lavacharts\Lavacharts;
use App\Donors;
use App\OptionList;
use App\Donations;
use App\User;
// use session;
use Session;
use Datatables;
use DB;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Schema;
// use Illuminate\Queue\SerializesModels;

class ReportsController extends Controller
{
    
    public function index(){
        $donorData=Donors::getDonorReport();
        foreach ($donorData as $key => $value) {
            if($value->name == "" || $value->name == NULL){
                $donorData[$key]->name = $donorData[$key]->first_name;
            }
        }

        return DataTables::of($donorData)->toJson();
    }

    public function create()
    {
        return view('reports.donor');
    }

    public function graphicalData(){
        //Geo Graph


        $data = Donors::getDonorsFields();
        $lava = new Lavacharts;
        // dd($data);
        $popularity = $lava->DataTable();
        $popularity->addStringColumn('Country')
                   ->addNumberColumn('Total Donors')
                   ->addRows($data);
        
        $lava->GeoChart('Popularity', $popularity);

        //Bar Graph
        $barData = Donations::getTotalDonation();
        
        $barDataTable = $lava->DataTable();
        $barDataTable->addDateColumn('Date')
                   ->addNumberColumn('Number of Donation')
                   ->addRows($barData);
        
        $lava->LineChart('Donations', $barDataTable, [
            'title' => 'Number of Donation',
            'titleTextStyle' => [
                'color'    => '#eb6b2c',
                'fontSize' => 14
            ]
        ]);

        //bar graph total amount of donation
        $barAmountData = Donations::getTotalAmountDonation();
    
        $barDataTable = $lava->DataTable();
        $barDataTable->addDateColumn('Date')
                   ->addNumberColumn('Amount of Donation')
                   ->addRows($barAmountData);
        
        $lava->LineChart('AmountDonations', $barDataTable, [
            'title' => 'Total Amount of Monthly Donation',
            'colors' => array('orange'),
            'titleTextStyle' => [
                'color'    => '#eb6b2c',
                'fontSize' => 14
            ]
        ]);

        $totalDonors = Donors::count();
        $totalDonations = Donations::sum('donation_amount');
        // $totalDonors=count(Donors::getDonors());
        // $totalDonations=Donations::getTotalAmount();
        $totalDonation = number_format($totalDonations, 2); 
// dd($totalDonations);
        
        return view('reports.index')->with(['lava'=>$lava,'totalDonors' => $totalDonors,'totalDonation' => $totalDonation]);
   }

    public function getDonation(Request $request){

        $from =$request->session()->pull('from');
        $to = $request->session()->pull('to'); 

        if($from != "" && $to != ""){
          
            $donationData=Donors::getDonationFilterReport($from,$to);
           
        }else{ 
            $donationData=Donors::getDonationReport();   
        }
      
     
        foreach ($donationData as $key => $value) {
            if($value->name == "" || $value->name == NULL){
            $donationData[$key]->name = $donationData[$key]->first_name;
            }
        }
        $request->session()->forget('from');
        $request->session()->forget('to');
        return DataTables::of($donationData)->toJson();
    }

    public function donations_list(Request $request)
    {

      
        $request->session()->put('from', $request->from_date);
        $request->session()->put('to', $request->to_date);
        // $from =$request->session()->get('from');
        // $to = $request->session()->get('to'); 
        // dd($to);

      
           return view('reports.donations');
     }


   public function getData(){

        $getData=Donors::getReport();
       foreach ($getData as $keys => $values) {

            if($values->name == "" || $values->name == null){
              $getData[$keys]->name = $getData[$keys]->first_name;
            }
        }
     return DataTables::of($getData)->toJson();
    }

    public function filter()
    {
        // dd($request);
        return view('reports.report');
    }

    public function donorHistory($request)
    
    {  

       $donor_details = Donors::where('id',$request)->first();
       $donation_history = Donations::where('donor_id',$request)->get();
       $totalDonations = Donations::where('donor_id',$request)->sum('actual_amt');
    
     return view('reports.donorHistory')->with(['donors' => $donor_details , 'donation_history' =>  $donation_history,'totalDonations' => $totalDonations]);
    }

    public function dynamicReport(Request $request)
    {
       $projectList=OptionList::getProjectList();
       $categoryList=OptionList::getCategoryList(); 
       $allocationList=OptionList::getAllocationList();
       $city = Donors::distinct()->get(['city']);
       $care_of = Donors::select('care_of')->distinct()->whereNotNull('care_of', '')->get();
// dd($care_of);
      
    $results = []; 
    $don_results = []; 
    $donor_col_name = Schema::getColumnListing('donors');
      foreach($donor_col_name as $value) {
        if($value =='country'){
           $results[] = 'datacountries.'.$value; 
        }elseif($value =='state'){
           $results[] = 'datastates.stateName';  
        }else{
           $results[] = 'donors.'.$value; 
        }
       }
    $donation_col_name = Schema::getColumnListing('donations');
    foreach($donation_col_name as $value) {
        if($value =='allocation'){
           $don_results[] = 'allocation_list.allo_name'; 
        }elseif($value =='project'){
           $don_results[] = 'project_list.pro_name';  
        }elseif($value =='category'){
           $don_results[] = 'category_list.cat_name';  
        }else{
           $don_results[] = 'donations.'.$value; 
        }
       }
    $column_name = array_merge($results, $don_results);

    // if(!isset($request->submit)){
      return view('reports.dynamic_report')->with(['column_name'=> $column_name, 'projectList' => $projectList,'categoryList'=>$categoryList, 'allocationList'=> $allocationList, 'city'=> $city, 'care_of'=> $care_of]);
  }
    
    public function donorHeading(Request $request)
    {
       // dd($request);
      // dd($session);
       session::push('request', $request->all());
      // dd(Session::get('test'));
       // session::push('request', $request);
       // $products = session::get('request');
       // dd($product/
      $tdcoloumn =array();
      $getData=OptionList::getDynamicReport($request);
      
      if(empty($getData)){
        return redirect('dynamic-report')->with('error','Result Not Found ');
       }

   
      foreach ($getData[0] as $key => $value) {
          $tdcoloumn[]=$key;
      }
       $newData= array();
      for ($i = 0, $c = count($getData); $i < $c; ++$i) {
          $getData[$i] = (array) $getData[$i];
          $newData[] = array_values($getData[$i]);   
          
      }
     
      // for ($i=0; $i < count($getData); $i++) { 
               
      // }
      // echo "<pre>";
      // print_r($getData);
      // exit;
      // dd($getData); 
      return view('reports.all_report')->with(['getData'=> $newData, 'tdcoloumn' => $tdcoloumn]);
     
    }
}