| 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/AccountingController.php |
<?php
namespace App\Http\Controllers;
use App\Helpers\GeneralHelper;
use App\Models\ChartOfAccount;
use App\Models\JournalEntry;
use Cartalyst\Sentinel\Laravel\Facades\Sentinel;
use Illuminate\Http\Request;
use Laracasts\Flash\Flash;
class AccountingController extends Controller
{
public function __construct()
{
$this->middleware(['sentinel', 'branch']);
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function trial_balance(Request $request)
{
if (!Sentinel::hasAccess('reports')) {
Flash::warning("Permission Denied");
return redirect('/');
}
$start_date = $request->start_date;
$end_date = $request->end_date;
return view('accounting.trial_balance',
compact('start_date',
'end_date'));
}
public function journal(Request $request)
{
if (!Sentinel::hasAccess('reports')) {
Flash::warning("Permission Denied");
return redirect('/');
}
$date_range = $this->getDateRange($request->date_range);
$start_date = $date_range->start_date;
$end_date = $date_range->end_date;
$account_id = $request->account_id;
$chart_of_accounts = [];
foreach (ChartOfAccount::all() as $key) {
$chart_of_accounts[$key->id] = $key->name;
}
if ($request->isMethod('post')) {
$data = JournalEntry::where('reversed', 0)->where('account_id', $request->account_id)->whereBetween('date', [$start_date, $end_date])->get();
} else {
$data = [];
}
return view('accounting.journal', compact('start_date', 'end_date', 'chart_of_accounts', 'data', 'account_id'));
}
public function ledger(Request $request)
{
if (!Sentinel::hasAccess('reports')) {
Flash::warning("Permission Denied");
return redirect('/');
}
$date_range = $this->getDateRange($request->date_range);
$start_date = $date_range->start_date;
$end_date = $date_range->end_date;
return view('accounting.ledger',compact('start_date', 'end_date'));
}
public function create_manual_entry()
{
if (!Sentinel::hasAccess('reports')) {
Flash::warning("Permission Denied");
return redirect('/');
}
$chart_of_accounts = [];
foreach (ChartOfAccount::all() as $key) {
$chart_of_accounts[$key->id] = $key->name;
}
return view('accounting.create_manual_entry',
compact('chart_of_accounts'));
}
public function store_manual_entry(Request $request)
{
if (!Sentinel::hasAccess('reports')) {
Flash::warning("Permission Denied");
return redirect('/');
}
$journal = new JournalEntry();
$journal->user_id = Sentinel::getUser()->id;
$journal->account_id = $request->credit_account_id;
$date = explode('-', $request->date);
$journal->date = $request->date;
$journal->year = $date[0];
$journal->month = $date[1];
$journal->transaction_type = 'manual_entry';
$journal->name = $request->name;
$journal->credit = $request->amount;
$journal->reference = $request->reference;
$journal->save();
$journal = new JournalEntry();
$journal->user_id = Sentinel::getUser()->id;
$journal->account_id = $request->debit_account_id;
$date = explode('-', $request->date);
$journal->date = $request->date;
$journal->year = $date[0];
$journal->month = $date[1];
$journal->transaction_type = 'manual_entry';
$journal->name = $request->name;
$journal->reference = $request->reference;
$journal->debit = $request->amount;
$journal->save();
Flash::success(translate('successfully_saved'));
GeneralHelper::audit_trail("Added Journal Manual Entry with id:" . $journal->id);
if (isset($request->return_url)) {
return redirect($request->return_url);
}
return redirect('accounting/journal');
}
}