middleware('auth:admin'); } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index(Request $request) { $promotions = DB::table('promotions')->orderBy('promotions.id', 'desc')->get(); return view('admin.promotions.index', compact('promotions')); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { $user_lists = DB::table('users') ->join('role_user', 'users.id', '=', 'role_user.user_id') ->join('roles', 'role_user.role_id', '=', 'roles.id') ->select('users.*', 'roles.name as role_name') // ->where('users.status', '=', '1') ->orderBy('users.id', 'desc') ->get() ->toArray(); return view('admin.promotions.create', compact('user_lists')); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $validatedData = $this->validate($request, [ 'user_id' => 'required', 'last_user_id' => 'required', 'till_date' => 'required', ]); $input = $request->all(); $user_id = $request->input('user_id'); if($input['till_date'] != "") $input['till_date'] = Carbon\Carbon::createFromFormat('m/d/Y', $input['till_date'])->format('Y-m-d'); $saved_data=Promotion::create($input); if($saved_data) { $current_user = DB::table('users') ->join('role_user', 'users.id', '=', 'role_user.user_id') ->join('roles', 'role_user.role_id', '=', 'roles.id') ->select('users.*', 'roles.name as role_name') ->where('users.id', '=', $user_id) ->first(); $workFlowDocumentUser = WorkflowDocumentUser::where('user_id', $input['last_user_id'])->get(); if(!empty($workFlowDocumentUser)){ foreach($workFlowDocumentUser as $doceUser){ $checkDocumentUser = WorkflowDocumentUser::where('user_id',$current_user->id) ->where('workflow_document_id',$doceUser->workflow_document_id) ->where('status', 'Y') ->first(); if(!isset($checkDocumentUser)){ $supporter_input['_token']=$input['_token']; $supporter_input['workflow_document_id']=$doceUser->workflow_document_id; $supporter_input['user_id']=$current_user->id; $supporter_input['process_id']=$doceUser->process_id; $supporter_input['user_type']='S'; $supporter_input['user_name']=$current_user->first_name.' '.$current_user->last_name; $supporter_input['user_email']=$current_user->email; $supporter_input['user_role']=$current_user->role_name; $supporter_input['added_by']=$input['last_user_id']; $supporter_input['is_read']=$doceUser->is_read; $supporter_input['promotion_id']=$saved_data->id; $supporter_department = Department::where('id',$current_user->department_id)->first(); if($supporter_department) { $supporter_input['user_department']=$supporter_department->name; } $supporter_save=WorkflowDocumentUser::create($supporter_input); $doceUser->status = "N"; $doceUser->save(); } } } Session::flash('success_message', 'Merge Users documents has been added successfully'); return redirect()->route('merged-users'); } else { Session::flash('error_message', 'We are having some problem. Please try later.'); return view('admin.promotions.create', compact('user_lists', 'absent')); } } /** * 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) { Session::flash('error_message', 'No edit'); return back(); $id=base64_decode($id); $promotion = Promotion::where('id',$id)->first(); $current_user = DB::table('users') ->join('role_user', 'users.id', '=', 'role_user.user_id') ->join('roles', 'role_user.role_id', '=', 'roles.id') ->select('users.*', 'roles.name as role_name') ->where('users.id', '=', $promotion->user_id) ->first(); $user_lists = DB::table('users') ->join('role_user', 'users.id', '=', 'role_user.user_id') ->join('roles', 'role_user.role_id', '=', 'roles.id') ->select('users.*', 'roles.name as role_name') ->where('users.id', '<>', $promotion->user_id) ->where('users.status', '=', '1') ->orderBy('users.id', 'desc') ->get() ->toArray(); if($promotion): return view('admin.promotions.edit', compact('user_lists', 'promotion', 'current_user')); else: Session::flash('error_message', 'Invalid Merge Users documents id.'); return redirect()->route('users'); endif; } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $absentId) { Session::flash('error_message', 'No update'); return back(); $id=base64_decode($absentId); $promotion = Promotion::findOrFail($id); $validatedData = $this->validate($request, [ 'last_user_id' => 'required', 'till_date' => 'required', ]); $input = $request->all(); if($promotion->last_user_id != $input['last_user_id']){ $updateDocumentUser = WorkflowDocumentUser::where('promotion_id', $promotion->id)->update(['status'=>'N']); } if($input['till_date'] != "") $input['till_date'] = Carbon\Carbon::createFromFormat('m/d/Y', $input['till_date'])->format('Y-m-d'); $saved_data=$promotion->fill($input)->save(); if($saved_data): $current_user = DB::table('users') ->join('role_user', 'users.id', '=', 'role_user.user_id') ->join('roles', 'role_user.role_id', '=', 'roles.id') ->select('users.*', 'roles.name as role_name') ->where('users.id', '=', $promotion->user_id) ->first(); $workFlowDocumentUser = WorkflowDocumentUser::where('user_id', $input['last_user_id'])->get(); if(!empty($workFlowDocumentUser)){ foreach($workFlowDocumentUser as $doceUser){ $checkDocumentUser = WorkflowDocumentUser::where('user_id',$current_user->id) ->where('workflow_document_id',$doceUser->workflow_document_id) ->where('status', 'Y') ->first(); if(!isset($checkDocumentUser)){ $supporter_input['_token']=$input['_token']; $supporter_input['workflow_document_id']=$doceUser->workflow_document_id; $supporter_input['user_id']=$current_user->id; $supporter_input['process_id']=$doceUser->process_id; $supporter_input['user_type']='S'; $supporter_input['user_name']=$current_user->first_name.' '.$current_user->last_name; $supporter_input['user_email']=$current_user->email; $supporter_input['user_role']=$current_user->role_name; $supporter_input['added_by']=$input['last_user_id']; $supporter_input['promotion_id']=$saved_data->id; $supporter_department = Department::where('id',$current_user->department_id)->first(); if($supporter_department) { $supporter_input['user_department']=$supporter_department->name; } $supporter_save=WorkflowDocumentUser::create($supporter_input); } } } Session::flash('success_message', 'Merge Users documents has been updated successfully'); return redirect()->route('merged-users'); else: Session::flash('error_message', 'We are having some problem. Please try later.'); return redirect()->route('edit-assign-absence', $absentId); endif; } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { Session::flash('error_message', 'No delete'); return back(); $id=base64_decode($id); $delete_role = Promotion::where('id', $id)->delete(); if($delete_role): $updateDocumentUser = WorkflowDocumentUser::where('promotion_id', $id)->update(['status'=>'N']); Session::flash('success_message', 'Merge Users documents has been deleted successfully'); return redirect()->route('absents'); else: Session::flash('error_message', 'We are having some problem. Please try later.'); return redirect()->route('absents'); endif; } public function statusupdate($id) { Session::flash('error_message', 'No edit'); return back(); $id=base64_decode($id); $find_role = Promotion::findOrFail($id); if($find_role->status==1) $status=0; else $status=1; $input=[ 'status'=>$status ]; $saved_data=$find_role->fill($input)->save(); if($saved_data): Session::flash('success_message', 'Absent has been updated successfully'); return redirect()->route('absents'); else: Session::flash('error_message', 'We are having some problem. Please try later.'); return redirect()->route('absents'); endif; } }