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/CapitalController.php |
<?php namespace App\Http\Controllers; use App\Helpers\GeneralHelper; use App\Models\Capital; use App\Models\ChartOfAccount; use App\Models\JournalEntry; use Cartalyst\Sentinel\Laravel\Facades\Sentinel; use Illuminate\Http\Request; use Laracasts\Flash\Flash; class CapitalController 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('capital')) { Flash::warning("Permission Denied"); return redirect('/'); } $data = Capital::query() ->where('branch_id', session('branch_id')) ->orderBy('id','desc')->get(); $balance = Capital::query() ->where('branch_id', session('branch_id')) ->where('type', 'deposit') ->sum('amount') - Capital::where('branch_id', session('branch_id')) ->where('type','withdrawal') ->sum('amount'); return view('capital.data', compact('data','balance')); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { if (!Sentinel::hasAccess('capital.create')) { Flash::warning("Permission Denied"); return redirect('/'); } $chart = []; $chart_expenses = array(); foreach (ChartOfAccount::where('account_type', 'expense')->get() as $key) { $chart_expenses[$key->id] = $key->name; } $chart_income = array(); foreach (ChartOfAccount::where('account_type', 'income')->get() as $key) { $chart_income[$key->id] = $key->name; } $chart_liability = array(); foreach (ChartOfAccount::where('account_type', 'liability')->get() as $key) { $chart_liability[$key->id] = $key->name; } $chart_equity = array(); foreach (ChartOfAccount::where('account_type', 'equity')->get() as $key) { $chart_equity[$key->id] = $key->name; } $chart_assets = array(); foreach (ChartOfAccount::where('account_type', 'asset')->get() as $key) { $chart_assets[$key->id] = $key->name; } $chart[translate('asset')]=$chart_assets; $chart[translate('income')]=$chart_income; $chart[translate('liability')]=$chart_liability; $chart[translate('equity')]=$chart_equity; $chart[translate('expense')]=$chart_expenses; return view('capital.create', compact('banks','chart')); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { if (!Sentinel::hasAccess('capital.create')) { Flash::warning("Permission Denied"); return redirect('/'); } $capital = new Capital(); $capital->user_id = Sentinel::getUser()->id; $capital->amount = $request->amount; $capital->branch_id =session('branch_id'); $capital->debit_account_id = $request->debit_account_id; $capital->credit_account_id = $request->credit_account_id; $capital->notes = $request->notes; $capital->date = $request->date; $date = explode('-', $request->date); $capital->year = $date[0]; $capital->month = $date[1]; $capital->save(); //debit and credit the necessary accounts here if (!empty($capital->credit_chart)) { $journal = new JournalEntry(); $journal->user_id = Sentinel::getUser()->id; $journal->account_id = $capital->credit_chart->id; $journal->date = $request->date; $journal->year = $date[0]; $journal->month = $date[1]; $journal->transaction_type = 'capital'; $journal->name = "Capital"; $journal->capital_id = $capital->id; $journal->credit = $request->amount; $journal->reference = $capital->id; $journal->save(); } if (!empty($capital->debit_chart)) { $journal = new JournalEntry(); $journal->user_id = Sentinel::getUser()->id; $journal->account_id = $capital->debit_chart->id; $journal->date = $request->date; $journal->year = $date[0]; $journal->month = $date[1]; $journal->transaction_type = 'capital'; $journal->name = "Capital"; $journal->capital_id = $capital->id; $journal->debit = $request->amount; $journal->reference = $capital->id; $journal->save(); } Flash::success(translate('successfully_saved')); GeneralHelper::audit_trail("Added Capital with id:" . $capital->id); if (isset($request->return_url)) { return redirect($request->return_url); } return redirect('capital/data'); } public function show($capital) { if (!Sentinel::hasAccess('capital.view')) { Flash::warning("Permission Denied"); return redirect('/'); } return view('capital.show', compact('')); } public function edit($capital) { if (!Sentinel::hasAccess('capital.update')) { Flash::warning("Permission Denied"); return redirect('/'); } $chart = []; $chart_expenses = array(); foreach (ChartOfAccount::where('account_type', 'expense')->get() as $key) { $chart_expenses[$key->id] = $key->name; } $chart_income = array(); foreach (ChartOfAccount::where('account_type', 'income')->get() as $key) { $chart_income[$key->id] = $key->name; } $chart_liability = array(); foreach (ChartOfAccount::where('account_type', 'liability')->get() as $key) { $chart_liability[$key->id] = $key->name; } $chart_equity = array(); foreach (ChartOfAccount::where('account_type', 'equity')->get() as $key) { $chart_equity[$key->id] = $key->name; } $chart_assets = array(); foreach (ChartOfAccount::where('account_type', 'asset')->get() as $key) { $chart_assets[$key->id] = $key->name; } $chart[translate('asset')]=$chart_assets; $chart[translate('income')]=$chart_income; $chart[translate('liability')]=$chart_liability; $chart[translate('equity')]=$chart_equity; $chart[translate('expense')]=$chart_expenses; return view('capital.edit', compact('capital','banks','chart')); } /** * 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('capital.update')) { Flash::warning("Permission Denied"); return redirect('/'); } $capital = Capital::find($id); $capital->amount = $request->amount; $capital->debit_account_id = $request->debit_account_id; $capital->credit_account_id = $request->credit_account_id; $capital->notes = $request->notes; $capital->date = $request->date; $date = explode('-', $request->date); $capital->year = $date[0]; $capital->month = $date[1]; $capital->save(); JournalEntry::where('capital_id', $id)->delete(); if (!empty($capital->credit_chart)) { $journal = new JournalEntry(); $journal->user_id = Sentinel::getUser()->id; $journal->account_id = $capital->credit_chart->id; $journal->date = $request->date; $journal->year = $date[0]; $journal->month = $date[1]; $journal->transaction_type = 'capital'; $journal->name = "Capital"; $journal->capital_id = $capital->id; $journal->credit = $request->amount; $journal->reference = $capital->id; $journal->save(); } if (!empty($capital->debit_chart)) { $journal = new JournalEntry(); $journal->user_id = Sentinel::getUser()->id; $journal->account_id = $capital->debit_chart->id; $journal->date = $request->date; $journal->year = $date[0]; $journal->month = $date[1]; $journal->transaction_type = 'capital'; $journal->name = "Capital"; $journal->capital_id = $capital->id; $journal->debit = $request->amount; $journal->reference = $capital->id; $journal->save(); } GeneralHelper::audit_trail("Updated Capital with id:" . $capital->id); Flash::success(translate('successfully_saved')); if (isset($request->return_url)) { return redirect($request->return_url); } return redirect('capital/data'); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function delete($id) { if (!Sentinel::hasAccess('capital.delete')) { Flash::warning("Permission Denied"); return redirect('/'); } Capital::destroy($id); JournalEntry::where('capital_id', $id)->delete(); GeneralHelper::audit_trail("Deleted Capital with id:" . $id); Flash::success(translate('successfully_deleted')); return redirect('capital/data'); } }