PK

ADDRLIN : /home/questend/public_html/domains/evami.in/app/Http/Controllers/
FLL :
Current File : /home/questend/public_html/domains/evami.in/app/Http/Controllers/SiteSetingController.php

<?php

namespace App\Http\Controllers;

use App\SiteSeting;
use Illuminate\Http\Request;
use Illuminate\Http\RedirectResponse;
use Illuminate\View\View;
use Carbon\Carbon;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Str;

class SiteSetingController extends Controller
{   
    /**
     * Create a new controller instance.
     */
    public function __construct()
    {
        $this->middleware('auth:admin');
    }
    
    /**
     * Display a listing of the resource.
     */
    public function index(): View|RedirectResponse
    {
        if (view()->exists('backend.admin.sitesettings.index')) {
            $settings = SiteSeting::orderBy('id', 'desc')->paginate(50);
            $settings->withPath('setting');
            return view('backend.admin.sitesettings.index', compact('settings'));
        }
        return back()->with('error', 'View not found');
    }

    /**
     * Show the form for creating a new resource.
     */
    public function create(): View|RedirectResponse
    {
        if (view()->exists('backend.admin.sitesettings.siteSettingCreate')) {
            // Get the latest active setting to pre-fill form
            $latestSetting = SiteSeting::orderBy('id', 'desc')
                ->where('isactive', 1)
                ->where('isdelete', 1)
                ->first();
                
            return view('backend.admin.sitesettings.siteSettingCreate', compact('latestSetting'));
        }
        return back()->with('error', 'View not found');
    }

    /**
     * Store a newly created resource in storage.
     */
    public function store(Request $request): RedirectResponse
    {
        // CSRF token validation
        if ($request->_token !== Session::token()) {
            return Redirect::back()->with('error', 'Invalid form submission!');
        }

        // Get previous active data for fallback values
        $prevData = SiteSeting::orderBy('id', 'desc')
            ->where('isactive', 1)
            ->where('isdelete', 1)
            ->first();

        // Validate required fields
        $validator = Validator::make($request->all(), [
            'company_name' => 'required|string|max:255',
            'company_gstno' => 'required|string|max:50|unique:site_setings,company_gstno',
            'company_address' => 'required|string',
            'company_state' => 'required|string|max:100',
            'isactive' => 'required|boolean',
            'cardmin_amount' => 'nullable|numeric|min:0',
            'carddiscount_rate' => 'nullable|numeric|min:0',
            'carddiscount_type' => 'nullable|string|max:50',
            'facebook_url' => 'nullable|url|max:255',
            'facebook_authkey' => 'nullable|string|max:255',
            'google_url' => 'nullable|url|max:255',
            'google_authkey' => 'nullable|string|max:255',
        ]);

        if ($validator->fails()) {
            return redirect()->back()
                ->withErrors($validator)
                ->withInput();
        }

        try {
            $site = new SiteSeting();
            
            // Use new values or fallback to previous data
            $site->company_name = !empty($request->company_name) 
                ? Str::title($request->company_name) 
                : ($prevData->company_name ?? '');
                
            $site->company_address = !empty($request->company_address) 
                ? $request->company_address 
                : ($prevData->company_address ?? '');
                
            $site->company_gstno = !empty($request->company_gstno) 
                ? $request->company_gstno 
                : ($prevData->company_gstno ?? '');
                
            $site->company_state = !empty($request->company_state) 
                ? Str::title($request->company_state) 
                : ($prevData->company_state ?? '');
                
            $site->cardmin_amount = !empty($request->cardmin_amount) 
                ? (float) $request->cardmin_amount 
                : ($prevData->cardmin_amount ?? 0);
                
            $site->carddiscount_rate = !empty($request->carddiscount_rate) 
                ? (float) $request->carddiscount_rate 
                : ($prevData->carddiscount_rate ?? 0);
                
            $site->carddiscount_type = !empty($request->carddiscount_type) 
                ? $request->carddiscount_type 
                : ($prevData->carddiscount_type ?? '');
                
            $site->facebook_url = !empty($request->facebook_url) 
                ? $request->facebook_url 
                : ($prevData->facebook_url ?? '');
                
            $site->facebook_authkey = !empty($request->facebook_authkey) 
                ? $request->facebook_authkey 
                : ($prevData->facebook_authkey ?? '');
                
            $site->google_url = !empty($request->google_url) 
                ? $request->google_url 
                : ($prevData->google_url ?? '');
                
            $site->google_authkey = !empty($request->google_authkey) 
                ? $request->google_authkey 
                : ($prevData->google_authkey ?? '');
                
            $site->isactive = (bool) $request->isactive;
            $site->isdelete = 1;
            $site->addedby = Auth::id();
            $site->created_at = Carbon::now();
            $site->visitor = $request->ip();

            if ($site->save()) {
                return redirect()->route('siteManagement.index')
                    ->with('success', 'New site setting added successfully!');
            }

            return back()->with('error', 'Failed to save site setting. Please try again.');

        } catch (\Exception $e) {
            return back()->with('error', 'An error occurred while saving the site setting.');
        }
    }

