status : 'draft' }}", wilayahs: {!! isset($report) ? $detailsJson : json_encode([[ "id" => 1, "nama" => "Desa 1", "sdm_pns" => 0, "sdm_pppk" => 0, "sdm_swadaya" => 0, "sdm_swasta" => 0, "sdm_pelaku_utama" => 0, "sdm_pelaku_usaha" => 0, "sdm_popt" => 0, "sdm_pbt" => 0, "sdm_mantri_tani" => 0, "sdm_ptfl_dll" => 0, "sdm_poktan" => 0, "sdm_gapoktan" => 0, "sdm_kep" => 0, "sdm_kelembagaan_dll" => 0, "sda_sawah" => 0, "sda_non_sawah" => 0, "sda_iklim_basah" => 0, "sda_iklim_kering" => 0, "sda_irigasi" => 0, "sda_non_irigasi" => 0, "sda_pangan" => "", "sda_perkebunan" => "", "sda_hortikultura" => "", "sda_peternakan" => "", "sde_pasar" => 0, "sde_lembaga_keuangan" => 0, "sde_kios_saprodi" => 0 ]]) !!}, isSaving: false, isGeneratingAi: false, aiDraft: {!! isset($report) && $report->ai_draft_narasi ? json_encode($report->ai_draft_narasi) : "\"\"" !!}, addWilayah() { this.wilayahs.push({ id: Date.now(), nama: "Desa Baru", sdm_pns: 0, sdm_pppk: 0, sdm_swadaya: 0, sdm_swasta: 0, sdm_pelaku_utama: 0, sdm_pelaku_usaha: 0, sdm_popt: 0, sdm_pbt: 0, sdm_mantri_tani: 0, sdm_ptfl_dll: 0, sdm_poktan: 0, sdm_gapoktan: 0, sdm_kep: 0, sdm_kelembagaan_dll: 0, sda_sawah: 0, sda_non_sawah: 0, sda_iklim_basah: 0, sda_iklim_kering: 0, sda_irigasi: 0, sda_non_irigasi: 0, sda_pangan: "", sda_perkebunan: "", sda_hortikultura: "", sda_peternakan: "", sde_pasar: 0, sde_lembaga_keuangan: 0, sde_kios_saprodi: 0 }); }, removeWilayah(id) { if(this.wilayahs.length > 1) { this.wilayahs = this.wilayahs.filter(w => w.id !== id); } }, getTotal(key) { return this.wilayahs.reduce((sum, w) => sum + (Number(w[key]) || 0), 0); }, async generateAiDraft() { this.isGeneratingAi = true; try { const res = await fetch("{{ route('ipw.generate_ai') }}", { method: "POST", headers: { "Content-Type": "application/json", "X-CSRF-TOKEN": "{{ csrf_token() }}" }, body: JSON.stringify({ wilayahs: this.wilayahs }) }); const data = await res.json(); if(res.ok) { this.aiDraft = data.draft; Swal.fire({ icon: "success", title: "Narasi Disusun!", text: "Silakan cek di kotak teks atau lanjut ke Preview." }); this.saveData(false); } else { alert(data.error); } } catch(err) { alert("Gagal menghubungi AI."); } this.isGeneratingAi = false; }, async saveData(goToNextStep = false, isFinalStep = false) { this.isSaving = true; try { const res = await fetch("{{ route('ipw.store') }}", { method: "POST", headers: { "Content-Type": "application/json", "X-CSRF-TOKEN": "{{ csrf_token() }}" }, body: JSON.stringify({ report_id: this.reportId, tanggal: this.tanggal, status: this.status, wilayahs: this.wilayahs, ai_draft: this.aiDraft }) }); const data = await res.json(); this.reportId = data.report_id; if(goToNextStep) { this.step = this.step + 1; window.scrollTo(0,0); } else if (!isFinalStep) { if (typeof Swal !== "undefined") Swal.fire({ icon: "success", title: "Tersimpan!", text: "Draf aman Bang!", timer: 1500, showConfirmButton: false }); } } catch(err) { alert("Gagal menyimpan data."); } this.isSaving = false; } }'>
💡

PETUNJUK TEKNIS PENGISIAN LAPORAN IPW

Langkah 1

Input data potensi pada pilar SDM, SDA, dan SDE sesuai kondisi riil di wilayah kerja Anda. Masukkan angka yang akurat pada kolom wilayah (desa/kecamatan) yang tersedia untuk mempermudah AI melakukan analisis data.

Langkah 2

Klik tombol "LANJUT KE DRAF AI" untuk merumuskan draf narasi laporan formal secara otomatis. Anda dapat melakukan penyesuaian pada draf narasi tersebut di kolom yang telah disediakan.

