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 / 6
CRAP
0.00% covered (danger)
0.00%
0 / 49
SettingController
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 6
272
0.00% covered (danger)
0.00%
0 / 49
 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
132
0.00% covered (danger)
0.00%
0 / 44
 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\Auth\User;
use App\Models\Admin\UserDetail;
use App\Models\Leave\LeaveEntitlement;
use App\Models\Admin\Leave;
use Spatie\Permission\Models\Role;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use Intervention\Image\Facades\Image;
use Session;
use Auth;
use Illuminate\Support\Facades\Crypt;
use Carbon\Carbon;
use App\Http\Controllers\Admin\UserDetails\UserTabController;
use App\Models\Admin\userSetting;
use App\Helpers\LeaveLogHelper;
class SettingController 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)
    {   
        $id = $request->currUser_id;
        //tab name
        $tab = 'user_setting'; 
        // return "abcd";
        $updated_by_userid=Auth::user()->id;
        $leaveLogHelper = new LeaveLogHelper;
        $ob = new UserTabController();
        $ob->storeAttendanceUser($request,$id); 
        $ob->storeEngagementType($request);
        $DOJ = $request->start_date;
        $DOE = $request->end_date;
        $userid = $request->user_id;
        User::where('id', $userid)
            ->update(['DOJ' => $DOJ, 'DOE' => $DOE]);
            
        if ($request->editUserdetail == true) //Edit form 4
        {
            $user = User::find($request->user_id);
            if(isset($request->holiday_list) && !empty($request->holiday_list))
            {
              UserDetail::where('user_id','=',$request->user_id)->update(['holiday_list_id' => $request->holiday_list]);
            }
            // update in leave entitlements
            foreach ($request->all() as $key => $value) {
                if(is_int($key)) { // means it is leave id actually.
                    $leaveEntitlementFindQuery = array(
                        'user_id' => $request->user_id,
                        'leave_id' => $key,
                        'year' => Carbon::now()->year
                    );
                    $leaveEntitlementUpdateData = array(
                        'leave_balance' => $value
                    );
                    $leaveEntitlement = LeaveEntitlement::where($leaveEntitlementFindQuery)->first();
                    // ->update($leaveEntitlementUpdateData);
                    if(isset($leaveEntitlement)) {
                        $previousLeaveBalance = $leaveEntitlement->leave_balance;
                        $leaveEntitlement->leave_balance = $value;
                        $leaveEntitlement->save();
                        //change the leave log balance
                        if ($previousLeaveBalance < $value) {
                            $leaveLogHelper->updateLeaveLog($value - $previousLeaveBalance,"ADDED",$request->user_id,$key,"Leave add-on",$updated_by_userid);
                        } else if ($previousLeaveBalance > $value) {
                            $leaveLogHelper->updateLeaveLog( $previousLeaveBalance - $value,"SUBTRACTED",$request->user_id,$key, "Leave deduction",$updated_by_userid);
                        }  
                    } else {
                        // create leaveentitlement
                        $leave = Leave::where('id', $key)->first();
                        // return $leave;
                        if(isset($leave)){
                            $leaveEntitlementData = array(
                                'user_id' => $request->user_id,
                                'leave_id' => $key,
                                'leave_balance' => $value,
                                'year' => Carbon::now()->year,
                                'entitled_leaves' => $leave->n_days
                            );
                            // return $leaveEntitlementData;
                            LeaveEntitlement::create($leaveEntitlementData);
                            if($value != 0){
                               $leaveLogHelper->updateLeaveLog( $value,"ADDED",$request->user_id,$key,"Leave add-on",$updated_by_userid);
                            }
                        }
                        
                    }
                }
            }
            Session::flash('success', 'User settings updated Successfully!');
            return redirect()->route('user-tab.edit',$request->user_id)->with('tab',$tab);
        }
    }
    
    /**
     * 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)
    {
       
    }
   
}