Update Project Review, export #102
|
|
@ -0,0 +1,82 @@
|
|||
<?php
|
||||
|
||||
namespace Modules\Admin\app\Http\Controllers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Modules\Admin\app\Http\Controllers\AbstractController;
|
||||
use Modules\Admin\app\Models\ProjectReview;
|
||||
use App\Models\User;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class ProjectReviewController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
public function getListReviews(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'userID' => 'required|exists:users,id',
|
||||
'fromDate' => 'nullable|date',
|
||||
'toDate' => 'nullable|date',
|
||||
]);
|
||||
|
||||
$startDate = $request->input('fromDate');
|
||||
$endDate = $request->input('toDate');
|
||||
|
||||
$projectsData = ProjectReview::where('user_id', $request->input('userID'))
|
||||
->whereHas('user', function ($query) use ($startDate, $endDate) {
|
||||
if ($startDate && $endDate) {
|
||||
$query->whereBetween('updated_at', [$startDate, $endDate]);
|
||||
} elseif ($startDate) {
|
||||
$query->where('updated_at', '>=', $startDate);
|
||||
} elseif ($endDate) {
|
||||
$query->where('updated_at', '<=', $endDate);
|
||||
}
|
||||
})
|
||||
->get();
|
||||
|
||||
return AbstractController::ResultSuccess($projectsData);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*/
|
||||
public function create(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'name' => 'required|string',
|
||||
'role' => 'required|string',
|
||||
'note' => 'required|string',
|
||||
'user_id' => 'required|exists:users,id',
|
||||
]);
|
||||
|
||||
$review = ProjectReview::create($request->all());
|
||||
return response()->json($review, 201);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*/
|
||||
public function update(Request $request, ProjectReview $projectReview)
|
||||
{
|
||||
$request->validate([
|
||||
'name' => 'sometimes|required|string',
|
||||
'role' => 'sometimes|required|string',
|
||||
'note' => 'sometimes|required|string',
|
||||
'user_id' => 'sometimes|required|exists:users,id',
|
||||
]);
|
||||
|
||||
$projectReview->update($request->all());
|
||||
return response()->json($projectReview);
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*/
|
||||
public function destroy(ProjectReview $projectReview)
|
||||
{
|
||||
$projectReview->delete();
|
||||
return response()->json(['message' => 'Deleted successfully']);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
<?php
|
||||
|
||||
namespace Modules\Admin\app\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class ProjectReview extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
|
||||
protected $fillable = ['name', 'role', 'note', 'user_id'];
|
||||
|
||||
// Relationship: A review belongs to a user
|
||||
public function user()
|
||||
{
|
||||
return $this->belongsTo(User::class);
|
||||
}
|
||||
}
|
||||
|
|
@ -17,6 +17,7 @@ use Modules\Admin\app\Http\Controllers\TimekeepingController;
|
|||
use Modules\Admin\app\Http\Controllers\TrackingController;
|
||||
use Modules\Admin\app\Http\Controllers\CriteriasController;
|
||||
use Modules\Admin\app\Http\Controllers\EvaluationController;
|
||||
use Modules\Admin\app\Http\Controllers\ProjectReviewController;
|
||||
use Modules\Admin\app\Http\Controllers\ProfileController;
|
||||
use Modules\Admin\app\Http\Controllers\TechnicalController;
|
||||
use Modules\Admin\app\Http\Controllers\TestCaseForSprintController;
|
||||
|
|
@ -192,6 +193,10 @@ Route::middleware('api')
|
|||
Route::get('/sprint-review', [EvaluationController::class, 'sprintReview'])->middleware('check.permission:admin');
|
||||
Route::get('/technical', [EvaluationController::class, 'technical'])->middleware('check.permission:admin');
|
||||
Route::get('/report', [EvaluationController::class, 'report'])->middleware('check.permission:admin');
|
||||
Route::get('/project-review', [ProjectReviewController::class, 'getListReviews'])->middleware('check.permission:admin');
|
||||
Route::get('/project-review/create', [ProjectReviewController::class, 'create'])->middleware('check.permission:admin');
|
||||
Route::get('/project-review/update', [ProjectReviewController::class, 'update'])->middleware('check.permission:admin');
|
||||
Route::get('/project-review/delete', [ProjectReviewController::class, 'destroy'])->middleware('check.permission:admin');
|
||||
});
|
||||
|
||||
Route::group([
|
||||
|
|
|
|||
|
|
@ -0,0 +1,30 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration {
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('project_reviews', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('name');
|
||||
$table->string('role');
|
||||
$table->longText('note');
|
||||
$table->foreignId('user_id')->constrained('users')->onDelete('cascade'); // Khóa ngoại tới bảng users
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('project_reviews');
|
||||
}
|
||||
};
|
||||
Loading…
Reference in New Issue