MOON
Server: Apache
System: Linux e2e-78-16.ssdcloudindia.net 3.10.0-1160.45.1.el7.x86_64 #1 SMP Wed Oct 13 17:20:51 UTC 2021 x86_64
User: imensosw (1005)
PHP: 7.4.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/imensosw/www/amanda/app/Http/Controllers/TaxController.php
<?php

namespace App\Http\Controllers;

use App\Tax_manage;
use Illuminate\Http\Request;

class TaxController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index(Request $request)
    {
         $limit = config('constants.limit');
        $search = $request->search;
        $tax = Tax_manage::leftjoin('countries','countries.id','tax_manage.country_code')
                ->where(function($q) use ($search)
                {
                      $q->orWhere('tax_manage.name', 'like', '%' . $search . '%');
                      $q->orWhere('tax_manage.rate', 'like', '%' . $search . '%');
                      $q->orWhere('tax_manage.country_code', 'like', '%' . $search . '%');
                      // $q->orWhere('tax_manage.state_code', 'like', '%' . $search . '%');
                })
                ->select('tax_manage.*','countries.code as countr_code')
                ->orderBy('tax_manage.id','desc')
                ->paginate($limit);

        $countries = \DB::table('countries')->get();

        return response()->json(['tax'=>$tax, 'countries'=>$countries],200); 
        // $tax = Tax_manage::paginate(5);
        // return response()->json($tax,200);
        // return response()->json(Tax_manage::all(),200);
    }

    public function taxSearch(Request $request)
    {
        $limit = config('constants.limit');
        $search = $request->search;
        $tax = Tax_manage::leftjoin('countries','countries.id','tax_manage.country_code')
                ->where(function($q) use ($search)
                {
                      $q->orWhere('tax_manage.name', 'like', '%' . $search . '%');
                      $q->orWhere('tax_manage.rate', 'like', '%' . $search . '%');
                      $q->orWhere('tax_manage.country_code', 'like', '%' . $search . '%');
                      // $q->orWhere('tax_manage.state_code', 'like', '%' . $search . '%');
                })
                ->select('tax_manage.*','countries.code as countr_code')
                ->orderBy('tax_manage.id','desc')
                ->paginate($limit);
        return response()->json($tax,200); 
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $request->validate([
            'name' => 'required|max:30',
            'country_code' => 'required|max:30|unique:tax_manage,country_code',
            // 'state_code' => 'required|max:30',
            'rate' => 'required|numeric',
        ]); 
        $tax = Tax_manage::create([
            'name' => $request->name,
            'country_code' => $request->country_code,
            'state_code' => 11,//$request->state_code,
            'rate' => $request->rate
        ]);
        return response()->json([
            'status' => (bool) $tax,
            'data'   => $tax,
            'message' => $tax ? 'Tax Created!' : 'Error Creating Tax'
        ]);
    }

    /**
     * Display the specified resource.
     *
     * @param  \App\Product  $product
     * @return \Illuminate\Http\Response
     */
    public function show(Tax_manage $tax)
    {
        return response()->json($tax,200); 
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Product  $product
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, Tax_manage $tax)
    {
        $request->validate([
            'name' => 'required|max:30',
            'country_code' => 'required|max:30|unique:tax_manage,country_code,'.$tax['id'],
            // 'state_code' => 'required|max:30',
            'rate' => 'required',
        ]);

        $status = $tax->update(
            $request->only(['name','country_code','rate'])
        );

        return response()->json([
            'status' => $status,
            'message' => $status ? 'Tax Updated!' : 'Error Updating Tax'
        ]);
    }

  

    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\Product  $product
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {   
        $status = Tax_manage::find($id)->delete();

        return response()->json([
            'status' => $status,
            'message' => $status ? 'Tax Deleted!' : 'Error Deleting Tax'
        ]);
    }


    


}