Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 7
CRAP
0.00% covered (danger)
0.00%
0 / 76
DocumentController
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 7
870
0.00% covered (danger)
0.00%
0 / 76
 index
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 1
 store
0.00% covered (danger)
0.00%
0 / 1
506
0.00% covered (danger)
0.00%
0 / 58
 storeDocument
0.00% covered (danger)
0.00%
0 / 1
6
0.00% covered (danger)
0.00%
0 / 13
 show
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 1
 edit
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 1
 update
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 1
 destroy
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 1
<?php
namespace App\Http\Controllers\Admin\UserDetails;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Models\Admin\attendanceRequest;
use App\Models\Auth\User;
use App\Models\Admin\UserDetail;
use App\Models\Admin\Department;
use App\Models\Admin\Organisation;
use App\Models\Admin\Team;
use App\Models\Admin\Shift;
use App\Models\Admin\UserAddress;
use App\Models\Admin\UserBankDetail;
use App\Models\Admin\UserDocumentDetail;
use Spatie\Permission\Models\Role;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Storage;
use Intervention\Image\Facades\Image;
use Session;
use Illuminate\Support\Facades\Crypt;
class DocumentController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
    }
    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //tab name
        $tab = 'document'; 
        $validator = Validator::make($request->all(), [
            //'image' =>  'required',
            //'image2' => 'required'
        ]);
        if ($validator->fails())
        {
            return redirect()->back()->withErrors($validator)->with('tab',$tab);
        }
        $objArr = [$request->doc_name,
                  $request->doc_name1,
                  $request->doc_name2,
                  $request->doc_name3];
        
        $user = User::find($request->user_id);
        
        if(isset($user))
        {
            $userDetail = UserDetail::findOrFail($user->userdetail->id);
            $userDocumentdetail = $userDetail->userDocumentdetail;
        }
        if($request->editUserdetail == true){
        if($userDocumentdetail != null)
        {
            
            //for documnet 1
            if($objArr[0] != null){
                $userDocumentdetail->doc_name = $objArr[0];
                $userDocumentdetail->save();
            }
            
            if($request->hasFile('image')){
                $this->storeDocument($request, $userDocumentdetail->id, 'image');
            }
          
            //for document 2
            if($objArr[1] != null){
                $userDocumentdetail->doc_name1 = $objArr[1];
                $userDocumentdetail->save();
            }
            
            if($request->hasFile('image1')){
                $this->storeDocument($request, $userDocumentdetail->id, 'image1');
            }
            //for document 3
            if($objArr[2] != null){
                $userDocumentdetail->doc_name2 = $objArr[2];
                $userDocumentdetail->save();
            }
            
            if($request->hasFile('image2')){
                $this->storeDocument($request, $userDocumentdetail->id, 'image2');
            }
            //for document 4
            if($objArr[3] != null){
                $userDocumentdetail->doc_name3 = $objArr[3];
                $userDocumentdetail->save();
            }
            
            if($request->hasFile('image3')){
                $this->storeDocument($request, $userDocumentdetail->id, 'image3');
            }
            Session::flash('success', 'Document Details Updated Successfully!');  
            return redirect()->route('user-tab.edit',$request->user_id)->with('tab',$tab);
           
            
        }
        else
        {
            
            $user = User::find($request->user_id);
            $userDetail = $user->userdetail;
            $userdetail_id = $userDetail->id;
            $userdocumentdetail = UserDocumentDetail::create([
                'doc_name' => $objArr[0] !== null ? $objArr[0] : null,
                'doc_name1' => $objArr[1] !== null ? $objArr[1] : null,
                'doc_name2' => $objArr[2] !== null ? $objArr[2] : null,
                'doc_name3' => $objArr[3] !== null ? $objArr[3] : null,
            ]);
            $userdocumentdetail->user_detail_id =$userdetail_id;
            if($request->hasFile('image'))
                {
                    $this->storeDocument($request,$userdocumentdetail->id,'image' );
                }
            if($request->hasFile('image1'))
                {
                    $this->storeDocument($request,$userdocumentdetail->id,'image1');
                }
            if($request->hasFile('image2'))
                {
                    $this->storeDocument($request,$userdocumentdetail->id,'image2');
                }
            if($request->hasFile('image3'))
                {
                    $this->storeDocument($request,$userdocumentdetail->id,'image3');
                }
            if($userdocumentdetail->save()){
            Session::flash('success', 'Document Details Created Successfully!');  
            return redirect()->route('user-tab.edit',$request->user_id)->with('tab',$tab);
            }
        }
        }
    }
 
    private function storeDocument($request, $id ,$imageName)
    {
        $validator = Validator::make($request->all(), [
        $imageName => 'sometimes|file|mimes:jpeg,png,jpg'
        ]);
        if($validator->fails())
        {
            return redirect()->back()->withErrors($validator)->with('tab','document');
        }
        else
        {
            $file = $request->$imageName->getClientOriginalName(); //Get Image Name
            
            Storage::putFileAs(('public/UserDocument/'.$id),$request->$imageName, $file);
            $path = 'UserDocument/'. $id .'/'. $file;
            
            $userdocumentdetail= UserDocumentDetail::where('id',$id)->first();
            $userdocumentdetail->$imageName = $path;
            $userdocumentdetail->save();
            // open an image file
            $img = Image::make('storage/'.$userdocumentdetail->$imageName);
            $img->save();
        }
    }
    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }
    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
    }
    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
    }
    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
    }
}