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'
]);
}
}