|
Server : Apache/2.4.41 (Ubuntu) System : Linux vmi1525618.contaboserver.net 5.4.0-105-generic #119-Ubuntu SMP Mon Mar 7 18:49:24 UTC 2022 x86_64 User : www-data ( 33) PHP Version : 8.2.12 Disable Function : NONE Directory : /var/www/erp.theinteractive.co.in/app/Http/Controllers/ |
Upload File : |
<?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());
}
}