Update export di module senior officer
This commit is contained in:
46
app/Exports/JenisPenilaianExport.php
Normal file
46
app/Exports/JenisPenilaianExport.php
Normal file
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Lpj\Exports;
|
||||
|
||||
use Maatwebsite\Excel\Concerns\FromCollection;
|
||||
use Maatwebsite\Excel\Concerns\WithColumnFormatting;
|
||||
use Maatwebsite\Excel\Concerns\WithHeadings;
|
||||
use Maatwebsite\Excel\Concerns\WithMapping;
|
||||
use Modules\Lpj\Models\JenisPenilaian;
|
||||
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
|
||||
|
||||
class JenisPenilaianExport implements WithColumnFormatting, WithHeadings, FromCollection, withMapping
|
||||
{
|
||||
public function collection()
|
||||
{
|
||||
return JenisPenilaian::all();
|
||||
}
|
||||
|
||||
public function map($row): array
|
||||
{
|
||||
return [
|
||||
$row->id,
|
||||
$row->code,
|
||||
$row->name,
|
||||
$row->created_at
|
||||
];
|
||||
}
|
||||
|
||||
public function headings(): array
|
||||
{
|
||||
return [
|
||||
'ID',
|
||||
'Code',
|
||||
'Jenis Penilaian',
|
||||
'Created At'
|
||||
];
|
||||
}
|
||||
|
||||
public function columnFormats(): array
|
||||
{
|
||||
return [
|
||||
'A' => NumberFormat::FORMAT_NUMBER,
|
||||
'D' => NumberFormat::FORMAT_DATE_DATETIME
|
||||
];
|
||||
}
|
||||
}
|
||||
57
app/Exports/TeamPenilaianExport.php
Normal file
57
app/Exports/TeamPenilaianExport.php
Normal file
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Lpj\Exports;
|
||||
|
||||
use Maatwebsite\Excel\Concerns\FromCollection;
|
||||
use Maatwebsite\Excel\Concerns\WithColumnFormatting;
|
||||
use Maatwebsite\Excel\Concerns\WithHeadings;
|
||||
use Maatwebsite\Excel\Concerns\WithMapping;
|
||||
use Modules\Lpj\Models\JenisPenilaian;
|
||||
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Modules\Lpj\Models\Teams;
|
||||
|
||||
class TeamPenilaianExport implements WithColumnFormatting, WithHeadings, FromCollection, withMapping
|
||||
{
|
||||
public function collection()
|
||||
{
|
||||
return Teams::select(
|
||||
'teams.id as id',
|
||||
'teams.name as team_name',
|
||||
'regions.name as region_name',
|
||||
DB::raw('STRING_AGG(users.name, \', \') as team_group')
|
||||
)
|
||||
->join('regions', 'teams.regions_id', '=', 'regions.id')
|
||||
->leftJoin('teams_users', 'teams.id', '=', 'teams_users.teams_id')
|
||||
->leftJoin('users', 'teams_users.user_id', '=', 'users.id')
|
||||
->groupBy('teams.id', 'teams.name', 'regions.name')
|
||||
->get();
|
||||
}
|
||||
|
||||
public function map($row): array
|
||||
{
|
||||
return [
|
||||
$row->team_name,
|
||||
$row->region_name,
|
||||
$row->team_group,
|
||||
];
|
||||
}
|
||||
|
||||
public function headings(): array
|
||||
{
|
||||
return [
|
||||
'Name',
|
||||
'Region',
|
||||
'Anggota Team',
|
||||
];
|
||||
}
|
||||
|
||||
public function columnFormats(): array
|
||||
{
|
||||
return [
|
||||
'A' => NumberFormat::FORMAT_TEXT,
|
||||
'B' => NumberFormat::FORMAT_TEXT,
|
||||
'C' => NumberFormat::FORMAT_TEXT,
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -6,15 +6,12 @@ use Exception;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use Modules\Lpj\Models\JenisPenilaian;
|
||||
|
||||
use Modules\Lpj\Http\Requests\JenisPenilaianRequest;
|
||||
|
||||
|
||||
use Modules\Lpj\Exports\JenisPenilaianExport;
|
||||
use Maatwebsite\Excel\Facades\Excel;
|
||||
class JenisPenilaianController extends Controller
|
||||
{
|
||||
|
||||
public $user;
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
@@ -62,7 +59,6 @@ class JenisPenilaianController extends Controller
|
||||
public function update(JenisPenilaianRequest $request, $id)
|
||||
{
|
||||
|
||||
|
||||
$validate = $request->validate();
|
||||
|
||||
// dump($validate);
|
||||
@@ -96,8 +92,6 @@ class JenisPenilaianController extends Controller
|
||||
|
||||
public function dataForDatatables(Request $request)
|
||||
{
|
||||
|
||||
|
||||
if (is_null($this->user) || !$this->user->can('jenis_penilaian.view')) {
|
||||
//abort(403, 'Sorry! You are not allowed to view users.');
|
||||
}
|
||||
@@ -112,7 +106,7 @@ class JenisPenilaianController extends Controller
|
||||
});
|
||||
}
|
||||
|
||||
if($request->has('sortOrder') && !empty($request->get('sortOrder'))){
|
||||
if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) {
|
||||
$order = $request->get('sortOrder');
|
||||
$column = $request->get('sortField');
|
||||
$query->orderBy($column, $order);
|
||||
@@ -153,4 +147,10 @@ class JenisPenilaianController extends Controller
|
||||
'data' => $data
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
public function export()
|
||||
{
|
||||
return Excel::download(new JenisPenilaianExport(), 'jenis-penilaian.xlsx');
|
||||
}
|
||||
}
|
||||
|
||||
67
app/Http/Controllers/PenilaianController.php
Normal file
67
app/Http/Controllers/PenilaianController.php
Normal file
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Lpj\Http\Controllers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
|
||||
class PenilaianController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
return view('lpj::penilaian.index');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
return view('lpj::create');
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*/
|
||||
public function store(Request $request): RedirectResponse
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the specified resource.
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
return view('lpj::show');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
return view('lpj::edit');
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*/
|
||||
public function update(Request $request, $id): RedirectResponse
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
@@ -12,6 +12,8 @@ use Modules\Lpj\Models\Teams;
|
||||
use Modules\Lpj\Models\TeamsUsers;
|
||||
use Modules\Lpj\Http\Requests\TeamsRequest;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Modules\Lpj\Exports\TeamPenilaianExport;
|
||||
use Maatwebsite\Excel\Facades\Excel;
|
||||
|
||||
class TeamsController extends Controller
|
||||
{
|
||||
@@ -30,8 +32,13 @@ class TeamsController extends Controller
|
||||
public function create()
|
||||
{
|
||||
|
||||
$region = Regions::all();
|
||||
$user = User::all();
|
||||
// cek region apakah sudah ada di tabel teams
|
||||
$regionTeam = Teams::pluck('regions_id')->toArray();
|
||||
$region = Regions::whereNotIn('id', $regionTeam)->get();
|
||||
|
||||
// cek user apakah sudah ada di tabel teams_users
|
||||
$userTeam = TeamsUsers::pluck('user_id')->toArray();
|
||||
$user = User::whereNotIn('id', $userTeam)->get();
|
||||
|
||||
return view('lpj::teams.form', compact('region', 'user'));
|
||||
}
|
||||
@@ -86,8 +93,13 @@ class TeamsController extends Controller
|
||||
public function edit($id)
|
||||
{
|
||||
$teams = Teams::find($id);
|
||||
|
||||
|
||||
$region = Regions::all();
|
||||
$user = User::all();
|
||||
$usedUsers = TeamsUsers::where('teams_id', '!=', $id)->pluck('user_id')->toArray();
|
||||
|
||||
$user = User::whereNotIn('id', $usedUsers)->get();
|
||||
// Ambil user yang sudah ada di tim ini
|
||||
$selectedUsers = $teams->teamsUsers->pluck('user_id')->toArray();
|
||||
|
||||
return view('lpj::teams.form', compact('teams', 'region', 'user', 'selectedUsers'));
|
||||
@@ -149,15 +161,11 @@ class TeamsController extends Controller
|
||||
|
||||
DB::commit();
|
||||
|
||||
return redirect()
|
||||
->route('basicdata.teams.index')
|
||||
->with('success', 'Team has been deleted successfully.');
|
||||
echo json_encode(['success' => true, 'message' => 'Team has been deleted successfully']);
|
||||
|
||||
} catch (Exception $e) {
|
||||
DB::rollBack();
|
||||
|
||||
return redirect()
|
||||
->route('basicdata.teams.index')
|
||||
->with('error', 'Failed to delete team. ');
|
||||
echo json_encode(['success' => false, 'message' => 'Failed to delete Team']);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -236,6 +244,10 @@ class TeamsController extends Controller
|
||||
}
|
||||
|
||||
|
||||
public function export()
|
||||
{
|
||||
return Excel::download(new TeamPenilaianExport, 'team-penilai.xlsx');
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -22,8 +22,7 @@ class JenisPenilaianRequest extends FormRequest
|
||||
|
||||
if ($this->method() == 'PUT') {
|
||||
|
||||
$rules['code'] = 'required|string|max:3|unique:jenis_penilaian,code,' . $this->route('id');
|
||||
|
||||
$rules['code'] = 'required|string|max:3|unique:jenis_penilaian,code,' . $this->id;
|
||||
|
||||
} else {
|
||||
$rules['code'] = 'required|string|max:3|unique:jenis_penilaian,code';
|
||||
|
||||
26
app/Http/Requests/PenilaianRequest.php
Normal file
26
app/Http/Requests/PenilaianRequest.php
Normal file
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Lpj\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class PenilaianRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
//
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user