/home2/mshostin/public_html/app/Http/Controllers/MethodController.php
<?php
namespace App\Http\Controllers;
use Carbon\Carbon;
use App\Transaction;
use App\PaymentMethod;
use Illuminate\Http\Request;
class MethodController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
return view('methods.index', [
'methods' => PaymentMethod::paginate(15),
'month' => Carbon::now()->month
]);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view('methods.create');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request, PaymentMethod $method)
{
$method->create($request->all());
return redirect()
->route('methods.index')
->withStatus('Payment method successfully created.');
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show(PaymentMethod $method)
{
Carbon::setWeekStartsAt(Carbon::SUNDAY);
Carbon::setWeekEndsAt(Carbon::SATURDAY);
$transactionname = [
'income' => 'Income',
'payment' => 'Payment',
'expense' => 'Expense',
'transfer' => 'Transfer'
];
$balances = [
'daily' => Transaction::whereBetween('created_at', [Carbon::now()->startOfDay(), Carbon::now()->endOfDay()])->sum('amount'),
'weekly' => Transaction::whereBetween('created_at', [Carbon::now()->startOfWeek(), Carbon::now()->endOfWeek()])->sum('amount'),
'quarter' => Transaction::whereBetween('created_at', [Carbon::now()->startOfQuarter(), Carbon::now()->endOfQuarter()])->sum('amount'),
'monthly' => Transaction::whereBetween('created_at', [Carbon::now()->startOfMonth(), Carbon::now()->endOfMonth()])->sum('amount'),
'annual' => Transaction::whereBetween('created_at', [Carbon::now()->startOfYear(), Carbon::now()->endOfYear()])->sum('amount'),
];
return view('methods.show', [
'method' => $method,
'transactions' => Transaction::where('payment_method_id', $method->id)->latest()->paginate(25),
'balances' => $balances,
'transactionname' => $transactionname
]);
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit(PaymentMethod $method)
{
return view('methods.edit', compact('method'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, PaymentMethod $method)
{
$method->update($request->all());
return redirect()
->route('methods.index')
->withStatus('Payment method updated satisfactorily.');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy(PaymentMethod $method)
{
$method->delete();
return back()->withStatus('Payment method successfully removed.');
}
}