Path : /var/www/html/thb_loan_system/app/Http/Controllers/ |
B-Con CMD Config cPanel C-Rdp D-Log Info Jump Mass Ransom Symlink vHost Zone-H |
Current File : /var/www/html/thb_loan_system/app/Http/Controllers/BorrowerController.php |
<?php namespace App\Http\Controllers; use App\Helpers\GeneralHelper; use App\Models\Borrower; use App\Models\Country; use App\Models\CustomField; use App\Models\CustomFieldMeta; use App\Models\Loan; use App\Models\LoanRepayment; use App\Models\User; use Cartalyst\Sentinel\Laravel\Facades\Sentinel; use Illuminate\Http\Request; use Illuminate\Support\Facades\Input; use Illuminate\Support\Facades\Validator; use Laracasts\Flash\Flash; class BorrowerController extends Controller { public function __construct() { $this->middleware(['sentinel', 'branch']); } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index(Request $request) { if (!Sentinel::hasAccess('borrowers')) { Flash::warning("Permission Denied"); return redirect('/'); } $data = Borrower::query() ->select('id', 'user_id', 'first_name', 'last_name', 'gender', 'unique_number', 'mobile','phone', 'active') ->where('branch_id', session('branch_id')) ->when($request->q,function($query){ return $query->search(); }) ->when($request->status == 'pending', function ($query) use ($request) { return $query->where('active', 0); }) ->orderBy('id', 'desc') ->paginate(default_paginate()); // return $data; return view('borrower.data', compact('data')); } public function pending() { if (!Sentinel::hasAccess('borrowers')) { Flash::warning("Permission Denied"); return redirect('/'); } $data = Borrower::where('branch_id', session('branch_id'))->where('active', 0)->orderBy('id', 'desc')->get(); return view('borrower.pending', compact('data')); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { if (!Sentinel::hasAccess('borrowers.create')) { Flash::warning("Permission Denied"); return redirect('/'); } $users = User::all(); $user = array(); foreach ($users as $key) { $user[$key->id] = $key->first_name . ' ' . $key->last_name; } $countries = array(); foreach (Country::all() as $key) { $countries[$key->id] = $key->name; } //get custom fields $custom_fields = CustomField::where('category', 'borrowers')->get(); return view('borrower.create', compact('user', 'custom_fields', 'countries')); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { if (!Sentinel::hasAccess('borrowers.create')) { Flash::warning("Permission Denied"); return redirect('/'); } $borrower = new Borrower(); $borrower->first_name = $request->first_name; $borrower->last_name = $request->last_name; $borrower->user_id = Sentinel::getUser()->id; $borrower->gender = $request->gender; $borrower->country_id = $request->country_id; $borrower->title = $request->title; $borrower->branch_id = session('branch_id'); $borrower->mobile = $request->mobile; $borrower->notes = $request->notes; $borrower->email = $request->email; if ($request->hasFile('photo')) { $file = array('photo' => $request->file('photo')); $rules = array('photo' => 'required|mimes:jpeg,jpg,bmp,png'); $validator = Validator::make($file, $rules); if ($validator->fails()) { Flash::warning(translate('validation_error')); return redirect()->back()->withInput()->withErrors($validator); } else { $fname = "borrower_" . uniqid() . '.' . $request->file('photo')->guessExtension(); $borrower->photo = $fname; $request->file('photo')->move(public_path() . '/uploads', $fname); } } $borrower->unique_number = $request->unique_number; $borrower->id_card_number = $request->id_card_number; $borrower->place_of_birth = $request->place_of_birth; $borrower->dob = $request->dob; $borrower->address = $request->address; $borrower->city = $request->city; $borrower->state = $request->state; $borrower->zip = $request->zip; $borrower->phone = $request->phone; $borrower->business_name = $request->business_name; $borrower->working_status = $request->working_status; $borrower->loan_officers = serialize($request->loan_officers); $date = explode('-', date("Y-m-d")); $borrower->year = $date[0]; $borrower->month = $date[1]; $files = array(); if (!empty($request->file('files'))) { $count = 0; foreach ($request->file('files') as $key) { $file = array('files' => $key); $rules = array('files' => 'required|mimes:jpeg,jpg,bmp,png,pdf,docx,xlsx'); $validator = Validator::make($file, $rules); if ($validator->fails()) { Flash::warning(translate('validation_error')); return redirect()->back()->withInput()->withErrors($validator); } else { $fname = "borrower_" . uniqid() . '.' . $key->guessExtension(); $files[$count] = $fname; $key->move(public_path() . '/uploads', $fname); } $count++; } } $borrower->files = serialize($files); $borrower->username = $request->username; if (!empty($request->password)) { $rules = array( 'repeatpassword' => 'required|same:password', 'username' => 'required|unique:borrowers' ); $validator = Validator::make(Input::all(), $rules); if ($validator->fails()) { Flash::warning('Passwords do not match'); return redirect()->back()->withInput()->withErrors($validator); } else { $borrower->password = md5($request->password); } } $borrower->save(); $custom_fields = CustomField::where('category', 'borrowers')->get(); foreach ($custom_fields as $key) { $custom_field = new CustomFieldMeta(); $id = $key->id; $custom_field->name = $request->$id; $custom_field->parent_id = $borrower->id; $custom_field->custom_field_id = $key->id; $custom_field->category = "borrowers"; $custom_field->save(); } GeneralHelper::audit_trail("Added borrower with id:" . $borrower->id); Flash::success(translate('successfully_saved')); return redirect('borrower/data'); } public function show($borrower) { if (!Sentinel::hasAccess('borrowers.view')) { Flash::warning("Permission Denied"); return redirect('/'); } $users = User::all(); $user = array(); foreach ($users as $key) { $user[$key->id] = $key->first_name . ' ' . $key->last_name; } //get custom fields $custom_fields = CustomFieldMeta::where('category', 'borrowers')->where('parent_id', $borrower->id)->get(); return view('borrower.show', compact('borrower', 'user', 'custom_fields')); } public function edit($borrower) { if (!Sentinel::hasAccess('borrowers.update')) { Flash::warning("Permission Denied"); return redirect('/'); } $users = User::all(); $user = array(); foreach ($users as $key) { $user[$key->id] = $key->first_name . ' ' . $key->last_name; } $countries = array(); foreach (Country::all() as $key) { $countries[$key->id] = $key->name; } //get custom fields $custom_fields = CustomField::where('category', 'borrowers')->get(); return view('borrower.edit', compact('borrower', 'user', 'custom_fields', 'countries')); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { if (!Sentinel::hasAccess('borrowers.update')) { Flash::warning("Permission Denied"); return redirect('/'); } $borrower = Borrower::find($id); $borrower->first_name = $request->first_name; $borrower->last_name = $request->last_name; $borrower->gender = $request->gender; $borrower->country_id = $request->country_id; $borrower->title = $request->title; $borrower->mobile = $request->mobile; $borrower->notes = $request->notes; $borrower->email = $request->email; if ($request->hasFile('photo')) { $file = array('photo' => $request->file('photo')); $rules = array('photo' => 'required|mimes:jpeg,jpg,bmp,png'); $validator = Validator::make($file, $rules); if ($validator->fails()) { Flash::warning(translate('validation_error')); return redirect()->back()->withInput()->withErrors($validator); } else { $fname = "borrower_" . uniqid() . '.' . $request->file('photo')->guessExtension(); $borrower->photo = $fname; $request->file('photo')->move(public_path() . '/uploads', $fname); } } $borrower->unique_number = $request->unique_number; $borrower->id_card_number = $request->id_card_number; $borrower->place_of_birth = $request->place_of_birth; $borrower->dob = $request->dob; $borrower->address = $request->address; $borrower->city = $request->city; $borrower->state = $request->state; $borrower->zip = $request->zip; $borrower->phone = $request->phone; $borrower->business_name = $request->business_name; $borrower->working_status = $request->working_status; $borrower->loan_officers = serialize($request->loan_officers); $files = unserialize($borrower->files); $count = count($files); if (!empty($request->file('files'))) { foreach ($request->file('files') as $key) { $count++; $file = array('files' => $key); $rules = array('files' => 'required|mimes:jpeg,jpg,bmp,png,pdf,docx,xlsx'); $validator = Validator::make($file, $rules); if ($validator->fails()) { Flash::warning(translate('validation_error')); return redirect()->back()->withInput()->withErrors($validator); } else { $fname = "borrower_" . uniqid() . '.' . $key->guessExtension(); $files[$count] = $fname; $key->move(public_path() . '/uploads', $fname); } } } $borrower->files = serialize($files); $borrower->username = $request->username; if (!empty($request->password)) { $rules = array( 'repeatpassword' => 'required|same:password' ); $validator = Validator::make(Input::all(), $rules); if ($validator->fails()) { Flash::warning('Passwords do not match'); return redirect()->back()->withInput()->withErrors($validator); } else { $borrower->password = md5($request->password); } } $borrower->save(); $custom_fields = CustomField::where('category', 'borrowers')->get(); foreach ($custom_fields as $key) { if (!empty(CustomFieldMeta::where('custom_field_id', $key->id)->where('parent_id', $id)->where('category', 'borrowers')->first()) ) { $custom_field = CustomFieldMeta::where('custom_field_id', $key->id)->where('parent_id', $id)->where('category', 'borrowers')->first(); } else { $custom_field = new CustomFieldMeta(); } $kid = $key->id; $custom_field->name = $request->$kid; $custom_field->parent_id = $id; $custom_field->custom_field_id = $key->id; $custom_field->category = "borrowers"; $custom_field->save(); } GeneralHelper::audit_trail("Updated borrower with id:" . $borrower->id); Flash::success(translate('successfully_saved')); return redirect('borrower/data'); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function delete($id) { if (!Sentinel::hasAccess('borrowers.delete')) { Flash::warning("Permission Denied"); return redirect('/'); } Borrower::destroy($id); Loan::where('borrower_id', $id)->delete(); LoanRepayment::where('borrower_id', $id)->delete(); GeneralHelper::audit_trail("Deleted borrower with id:" . $id); Flash::success(translate('successfully_deleted')); return redirect('borrower/data'); } public function deleteFile(Request $request, $id) { if (!Sentinel::hasAccess('borrowers.delete')) { Flash::warning("Permission Denied"); return redirect('/'); } $borrower = Borrower::find($id); $files = unserialize($borrower->files); @unlink(public_path() . '/uploads/' . $files[$request->id]); $files = array_except($files, [$request->id]); $borrower->files = serialize($files); $borrower->save(); } public function approve(Request $request, $id) { if (!Sentinel::hasAccess('borrowers.approve')) { Flash::warning("Permission Denied"); return redirect('/'); } $borrower = Borrower::find($id); $borrower->active = 1; $borrower->save(); GeneralHelper::audit_trail("Approved borrower with id:" . $borrower->id); Flash::success(translate('successfully_saved')); return redirect()->back(); } public function decline(Request $request, $id) { if (!Sentinel::hasAccess('borrowers.approve')) { Flash::warning("Permission Denied"); return redirect('/'); } $borrower = Borrower::find($id); $borrower->active = 0; $borrower->save(); GeneralHelper::audit_trail("Declined borrower with id:" . $borrower->id); Flash::success(translate('successfully_saved')); return redirect()->back(); } public function blacklist(Request $request, $id) { if (!Sentinel::hasAccess('borrowers.blacklist')) { Flash::warning("Permission Denied"); return redirect('/'); } $borrower = Borrower::find($id); $borrower->blacklisted = 1; $borrower->save(); GeneralHelper::audit_trail("Blacklisted borrower with id:" . $id); Flash::success(translate('successfully_saved')); return redirect()->back(); } public function unBlacklist(Request $request, $id) { if (!Sentinel::hasAccess('borrowers.blacklist')) { Flash::warning("Permission Denied"); return redirect('/'); } $borrower = Borrower::find($id); $borrower->blacklisted = 0; $borrower->save(); GeneralHelper::audit_trail("Undo Blacklist for borrower with id:" . $id); Flash::success(translate('successfully_saved')); return redirect()->back(); } }