    /**
     * Display the specified resource.
     */
    public function show(SiteSeting $siteSeting)
    {
        // Method intentionally left empty
    }

    /**
     * Show the form for editing the specified resource.
     */
    public function edit(int $id): View|RedirectResponse
    {
        if (view()->exists('backend.admin.sitesettings.siteSettingEdit')) {
            $setting = SiteSeting::where('id', $id)->first();
            
            if (!$setting) {
                return back()->with('error', 'Site setting not found.');
            }
            
            return view('backend.admin.sitesettings.siteSettingEdit', compact('setting'));
        }
        return back()->with('error', 'View not found');
    }

    /**
     * Update the specified resource in storage.
     */
    public function update(Request $request, int $id): RedirectResponse
    {
        // CSRF token validation
        if ($request->_token !== Session::token()) {
            return Redirect::back()->with('error', 'Invalid form submission!');
        }

        $site = SiteSeting::where('id', $id)->where('isdelete', 1)->first();
        
        if (!$site) {
            return back()->with('error', 'Site setting not found.');
        }

        // Prepare validation rules
        $validationRules = [
            'company_name' => 'required|string|max:255',
            'company_address' => 'required|string',
            'company_state' => 'required|string|max:100',
            'isactive' => 'required|boolean',
            'cardmin_amount' => 'nullable|numeric|min:0',
            'carddiscount_rate' => 'nullable|numeric|min:0',
            'carddiscount_type' => 'nullable|string|max:50',
            'facebook_url' => 'nullable|url|max:255',
            'facebook_authkey' => 'nullable|string|max:255',
            'google_url' => 'nullable|url|max:255',
            'google_authkey' => 'nullable|string|max:255',
        ];

        // Add unique rule for GST number only if it's changed
        if ($site->company_gstno !== $request->company_gstno) {
            $validationRules['company_gstno'] = 'required|string|max:50|unique:site_setings,company_gstno';
        } else {
            $validationRules['company_gstno'] = 'required|string|max:50';
        }

        $validator = Validator::make($request->all(), $validationRules);

        if ($validator->fails()) {
            return redirect()->back()
                ->withErrors($validator)
                ->withInput();
        }

        try {
            $site->company_name = Str::title($request->company_name ?? '');
            $site->company_address = $request->company_address ?? '';
            $site->company_gstno = $request->company_gstno ?? '';
            $site->company_state = Str::title($request->company_state ?? '');
            $site->cardmin_amount = (float) ($request->cardmin_amount ?? 0);
            $site->carddiscount_rate = (float) ($request->carddiscount_rate ?? 0);
            $site->carddiscount_type = $request->carddiscount_type ?? '';
            $site->facebook_url = $request->facebook_url ?? '';
            $site->facebook_authkey = $request->facebook_authkey ?? '';
            $site->google_url = $request->google_url ?? '';
            $site->google_authkey = $request->google_authkey ?? '';
            $site->isactive = (bool) $request->isactive;
            $site->addedby = Auth::id();
            $site->updated_at = Carbon::now();
            $site->visitor = $request->ip();

            if ($site->save()) {
                return redirect()->route('siteManagement.index')
                    ->with('success', 'Site setting updated successfully!');
            }

            return back()->with('error', 'Failed to update site setting. Please try again.');

        } catch (\Exception $e) {
            return back()->with('error', 'An error occurred while updating the site setting.');
        }
    }

    /**
     * Remove the specified resource from storage.
     */
    public function destroy(int $id): RedirectResponse
    {
        try {
            $site = SiteSeting::findOrFail($id);
            $site->isdelete = 0;
            $site->deleted_at = Carbon::now();
            $site->addedby = Auth::id();

            if ($site->save()) {
                return redirect()->route('siteManagement.index')
                    ->with('success', 'Site setting deleted successfully!');
            }

            return back()->with('error', 'Failed to delete site setting.');

        } catch (\Exception $e) {
            return back()->with('error', 'Site setting not found or already deleted.');
        }
    }

    /**
     * Restore deleted site setting.
     */
    public function restore(int $id): RedirectResponse
    {
        try {
            $site = SiteSeting::withTrashed()->findOrFail($id);
            $site->isdelete = 1;
            $site->deleted_at = null;
            $site->addedby = Auth::id();

            if ($site->save()) {
                return redirect()->route('siteManagement.index')
                    ->with('success', 'Site setting restored successfully!');
            }

            return back()->with('error', 'Failed to restore site setting.');

        } catch (\Exception $e) {
            return back()->with('error', 'Site setting not found.');
        }
    }

    /**
     * Get active site settings.
     */
    public function getActiveSettings()
    {
        return SiteSeting::where('isactive', 1)
            ->where('isdelete', 1)
            ->orderBy('id', 'desc')
            ->first();
    }
}


PK 99
E-SHOP || DASHBOARD
404

Page Not Found

It looks like you found a glitch in the matrix...

← Back to Home