create page tax with data, upload and export group by subdistrict

This commit is contained in:
arifal hidayat
2025-08-05 01:30:37 +07:00
parent 456eec83dc
commit 7135876ebc
18 changed files with 780 additions and 3 deletions

View File

@@ -9,6 +9,7 @@ use App\Http\Resources\CustomersResource;
use App\Imports\CustomersImport;
use App\Models\Customer;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
use Maatwebsite\Excel\Facades\Excel;
class CustomersController extends Controller
@@ -120,7 +121,7 @@ class CustomersController extends Controller
'message' => 'File uploaded successfully',
]);
}catch(\Exception $e){
\Log::info($e->getMessage());
Log::info($e->getMessage());
return response()->json([
'error' => 'Failed to upload file',
'message' => $e->getMessage()

View File

@@ -0,0 +1,63 @@
<?php
namespace App\Http\Controllers\Api;
use App\Exports\TaxationsExport;
use App\Http\Controllers\Controller;
use App\Http\Requests\ExcelUploadRequest;
use App\Http\Resources\TaxationsResource;
use App\Imports\TaxationsImport;
use Illuminate\Http\Request;
use App\Models\Tax;
use Illuminate\Support\Facades\Log;
use Maatwebsite\Excel\Facades\Excel;
class TaxationsController extends Controller
{
public function index(Request $request)
{
try{
$query = Tax::query()->orderBy('id', 'desc');
if($request->has('search') && !empty($request->get('search'))){
$query->where('tax_no', 'like', '%'. $request->get('search') . '%')
->orWhere('wp_name', 'like', '%'. $request->get('search') . '%')
->orWhere('business_name', 'like', '%'. $request->get('search') . '%');
}
return TaxationsResource::collection($query->paginate(config('app.paginate_per_page', 50)));
}catch(\Exception $e){
Log::info($e->getMessage());
return response()->json([
'error' => 'Failed to get data',
'message' => $e->getMessage()
], 500);
}
}
public function upload(ExcelUploadRequest $request)
{
try{
if(!$request->hasFile('file')){
return response()->json([
'error' => 'No file provided'
], 400);
}
$file = $request->file('file');
Excel::import(new TaxationsImport, $file);
return response()->json(['message' => 'File uploaded successfully'], 200);
}catch(\Exception $e){
Log::info($e->getMessage());
return response()->json([
'error' => 'Failed to upload file',
'message' => $e->getMessage()
], 500);
}
}
public function export(Request $request)
{
return Excel::download(new TaxationsExport, 'pajak_per_kecamatan.xlsx');
}
}

View File

@@ -0,0 +1,75 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class TaxationController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index(Request $request)
{
$menuId = $request->query('menu_id') ?? $request->input('menu_id');
$permissions = $this->permissions[$menuId]?? []; // Avoid undefined index error
$creator = $permissions['allow_create'] ?? 0;
$updater = $permissions['allow_update'] ?? 0;
$destroyer = $permissions['allow_destroy'] ?? 0;
return view('taxation.index', compact('creator', 'updater', 'destroyer', 'menuId'));
}
public function upload(Request $request)
{
$menuId = $request->query('menu_id') ?? $request->input('menu_id');
return view('taxation.upload', compact('menuId'));
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
//
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $id)
{
//
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
//
}
}