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]);
}
}