diff --git a/app/Http/Controllers/MemoController.php b/app/Http/Controllers/MemoController.php index 04390f1..097a94e 100644 --- a/app/Http/Controllers/MemoController.php +++ b/app/Http/Controllers/MemoController.php @@ -452,34 +452,48 @@ class MemoController extends Controller Storage::disk('public')->put($filePath, $pdf->output()); // Update status permohonan yang dipilih + // Update data di tabel NOC untuk setiap permohonan foreach ($permohonanIds as $permohonanId) { - $permohonan = Permohonan::find($permohonanId); - if ($permohonan) { - $permohonan->status = 'memo-penyelesaian'; - $permohonan->memo_penyelesaian_number = $memoNumber; - $permohonan->memo_penyelesaian_date = $memoDate; - $permohonan->memo_penyelesaian_payment_date = $paymentDate; - $permohonan->memo_penyelesaian_created_at = now(); - $permohonan->memo_penyelesaian_pdf_path = $filePath; - //$permohonan->save(); + // Cari NOC berdasarkan permohonan_id + $noc = Noc::where('permohonan_id', $permohonanId)->first(); - Log::info('MemoController: Berhasil update permohonan ID: ' . $permohonanId); - } + if ($noc) { + // Update field memo penyelesaian di tabel NOC + $noc->memo_penyelesaian = $filePath; + $noc->memo_penyelesaian_number = $memoNumber; + $noc->memo_penyelesaian_date = $memoDate; + $noc->memo_penyelesaian_payment_date = $paymentDate; + $noc->memo_penyelesaian_created_at = now(); + $noc->save(); + + Log::info('MemoController: Berhasil update NOC untuk permohonan ID: ' . $permohonanId); + } else { + Log::warning('MemoController: NOC tidak ditemukan untuk permohonan ID: ' . $permohonanId); + } + + // Update status permohonan + $permohonan = Permohonan::find($permohonanId); + if ($permohonan) { + $permohonan->status = 'memo-penyelesaian'; + $permohonan->save(); + + Log::info('MemoController: Berhasil update status permohonan ID: ' . $permohonanId); + } } DB::commit(); Log::info('MemoController: Berhasil generate PDF dan menyimpan memo penyelesaian untuk ' . count($permohonanIds) . ' permohonan'); // Return PDF untuk download - return $pdf->download($fileName); + return $pdf->download('memo-penyelesaian-' . $memoNumber . '.pdf'); } catch (Exception $e) { DB::rollback(); Log::error('MemoController: Error saat generate PDF memo penyelesaian - ' . $e->getMessage()); return redirect()->back() - ->withInput() - ->with('error', 'Terjadi kesalahan saat generate PDF memo penyelesaian: ' . $e->getMessage()); + ->with('error', 'Terjadi kesalahan saat generate PDF memo penyelesaian: ' . $e->getMessage()) + ->withInput(); } } diff --git a/app/Models/Noc.php b/app/Models/Noc.php index 16a0342..edc266a 100644 --- a/app/Models/Noc.php +++ b/app/Models/Noc.php @@ -2,8 +2,7 @@ namespace Modules\Lpj\Models; -use Illuminate\Database\Eloquent\Model; -use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Foundation\Auth\User; // use Modules\Lpj\Database\Factories\NocFactory; class Noc extends Base @@ -23,6 +22,10 @@ class Noc extends Base 'bukti_penyelesaian', 'bukti_ksl', 'memo_penyelesaian', + 'memo_penyelesaian_number', + 'memo_penyelesaian_date', + 'memo_penyelesaian_payment_date', + 'memo_penyelesaian_created_at', 'catatan_noc', 'status', 'authorized_status', @@ -37,6 +40,9 @@ class Noc extends Base 'nominal_penyelesaian' => 'decimal:2', 'status_penyelesaiaan' => 'boolean', 'tanggal_penyelesaian' => 'date', + 'memo_penyelesaian_date' => 'date', + 'memo_penyelesaian_payment_date' => 'date', + 'memo_penyelesaian_created_at' => 'datetime', 'status' => 'boolean', 'authorized_status' => 'boolean', 'authorized_at' => 'datetime', diff --git a/database/migrations/2025_07_17_055636_add_memo_penyelesaian_fields_to_noc_table.php b/database/migrations/2025_07_17_055636_add_memo_penyelesaian_fields_to_noc_table.php new file mode 100644 index 0000000..3ad7b46 --- /dev/null +++ b/database/migrations/2025_07_17_055636_add_memo_penyelesaian_fields_to_noc_table.php @@ -0,0 +1,36 @@ +string('memo_penyelesaian_number')->nullable()->after('memo_penyelesaian'); + $table->date('memo_penyelesaian_date')->nullable()->after('memo_penyelesaian_number'); + $table->date('memo_penyelesaian_payment_date')->nullable()->after('memo_penyelesaian_date'); + $table->timestamp('memo_penyelesaian_created_at')->nullable()->after('memo_penyelesaian_date'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('noc', function (Blueprint $table) { + $table->dropColumn([ + 'memo_penyelesaian_number', + 'memo_penyelesaian_date', + 'memo_penyelesaian_payment_date', + 'memo_penyelesaian_created_at' + ]); + }); + } +};