HEX
Server: LiteSpeed
System: Linux s3.sitechai.com 4.18.0-553.51.1.lve.1.el8.x86_64 #1 SMP Wed May 14 14:34:57 UTC 2025 x86_64
User: workzeni (2217)
PHP: 8.1.32
Disabled: mail, show_source, system, shell_exec, passthru, exec, eval, shell
Upload Files
File: /home/workzeni/agency-erp-05.workzenix.com/app/Http/Controllers/UserPayment.php
<?php

namespace App\Http\Controllers;

use App\Models\CompanyInfo;
use App\Models\Payment;
use App\Models\User;
use Storage;
use Illuminate\Http\Request;

class UserPayment extends Controller
{
    public function create()
    {
        $agencies = CompanyInfo::latest()->get();
        return view('payment.create', compact('agencies'));
    }

    public function getByAgency($agencyId)
    {
        return User::where('company_id', $agencyId)->get(['id', 'name', 'phone']);
    }
    public function store(Request $request)
    {
        // dd($request->all());
        $request->validate([
            'agency_id' => 'required|exists:company_infos,id',
            'user_id' => 'required|exists:users,id',
            'type' => 'required|in:cash,check,iban',
            'bank_name' => 'nullable|string|max:255',
            'amount' => 'required|numeric|min:1',
            'transaction_id' => 'required|string',
            'currency' => 'required|in:BDT,SAR',
            'proof' => 'nullable|file|mimes:jpg,png,pdf|max:2048',
            'additional' => 'nullable|string',
            'paid' => 'date',
        ]);

        $payment = new Payment;
        $payment->agency_id = $request->agency_id;
        $payment->user_id = $request->user_id;
        $payment->type = $request->type;
        $payment->bank_name = $request->bank_name;
        $payment->amount = $request->amount;
        $payment->transaction_id = $request->transaction_id;
        $payment->currency = $request->currency;
        $payment->additional = $request->additional;
        $payment->paid = $request->paid ?? now();

        if ($request->hasFile('proof')) {
            $payment->proof = $request->file('proof')->store('payments', 'public');
        }

        $payment->save();

        return redirect()->back()->with('success', 'Payment stored successfully.');
    }
    public function approve(Request $request, Payment $payment)
    {
        $payment->status = $request->status ?? 0;
        $payment->save();

        return back()->with('success', 'Payment status updated');
    }

    public function edit(Payment $payment)
    {
        $agencies = CompanyInfo::latest()->get();
        return view('payment.edit', compact('payment', 'agencies'));
    }
    public function update(Request $request, Payment $payment)
    {
        // dd($request->all());
        $request->validate([
            'agency_id' => 'required|exists:company_infos,id',
            'user_id' => 'required|exists:users,id',
            'type' => 'required|in:cash,check,iban',
            'bank_name' => 'nullable|string|max:255',
            'amount' => 'required|numeric|min:1',
            'transaction_id' => 'required|string',
            'currency' => 'required|in:BDT,SAR',
            'proof' => 'nullable|file|mimes:jpg,png,pdf|max:2048',
            'additional' => 'nullable|string',
        ]);

        $payment->agency_id = $request->agency_id;
        $payment->user_id = $request->user_id;
        $payment->type = $request->type;
        $payment->bank_name = $request->bank_name;
        $payment->amount = $request->amount;
        $payment->transaction_id = $request->transaction_id;
        $payment->currency = $request->currency;
        $payment->additional = $request->additional;

        if ($request->hasFile('proof')) {
            $payment->proof = $request->file('proof')->store('payments', 'public');
        }

        $payment->save();

        return redirect()->back()->with('success', 'Payment Updated successfully.');
    }
    public function delete(Payment $payment)
    {

        if ($payment->proof && Storage::disk('public')->exists($payment->proof)) {
            Storage::disk('public')->delete($payment->proof);
        }
        $payment->delete();

        return redirect()->back()->with('success', 'Payment deleted successfully.');
    }
}