⚝
One Hat Cyber Team
⚝
Your IP:
172.22.0.1
Server IP:
151.80.20.34
Server:
Linux 794f04d97d5e 5.15.0-143-generic #153-Ubuntu SMP Fri Jun 13 19:10:45 UTC 2025 x86_64
Server Software:
Apache/2.4.62 (Debian)
PHP Version:
8.2.28
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
var
/
www
/
html
/
app
/
Http
/
Controllers
/
View File Name :
CreditNoteController.php
<?php namespace App\Http\Controllers; use App\Models\CreditNote; use App\Models\Invoice; use App\Models\Utility; use App\Models\Customer; use Illuminate\Http\Request; class CreditNoteController extends Controller { public function __construct() { $this->middleware('auth'); } public function index() { if(\Auth::user()->can('manage credit note')) { $invoices = Invoice::where('created_by', \Auth::user()->creatorId())->get(); return view('creditNote.index', compact('invoices')); } else { return redirect()->back()->with('error', __('Permission denied.')); } } public function create($invoice_id) { if(\Auth::user()->can('create credit note')) { $invoiceDue = Invoice::where('id', $invoice_id)->first(); return view('creditNote.create', compact('invoiceDue', 'invoice_id')); } else { return redirect()->back()->with('error', __('Permission denied.')); } } public function store(Request $request, $invoice_id) { if(\Auth::user()->can('create credit note')) { $validator = \Validator::make( $request->all(), [ 'amount' => 'required|numeric', 'date' => 'required', ] ); if($validator->fails()) { $messages = $validator->getMessageBag(); return redirect()->back()->with('error', $messages->first()); } $invoiceDue = Invoice::where('id', $invoice_id)->first(); if($request->amount > $invoiceDue->getDue()) { return redirect()->back()->with('error', 'Maximum ' . \Auth::user()->priceFormat($invoiceDue->getDue()) . ' credit limit of this invoice.'); } $invoice = Invoice::where('id', $invoice_id)->first(); $credit = new CreditNote(); $credit->invoice = $invoice_id; $credit->customer = $invoice->customer_id; $credit->date = $request->date; $credit->amount = $request->amount; $credit->description = $request->description; $credit->save(); $customer = Customer::find($invoice->customer_id); $balance = 0; if($customer->credit_balance != 0) { $balance = $customer->credit_balance + $request->amount; } $customer->credit_balance = $balance; $customer->save(); Utility::updateUserBalance('customer', $invoice->customer_id, $request->amount, 'debit'); return redirect()->back()->with('success', __('Credit Note successfully created.')); } else { return redirect()->back()->with('error', __('Permission denied.')); } } public function edit($invoice_id, $creditNote_id) { if(\Auth::user()->can('edit credit note')) { $creditNote = CreditNote::find($creditNote_id); return view('creditNote.edit', compact('creditNote')); } else { return redirect()->back()->with('error', __('Permission denied.')); } } public function update(Request $request, $invoice_id, $creditNote_id) { if(\Auth::user()->can('edit credit note')) { $validator = \Validator::make( $request->all(), [ 'amount' => 'required|numeric', 'date' => 'required', ] ); if($validator->fails()) { $messages = $validator->getMessageBag(); return redirect()->back()->with('error', $messages->first()); } $invoiceDue = Invoice::where('id', $invoice_id)->first(); $credit = CreditNote::find($creditNote_id); if($request->amount > $invoiceDue->getDue()+$credit->amount) { return redirect()->back()->with('error', 'Maximum ' . \Auth::user()->priceFormat($invoiceDue->getDue()) . ' credit limit of this invoice.'); } Utility::updateUserBalance('customer', $invoiceDue->customer_id, $credit->amount, 'credit'); $credit->date = $request->date; $credit->amount = $request->amount; $credit->description = $request->description; $credit->save(); Utility::updateUserBalance('customer', $invoiceDue->customer_id, $request->amount, 'debit'); return redirect()->back()->with('success', __('Credit Note successfully updated.')); } else { return redirect()->back()->with('error', __('Permission denied.')); } } public function destroy($invoice_id, $creditNote_id) { if(\Auth::user()->can('delete credit note')) { $creditNote = CreditNote::find($creditNote_id); $creditNote->delete(); Utility::updateUserBalance('customer', $creditNote->customer, $creditNote->amount, 'credit'); return redirect()->back()->with('success', __('Credit Note successfully deleted.')); } else { return redirect()->back()->with('error', __('Permission denied.')); } } public function customCreate() { if(\Auth::user()->can('create credit note')) { $invoices = Invoice::where('created_by', \Auth::user()->creatorId())->get()->pluck('invoice_id', 'id'); return view('creditNote.custom_create', compact('invoices')); } else { return redirect()->back()->with('error', __('Permission denied.')); } } public function customStore(Request $request) { if(\Auth::user()->can('create credit note')) { $validator = \Validator::make( $request->all(), [ 'invoice' => 'required|numeric', 'amount' => 'required|numeric', 'date' => 'required', ] ); if($validator->fails()) { $messages = $validator->getMessageBag(); return redirect()->back()->with('error', $messages->first()); } $invoice_id = $request->invoice; $invoiceDue = Invoice::where('id', $invoice_id)->first(); if($request->amount > $invoiceDue->getDue()) { return redirect()->back()->with('error', 'Maximum ' . \Auth::user()->priceFormat($invoiceDue->getDue()) . ' credit limit of this invoice.'); } $invoice = Invoice::where('id', $invoice_id)->first(); $credit = new CreditNote(); $credit->invoice = $invoice_id; $credit->customer = $invoice->customer_id; $credit->date = $request->date; $credit->amount = $request->amount; $credit->description = $request->description; $credit->save(); Utility::updateUserBalance('customer', $invoice->customer_id, $request->amount, 'debit'); return redirect()->back()->with('success', __('Credit Note successfully created.')); } else { return redirect()->back()->with('error', __('Permission denied.')); } } public function getinvoice(Request $request) { $invoice = Invoice::where('id', $request->id)->first(); echo json_encode($invoice->getDue()); } }