Langkah 3

Klik tombol "SIMPAN FINAL" untuk mengarsipkan dokumen, kemudian "PRINT PDF" untuk mencetak laporan resmi IPW dengan tata letak profesional berstandar dinas.

IPW Wizard (Semua Jenjang Jabatan)
1
Data Dasar
2
Draft AI
3
Final Dokumen
Tahun

Langkah 1: Input Data Dasar

Sistem otomatis mendeteksi format berdasarkan Jabatan Anda:

{{ auth()->user()->jabatan ?? 'Penyuluh Pertanian' }}

* Ini adalah tanggal yang akan muncul di bagian tanda tangan (TTD) manual.

NO URAIAN KEGIATAN / DATA POTENSI WILAYAH
I. SUMBER DAYA MANUSIA (SDM)
A. Penyuluh Pertanian:
1PNS (orang)
2PPPK (orang)
3Penyuluh Swadaya (orang)
4Penyuluh Swasta (orang)
B. Petani:
5Pelaku Utama (orang)
6Pelaku Usaha (orang)
C. Petugas Teknis Fungsional:
7POPT (orang)
8PBT (orang)
9Mantri Tani (orang)
10Dll (orang)
D. Kelembagaan Petani:
11Poktan (unit)
12Gapoktan (unit)
13KEP (unit)
14Dll (unit)
II. SUMBER DAYA ALAM (SDA)
A. Jenis Lahan:
1Sawah (Ha)
2Non Sawah (Ha)
B. Iklim:
3Basah (bulan)
4Kering (bulan)
C. Sumber Air:
5Irigasi (Ha)
6Non-irigasi (Ha)
D. Komoditas (Dominan):
7Tanaman Pangan
8Perkebunan
9Hortikultura
10Peternakan
III. SUMBER DAYA EKONOMI (SDE)
1A. Pasar (unit)
2B. Lembaga Keuangan (unit)
3C. Kios Saprodi (unit)
@if(auth()->user()->is_pro)

Transformasi Data ke Laporan Formal

AI akan menyusun draf laporan formal Penyuluh Pertanian berdasarkan data di Langkah 1.

@else

Transformasi Data ke Laporan Formal

AI akan menyusun draf laporan formal Penyuluh Pertanian berdasarkan data di Langkah 1.

UPGRADE PRO UNTUK AI
@endif

REKAPITULASI DATA

POTENSI WILAYAH DESA

TAHUN

Kecamatan:{{ auth()->user()->kecamatan ?? '................' }}
Kabupaten/Kota:{{ auth()->user()->city?->name ?? '................' }}
Provinsi:{{ auth()->user()->province?->name ?? '................' }}
NO DATA POTENSI WILAYAH (SDM, SDA, SDE) TOTAL
I. SUMBER DAYA MANUSIA (SDM)
A. Penyuluh Pertanian:
1PNS (orang)
2PPPK (orang)
3Penyuluh Swadaya (orang)
4Penyuluh Swasta (orang)
B. Petani:
5Pelaku Utama (orang)
6Pelaku Usaha (orang)
C. Petugas Teknis Fungsional Lainnya:
7POPT (orang)
8PBT (orang)
9Mantri Tani (orang)
10Dll (orang)
D. Kelembagaan Petani:
11Poktan (unit)
12Gapoktan (unit)
13KEP (unit)
14Dll (unit)
II. SUMBER DAYA ALAM (SDA)
A. Jenis Lahan:
1Sawah (Ha)
2Non Sawah (Ha)
B. Iklim:
3Basah (bulan)
4Kering (bulan)
C. Sumber Air:
5Irigasi (Ha)
6Non-irigasi (Ha)
D. Komoditas (Dominan):
7Tanaman Pangan-
8Perkebunan-
9Hortikultura-
10Peternakan-
III. SUMBER DAYA EKONOMI (SDE)
1A. Pasar (unit)
2B. Lembaga Keuangan (unit)
3C. Kios Saprodi (unit)

Hasil Analisis dan Simpulan:

Mengetahui,

{{ auth()->user()->jabatan_pimpinan ?? 'Koordinator Penyuluh' }}

@if(auth()->user()->ttd_pimpinan) @endif

{{ auth()->user()->nama_pimpinan ?? '........................' }}

NIP. {{ auth()->user()->nip_pimpinan ?? '........................' }}

{{ strtolower(auth()->user()->city?->name ?? '........') }},

Penyuluh Pertanian,

@if(auth()->user()->ttd_penyuluh) @endif

{{ auth()->user()->name ?? '........................' }}

NIP. {{ auth()->user()->nip ?? '........................' }}