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

    

}