File: /home/thehunarfound/public_html/DMSold/app/Http/Controllers/DonorsController.php_18-feb-19
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Donors; // add model
use App\Donations;
use DB;
use Carbon\Carbon;
use Session;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Validator;
use App\Country;
use App\Countrise;
use App\City;
use App\States;
use App\User;
use App\Log;
use Datatables;
class DonorsController extends Controller
{
public function create()
{
// $donors = Donors::orderBy('id','desc')->first();//shows last id
$current = Carbon::now(); //gets date/time
$country_list = DB::table('datacountries')->groupBy('country')->get();
return view('donor/index')->with('country_list', $country_list)->with('current',$current);
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//form validation
$this->validate($request, [
'donor_type'=>'required',
'country'=>'required',
'first_name'=>'required',
'state'=>'required',
'mobile_no'=>'required',
'city'=>'required',
'picture_url'=> 'image|nullable|max:1999',
'address'=> 'nullable',
'email' => 'nullable|email|max:255|unique:donors'
]);
if($request -> hasFile('picture_url')){
//Get filename with the extension
$filenameWithExt = $request->file('picture_url')->getClientOriginalName();
// Get just filename
$filename = pathinfo($filenameWithExt,PATHINFO_FILENAME);
//Get just ext
$extension = $request->file('picture_url')->getClientOriginalExtension();
//filename to store
$fileNameToStore = $filename.'_'.time().'.'.$extension;
// upload Image
$path = $request->file('picture_url')->storeAs('public/picture_url',$fileNameToStore);
}else{
$fileNameToStore = 'no-profile-image.png';
}
$donor = new Donors();
$donor->donor_type = $request->input('donor_type');
$donor->title =$request->input('title');
$donor->first_name =$request->input('first_name');
$donor->last_name =$request->input('last_name');
$donor->care_of =$request->input('care_of');
$donor->designation =$request->input('designation');
$donor->address =$request->input('address');
$donor->address2 =$request->input('address2');
$donor->country =$request->input('country');
$donor->city =$request->input('city');
$donor->state =$request->input('state');
$donor->business_no =$request->input('business_no');
$donor->mobile_no =$request->input('mobile_no');
$donor->email =$request->input('email');
$donor->picture_url = $fileNameToStore;
$donor->company =$request->input('company');
$donor->spouse_name =$request->input('spouse_name');
$donor->gender =$request->input('gender');
$donor->comment =$request->input('comment');
$donor->user_id = auth()->User()->id;
$donor->save(); //saves form data to database
// dd($donor); die;
$log = Log::create(['name'=>auth()->User()->name,'role'=>auth()->User()->role_id,'ddr_id'=>'Donar-ID'.' = '.$donor->id,'details'=>'Donor Form Submitted']);
return redirect('donors')->with('success',' Donor information has been successfully saved. ');
}
//retreive mobile code
// public function fetch(Request $request){
// // $select = $request->get('select');//this method receives select var which is in the <script>
// $value = $request->get('value');
// $dependent =$request->get('dependent');
// $data = DB::table('datastates') //select query
// ->where('fkDataCountryId', $value)->get();
// $output = '<option value="">Select '.ucfirst($dependent).'</option>';
// foreach($data as $row)
// {
// $output .='<option value="'.$row->id.'">'.$row->stateName.'</option>';
// }
// echo $output;
// }
//handles the AJAX request
public function fetch(Request $request){
// $select = $request->get('select');//this method receives select var which is in the <script>
$value = $request->get('value');
$dependent =$request->get('dependent');
$mobile =$request->get('mobile');
$data = DB::table('datastates') //select query
->where('fkDataCountryId', $value)->get();
$output = '<option value="">Select '.ucfirst($dependent).'</option>';
foreach($data as $row)
{
$output .='<option value="'.$row->id.'">'.$row->stateName.'</option>';
}
$data2 = '+';
$data2 .= DB::table('phone_code') //select query
->where('country_id', $value)->value('phonecode');
// $data=json_decode(json_encode($data,TRUE),TRUE);
// $array1= $data2->toArray();
// $array1= $output->toArray();
// $final=array_values($array1);
$final = array($data2,$output);
// echo array_values($data2,$output);
echo json_encode($final);
// echo $final;
}
public function getDonor(Request $request)
{
$donor = Donors::find($request->id);
if($donor->country != null || $donor->country != "")
{
$country = Country::find($donor->country);
if(!empty($country)){
$donor->country=$country->country;
}
}
if($donor->state != null || $donor->state != "")
{
$states = States::find($donor->state);
if(!empty($states)){
$donor->state=$states->stateName;
}
}
$profileStrength=0;
$arrayDonor= $donor->toArray();
$arrayDonor=array_values($arrayDonor);
// print_r($arrayDonor);
// die;
foreach ($arrayDonor as $key =>$value) {
if( $key == 0 || $key == 1 || $key == 3 || $key == 5 || $key == 7 || $key == 10 || $key == 12){
continue;
}
if($value != ""){
$profileStrength=$profileStrength+5.55;
}
}
$profileStrength=round($profileStrength);
$donor->profileStrength=$profileStrength;
$donor->path='http://dms.hunarfoundationpakistan.org:8012/DMS/storage/app/public/picture_url';
return $donor;
}
public function edit($id)
{
$donor = Donors::find($id);
$state = DB::table('datastates')->where('fkDataCountryId',$donor->country)->get();
$country_list = DB::table('datacountries')->groupBy('country')->get();
$current = Carbon::now();
$donor->path='http://dms.hunarfoundationpakistan.org:8012/DMS/storage/app/public/picture_url/'.$donor->picture_url;
// dd($state); die;
return view('donor/edit')->with('donor',$donor)->with('country_list', $country_list)->with('current',$current)->with('state',$state);
}
public function update(Request $request, $id)
{
//dd($request->all());
//form validation
$this->validate($request, [
'donor_type'=>'required',
'mobile_no'=>'required',
'city'=>'required',
'picture_url'=> 'image|nullable|max:1999',
'address'=> 'nullable'
//numeric
]);
if($request -> hasFile('picture_url')){
//Get filename with the extension
$filenameWithExt = $request->file('picture_url')->getClientOriginalName();
// Get just filename
$filename = pathinfo($filenameWithExt,PATHINFO_FILENAME);
//Get just ext
$extension = $request->file('picture_url')->getClientOriginalExtension();
//filename to store
$fileNameToStore = $filename.'_'.time().'.'.$extension;
// upload Image
$path = $request->file('picture_url')->storeAs('public/picture_url',$fileNameToStore);
}
$donor = Donors::find($id);
$donor->donor_type = $request->input('donor_type');
$donor->title =$request->input('title');
$donor->first_name =$request->input('first_name');
$donor->last_name =$request->input('last_name');
$donor->care_of =$request->input('care_of');
$donor->designation =$request->input('designation');
$donor->address =$request->input('address');
$donor->address2 =$request->input('address2');
$donor->country =$request->input('country');
$donor->state =$request->input('state');
$donor->city =$request->input('city');
$donor->business_no =$request->input('business_no');
$donor->mobile_no =$request->input('mobile_no');
$donor->email =$request->input('email');
$donor->company =$request->input('company');
$donor->spouse_name =$request->input('spouse_name');
$donor->gender =$request->input('gender');
$donor->comment =$request->input('comment');
if($request->hasFile('picture_url')){
$donor->picture_url = $fileNameToStore;
}
$donor->save();
return redirect('donors')->with('success',' Donor information successfully updated. ');
}
public function donorSearch(Request $request)
{
$keyword=$request->fname;
$search_result = Donors::donorSearch($keyword);
return view('search.search')->with('search_result',$search_result);
}
}