|
Server : Apache/2.4.41 (Ubuntu) System : Linux vmi1525618.contaboserver.net 5.4.0-105-generic #119-Ubuntu SMP Mon Mar 7 18:49:24 UTC 2022 x86_64 User : www-data ( 33) PHP Version : 8.2.12 Disable Function : NONE Directory : /var/www/erp.theinteractive.co.in/app/Http/Controllers/ |
Upload File : |
<?php
namespace App\Http\Controllers;
use App\Models\BillProduct;
use App\Models\InvoiceProduct;
use App\Models\ProposalProduct;
use App\Models\Tax;
use Auth;
use Illuminate\Http\Request;
class TaxController extends Controller
{
public function index()
{
if(\Auth::user()->can('manage constant tax'))
{
$taxes = Tax::where('created_by', '=', \Auth::user()->creatorId())->get();
return view('taxes.index')->with('taxes', $taxes);
}
else
{
return redirect()->back()->with('error', __('Permission denied.'));
}
}
public function create()
{
if(\Auth::user()->can('create constant tax'))
{
return view('taxes.create');
}
else
{
return response()->json(['error' => __('Permission denied.')], 401);
}
}
public function store(Request $request)
{
if(\Auth::user()->can('create constant tax'))
{
$validator = \Validator::make(
$request->all(), [
'name' => 'required|max:20',
'rate' => 'required|numeric',
]
);
if($validator->fails())
{
$messages = $validator->getMessageBag();
return redirect()->back()->with('error', $messages->first());
}
$tax = new Tax();
$tax->name = $request->name;
$tax->rate = $request->rate;
$tax->created_by = \Auth::user()->creatorId();
$tax->save();
return redirect()->route('taxes.index')->with('success', __('Tax rate successfully created.'));
}
else
{
return redirect()->back()->with('error', __('Permission denied.'));
}
}
public function show(Tax $tax)
{
return redirect()->route('taxes.index');
}
public function edit(Tax $tax)
{
if(\Auth::user()->can('edit constant tax'))
{
if($tax->created_by == \Auth::user()->creatorId())
{
return view('taxes.edit', compact('tax'));
}
else
{
return response()->json(['error' => __('Permission denied.')], 401);
}
}
else
{
return response()->json(['error' => __('Permission denied.')], 401);
}
}
public function update(Request $request, Tax $tax)
{
if(\Auth::user()->can('edit constant tax'))
{
if($tax->created_by == \Auth::user()->creatorId())
{
$validator = \Validator::make(
$request->all(), [
'name' => 'required|max:20',
'rate' => 'required|numeric',
]
);
if($validator->fails())
{
$messages = $validator->getMessageBag();
return redirect()->back()->with('error', $messages->first());
}
$tax->name = $request->name;
$tax->rate = $request->rate;
$tax->save();
return redirect()->route('taxes.index')->with('success', __('Tax rate successfully updated.'));
}
else
{
return redirect()->back()->with('error', __('Permission denied.'));
}
}
else
{
return redirect()->back()->with('error', __('Permission denied.'));
}
}
public function destroy(Tax $tax)
{
if(\Auth::user()->can('delete constant tax'))
{
if($tax->created_by == \Auth::user()->creatorId())
{
$proposalData = ProposalProduct::whereRaw("find_in_set('$tax->id',tax)")->first();
$billData = BillProduct::whereRaw("find_in_set('$tax->id',tax)")->first();
$invoiceData = InvoiceProduct::whereRaw("find_in_set('$tax->id',tax)")->first();
if(!empty($proposalData) || !empty($billData) || !empty($invoiceData))
{
return redirect()->back()->with('error', __('this tax is already assign to proposal or bill or invoice so please move or remove this tax related data.'));
}
$tax->delete();
return redirect()->route('taxes.index')->with('success', __('Tax rate successfully deleted.'));
}
else
{
return redirect()->back()->with('error', __('Permission denied.'));
}
}
else
{
return redirect()->back()->with('error', __('Permission denied.'));
}
}
}