Viewing file: DebitNoteController.php (7.47 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Http\Controllers;
use App\Models\Bill; use App\Models\DebitNote; use App\Models\Utility; use Illuminate\Http\Request;
class DebitNoteController extends Controller { public function __construct() { $this->middleware('auth'); }
public function index() { if(\Auth::user()->can('manage debit note')) { $bills = Bill::where('created_by', \Auth::user()->creatorId())->get();
return view('debitNote.index', compact('bills')); } else { return redirect()->back()->with('error', __('Permission denied.')); } }
public function create($bill_id) { if(\Auth::user()->can('create debit note')) {
$billDue = Bill::where('id', $bill_id)->first();
return view('debitNote.create', compact('billDue', 'bill_id')); } else { return redirect()->back()->with('error', __('Permission denied.')); } }
public function store(Request $request, $bill_id) {
if(\Auth::user()->can('create debit note')) {
$validator = \Validator::make( $request->all(), [ 'amount' => 'required|numeric', 'date' => 'required', ] ); if($validator->fails()) { $messages = $validator->getMessageBag();
return redirect()->back()->with('error', $messages->first()); } $billDue = Bill::where('id', $bill_id)->first();
if($request->amount > $billDue->getDue()) { return redirect()->back()->with('error', 'Maximum ' . \Auth::user()->priceFormat($billDue->getDue()) . ' credit limit of this bill.'); } $bill = Bill::where('id', $bill_id)->first(); $debit = new DebitNote(); $debit->bill = $bill_id; $debit->vendor = $bill->vender_id; $debit->date = $request->date; $debit->amount = $request->amount; $debit->description = $request->description; $debit->save();
Utility::updateUserBalance('vendor', $bill->vender_id, $request->amount, 'credit');
return redirect()->back()->with('success', __('Debit Note successfully created.')); } else { return redirect()->back()->with('error', __('Permission denied.')); } }
public function edit($bill_id, $debitNote_id) { if(\Auth::user()->can('edit debit note')) {
$debitNote = DebitNote::find($debitNote_id);
return view('debitNote.edit', compact('debitNote')); } else { return redirect()->back()->with('error', __('Permission denied.')); } }
public function update(Request $request, $bill_id, $debitNote_id) {
if(\Auth::user()->can('edit debit note')) {
$validator = \Validator::make( $request->all(), [ 'amount' => 'required|numeric', 'date' => 'required', ] ); if($validator->fails()) { $messages = $validator->getMessageBag();
return redirect()->back()->with('error', $messages->first()); } $billDue = Bill::where('id', $bill_id)->first(); if($request->amount > $billDue->getDue()) { return redirect()->back()->with('error', 'Maximum ' . \Auth::user()->priceFormat($billDue->getDue()) . ' credit limit of this bill.'); }
$debit = DebitNote::find($debitNote_id); // Utility::userBalance('vendor', $billDue->vender_id, $debit->amount, 'credit'); Utility::updateUserBalance('vendor', $billDue->vender_id, $debit->amount, 'debit');
$debit->date = $request->date; $debit->amount = $request->amount; $debit->description = $request->description; $debit->save(); // Utility::userBalance('vendor', $billDue->vender_id, $request->amount, 'debit'); Utility::updateUserBalance('vendor', $billDue->vender_id, $request->amount, 'credit');
return redirect()->back()->with('success', __('Debit Note successfully updated.')); } else { return redirect()->back()->with('error', __('Permission denied.')); } }
public function destroy($bill_id, $debitNote_id) { if(\Auth::user()->can('delete debit note')) { $debitNote = DebitNote::find($debitNote_id); $debitNote->delete(); Utility::updateUserBalance('vendor', $debitNote->vendor, $debitNote->amount, 'debit'); return redirect()->back()->with('success', __('Debit Note successfully deleted.')); } else { return redirect()->back()->with('error', __('Permission denied.')); } }
public function customCreate() { if(\Auth::user()->can('create debit note')) { $bills = Bill::where('created_by', \Auth::user()->creatorId())->where('type','Bill')->get()->pluck('bill_id', 'id');
return view('debitNote.custom_create', compact('bills')); } else { return redirect()->back()->with('error', __('Permission denied.')); } }
public function customStore(Request $request) { if(\Auth::user()->can('create debit note')) { $validator = \Validator::make( $request->all(), [ 'bill' => 'required|numeric', 'amount' => 'required|numeric', 'date' => 'required', ] ); if($validator->fails()) { $messages = $validator->getMessageBag();
return redirect()->back()->with('error', $messages->first()); } $bill_id = $request->bill; $billDue = Bill::where('id', $bill_id)->first();
if($request->amount > $billDue->getDue()) { return redirect()->back()->with('error', 'Maximum ' . \Auth::user()->priceFormat($billDue->getDue()) . ' credit limit of this bill.'); } $bill = Bill::where('id', $bill_id)->first(); $debit = new DebitNote(); $debit->bill = $bill_id; $debit->vendor = $bill->vender_id; $debit->date = $request->date; $debit->amount = $request->amount; $debit->description = $request->description; $debit->save(); // Utility::userBalance('vendor', $bill->vender_id, $request->amount, 'debit'); Utility::updateUserBalance('vendor', $bill->vender_id, $request->amount, 'credit');
return redirect()->back()->with('success', __('Debit Note successfully created.')); } else { return redirect()->back()->with('error', __('Permission denied.')); } }
public function getbill(Request $request) {
$bill = Bill::where('id', $request->bill_id)->first(); echo json_encode($bill->getDue()); } }
|