| Path : /var/www/html/usd_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/usd_loan_system/app/Http/Controllers/CollateralController.php |
<?php
namespace App\Http\Controllers;
use App\Helpers\GeneralHelper;
use App\Models\Collateral;
use App\Models\CollateralVehicle;
use App\Models\CollateralType;
use App\Models\CustomField;
use App\Models\CustomFieldMeta;
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 CollateralController extends Controller
{
public function __construct()
{
$this->middleware(['sentinel', 'branch']);
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
if (!Sentinel::hasAccess('collateral')) {
Flash::warning("Permission Denied");
return redirect('/');
}
$data = Collateral::query()
->with(['collateral_type:id,name', 'borrower:id,first_name,last_name'])
->orderBy('id', 'desc')
->paginate(default_paginate());
return view('collateral.data', compact('data'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create($id)
{
if (!Sentinel::hasAccess('collateral.create')) {
Flash::warning("Permission Denied");
return redirect('/');
}
$types = array();
foreach (CollateralType::all() as $key) {
$types[$key->id] = $key->name;
}
//get custom fields
$custom_fields = CustomField::where('category', 'collateral')->get();
return view('collateral.create', compact('types', 'custom_fields', 'id'));
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request, $loan)
{
if (!Sentinel::hasAccess('collateral.create')) {
Flash::warning("Permission Denied");
return redirect('/');
}
$collateral = new Collateral();
$collateral->collateral_type_id = $request->collateral_type_id;
$collateral->name = $request->name;
$collateral->loan_id = $loan->id;
$collateral->borrower_id = $loan->borrower_id;
$collateral->value = $request->value;
$collateral->status = $request->status;
$collateral->owner_name = $request->owner_name;
$collateral->relationship = $request->relationship;
$collateral->date = $request->date;
$date = explode('-', $request->date);
$collateral->year = $date[0];
$collateral->month = $date[1];
if ($request->hasFile('photo')) {
$file = array('photo' => Input::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 = "collateral_" . uniqid() . '.' . $request->file('photo')->guessExtension();
$collateral->photo = $fname;
$request->file('photo')->move(public_path() . '/uploads',
$fname);
}
}
$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 = "collateral_" . uniqid() . '.' . $key->guessExtension();
$files[$count] = $fname;
$key->move(public_path() . '/uploads',
$fname);
}
$count++;
}
}
$collateral->files = serialize($files);
$collateral->save();
// Fields for vehicle
$vehicleTypes = ["Car", "Motor", "car", "motor", "ឡាន", "ម៉ូតូ"];
if (in_array($collateral->collateral_type->name, $vehicleTypes)) {
// create new collateral vehicle
$collateralVehicle = new CollateralVehicle();
$collateralVehicle->collateral_id = $collateral->id;
$collateralVehicle->color = $request->color;
$collateralVehicle->model_name = $request->model_name;
$collateralVehicle->model_number = $request->model_number;
$collateralVehicle->manufacture_date = $request->manufacture_date;
$collateralVehicle->manufacture_date = $request->manufacture_date;
$collateralVehicle->manufacture_date = $request->manufacture_date;
$collateralVehicle->engine_number = $request->engine_number;
$collateralVehicle->frame_number = $request->frame_number;
$collateralVehicle->license_plate = $request->license_plate;
$collateralVehicle->steering_wheel = 'left';//$request->steering_wheel;
$collateralVehicle->serial_number = $request->serial_number;
$collateralVehicle->save();
}
$custom_fields = CustomField::where('category', 'collateral')->get();
foreach ($custom_fields as $key) {
$custom_field = new CustomFieldMeta();
$id = $key->id;
$custom_field->name = $request->$id;
$custom_field->parent_id = $collateral->id;
$custom_field->custom_field_id = $key->id;
$custom_field->category = "collateral";
$custom_field->save();
}
GeneralHelper::audit_trail("Added collateral with id:" . $collateral->id);
Flash::success(translate('successfully_saved'));
if (isset($request->return_url)) {
return redirect($request->return_url);
}
return redirect('collateral/data');
}
public function show($collateral)
{
if (!Sentinel::hasAccess('collateral.view')) {
Flash::warning("Permission Denied");
return redirect('/');
}
//get custom fields
$custom_fields = CustomFieldMeta::where('category', 'collateral')->where('parent_id', $collateral->id)->get();
return view('collateral.show', compact('collateral', 'custom_fields'));
}
public function edit($collateral)
{
if (!Sentinel::hasAccess('collateral.update')) {
Flash::warning("Permission Denied");
return redirect('/');
}
$types = array();
foreach (CollateralType::all() as $key) {
$types[$key->id] = $key->name;
}
//get custom fields
$custom_fields = CustomField::where('category', 'collateral')->get();
return view('collateral.edit', compact('collateral', 'types', 'custom_fields'));
}
/**
* 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('collateral.update')) {
Flash::warning("Permission Denied");
return redirect('/');
}
$collateral = Collateral::find($id);
$collateral->collateral_type_id = $request->collateral_type_id;
$collateral->name = $request->name;
$collateral->value = $request->value;
$collateral->status = $request->status;
// Fields for vehicle
$vehicleTypes = ["Car", "Motor", "car", "motor", "ឡាន", "ម៉ូតូ"];
if (in_array($collateral->collateral_type->name, $vehicleTypes)) {
if ($collateral->collateralVehicle) {
// Edit collateral Vehicle
$collateralVehicle = $collateral->collateralVehicle;
} else {
// create new collateral vehicle
$collateralVehicle = new CollateralVehicle();
}
$collateralVehicle->collateral_id = $collateral->id;
$collateralVehicle->color = $request->color;
$collateralVehicle->model_name = $request->model_name;
$collateralVehicle->model_number = $request->model_number;
$collateralVehicle->manufacture_date = $request->manufacture_date;
$collateralVehicle->manufacture_date = $request->manufacture_date;
$collateralVehicle->manufacture_date = $request->manufacture_date;
$collateralVehicle->engine_number = $request->engine_number;
$collateralVehicle->frame_number = $request->frame_number;
$collateralVehicle->license_plate = $request->license_plate;
$collateralVehicle->steering_wheel = 'left';//$request->steering_wheel;
$collateralVehicle->serial_number = $request->serial_number;
$collateralVehicle->save();
}
$collateral->date = $request->date;
$collateral->owner_name = $request->owner_name;
$collateral->relationship = $request->relationship;
$date = explode('-', $request->date);
$collateral->year = $date[0];
$collateral->month = $date[1];
if ($request->hasFile('photo')) {
$file = array('photo' => Input::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 = "collateral_" . uniqid() . '.' . $request->file('photo')->guessExtension();
$collateral->photo = $fname;
$request->file('photo')->move(public_path() . '/uploads',
$fname);
}
}
$files = unserialize($collateral->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 = "collateral_" . uniqid() . '.' . $key->guessExtension();
$files[$count] = $fname;
$key->move(public_path() . '/uploads',
$fname);
}
}
}
$collateral->files = serialize($files);
$collateral->save();
$custom_fields = CustomField::where('category', 'collateral')->get();
foreach ($custom_fields as $key) {
if (!empty(CustomFieldMeta::where('custom_field_id', $key->id)->where('parent_id', $id)->where('category',
'collateral')->first())
) {
$custom_field = CustomFieldMeta::where('custom_field_id', $key->id)->where('parent_id',
$id)->where('category', 'collateral')->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 = "collateral";
$custom_field->save();
}
GeneralHelper::audit_trail("Updated collateral with id:" . $collateral->id);
Flash::success(translate('successfully_saved'));
if (isset($request->return_url)) {
return redirect($request->return_url);
}
return redirect('collateral/data');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function delete($id)
{
if (!Sentinel::hasAccess('collateral.delete')) {
Flash::warning("Permission Denied");
return redirect('/');
}
Collateral::destroy($id);
GeneralHelper::audit_trail("Deleted collateral with id:" . $id);
Flash::success(translate('successfully_deleted'));
return redirect('collateral/data');
}
public function deleteFile(Request $request, $id)
{
if (!Sentinel::hasAccess('collateral.delete')) {
Flash::warning("Permission Denied");
return redirect('/');
}
$collateral = Collateral::find($id);
$files = unserialize($collateral->files);
@unlink(public_path() . '/uploads/' . $files[$request->id]);
$files = array_except($files, [$request->id]);
$collateral->files = serialize($files);
$collateral->save();
}
//expense type
public function indexType()
{
$data = CollateralType::query()
->latest('id')
->paginate(default_paginate());
return view('collateral.type.data', compact('data'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function createType()
{
return view('collateral.type.create');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function storeType(Request $request)
{
$type = new CollateralType();
$type->name = $request->name;
$type->save();
Flash::success(translate('successfully_saved'));
return redirect('collateral/type/data');
}
public function editType($collateral_type)
{
return view('collateral.type.edit', compact('collateral_type'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function updateType(Request $request, $id)
{
$type = CollateralType::find($id);
$type->name = $request->name;
$type->save();
Flash::success(translate('successfully_saved'));
return redirect('collateral/type/data');
}
public function deleteType($id)
{
CollateralType::destroy($id);
Flash::success(translate('successfully_deleted'));
return redirect('collateral/type/data');
}
}