middleware('auth');
}
function index()
{
//$data['journals']=Journal::with('debit')->paginate(50);
$data['journals']=\DB::select("SELECT debit_account,ahd.name,SUM(COALESCE(amount, 0)) AS debit,(SELECT COALESCE(SUM(j1.amount), 0) credit FROM journal j1 WHERE j1.ref_id = j.debit_account) credit FROM
journal j JOIN acc_head ahd ON j.debit_account = ahd.id WHERE ahd.type_id IN (1, 2)
GROUP BY j.debit_account order by j.id desc");
$data['funds']=FundRequest::with(['acc_head','user'])->where('is_approved',0)
->orderBY('id','desc')->get();
$data['approved_funds']=FundRequest::with(['acc_head','user'])->where('is_approved',1)
->orderBY('id','desc')->get();
$data['title']='Journal';
return view('admin.journal.index',$data);
}
/**
* get journal details with breakdown
* @param integer $id
* @return view
*/
function get_details($id)
{
$data['journal']=Journal::with(['debit','credit','user'])->where('debit_account',$id)->orWhere('ref_id',$id)->get();
$data['title']='Journal Details';
return view('admin.journal.details',$data);
}
function create()
{
$data['account_types']=AccountType::with(['acc_head'=>function($q){
return $q->where('parent_head',0);
}])->orderBy('name','asc')->get();
$data['title']='Create Journal';
return view('admin.journal.create',$data);
}
function store(Request $req)
{
$this->validate($req,[
'account_head'=>'required',
'credit_head'=>'required',
'amount'=>'required|numeric'
]);
$documentUpload = $req->file('filedocument');
if ( !empty( $documentUpload )) {
$documentname = $documentUpload->getClientOriginalName();
$path = 'public/account_expense/';
$documentUpload->move($path,$documentname);
$expenseDocument = $documentname;
} else {
$expenseDocument = '';
}
$journal=new Journal();
$journal->debit_account = $req->get('account_head');
$journal->credit_account = $req->get('credit_head');
$journal->ref_id = $req->get('account_head');
$journal->description = $req->get('description');
$journal->amount = $req->get('amount');
$journal->expense_document = $expenseDocument;
$journal->is_approaved = 0;
$journal->created_by = \Auth::user()->id;
$journal->created_at = $req->get('date',date('Y-m-d'));
$journal->save();
$req->session()->flash('success','Journal created successfully !');
return redirect('account/journal');
}
function get_acc_head($id)
{
$heads=AccountHead::where('id',$id)->orderBy('name','asc')->get();
$str="";
if($heads)
{
foreach($heads as $hd)
{
$str.="";
}
}
return $str;
}
function change_approaval_status(Request $req)
{
$journal_comment=JournalComment::where('debit_account',$req->get('debit_account'))->first();
if($journal_comment)
{
$journal_comment->debit_account=$req->get('debit_account');
$journal_comment->approaval_status=$req->get('status');
$journal_comment->approaved_amount=$req->get('amount');
$journal_comment->remarks=$req->get('remarks');
$journal_comment->approaved_by=\Auth::user()->id;
$journal_comment->save();
}
else
{
$journal_comment=new JournalComment();
$journal_comment->debit_account=$req->get('debit_account');
$journal_comment->approaval_status=$req->get('status');
$journal_comment->approaved_amount=$req->get('amount');
$journal_comment->remarks=$req->get('remarks');
$journal_comment->approaved_by=\Auth::user()->id;
$journal_comment->save();
}
return response()->json(['ok'=>true]);
}
function payment($id)
{
//$data['journal_comment']=JournalComment::with('user')->where('debit_account',$id)->first();
$data['fund_req']=FundRequest::where('id',$id)->first();
$data['acc_head']=AccountHead::with('children')->where('type_id',1)->where('parent_head',0)->orderBy('name','asc')->get();
$data['title']='Make Payment';
return view('admin.journal.payment',$data);
}
function save_payment(Request $req)
{
$this->validate($req,[
'hdn_id'=>'required',
'account_head'=>'required',
'amount'=>'required|numeric'
]);
$comment=$req->get('remarks');
$head_id=$req->get('account_head');
//Add Journal Entry
$journal=new Journal();
$journal->ref_id=$req->get('hdn_id');
$journal->debit_account=5;
$journal->credit_account=$head_id;
$journal->description=$comment;
$journal->amount=$req->get('amount');
$journal->created_by=\Auth::user()->id;
$journal->save();
FundRequest::where('id',$req->get('hdn_req_id'))->delete();
$req->session()->flash('success','Payment successfull !');
return redirect('account/journal');
}
}