dbfdg 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()); } }