Update Form
This commit is contained in:
@@ -4,6 +4,8 @@ namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\FileUpload;
|
||||
use App\Models\Letter;
|
||||
use Barryvdh\DomPDF\Facade\Pdf;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\Http\Request;
|
||||
@@ -11,6 +13,7 @@ use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Support\Facades\URL;
|
||||
use Illuminate\Database\Eloquent\ModelNotFoundException;
|
||||
use Exception;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Validation\ValidationException;
|
||||
|
||||
/**
|
||||
@@ -103,8 +106,8 @@ class LetterController extends Controller
|
||||
'program_studi_mahasiswa' => 'required|string',
|
||||
'tahun_ajaran' => 'required|string',
|
||||
'start_date' => 'required|date',
|
||||
'completion_date' => 'nullable|date',
|
||||
'nomor_surat_acceptance' => 'nullable|string',
|
||||
'completion_date' => 'required|date',
|
||||
'nomor_surat_acceptance' => 'required|string',
|
||||
'nomor_surat_completion' => 'nullable|string',
|
||||
'lampiran' => 'nullable|file|mimes:pdf,jpg,png|max:2048',
|
||||
]);
|
||||
@@ -197,25 +200,27 @@ class LetterController extends Controller
|
||||
'program_studi_mahasiswa' => 'sometimes|string',
|
||||
'tahun_ajaran' => 'sometimes|string',
|
||||
'start_date' => 'sometimes|date',
|
||||
'completion_date' => 'sometimes|date',
|
||||
'completion_date' => 'required|date',
|
||||
'is_acceptance' => 'sometimes|boolean',
|
||||
'nomor_surat_acceptance' => 'nullable|string',
|
||||
'is_completion' => 'sometimes|boolean',
|
||||
'is_completion' => 'nullable|boolean',
|
||||
'nomor_surat_completion' => 'nullable|string',
|
||||
'lampiran' => 'nullable|file|mimes:pdf,jpg,png|max:2048',
|
||||
]);
|
||||
|
||||
// Update boolean flags if letter numbers are provided
|
||||
// Force update boolean if nomor_surat_* diberikan
|
||||
if ($request->has('nomor_surat_acceptance')) {
|
||||
$validated['is_acceptance'] = !empty($request->nomor_surat_acceptance);
|
||||
$validated['is_acceptance'] = !empty($request->input('nomor_surat_acceptance'));
|
||||
}
|
||||
|
||||
if ($request->has('nomor_surat_completion')) {
|
||||
$validated['is_completion'] = !empty($request->nomor_surat_completion);
|
||||
$validated['is_completion'] = !empty($request->input('nomor_surat_completion'));
|
||||
}
|
||||
|
||||
// Update letter
|
||||
$letter->update($validated);
|
||||
|
||||
// Upload file jika ada
|
||||
if ($request->hasFile('lampiran')) {
|
||||
$this->handleFileUpload($request->file('lampiran'), $letter, true);
|
||||
}
|
||||
@@ -314,6 +319,20 @@ class LetterController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
public function generateSurat($id)
|
||||
{
|
||||
$letter = Letter::findOrFail($id);
|
||||
$letter->start_formatted = Carbon::parse($letter->start_date)->translatedFormat('j F Y');
|
||||
$letter->end_formatted = Carbon::parse($letter->completion_date)->translatedFormat('j F Y');
|
||||
$pdf = Pdf::loadView('template', ['letter' => $letter, 'tanggalSurat' => Carbon::now()->isoFormat('D MMMM Y')]);
|
||||
return $pdf->download('Surat.pdf')
|
||||
->withHeaders([
|
||||
'Access-Control-Allow-Origin' => '*',
|
||||
'Access-Control-Allow-Methods' => 'GET, OPTIONS',
|
||||
'Access-Control-Allow-Headers' => 'Content-Type, Authorization',
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Format letter data for consistent API response
|
||||
*
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Providers;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Dedoc\Scramble\Scramble;
|
||||
use Dedoc\Scramble\Support\Generator\OpenApi;
|
||||
use Dedoc\Scramble\Support\Generator\SecurityScheme;
|
||||
@@ -23,6 +24,9 @@ class AppServiceProvider extends ServiceProvider
|
||||
*/
|
||||
public function boot(): void
|
||||
{
|
||||
Carbon::setLocale('id');
|
||||
setlocale(LC_TIME, 'id_ID.UTF-8');
|
||||
|
||||
Scramble::configure()
|
||||
->withDocumentTransformers(function (OpenApi $openApi) {
|
||||
$openApi->secure(
|
||||
|
||||
Reference in New Issue
Block a user